Распознавание речи с помощью Yandex SpeechKit Сloud — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
м
 
(не показано 79 промежуточных версии этого же участника)
Строка 1: Строка 1:
 
[[Практики|Наверх]]
 
[[Практики|Наверх]]
  
'''Yandex SpeechKit''' - система для распознавания голосовых запросов на русском языке.
 
  
Система распознавания голосовых запросов применяется во многих системах, например, для:
+
[[Файл:Yandex_ASR_Cloud.png|500px]]
 +
 
 +
 
 +
[https://cloud.yandex.ru/services/speechkit '''Yandex SpeechKit '''] – сервис распознавания и синтеза речи платформы Яндекс.Облако, который позволяет оптимизировать обработку звонков абонентов с помощью голосового управления IVR сценариями. Работает на базе разработанной в Яндексе технологии распознавания речи
 +
 
 +
Это платный модуль, для использования которого необходимо заключить договор с Яндексом. Стоимость зависит от количества запросов в сутки. Ознакомьтесь с [https://cloud.yandex.ru/docs/speechkit/pricing Правилами тарификации для Yandex SpeechKit]
 +
 
 +
Документация по API распознавания и синтеза речи Yandex SpeechKit доступна на сайте [https://cloud.yandex.ru/docs/speechkit/ Yandex SpeechKit]
 +
 
 +
 
 +
Распознавание речи позволяет создавать системы автоматического обслуживания клиентов в тех случаях, когда <u>управление с помощью тонального набора неудобно</u>. В качестве примера можно рассмотреть сервис бронирования авиабилетов, который подразумевает выбор из большого числа городов. Тональное меню в таком сервисе не удобно, поэтому голосовое управление будет самым эффективным. Диалог между системой и абонентом может выглядеть следующим образом:
 +
 
 +
<span style="color:darkred">Система:</span> Здравствуйте. Куда вы хотите лететь?
 +
<span style="color:blue">Абонент:</span> Казань
 +
<span style="color:darkred">Система:</span> Откуда вы хотите лететь?
 +
<span style="color:blue">Абонент:</span> Москва
 +
<span style="color:darkred">Система:</span> Назовите дату вылета
 +
<span style="color:blue">Абонент:</span> 10 апреля
 +
 
 +
Общение с таким голосовым порталом становится приближенным к обслуживанию оператором.
 +
 
 +
Распознавание голосовых запросов применяется во многих системах, например, для:
 
* Голосовой навигации в многоуровневых меню IVR и автоматического соединения с нужным сотрудником
 
* Голосовой навигации в многоуровневых меню IVR и автоматического соединения с нужным сотрудником
 
* Распознавания адреса для доставки
 
* Распознавания адреса для доставки
Строка 11: Строка 31:
  
  
Система распознавания речи, как правило, состоит из следующих частей:<br>
+
Внедрение такой системы позволит автоматизировать определенные задачи по обработке входящих звонков,  упростит взаимодействие клиента с системой и сократит суммарное время ожидания клиента на линии. Тем самым в вашей компании будут высвобождены значительные ресурсы операторов, что позволит распределить на другие не менее важные задачи.
* Запись сообщения от абонента <br>
+
 
* Распознавание голоса и получение информации в виде строки<br>
+
 
* Анализ полученной информации и выполнение полученных действий
+
Система распознавания речи, как правило, состоит из следующих частей:
 +
# Запись сообщения от абонента  
 +
# Распознавание речи и прием текстовых данных от сервиса
 +
# Анализ полученной информации и выполнение необходимых действий
 +
 
 +
 
 +
<center><span style="color:lightblack">
 +
----
 +
'''''По вопросам реализации данной функции на базе вашей АТС, а также приобретения продуктов Oktell
 +
 
 +
'''''обращайтесь в отдел продаж ООО "Телефонные Системы": +7 (495) 229-49-89, mail@oktell.ru.
 +
----
 +
</span></center>
  
  
Строка 20: Строка 52:
  
  
'''Шаг 1.''' Скачайте и импортируйте сценарии в вашу систему '''Oktell'''.  
+
'''Шаг 1.''' Получить авторизационные данные на использование сервиса Yandex SpeechKit.
 +
* Выполните шаги 1-5 [https://cloud.yandex.ru/docs/speechkit/concepts/auth инструкции] по авторизации в API для получения идентификатора каталога
 +
* [https://passport.yandex.ru/auth Войдите] в ваш аккаунт на Яндексе или Яндекс.Коннекте
 +
* Получите OAuth-токен в сервисе Яндекс.OAuth. Для этого перейдите по [https://oauth.yandex.ru/authorize?response_type=token&client_id=1a6990aa636648e9b2ef855fa7bec2fb ссылке], нажмите '''Разрешить''' и скопируйте полученный OAuth-токен.
  
'''Скачать сценарии:''' [http://wiki.oktell.ru/images/c/ca/Yandex_SpeechKit_Recognition.zip Yandex_SpeechKit_Recognition.zip]
 
  
 +
'''Шаг 2.''' Перейдите в '''Администрирование''' / '''Общие настройки''' / '''Распознавание речи Yandex SpeechKit Cloud'''. Введите полученные значения '''OAuth-токен''' и '''Идентификатор каталога''' в соответствующие поля
  
В архиве располагаются два сценария:
 
*'''Yandex_SpeechKit_Recognition''' - сценарий для записи голосового сообщения
 
*'''Yandex_SpeechKit_Recognition_svc''' - сценарий для отправки записи на сервис Яндекса и приема распознанного сообщения.
 
  
После импорта сценариев в '''Oktell''', сохраните их "'''На сервер'''"
+
[[Файл:Yandex ASR Cloud 001.png|center|600px]]
  
  
'''Шаг 2.''' В сценарии '''Yandex_SpeechKit_Recognition_svc''' в компоненте "'''Required params'''" определите следующие параметры:
+
Нажмите "'''Сохранить'''". Теперь вы можете использовать распознавание речи в сценариях.  
*'''uuid''' - уникальная строка для подключения
+
*'''key''' - специальный ключ для подключения к сервису '''Yandex SpeechKit'''. Запросить ключ можно по почте '''speechkit@yandex‐team.ru''' или на сайте разработчиков.
+
*'''topic''' - тема голосового сообщения, параметр влияет на качество распознавания. Возможны 4 варианта:
+
**'''freeform''' - свободная форма (SMS, заметка и др.)
+
**'''general''' - запросы для поиска в Интернете
+
**'''maps''' - географические названия (адрес, место, названия ресторанов и др.)
+
**'''music''' - музыкальные названия (музыкальные группы, названия песен, певцы и др.)
+
  
По умолчанию, в компоненте используются тестовые данные от разработчиков. После изменения данных, сохраните сценарий "'''На сервер'''".
 
  
 +
'''Шаг 3.''' Для примера покажем простейшую маршрутизацию, основанную на распознавании речи. Сценарий выглядит следующим образом:
  
[[Файл:Yandex SpeechKit Recognition -001.png|center]]
 
  
 +
[[Файл:Yandex ASR Cloud 002.png|center]]
  
  
'''Шаг 3.''' В модуле "'''Администрирование'''" - "'''Внутренние номера'''" добавьте внутренний номер с типом "'''Запуск IVR'''". Выберите IVR-сценарий '''Yandex_SpeechKit_Recognition'''.  
+
<u>Компонент "'''Приветствие'''"</u> - проигрывает приветственную фразу для абонента и спрашивает с кем он желает поговорить. В примере, для простоты, используется "'''ding.wav'''".
 +
*'''Режим''' - Файл полностью
 +
*'''Файл''' - ding.wav
  
 +
<u>Компонент "'''Распознавание речи'''"</u> - новый компонент в IVR-сценариях, использующий систему Yandex SpeechKit Cloud. Позволяет распознавать речь как из заранее записанного файла, так и непосредственно из линии абонента. В примере, используется именно второй вариант. Рассмотрим настройки детальнее:
 +
* '''Режим''' - Распознавание может происходить сразу из речи абонента, либо из файла. В примере, используется режим "'''Запись'''".
 +
* '''Символы прерывания''' - При нажатии на символ прерывания, введенные символы запишутся в переменную. Распознавание производиться не будет. В примере "'''*'''".
 +
* '''Буфер для DTMF''' - В компоненте можно ввести некоторое заданное количество DTMF-символов, аналогично компоненту "'''Преднабор'''", после чего компонент прекратит распознавать текст, а сразу вернет полученную строку. В примере для введенных DTMF используется переменная '''number''' (строковая).
 +
* '''Очистить буфер DTMF''' - Если да, то переменная для буфера будет заранее очищена от предыдущих значений. В примере '''Да'''.
 +
* '''Макс время записи, с''' - В течении заданного количества секунд абонент должен будет либо произнести фразу, либо ввести заданное количество DTMF-символов. В примере '''5''' секунд.
 +
* '''Количество символов''' - Необходимое количество DTMF-символов, которое нужно ввести. В примере, '''3''', так как предполагается, что в компании трехзначный номерной план
 +
* '''Сигнал окончания''' - Сигнал, который будет воспроизведен после окончания распознавания. В примере, проигрывается файл "'''ding.wav'''".
 +
* '''Тема''' - настройка, отвечающая за тематику речи. Мы рекомендуем использовать '''queries'''. Эта тема применяется для поисковых запросов и коротких фраз (3–5 слов) на различную тематику, например "''а где ближайший банкомат''", "''мне нужно заблокировать карту''" или "''соедините меня с оператором''". В примере '''queries'''
 +
* '''Предопределенные значения''' - компонент позволяет заранее предустановить код для распознанной фразы. В примере, это будут номера телефонов сотрудников. Таким образом, если будет произнесено "''Директор''" или "''С директором''", определится код ответа "'''401'''".
 +
* '''Текст в переменную''' - распознанный текст может быть присвоен переменной. В примере, переменная '''parse_bestText''' (строковая).
 +
* '''Код группировки в переменную''' - если распознанное выражение совпадает с каким-либо '''предопределенным значением''' (см. выше), то вы можете сохранить этот код в переменную. В примере, переменная '''group''' (строковая).
 +
* '''Вероятность совпадения в переменную''' - выберите переменную для сохранения вероятности совпадения с одним из предопределенных выражений. В примере, переменная '''parse_bestConfidence''' (строковая)
  
[[Файл:Yandex SpeechKit Recognition -002.png|center]]
+
 
 +
[[Файл:Yandex ASR Cloud 003.png|center]]
 +
 
 +
 
 +
<u>Компонент "'''Результаты'''"</u> - выводит на экран результаты работы компонента "'''Распознавание речи'''". Используется выражение
 +
'Точность '+[parse_bestConfidence]+endline+
 +
'Текст '+[parse_bestText]+endline+
 +
'Код группировки '+[group]+endline+
 +
'Введенный номер '+[number]
 +
 
 +
Все компоненты ниже отвечают за маршрутизацию звонка, на основании полученных результатов.
 +
 
 +
<u>Компонент "'''Ввели номер?'''"</u> - определяет была ли введена DTMF-последовательность (внутренний номер сотрудника).
 +
*Аргумент 1 - переменная '''number'''
 +
*Аргумент 2 - пустая строка
 +
*Тип сравнения - "'''='''"
 +
 
 +
<u>Компонент "'''Определилась группа?'''"</u> - если номер не был введен вручную с помощью DTMF, то проверяется определился ли код распознанного текста.
 +
*Аргумент 1 - переменная '''group'''
 +
*Аргумент 2 - пустая строка
 +
*Тип сравнения - "'''='''"
 +
 
 +
<u>Компонент "'''number=group'''"</u> - если код распознался, то переменной number присваивается значение переменной group.
 +
 
 +
 
 +
[[Файл:Yandex ASR Cloud 005.png|center]]
 +
 
 +
 
 +
<u>Компонент "'''Секретарь по умолчанию'''"</u> - если номер, на который нужно переключить не был ни введен, ни распознан, то по умолчанию, звонок будет переключен на секретаря. Переменной '''number''' присваивается значение '''100'''.
 +
 
 +
<u>Компонент "'''На секретаря'''"</u> - отладочное уведомление для администратора, которое показывает, что был присвоен номер по умолчанию.
 +
 
 +
<u>Компонент "'''Переключение на сотрудника'''"</u> - компонент осуществляет переключение на сотрудника по номеру, определенному в переменной '''number'''.
 +
 
 +
 
 +
[[Файл:Yandex ASR Cloud 007.png|center]]
 +
 
 +
 
 +
'''Шаг.4.''' В модуле "'''Администрирование'''" - "'''Внутренние номера'''" добавьте внутренний номер с типом "'''Запуск IVR'''". Выберите IVR-сценарий '''Yandex_SpeechKit_Cloud'''.
  
  
Строка 57: Строка 135:
  
  
'''Шаг 4.''' При звонке на заданный номер, проговорите сообщение. В конце нажмите "'''*'''". Через несколько секунд появятся уведомления с распознанным текстом.  
+
[[Файл:Yandex ASR Cloud 010.png|center|600px]]
 +
 
 +
 
 +
'''Шаг 5.''' При звонке на заданный номер, проговорите сообщение. В конце нажмите "'''*'''". Через несколько секунд появятся уведомления с распознанным текстом. Также можете проверить остальные случаи.
 +
 
 +
'''Информация для отладки:''' Все нераспознанные фразы рекомендуется сохраняться в отдельную таблицу, а затем включать в "'''Предопределенные значения'''". Тем самым, вы сможете распознавать большинство фраз, которые говорят ваши клиенты.
 +
 
 +
 
 +
'''Шаг 6.'''  Если Вас устраивает тест, Вы заключаете договор с Яндексом. Отчетный период начинается с даты подписания договора. Оплата происходит по окончанию отчетного периода на основании подписанного акта.
 +
 
 +
'''Скачать сценарий:''' [[Media:Yandex_SpeechKit_Cloud.oscr|Yandex_SpeechKit_Cloud.oscr]]
 +
 
 +
'''Описание компонента:''' [[Компоненты_сценариев_IVR#.D0.A0.D0.B0.D1.81.D0.BF.D0.BE.D0.B7.D0.BD.D0.B0.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D1.80.D0.B5.D1.87.D0.B8|Распознавание речи]]
  
  
[[Файл:Yandex SpeechKit Recognition -003.png|center]]
 
  
 +
<center><span style="color:lightblack">
 +
----
 +
'''''По вопросам реализации данной функции на базе вашей АТС, а также приобретения продуктов Oktell
  
Полученный текст затем можно проанализировать и выполнить необходимые действия.
+
'''''обращайтесь в отдел продаж ООО "Телефонные Системы": +7 (495) 229-49-89, mail@oktell.ru.
 +
----
 +
</span></center>

Текущая версия на 11:30, 31 марта 2023

Наверх


Yandex ASR Cloud.png


Yandex SpeechKit – сервис распознавания и синтеза речи платформы Яндекс.Облако, который позволяет оптимизировать обработку звонков абонентов с помощью голосового управления IVR сценариями. Работает на базе разработанной в Яндексе технологии распознавания речи

Это платный модуль, для использования которого необходимо заключить договор с Яндексом. Стоимость зависит от количества запросов в сутки. Ознакомьтесь с Правилами тарификации для Yandex SpeechKit

Документация по API распознавания и синтеза речи Yandex SpeechKit доступна на сайте Yandex SpeechKit


Распознавание речи позволяет создавать системы автоматического обслуживания клиентов в тех случаях, когда управление с помощью тонального набора неудобно. В качестве примера можно рассмотреть сервис бронирования авиабилетов, который подразумевает выбор из большого числа городов. Тональное меню в таком сервисе не удобно, поэтому голосовое управление будет самым эффективным. Диалог между системой и абонентом может выглядеть следующим образом:

Система: Здравствуйте. Куда вы хотите лететь?
Абонент: Казань
Система: Откуда вы хотите лететь?
Абонент: Москва
Система: Назовите дату вылета
Абонент: 10 апреля

Общение с таким голосовым порталом становится приближенным к обслуживанию оператором.

Распознавание голосовых запросов применяется во многих системах, например, для:

  • Голосовой навигации в многоуровневых меню IVR и автоматического соединения с нужным сотрудником
  • Распознавания адреса для доставки
  • Автоматической голосовой аутентификации пользователей при запросе персонализированной или конфиденциальной информации по телефону или через интернет
  • Справочной системы информационного обслуживания
  • Корпоративной системы голосового самообслуживания клиентов (запрос баланса, проверка лицевого счета, бронирование билетов)


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


Система распознавания речи, как правило, состоит из следующих частей:

  1. Запись сообщения от абонента
  2. Распознавание речи и прием текстовых данных от сервиса
  3. Анализ полученной информации и выполнение необходимых действий



По вопросам реализации данной функции на базе вашей АТС, а также приобретения продуктов Oktell

обращайтесь в отдел продаж ООО "Телефонные Системы": +7 (495) 229-49-89, mail@oktell.ru.



Для использования Yandex SpeechKit в вашей системе выполните следующие действия:


Шаг 1. Получить авторизационные данные на использование сервиса Yandex SpeechKit.

  • Выполните шаги 1-5 инструкции по авторизации в API для получения идентификатора каталога
  • Войдите в ваш аккаунт на Яндексе или Яндекс.Коннекте
  • Получите OAuth-токен в сервисе Яндекс.OAuth. Для этого перейдите по ссылке, нажмите Разрешить и скопируйте полученный OAuth-токен.


Шаг 2. Перейдите в Администрирование / Общие настройки / Распознавание речи Yandex SpeechKit Cloud. Введите полученные значения OAuth-токен и Идентификатор каталога в соответствующие поля


Yandex ASR Cloud 001.png


Нажмите "Сохранить". Теперь вы можете использовать распознавание речи в сценариях.


Шаг 3. Для примера покажем простейшую маршрутизацию, основанную на распознавании речи. Сценарий выглядит следующим образом:


Yandex ASR Cloud 002.png


Компонент "Приветствие" - проигрывает приветственную фразу для абонента и спрашивает с кем он желает поговорить. В примере, для простоты, используется "ding.wav".

  • Режим - Файл полностью
  • Файл - ding.wav

Компонент "Распознавание речи" - новый компонент в IVR-сценариях, использующий систему Yandex SpeechKit Cloud. Позволяет распознавать речь как из заранее записанного файла, так и непосредственно из линии абонента. В примере, используется именно второй вариант. Рассмотрим настройки детальнее:

  • Режим - Распознавание может происходить сразу из речи абонента, либо из файла. В примере, используется режим "Запись".
  • Символы прерывания - При нажатии на символ прерывания, введенные символы запишутся в переменную. Распознавание производиться не будет. В примере "*".
  • Буфер для DTMF - В компоненте можно ввести некоторое заданное количество DTMF-символов, аналогично компоненту "Преднабор", после чего компонент прекратит распознавать текст, а сразу вернет полученную строку. В примере для введенных DTMF используется переменная number (строковая).
  • Очистить буфер DTMF - Если да, то переменная для буфера будет заранее очищена от предыдущих значений. В примере Да.
  • Макс время записи, с - В течении заданного количества секунд абонент должен будет либо произнести фразу, либо ввести заданное количество DTMF-символов. В примере 5 секунд.
  • Количество символов - Необходимое количество DTMF-символов, которое нужно ввести. В примере, 3, так как предполагается, что в компании трехзначный номерной план
  • Сигнал окончания - Сигнал, который будет воспроизведен после окончания распознавания. В примере, проигрывается файл "ding.wav".
  • Тема - настройка, отвечающая за тематику речи. Мы рекомендуем использовать queries. Эта тема применяется для поисковых запросов и коротких фраз (3–5 слов) на различную тематику, например "а где ближайший банкомат", "мне нужно заблокировать карту" или "соедините меня с оператором". В примере queries
  • Предопределенные значения - компонент позволяет заранее предустановить код для распознанной фразы. В примере, это будут номера телефонов сотрудников. Таким образом, если будет произнесено "Директор" или "С директором", определится код ответа "401".
  • Текст в переменную - распознанный текст может быть присвоен переменной. В примере, переменная parse_bestText (строковая).
  • Код группировки в переменную - если распознанное выражение совпадает с каким-либо предопределенным значением (см. выше), то вы можете сохранить этот код в переменную. В примере, переменная group (строковая).
  • Вероятность совпадения в переменную - выберите переменную для сохранения вероятности совпадения с одним из предопределенных выражений. В примере, переменная parse_bestConfidence (строковая)


Yandex ASR Cloud 003.png


Компонент "Результаты" - выводит на экран результаты работы компонента "Распознавание речи". Используется выражение

'Точность '+[parse_bestConfidence]+endline+
'Текст '+[parse_bestText]+endline+
'Код группировки '+[group]+endline+
'Введенный номер '+[number]

Все компоненты ниже отвечают за маршрутизацию звонка, на основании полученных результатов.

Компонент "Ввели номер?" - определяет была ли введена DTMF-последовательность (внутренний номер сотрудника).

  • Аргумент 1 - переменная number
  • Аргумент 2 - пустая строка
  • Тип сравнения - "="

Компонент "Определилась группа?" - если номер не был введен вручную с помощью DTMF, то проверяется определился ли код распознанного текста.

  • Аргумент 1 - переменная group
  • Аргумент 2 - пустая строка
  • Тип сравнения - "="

Компонент "number=group" - если код распознался, то переменной number присваивается значение переменной group.


Yandex ASR Cloud 005.png


Компонент "Секретарь по умолчанию" - если номер, на который нужно переключить не был ни введен, ни распознан, то по умолчанию, звонок будет переключен на секретаря. Переменной number присваивается значение 100.

Компонент "На секретаря" - отладочное уведомление для администратора, которое показывает, что был присвоен номер по умолчанию.

Компонент "Переключение на сотрудника" - компонент осуществляет переключение на сотрудника по номеру, определенному в переменной number.


Yandex ASR Cloud 007.png


Шаг.4. В модуле "Администрирование" - "Внутренние номера" добавьте внутренний номер с типом "Запуск IVR". Выберите IVR-сценарий Yandex_SpeechKit_Cloud.


Нажмите "Сохранить". Затем "Применить".


Yandex ASR Cloud 010.png


Шаг 5. При звонке на заданный номер, проговорите сообщение. В конце нажмите "*". Через несколько секунд появятся уведомления с распознанным текстом. Также можете проверить остальные случаи.

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


Шаг 6. Если Вас устраивает тест, Вы заключаете договор с Яндексом. Отчетный период начинается с даты подписания договора. Оплата происходит по окончанию отчетного периода на основании подписанного акта.

Скачать сценарий: Yandex_SpeechKit_Cloud.oscr

Описание компонента: Распознавание речи



По вопросам реализации данной функции на базе вашей АТС, а также приобретения продуктов Oktell

обращайтесь в отдел продаж ООО "Телефонные Системы": +7 (495) 229-49-89, mail@oktell.ru.