Синтез и распознавание речи средствами модуля STT Tinkoff
В одной из ранее описанных статей рассматривались методы синтеза и распознавания речи такими сервисами как: Yandex Speech (https://voxlink.ru/kb/asterisk-configuration/speechkit-asterisk/), Wit.ai (https://voxlink.ru/kb/asterisk-configuration/raspoznavanie-rechi-v-asterisk/), Google Speech (https://voxlink.ru/kb/asterisk-configuration/sintez-rechi-v-asterisk-s-pomoshhju-google-translate/). В рамках данной статьи будет показано как настроить и использовать функционал сервиса STT/TTS Tinkoff. 1. Выполним подключение по SSH к серверу IP АТС Asterisk. В зависимости от используемой системы (Windows, Linux, MacOS), […]
В одной из ранее описанных статей рассматривались методы синтеза и распознавания речи такими сервисами как:
- Yandex Speech (https://voxlink.ru/kb/asterisk-configuration/speechkit-asterisk/),
- Wit.ai (https://voxlink.ru/kb/asterisk-configuration/raspoznavanie-rechi-v-asterisk/),
- Google Speech (https://voxlink.ru/kb/asterisk-configuration/sintez-rechi-v-asterisk-s-pomoshhju-google-translate/).
В рамках данной статьи будет показано как настроить и использовать функционал сервиса STT/TTS Tinkoff.
1. Выполним подключение по SSH к серверу IP АТС Asterisk. В зависимости от используемой системы (Windows, Linux, MacOS), подключение по SSH можно выполнить с использованием различного дополнительного программного обеспечения(Putty), либо системного терминала.
2. Приступим к скачиванию исходного кода модуля Tinkoff STT/TTS и установке дополнительных зависимостей. Для этого выполним ряд команд вида:
# cd /usr/src/ # git clone https://github.com/TinkoffCreditSystems/asterisk-voicekit-modules.git # cd /usr/src/asterisk-voicekit-modules/asterisk_modules/ # yum install libtool opus-devel # ./bootstrap



3. Выполним сборку и установку приложения grpcsttbackground:
# cd /usr/src/asterisk-voicekit-modules/asterisk_modules/app_grpcsttbackground # ./configure # make # make install-strip



4. Выполним сборку и установку приложения app_playbackground
# cd /usr/src/asterisk-voicekit-modules/asterisk_modules/app_playbackground # ./configure # make # make install



5. Выполним сборку и установку приложения app_waitevent
# cd /usr/src/asterisk-voicekit-modules/asterisk_modules/app_waitevent # ./configure # make # make install



6. Выполним сборку и установку приложения func_gettimensec
# cd /usr/src/asterisk-voicekit-modules/asterisk_modules/func_gettimensec # ./configure # make # make install



7. Создадим и настроим конфигурационные файлы модуля Tinkoff STT/TTS
# cp -vr /usr/src/asterisk-voicekit-modules/examples/combined/combined_stt_tts/etc/asterisk/grpc*.conf /etc/asterisk/ # nano /etc/asterisk/grpcstt.conf
ключевые параметры для редактирования:
endpoint – доменное имя stt.tinkoff.ru
api_key – API ключ
# nano /etc/asterisk/grpctts.conf
ключевые параметры для редактирования:
endpoint – доменное имя tts.tinkoff.ru
api_key – API ключ
secret_key – ключ авторизации


8. Копируем собранные модули в директорию модулей Asterisk и подключим их
# cp -vr /usr/local/lib/asterisk/modules/* /lib64/asterisk/modules/ # asterisk -rx "module load app_grpcsttbackground.so" # asterisk -rx "module load app_playbackground.so" # asterisk -rx "module load app_waitevent.so" # asterisk -rx "module load func_gettimensec.so


9. Рассмотрим простой пример использования модуля Tinkoff STT/TTS для маршрутизации на сотрудника по названному имени. Для написания маршрута будем пользоваться официальным образцом написанном на языке расширения Asterisk AEL:
# nano /etc/asterisk/extensions.ael
context from-internal-custom {
999 => {
Answer();
WaitEventInit(); // Инициализация очереди событий
PlayBackgroundInitGRPCTTS(); // Инициализация модуля синтеза речи
GRPCSTTBackground(); // Инициализация модуля распознования речи
PlayBackground(say,,{"text":"здравствуйте, назовите имя сотрудника с которым хотели бы поговорить"}); // Текст приветствия для озвучивания
Set(PHASE=WAIT_FOR_ALIAS);
Set(CALL_END_TIME=$[${GET_TIME_NSEC(MONOTONIC)} + 60]); // Установка времени завершения обработки события на минуту больше
Set(SLEEP_TIME=$[${CALL_END_TIME} - ${GET_TIME_NSEC(MONOTONIC)}]); // Расчет максимального времени ожидания
while (${SLEEP_TIME} > 0) { // Сравнение с временем ожидания
WaitEvent(${SLEEP_TIME}); // Ожидания события
if (${WAITEVENTSTATUS} == SUCCESS) {
switch (${WAITEVENTNAME}) {
case GRPCSTT_UTF8:
switch (${PHASE}) {
case WAIT_FOR_ALIAS:
Set(PET_ALIAS=${JSONELEMENT(WAITEVENTBODY,alternatives/0/transcript)}); // Получения распознанного текста из JSON массива
Log(NOTICE,Pet alias is ${PET_ALIAS});
PlayBackground(say,,{"text":"Имя сотрудника с которым Вы будете соеденены ${PET_ALIAS}"}); // Озвучивание теста с полеченным именем сотрудника
Set(PHASE=OFFER);
Set(CALL_END_TIME=$[${GET_TIME_NSEC(MONOTONIC)} + 30]);
switch (${PET_ALIAS}) {
case кирилл:
goto from-internal|101|1; // Вызов 101 если PET_ALIAS равно «кирилл»
break;
case дмитрий:
goto from-internal|102|1; // Вызов 102 если PET_ALIAS равно «дмитрий»
break;
}
break;
case OFFER:
Set(PHASE=EXITING);
Set(CALL_END_TIME=$[${GET_TIME_NSEC(MONOTONIC)} + 0.2]);
break;
default:
}
break;
default:
}
}
Set(SLEEP_TIME=$[${CALL_END_TIME} - ${GET_TIME_NSEC(MONOTONIC)}]); // Обновление максимального времени ожидания
}
Hangup();
}
};


Остались вопросы?
Я - Компаниец Никита, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.
категории
- DECT
- Linux
- Вспомогательный софт при работе с Asterisk
- Интеграция с CRM и другими системами
- Интеграция с другими АТС
- Использование Elastix
- Использование FreePBX
- Книга
- Мониторинг и траблшутинг
- Настройка Asterisk
- Настройка IP-телефонов
- Настройка VoIP-оборудования
- Новости и Статьи
- Подключение операторов связи
- Разработка под Asterisk
- Установка Asterisk
VoIP оборудование
ближайшие курсы
Новые статьи
10 доводов в пользу Asterisk
Распространяется бесплатно.
Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.
Безопасен в использовании.
Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.
Надежен в эксплуатации.
Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.
Гибкий в настройке.
Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.
Имеет огромный функционал.
Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.
Интегрируется с любыми системами.
То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.
Позволяет телефонизировать офис за считанные часы.
В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.
Отличная масштабируемость.
Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.
Повышает управляемость бизнеса.
Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.
Снижает расходы на связь.
Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.
База знаний
IP-АТС
Оборудование
О нас




