Как работает распознавание речи: от звуковой волны до текста

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

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

Эта статья проходит по конвейеру шаг за шагом — без математики и без внутреннего устройства какого-либо конкретного поставщика.

Шаг 1. Как микрофон превращает звук в числа?

Звук — это волна давления. Микрофон преобразует её в напряжение, а аналого-цифровой преобразователь измеряет это напряжение многие тысячи раз в секунду. Каждое измерение — это отсчёт (sample).

Музыку обычно записывают с частотой 44 100 или 48 000 отсчётов в секунду. Распознаванию речи столько почти никогда не нужно: частоты, которые несут речь, лежат в основном ниже 8 кГц, поэтому большинство систем работает на 16 000 отсчётов в секунду (16 кГц). В статье о Whisper, например, прямо сказано, что всё аудио сначала пересэмплируется в 16 000 Гц. Телефонный звук часто идёт на 8 кГц — это одна из причин, почему телефонные записи расшифровывать сложнее: часть речевого сигнала просто не была записана.

На этом этапе нет ни слов, ни букв, ни определения тишины. Есть только длинный список чисел: одна минута аудио на 16 кГц — это 960 000 чисел.

Шаг 2. Что такое спектрограмма и почему не использовать сырую волну?

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

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

Большинство систем используют лог-мел-спектрограмму. «Мел» означает, что частотные полосы расположены так, как человеческий слух воспринимает высоту тона: плотно на низких частотах, редко на высоких. «Лог» сжимает громкость так же, как это делает ухо. Исходные модели Whisper используют 80 мел-каналов на окнах 25 мс с шагом 10 мс; модель large-v3 перешла на 128. В любом случае секунда аудио превращается примерно в 100 столбцов чисел — гораздо более компактный и информативный вход, чем 16 000 сырых отсчётов.

Шаг 3. Как модель сопоставляет звук и слова?

Именно здесь подходы сильнее всего изменились за последние пятнадцать лет.

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

Десятилетиями системы распознавания собирали из отдельных частей. Акустическая модель оценивала, какие звуки речи (фонемы) вероятны в каждом кадре, словарь произношений описывал, из каких фонем строится каждое слово, а языковая модель оценивала, какие последовательности слов правдоподобны. Скрытые марковские модели связывали всё это во времени. Около 2012 года глубокие нейросети заменили внутри этого конвейера прежние модели гауссовых смесей и заметно снизили долю ошибок — переломный момент обычно связывают с совместной статьёй Hinton и коллег из четырёх исследовательских групп.

End-to-end-модели

Современные системы в основном обучают одну нейросеть, которая идёт прямо от спектрограммы к тексту (end-to-end). Преобладают три архитектуры:

Подход Как сопоставляются звук и текст Типичная сильная сторона
CTC (Graves и др., 2006) Для каждого кадра выдаёт метку или «пусто», затем схлопывает повторы Быстро, просто, хорошо для потокового режима
Трансдьюсер, RNN-T (Graves, 2012) На каждом шаге решает, выдать токен или прочитать следующий кадр Потоковый режим с низкой задержкой
Энкодер-декодер с механизмом внимания Энкодер читает весь фрагмент, декодер пишет текст токен за токеном Высокая точность на законченных высказываниях

Whisper — пример третьего типа: Transformer-энкодер-декодер, который читает фрагменты по 30 секунд и пишет текст. Потоковая расшифровка — когда слова появляются, пока вы ещё говорите, — тяготеет к первым двум, потому что они могут выдавать результат до того, как предложение закончено.

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

Откуда берутся знания о языке

У end-to-end-модели нет отдельного словаря, но у неё всё равно есть сильное представление о том, какие последовательности слов вероятны, — оно выучено из текста, парного к обучающему аудио. Масштаб здесь важен: исходные модели Whisper обучены на 680 000 часах размеченного аудио, из которых 117 000 часов приходились на 96 языков, кроме английского; large-v3 использовала 1 миллион часов слабо размеченного аудио плюс 4 миллиона часов аудио с псевдоразметкой. Языки и акценты, редкие в обучающих данных, распознаются хуже — по той же причине, что и редкие имена.

Шаг 4. Декодирование — выбор итогового текста

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

Здесь же действуют словарные подсказки. Многие движки принимают список ожидаемых терминов или короткий текстовый промпт; в руководстве OpenAI по промптам для Whisper, например, показан промпт со списком названий продуктов и компаний, который направляет написание. Подсказка сдвигает вероятности в сторону этих слов, но не спасёт аудио, которое модель действительно не слышит.

Шаг 5. Пунктуация и форматирование

Сырой результат распознавания обычно выглядит как «итак встреча пятого марта в три тридцать». Превратить его в «Итак, встреча 5 марта в 3:30.» — отдельная задача:

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

Почему распознавание речи ошибается?

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

  1. Редкие слова проигрывают частым. Фамилия, внутреннее кодовое название проекта или совсем новый инструмент звучат похоже на что-то более частое, и более частое побеждает. Прямое решение — словарные подсказки.
  2. Потерянный сигнал не восстановить. Микрофон ноутбука на другом конце комнаты, телефонный звук на 8 кГц или два человека, говорящих одновременно, убирают информацию ещё до того, как её увидит модель.
  3. Генеративные модели могут галлюцинировать. Декодер, который пишет текст токен за токеном, иногда выдаёт связные предложения на тишине или шуме. Статья Careless Whisper с FAccT 2024 нашла целиком выдуманные фразы или предложения примерно в 1% изученных расшифровок Whisper. Удаление тишины перед распознаванием снижает этот риск.
  4. Кто говорил — отдельная задача. Распознавание выдаёт слова; привязать их к говорящим — это диаризация, отдельная модель со своими ошибками.

Точность обычно измеряют через word error rate (WER) — долю ошибок на уровне слов: замены, пропуски и вставки, делённые на число реально сказанных слов. Метрика полезна для сравнения систем на одном и том же аудио, но цифры разных поставщиков напрямую несравнимы: отличаются тестовые записи, а также правила нормализации, которые решают, считать ли «3:30» и «три тридцать» одним и тем же.

Что это значит при выборе инструмента

Для повседневной работы из устройства конвейера следует несколько практических выводов:

В Speak-Y диктовка работает на 67+ языках с автоматической пунктуацией, а режим встреч записывает звонки локально, без бота в звонке, расшифровывает по говорящим и по умолчанию хранит расшифровки на вашем устройстве — плюсы и минусы записи без бота разобраны в статье как записать встречу без бота. Когда расшифровки уже есть, следующий вопрос — что с ними делать: локальный MCP-сервер позволяет AI-ассистентам вроде Claude или Cursor искать и читать их, а с нуля это объяснено в статье что такое MCP-сервер.

FAQ

Как работает распознавание речи, если коротко?

Микрофон превращает колебания давления воздуха в поток чисел — для распознавания речи обычно 16 000 отсчётов в секунду. Программа нарезает сигнал на короткие перекрывающиеся фрагменты и строит спектрограмму — картину того, какие частоты звучат громко в каждый момент. Нейросеть читает спектрограмму и предсказывает самую вероятную последовательность слов или их частей, а последний шаг расставляет пунктуацию, заглавные буквы и оформляет числа.

Что такое спектрограмма и зачем она нужна распознаванию речи?

Спектрограмма показывает, как энергия звука распределена по частотам во времени. Системы распознавания обычно используют лог-мел-спектрограмму, в которой частоты расположены так, как их воспринимает человеческий слух. Например, Whisper от OpenAI считает 80-канальную лог-мел-спектрограмму на окнах по 25 миллисекунд с шагом 10 миллисекунд — это даёт модели 100 кадров признаков на секунду звука.

Почему распознавание речи ошибается в именах и терминах?

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

Может ли распознавание речи выдумать слова, которых никто не говорил?

Да. Модели, которые пишут текст токен за токеном, способны выдавать связные фразы на тишине или шуме. Исследование Careless Whisper, представленное на FAccT в 2024 году, показало, что примерно 1% расшифровок Whisper в выборке содержал целиком выдуманные фразы или предложения. Риск снижают обрезка тишины перед распознаванием и проверка важных расшифровок.

Что такое word error rate (WER)?

Word error rate (WER), доля ошибок на уровне слов, — стандартная метрика точности: замены плюс пропуски плюс вставки, делённые на число слов в эталонной расшифровке. Чем ниже, тем лучше; значение может превысить 100%, если система вставляет много лишних слов. Цифры WER сравнимы только тогда, когда получены на одном и том же тестовом аудио и с одинаковыми правилами нормализации текста.