App aquestalk
Asterisk AquesTalk音声合成エンジン・インタフェース
このページは新バージョンのためのものです
旧AquesTalkの情報はapp_aquestalk_v1にあります。
app_aquestalkは音声合成エンジン、AquesTalkを使用してAsterisk内で音声をリアルタイム合成するアプリケーションモジュールです。
AquesTalk 2.2ライブラリに対応しています。このため、ローマ字表記が使えるので日本語の使えない環境でも日本語を発声させることができます。
目次
設定ファイル
aquestalk.conf
[general] licencekey=ライセンスキーを指定する speed=80 <- speedのデフォルト値を指定 atten=2 <- attenのデフォルト値を指定 charaset=euc <- デフォルトの文字コードセット
exten内で記述する文字コードセットが指定可能です。設定は euc sjis utf8 roma のいずれかです。各文字コードにおける発音の表記方法についてはAquesTalkのドキュメントを参照してください。
なおアプリケーション・モジュールにおけるUTF-16サポートについては現在のところ実装していません。
書式
AquesTalk(文字列,音量,速度,割り込みキー,文字コード,オプション)
- 文字列:発声させる文字列を音声記号列にしたがって記述。指定した文字コードで記述する。
- 文字列はダブルクォート(")で括った方が安全です。括らないと場合によってはAsteriskが落ちることがあります。
- 音量:音量調整用パラメータ。ここで指定した値分の1の音量となる(1が最大音量、2で1/2、4で1/4)。
- 速度:発声速度を1~200で指定する。
- 割り込みキー:発声を途中で中断する場合のDTMFキーを指定する。
- 文字コード:発声に使用させる文字列の文字コードを指定する。euc sjis utf8 romaのいずれか。
- オプション:現在のところ未実装。
注:文字列指定の際には文字のクォートに注意。
注:文字コードが省略された場合にはaquestalk.conの値が使用される。.conf内で指定しされていない場合はeuc。
注:実際に与える文字列と、そのコード指定が一致しているかどうかはチェックされないので注意。
注:1.0系は廃止されました。今後はAquesTalk()はこのインタフェースとなります。
変数
AQTSTATUS
- SUCCESSまたはFAILED
使用例
引数に読み上げさせたい文字列を指定した文字コードで記述します。文字コードのデフォルトはeucですが、aquestalk.confで指定されている場合には、そのコードがデフォルトとして使われます。引数で指定した場合にはデフォルト値に関係なく、指定したコードであるとみなされます。
exten => 5000,1,Answer exten => 5000,n,Wait(1) exten => 5000,n,AquesTalk("あな\'たの、でんわば\'んごーわ、<NUM VAL=${CALLERID(num)}>\,\,デ_ス",,110,#*) exten => 5000,n,AquesTalk("\'こんにちわ、ごきげ\'んい\'かがですか?",,110) exten => 5000,n,AquesTalk("konobangouwa",,,,roma) exten => 5000,n,NoOp(${AQTSTATUS}) exten => 5000,n,Wait(1) exten => 5000,n,Playback(beep) exten => 5000,n,Hangup
チャネル変数を引き渡すこともできます。
exten => 300,1,Answer exten => 300,n,Wait(1) exten => 300,n,AquesTalk(あな\'たの、でんわ\'ば\'んごうわ\,||100) exten => 300,n,Set(AQTARG="<NUM VAL=${CALLERID(num)}>デ_ス。") exten => 300,n,AquesTalk2(${AQTARG}||100)
いずれの場合も'や,のクォートに注意してください。
インストール方法(Asterisk 1.4/1.6)
AquesTalkライブラリのインストール
AquesTalk Linux版を入手します。
展開したならばライブラリおよびヘッダファイルをコピーしシンボリックリンクを張っておきます。
# cp libAquesTalk.so.2.2 /usr/lib # ln -sf /usr/lib/libAquesTalk.so.2.2 /usr/lib/libAquesTalk.so.2 # ln -sf /usr/lib/libAquesTalk.so.2 /usr/lib/libAquesTalk.so # /sbin/ldconfig -n /usr/lib # cp AquesTalk.h /usr/include
Asterisk-addonsの入手と展開
Asteriskのaddonsを入手し展開しておきます。
なお、現在のapp_aquestalkはaddons-1.6.0およびaddons-1.4.7で動作を確認しています。
Asterisk 1.4系は1.4のaddonsを、1.6系は1.6のaddoinsを入手してください。
app_aquestalkの入手とパッチ
app_aquestalkを入手し、asterisk-addonsディレクトリで展開します。
- 1.6.0の場合
# cd asterisk-addons-1.6.0 # wget ftp://ftp.voip-info.jp/asterisk/apps/1.6/app_aquestalk.tar.gz
- 1.4.7の場合
# cd asterisk-addons-1.4.7 # wget ftp://ftp.voip-info.jp/asterisk/apps/1.4/app_aquestalk.tar.gz
app_aquestalkを展開し、パッチを当てます
# tar zxvf app_aquestalk.tar.gz # patch -p0 < astersik-addons-aquestalk.patch
これで準備は整いました。./configureを行い、make menuselectで必要なモジュールだけを選択してから、make, make installを実行してください。
64bit版の注意点
configureによる64bit版の判定はuname -mの結果がx86_64かどうかで行っています。
# uname -m x86_64
それ以外のマシンの場合は自力で調整するか、ご一報下さい。
64bit版をインストールする場合には、AquesTalkのライブラリを/usr/lib64に配置してください。
# cp libAquesTalk.so.2.2 /usr/lib64 # ln -sf /usr/lib64/libAquesTalk.so.2.2 /usr/lib64/libAquesTalk.so.2 # ln -sf /usr/lib64/libAquesTalk.so.2 /usr/lib64/libAquesTalk.so # /sbin/ldconfig -n /usr/lib64 # cp AquesTalk.h /usr/include
あとは32bit版と同じです。
リリース・メモ
2009/02/05 今後、AquesTlak1系ライブラリは配布されないと思われるので、2系で統一することにする。