差分

移動先: 案内検索

Julius を使った音声認識

849 バイト追加, 2009年11月6日 (金) 15:30
Asterisk 1.6.1 に対応したので、更新
<br/>なお、以下の番号で山手線の駅名を認識するデモを用意してあります。
<pre>055-287-7709</pre>
 
=== 更新履歴 ===
* Asterisk 1.6.1 系対応。(2009/11/6)
=== 材料 ===
<ul>
* x86 系の Linux 環境
* Asterisk 1.4 / 1.6.1 系のソース<br/>: 2009/1011/6 の最新版<br/>の最新版:: http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.4.26.23.tar.gz: http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.6.1.9.tar.gz* Julius ソース<br/>: http://sourceforge.jp/projects/julius/downloads/37582/julius-4.1.2.tar.gz/* Julius ディクテーション実行キット<br/>: http://prdownloads.sourceforge.jp/julius/28977/dictation-kit-v3.2.tar.gz* Asterisk 連携用パッチと Julius プラグインのソース<br/>: http://www2.iweave.jp/asterisk-julius/asterisk-julius-2009100620091106.tgz
</ul>
* デモ環境<br/>:このデモでは、音声合成に galatea talk + unidic を利用しています。
<ul>
* 山手線の駅名の認識デモ<br/>: http://www2.iweave.jp/asterisk-julius/asterisk-julius-20091006-jr.tgz* OSC 2009 Okinawa で使ったデモ<br/>: http://www2.iweave.jp/asterisk-julius/asterisk-julius-20091006-yui.tgz
</ul>
* Asterisk 1.6.1 系、近日対応予定。
=== 環境の構築 ===
<blockquote><pre>
# cd /root/work
# wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.4.26.23.tar.gz
# w3m http://sourceforge.jp/projects/julius/downloads/37582/julius-4.1.2.tar.gz/
# w3m http://prdownloads.sourceforge.jp/julius/28977/dictation-kit-v3.2.tar.gz
# wget http://www2.iweave.jp/asterisk-julius/asterisk-julius-2009100620091106.tgz
# wget http://www2.iweave.jp/asterisk-julius/asterisk-julius-20091006-jr.tgz
# wget http://www2.iweave.jp/asterisk-julius/asterisk-julius-20091006-yui.tgz
# make install
</pre></blockquote>
* 参考ページ<br/>: http://julius.sourceforge.jp/juliusbook/ja/desc_install.html#id2486532
</ul>
* Julius プラグインビルド
<ul>
* /root/work に asterisk-julius-2009100620091106.tgz を展開する。
<blockquote><pre>
# cd /root/work
# tar zxf asterisk-julius-2009100620091106.tgz
</pre></blockquote>
* ソースを Julius のディレクトリにコピーする。
* 音響モデルの用意
<ul>
* /root/work に dictation-kit-v3.2.tar.gz を展開する。<br/>:ビルド作業はありません。
<blockquote><pre>
# cd /root/work
</ul>
* Asterisk 連携アプリケーションのビルド連携アプリケーションのビルド(Asterisk 1.4 系の場合)
<ul>
* /root/work に Asterisk 1.4 系のソースを展開する。
# tar zxf asterisk-1.4.*.tar.gz
</pre></blockquote>
* /root/work に asterisk-julius-2009100620091106.tgz を展開する(展開していない場合)。
<blockquote><pre>
# tar zxf asterisk-julius-2009100620091106.tgz
</pre></blockquote>
* app_talkdetect.c にパッチを当てる。
* /etc/asterisk/sip.conf 等を編集して、電話機を登録する。
* すでにビルド環境がある場合は、その環境に app_talkdetect.c をコピーして、再ビルド&インストールしてください。
</ul>
 
* Asterisk 連携アプリケーションのビルド(Asterisk 1.6.1 系の場合)
<ul>
* Asterisk 1.4 系の手順に準じる。
* ただし、パッチファイルとして app_talkdetect-julius.patch-1.6 を利用する。
</ul>
# tar zxf work/asterisk-julius-20091006-jr.tgz
</pre></blockquote>
* /root/work に asterisk-julius-2009100620091106.tgz を展開する(展開していない場合)。
<blockquote><pre>
# cd /root/work
# tar zxf asterisk-julius-2009100620091106.tgz
</pre></blockquote>
* 番号計画をコピーする。番号計画をコピーする(Asterisk 1.4 系の場合)。
<blockquote><pre>
# cp /root/work/asterisk-julius/extensions.ael /etc/asterisk
</pre></blockquote>
* 番号計画をコピーする(Asterisk 1.6.1 系の場合)。
<blockquote><pre>
# cp /root/work/asterisk-julius/extensions.ael-1.6 /etc/asterisk/extensions.ael
</pre></blockquote>
* default コンテキストの 200 番でデモが利用できる。
# tar zxf work/asterisk-julius-20091006-yui.tgz
</pre></blockquote>
* /root/work に asterisk-julius-2009100620091106.tgz を展開する(展開していない場合)。
<blockquote><pre>
# cd /root/work
# tar zxf asterisk-julius-2009100620091106.tgz
</pre></blockquote>
* 番号計画をコピーする(コピーしていない場合)。番号計画をコピーする(コピーしていない場合、Asterisk 1.4 系の場合)。
<blockquote><pre>
# cp /root/work/asterisk-julius/extensions.ael /etc/asterisk
</pre></blockquote>
<blockquote><pre>
* 番号計画をコピーする(コピーしていない場合、Asterisk 1.6.1 系の場合)。
# cp /root/work/asterisk-julius/extensions.ael-1.6 /etc/asterisk/extensions.ael
</pre></blockquote>
* default コンテキストの 201 番でデモが利用できる。
</ul>
* OSC 2009 Okinawa で使ったデモ<br/>: ゆいレールの駅名を認識します。
<ul>
* Asterisk を再起動する。
</pre></blockquote>
* 接続している電話機から 201 番をダイアルする。
* ゆいレールの情報はこちらで確認下さい。<br/>: 右側に駅名が記載されています。<br/>: http://www.yui-rail.co.jp/
</ul>
=== 利用方法 ===
* Julius の設定
*<ul>* plugindir<br/>:プラグインが存在するディレクトリを指定する。** input<br/>: 音源の指定。Asterisk 連携では udpadin を指定する。** udpport<br/>: Astersik 連携のポートを指定する(オプション)** 設定ファイルの例(該当部分のみ抜粋)
<blockquote><pre>
-plugindir /root/work/julius-4.1.2/plugin
-udpport 12346
</pre></blockquote>
</ul>
* Julius の辞書
*<ul>* 認識した結果(単語)が、そのまま、Asterisk に通知される。** 例えば、数字(英数字)にすると、番号計画の中で利用しやすくなる。</ul>
* 番号計画での利用方法
*<ul>* 認識させる**<ul>* チャネル変数 JULIUS_PORT に julius 連携用の UDP ポートを指定する。(オプション)*** アプリケーション BackgroundDetect に、プロンプトを指定して、実行する。: プロンプトには、認識させたい時間分の無音部分を音声後に含ませる。<br/ul>プロンプトには、認識させたい時間分の無音部分を音声後に含ませる。** 認識結果を利用する**<ul>* 単語を認識したときは、talk エクステンションに goto する。*** 認識した単語は、チャネル変数 JULIUS_RECOG にセットされる。</ul></ul>
=== 制限 ===
* 音声認識は、同時に1チャネルのみ利用可能です。<br/>: 複数チャネルで利用した場合は、正しい結果を得ることができません。
* 登録されていない単語に対しても、常に登録した単語として認識してしまいます。
* 騒がしい環境で利用すると、ノイズを音声とみなし、登録した単語として誤認識します。
=== 備考 ===
* 音声認識 Julius のページ<br/>: http://julius.sourceforge.jp/* 音声合成 galatea talk のページ<br/>: http://www.sp.nitech.ac.jp/~demo/gtalk/demo.php<br/>: http://sourceforge.jp/projects/galateatalk/* 形態素解析辞書 unidic のページ<br/>: http://www.tokuteicorpus.jp/dist/ 
=== 補足ファイル ===
* 山手線音声ファイル AqesTalk版
:http://ftp.voip-info.jp/asterisk/sounds/misc/jr-aqt.zip
:上記のデモ環境の音声ファイルと交換して使用できます。
17
回編集

案内メニュー

VoIp-Info.jp

HP Directplus -HP公式オンラインストア-