App aquestalk

2017年11月18日 (土) 17:50時点におけるTakahashi (トーク | 投稿記録)による版 (「App aquestalk」を保護しました ([編集=管理者のみ許可] (無期限) [移動=管理者のみ許可] (無期限)))

Asterisk AquesTalk音声合成エンジン・インタフェース


このページは新バージョンのためのものです
旧AquesTalkの情報はapp_aquestalk_v1にあります。


app_aquestalkは音声合成エンジン、AquesTalkを使用してAsterisk内で音声をリアルタイム合成するアプリケーションモジュールです。
AquesTalk 2.2ライブラリに対応しています。このため、ローマ字表記が使えるので日本語の使えない環境でも日本語を発声させることができます。


目次

書式

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版を入手します。

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の入手と展開

Asteriskのaddonsを入手し展開しておきます。
なお、現在のapp_aquestalkはaddons-1.6.0およびaddons-1.4.7で動作を確認しています。

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

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 < asterisk-addons-aquestalk.patch
  • 1.4.10 の場合パッチを当てる必要は無くなりました。
ファイルを展開して取り出せる app_aquestalk2.c を apps 以下のディレクトリに入れてください。

これで準備は整いました。./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系で統一することにする。