こんにちは、えんせきです。
VRがやりたいんですが、僕デバイス持ってないんですよね。
会社には別のがあるので色々遊ばせてもらえるのですが、やっぱりお家でゲームしたりVRChatしたりしたいです。
前回まではなにしたの?
ensekitt.hatenablog.com
環境の準備を行って、
ensekitt.hatenablog.com
Juliusの動作確認まで行った。
Juliusってなに?*1
音声認識システムの開発・研究のためのオープンソースの高性能な汎用大語彙連続音声認識エンジン。
汎用→普通の話し言葉
大語彙→たくさんの語彙
音声認識→音声を認識してくれる
C言語でつくられていて、商用利用も大丈夫みたい。すばらしい。
julius.osdn.jp
流れ
(準備編)環境の準備(先日の記事と重複があります)
(Juliusインストール編)Juliusとディクテーションキットのインストールして動作確認
(自前の辞書編)Juliusに好きな単語で話しかける ← 今日はここ
独立単語認識用の辞書を作る
作業場所の準備
$ ls /path/to/julius/environment dictation-kit-v4.4 grammar-kit-4.3.1 julius-4.4.2.1 # コレのある場所に新しくmydictを用意する $ mkdir mydict $ cd mydict
words.yomi
長門有希は俺の嫁 ながとゆきわおれのよめ オッケー縁石 おっけええんせき
に反応して欲しい言葉と読み方を書き込む。
左から「言葉、タブ区切り、読み方」
辞書ファイルに変換する
UTF-8の読みをEUCJPに変換してyomi2voca.plに読ませる。これはJuliusに一緒に入っているのでパスが通っていれば大丈夫。
iconv -f utf8 -t eucjp words.yomi | yomi2voca.pl > words.dic
jconfファイルを作成する
dictation-kit/main.jconf at master · julius-speech/dictation-kit · GitHub
を参考に作る。
-w words.dic # さっき用意した辞書ファイル -d model/lang_m/bccwj.60k.bingram ## 単語辞書ファイル -v ../dictation-kit-v4.4/model/lang_m/bccwj.60k.htkdic ## 音響HMM定義ファイル -h ../dictation-kit-v4.4/model/phone_m/jnas-tri-3k16-gid.binhmm -hlist ../dictation-kit-v4.4/model/phone_m/logicalTri -n 1 # 第2パスで見つける文の数(文数) -output 1 # 第2パスで見つかった文のうち出力する数 (文数) -zmeanframe # フレーム単位のDC成分除去を行う (HTKと同処理) -input mic # マイクから直接入力 -input alsa #### 短時間瞬時入力の棄却 -rejectshort 800 # 指定ミリ秒以下の長さの入力を棄却する -charconv euc-jp utf8 # 出力文字コード変換を行う -lv 2000 # レベルのしきい値 (0-32767)
実行する
$ ALSADEV="plughw:0,0" julius -C words.jconf Stat: "plughw:0,0": C920 [HD Pro Webcam C920] device USB Audio [USB Audio] subdevice #0 STAT: AD-in thread created <<< please speak >>>Warning: strip: sample 0-127 has zero value, stripped pass1_best: オッケー縁石 pass1_best_wordseq: オッケー縁石 pass1_best_phonemeseq: silB o q k e i e N s e k i silE pass1_best_score: -3693.302734 sentence1: オッケー縁石 wseq1: オッケー縁石 phseq1: silB o q k e i e N s e k i silE cmscore1: 0.795 score1: -3693.302734 pass1_best: 長門有希は俺の嫁 pass1_best_wordseq: 長門有希は俺の嫁 pass1_best_phonemeseq: silB n a g a t o y u k i w a o r e n o y o m e silE pass1_best_score: -4239.904297 sentence1: 長門有希は俺の嫁 wseq1: 長門有希は俺の嫁 phseq1: silB n a g a t o y u k i w a o r e n o y o m e silE cmscore1: 1.000 score1: -4239.904297
ということで、ちゃんと長門有希は俺の嫁になった。
ただ、残念ながらある程度の音量があるとオッケー縁石と長門有希は俺の嫁と認識する。
これではトリガーにするのは難しいかもしれん。
*1:前前回の記事の再掲