進捗報告(12/04)

一回だけならお喋りできるようになりましたー!

二回目からは、接続部分をモジュール化しているのでjuliusの接続を強制的に切るため、エラーを吐き続け何も受け付けなくなります。。。

f:id:team_kakkokari:20171204114034j:plain

 

そのため、
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変数にからまでを格納して、
タグに音声認識した文字が入ってるので、それ以外をpythonのスライス関数で削ってこうと思ってます。

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
のとおりです。。。

 

もう私の力を超えているのでなんとも(神龍並感)

チャートを書いてあげるのがいいのかな?

 

f:id:team_kakkokari:20171127115151j:plain

制作風景をパシャリ。がんばれー(´・ω・`)

 

ではでは。

進捗報告

報告です。

 

入出力の基礎部分は完成。軽く内容に触れると、メインのプログラムに出力する機能を司るプログラムなどをインポートし、入力に対して出力を返す。と言ったよく見る構造です。

 

これからの展望としては、声での入力、誤認識の補正、受け答えの多様化ができたらな、と思います。

進捗どうですか?


微妙です...

 

9mmの開発するアプリケーションの方向と進捗の報告です。

f:id:team_kakkokari:20171106091853p:plain

簡単なシステムの動き

 

図のようにアプリケーション本体から出力の命令が出た時にディレクトリから音声ファイルを探して再生するだけの仕組みです。

 

これを使って何がしたいか、ですが。ごくごくありふれたおしゃべりロボットっぽいものを作っていきます。

マイクなどから入力された音声をテキストに起こして誤差補正、データベースにデータを蓄積しつつ返答する、ような仕組みを作れるといいですね。

 

開発担当さんは私では無いのですが、モジュール化しておくと後で簡単に呼び出せて良さそうですね。