Дмитрий Рашевский
07.08.2020
10577

Установка и использование Kaldi сервера вместе с Астериск

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

Kaldi сервер с Астериск

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

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

Вся установка докера разделяется на два способа:

  • Установка из репозиториев
  • Установка из исходников

Для начала разберем установку из репозиториев. Она начинается с подключения дополнительных репозиториев, откуда будет производиться скачивание исходников. Чтобы добавить нужные репы скачаем пакет yum-utils. А с помощью yum-config-manager добавим нужный репозиторий.

# yum install -y yum-utils
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Добавление репозиториев
Кому интересно устанавливать пакеты программ, которые находятся в тестовом режиме можете подключить Nighty и Test пакеты докера. Поскольку это не стабильные версии используйте их на свой страх и риск.
# yum-config-manager --enable docker-ce-nightly
# yum-config-manager --enable docker-ce-test
Подключение Nighty
Подключение Test

Теперь начнём с установку докера. Она выполняется с помощью менеджера пакетов yum.

# yum install docker-ce docker-ce-cli containerd.io
Установка Docker

Осталось запустить службу докера и добавить его в автозагрузку.

# systemctl start docker
# systemctl enable docker

Теперь будет описана установка из rpm пакета.

Как и в прошлом варианте, нам необходимо установить несколько пакетов:

  • docker-ce
  • docker-ce-cli
  • containerd.ioэ

Для этого скачиваем с помощью wget rpm пакеты по этой ссылке.

Теперь с помощью yum их устанавливаем.

# yum install /path/to/rpm/file/containerd.io-1.2.0-3.el7.x86_64.rpm 
# yum install /path/to/rpm/file/docker-ce-19.03.9-3.el7.x86_64.rpm
# yum install /path/to/rpm/file/docker-ce-cli-19.03.9-3.el7.x86_64.rpm

И как в примере выше запускаем службу и добавляем в автозагрузку

# systemctl start docker
# systemctl enable docker

Сервер Kaldi

Kaldi — инструмент для распознавания речи с открытым исходным кодом. Особенность проекта состоит в современном и гибком коде, написанном на C ++. Код легко модифицировать и дополнять.

Немного описав, что такое Kaldi, можно приступать к его установке.

Установку из исходников, в этой статье рассматривать не будем, с ней вы можете ознакомиться на страничке в github перейдя по этой ссылке.

Сейчас будем запускать докер-контейнер, в котором работает утилита. Команда взята с git странички разработчика alphacep

# docker run -d -p 2700:2700 alphacep/kaldi-ru:latest

Контейнер используется для распознавания русской речи. Если нужны другие языки измените регион в команде, На данный момент поддерживается несколько языков:
● en — английский
● ru — русский
● cn — китайский
● de — немецкий

Скачивание и запуск контейнера

Дополнительно скачаем сервер распознавания речи, который будет обращаться к Kaldi для распознавания.

# cd /usr/src/
# git clone https://github.com/alphacep/vosk-server
# cd vosk-server/websocket

При запуске этого сервиса используется Python скрипт версии 3. Но для его работы необходимо установить модуль websockets. Поэтому выполним его установку: # pip3.6 install websockets

Если при установке websocket высвечивается ошибка fatal error: Python.h: No such file or directory необходимо установить python36-devel<br>yum install python36-devel
Установка websockets
Установка python36-devel

Проверяем установленный сервис, запустив проверочный скрипт

# ./test.py test.wav
Проверка распознавания

Подписаться
Уведомить о
guest
1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Антон
Антон
30.04.2021 21:15

Хочу заметить, что alphacep позаботился об asterisk отдельно через eagi:
https://github.com/alphacep/vosk-server/tree/master/client-samples/asterisk.

Остались вопросы?

Я - Кондрашин Игорь, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.