From 0c1b746e08f9376948d421a893fec8bd4e011b2c Mon Sep 17 00:00:00 2001 From: Magzhan Zhumabayev Date: Sat, 2 May 2026 01:36:52 +0500 Subject: [PATCH] . --- .env.example | 5 +++-- main.py | 40 ++++++++++++++++++++++------------------ 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/.env.example b/.env.example index f2527a2..1b2ec68 100644 --- a/.env.example +++ b/.env.example @@ -38,8 +38,8 @@ STT_NAME_CAPTURE_LANGUAGE_CODE= STT_PROMPT=Это русская речь по телефону. Точно распознавай короткие ответы, имена, фамилии, слова благодарности и прощания. Особое внимание именам: Айнур, Айгерим, Алия, Данияр, Азамат, Арман, Мадина, Нурсултан, Руслан, Асель. Если человек представился одним словом, сохраняй его как имя. Номера телефонов записывай цифрами. TTS_PROVIDER=elevenlabs -REALTIME_VOICE_INITIAL_GREETING_KK_TEXT=Сәлеметсіз бе! Менің атым Айнұр, мен ДиджиОпс компаниясының эй-ай ассистентімін. Сізге қалай жүгінсем болады және қай тілде сөйлескен ыңғайлы: қазақша ма, орысша ма? -REALTIME_VOICE_INITIAL_GREETING_RU_TEXT=Здравствуйте! Меня зовут Айнур, я эй-ай-ассистент компании ДиджиОпс. Как я могу к вам обращаться и на каком языке вам удобнее продолжить: на казахском или на русском? +REALTIME_VOICE_INITIAL_GREETING_RU_TEXT=Здравствуйте! Меня зовут Айнур, я эй-ай-ассистент компании ДиджиОпс. Как я могу к вам обращаться и на каком языке вам удобнее продолжить: на русском или на казахском? +REALTIME_VOICE_INITIAL_GREETING_KK_TEXT=Сәлеметсіз бе! Менің атым Айнұр, мен ДиджиОпс компаниясының эй-ай ассистентімін. Сізге қалай жүгінсем болады және қай тілде сөйлескен ыңғайлы: орысша ма, қазақша ма? ENABLE_AUDIO_DUMP=false AUDIO_DUMP_DIR=debug_audio @@ -73,6 +73,7 @@ VAD_SPEECH_PAD_MS=180 VAD_MIN_SPEECH_DURATION_MS=0 VAD_USE_ONNX=false REALTIME_VOICE_INITIAL_GREETING_TEXT= +REALTIME_VOICE_INITIAL_GREETING_USE_SINGLE_TEXT=false SEMANTIC_ENDPOINTING_HOLD_MS=600 REALTIME_VOICE_FILLER_DELAY_MS=300 REALTIME_VOICE_TTS_CHUNK_SOFT_MIN_CHARS=10 diff --git a/main.py b/main.py index 8872b81..12e7d93 100644 --- a/main.py +++ b/main.py @@ -86,42 +86,46 @@ def _http_port() -> int: def _initial_greeting_text() -> str: - raw = os.getenv("REALTIME_VOICE_INITIAL_GREETING_TEXT") - if raw is not None and str(raw).strip(): + raw = str(os.getenv("REALTIME_VOICE_INITIAL_GREETING_TEXT", "")).strip() + if raw and _single_initial_greeting_enabled(): return str(raw).strip() return " ".join(text for text, _ in _initial_greeting_segments()) +def _single_initial_greeting_enabled() -> bool: + raw = str(os.getenv("REALTIME_VOICE_INITIAL_GREETING_USE_SINGLE_TEXT", "")).strip().lower() + return raw in {"1", "true", "yes", "on"} + + def _initial_greeting_segments() -> tuple[tuple[str, str | None], ...]: - raw = os.getenv("REALTIME_VOICE_INITIAL_GREETING_TEXT") - if raw is not None and str(raw).strip(): + raw = str(os.getenv("REALTIME_VOICE_INITIAL_GREETING_TEXT", "")).strip() + if raw and _single_initial_greeting_enabled(): language = str(os.getenv("REALTIME_VOICE_INITIAL_GREETING_LANGUAGE_CODE", "")).strip() or None - text = str(raw).strip() - return ((text, language),) + return ((raw, language),) - kk_text = str( - os.getenv( - "REALTIME_VOICE_INITIAL_GREETING_KK_TEXT", - ( - "Сәлеметсіз бе! Менің атым Айнұр, мен ДиджиОпс компаниясының эй-ай ассистентімін. " - "Сізге қалай жүгінсем болады және қай тілде сөйлескен ыңғайлы: қазақша ма, орысша ма?" - ), - ) - ).strip() ru_text = str( os.getenv( "REALTIME_VOICE_INITIAL_GREETING_RU_TEXT", ( "Здравствуйте! Меня зовут Айнур, я эй-ай-ассистент компании ДиджиОпс. " - "Как я могу к вам обращаться и на каком языке вам удобнее продолжить: на казахском или на русском?" + "Как я могу к вам обращаться и на каком языке вам удобнее продолжить: на русском или на казахском?" + ), + ) + ).strip() + kk_text = str( + os.getenv( + "REALTIME_VOICE_INITIAL_GREETING_KK_TEXT", + ( + "Сәлеметсіз бе! Менің атым Айнұр, мен ДиджиОпс компаниясының эй-ай ассистентімін. " + "Сізге қалай жүгінсем болады және қай тілде сөйлескен ыңғайлы: орысша ма, қазақша ма?" ), ) ).strip() segments: list[tuple[str, str | None]] = [] - if kk_text: - segments.append((kk_text, "kk")) if ru_text: segments.append((ru_text, "ru")) + if kk_text: + segments.append((kk_text, "kk")) return tuple(segments)