⌛ Как Правильно Измерять Качество STT?
Мы часто сталкиваемся с заблуждениями по поводу того как "правильно" проверять качество STT систем. В этой статье мы бы хотели описать как это правильно делается и какие метрики используются для оценки качества. Важно еще понимать как эти метрики интерпретировать.
Валидационные датасеты
Для начала формируется и размечается так называемая "валидационная" выборка из аудио-файлов, которые:
- Модель не видела при тренировке;
- Являются показательными для домена, в котором вы работаете (например, если вы хотите проверять звонки - значит надо найти звонки);
- Качество аудио и кодеки тоже должны примерно соответствовать вашему домену;
Как правило, хватает где-то в районе 2-5 часов на один домен (больше, если у вас много уникальных и редких слов, но конечно можно взять фразы состоящие только из таких слов, что может быть сложнее на практике).
Дальше с аудио-файлами обычно проделывают такие действия (мы можем это все проделать за вас):
- Для удобства аудио нарезаются на смысловые отрывки до 20 секунд длиной;
- Каждый кусочек транскрибируется;
- После нарезки проводится нормализация (числительные превращаются в буквы);
- Удаляются слишком короткие, сломанные, плохие файлы;
У нас все эти процессы автоматизированы.
Применяемые метрики
Мы используем метрику Word Error Rate (можно совместно с Сharacter Error Rate). Для простоты понимания:
- WER можно понимать как примерный % НЕВЕРНЫХ слов;
- WER 50% - каждое второе слово неверно;
- WER 20% - каждое пятое;
- WER 10% - каждое десятое;
- WER 5% - каждое двадцатое;
В реальности WER считается чуть сложнее (учитываются также замены и удаления слов), но суть от этого особо не меняется. Если вы знакомы с расстоянием Левенштейна - то WER это оно для слов, а CER - для букв.
Учитывайте также, что если STT модель проглотила предлог или поставила слово не в тот падеж, то в русском языке метрика WER получает штраф. Поэтому для русского WER выше, чем для английского при прочих равных.
А как эти метрики чувствуют себя на практике?
В английском языке WER людей при ручной транскрибации речи составляет ([1], [2]):
- 4-5% на чистой речи;
- 10-12% на шумной речи / речи с акцентом / речи с дефектами;
На русском языке наша оценка уровня WER людей на чистой речи - минимум 6-7% (из-за склонений и спряжений).
Что это означает для систем распознавания речи? Если не вдаваться в подробности настройки систем под конкретные домены, то логично ожидать, что при прочих равных системы будут выдавать такие метрики:
Домен | Русский | Английский |
---|---|---|
Ручное транскрибирование | 5-7% | 4-5% |
Чистая речь | 7 -10% | 5-10% |
Звонки | 10-20% | 10-15% |
Шумные данные | 20-40% | 20-30% |
Много это или мало зависит от вашей конкретной задачи, но если вам говорят, что система имеет WER меньше 5% для русского языка, это как минимум повод сильно задуматься.