Merge pull request #317 from pipecat-ai/aleix/silero-repo-params
vad(silero): expose cache and repo parameters
This commit is contained in:
@@ -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.
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user