ГлавнаяБлог → Какие языки распознавание речи вытягивает, а какие нет

Какие языки распознавание речи вытягивает, а какие нет

Опубликовано 2026-08-18 · 5 мин чтения

Девяносто девять языков звучит как решённая задача. На практике список — это градиент: дюжина языков, где распознавание близко к человеческому, длинная середина, где оно полезно с проверкой, и хвост, где вывод требует больше работы, чем экономит.

Список — это градиент, а не галочка

Поддержка определяется тем, сколько языка было в обучающих данных, а это распределено крайне неравномерно. Грубая практическая группировка:

УровеньЯзыкиЧего ждать
СильныйАнглийский, испанский, немецкий, французский, итальянский, португальский, русский, японский, китайскийЕдиницы процентов ошибок на чистой речи; годится при лёгкой вычитке
ХорошийПольский, нидерландский, турецкий, корейский, украинский, арабский, шведский, чешский и подобныеСодержание надёжно, промахов на именах и терминах больше
РабочийБольшинство остальных европейских и крупных азиатскихСуть передана верно, редактура понадобится настоящая
Слабый хвостМалоресурсные языки в конце спискаПроверьте на своих записях, прежде чем что-то на этом строить

Единственное значимое число — то, которое вы измерили на собственных записях: акцент, качество звука и тематика сдвигают результат сильнее, чем уровень в таблице.

Как работает автоопределение и когда оно ошибается

По умолчанию язык определяется автоматически по началу записи. На чём-либо длиннее пары фраз это надёжно. Сбои бывают в двух ситуациях:

И то и другое лечится прямым указанием языка:

r = client.audio.transcriptions.create(
    model="whisper-1", file=f, language="de",
)

Используйте двухбуквенный код. Указание языка ещё и пропускает проход определения, поэтому обработка идёт чуть быстрее.

Как узнать, что именно определилось

Когда поток действительно многоязычный, оставьте автоопределение и читайте результат — он возвращается вместе с оценкой уверенности:

r = client.audio.transcriptions.create(
    model="whisper-1", file=f, response_format="verbose_json",
)

print(r.language, r.language_probability)

if r.language_probability < 0.6:
    queue_for_review(r)        # низкая уверенность — проверить глазами

Это же самый дешёвый способ маршрутизировать входящие обращения: определили язык, отдали разговор менеджеру, который на нём говорит, а сомнительные несколько процентов пометили для человека.

Записи, где язык меняется

Вот настоящее ограничение, и его стоит понимать точно: язык выбирается один раз, по началу записи, а остальное расшифровывается в этом режиме. Человек, начавший по-немецки и перешедший на английский посреди фразы, получит английскую часть расшифрованной как немецкую — часто в виде правдоподобной бессмыслицы.

Два способа с этим жить:

Чего ждать не стоит — что один запрос последует за переключением. Никакие параметры этого не меняют.

Имена и термины — слабое место в любом языке

По всему списку ошибки собираются в одном месте: имена собственные. Названия продуктов, фамилии, топонимы, аббревиатуры — слова, которых модели неоткуда ждать. Лекарство везде одно:

r = client.audio.transcriptions.create(
    model="whisper-1", file=f, language="fr",
    prompt="Intervenants : Amélie Roussel, Karim Benali. Produits : Kestrel, Hawknest.",
)

Пишите подсказку на языке аудио. Она смещает распознавание к нужным написаниям и заодно к той пунктуации, в которой написана сама.

Что проверить до того, как строить на этом продукт

  1. Двадцать реальных записей на целевом языке, снятых в ваших условиях, а не чистые студийные образцы.
  2. Измерьте долю ошибок по тому, что вам важно: если бизнесу нужны номера заказов, считайте ошибки в цифрах отдельно.
  3. Прогоните с параметром language и без него — на коротких записях разница часто больше, чем от любой другой правки.
  4. Добавьте список терминов и измерьте снова. Если ваша боль — имена собственные, решается она именно здесь.

Половина дня такой работы скажет больше, чем любой опубликованный бенчмарк, потому что измерено на том звуке, который вы и будете отправлять.

Попробуйте на своих записях. Регистрация занимает минуту, бесплатных минут хватает, чтобы оценить качество.

Получить ключ бесплатно

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

Все ли 99 языков распознаются одинаково точно?

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

Указывать язык или доверить определению?

Указывайте, если аудио одноязычное, особенно на коротких записях, где определению почти не на что опереться. Оставляйте автоопределение, когда записи действительно приходят на разных языках.

Что произойдёт, если говорящий перейдёт на другой язык?

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

Как узнать, какой язык был определён?

Запросите verbose_json — в ответе будут определённый язык и вероятность. Низкая вероятность — надёжный сигнал, что запись стоит проверить.

Работает ли параметр prompt на любом языке?

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

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