Казахский STT зацикливался. Язык нельзя хардкодить.
Голосовой обзвон в Казахстане, двуязычный. Система разговаривает с клиентами, расшифровывает звонки, и от точности расшифровки зависит скоринг на все остальное.
Долгое время использовал Whisper с жесткой настройкой language=ru. В типичном казахском звонке автоинформатор говорил по-русски, потом клиент переходил на казахский. Whisper слышал русское интро, форсил русский на весь диалог и зацикливался. Замер из сессионных логов: звонок идет 223 секунды, полный диалог людей, а система возвращает «не дозвон», уверенность 1.0. Все неправильно.
Наивный auto-detect (language=None) не спасал. Детектор хватается за русское вступление и выбирает русский на весь звонок. И вот в голову закралась идея: может, просто убрать хардкод? Нет, в двуязычной среде это не фикс, только полумера. Настоящее решение пришло с gpt-4o-transcribe, которая нативно держит code-switch между русским и казахским. Никакого угадывания языка, просто слышит оба и разбирается.
Переработал 22 звонка, которые раньше получали балл 1.0. После переработки скоринги вышли 5-7. Звонки ожили.
Урок странный, но верный: просто убрать хардкод еще не значит решить проблему. Язык в двуязычном домене не угадываешь кодом и не определяешь по интро. Нужна система, которая просто его держит.
#голосовойбот #STT #Voximplant #двуязычность #Казахстан #распознавание #OpenAI #автоматизация