Данные, аугментация и метрики (WER, MOS)
Без данных и метрик нет моделей: учимся готовить данные и измерять качество.
WER (Word Error Rate) — доля ошибок распознавания: сколько слов вставлено, удалено или заменено относительно эталонной расшифровки.
Любая аудио-модель живёт на данных и оценивается метриками. Понимать, как готовят датасеты и как считают качество, — обязательно: иначе нельзя ни обучить модель, ни честно сравнить две системы.
Откуда берут данные
Для речи есть открытые датасеты: LibriSpeech (аудиокниги), Common Voice (краудсорсинг Mozilla, много языков, включая русский), а также доменные наборы. Whisper обучался на слабо размеченных данных из интернета. Главная боль — качество разметки: расшифровки должны точно соответствовать звуку.
Аугментация: больше данных из имеющихся
Данных всегда мало, поэтому их размножают преобразованиями, сохраняющими смысл. Это резко повышает устойчивость модели к реальным условиям.
| Аугментация | Что делает | Учит модель |
| Добавление шума | подмешивает фон | работать в шуме |
| Изменение скорости | чуть быстрее/медленнее | разному темпу речи |
| Сдвиг высоты | меняет тон | разным голосам |
| SpecAugment | маскирует полосы спектрограммы | не зависеть от деталей |
WER: метрика распознавания
Качество ASR меряют долей ошибок на уровне слов. WER считает минимальное число правок (вставок, удалений, замен), чтобы из распознанного текста получить эталон, делённое на число слов эталона. WER = 0 — идеально, WER = 0.1 — 10% слов с ошибкой.
def wer(ref, hyp):
r = ref.split()
h = hyp.split()
# расстояние Левенштейна по словам
d = [[0] * (len(h) + 1) for _ in range(len(r) + 1)]
for i in range(len(r) + 1):
d[i][0] = i
for j in range(len(h) + 1):
d[0][j] = j
for i in range(1, len(r) + 1):
for j in range(1, len(h) + 1):
cost = 0 if r[i-1] == h[j-1] else 1
d[i][j] = min(d[i-1][j] + 1, d[i][j-1] + 1, d[i-1][j-1] + cost)
return round(d[len(r)][len(h)] / len(r), 3)
ref = "сегодня хорошая погода в москве"
hyp = "сегодня хорошая погода москва"
print("WER:", wer(ref, hyp))Вывод:
WER: 0.4
Из 5 слов эталона 2 правки (удаление «в», замена «москве»→«москва») дают WER = 2/5 = 0.4. Так одной формулой сравнивают любые ASR-системы.
MOS: метрика синтеза
Для TTS объективной формулы недостаточно — важна естественность на слух. Её меряют MOS (Mean Opinion Score): люди слушают и оценивают по шкале 1–5, потом усредняют. MOS около 4.5 — почти как живой голос. Это субъективная, но самая честная оценка качества синтеза.
Стоит прочувствовать, почему аугментация настолько окупается именно в аудио. Возьмите одну чистую студийную запись фразы — для модели это всего один пример. Но та же фраза в реальной жизни встретится в метро, по телефону, от человека с насморком, на фоне телевизора. Подмешивая шум, меняя темп и сдвигая высоту, мы из одной записи получаем десятки правдоподобных вариантов, не выходя в поле с микрофоном. Это дешевле сбора новых данных и напрямую закрывает разрыв между «лабораторным» звуком и тем, что услышит модель в продакшене.
У SpecAugment есть красивая интуиция: вместо того чтобы портить саму волну, он маскирует полосы прямо на спектрограмме — закрашивает горизонтальные (частотные) и вертикальные (временные) полосы нулями. Это заставляет модель не цепляться за отдельную частоту или мгновение, а восстанавливать смысл по контексту, как человек разбирает речь, даже если часть слов заглушил кашель. Приём оказался настолько эффективным и дешёвым (он работает уже на готовых признаках, без перегенерации аудио), что стал стандартом обучения почти всех современных ASR-систем.
Важно понимать, что у WER и MOS принципиально разная природа, и это не случайность. Распознавание имеет объективный эталон — точную расшифровку, с которой можно механически сравнить выход, поэтому WER считается формулой. А у синтеза «правильного» ответа нет: естественность голоса нельзя свести к числу, её можно только спросить у людей, отсюда субъективный MOS. Эта асимметрия объясняет, почему прогресс ASR измеряют автоматически и быстро, а прогресс TTS приходится подтверждать дорогими прослушиваниями — и почему вокруг автоматических предсказателей MOS идёт столько исследований.
Как работает под капотом
WER не идеален: он одинаково штрафует за критичную и неважную ошибку, не учитывает смысл. Поэтому смотрят и CER (по символам, удобно для языков без пробелов), и доменные метрики. Для TTS вдобавок к MOS используют автоматические оценки (PESQ, нейросетевые предсказатели MOS), чтобы не гонять людей на каждом эксперименте. Метрику всегда выбирают под задачу.
Частые ошибки
- Сравнивать WER на разных тестах. WER честен только на одном и том же наборе данных.
- Аугментировать бессмысленно. Сдвиг высоты на октаву или адский шум учат модель ерунде.
- Доверять одному MOS-прогону. Нужны достаточная выборка слушателей и контроль условий.
Итоги
- Данные берут из открытых датасетов (LibriSpeech, Common Voice) и веба.
- Аугментация (шум, скорость, SpecAugment) повышает устойчивость модели.
- WER — доля ошибок ASR на уровне слов; считается через правки до эталона.
- MOS — субъективная оценка естественности TTS по шкале 1–5.