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

Что такое WER и как измеряют точность распознавания речи

Основы4 мин

Коротко

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

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

WER (Word Error Rate) — основная метрика точности распознавания речи (ASR). Она показывает, какая доля слов распознана с ошибкой по сравнению с эталонной расшифровкой, сделанной человеком.

Формула:

WER = (S + D + I) / N

  • S (substitutions) — заменённые слова;
  • D (deletions) — пропущенные слова;
  • I (insertions) — лишние слова;
  • N — количество слов в эталоне.

Чем ниже WER, тем лучше. Из-за вставок WER может быть больше 100%.

Пример расчёта

Эталон: «откройте счёт в банке сегодня» — 5 слов. Распознано: «откройте счет банке сегодня утром».

  • «счёт» → «счет» — замена (S = 1);
  • «в» пропущено (D = 1);
  • «утром» добавлено (I = 1).

WER = 3 / 5 = 60%. Но если перед расчётом заменить «ё» на «е», замена исчезает и WER = 2 / 5 = 40%. Это показывает главное: без единой нормализации текста сравнивать цифры бессмысленно.

Связанные метрики

МетрикаЧто измеряетКогда полезна
CER (Character Error Rate)Ошибки на уровне символовЯзыки с длинными словами и суффиксами, например узбекский
SER (Sentence Error Rate)Доля фраз хотя бы с одной ошибкойКороткие команды, голосовые меню
Точность ключевых сущностейПравильно ли распознаны имена, номера, суммы, названия товаровКолл-центры, где важны конкретные данные, а не каждое слово
Точность диаризацииВерно ли система разделила реплики оператора и клиентаАналитика звонков

Для бизнеса часто важнее не общий WER, а то, распознаёт ли система номер договора, сумму и название услуги.

Как измерить WER на своих звонках

  1. Соберите выборку. Возьмите реальные записи, которые отражают ваши условия: разные операторы и клиенты, шум, плохая связь, русская, узбекская и смешанная речь. Не выбирайте только чистые записи.
  2. Сделайте эталонные расшифровки. Человек расшифровывает записи дословно, по единым правилам: как писать числа, сокращения, слова-паразиты, переключения языков.
  3. Нормализуйте текст. Приведите эталон и результат системы к одному виду: нижний регистр, без пунктуации, единое написание «ё», апострофов и чисел.
  4. Посчитайте метрики отдельно для каждой группы условий: шумные и чистые звонки, русский, узбекский, смешанный.
  5. Разберите ошибки вручную. Посмотрите, какие слова путаются чаще всего — это подскажет, где нужен словарь терминов или дообучение.

Для расчёта подходит, например, библиотека jiwer для Python:

import re
import jiwer

def normalize(text: str) -> str:
    text = text.lower().replace("ё", "е")
    text = re.sub(r"[^\w\s]", "", text)
    return " ".join(text.split())

reference = normalize("Откройте счёт в банке сегодня.")
hypothesis = normalize("откройте счет банке сегодня утром")

print(jiwer.wer(reference, hypothesis))  # 0.4
print(jiwer.cer(reference, hypothesis))

Почему цифры вендоров не совпадают с вашими

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

  • Телефонный канал. Узкая полоса частот и сжатие ухудшают качество звука.
  • Шум. Улица, магазин, машина, разговоры на фоне.
  • Смешение языков. Клиент начинает по-узбекски, вставляет русские слова и термины — модели, обученные на одном языке, на таких фразах ошибаются чаще.
  • Узбекский язык. Он агглютинативный: одно неверное окончание делает всё слово ошибкой, поэтому WER выглядит хуже, чем реальное понимание. Добавляются латиница и кириллица, разные варианты апострофа в o‘ и g‘.
  • Специфичная лексика. Названия ваших товаров, тарифов, улиц и имена.
  • Разная нормализация. Вендор мог считать WER по своим правилам, которые невозможно сравнить с вашими.

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

Частые ошибки

  • Сравнивать WER разных вендоров, посчитанный на разных данных.
  • Тестировать на нескольких удачных записях.
  • Смотреть только на средний WER и не разделять по условиям.
  • Забывать, что для задачи важны конкретные сущности, а не все слова.

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

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

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

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

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

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

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

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