38 lines
972 B
Python
38 lines
972 B
Python
"""Gemini Live Translate agent configuration."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
|
|
GEMINI_MODEL = os.getenv("GEMINI_MODEL", "gemini-2.5-flash-preview-native-audio-dialog-09-2025")
|
|
|
|
GEMINI_INPUT_SAMPLE_RATE = 16000
|
|
GEMINI_OUTPUT_SAMPLE_RATE = 24000
|
|
AUDIO_CHANNELS = 1
|
|
|
|
PARTICIPANT_LANG_ATTR = "lang"
|
|
NATIVE_LANG = "none"
|
|
|
|
RECONCILE_DEBOUNCE_SEC = float(os.getenv("GEMINI_RECONCILE_DEBOUNCE_SEC", "0.25"))
|
|
SESSION_GRACE_SEC = float(os.getenv("GEMINI_SESSION_GRACE_SEC", "10.0"))
|
|
|
|
GEMINI_RECONNECT_BACKOFF_SEC = [0.5, 1.0, 2.0, 4.0, 8.0, 16.0, 30.0]
|
|
GEMINI_MAX_FAILURES_BEFORE_LONG_BACKOFF = 5
|
|
|
|
# Map app language codes to Gemini targetLanguageCode values.
|
|
GEMINI_LANG_MAP: dict[str, str] = {
|
|
"fa": "fa",
|
|
"en": "en",
|
|
"ar": "ar",
|
|
"de": "de",
|
|
"fr": "fr",
|
|
"es": "es",
|
|
"tr": "tr",
|
|
}
|
|
|
|
|
|
def gemini_lang(code: str | None) -> str | None:
|
|
if not code or code == NATIVE_LANG:
|
|
return None
|
|
return GEMINI_LANG_MAP.get(code, code)
|