Initial FRIDAY Voice Console scaffold
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
|
||||
|
||||
DEFAULT_SPEACHES_URL = "http://192.168.86.150:8000"
|
||||
DEFAULT_HERMES_COMMAND = "hermes"
|
||||
DEFAULT_HERMES_SOURCE = "friday-voice"
|
||||
DEFAULT_CONFIRMED_THRESHOLD = 0.85
|
||||
DEFAULT_PROBABLE_THRESHOLD = 0.70
|
||||
DEFAULT_DATA_DIR = "/data"
|
||||
DEFAULT_WHISPER_MODEL = "deepdml/faster-whisper-large-v3-turbo-ct2"
|
||||
DEFAULT_TTS_MODEL = "speaches-ai/Kokoro-82M-v1.0-ONNX"
|
||||
DEFAULT_TTS_VOICE = "af_nova"
|
||||
|
||||
|
||||
@dataclass(slots=True)
|
||||
class Settings:
|
||||
"""Runtime settings for the FRIDAY voice gateway.
|
||||
|
||||
Defaults match Jeremy's residence services from the wiki crawl.
|
||||
"""
|
||||
|
||||
speaches_url: str = DEFAULT_SPEACHES_URL
|
||||
hermes_command: str = DEFAULT_HERMES_COMMAND
|
||||
hermes_source: str = DEFAULT_HERMES_SOURCE
|
||||
speaker_confirmed_threshold: float = DEFAULT_CONFIRMED_THRESHOLD
|
||||
speaker_probable_threshold: float = DEFAULT_PROBABLE_THRESHOLD
|
||||
data_dir: str = DEFAULT_DATA_DIR
|
||||
whisper_model: str = DEFAULT_WHISPER_MODEL
|
||||
tts_model: str = DEFAULT_TTS_MODEL
|
||||
tts_voice: str = DEFAULT_TTS_VOICE
|
||||
|
||||
@classmethod
|
||||
def from_env(cls, environ: dict[str, str] | None = None) -> "Settings":
|
||||
import os
|
||||
|
||||
env = os.environ if environ is None else environ
|
||||
return cls(
|
||||
speaches_url=env.get("SPEACHES_URL", DEFAULT_SPEACHES_URL),
|
||||
hermes_command=env.get("HERMES_COMMAND", DEFAULT_HERMES_COMMAND),
|
||||
hermes_source=env.get("HERMES_SOURCE", DEFAULT_HERMES_SOURCE),
|
||||
data_dir=env.get("DATA_DIR", DEFAULT_DATA_DIR),
|
||||
whisper_model=env.get("WHISPER_MODEL", DEFAULT_WHISPER_MODEL),
|
||||
tts_model=env.get("TTS_MODEL", DEFAULT_TTS_MODEL),
|
||||
tts_voice=env.get("TTS_VOICE", DEFAULT_TTS_VOICE),
|
||||
speaker_confirmed_threshold=float(
|
||||
env.get("SPEAKER_CONFIRMED_THRESHOLD", DEFAULT_CONFIRMED_THRESHOLD)
|
||||
),
|
||||
speaker_probable_threshold=float(
|
||||
env.get("SPEAKER_PROBABLE_THRESHOLD", DEFAULT_PROBABLE_THRESHOLD)
|
||||
),
|
||||
)
|
||||
Reference in New Issue
Block a user