進捗報告(12/04)
一回だけならお喋りできるようになりましたー!
二回目からは、接続部分をモジュール化しているのでjuliusの接続を強制的に切るため、エラーを吐き続け何も受け付けなくなります。。。
そのため、
http://blog.livedoor.jp/sce_info3-craft/archives/9248622.html#
↑のサイトによると、プロセスIDを出力しサブプロセス関数ののPIPEというもので標準出力を取得。
あとはwindowsだとtaskkillというコマンドがプロセスを終了させてくれるので、"TASKKILL /PID プロセスID"をサブプロセス関数で実行させれば正常にループを回すことができるという考え方でした。
でもできない・・・
原因として考えたのが、
・プロセスIDが正常に取得できていない
・別階層のプロセスなので、移動しないとkillできない
・まずコマンドの書き方が間違っている
なのかなぁ、と思います・・・
プロセスIDを出力してみたら、何も表示されなかったので取得方法について、また明日調べなおしてみたいと思います(・ω・`)
By イニシャルU
進捗(11/28)
進捗報告です。
>>ほかのサイトをコピペしたら、動かなくなっちゃうためxml解析を自己流でやってみようと思います。
やり方はdata変数に
try : data = '' index = -1 while 1: if '</RECOGOUT>' in data: #xml解析※みかん for line in data.split("¥n"): if 'WORD="' in data: index = data #無理やりループ抜けてjuliusを一旦終了 break else: #<STARTPROC>から</RECOGOUT>までを格納 data = data + str(sock.recv(1024))
slice =こんなやつですね。
部分抽出をうまく使うことでスッキリしたコードが書ける様になりますので、積極的に取り入れていきたいものです。
以上でした。
進捗報告
久しぶりの更新です。
未だ音声認識のコーディング作業中です。
利用しているLibはJuliusというLibです。
ではコーディング担当者の独白から抜粋してコメントもしてみます。
11/16
>>音声認識した単語をjuliusから取得して、"授業用作成"ファイルの”メイン.py”に渡したい
どうやらJuliusの音声認識結果から変数に落とし込みたい様子。
11/17
>>juliusをVisualStudioでコンパイルしました。(参考:https://julius.osdn.jp/juliusbook/ja/desc_install.html#id2527143)
juliusのmsvcファイルからlibsent、libjulius、julius、SampleAppの順にビルドするだけだったので、昨日の自分はこれに3時間も費や((
はい、環境構築回だったみたいですね。私も苦手です。
11/18
>>サーバーモードは起動する
でも接続できない
firewallの無効化
でもできない
挫折している
http://hira-hide.hatenablog.com/entry/20170423/1492939230
↑これ参考にしています
juliusのインストールに問題があるかもなので、再コンパイルしてみて、また明日原因特定します・・・
環境構築のコツは、verや構成を解説元に忠実であることだと思います。
ファイアーウォールなんかは結構ありがちですよね。例外登録しておきたいものです。
11/22
>>julius/dictation-kit-v4.4/run-win-dnn.batを実行して、一番最初の.\bin\windows\julius.exe -C main.jconf -C am-gmm.jconf -demo -charconv utf-8 sjis
という部分の最後に”-module”と付け加えるとあっさり成功。
モジュールモードを起動したまま別のコマンドプロンプトを起動して、音声認識ファイル内のstart_julius.pyを実行すると、無事にソケット通信がつながりました。
ただ発話した単語が出力されなかったので、原因らしき「too short input」、短すぎるといわれたので「庭には二羽鶏がいる」と言ってもらったけど無理だったね!
最大の難所は超えたので、あとはstart_julius.pyをモジュール化して組み込めば、パソコンを媒体にした「おしゃべりろぼっと」はできそうっす
ラズパイは、ちょっと時間が・・・
ラズパイ=Raspberry Piのことですね。マイコンボードの一種です。
Raspberry PiのPiとはPythonのことなので、問題なく動くと思います。頑張りましょ。
11/27
>>出力結果を
<STARTPROC/>
<INPUT STATUS="LISTEN" TIME="994675053"/>
<INPUT STATUS="STARTREC" TIME="994675055"/>
<STARTRECOG/>
<INPUT STATUS="ENDREC" TIME="994675059"/>
<GMM RESULT="adult" CMSCORE="1.000000"/>
<ENDRECOG/>
<INPUTPARAM FRAMES="382" MSEC="3820"/>
<RECOGOUT>
<SHYPO RANK="1" SCORE="-6888.637695" GRAM="0">
<WHYPO WORD="silB" CLASSID="39" PHONE="silB" CM="1.000"/>
<WHYPO WORD="上着" CLASSID="0" PHONE="u w a g i" CM="1.000"/>
<WHYPO WORD="を" CLASSID="35" PHONE="o" CM="1.000"/>
<WHYPO WORD="白" CLASSID="2" PHONE="sh i r o" CM="0.988"/>
<WHYPO WORD="に" CLASSID="37" PHONE="n i" CM="1.000"/>
<WHYPO WORD="して" CLASSID="27" PHONE="sh i t e" CM="1.000"/>
<WHYPO WORD="下さい" CLASSID="28" PHONE="k u d a s a i" CM="1.000"/>
<WHYPO WORD="silE" CLASSID="40" PHONE="silE" CM="1.000"/>
</SHYPO>
</RECOGOUT>
.
↑の形で取得したい。
</RECOGOUT>で終了したら、あとはxml解析すればしゃべった文字だけを受け取ることができるようにしたい。
でも、どういう条件でループさせればいいのかがわからないので、調べ中。。。
今のところ、コードはstart_julius.jpg
のとおりです。。。
もう私の力を超えているのでなんとも(神龍並感)
チャートを書いてあげるのがいいのかな?
制作風景をパシャリ。がんばれー(´・ω・`)
ではでは。
進捗報告
報告です。
入出力の基礎部分は完成。軽く内容に触れると、メインのプログラムに出力する機能を司るプログラムなどをインポートし、入力に対して出力を返す。と言ったよく見る構造です。
これからの展望としては、声での入力、誤認識の補正、受け答えの多様化ができたらな、と思います。
9mmとは
9mmとは、プログラミングのコンテストで入賞できそうな作品を作ることを目標にした学生のチームである!
なおメンバーは二人なので工期が心配だったりする!