Перейти к содержанию
КолРайт Открыть KolWrite

Распознавание речи

Как аудиозапись превращается в рабочий текст

Система транскрибации не слышит слова. Она оценивает их вероятность. Проследим всю цепочку от звуковой волны до расшифровки с таймкодами и посмотрим, где она чаще всего рвется.

KolWrite 5 мин чтения

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

Краткие выводы

  • Алгоритм распознавания речи угадывает наиболее вероятный текст для куска аудио. Никакого скрытого сценария внутри самой записи нет, достать его оттуда нельзя.
  • Обучение на огромных многоязычных базах аудио сделало модели стабильнее. Но если язык есть в списке поддерживаемых, это еще не обещает хорошего качества.
  • Метки спикеров, таймкоды, пунктуация и экспорт работают как отдельные модули вокруг ядра распознавания. Каждый из них ошибается по-своему.
  • Микрофон и акустика комнаты обычно влияют на результат сильнее, чем выбор модели.
  • Мы держим аудио, привязанный ко времени текст и ручную правку в одном месте, потому что ошибки вылезают как раз на их стыке.

1. На вход программе идет сигнал, а не предложения

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

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

2. Энкодер строит карту речи

Энкодер переводит короткие отрезки звука в векторы. В них записано то, что поможет угадать текст: оттенки фонем, ритм и примерная граница между голосом, шумом и тишиной. Масштабное предобучение сильно изменило этот этап. В статье 2022 года описывалось обучение на 680 000 часов многоязычного аудио со слабой разметкой. Следующие работы расширили охват сначала за сотню, а потом и за тысячу языков за счет записей, которые вообще никто заранее не расшифровывал.123

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

3. Декодирование выбирает между правдоподобными фразами

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

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

4. Готовая расшифровка собирается на конвейере

Модуль распознавания выдает слова и время. Разделение спикеров решает совсем другую задачу, определяя, кто и когда говорил. Выравнивание привязывает каждое слово к шкале времени. Пунктуация и абзацы приводят текст в читаемый вид. Дальше идут хранение, повторные попытки при сбоях, редактирование, поиск и экспорт. За каждый шаг отвечает отдельный компонент, и любой из них может сломаться сам по себе.

Бывает и так, что разные этапы спорят друг с другом. Слова распознались верно, а спикер указан не тот. Краткая сводка выглядит аккуратно, а фамилия в самом тексте переврана. Вместо того чтобы рисовать поверх текста проценты уверенности, мы даем исходник с таймкодами, чтобы человек сам все проверил и решил.

5. Что мы проверяем, прежде чем положиться на систему

Проверяйте сервис на самых тяжелых своих записях. Возьмите видеозвонок, где трое говорят поверх друг друга, лекцию с последнего ряда, голосовое из шумного коридора или файл, где сорок раз повторяется одна фамилия. Засекайте время, которое уйдет на подготовку исправленного файла, готового к отправке. Скорость появления первой расшифровки на экране считать смысла нет.

KolWrite держит плеер, текст, спикеров и таймкоды в одном рабочем окне и сохраняет эту разметку при выгрузке в документы и субтитры. Сама неточность распознавания речи никуда не девается. Зато спорные места легко найти и быстро поправить. Эту работу по-прежнему делает человек.

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

Транскрибация с помощью ИИ и распознавание речи означают одно и то же?

Распознавание речи только переводит звук в слова. Сервис транскрибации добавляет вокруг него определение языка, разделение спикеров, таймкоды, пунктуацию, редактор, поиск и экспорт. В ежедневной работе больше всего раздражают сбои в этой обвязке, а не в самом ядре.

Почему расшифровка с ошибками часто читается так гладко?

Декодер подбирает вероятную цепочку слов по контексту. Если звук глухой, подходящая по смыслу фраза перевешивает то, что реально сказали, и текст при этом выглядит складно. Имена, цифры и все, что пойдет в цитаты, обязательно сверяйте со звуком.

Если сервис поддерживает много языков, качество везде будет одинаковым?

Нет. Количество часов обучения, охват диалектов и качество тестирования сильно скачут от языка к языку. Список языков показывает, что модель умеет с ними работать, но ничего не говорит о точности на вашем языке.

Таймкоды ставит та же модель, которая распознает слова?

Не всегда. Временные метки, спикеров и знаки препинания часто расставляют отдельные этапы конвейера. Из-за этого в тексте порой оказываются правильные слова, но не на своем времени. Мы проверяем каждую из этих вещей отдельно.

Источники и дополнительная литература

  1. 1Radford et al., Robust Speech Recognition via Large-Scale Weak Supervision
  2. 2Pratap et al., Scaling Speech Technology to 1,000+ Languages
  3. 3Zhang et al., Google USM: Scaling Automatic Speech Recognition Beyond 100 Languages
  4. 4Chi & Bell, Improving Code-switched ASR with Linguistic Information
  5. 5Turetzky et al., HebDB: a Weakly Supervised Dataset for Hebrew Speech Processing
  6. 6Hamed et al., Dialectal Arabic-English Code-Switching Speech Recognition

Все руководства и исследования

Читать далее

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

Оценка качества

Точность не свести к одному числу

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

5 мин чтения

Таймлайн субтитров: каждая реплика показана на отрезке времени, пока она видна на экране, рядом со временем, которое нужно зрителю на чтение; один слишком длинный титр отмечен рядом с сокращенной версией, укладывающейся в свой интервал.

Доступность

Субтитры как часть контента

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

5 мин чтения

Панель спикеров рядом с расшифровкой, где видны имена и количество реплик.

Встречи

От расшифровки к списку задач: ответственные, сроки и контроль

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

6 мин чтения

Панель спикеров рядом с расшифровкой, где видны имена и количество реплик.

Встречи

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

От резюме встречи есть толк, только если пропустившие созвон коллеги могут сразу взять его в работу. Разберем, что в него включить, как правильно поставить задачу ИИ и что перепроверить перед отправкой.

7 мин чтения

Экран расшифровки KolWrite: имена спикеров, таймкоды и строка, которая звучит сейчас.

Языки

Транскрибация устной арабской речи: диалекты, литературная норма и смешение языков

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

6 мин чтения

Окно экспорта с выбором формата, именами спикеров и таймкодами.

Запись

Какой формат аудиофайла выбрать для транскрибации?

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

5 мин чтения