Hatena::Groupnadesiko

雪乃☆雫のなでしこ日和

2017/02/05 (日)

なでしこで、Juliusの音声認識結果を、とりあえず取得してみるよ!

| 18:04 | なでしこで、Juliusの音声認識結果を、とりあえず取得してみるよ! - 雪乃☆雫のなでしこ日和 を含むブックマーク はてなブックマーク - なでしこで、Juliusの音声認識結果を、とりあえず取得してみるよ! - 雪乃☆雫のなでしこ日和 なでしこで、Juliusの音声認識結果を、とりあえず取得してみるよ! - 雪乃☆雫のなでしこ日和 のブックマークコメント

 の後、マイクの設定をちょこっと変更してみたりしつつ、騒音源を全て停止冬の北海道で、ストーブを消すって何?!)させることによって、認識結果は格段に向上しましたwww

「衆院議員は,具体的にどう考えているのか」
  ↓ ↓ ↓
衆議院議員は、物体的になにを考えているのか。
衆院議員が具体的になにを考えているのか。
衆院議員は具体的になにを考えているのか。
衆議院議員は、具体的になにを考えているのか。
衆議院議員が物体的に何を考えているのか。
衆院議員は、具体的になにを考えているのか。

 ちなみに、GMM版です。DNN版は、速度的に・・・かなり厳しい;;;

 こっちの環境の問題も多いとは思うけど、色々、うまく認識出来ない言葉も結構あるようで、音声入力エディタみたいのにするのは、難しいかな?

 しかし、こーして考えると、スマホの音声認識ってすごいよね。まで、あんま使ったこと無かったケド、ふつーに文章打てるんだもんね(驚)

 でも、Juliusは他にも、「文法認識キット」をダウンロードすることで、自分で作成した単語リストによる孤立単語認識や、記述文法による小語彙での認識なども出来るらしいので、まだまだ遊べる余地はありそうです。


 とゆうわけで・・・

 とりあえず、認識結果をなでしこで取得してみました。

 Juliusに「-module」のパラメーターを付けて起動すると、Juliusがサーバーとなり、ポート番号10500で接続待ちとなるので、なでしこのTCPクライアントでこに接続するだけです。

 「run-win-gmm.bat」の内容に、「-module」を追加して、それを「起動」し「接続」してやります。

#-----------------------------------------------------------------------
#クライアントで接続
#-----------------------------------------------------------------------
# ネットワークプラグインを利用
!「nakonet.nako」を取り込む。
#-----------------------------------------------------------------------
母艦のテキストは「Juliusクライアント」
接続待時=10
再試行=0

#-----GUI------------------------------------------------
ログとはTエディタのレイアウトは「全体」

クライアントとはTCPクライアント。
クライアントについて
  ホストは「127.0.0.1」  # 「127.0.0.1」はローカル。
  ポートは10500。  # モジュールモードではJuliusがサーバーとなり、ポート番号10500で接続を待ちます。
  受信した時は~
    クライアントで受信。
    ログは「{ログ}{それ}」
  エラー時は~
    クライアントで切断。
    もし、再試行<接続待時ならば、
      1秒待つ。再試行=再試行+1
      Julius接続。
    違えば、
      クライアントのエラーメッセージ言う。
      終わる。
#-----------------------------------------------------------
# モジュールモードでJuliusを起動。
//「..\..\bin\windows\julius.exe -C main.jconf -C am-gmm.jconf -demo -charconv utf-8 sjis -module」を起動。
#バッチファイルを選択してJulius起動。
「*.bat」のファイル選択して起動もしそれならば終わる母艦最前面。
Julius接続。

*Julius接続
  ログは「{ログ}接続中...」。
  クライアントで接続。
#-----------------------------------------------------------

 音声認識が行われると、XMLで結果が返ってきます。

 こんなのw(゜o゜)w

<STARTPROC/>
.
<INPUT STATUS="LISTEN" TIME="1486283712"/> 
.
<INPUT STATUS="STARTREC" TIME="1486283717"/>
.
<STARTRECOG/>
.
<INPUT STATUS="ENDREC" TIME="1486283721"/>
.
<ENDRECOG/>
.
<INPUTPARAM FRAMES="442" MSEC="4420"/>
.
<RECOGOUT>
  <SHYPO RANK="1" SCORE="-11149.487305">
    <WHYPO WORD="" CLASSID="<s>" PHONE="silB" CM="0.273"/>
    <WHYPO WORD="衆院" CLASSID="衆院+名詞" PHONE="sh u: i N" CM="0.818"/>
    <WHYPO WORD="議員" CLASSID="議員+名詞" PHONE="g i i N" CM="0.079"/>
    <WHYPO WORD="は" CLASSID="は+助詞" PHONE="w a" CM="0.409"/>
    <WHYPO WORD="、" CLASSID="、+補助記号" PHONE="sp" CM="0.149"/>
    <WHYPO WORD="軍隊" CLASSID="軍隊+名詞" PHONE="g u N t a i" CM="0.031"/>
    <WHYPO WORD="的" CLASSID="的+接尾辞" PHONE="t e k i" CM="0.363"/>
    <WHYPO WORD="に" CLASSID="に+助動詞" PHONE="n i" CM="0.105"/>
    <WHYPO WORD="なに" CLASSID="なに+代名詞" PHONE="n a n i" CM="0.631"/>
    <WHYPO WORD="を" CLASSID="を+助詞" PHONE="o" CM="0.452"/>
    <WHYPO WORD="考え" CLASSID="考え+動詞" PHONE="k a N g a e" CM="0.897"/>
    <WHYPO WORD="て" CLASSID="て+助詞" PHONE="t e" CM="0.774"/>
    <WHYPO WORD="いる" CLASSID="いる+動詞" PHONE="i r u" CM="0.822"/>
    <WHYPO WORD="の" CLASSID="の+助詞" PHONE="n o" CM="0.762"/>
    <WHYPO WORD="か" CLASSID="か+助詞" PHONE="k a" CM="0.539"/>
    <WHYPO WORD="。" CLASSID="</s>" PHONE="silE" CM="1.000"/>
  </SHYPO>
</RECOGOUT>
.
<INPUT STATUS="LISTEN" TIME="1486283722"/>
.
<INPUT STATUS="STARTREC" TIME="1486283727"/>

 それ以外の部分の呪文の意味が全く分からないけど、認識結果部分を取り出すこと自体は、まあ簡単そうだね。

 少なくとも、プログラミング講座のHTMLから、キャラのセリフを抜いたのよりは!(爆)

トラックバック - http://nadesiko.g.hatena.ne.jp/snowdrops89/20170205