Перейти к содержанию
Innovialabs

Распознавание узбекской речи: варианты, точность и подводные камни

Практика3 мин

Коротко

Узбекскую речь распознают облачные API, открытые модели и локальные провайдеры; выбирать нужно по WER на ваших собственных записях звонков, с отдельной проверкой смешанной русско-узбекской речи.

Короткий ответ

Для узбекского языка доступны три группы решений:

  • Облачные API крупных платформ — Google Speech-to-Text, Azure Speech и другие, где узбекский указан в списке поддерживаемых языков.
  • Открытые модели — например, Whisper от OpenAI и мультиязычные модели семейства wav2vec2/MMS, которые можно запускать на своём сервере и дообучать.
  • Локальные провайдеры, которые специализируются на узбекском и обучают модели на местных данных.

Ни одно решение не стоит выбирать по описанию. Качество сильно зависит от ваших записей: телефонная линия, шум, акцент, смешение языков. Решает только тест на реальных данных.

Главные подводные камни

Code-switching. В Узбекистане собеседники постоянно переходят с узбекского на русский внутри одной фразы. Модель, которой задали один язык, начинает искажать слова второго языка или «переводить» их.

Две письменности. Модель может выдать текст латиницей, кириллицей или вперемешку. Для поиска и аналитики это проблема — договоритесь о целевой письменности и нормализуйте результат.

Диалекты и разговорная речь. Ташкентская, ферганская, хорезмская речь заметно различаются. Модели, обученные на дикторском чтении, хуже понимают живой разговор.

Телефонный звук. Записи 8 кГц с сжатием сильно отличаются от студийных. Тестируйте именно на звонках, а не на подкастах.

Имена, бренды, числа. Названия товаров, адреса и суммы ASR ошибается чаще всего, а для бизнеса они самые важные.

Как измерить качество

  1. Отберите 1–3 часа реальных звонков с разными операторами, клиентами, регионами и уровнем шума.
  2. Сделайте эталонную расшифровку вручную, по единым правилам: какая письменность, как писать числа, как помечать неразборчивое.
  3. Посчитайте WER (word error rate — доля ошибок по словам) для каждого кандидата.
  4. Разбейте результат по сегментам: чисто узбекская речь, чисто русская, смешанная, шумные записи.
  5. Проверьте бизнес-сущности отдельно: правильно ли распознаны названия продуктов, суммы, номера заказов.

Перед подсчётом WER нормализуйте текст одинаково для эталона и гипотезы — регистр, пунктуация, апострофы:

import re

def normalize(text: str) -> str:
    text = text.lower()
    text = re.sub(r"[ʻʼ`'‘’]", "’", text)
    text = re.sub(r"[^\w\s’]", " ", text)
    return " ".join(text.split())

Сам WER можно посчитать готовой библиотекой, например jiwer.

Как улучшить результат

  • Подсказки словаря (phrase hints, custom vocabulary) с названиями ваших продуктов, если API это поддерживает.
  • Разделение каналов: если АТС пишет оператора и клиента в разные каналы, распознавайте их отдельно.
  • Дообучение открытой модели на нескольких десятках часов ваших размеченных звонков.
  • Постобработка LLM: исправление очевидных ошибок и приведение к одной письменности. Следите, чтобы модель не «додумывала» содержание.

Как выбрать

КритерийОблачный APIОткрытая модельЛокальный провайдер
СтартБыстроНужна инфраструктура и GPUБыстро
ДанныеУходят к провайдеруОстаются у васЗависит от договора
ДообучениеОграниченоПолный контрольПо договорённости

Частые вопросы

Узбекский входит в список языков Whisper, но качество на телефонных звонках и смешанной речи нужно проверять на ваших записях. Дообучение на собственных данных обычно заметно помогает.

Поможем с этим

Если хотите не разбираться самим, а получить результат — этим мы занимаемся каждый день.

Обсудить проект

Читайте также

Есть идея или задача? Расскажите нам

Ответим в течение рабочего дня и предложим решение. Консультация бесплатная.