2017-11-29

Asterisk の再セットアップ -- googletts.agi を使ってみる


前回は Asterisk をインストールして、基本的な利用が可能な状態まで設定しました。

今回は googletts を使ってみることにします。

Googletts は 120 ヶ国語の対応した Text-To-Speech、つまりテキストから音声変換して発声してくれるもので、翻訳までしてくれるすぐれものです。

ウェブでは google 翻訳サイトで知られているもので、これを Asteriskagi プログラムに仕立てて、Asterisk のアプリケーションとして動作できるようにしたものです。

これは作者も触れているように、google の公式なプログラムではなく製作者が GNU ライセンスのもとで作成して公開してくれているものです。

ここにこの作者のホームページがあります。

今回はこれを実装してテストしてみることにします。


-------------------------------------------------------------------------------------------
❏ Raspbian STRETCH をクリーンインストールする
❏ Asterisk をインストールする
❏ googletts.agi を使ってみる ⇐ いまココ
❏ Asterisk にボイスメールを設定する
❏ Asterisk で FAX 送受信してみる
❏ Asterisk の各種設定ファイル
-------------------------------------------------------------------------------------------



まず、さきほどのホームページの「ダウンロード」の項目の中に zip または tar 形式のファイルがありますから、ここをクリックするとダウンロードされます。


解凍をして googletts.agi を抽出し、/var/lib/asterisk/agi-bin にコピーします。

# cp /home/pi/Downloads/googletts.agi /var/lib/asterisk/agi-bin


実行権限を与えます。

# chmod 755 /var/lib/asterisk/agi-bin/googletts.agi


次に、必要なソフトウェア(さきほどのホームページの「README」に書かれています)をインストールします。


# apt-get update
# apt-get install libwww-perl libcrypt-ssleay-perl sox mpg123


これで使う環境は揃いました。


では実際に extensions.conf に記述して動かしてみます。

  exten => 300,1,Answer()

  exten => 300,n,agi(googletts.agi,"これはテストです",ja)
  exten => 300,n,Wait()
  exten => 300,n,agi(googletts.agi,"this is a test.",en)
  exten => 300,n,Wait(2)
  exten => 300,n,NoOp("Now googletts tested")
  exten => 300,n,Hangup()


クライアントの内線 210 または 220 から内線 300 をダイヤルしてみます。

google 姉さんの声で記述したとおりに喋ってくれます。

うまくいかないときは CLI> agi set debug on とし、 googletts.agi の中の 72行目辺りにある


  my $debug = 0;my $debug = 1; に変更すします。


CLI でエラー内容を確認できますので、エラーの原因を調べられます。


私の場合、実際に「実行権限がない」というエラーになったので、実行権限を与えてOKとなりました。

うまく再生できた場合は、上のデバッグモードを戻しておきます。



googletts.agi の使い方】


  exten=>s,n,agi(googletts.agi,"text",[language],[intkey],[speed])


  ”test"                ;; テキストを記述
  [language]        ;; スピーチする言語(テキストと異なる言語の場合は
                                ここで指定の言語に翻訳
  [intkey]            ;; 割り込みキー(省略可)
                                 IVR で再生途中でも割り込んで受け付ける文字を記述。
                                'any' は任意の文字で割り込む。
  [speed]             ;; 再生のスピード(初期値 1.2
                                 1.2 は英語などは丁度いいが日本語は遅く感じるので
             1.5 くらいがいい


intkey を 'any' にして、そのあとの exten WaitExten などで得た文字を解釈し、IVR 処理を行うことが可能になります。



googletts.agi を使うことによるメリット】


Playback アプリケーションで使用する音声ファイルが標準で用意されていないとき、
  これを作成することになるが、その必要がなくなる。

Playback アプリケーションでは使う音声ファイルの内容を core-sounds-text
  確認する必要があるが、googletts.agi の場合はテキストを直接記述なので見ただけで
  わかる。

IVR にも対応できるので、使い勝手がいい。

④ 実際の使用場面は少ないかもしれませんが、翻訳にも対応しています。



ちなみに、ブラステルは最近翻訳サービスアプリの提供を始めましたが、使っているのは google 翻訳エンジンだそうです。



いいことづくめですネ。



是非活用してみてください。


今回はここまでです。


次回はボイスメール(留守電)の設定をします。








0 件のコメント: