【Raspberry PI】音声認識 ~ Julius / 文法ファイル作成編 ~ [2]

■ はじめに

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.voca
sample.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

# 「ねぇ、ラズパイ」「ハロー、ラズパイ」ってマイクに向かって言って確認


関連記事

Raspberry PI音声認識 ~ Julius / 初期設定編 ~ [1]

https://blogs.yahoo.co.jp/dk521123/37449064.html