LoginSignup
32
27

More than 3 years have passed since last update.

Raspberry pi上の音声認識(julius)認識率向上[julius辞書作成]

Last updated at Posted at 2017-11-08

音声認識を使って辞書作成

ストックじゃなくていいねください。

前提条件   

  • python3
  • こちらが終わってる前提で進んで行きます。

julius辞書作り

前回作成しなかった辞書作りです。

前回のディレクトリ構成

~/julius-4.4.2
|--julius-kit
       |--dictation-kit-v4.3.1
       |--grammer-kit-v4.3.1

辞書の作成

作成ディレクトリに移動

cd ~/julius-4.4.2/julius-kit

上記の場所でword.yomiを作成してください。

word + TABキー + ひらがなという書き方   

おはよう      おはよう
こんにちは      こんにちは
こんばんは      こんばんは
おやすみ      おやすみ
バイバイ      ばいばい

このまま下に言葉を列挙していってください。

次にjuliusが認識できる辞書形式(.dic)に変換する必要があります。

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

久しぶりにちょっといじったのでおまけで追加。
ちょっと単語を辞書に追加するのが面倒。
そんな時に入力した単語が辞書に登録されるshell

edit.sh
#!/bin/sh                                                                                                                                                                                                                         
echo "What word do you want to register as a dictionary?"
read word #単語入力

echo "$word" >>~/julius-4.4.2/julius-kit/word.yomi #word.yomiに書き込み
cat ~/julius-4.4.2/julius-kit/word.yomi #word.yomiの中身を表示

iconv -f utf8 -t eucjp ~/julius-4.4.2/julius-kit/word.yomi | yomi2voca.pl > ~/julius-4.4.2/julius-kit/dictation-kit-v4.3.1-linux/word.dic #音素データにコンパイル
echo "Completed!" #完了

shell 実行 (edit.sh)

$./edit.sh
What word do you want to register as a dictionary?
テスト てすと (登録単語)
... 
..
.
テスト てすと
Complete!

julius設定ファイルを作成

ここでは、辞書の書き方通り、登録単語+tab+よみ という入力ですが、
この書き方がめんどくさいという人は
登録単語とよみを別でreadして間にtabを入れるようにすればいいでしょう。

cd ~/julius-4.4.2/julius-kit/dictation-kit-v4.3.1-linux

上記の場所にjulisuの設定ファイルword.jconf

-w word.dic       #単語辞書ファイル
-v model/lang_m/bccwj.60k.htkdic  #N-gram、または文法用の単語辞書ファイルを指定$
-h model/phone_m/jnas-tri-3k16-gid.binhmm #使用するHMM定義ファイル
-hlist model/phone_m/logicalTri   #HMMlistファイルを指定する
-n 5        #n個の文仮説数が見つかるまで検索を行う
-output 1     #見つかったN-best候補のうち、結果として出力する個数
-input mic      #マイク使用
-input oss      #オープンサウンドシステム使用
-rejectshort 600  #検出された入力が閾値以下なら棄却
-charconv euc-jp utf8 #入出力エンコード指定(内部euc-jp, 出力utf-8)
-lv 1000    #入力の振幅レベルの閾値(0~32767)

自由の個人設定を行ってください。
そして、個人設定に合わせて実行

julius -C ~/julius-4.4.2/julius-kit/dictation-kit-v4.3.1-linux/word.jconf

まとめ

これでjulisuの認識率が格段にUPします。
また、認識して欲しい言葉だけを辞書化することでその範囲でしか認識されなくなるので利用もでいます。
また、ではjuliusを使って、特定の言葉にリアクションを行すものを作成します。

32
27
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
32
27