Как стать автором
Обновить

Мечта айтишника, или как мы создали девушку-робота

Время на прочтение5 мин
Количество просмотров29K
Здравствуйте, жители Хабра!

Представьте: есть девушки, которые не требуют к себе никакого внимания. Им не нужно дарить цветы, водить в кино, они спокойно обходятся без подарков на День рождения и 8 марта. Они не только внимательно выслушают вас в любое время дня и ночи, но и подскажут, кто поможет решить ту или иную проблему.

image

Милена — девушка, которая вас понимает


Гордо заявляем, что такая девушка работает в нашей компании — «Самый нужный телефон». Правда, назвать ее девушкой в полном смысле слова нельзя. Это голосовой робот, который умеет разговаривать и понимает человеческую речь. Ее зовут Милена.

Суть ее работы заключается в том, что она помогает людям найти ту или иную услугу. Милена знает, где заказать пиццу, купить москитные сетки, как вызвать трезвого водителя и у кого попросить компьютерной помощи. Иначе говоря, она связывает между собой покупателей и поставщиков, минуя третьи лица.

В этой статье мы расскажем вам о том, как, собственно, создавалась такая девушка-робот. Но сначала — немного о том, чем мы занимаемся.

Зачем все это нужно


Наш стартап — это голосовой сервис поиска любых услуг и товаров по телефону и в интернете. Если вам нужно постричься, вы заходите на сайт www.88005554448.ru (или звоните по соответствующему номеру) и произносите «парикмахер». Милена тут же отреагирует на это слово — и соединит вас с поставщиками этой услуги, то есть парикмахерами. Вся процедура происходит автоматически и бесплатно.

Если же парикмахер — это вы, вам нужно зарегистрироваться на сайте и настроить ключевые слова, по которым вас будут находить. Также нужно будет указать месторасположение и телефон. А вот это уже небесплатно. Зато вы платите за реальные звонки клиентов, а не отдаете деньги «дяде» просто так.

Начинка Милены


Для создания голосового робота мы использовали две технологии: ASR (Automatic Speech Recognition — автоматическое распознавание речи) и TTS (Тext-to-Speech) — синтез речи. Они реализованы на базе продуктов компании Nuance.

ASR превращает слова в нули и единицы. То есть скажешь — «пицца» — и получишь двоичный код. Но чтобы слово успешно распозналось, речь нужно заранее предобработать и декодировать.
Как все это происходит? Сначала мы записываем и оцифровываем речь, а потом проводим акустический анализ.

Когда же наступает время декодирования, применяем различные модели: акустико-фонетическую, лексическую и языковую. Благодаря таким моделям на выходе можно получить граф, в котором предусмотрены тысячи возможных лингвистических последовательностей.

Вообще же ASR используется в двух вариантах:

— Для распознавания ответов на подтверждающие вопросы и названий городов мы применяем закрытую грамматику (Closed Grammar). Клиент произносит заранее определенное ключевое слово или фразу, содержащиеся в словаре.

— Для распознавания услуги мы применяем более сложный вариант — открытую грамматику (Open Grammar). Основное отличие открытой грамматики от закрытой в том, что клиент произносит не заранее определенную фразу, а совершенно произвольную.

Также мы применяем распознавание по ключевым словам (Robust Parsing Grammar), которое позволяет выявить ключевые слова в произнесенной клиентом фразе.

Жизнь по сценарию


В первую очередь мы начали с алгоритмов диалога Милены с покупателем — проектирование IVR (Interactive Voice Response), интерактивной системы голосовых сообщений.

Мы описывали все возможные модели поведения покупателя, заказывающего услугу через наш сервис. Решали, какие вопросы и в каком порядке Милена должна задавать покупателю. Основная задача — сделать процесс поиска и заказа услуг максимально быстрым.

Много времени было потрачено на формулирование текстов системных сообщений и ключевых вопросов — они должны быть одновременно и короткими, и максимально информативными, а главное — хорошо звучать и восприниматься на слух с первого раза.

Итоговый сценарий содержал два ключевых вопроса «Что?» (какую услугу вы хотите заказать?) и «Где?» (в каком городе?).

image

Узнать, как распознать


После утверждения сценариев диалогов мы занялись распознаванием речи.

Мы сформировали первоначальные словари городов и ответов на подтверждающие вопросы для закрытой грамматики. Много времени заняла разработка алгоритмов распознавания ключевых слов услуг с помощью открытой грамматики.

Открытая грамматика сложна тем, что покупатель может произнести любою фразу, из которой нам нужно правильно выделить только ключевое слово. Для открытой грамматики были разработаны специальные наборы шаблонных фраз заказа услуг.

Также в ходе работы с распознавание речи были созданы алгоритмы автоматического добавления ключевых слов в словари и открытую грамматику из объявлений поставщиков.

Соединение установлено


Когда с распознаванием речи было закончено, мы занялись решением следующей задачи: поочередного соединения покупателя с найденными поставщиками по произнесённым ключевым словам.

Здесь необходимо было обеспечить быстрое соединение покупателя с поставщиком. А также — возможность переключения покупателя на следующих поставщиков (естественно, без разрыва текущего соединения).

В итоге была разработана VoIP-система «обзвона» поставщиков. Она обеспечивает надежное соединение покупателя с поставщиками: звонок покупателя переадресуется сразу на двух поставщиков (кто первый ответит).

В то же время у покупателя есть возможность самостоятельно переключиться на следующего поставщика, нажав на телефоне #. А если поставщик первым положил трубку, система автоматически переключает покупателя на следующего поставщика.

image

Постановка голоса


После удачной реализации соединения покупателей с поставщиками мы научили Милену правильно разговаривать на русском.

Увы, стандартная поставка системы синтеза речи крайне плохо расставляла ударения. Поэтому произносимые слова коверкались до неузнавания. «рЕмонт квАртир» звучало убийственно.

Параллельно с группой разработки голосового поиска трудилась группа разработки сайта. В ходе создания интерфейса сайта мы перепробовали несколько принципиально разных интерфейсов. На это, конечно, ушло огромное количество времени.

Самый нужный сайт


Сначала мы сделали простой сайт с формой ввода услуг и города. Затем — добавили регистрацию и личный кабинет с настройками объявления. Однако первый вариант пользовательского интерфейса было решено заменить динамической картой с объявлениями в виде маркеров. Поэтому сайт пришлось полностью переделать под новый интерфейс.

В итоге на свет появилась флеш-версия сайта с картой, маркерами поставщиков и мобильным телефоном для совершения звонков с сайта. После первого тестирования интерфейса мы получили множество отзывов о том, что поиск на карте жутко неудобен.

Слегка расстроившись, мы в очередной раз засели за проектирование интерфейса. В итоге придумали гибрид первой и второй версии интерфейсов — интерфейс с поисковой формой с заполнением города по IP-адресу, а также отображением объявлений поставщиков в виде списка и картой в конце списка.

В новом интерфейсе пользователь может одной кнопкой сразу обзвонить всех найденных поставщиков, выбрать несколько наиболее подходящих и обзвонить только их, либо позвонить одному конкретному поставщику. Кроме того, в ходе разработки нового интерфейса мы решили отказаться от использования системы управления сайтом.

Первая альфа-версия системы была сделана за 12 месяцев. Первая коммерческая версия была полностью готова через 18 месяцев. При этом постоянно проводятся всевозможные доделки и усовершенствования.

image

Помочь Милене найти счастье


Особое место в ее жестком диске занимает сериал «Футурама». Она мечтает, чтобы робот Бендер сводил ее на свидание и научил играть в World of Warcraft. Так что, если у вас есть контакты Бендера, напишите нам, пожалуйста :-)

image
Теги:
Хабы:
Всего голосов 98: ↑66 и ↓32+34
Комментарии118

Публикации

Информация

Сайт
88005554448.ru
Дата регистрации
Дата основания
Численность
2–10 человек
Местоположение
Россия

Истории