Merge pull request #317 from pipecat-ai/aleix/silero-repo-params

vad(silero): expose cache and repo parameters
This commit is contained in:
Aleix Conchillo Flaqué
2024-07-23 12:13:20 -07:00
committed by GitHub
2 changed files with 18 additions and 3 deletions

View File

@@ -9,6 +9,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added ### Added
- Added `force_reload`, `skip_validation` and `trust_repo` to `SileroVAD` and
`SileroVADAnalyzer`. This allows caching and various GitHub repo validations.
- Added `send_initial_empty_metrics` flag to `PipelineParams` to request for - Added `send_initial_empty_metrics` flag to `PipelineParams` to request for
initial empty metrics (zero values). True by default. initial empty metrics (zero values). True by default.

View File

@@ -38,6 +38,9 @@ class SileroVADAnalyzer(VADAnalyzer):
*, *,
sample_rate: int = 16000, sample_rate: int = 16000,
version: str = "v5.0", version: str = "v5.0",
force_reload: bool = False,
skip_validation: bool = True,
trust_repo: bool = True,
params: VADParams = VADParams()): params: VADParams = VADParams()):
super().__init__(sample_rate=sample_rate, num_channels=1, params=params) super().__init__(sample_rate=sample_rate, num_channels=1, params=params)
@@ -48,8 +51,9 @@ class SileroVADAnalyzer(VADAnalyzer):
(self._model, _) = torch.hub.load(repo_or_dir=f"snakers4/silero-vad:{version}", (self._model, _) = torch.hub.load(repo_or_dir=f"snakers4/silero-vad:{version}",
model="silero_vad", model="silero_vad",
force_reload=False, force_reload=force_reload,
trust_repo=True) skip_validation=skip_validation,
trust_repo=trust_repo)
self._last_reset_time = 0 self._last_reset_time = 0
@@ -91,12 +95,20 @@ class SileroVAD(FrameProcessor):
*, *,
sample_rate: int = 16000, sample_rate: int = 16000,
version: str = "v5.0", version: str = "v5.0",
force_reload: bool = False,
skip_validation: bool = True,
trust_repo: bool = True,
vad_params: VADParams = VADParams(), vad_params: VADParams = VADParams(),
audio_passthrough: bool = False): audio_passthrough: bool = False):
super().__init__() super().__init__()
self._vad_analyzer = SileroVADAnalyzer( self._vad_analyzer = SileroVADAnalyzer(
sample_rate=sample_rate, version=version, params=vad_params) sample_rate=sample_rate,
version=version,
force_reload=force_reload,
skip_validation=skip_validation,
trust_repo=trust_repo,
params=vad_params)
self._audio_passthrough = audio_passthrough self._audio_passthrough = audio_passthrough
self._processor_vad_state: VADState = VADState.QUIET self._processor_vad_state: VADState = VADState.QUIET