2017/04/03 (月)
文法ファイルの無効化・有効化
なでしこ, Juliusで音声認識 | |
文法ファイルを、一時的にオンオフするコマンドを追加しました。
ステータスやバージョン同様、Juliusのモジュールモードに備わっているコマンドを送信できるようにしただけですが。
#----------------------------------------------------------- #任意の記述文法または単語リストを一時的に無効化/有効化する。 # Sは、jconfに記載した文法ファイル名の拡張子を除いたもの、またはJulius文法情報で返されるID。 ●Julius文法無効化(Sを|Sの) 「DEACTIVATEGRAM{\n}{S}{\n}」をJクライアントで送信。 「SYNCGRAM{\n}」をJクライアントで送信。 ●Julius文法有効化(Sを|Sの) 「ACTIVATEGRAM{\n}{S}{\n}」をJクライアントで送信。 「SYNCGRAM{\n}」をJクライアントで送信。 #-----------------------------------------------------------
しか~し、ここに到るまでには、思いもかけない艱難辛苦の道がっっ!!!(嘘;)
コマンドについては、Julius bookの、この表を参考にしてました。
https://julius.osdn.jp/juliusbook/ja/desc_module.html#table_commands_grammar
無効化の方は、最初引数は半角スペースでつなげるのかと思いきや、一旦改行を送るんだったよ! という点以外は特に問題も無く、無効化できるようになったんです。
ところが、なんとしても有効化がうまくいかないっ。なんでだ(涙)
・・・っと思っていたら・・・・・
ようくようくようく表のコマンドを見たらね、「ACTIAVETGRAM」って書いてあるんです。
スペル、間違ってる?!?!?!
AとV、EとTがダブルで入れ替わっているとゆう・・・ヽ(;´Д`)ノ
えーえー、安直にコピペしたワタシが悪いんですともさ(号泣)
たぶん、英語の分かる人が手打ちした場合、こんなことは起こらないんだろう。
違和感を覚えてすぐ間違ってる!と気付くか、あるいは人間の脳は逆に、文字が入れ替わっている綴りを見ても、勝手に脳内修正して正しく読んでしまったり、手が覚えてるとうりに正しく書いてしまったりする機能が付いているからね。
ワタシなんか・・・すぐ上に「DEACTIVATEGRAM」が無かったら、一生分からなかったカモ;;;
しくしくしくしく。
とっ、とにかくこれで、複数のリストを登録して置いて切り替えたりなどできるようになりました。
会話ごとに最小構成のリストを使った方が、誤認識は少なそうな予感。
文法データ自体を追加したり、削除したりするヤツもあるみたいだけど、なにげに面倒・・ってゆうか、よくわからん(@_@)
しかしまあ、必要の単語リストは最初から全部登録して置いて、必要に応じてオフオンする方が、効率的で処理も速そうに思います。
コレでたとえば、ナコ様を呼んで、「なーに?」と答えた後、別のリストを与えて、ナコ様に何かをお願いする・・・的なことが可能?
たとえば「ゴミ投げて」など言ったら、「rd /s /q c:\$Recycle.Bin」を起動して、ゴミ箱を空にする、とかとか?
音声認識のランチャーなどは、実用とゆうことを考えたら、そもそもJuliusをモジュールモードで起動しっぱなしにしておかなきゃない時点でびみょーだけど(タスクトレイに隠せればまだいいんだけど・・・)
・・・ソレが何かの役に立つのか?!なんてコトは考えちゃダメ(爆)
とゆうわけで、前回ひらめいたとうり、「しりとり」をしてくれるナコ様を作ろうと思う。
ちょっと、しりとりようの辞書なんかは、まるっと別にして置いた方がイイだろうと思ったばっかりに、こんなことになったのだ><;