App aquestalk

提供: VoIP-Info.jp
2009年2月5日 (木) 13:37時点におけるTakahashi (トーク | 投稿記録)による版 (64bit版の注意点)
移動先: 案内検索

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)

64bit版

インストール方法(Asterisk 1.6)

AquesTalkライブラリのインストール

AquesTalk Linux版を入手します。

http://www.a-quest.com/aquestalk/index_linux.html

展開したならばライブラリおよびヘッダファイルをコピーしシンボリックリンクを張っておきます。

# 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を入手し展開しておきます。
なお、現在のapp_aquestalkはaddons-1.6.0で動作を確認しています。

http://downloads.digium.com/pub/asterisk/releases/

app_aquestalkを入手し、asterisk-addonsディレクトリで展開します。

# cd asterisk-addons-1.6.0
# wget ftp://ftp.voip-info.jp/asterisk/apps/1.6/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系で統一することにする。