Билингвальный ASR — уже в станциях и чате с Алисой
Мы с хорошими новостями — теперь Алиса знает два языкаа: русский и английский! При этом распознавание русского не пострадало, а стало даже лучше. Обновлённая Алиса и поддержит диалог с носителем, и поможет улучшить навыки новичка. Мы ликуем, пользователи в восторге, а вот репетиторы и всем известная сова немного грустят.
Евгений Ганкович, руководитель группы ASR, рассказал, с какими вызовами столкнулась команда:
— Необходимо было обучить модель, которая способна работать с новым языком, при этом критически важно было не просадить качество на русском.
— Домен английского для русскоговорящих пользователей специфичен и не решается с помощью открытых данных.
— End-of-utterance (EOU) по многим причинам работает у англоговорящих пользователей иначе.
Разберём, почему нужно было создавать билингвальную модель, а не обучать две отдельные.
Сложность решения в том, что заранее неизвестно, на каком языке поступит запрос: пользователь может начать на русском, а продолжить на английском или наоборот.
В теории можно использовать классификатор: задан запрос, система определяет язык и направляет его в соответствующую модель. Но чтобы точно определить язык, придётся подождать несколько секунд. К тому же такая система сложнее в поддержке и плохо справляется со смешанными языками (см. «смотря какой fabric, смотря сколько details»).
Выходит, что разумный путь — развивать текущий русскоязычный стек до двуязычного и использовать одну модель, которая инкапсулирует логику выбора языка.
Однако и здесь есть подводные камни. Даже незначительное ухудшение распознавания на русском негативно скажется на пользовательском опыте. Поэтому новую логику в модель нужно добавлять осторожно. Причём улучшения вносятся в две ключевые части голосового стека:
- End-of-utterance (EOU) — модель на основе аудио и паршального распознавания, которая определяет, когда пользователь закончил говорить.
- E2E Seq2Seq на базе трансформеров — модель распознаёт завершённый фрагмент речи на русском или английском языках.
Чтобы улучшить эти две компоненты, нужны данные. Начать можно с открытых — но это другой домен: и акустика, и пользователи отличаются. Поэтому мы привлекли отдельных людей для создания более подходящих нам данных. Так собрали рабочее решение, но не сразу получили нужное качество.
Следующим шагом провели тесты на сотрудниках Яндекса, которые использовали колонку с раскатанной технологии. На этой стадии смогли собрать ошибки, необходимые для улучшения модели. Группы, на которые раскатывали технологию, росли по мере улучшения модели, а мы всё тоньше настраивали модель.
По мере появления данных мы проводили эксперименты с обеими моделями, подбирая датамиксы и гиперпараметры тренировок. И в какой-то момент достигли качества для полноценного распознавания целевых запросов на английском. Интересно, что в этих экспериментах получилось немного улучшить качество русского, так что исходную задачу даже перевыполнили.
Оставалось разобраться с EOU. Здесь были сложности из-за режима «тьютора», в котором можно вести диалог с Алисой. Пользователи сценария могут делать паузы, растягивать слова, и в таких случаях обычная модель может преждевременно обрезать речь. Дослушивать мы тоже не можем — это может повлиять на другие компоненты и ответы Алисы сильно замедлятся.
Решение крылось в добавлении в пайплайн EoU более робастной и стабильной модели, способной учитывать паузы и длительность речи. Хотелось бы рассказать о технологии подробнее, но для этого потребуется описать весь пайплайн распознавания — если вам интересно, дайте знать в комментариях.
В итоге мы получили результат, который стал важной частью большого релиза:
— Голосовой набор сообщений на английском языке в чате и колонке;
— Сценарий «тьютор» на колонке: пользователи могут вести диалог с Алисой, получать фидбек и переводить текст голосом.
Зовём протестировать, что у нас получилось: попробуйте поговорить с Алисой на английском или скажите: «Алиса, давай практиковать английский».
Евгений Ганкович ❣ Специально для
Speech Info