artem
10.07.2017
5801

Синтез речи средствами Yandex Speech Cloud+Asterisk. Text to Speech.

Все команды описанные необходимо выполнять от имени суперпользователя(root). 

Установка:

1. Получим доступ к использованию сервиса Yandex Speech Cloud

1.1 Перейдём в интернет-обозревателе(Google Chrome, Opera, Firefox…..) на страницу https://developer.tech.yandex.ru/ и пройдём авторизацию в системе

 Авторизация в Yandex.

1.2 По завершению авторизации система предложит получить ключ API, нажмём кнопку «Получить ключ» и выберем сервис SpeechKit Cloud, в следующем окне необходимо заполнить поля «Имя, Фамилия» и для каких целей будет использоваться, а так же необходимо согласиться с условиями лицензионного соглашения.

Подключение SpeechKit Cloud

Подключение SpeechKit Cloud

 Подключение SpeechKit Cloud

1.3 По завершению подключения сервиса система автоматически перенаправит на страницу где будут доступны Ваши API ключи. Выполним капирование для выполнение дальнейших настроек.

API SpeechKit Cloud.

2. Дальнейшие настройки необходимо выполнять на стороне сервера телефонии, для это выполним подключение по SSH и приступим к подключению Yandex SpeechKit Cloud к Asterisk.

# mkdir /var/lib/asterisk/festivalcache
# nano /var/lib/asterisk/agi-bin/say.php

Внесем в файл следующий код:

#!/usr/bin/php -q
<?php
$agivars = array();
while (!feof(STDIN)) {
    $agivar = trim(fgets(STDIN));
    if ($agivar === ”)
        break;
    $agivar = explode(‘:’, $agivar);
    $agivars[$agivar[0]] = trim($agivar[1]);
}
extract($agivars);
 
$text = $_SERVER[“argv”][1];
$md5 = md5($text);
$prefix = ‘/var/lib/asterisk/festivalcache/’;
$key = ‘Yandex_API’;
$speaker=’zahar’;
$emotion=’good’;
$lang=’ru-RU’;
$format=’mp3′;
$filename = $prefix.$md5;
 
if (!file_exists($filename.’.alaw’)) {
    exec(‘curl “https://tts.voicetech.yandex.net/generate?format=’.$format.’&lang=’.$lang.’&speaker=’.$speaker.’&emotion=’.$emotion.’&key=’.$key.'” -G –data-urlencode “text=’.$text.'” > ‘.$filename.’.mp3′);
    exec(‘ffmpeg -i ‘.$filename.’.mp3 -ar 8000 -ac 1 -ab 64 ‘.$filename.’.wav -ar 8000 -ac 1 -ab 64 -f alaw ‘.$filename.’.alaw -map 0:0 -map 0:0′);
}
 
echo ‘EXEC Background “‘.$filename.'” “”‘.”n”;
exit(0);
?>
# chmod 777 /var/lib/asterisk/agi-bin/say.php
# chown asterisk:asterisk /var/lib/asterisk/agi-bin/say.php
# chmod 777 /var/lib/asterisk/festivalcache
# chown asterisk:asterisk /var/lib/asterisk/festivalcache
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm
# yum -y install ffmpeg ffmpeg-devel

 

3. По завершению всех настроек, можно приступить к диалплану Asterisk. Небольшой пример по использованию созданного AGI скрипта:

# nano /etc/asterisk/extensions_custom.conf
exten => 911,1,Noop(Text to Speech)
same => n,AGI(say.php,”Текст который желаете озвучить “)

 

Более подробно о возможных форматах записи(переменная format), о языке озвучивание(переменная lang), о дикторе(переменная speaker) можно узнать на странице:
https://tech.yandex.ru/speechkit/cloud/doc/guide/concepts/tts-http-request-docpage/

 
avatar
  Подписаться  
Уведомление о

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

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

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

Why Choose HUGE?

Unlimited pre-designed elements

Each and every design element is designed for retina ready display on all kind of devices

User friendly interface and design

Each and every design element is designed for retina ready display on all kind of devices

100% editable layered PSD files

Each and every design element is designed for retina ready display on all kind of devices

Created using shape layers

Each and every design element is designed for retina ready display on all kind of devices