raspberryPiとJulius(音声認識)を使用する。③辞書作成編


関連記事

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 〇KONNICHIWA

S : 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


何を言っても「ありがとう」と「こんにちは」だけをひたすら認識する。できた。

独自辞書の作成完了

次は言葉を認識してLチカ編へ。
raspberryPiとJulius(音声認識)を使用する。④Lチカ編

参考

ラズパイ4日目①:Juliusで独自辞書を作成する
Raspberry PiとJuliusで特定の単語を認識させる
Raspberry Piでjuliusを使って音声認識をする


raspberry piにてjulius4.5を使い音声認識、文字化け
よく使う Vim のコマンドまとめ