[本地语音降噪]:完成本地语音链路和噪音过滤,包含降噪模型、本地ASR和实时字幕稳定策略
This commit is contained in:
@@ -29,6 +29,9 @@ class AppConfig:
|
||||
post_playback_drain_ms: int = 0
|
||||
pipeline_mode: str = "live_turn_based"
|
||||
endpoint_mode: str = "primary_speaker"
|
||||
noise_filter_enabled: bool = True
|
||||
noise_filter_provider: str = "sherpa_onnx_gtcrn"
|
||||
wake_denoise_enabled: bool = False
|
||||
speaker_profile_ms: int = 600
|
||||
speaker_profile_min_ms: int = 120
|
||||
speaker_absent_ms: int = 300
|
||||
@@ -40,7 +43,7 @@ class AppConfig:
|
||||
vad_end_silence_ms: int = 350
|
||||
vad_no_speech_timeout_ms: int = 5000
|
||||
vad_max_recording_ms: int = 12000
|
||||
speech_provider: str = "cloud"
|
||||
speech_provider: str = "local"
|
||||
asr_model: str = "mimo-v2.5-asr"
|
||||
tts_model: str = "mimo-v2.5-tts"
|
||||
tts_voice: str = "mimo_default"
|
||||
@@ -80,6 +83,9 @@ class AppConfig:
|
||||
post_playback_drain_ms=int(get("POST_PLAYBACK_DRAIN_MS", "0") or "0"),
|
||||
pipeline_mode=(get("PIPELINE_MODE", "live_turn_based") or "live_turn_based").lower(),
|
||||
endpoint_mode=(get("ENDPOINT_MODE", "primary_speaker") or "primary_speaker").lower(),
|
||||
noise_filter_enabled=(get("NOISE_FILTER_ENABLED", "1") or "1").lower() not in {"0", "false", "no"},
|
||||
noise_filter_provider=(get("NOISE_FILTER_PROVIDER", "sherpa_onnx_gtcrn") or "sherpa_onnx_gtcrn").lower(),
|
||||
wake_denoise_enabled=(get("WAKE_DENOISE_ENABLED", "0") or "0").lower() in {"1", "true", "yes"},
|
||||
speaker_profile_ms=int(get("SPEAKER_PROFILE_MS", "600") or "600"),
|
||||
speaker_profile_min_ms=int(get("SPEAKER_PROFILE_MIN_MS", "120") or "120"),
|
||||
speaker_absent_ms=int(get("SPEAKER_ABSENT_MS", "300") or "300"),
|
||||
@@ -93,7 +99,7 @@ class AppConfig:
|
||||
vad_end_silence_ms=int(get("VAD_END_SILENCE_MS", "350") or "350"),
|
||||
vad_no_speech_timeout_ms=int(get("VAD_NO_SPEECH_TIMEOUT_MS", "5000") or "5000"),
|
||||
vad_max_recording_ms=int(get("VAD_MAX_RECORDING_MS", "12000") or "12000"),
|
||||
speech_provider=(get("SPEECH_PROVIDER", "cloud") or "cloud").lower(),
|
||||
speech_provider=(get("SPEECH_PROVIDER", "local") or "local").lower(),
|
||||
asr_model=get("ASR_MODEL", "mimo-v2.5-asr") or "mimo-v2.5-asr",
|
||||
tts_model=get("TTS_MODEL", "mimo-v2.5-tts") or "mimo-v2.5-tts",
|
||||
tts_voice=get("TTS_VOICE", "mimo_default") or "mimo_default",
|
||||
@@ -189,6 +195,16 @@ class AppConfig:
|
||||
"startup",
|
||||
)
|
||||
)
|
||||
if self.noise_filter_provider not in {"sherpa_onnx_gtcrn"}:
|
||||
errors.append(
|
||||
ProviderError(
|
||||
ErrorCode.CONFIG_MISSING_VALUE,
|
||||
"OWNER_NOISE_FILTER_PROVIDER must be sherpa_onnx_gtcrn",
|
||||
False,
|
||||
"config",
|
||||
"startup",
|
||||
)
|
||||
)
|
||||
if self.post_playback_drain_ms < 0:
|
||||
errors.append(
|
||||
ProviderError(
|
||||
|
||||
Reference in New Issue
Block a user