Delay import of webrtc to avoid blocking start up if package is missing (#102594)
* Delay import of webrtc to avoid blocking start up if package is missing * Update homeassistant/components/assist_pipeline/pipeline.py Co-authored-by: Paulus Schoutsen <balloob@gmail.com> * Update homeassistant/components/assist_pipeline/vad.py Co-authored-by: Paulus Schoutsen <balloob@gmail.com> --------- Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
This commit is contained in:
parent
c481fdb7d0
commit
a78e3f7b0f
2 changed files with 16 additions and 4 deletions
|
@ -12,11 +12,13 @@ from pathlib import Path
|
|||
from queue import Queue
|
||||
from threading import Thread
|
||||
import time
|
||||
from typing import Any, Final, cast
|
||||
from typing import TYPE_CHECKING, Any, Final, cast
|
||||
import wave
|
||||
|
||||
import voluptuous as vol
|
||||
from webrtc_noise_gain import AudioProcessor
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from webrtc_noise_gain import AudioProcessor
|
||||
|
||||
from homeassistant.components import (
|
||||
conversation,
|
||||
|
@ -522,6 +524,12 @@ class PipelineRun:
|
|||
# Initialize with audio settings
|
||||
self.audio_processor_buffer = AudioBuffer(AUDIO_PROCESSOR_BYTES)
|
||||
if self.audio_settings.needs_processor:
|
||||
# Delay import of webrtc so HA start up is not crashing
|
||||
# on older architectures (armhf).
|
||||
#
|
||||
# pylint: disable=import-outside-toplevel
|
||||
from webrtc_noise_gain import AudioProcessor
|
||||
|
||||
self.audio_processor = AudioProcessor(
|
||||
self.audio_settings.auto_gain_dbfs,
|
||||
self.audio_settings.noise_suppression_level,
|
||||
|
|
|
@ -7,8 +7,6 @@ from dataclasses import dataclass
|
|||
from enum import StrEnum
|
||||
from typing import Final, cast
|
||||
|
||||
from webrtc_noise_gain import AudioProcessor
|
||||
|
||||
_SAMPLE_RATE: Final = 16000 # Hz
|
||||
_SAMPLE_WIDTH: Final = 2 # bytes
|
||||
|
||||
|
@ -51,6 +49,12 @@ class WebRtcVad(VoiceActivityDetector):
|
|||
|
||||
def __init__(self) -> None:
|
||||
"""Initialize webrtcvad."""
|
||||
# Delay import of webrtc so HA start up is not crashing
|
||||
# on older architectures (armhf).
|
||||
#
|
||||
# pylint: disable=import-outside-toplevel
|
||||
from webrtc_noise_gain import AudioProcessor
|
||||
|
||||
# Just VAD: no noise suppression or auto gain
|
||||
self._audio_processor = AudioProcessor(0, 0)
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue