Во многих фантастических фильмах и книгах один из главных героев — это компьютер. Он, как правило, не просто выполняет вычисления — скажем, прокладывает маршрут для космического корабля, — но и общается с героями-людьми как живой собеседник.
В основе такого общения лежит голосовой интерфейс — концепция, которая, в отличие от машины времени и других фантастических вещей, уже стала реальностью. Голосом, например, можно вводить запросы в поисковик или адреса в навигатор — это удобно, когда заняты руки.
Ядро любого голосового интерфейса — это технология распознавания речи. Однако для полноценного «общения» с человеком машине мало уметь правильно распознавать сказанные вслух слова. Чтобы походить на живого собеседника, компьютер должен понимать, что к нему обращаются, уметь улавливать суть сказанного и озвучивать ответы.
У Яндекса есть собственная система распознавания речи —
Yandex SpeechKit. Она используется как в сервисах Яндекса — например, Навигаторе, — так и в продуктах сторонних разработчиков. SpeechKit умеет включаться по голосовой команде понимает смысл слов, а также не только слушает пользователя, но и отвечает ему — с помощью технологии синтеза речи. Практически как настоящий собседник.
Голосовая активация
Когда вы хотите что-то сказать конкретному человеку, вы называете его по имени. Это своего рода условный сигнал: «Эй! То, что я сейчас скажу, адресовано тебе и только тебе». В Yandex SpeechKit таким сигналом выступает команда голосовой активации. Командой может служить любое слово или фраза — всё зависит от фантазии разработчика.
Когда пользователь произносит команду, компьютер переходит в режим распознавания — так как понимает: всё, что будет сказано в дальнейшем, предназначено ему. Нажимать кнопки не нужно, достаточно сказать кодовую фразу.
Голосовая активация в Yandex SpeechKit, по сути, представляет собой систему распознавания речи в миниатюре. Система запускается прямо на устройстве и не требует доступа в интернет. Она анализирует весь входящий звуковой поток на предмет наличия речи, и, если речь обнаружена, начинает искать в ней кодовую фразу. Такой подход позволяет сэкономить заряд батареи в смартфоне или планшете.
Выделение смысловых объектов
Представьте, что вы услышали фразу «В Москве сегодня семь градусов тепла». Вам без дополнительных объяснений понятно, что «Москва» — это город, «сегодня» — это 30 октября, а «семь градусов» — это температура воздуха. Иначе говоря, вы умеете извлекать из слов смысл.
В этом умении человек оставляет компьютер далеко позади, но кое-чему научить машину всё же можно. Мы добавили в Yandex SpeechKit технологию выделения в распознанном тексте смысловых объектов. Такими объектами могут быть дата и время, имена и фамилии или адреса.
Технология позволяет управлять компьютером или смартфоном простыми фразами, которые не нужно запоминать специально. Например, «Поставь будильник на семь утра» или «Поехали на улицу Льва Толстого, дом 16». Фраза может звучать по-разному — система поймёт, что «Набери номер Ивана Ивановича» и «Позвони Ивану Ивановичу» — это одно и то же. Yandex SpeechKit умеет анализировать контекст и поэтому уяснит, что во фразе «Позвони Владимиру» имеется в виду человек, а во фразе «Поехали во Владимир» — город.
Синтез речи
Хороший собеседник умеет не только слушать, но и отвечать. Поэтому в Yandex SpeechKit теперь есть технология синтеза речи — она позволяет компьютеру проговаривать текст вслух. Например, может рассказать про себя сама:
Синтез речи — это задача, обратная распознаванию речи. В случае с распознаванием система получает звук, который надо преобразовать в текст, а в случае с синтезом — текст, который надо озвучить.
К синтезу речи существуют разные подходы. Один из них предполагает запись диктором отдельных фрагментов (сэмплов), из которых впоследствии «склеивается» речь. Такой подход трудоёмок, а кроме того, синтезированная таким способом речь звучит неестественно: обрывисто и с паузами в самых неожиданных местах.
В Yandex SpeechKit для синтеза речи мы используем систему на базе
скрытых марковских моделей. Акустическая модель принимает на вход последовательность фонем и выдаёт на выходе соответствующий им звук. Это позволяет добиться более плавных интонаций, гибко управлять скоростью речи и даже придавать ей те или иные эмоции.
***
Все технологии, о которых мы рассказали, входят в библиотеку
SpeechKit Mobile SDK и облачный сервис
SpeechKit Cloud и доступны сторонним разработчикам. Они могут встраивать их в свои продукты: мобильные приложения, игры, компьютерные программы, корпоративные сервисы. О том, как это сделать, можно узнать на
сайте речевых технологий Яндекса.