「App aquestalk v1」の版間の差分
細 (→書式) |
細 (→問題点) |
||
56行目: | 56行目: | ||
CLI*> module load app_aquestalk.so | CLI*> module load app_aquestalk.so | ||
+ | ==応用例== | ||
+ | AquesTalkだけでIVRを作る(イントネーションちょっと変ですけど)。<br> | ||
+ | トーキーにしたがって、1~3をダイヤルすると該当する内線を呼び出す例です。 | ||
+ | [aqtivr] | ||
+ | exten => s,1,Wait(1) | ||
+ | exten => s,n,AquesTalk("\'はーどうえ\'あにかんしての、\/\'おといあわせ+わ。",,,123) | ||
+ | exten => s,n,AquesTalk("<NUM VAL=1>",,70) | ||
+ | exten => s,n,AquesTalk("を") | ||
+ | exten => s,n,AquesTalk("\'そふとうえ\'あにかんしての、\/\'おといあわせ+わ。",,,123) | ||
+ | exten => s,n,AquesTalk("<NUM VAL=2>",,70) | ||
+ | exten => s,n,AquesTalk("を") | ||
+ | exten => s,n,AquesTalk("その\'ほかの、\/\'おといあわせ\+わ。",,,123) | ||
+ | exten => s,n,AquesTalk("<NUM VAL=3>",,70) | ||
+ | exten => s,n,AquesTalk("を") | ||
+ | exten => s,n,AquesTalk("おして\/くだ\'さい。") | ||
+ | exten => s,n,WaitExten(10) | ||
+ | exten => s,n,Goto(s,1) | ||
+ | |||
+ | exten => 1,1,Dial(SIP/201) | ||
+ | exten => 2,1,Dial(SIP/202) | ||
+ | exten => 3,1,Dial(SIP/203) | ||
+ | |||
+ | exten => i,1,Playback(beep) | ||
+ | exten => i,n,Goto(s,1) | ||
+ | |||
+ | exten => h,1,Hangup | ||
+ | exten => t,1,Hangup | ||
==問題点== | ==問題点== | ||
*再生前後にノイズが入ることがある | *再生前後にノイズが入ることがある | ||
*Addonのmake menuselectに統合させるか? | *Addonのmake menuselectに統合させるか? | ||
*Asterisk 1.2用のニーズありますか? | *Asterisk 1.2用のニーズありますか? | ||
+ | |||
==メモ== | ==メモ== | ||
2007/09/14 WAVヘッダの除去処理を追加。全体の処理を見直し、ネイティブ実装に変更。 | 2007/09/14 WAVヘッダの除去処理を追加。全体の処理を見直し、ネイティブ実装に変更。 |
2007年9月15日 (土) 03:28時点における版
AquesTalk音声合成エンジン・インタフェース
設定ファイル
aquestalk.conf
[general] licencekey=ライセンスキーを指定する speed=80 <- speedのデフォルト値を指定 atten=2 <- attenのデフォルト値を指定
書式
AquesTalk(文字列,音量,速度,割り込みキー,オプション)
- 文字列:発声させる文字列を音声記号列にしたがって記述。EUCで記述する。
- 文字列はダブルクォート(")で括った方が安全です。括らないと場合によってはAsteriskが落ちることがあります。
- 音量:音量調整用パラメータ。ここで指定した値分の1の音量となる(1が最大音量、2で1/2、4で1/4)。
- 速度:発声速度を1~200で指定する。
- 割り込みキー:発声を途中で中断する場合のDTMFキーを指定する。
- オプション:現在のところ未実装。
注:文字列指定の際には文字のクォートに注意。
変数
AQTSTATUS
- SUCCESSまたはFAILED
使用例
引数に読み上げさせたい文字列をEUCで記述します。
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,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,AquesTalk(${AQTARG}||100)
いずれの場合も'や,のクォートに注意してください。
インストール方法
Asterisk-addon 1.4.2を入手・展開します。
http://downloads.digium.com/pub/asterisk/asterisk-addons-1.4.2.tar.gz
# tar zxvf asterisk-addons-1.4.2.tar.gz # cd asterisk-addons-1.4.2
./configureを実行しておきます。
# ./configure
AquesTalkを入手し、インストールしておきます。また、AquesTalkに含まれるAquesTalk.hをasterisk-addon-1.4.2ディレクトリにコピーしておきます。
App_AquesTalkを入手します。
ftp://ftp.voip-info.jp/asterisk/apps/1.4/app_aquestalk.tar.gz
Asterisk-addonのディレクトリで展開し、Makefileにパッチを当てます。
# tar zxvf app_aquestalk.tar.gz # patch -p0 < patch.Makefile
これでMakeすればapp_aquestalk.soができるのでコピーします。
# cp app_aquestalk.so /usr/lib/asterisk/modules/.
CLIからロードすれば使用可能になります。ロードする前に aquestalk.conf ファイルを作成しておいてください。
CLI*> module load app_aquestalk.so
応用例
AquesTalkだけでIVRを作る(イントネーションちょっと変ですけど)。
トーキーにしたがって、1~3をダイヤルすると該当する内線を呼び出す例です。
[aqtivr] exten => s,1,Wait(1) exten => s,n,AquesTalk("\'はーどうえ\'あにかんしての、\/\'おといあわせ+わ。",,,123) exten => s,n,AquesTalk("<NUM VAL=1>",,70) exten => s,n,AquesTalk("を") exten => s,n,AquesTalk("\'そふとうえ\'あにかんしての、\/\'おといあわせ+わ。",,,123) exten => s,n,AquesTalk("<NUM VAL=2>",,70) exten => s,n,AquesTalk("を") exten => s,n,AquesTalk("その\'ほかの、\/\'おといあわせ\+わ。",,,123) exten => s,n,AquesTalk("<NUM VAL=3>",,70) exten => s,n,AquesTalk("を") exten => s,n,AquesTalk("おして\/くだ\'さい。") exten => s,n,WaitExten(10) exten => s,n,Goto(s,1) exten => 1,1,Dial(SIP/201) exten => 2,1,Dial(SIP/202) exten => 3,1,Dial(SIP/203) exten => i,1,Playback(beep) exten => i,n,Goto(s,1) exten => h,1,Hangup exten => t,1,Hangup
問題点
- 再生前後にノイズが入ることがある
- Addonのmake menuselectに統合させるか?
- Asterisk 1.2用のニーズありますか?
メモ
2007/09/14 WAVヘッダの除去処理を追加。全体の処理を見直し、ネイティブ実装に変更。