.
This commit is contained in:
+1
-1
@@ -33,7 +33,7 @@ OLLAMA_LLM_NUM_CTX=1024
|
|||||||
|
|
||||||
STT_PROVIDER=openai
|
STT_PROVIDER=openai
|
||||||
STT_FALLBACK_PROVIDER=elevenlabs
|
STT_FALLBACK_PROVIDER=elevenlabs
|
||||||
# Empty means auto-detect the first answer, because the greeting asks for preferred language first.
|
# Empty means auto-detect the first language-choice answer, then use Kazakh STT for name capture.
|
||||||
STT_NAME_CAPTURE_LANGUAGE_CODE=
|
STT_NAME_CAPTURE_LANGUAGE_CODE=
|
||||||
STT_PROMPT=
|
STT_PROMPT=
|
||||||
STT_PROMPT_RU=Это русская речь по телефону. Точно распознавай короткие ответы, имена, фамилии, слова благодарности и прощания. Если человек представился одним словом, сохраняй его как имя. Номера телефонов записывай цифрами.
|
STT_PROMPT_RU=Это русская речь по телефону. Точно распознавай короткие ответы, имена, фамилии, слова благодарности и прощания. Если человек представился одним словом, сохраняй его как имя. Номера телефонов записывай цифрами.
|
||||||
|
|||||||
+15
-9
@@ -395,6 +395,8 @@ _STT_ELEVENLABS_LANGUAGE_MAP = {
|
|||||||
"kk": "kaz",
|
"kk": "kaz",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DEFAULT_NAME_CAPTURE_STT_LANGUAGE_CODE = "kk"
|
||||||
|
|
||||||
|
|
||||||
def _tts_language_for(session_language: str | None) -> str | None:
|
def _tts_language_for(session_language: str | None) -> str | None:
|
||||||
if not session_language:
|
if not session_language:
|
||||||
@@ -1789,17 +1791,21 @@ class CallSession:
|
|||||||
return raw or None
|
return raw or None
|
||||||
|
|
||||||
async def _transcribe_batch_audio(self, audio_bytes: bytes) -> str:
|
async def _transcribe_batch_audio(self, audio_bytes: bytes) -> str:
|
||||||
if self._awaiting_customer_name and self._session_language is None and self._name_capture_language_code() is None:
|
if self._awaiting_customer_name:
|
||||||
return await self._transcribe_initial_language_choice(audio_bytes)
|
configured_name_language = self._name_capture_language_code()
|
||||||
|
if self._session_language is None and configured_name_language is None:
|
||||||
|
return await self._transcribe_initial_language_choice(audio_bytes)
|
||||||
|
return await self._stt.transcribe(
|
||||||
|
audio_bytes,
|
||||||
|
keyterms=self._name_capture_keyterms(),
|
||||||
|
language_code=configured_name_language or DEFAULT_NAME_CAPTURE_STT_LANGUAGE_CODE,
|
||||||
|
force_batch=True,
|
||||||
|
)
|
||||||
return await self._stt.transcribe(
|
return await self._stt.transcribe(
|
||||||
audio_bytes,
|
audio_bytes,
|
||||||
keyterms=self._name_capture_keyterms() if self._awaiting_customer_name else None,
|
keyterms=None,
|
||||||
language_code=(
|
language_code=_stt_language_for(self._session_language),
|
||||||
self._name_capture_language_code()
|
force_batch=False,
|
||||||
if self._awaiting_customer_name
|
|
||||||
else _stt_language_for(self._session_language)
|
|
||||||
),
|
|
||||||
force_batch=self._awaiting_customer_name,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
async def _transcribe_initial_language_choice(self, audio_bytes: bytes) -> str:
|
async def _transcribe_initial_language_choice(self, audio_bytes: bytes) -> str:
|
||||||
|
|||||||
Reference in New Issue
Block a user