Asteriskで自動音声の再生します。
GoogleのText To Speechという音声合成サービスを利用して、
テキストから音声に変換して再生するPerlスクリプトを使用します。
以下のサイトからPerlスクリプト「googletts.agi」だけをダウンロードします。
https://github.com/zaf/asterisk-googletts
「googletts.agi」を適当な場所に保存して/var/lib/asterisk/agi-bin/にコピーします。
sudo cp googletts.agi /var/lib/asterisk/agi-bin/
「googletts.agi」を実行可能にします。
sudo chmod 755 /var/lib/asterisk/agi-bin/googletts.agi
必要なパッケージをインストールします。
sudo apt-get update
sudo apt-get install libwww-perl libcrypt-ssleay-perl sox mpg123
モジュールの確認
sudo nano /etc/asterisk/modules.conf
1行目の「autoload = no」の場合、「no」→「yes」に変更する。
↓
autoload = yes
以下のモジュールを追記する。
load = res_speech.so load = res_agi.so
以上で環境設定は完了です。
————————————————————————————————-
Asteriskで「googletts.agi」の動作確認をします。
「extensions.conf」ファイルを開きます。
sudo nano /etc/asterisk/extensions.conf
以下の内容を「extensions.conf」に追記します。
exten = 200,1,Answer() same = n,agi(googletts.agi,"これはテストです。",ja) same = n,Wait(1) same = n,agi(googletts.agi,"This is a test.",en) same = n,Wait(1) same = n,agi(googletts.agi,"이것은 테스트입니다.",ko) same = n,Wait(1) same = n,Hangup()
設定内容を有効にするためにサービスの再起動
sudo systemctl restart asterisk.service
IP電話から内線「200」をダイヤルすると「これはテストです。This ・・・」が聞こえたら完了です。
————————————————————————————————-
//googletts.agiの使い方//
agi(googletts.agi,”text”,[language],[intkey],[speed])
“text” = 再生するテキスト。
[language] = 再生する言語。
[intkey] = 割り込みキーを指定した場合、再生途中に直ちに終了し、ダイヤルプランに対応する内線番号に進みます。指定しない場合は、再生が終了するまで割込みできません。
[speed] = 音声速度の係数(デフォルトは1.2)。