LoginSignup
0
0

More than 3 years have passed since last update.

julius 4.6でキーワードの組み合わせを認識させる

Posted at

参考
Raspberry PiとJuliusで特定の単語を認識させる | パソコン工房 NEXMAG

辞書ファイル用ディレクトリを作成します

cd ~/julius
mkdir dict
cd dict

単語とその読みがなを定義するファイルを作成

nano monafuwa.yomi
monafuwa.yomi
もなふわすいーとるーむ もなふわすいーとるーむ
助けて たすけて

音素ファイル(.phone)を作成

(ハマリポイント1 入力元のファイルはUTF-8のままでOK)

~/julius/julius-4.6/gramtools/yomi2voca/yomi2voca.pl ./monafuwa.yomi > ./monafuwa.phone

できたファイルがこちら

monafuwa.phone
もなふわすいーとるーむ  m o n a f u w a s u i: t o r u: m u
助けて  t a s u k e t e

構文ファイル(.grammar)を作成

nano monafuwa.grammar
monafuwa.grammar
S : NS_B W1 NOISE W2 NS_E

W1 : TASUKETE
W2 : MONAFUWASUITORUMU

grammarファイルの文法は第7章 言語モデルより引用

"NS_B" と "NS_E" はそれぞれ文頭および文末の「無音区間」に対応する単語カテゴリである.文の最初と最後に必ず挿入すること.
Julius で発声の休止位置を記述するには,まず grammarファイルで,休止の出現しうる単語間にカテゴリ名「NOISE」を挿入する.

この場合では、"文頭の無音”、”たすけて”、”発声の休止”、”もなふわすいーとるーむ”、”文末の無音”のワンセットとなる。
W1とW2に列挙したシンボル列”MONAFUWASUITORUMU”と”TASUKETE”で次に作成する語彙ファイルから音素を引っ張ってくる。
ハマリポイント2 このシンボル列に.phoneファイルの文字列をそのまま使ってはいけない。今回のように伸ばす音を示すコロンなど記号は使ってはいけないため、コンパイル時にエラーが出ることになる。

認識用文法の語彙ファイル(.voca)を作成

nano monafuwa.voca

.grammarファイルで使用する単語を定義する。定義内容は.phoneファイルの中身。
NS_B,NS_Eには,それぞれ文頭・文末の無音に対応する無音音響モデル"silB", "silE"を割り当てる。
NOISEは無音の音響モデル"sp"を割り当てる

monafuwa.voca
% MONAFUWASUITORUMU
もなふわすいーとるーむ m o n a f u w a s u i: t o r u: m u
% TASUKETE
助けて t a s u k e t e
% NOISE
[sp] sp
% NS_B
[s] silB
% NS_E
[/s] silE

コンパイル

cd ~/julius/julius-4.6/gramtools/mkdfa
mkdfa.py ~/julius/dict/monafuwa

monafuwa.dfa、monafuwa.term、monafuwa.dict、monafuwa.dfa.forwardの4ファイルが生成される。

作成した辞書を使って認識を試す

cd ~/julius/dict
julius -C ../julius-kit/dictation-kit-4.5/am-gmm.jconf -nostrip -gram ./monafuwa -input mic

たすけて、もなふわすい~とる~むと喋ってみると...
image.png

0
0
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
0
0