WER: что показывает доля ошибок распознавания речи — это отношение суммы замен, пропусков и вставок к числу слов в эталонной расшифровке. Метрика отвечает на один вопрос: сколько правок нужно внести в машинный текст, чтобы он совпал с человеческим эталоном. Ниже — формула, ручной расчёт на двух русских парах и порядок проверки чужого значения.
Формула и три типа ошибок
Документация Microsoft в статье об оценке точности модели распознавания описывает WER как отраслевой стандарт измерения точности: метрика считает число неверно распознанных слов и делит сумму на общее число слов в расшифровке, размеченной человеком. Знаменатель берётся из эталона. Знаменатель задаёт эталон, а лишние слова в гипотезе увеличивают число вставок.
Ошибки делятся на три категории. Insertion (I) — слова, которых в эталоне нет, но которые появились в гипотезе. Deletion (D) — слова из эталона, не попавшие в гипотезу. Substitution (S) — слова, заменённые другими. Формула собирает их в одну сумму:
WER = (S + D + I) / N
Документация Google Cloud в руководстве по измерению точности распознавания приводит те же три категории и добавляет важное свойство: при очень низкой точности, когда в гипотезу попадает много нового текста, WER может превысить 100%. Курс Hugging Face по метрикам ASR объясняет причину: знаменатель — это число слов в эталоне, поэтому верхнего предела у отношения нет. Пример из курса: если все десять предсказанных слов ошибочны, а эталон содержит два слова, WER равен 500%.
Единицы различаются по интерфейсам. Документация Microsoft отмечает, что в портале Foundry и Speech Studio частное умножается на 100 и показывается процентами, а результаты Speech CLI и REST API идут без умножения. Путаница между долей и процентами — первая причина, по которой два числа из разных отчётов кажутся несопоставимыми.
Таблица ниже собирает три категории и их источник.
| Категория | Что произошло | Откуда берётся в счёте |
|---|---|---|
| Substitution (S) | Слово эталона заменено другим | Позиция есть в обеих строках |
| Deletion (D) | Слово эталона отсутствует в гипотезе | Позиция есть только в эталоне |
| Insertion (I) | В гипотезе появилось лишнее слово | Позиция есть только в гипотезе |
Счёт идёт по минимальному выравниванию. Документация Speechmatics в разделе о бенчмаркинге называет это расстоянием Левенштейна: сравниваются эталон и гипотеза, находится минимальное число правок, которое приводит строки к совпадению. Для расчёта нужна минимальная сумма S+D+I.
Ручной расчёт на двух русских парах
Возьмём полностью заданные учебные строки. Все значения заданы для учебного примера; модель и реальные аудио не использовались. Нормализация упражнения — нижний регистр, без пунктуации, слова разделяются пробелами, буква ё сохраняется одинаково в обеих строках.
Пара A. Эталон: «мы отправим готовый отчёт завтра утром после проверки всех таблиц». Гипотеза: «мы отправили готовый отчёт завтра после проверки всех таблиц сегодня». В эталоне десять слов. Выравнивание даёт три правки: отправим заменено на отправили (S=1), слово утром пропало (D=1), после таблиц появилось лишнее сегодня (I=1). WER = (1+1+1)/10 = 0,30, то есть 30%.
Пара B. Эталон: «мы не подтвердили оплату». Гипотеза: «мы подтвердили оплату». В эталоне четыре слова. Здесь одно удаление: пропало не. WER = 1/4 = 25%. Смысл изменился критически, хотя счётчик показывает всего одну правку. Пропущенное отрицание нужно отдельно проверить по исходной записи.
Теперь агрегация. Для двух пар вместе E = 3 + 1 = 4, N = 10 + 4 = 14, корпусный WER = 4/14 ≈ 28,57%. Простое среднее двух значений — (30% + 25%)/2 = 27,5% — даёт другой ответ, и подписывать его как corpus WER нельзя. Курс Hugging Face описывает этот же порядок: при оценке на множестве предложений S, D, I и N суммируются по всем предложениям, и только потом считается отношение.
Крайний случай показывает, почему WER нельзя переворачивать. Эталон: «да». Гипотеза: «да мы уже всё окончательно решили». N = 1, I = 5, WER = 500%. Такое значение возможно. Вычитать его из 100 и называть вероятностью правильного смысла нельзя: у метрики нет верхней границы, и 100 − WER в этом примере даёт отрицательное число.
Ниже — полный исходник упражнения, который можно скопировать и пересчитать.
Пара A
reference: мы отправим готовый отчёт завтра утром после проверки всех таблиц
hypothesis: мы отправили готовый отчёт завтра после проверки всех таблиц сегодня
N = 10
S = 1 (отправим -> отправили)
D = 1 (утром)
I = 1 (сегодня)
WER = (1 + 1 + 1) / 10 × 100% = 30%
Пара B
reference: мы не подтвердили оплату
hypothesis: мы подтвердили оплату
N = 4
S = 0
D = 1 (не)
I = 0
WER = 1 / 4 × 100% = 25%
Корпусная агрегация
E = 3 + 1 = 4
N = 10 + 4 = 14
corpus WER = 4 / 14 × 100% ≈ 28,57%
Простое среднее (для сравнения, не corpus WER)
(30% + 25%) / 2 = 27,5%
Крайний случай
reference: да
hypothesis: да мы уже всё окончательно решили
N = 1, I = 5, WER = 500%
Сверьте число правок с минимальной дистанцией редактирования.
Нормализация до сравнения
Строки сравниваются после приведения к общему виду. Документация Google Cloud указывает, что при вычислении WER машинная расшифровка сравнивается с эталоном, и текст обеих сторон нормализуется: пунктуация удаляется, регистр игнорируется. Документация Speechmatics называет нормализацию обязательным шагом до оценки и приводит ориентиры: привести к нижнему регистру, заменить символы и цифры словами, схлопнуть пробелы, раскрыть сокращения, стандартизировать написание, убрать пунктуацию.
Масштаб эффекта виден на примере из документации Speechmatics. Одна и та же пара строк без обработки даёт 9 ошибок и WER 41% на базе 22 слов. После нормализации остаётся 2 ошибки, а знаменатель становится 24 слова, и WER падает до 8%. В этом примере результат изменился после нормализации одной и той же пары строк.
Курс Hugging Face показывает обратную сторону. Если модель обучена на тексте с пунктуацией и регистром, она предсказывает форматированный текст, и такой вывод удобнее читать. Нормализация перед подсчётом снижает WER, потому что задача упрощается: модели больше не нужно угадывать регистр и расставлять знаки по звуку. Курс рекомендует обучать систему на форматированном тексте, а оценивать на нормализованном — так сохраняется и качество вывода, и сопоставимость чисел.
Практический вывод: сравнивать два значения WER можно только при одинаковых правилах нормализации. Если в одном отчёте числа записаны цифрами, а в другом словами, разница в процентах покажет разницу в подготовке данных.
| Шаг нормализации | До | После |
|---|---|---|
| Нижний регистр | «Привет, мир» | «привет мир» |
| Цифры словами | «42» | «сорок два» |
| Схлопывание пробелов | «привет мир» | «привет мир» |
| Удаление пунктуации | «да, он пошёл!» | «да он пошёл» |
Как читать чужой бенчмарк
Число WER из статьи или отчёта имеет смысл только вместе с условиями замера. Документация Speechmatics предупреждает: тестовый набор должен быть репрезентативным для вашего сценария, а открытые корпуса стоит использовать с осторожностью, потому что многие модели обучались на этих же данных и могут «помнить» их. Там же приведён пример: Librispeech и CallHome для одного движка расходятся до 10 процентных пунктов, поскольку первый состоит из качественной начитки аудиокниг, а второй — из разговорной записи низкого качества.
Документация Microsoft описывает четыре сценария и их типичные профили ошибок. Колл-центр: низкое качество звука, 8 кГц, возможны два говорящих в одном канале, узкая доменная лексика, разговорный стиль; качество распознавания среднее, ниже 30% WER, вставки редки, удаления и замены часты. Голосовой ассистент: высокое качество, 16 кГц, много имён и названий; качество высокое, может быть ниже 10% WER. Диктовка: высокое качество, разнообразная лексика; качество высокое, может быть ниже 10% WER, часты замены. Субтитры к видео: переменное качество, музыка и шум, разный стиль речи; качество зависит от типа видео и может быть ниже 50% WER, удаления часты.
Документация Microsoft также даёт ориентиры по распределению ошибок. Много удалений обычно связано со слабым сигналом — помогает запись ближе к источнику. Вставки указывают на шумную обстановку и переговоры на фоне. Замены часто возникают, когда в обучающих данных мало доменных терминов. Разбор по отдельным файлам показывает, какие ошибки присущи конкретной записи, и помогает точнее выбрать данные для дообучения.
Документация Speechmatics добавляет требования к размеру набора: для статистической значимости рекомендуется не менее 10 000 слов, то есть около часа непрерывной речи на каждый проверяемый язык. Там же отмечено, что характеристики говорящего влияют на результат: возраст, акцент и пол меняют точность, и по отраслевым наблюдениям речь женщин и пожилых людей распознаётся хуже, чем речь мужчин и молодых людей.
Соберите карточку условий перед тем, как сравнивать два числа.
| Поле карточки | Что фиксируем |
|---|---|
| Аудио | Что записано, канал, частота, шум |
| Эталон | Кто размечал, по каким правилам |
| Нормализация | Числа, пунктуация, ё, сокращения |
| Язык и канал | Язык, диалект, телефон или микрофон |
| Единицы | Доля или проценты |
| Агрегация | Сумма E/N или среднее по фразам |
| Отдельные проверки | Имена, отрицания, метки говорящих |
Если поля карточки неизвестны, два WER не считаются честным сравнением. Это относится и к собственным замерам: сохраняйте карточку вместе с числом, иначе через месяц вы не восстановите условия.
Смысловые ошибки и пределы метрики
WER взвешивает все правки одинаково. Документация Speechmatics прямо называет это ограничением: одни ошибки меняют смысл предложения, другие остаются опечаткой. Пара B из упражнения показывает крайний случай: одно удаление дало 25% и полностью перевернуло смысл фразы. Другая пара с тем же счётом могла бы дать ошибку в падеже, которая на смысл не влияет.
Документация Speechmatics перечисляет и другие ограничения. Эталонные расшифровки дороги в производстве: ручная транскрипция стоит около 100 долларов за час записи. Пунктуация, регистр и разметка говорящих в WER не измеряются, хотя важны для читаемости. Курс Hugging Face добавляет языковое ограничение: для языков без понятия слова, например для китайского и японского, WER теряет смысл, и там переходят к метрике на уровне символов.
Отдельно стоит связь с уверенностью модели. Документация Google Cloud указывает, что WER и confidence score независимы и обычно не коррелируют: уверенность основана на правдоподобии, а WER — на факте правильного распознавания. Слово может быть распознано верно при низкой уверенности, если оно редкое или запись шумная, и наоборот.
Документация Microsoft описывает расширение метрики. Token Error Rate считается по той же формуле, но на уровне токенов и учитывает формат вывода: пунктуацию, регистр и обратную текстовую нормализацию. Для TER тестовые данные должны содержать расшифровки с форматированием. В реальной задаче полезно смотреть оба числа: WER показывает лексическую точность, TER — качество итогового отображаемого текста.
Ориентиры качества из документации Microsoft: WER 5–10% считается хорошим и готовым к использованию, 20% приемлемо с оговоркой о дополнительном обучении, 30% и выше говорит о низком качестве и необходимости дообучения. Это ориентиры для конкретного продукта, и переносить их на другой домен без проверки не стоит.
Пошаговый порядок замера
Соберите тестовый набор. Документация Microsoft рекомендует от 30 минут до 5 часов репрезентативного аудио. Документация Google Cloud советует не менее 30 минут и до 3 часов, а также требует, чтобы запись шла на том же оборудовании, что и рабочий поток. Документация Speechmatics ориентируется на 10 000 слов. Выбирайте объём по задаче и фиксируйте его в карточке.
Получите эталон. Документация Google Cloud описывает это как одно- или двухпроходную ручную транскрипцию с целью получить 100% точный текст. Правила разметки должны совпадать с соглашениями целевой системы распознавания: пунктуация, числа и регистр приводятся к одному виду.
Получите гипотезу. Прогоните аудио через систему и сохраните машинный текст как есть, без ручных правок. Документация Google Cloud предлагает сначала исправить замеченные проблемы в тексте, а затем привязать эталон к аудио и посмотреть визуализацию расхождений.
Посчитайте метрику. Документация Microsoft описывает два пути: через портал, где оценка точности запускается автоматически на проверочном наборе, и через Speech CLI командой spx csr evaluation create с обязательным параметром --api-version v3.2. Результат забирается командой spx csr evaluation status, и в теле ответа приходят значения WER вместе со счётчиками замен, удалений и вставок. Документация Google Cloud предлагает привязать эталон к аудио в интерфейсе и увидеть WER вместе с визуализацией различий.
Разберите ошибки. Документация Microsoft отмечает, что страница результатов перечисляет все фразы набора и результаты распознавания рядом с эталоном, а типы ошибок можно включать и выключать. Прослушивание аудио и сравнение колонок показывает, какая модель подходит и где нужно дообучение.
Зафиксируйте карточку условий. Сохраните набор, правила нормализации, единицы и способ агрегации рядом с числом. Без этого повторный замер через месяц даст несопоставимый результат.
Отрицательная контрольная проба
Проверка нужна, чтобы поймать ошибку в собственном расчёте. Возьмите пару, где эталон и гипотеза совпадают полностью. Ожидаемый результат — ноль ошибок и WER 0%. Если получилось другое число, ищите причину в нормализации: лишние пробелы, разные формы записи чисел, несовпадающий регистр или разная запись ё дают ложные правки.
Вторая проба — наоборот, заведомо плохая гипотеза. Возьмите эталон «да» и гипотезу «да мы уже всё окончательно решили». Ожидаемый результат — 500%. Если формула вернула 100% или меньше, значит где-то ограничили результат сверху или перепутали знаменатель.
Третья проба проверяет агрегацию. Посчитайте корпусный WER для двух пар из упражнения и сравните с простым средним. Ожидаемые значения — 28,57% и 27,5%. Совпадение этих чисел означает, что вы усреднили готовые проценты там, где нужно было суммировать счётчики.
Если проба не сошлась, порядок исправления такой. Сначала пересчитайте N по эталону. Затем проверьте, что каждая правка отнесена ровно к одной категории и не посчитана дважды. После этого сверьте минимальность выравнивания: сумма S+D+I должна равняться минимальной дистанции редактирования. И только потом пересматривайте нормализацию — она влияет на все три предыдущих пункта.
Частые вопросы
Что такое word error rate простыми словами?
Это доля слов, которые система распознала неверно, от общего числа слов в эталонной расшифровке. Считаются три вида правок: замены, пропуски и лишние слова. Результат выражается долей или процентами в зависимости от интерфейса. Чем ниже значение, тем ближе машинный текст к человеческому эталону.
Как выглядит формула word error rate?
WER = (S + D + I) / N, где S — замены, D — пропуски, I — вставки, N — число слов в эталоне. Документация Microsoft и Google Cloud приводят эту же формулу. В интерфейсах значение умножается на 100, в ответах API приходит долей. Знаменатель всегда берётся из эталона.
Почему WER может быть больше 100%?
Знаменатель — это число слов в эталоне, а вставки в гипотезу не ограничены его длиной. Курс Hugging Face приводит пример: если все десять предсказанных слов ошибочны, а эталон содержит два слова, WER равен 500%. Вычитать такое значение из 100 и получать вероятность правильного смысла нельзя. У метрики нет верхней границы.
Чем WER отличается от CER и TER?
CER считает правки на уровне символов, поэтому мягче оценивает опечатки внутри слова. TER работает на уровне токенов и учитывает формат вывода: пунктуацию, регистр, обратную текстовую нормализацию. WER остаётся основной метрикой для языков с понятием слова. Для китайского и японского переходят к метрике на уровне символов.
Можно ли сравнивать два значения WER из разных отчётов?
Только при совпадении условий: одинаковый тестовый набор, правила нормализации, единицы и способ агрегации. Документация Speechmatics показывает, что Librispeech и CallHome для одного движка расходятся до 10 процентных пунктов. Соберите карточку условий по обоим числам. Если поля карточки неизвестны, сравнение не будет честным.
