Анализ и синтез речи: опыт выпускницы ФиПЛа
Интервью с Александрой Арсеновной Бадасян о том, как выстроена логика распознания и синтеза речи, а также что именно нужно изучать студенту, желающему заниматься проектами в данной сфере.
%20(1).jpg)
Автоматическое распознавание и синтез речи – это одна из наиболее востребованных сфер прикладной лингвистики на сегодняшний день, активно набирающая популярность. В связи с этим мы взяли интервью у Александры Арсеновны Бадасян, преподавателя научно-исследовательского семинара «Анализ и синтез устной речи». В сегодняшнем интервью она поделится информацией о своём карьерном пути и об особенностях данного направления лингвистики.
— Добрый день. Пожалуйста, расскажите о своей карьере: где вы работали и над какими проектами?
— Я работаю в области речи. Всего у меня за спиной два места работы. Сначала я работала в компании, которая разрабатывает AI-ботов в телефонном канале — простыми словами, это те роботы, которые звонят нам и предлагают купить какой-нибудь тариф. Я занималась там распознаванием речи, то есть тем, чтобы робот автоматически понимал, что вы говорите, и мог извлекать какие-то ключевые фразы и моменты. Сейчас я работаю в RuTube’е в команде автоматических субтитров. По сути, занимаюсь очень похожей вещью — тоже распознаванием речи. Но сейчас я ушла в разработку, уже не обучаю модели, пишу больше кода.
В Вышке преподаю синтез речи на курсе НИС «Анализ и синтез речи». Рассказываю там про распознавание речи. Вот вроде бы и все.
— Получается, что карьерный путь начинается с обучения моделей, и уже после можно переходить в разработчики кода? Это можно считать стандартным путём или же существуют какие-то альтернативы?
— Нет, это, наоборот, нестандартный путь. Часто я видела, что многие стремятся попасть в Data Science, в исследовательскую часть с обучением модели, сборкой данных. И я тоже, как и все, туда стремилась и именно так выбирала работу. Но оказалось, что это мне неинтересно. Поэтому понемножку я стала всё больше уходить в разработку. Сейчас я, по сути, ML-backend — такого термина нет, но я занимаюсь разработкой всего, что необходимо в Data Science.
Когда ты обучаешь модель, то не получаешь какой-то готовый продукт. У тебя просто есть огромный набор чисел, весов, благодаря которым можно принимать решения. Но нужно еще написать довольно много кода, чтобы все обернуть в какое-то приложение или интерфейс. А это тоже очень большая работа, и она оказалась для меня просто более интересной.
— Для чего вообще в современном мире используются анализ и синтез речи?
— Если говорить про распознавание и синтез речи… Самый бытовой пример — это «Алиса» Яндекса. В целом, сейчас очень много голосовых помощников, голосовой набор: те же самые боты в телефонном канале. Это может пригодиться, например, для автоответчика (у Т-банка есть автоответчик). Это все строится на основе анализа и синтеза речи. На самом деле, то, что мы слышим в автобусах, когда проезжаем остановки, это тоже синтез речи, просто очень старый его тип – конкатенативный, который состоит в том, что отрывки речевого сигнала склеиваются между собой.
— Как Вы считаете, какими навыками должен обладать студент для того, чтобы разобраться в этих сферах?
— Сложно однозначно сказать, но когда я выбирала сферу деятельности, определяющим фактором стало то, что я просто люблю язык. Мне нравится лингвистика, понравилось работать с речью в моей курсовой и дипломной работе, и было просто невероятно интересно погрузиться в разработку искусственного интеллекта, увидеть, как это всё происходит, и приложить к этому руку. Следовательно, лингвистические знания не помешают, знания фонетики особенно пригодятся. В компьютерной части нужно хорошо понимать, что такое машинное обучение, следовательно, нужно иметь какую-то базу в математике. Ну и дальше уже развиваться, можно идти в глубокое обучение, потому что и синтез, и распознавание речи — это, конечно же, все глубокое обучение. И развивать навыки программирования. Все то, что дает ФиПЛ, — вот оно действительно пригодится.
— Расскажите, пожалуйста, про основные метрики, которые используются при распознавании речи.
— В распознавании речи есть две основные метрики — это Word Error Rate (WER) и Character Error Rate (CER). WER измеряет процент ошибки с точки зрения слов, СER — процент ошибки с точки зрения букв. Очень просто считается: складываются все ошибки, например, все слова, которые были заменены, пропущены или вставлены лишними, и делятся на общее количество слов. Все то же самое с CER, просто мы считаем уже не слова, а буквы. Для некоторых языков, в том числе русского, недостаточно читать только Word Error Rate, потому что у нас есть окончания и склонения, которые могут сильно повысить процент ошибки слов, потому что, например, вместо «сказал» у нас распозналось «сказала».
По поводу синтеза речи тоже сразу скажу, вообще ничего сложного. Там основная метрика — это оценка пользователей. То есть создаётся опрос, где люди просто говорят, понравилось им, как звучит, или не понравилось.
— А как моделируется интонация при синтезе? Это тоже немаловажный аспект устной речи.
— Да, это очень важный аспект. И здесь как раз играют роль данные для обучения модели. Если у нас данные эмоционально неразнообразны, интонационно неразнообразны, то у нас получится монотонный синтез речи. Например, именно такого мы добивались поначалу, когда делали синтез для ботов в речевом канале, но потом это стало не востребованно. Если мы возьмем разнообразный корпус, где будет достаточное количество вопросов, достаточное количество предложений с восклицательной интонацией, то у нас получится более эмоциональный синтез.
Используется общая математика для того, чтобы работать над интонацией, синтезом речи. И сейчас есть модели, в которых мы можем управлять интонацией и заранее указывать, какую интонацию мы хотим получить в синтезированной речи. Можно считать, что внутри, «под капотом», несколько моделей синтеза речи, каждая отвечает за определенную интонацию, и просто мы как пользователи можем выбрать, какую мы хотели бы использовать для генерации.
— Еще один вопрос, который тесно связан с интонацией: про ударение. Оно точно так же зависит от данных. Но что делать, допустим, если нам нужно сгенерировать слово, которое отсутствует в базе данных?
— Эта проблема решается очень просто. Когда мы обучаем модель синтеза речи, мы указываем ударение в словах каким-то знаком. Обычно это плюсик. Он располагается перед ударной буквой, но не во всех словах, поэтому модель должна быть готова к тому, что пользователи не будут ставить никаких плюсиков. У неё, условно, развивается языковая интуиция, где какие ударения ставить. Затем, когда уже пользователи генерируют какую-то фразу и сталкиваются с тем, что в одном слове ударение стоит неправильно, можно вручную поставить плюсик. То есть задача решается довольно просто.
Чтобы разобраться в основах работы синтеза речи, предлагаем также дополнительно ознакомиться со статьёй, посвящённой голосовым помощникам и тому, как внутри них работает синтез речи.
Автор: Шмаков Иван, 23ФиПЛ

