概要

 音声認識ソフトJuliusで、辞書ファイルを作って認識させてみた。


背景と目的

 前回、Juliusのセットアップと動作確認ができた。今回は、自分で認識させたい言葉を定義した辞書ファイルを作って、認識させてみる。


詳細

0.流れ

 以下の流れでいく。参考にしたのは、こちらこちら

  • 辞書ファイルの作成
  • 辞書ファイルの変換
  • 動作確認

 なお、juliusの各ファイルは以下のディレクトリで配置してあるとする。

julius-4.3.1
julius-kits
|-- dictation-kit-v4.3.1-linux
|-- grammar-kit-v4.1
1.辞書ファイルの作成

 認識させたい言葉は、あとでフルカラーLEDの色を声で変えるのに使えるように、色の名前と点灯・消灯などの言葉を定義する。以下の内容で、word.yomiというファイルをjulius-kitsというディレクトリに作成。言葉+タブ+ひらがなの読みで1語ずつ書いていく。

 赤      あか
青 あお
緑 みどり
白 しろ
消灯 しょうとう
点灯 てんとう

 次に、julius同梱の変換プログラムで、作成したword.yomiをJuliusが認識する辞書形式(.dic)に変換。

cd ../julius-4.3.1/gramtools/yomi2voca
iconv -f utf8 -t eucjp ../../../julius-kits/word.yomi | yomi2voca.pl > ../../../julius-kits/dictation-kit-v4.3.1-linux/word.dic

 次に、julius-kits/dictation-kit-v4.3.1-linuxに、word.jconfファイルを作成。

-w word.dic       #単語辞書ファイル
-v model/lang_m/bccwj.60k.htkdic  #N-gram、または文法用の単語辞書ファイルを指定$
-h model/phone_m/jnas-tri-3k16-gid.binhmm #使用するHMM定義ファイル
-hlist model/phone_m/logicalTri   #HMMlistファイルを指定する
-n 5        #n個の文仮説数が見つかるまで検索を行う
-output 1     #見つかったN-best候補のうち、結果として出力する個数
-input mic      #マイク使用
-input oss      #オープンサウンドシステム使用
-rejectshort 600  #検出された入力が閾値以下なら棄却
-charconv euc-jp utf8 #入出力エンコード指定(内部euc-jp, 出力utf-8)
-lv 1000    #入力の振幅レベルの閾値(0~32767)

 そして、Juliusを実行。

cd julius-4.3.1
julius -C ../julius-kits/dictation-kit-v4.3.1-linux/word.jconf

 コマンドを実行したところ、認識OK。以下は、赤と発言したとき。他の言葉もちゃんと認識。なかなかいい感じ。

pass1_best: 赤
pass1_best_wordseq: 赤
pass1_best_phonemeseq: silB a k a silE
pass1_best_score: -2193.781738
sentence1: 赤
wseq1: 赤
phseq1: silB a k a silE
cmscore1: 0.992
score1: -2193.781738
:

まとめと今後の課題

 自分で定義した言葉を認識してくれた。次は、Raspberry PiにつないだフルカラーLED等を声で操作できるようにしてみたい。