音声によるIoTデバイス制御に向けた音声認識ソフトウェアjuliusの設定

機械学習

音声認識がしたいです。

このような要望にお応えします。
今回は、特定の単語が発声されたときに音声を認識する仕組みを作成しようと思います。

これが実現すれば、特定の単語の音声を認識したとき、その単語に従いデバイスを制御するなどができそうですね。

音声認識ツールは、音声認識ソフトウェアjuliusを使用します。osはwindows 10です。
juliusについては、下記の記事において導入方法をまとめています。

特定の単語が発声されたとき、それを認識するために辞書を作成します。
今回は、簡単な例として、挨拶されたときに認識できるように辞書を作成してみます。

juliusでは、辞書を作成する際に、はじめにyomiファイルとgrammarファイル、vacaファイルを用意します。

yomiファイル greeting.yomi

vocaファイル greeting.voca

grammerファイル greeting.grammer

それでは、ファイルを作成します。

yomiファイルには、認識させたい単語を定義します。 左側に単語、右側にその単語の読み方を定義します。 今回は挨拶に関連する単語として”おはよう”, “ございます”, “こんにちは”, “こんばんは”を定義しました。

vocaファイルは、juliusに付属されているyomi2voca.plを使用することで出力されます。入力はyomiファイルです。
拡張子がplとなっていますので、perl実行環境が必要です。本稿では、perlの実行環境として、ActivaPerlを導入しました。

ActivaPerl導入後、コマンドプロンプトを開き、下記のコマンドを実行してバージョン表示されるとインストール成功しています。

下記のコマンド実行することでvocaファイルを生成できます。

これで作成されると思うのですが、本稿の環境では作成できませんでした。
そのため、下記のページを参考にpythonを用いてvocaファイルを作成しました。

  • http://radiumproduction.blog.shinobi.jp/python/python%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6windows%E3%81%A7julius%E3%82%92%E5%8B%95

vocaファイル生成プログラムは、以下になります。

Pythonは、python3.x系を使用しています。
プログラム実行後、下記内容のvocaファイルが作成されます。

続いて、grammerファイルを作成します。こちらは手作業で作成しました。

Sは認識する文書(構文定義)、NS_B, NS_Eはそれぞれ開始と終端を表します。
GREETが認識させたい単語になります。

GREETの定義が何を指しているのかをvocaファイルにて明確にします。具体的には、生成したvocaファイルに対して、「% GREET」を追加します。

これで辞書を作成するための準備ができました。
juliusに付属されているmkdfa.plを使用することで辞書ファイル一式が生成されます。

これを実行することで、dfaファイル、dictファイル、termファイルが生成されます。

それでは、作成した辞書で音声認識を行います。
下記のコマンドを実行することで作成した辞書を用いて音声認識できます。
juliusの実行環境はディクテーション実行キットを使用しています。作成した辞書一式をdicフォルダを新規作成し格納しています。

実行結果は、以下になります。

作成した辞書に定義されている単語が発声されたとき、認識されていることを確認しました。

今回は、音声認識用の辞書を作成して、特定の単語を音声認識してみました。
これにより、rasperry pi等のエッジデバイスに対して音声による制御が実現可能だと思いますので試してみるのもいいかもしれませんね。

下記を参考にさせていただきました。

  • https://qiita.com/mininobu/items/322a49856e6665bc8a30
  • http://sap.ist.i.kyoto-u.ac.jp/members/kawahara/paper/RI-HIS09.pdf
  • https://www.activestate.com/products/perl/
  • http://radiumproduction.blog.shinobi.jp/python/python%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6windows%E3%81%A7julius%E3%82%92%E5%8B%95
  • http://blog.kamabokonet.com/2014/10/19/julius%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E9%9F%B3%E5%A3%B0%E8%AA%8D%E8%AD%98%E3%81%A7%E9%81%8A%E3%81%BC%E3%81%86%E3%81%A8%E3%81%97%E3%81%9F%E3%82%89%E5%A4%A7%E5%A4%89%E3%81%A0%E3%81%A3%E3%81%9F/
タイトルとURLをコピーしました