LoginSignup
47
53

More than 5 years have passed since last update.

Raspberry Piで音声認識(パフォーマンス改善)

Posted at

悩み

前回のRaspberry Piで音声認識でマイクで話した言葉を認識するようになりました。

ですが、マイクで話してから認識するまでに2-3秒かかってしまいました。

そして、なかなか自分の話した言葉を認識してもらえません。(誤認識が多い)

さくっと認識してほしいものです。

認識時間を早め、認識率を上げる

認識までの時間がかかる点と、誤認識については、辞書が大きすぎることが原因と考えました。(文法解析まで含めているせいもあると思います)

認識してほしい言葉は限られているので、専用の辞書を作ってパフォーマンスを改善しようと思います。。

参考: 日本語音声認識の'オリジナル単語辞書を作る'

辞書を作る

まず認識させたい言葉の読みを作成します。
単語間はタブ区切りで、最終行は改行が入らないようにする必要があるそうです。

weather.yomi
天気    てんき
気温    きおん
紫外線  しがいせん

次に、辞書形式に変換します。
yomiファイルの場所やyomi2voca.plの場所などは適宜置き換えてください。

$ iconv -f utf8 -t eucjp ~/weather.yomi | ~/julius-kits/dictation-kit-v4.3.1-linux/bin/yomi2voca.pl > ~/julius-kits/dictation-kit-v4.3.1-linux/weather.dic

設定ファイルを作る

今度は変換した辞書を使うための設定ファイルを作成します。
設定値はmain.jconfを参照にしました。

weather.jconf
-w weather.dic
-v model/lang_m/bccwj.60k.htkdic
-h model/phone_m/jnas-tri-3k16-gid.binhmm
-hlist model/phone_m/logicalTri
-lmp 8.0 -2.0
-lmp2 8.0 -2.0
-b 1500
-b2 100
-s 500
-m 10000
-n 30
-output 1
-input mic
-zmeanframe
-rejectshort 800
-charconv EUC-JP UTF-8

動作確認

最後に、この設定ファイルを使って起動します。

$ ALSADEV="plughw:0,0" ~/julius-4.3.1/julius/julius -C ~/julius-kits/dictation-kit-v4.3.1-linux/weather.jconf -nostrip
### read waveform input
Stat: adin_oss: device name = /dev/dsp (application default)
Stat: adin_oss: sampling rate = 16000Hz
Stat: adin_oss: going to set latency to 50 msec
Stat: adin_oss: audio I/O Latency = 32 msec (fragment size = 512 samples)
STAT: AD-in thread created
pass1_best: 天気
pass1_best_wordseq: 天気
pass1_best_phonemeseq: silB t e N k i silE
pass1_best_score: -1967.845459
sentence1: 天気
wseq1: 天気
phseq1: silB t e N k i silE
cmscore1: 1.000
score1: -1967.845459

pass1_best: 晴れ
pass1_best_wordseq: 晴れ
pass1_best_phonemeseq: silB h a r e silE
pass1_best_score: -1813.533447
sentence1: 晴れ
wseq1: 晴れ
phseq1: silB h a r e silE
cmscore1: 0.930
score1: -1813.533447

<<< please speak >>>

認識されるまでの時間も短縮され、スコアも上がりました!

47
53
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
47
53