#関連記事
raspberryPiとjulus(音声認識)を使用する。①マイク編
raspberryPiでjulius(音声認識)を使用する。②インストール編
raspberryPiとJulius(音声認識)を使用する。③辞書作成編
raspberryPiとJulius(音声認識)を使用する。④Lチカ編
raspberryPiとJulius(音声認識)を使用する。⑤i2cキャラクタディスプレイ編
辞書ファイルの作成
これがまたすごく大変だった。単語に読み仮名をつけたファイルの作成(.yomi)
まず辞書ファイルを作成するためのディレクトリを作る。
$ cd julius
$ mkdr dict
$ cd dict
階層はこんな感じ。
~/julius
|--dict
|--julius-4.6
|--julius-kit
|--dictation-kit-4.5
|--grammer-kit-4.3.1
ファイルを作成して編集するためにvimコマンドを使う。
vimをインストールする。
$ apt-get install vim
$ vim --version
$ sudo vim test.yomi
右上のキーボードマークをクリックして日本語入力ができるようにする。
↓↓
単語→tab→読み仮名(ひらがな)
と下に下に書いていく。単語は漢字でも大丈夫。
余分な空白はエラーになるので入れないよう注意。
最後の単語を入力したら改行はしないこと。最後の一行が空にならないように注意する。
単語帳ができたら、ctrl+C→ZZでvimエディタを終了する。
vimの使い方はこの記事を参照。
よく使う Vim のコマンドまとめ
読み仮名ファイルをローマ字ファイルにする(.phone)(.dic)
この次のコードにハマった。Julius4.5以降は変換の必要がないらしい。$ sudo iconv -f utf8 -t eucjp うんたらかんたら
なので次のコードで実行する。
$ perl ~/julius/julius-4.6/gramtools/yomi2voca/yomi2voca.pl test.yomi > ~/julius/dict/test.phone
ターミナルに特に表示されないので、ファイルができていることを確認し表示する。
$ ls
$ sudo vim test.phone
.yomiファイルがローマ字に変換されていればOKなので、特に弄らず閉じる。
文法ファイルを作成する(.grammar)
``` $ sudo vim test.grammar ``` 開いたエディタに次のコードを書き込む。単語の数だけ書く。 .phoneファイルのローマ字と一致するように注意する。 例)✕KONNNITIHA 〇KONNICHIWAS : NS_B TEST NS_E
TEST:ARIGATOU
TEST:KONNICHIWA
構文ファイル1行目のSの部分は、構文定義を示し、NS_Bが文章の開始、NS_Eが文章の終了を表します。2行目以下のTESTの部分は認識させる文字列となっていて、先ほど生成された「音素」ファイル(hello.phone)の読みを大文字にして使います。一部改変し引用
書き込んだらエディタを終了する。
語彙ファイルを作成する(.voca)
.phoneファイルをコピーして語彙ファイルを作成する。 語彙ファイルを編集する。$ sudo cp test.phone test.voca
$ sudo vim test.voca
単語毎に形式をそろえて次のコードの形になるように書き加える。
単語とローマ字の間がtabで区切られていて、このまま動いたがスペースにした方がいいらしい。
% ARIGATOU
ありがとう a r i g a t o u
% KONNICHIHA
こんにちは k o N n i ch i w a
% NS_B
[s] silB
% NS_E
[/s] silE
辞書データに変換する
ディレクトリを移動する。$ cd julius/julius-4.6/gramtools/mkdfa
移動した先で次のコードを実行する。
$ mkdfa.pl ~/julius/dict/test
成功すると、dictファイル内に「.dfa」「.term」「.dict」ファイルが生成される。
(何故か.dfatmpというファイルが出来上がってしまったので、名前の変更を行った。.tmpのファイルもやたらに作成されているが、良く分からないので放置。)
辞書を使って音声認識をする
$ cd
次のコードを実行する。
$ julius -C ~/julius/julius-4.6/julius-kit/dictation-kit-4.5/am-gmm.jconf -nostrip -gram ~/julius/dict/test -input mic
何を言っても「ありがとう」と「こんにちは」だけをひたすら認識する。できた。