音声認識を使って辞書作成
ストックじゃなくていいねください。
前提条件
- 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を使って、特定の言葉にリアクションを行すものを作成します。