GUI付きJulius辞書生成ツール

 Juliusをリモートから再起動するアプリにJulius辞書生成ツールの機能を追加し、Webブラウザからの(またはWebSocket通信による)Juliusの起動制御に加えブラウザ画面で音声認識辞書を作成・修正できる様にしました。golangを使用したのでexeファイル一つを転送するだけでPaPeRo iやラズパイ2/3、PCなどで動作します。但し現バージョンのJuliusはWindowsでは辞書生成コマンドが正常に動作しない様で、現状辞書生成まで含めた全機能はPaPeRo i本体とラズパイ2/3でのみ動作確認できています。

使い方

 PaPeRo i 本体で動かす手順です。
(1) Julius本体、音声認識パッケージ、perl/piconvコマンドをJuliusで独自辞書を使った音声認識を行うの手順に従いインストールしてください。
(2) ここからソース/バイナリ一式をダウンロードしてください。ビルド済み実行形式はarm-linux、windows-386、windows-amd64の3種類を同梱していますが、「juliusdic」がarm-linux用ですのでPaPeRo i本体に転送し、以下の様に実行してください。実行するディレクトリはどこでも構いません。

# chmod +x juliusdic
# ./juliusdic
2018/10/23 11:35:33.009954 webconf.go:998: open julius.json: no such file or directory
2018/10/23 11:35:33.054582 webconf.go:1347: create page. path: /julius title: Julius
2018/10/23 11:35:33.055203 juliusctrl.go:775: controller ws URL: /_server_control
2018/10/23 11:35:33.055660 webconf.go:1382: start server.:8860

最初にjulius.jsonが無いというエラーが表示されていますがこれはこのアプリの設定ファイルで、設定を保存すれば次回からは表示されなくなりますし、無くても動作に問題はありません。
(3) WebブラウザでPaPeRo iのIPアドレス:8860/juliusを開くと以下の様に表示されます。

(4) 音声認識辞書を生成してみます。デフォルトで音声認識辞書の記述例が表示されているので、そのまま「辞書生成/変更/削除(…)」ボタンをクリックしてください。成功するとボタンの下のテキストボックスに「辞書生成完了」と表示されます。
(5) 辞書に認識語を追加して別の新しい辞書を生成するには、例えば「明日の-天気は あしたの-てんきわ」の下に、「明後日の-天気は あさっての-てんきわ」と入力し、辞書選択を「mydict」から「mydict1」に変更して、「辞書生成/変更/削除(…)」ボタンをクリックしてください。辞書選択を変更しなければ、同じ辞書が修正されます。
(6) 辞書選択の文字を全て削除するとテキストボックス右端の▼マークで、既存の辞書を選択できます(Chromeの場合)。辞書選択を変更すると、その辞書の定義が下の領域に展開されます。Juliusはここで選択された辞書を使用して動作します。

(7) 辞書定義の文字列を全て削除して「辞書生成/変更/削除(…)」ボタンをクリックすると、その辞書ファイルが削除されます。
(8) 「ベースパス(…)」以下はアプリの設定です。

  • ベースパス
     以下のパス指定で共通のルートがある場合指定します。以下のパス指定で%sと記述するとこのベースパスで置換されます。
  • Juliusパス
     juliusコマンドがあるディレクトリを指定してください。
  • Juliusオプション
     juliusコマンドに渡すオプションを指定してください。但しオプションには辞書指定「-gram 辞書名」と、さらに下のadinnet入力チェックを入れた場合には「-input adinnet」が、暗黙に付加されます。
  • adinnet入力
     このアプリを動かす(=Juliusを動かす)ホスト以外の音声入力を音声認識する場合にチェックしてください。その場合音声入力側のホストではadintoolコマンドを実行する必要があります。
  • Julius辞書ツールパス
     yomi2voca.plおよびmkdfa.plが存在するディレクトリを指定してください。
  • perlパス
     perlコマンドをフルパスで指定してください。
  • iconvパス
     iconvコマンドまたはpiconvコマンドをフルパスで指定してください。

動作確認

 Juliusをリモートから再起動するの動作確認用プログラムjuliusdemo.pyで動作確認できます。これを動かすためにはPaPeRo iにPython3をインストールし、PaPeRo i 制御用WebSocket通信アドオンシナリオを動作させる必要があります。
(1) juliusdicが起動している状態で、PaPeRo i本体でjuliusdemo.pyを実行します。

# python3 juliusdemo.py -julius localhost

(2) 座布団真ん中ボタンを押してください。juliusdicに対してjulius再起動メッセージが送られます。
(3) juliusdicに表示されている認識語を発話するとPaPeRo iがオウム返しします。
(4) 辞書選択を変更、または認識語を追加・変更・削除などして「辞書生成/変更/削除(…)」ボタンをクリックし、座布団真ん中ボタンを押すと、音声認識動作に反映されます。
(5) juliusdic/juliusをラズパイで動作させる場合は以下の様にjuliusdemo.pyを実行してください。

# python3 juliusdemo.py -julius ラズパイのIPアドレス

0