Add deepfilternet
This commit is contained in:
@@ -28,6 +28,20 @@ class AudioConfig:
|
||||
return int(self.sample_rate_hz * self.frame_ms / 1000) * self.channels * 2
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class AudioFilterConfig:
|
||||
"""Optional input audio filter applied by the Pipecat transport before VAD/STT."""
|
||||
|
||||
enabled: bool = False
|
||||
provider: str = "none"
|
||||
lib_path: str | None = None
|
||||
model_path: str | None = None
|
||||
model_sample_rate_hz: int = 48000
|
||||
atten_lim_db: float = 100.0
|
||||
post_filter_beta: float = 0.0
|
||||
log_level: str | None = None
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class SessionConfig:
|
||||
inactivity_timeout_sec: int = 60
|
||||
@@ -180,6 +194,7 @@ class ServicesConfig:
|
||||
class EngineConfig:
|
||||
server: ServerConfig = field(default_factory=ServerConfig)
|
||||
audio: AudioConfig = field(default_factory=AudioConfig)
|
||||
audio_filter: AudioFilterConfig = field(default_factory=AudioFilterConfig)
|
||||
session: SessionConfig = field(default_factory=SessionConfig)
|
||||
turn: TurnConfig = field(default_factory=TurnConfig)
|
||||
agent: AgentConfig = field(default_factory=AgentConfig)
|
||||
@@ -223,6 +238,7 @@ def config_from_dict(data: dict) -> EngineConfig:
|
||||
return EngineConfig(
|
||||
server=ServerConfig(**_dict(data.get("server"))),
|
||||
audio=AudioConfig(**_dict(data.get("audio"))),
|
||||
audio_filter=AudioFilterConfig(**_normalize_audio_filter(_dict(data.get("audio_filter")))),
|
||||
session=SessionConfig(**_dict(data.get("session"))),
|
||||
turn=TurnConfig(
|
||||
vad=VADConfig(**vad),
|
||||
@@ -255,6 +271,18 @@ def _dict(value: object) -> dict:
|
||||
return dict(value) if isinstance(value, dict) else {}
|
||||
|
||||
|
||||
def _normalize_audio_filter(value: dict) -> dict:
|
||||
if value.get("lib_path") == "":
|
||||
value["lib_path"] = None
|
||||
if value.get("model_path") == "":
|
||||
value["model_path"] = None
|
||||
if value.get("log_level") == "":
|
||||
value["log_level"] = None
|
||||
if "provider" in value:
|
||||
value["provider"] = str(value["provider"]).strip().lower()
|
||||
return value
|
||||
|
||||
|
||||
def _normalize_llm_provider(value: object) -> str:
|
||||
provider = str(value or LLMConfig().provider).strip().lower()
|
||||
normalized = _LLM_PROVIDER_ALIASES.get(provider)
|
||||
|
||||
Reference in New Issue
Block a user