В этот раз мы разберем, как правильно выполнить установку модуля Text To Speech в FreePBX, и каким образом его в дальнейшем применять. Его предназначение – синтез речи на основе текста, то есть озвучивание сохраненного текста в телефонном канале.
Итак, в текущей статье мы опишем, как грамотно инсталлировать и настроить использование Text To Speech в FreePBX, начиная с версии 13.
Область применения
Модуль позволяет синтезировать текст в речь. Это есть дает возможность озвучивать отдельные фразы и даже длинные фрагменты текста. Характерный пример использования – изменение стандартного приветствия в FreePBX.
Стоит отметить, что система является бесплатной. Однако качество речи несколько уступает аналогичному в платных модулях, так что если вопрос качества для вас принципиален, то посмотрите лучше в сторону таких коммерческих сервисов, как Yandex SpeechKit и им подобных.
И еще одна небольшая ремарка: модуль не способен работать с динамической вставкой данных. Озвучивается только текст, который прописывается в соответствующем поле (Text). При этом нельзя применять какие-либо переменные и изменять данные по ходу действия.
Если есть потребность в динамическом синтезе речи, то здесь подойдет такое решение, как eSpeak
, которое отлично подходит для работы в связке с Asterisk
.
Установка
Разберем, как правильно инсталлировать Text To Speech Engines
и Text To Speech
.
Инсталляция модуля Text To Speech Engines
Перед запуском основного модуля необходимо установить вспомогательный – Text To Speech Engines
, отвечающий за подключение синтезирующих речь систем к FreePBX.
Для его инсталляции необходимо выполнить следующие шаги:
-
Открыть меню
Admin
и найти там вкладкуModule Admin
. Там следует нажатьCheck Online
. -
Перейти в раздел
Settings
и отыскать там вспомогательныйText To Speech Engines
. Затем необходимо нажать на соответствующую кнопку для загрузки и установки. -
Появится окно, в котором следует нажать
Confirm
, подтвердив таким способом, что вы согласны установить продукт. Ожидаем, когда закончится установка, и переходим к следующему шагу.
Инсталляция Text To Speech
Инсталляция основного модуля также проводится в три этапа:
-
Открываем
Admin → Module Admin
. Необходимо выбрать группу модулейExtended
нажатиемCheck Online
. Если она активна, оставляем опцию в текущем состоянии. -
Ищем пункт меню
Applications
, который должен содержать искомый модульText To Speech
. Выбираем пунктDownload and Install
для его загрузки и установки. -
Жмем
Confirm
после завершения процесса скачивания и появления окна с уведомлением, тем самым подтвердив инсталляцию.
Как только работы по установке основного и вспомогательного модулей будут завершены, следует нажать Apply Config
.
Настройка
Чтобы настроить продукт, откроем вкладку Applications → Text To Speech
. Здесь находим кнопку Add TTS
, нажимаем ее. Прописываем или выбираем:
-
Name
(любое подходящее имя); -
Text
(текст, написанный на поддерживаемом программой синтеза речи языке); -
Choose an Engine
(система синтеза речи, по умолчанию используетсяFlite
); -
Destination
(направление, по которому будет направлен звонок после озвучивания материала).
Стоит учитывать, что Flite
не умеет работать с русским языком. Чтобы решить эту проблему, можно использовать одну хитрость – писать текст транслитом. Чуть ниже мы разберем систему синтеза eSpeak
, в которой предусмотрена поддержка русского языка.
Применение на практике
Для направления вызова в модуль требуется выбрать его в перечне Destination
.
Разберем пример, в котором используются входящие маршруты. Откроем Connectivity → Inbound Routes
, где создадим новый или модифицируем существующий маршрут. Укажем требуемые параметры, для опции Set Destination
определим Text To Speech
.
Как добавить систему синтеза
Разберем, как интегрировать с модулем Text To Speech
новую систему, синтезирующую речь. В качестве образца возьмем уже упоминавшийся нами eSpeak
. Его установке посвящены другие труды, поэтому заострять внимание на этом не будем. Просто условимся, что он уже инсталлирован и нормально функционирует.
Для добавления решения eSpeak
в качестве речевой синтезирующей системы откроем Settings → Text To Speech Engines
и нажмем Add TTS Engine
. Необходимо заполнить 2 поля:
-
Engine Name
, -
Engine Path
.
В первом поле необходимо указать наименование системы синтеза (в данном случае eSpeak). Во втором указывается путь к бинарному файлу (/usr/bin/espeak
).
Стоит упомянуть, что изначально система может распознать только 4 системы, синтезирующие речь. К ним относятся: Flite, Text2Wave, Pico, Swift. Как видно, eSpeak в этом перечне отсутствует. Для расширения списка поддерживаемых систем открываем файл /var/www/html/admin/modules/tts/agi-bin/propolys-tts.agi
. Он содержит блок кода Switch ($engine). Добавим в него:
case 'espeak': exec($enginebin." -f $textfile -w $tmpwavefile -s 100 -v ru+3"); break;
Этот код необходим для запуска синтеза речи посредством eSpeak. Чтобы применить настройки, в консоли операционной системы Linux указываем:
fwconsole r
После указанных изменений модуль eSpeak может использоваться системой FreePBX.