■ はじめに
https://blogs.yahoo.co.jp/dk521123/37449064.htmlの続き。 今回は、音声認識の精度を上げるために、 音声認識キットを使って、ルールベースの認識を行う。
■ 全体の流れ
yomiファイル == 変換(yomi2voca.pl) ==> vocaファイル | dfaファイル | == コンパイル(mkdfa.pl) ==> term ファイル | dict ファイル grammar ファイル
■ 作成手順
【1】読みファイル作成 (yomi ファイル) 【2】読みファイルを語彙ファイル (voca ファイル)に変換 【3】文法ファイル作成(grammar ファイル) 【4】コンパイル
【1】 読みファイル作成
sample.yomi% CALL ねぇ ねぇ ハロー はろー % NAME ラズパイ らずぱい % NS_B [s] silB % NS_E [s] silE
【2】読みファイルを語彙ファイルに変換
読みファイルから語彙ファイルに変換するyomi2voca.pl は EUC-JP しか認識しないので、iconvで変化iconv -f utf8 -t eucjp ~/sample.yomi | yomi2voca.pl | iconv -f eucjp -t utf8 > ~/sample.vocasample.voca (実行結果から得た出力ファイル)
% CALL ねぇ n e: ハロー h a r o: % NAME ラズパイ r a z u p a i % NS_B [s] silB % NS_E [s] silE
【3】文法ファイル作成
* 構文制約を行うための grammar ファイルを作成sample.grammar
S : NS_B CALL NAME NS_E
【4】コンパイル
「sample.voca」「sample.grammar」を入力ファイルとして、mkdfa.plでコンパイルする# mkdfa.plと同一階層に「mkfa」「dfa_minimize」がないと動作しないのでリンクを張って対応する cd ~/julius/gramtools/mkdfa ln -s `which mkfa` ln -s `which dfa_minimize` # コンパイル(「sample.dfa」「sample.term」「sample.dict」が生成される) cd ~ ~/julius/gramtools/mkdfa/mkdfa.pl sample
【5】音声認識実行
コンパイルで得られた「sample.dfa」「sample.term」「sample.dict」を使って音声認識を行うjulius -C julius-kits/grammar-kit-4.3.1/hmm_mono.jconf -input mic -gram sample -nostrip # 「ねぇ、ラズパイ」「ハロー、ラズパイ」ってマイクに向かって言って確認
参考文献
http://www.feijoa.jp/laboratory/raspberrypi/julius442/https://qiita.com/nanako_ut/items/0b42cb956929a7ac739a
http://www.mizutan.com/wordpress/?p=1877