Возможности модуля Text to Speech в FreePBX

Дмитрий Аверин
16 июля 2020
access_time4 минуты
remove_red_eye2652
Компания «Ланкрафт»
Компания «Ланкрафт»

В этот раз мы разберем, как правильно выполнить установку модуля 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.

Для его инсталляции необходимо выполнить следующие шаги:

  1. Открыть меню Admin и найти там вкладку Module Admin. Там следует нажать Check Online.
  2. Перейти в раздел Settings и отыскать там вспомогательный Text To Speech Engines. Затем необходимо нажать на соответствующую кнопку для загрузки и установки.
  3. Появится окно, в котором следует нажать Confirm, подтвердив таким способом, что вы согласны установить продукт. Ожидаем, когда закончится установка, и переходим к следующему шагу.

Инсталляция Text To Speech

Инсталляция основного модуля также проводится в три этапа:

  1. Открываем Admin → Module Admin. Необходимо выбрать группу модулей Extended нажатием Check Online. Если она активна, оставляем опцию в текущем состоянии.
  2. Ищем пункт меню Applications, который должен содержать искомый модуль Text To Speech. Выбираем пункт Download and Install для его загрузки и установки.
  3. Жмем 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.