Почему мы убрали распознаватель, который показывал лучший результат
Какое-то время в приложении был второй русский распознаватель, GigaAM. Он перепроверял каждый русский кусок диктовки после основного распознавателя, Parakeet. По цифрам он был лучше. В жизни оказался хуже, и мы убрали его целиком.
Что говорили цифры
У нас есть постоянный набор тестовых фраз, которые люди читают вслух, и мы считаем, сколько ошибок распознаватель делает на них. На этом наборе GigaAM давал на один-два пункта меньше ошибок на сто слов, чем один Parakeet. Это заметный выигрыш, поэтому мы его и добавили.
Что показала живая речь
Набор прочитанных фраз аккуратен. Человек читает предложение с листа, говорит ровно и не запинается. Настоящая диктовка не такая. Ты думаешь на ходу, делаешь паузы, начинаешь фразу заново.
Мы посмотрели на текст, который GigaAM выдавал на нашей обычной ежедневной диктовке: 557 перепроверенных кусков за один день. Получилось плохо, и четырьмя способами:
- он вписывал в текст «э-э» и «и-и-и», то есть звуки раздумья, которых никто не хочет видеть на странице;
- он рвал предложения: точка и заглавная буква посреди фразы;
- он обрывал последнее слово там, где один кусок звука стыкуется со следующим;
- в четырёх кусках из десяти он менял только знаки препинания, и делал хуже.
На тестовом наборе ничего из этого не было видно, потому что в нём нет запинок и недоговорённых фраз.
Что мы решили
Можно было подправить проверку так, чтобы тестовый набор ловил эти проблемы. Мы не стали. Человек, который диктует каждый день, увидел проблему в тексте, а это и есть главная проверка. Мы убрали GigaAM из приложения, из настроек и из списка компонентов. Файлы модели мы тоже сняли с нашего сервера загрузок. А если на Маке осталась копия, приложение удалит её при запуске.
Урок простой. Цифра, полученная на прочитанных фразах, не переносится на живую речь. Если появится новый кандидат для русского, мы сначала проверим его на реальной диктовке, а потом уже на прочитанных фразах. Для русского у нас остаётся Parakeet.
Что мы используем сейчас и как ставятся модели — на странице про языки и модели.