Распознавание речи с помощью Yandex SpeechKit Сloud
Yandex ASR Сloud – сервис для распознавания голосовых запросов на русском языке.
Это платный модуль, для использования которого необходимо заключить договор с Яндексом. Стоимость зависит от количества запросов в сутки.
Скачать шаблон договора (.doc) Отправить заявку на подключение модуля: sheechkit@yandex-team.ru
Распознавание речи позволяет создавать системы автоматического обслуживания клиентов в тех случаях, когда управление с помощью тонального набора неудобно. В качестве примера можно рассмотреть сервис бронирования авиабилетов, который подразумевает выбор из большого числа городов. Тональное меню в таком сервисе не удобно, поэтому голосовое управление будет самым эффективным. Диалог между системой и абонентом может выглядеть следующим образом:
Система: Здравствуйте. Куда вы хотите лететь? Абонент: Казань Система: Откуда вы хотите лететь? Абонент: Москва Система: Назовите дату вылета Абонент: 10 апреля
Общение с таким голосовым порталом становится приближенным к обслуживанию оператором.
Распознавание голосовых запросов применяется во многих системах, например, для:
- Голосовой навигации в многоуровневых меню IVR и автоматического соединения с нужным сотрудником
- Распознавания адреса для доставки
- Автоматической голосовой аутентификации пользователей при запросе персонализированной или конфиденциальной информации по телефону или через интернет
- Справочной системы информационного обслуживания
- Корпоративной системы голосового самообслуживания клиентов (запрос баланса, проверка лицевого счета, бронирование билетов)
Внедрение такой системы позволит автоматизировать определенные задачи по обработке входящих звонков, упростит взаимодействие клиента с системой и сократит суммарное время ожидания клиента на линии. Тем самым в вашей компании будут высвобождены значительные ресурсы операторов, что позволит распределить на другие не менее важные задачи.
Система распознавания речи, как правило, состоит из следующих частей:
- Запись сообщения от абонента
- Распознавание речи и прием текстовых данных от сервиса
- Анализ полученной информации и выполнение необходимых действий
Для использования Yandex ASR Cloud в вашей системе выполните следующие действия:
Шаг 1. Для получения API-ключа отправьте e-mail на адрес speechkit@yandex-team.ru, с кратким описанием задачи, которую Вы собираетесь решать с помощью Yandex ASR Cloud.
Тестовый период (бесплатный) – 2 недели с момента получения ключа.
Шаг 2. Перейдите в Администрирование / Общие настройки / Распознавание речи Яндекс. Введите полученный ключ доступа в поле "Ключ доступа (key)"
Нажмите "Сохранить". Теперь вы можете использовать распознавание речи в сценариях.
Шаг 3. Для примера покажем простейшую маршрутизацию, основанную на распознавании речи. Сценарий выглядит следующим образом:
Компонент "Приветствие" - проигрывает приветственную фразу для абонента и спрашивает с кем он желает поговорить. В примере, для простоты, используется "ding.wav".
- Режим - Файл полностью
- Файл - ding.wav
Компонент "Распознавание речи" - новый компонент в IVR-сценариях, использующий систему Yandex ASR Cloud. Позволяет распознавать речь как из заранее записанного файла, так и непосредственно из линии абонента. В примере, используется именно второй вариант. Рассмотрим настройки детальнее:
- Режим - Распознавание может происходить сразу из речи абонента, либо из файла. В примере, используется режим "Запись".
- Символы прерывания - При нажатии на символ прерывания, файл отправится на распознавание в систему Yandex ASR Cloud. В примере, "*".
- Буфер для DTMF - В компоненте можно ввести некоторое заданное количество DTMF-символов, аналогично компоненту "Преднабор", после чего компонент не будет распознавать текст, а вернет полученную строку. В примере, для введенных DTMF используется переменная number (строковая).
- Очистить буфер DTMF - Да. Переменная для буфера будет заранее очищена от предыдущих значений.
- Макс время записи, с - В течении заданного количества секунд абонент должен будет либо произнести фразу, либо ввести заданное количество DTMF-символов. В примере, 5 секунд.
- Количество символов - Необходимое количество DTMF-символов, которое нужно ввести. В примере, 3, так как предполагается, что в компании трехзначный номерной план
- Сигнал окончания - Распознавание не всегда происходит мгновенно, рекомендуется сообщить абоненту, что его фраза обрабатывается. В примере, проигрывается файл "queue_!flash.wav".
- Тема - настройка, отвечающая за тематику речи. В примере, freeform (общие фразы).
- Предопределенные значения - компонент позволяет заранее предустановить код для распознанной фразы. В примере, это будут номера телефонов сотрудников. Таким образом, если будет произнесено "Директор" или "С директором", распознанному выражению будет присвоен код "401".
- Текст в переменную - распознанный текст может быть присвоен переменной. В примере, переменная parse_bestText (строковая).
- Код группировки в переменную - если распознанное выражение совпадает с каким-либо распознанным выражением, то вы можете сохранить этот код в переменную. В примере, переменная group (строковая).
- Вероятность совпадения в переменную - выберите переменную для сохранения вероятности совпадения с одним из предопределенных выражений. В примере, переменная parse_bestConfidence (строковая)
Компонент "Результаты" - выводит на экран результаты работы компонента "Распознавание речи". Используется выражение
'Точность '+[parse_bestConfidence]+endline+ 'Текст '+[parse_bestText]+endline+ 'Код группировки '+[group]+endline+ 'Введенный номер '+[number]
Все компоненты ниже отвечают за маршрутизацию звонка, на основании полученных результатов.
Компонент "Ввели номер?" - определяет была ли введена DTMF-последовательность (внутренний номер сотрудника).
- Аргумент 1 - переменная number
- Аргумент 2 - пустая строка
- Тип сравнения - "="
Компонент "Определилась группа?" - если номер не был введен вручную с помощью DTMF, то проверяется определился ли код распознанного текста.
- Аргумент 1 - переменная group
- Аргумент 2 - пустая строка
- Тип сравнения - "="
Компонент "number=group" - если код распознался, то переменной number присваивается значение переменной group.
Компонент "Секретарь по умолчанию" - если номер, на который нужно переключить не был ни введен ни распознан, то по умолчанию, звонок будет переключен на секретаря. Переменной number присваивается значение 100.
Компонент "На секретаря" - отладочное уведомление для администратора, которое показывает, что был присвоен номер по умолчанию.
Компонент "Переключение на сотрудника" - компонент осуществляет переключение на сотрудника по номеру, определенному в переменной number.
Шаг.4. В модуле "Администрирование" - "Внутренние номера" добавьте внутренний номер с типом "Запуск IVR". Выберите IVR-сценарий Yandex_ASR_Cloud.
Нажмите "Сохранить". Затем "Применить".
Шаг 5. При звонке на заданный номер, проговорите сообщение. В конце нажмите "*". Через несколько секунд появятся уведомления с распознанным текстом. Также можете проверить остальные случаи.
Информация для отладки: Все нераспознанные фразы рекомендуется сохраняться в отдельную таблицу, а затем включать в "Предопределенные значения". Тем самым, вы сможете распознавать большинство фраз, которые говорят ваши клиенты.
Шаг 6. Если Вас устраивает тест, Вы заключаете договор с Яндексом. Отчетный период начинается с даты подписания договора. Оплата происходит по окончанию отчетного периода на основании подписанного акта.