プログラム解説「demo_chat1.py」

・demo_chat1.pyは初期状態のべゼリーが自動起動するプログラムのうちのひとつで、音声体を行います。


モジュールの読み込み

・threadingモジュールはアラームの時間処理に使います。
・reは正引き表現を使うためのモジュールです。

初期設定

・data_chat.jsonを読み込み、ユーザー名、ロボット名、スピーカーボリュームなどを読み込んでいます。
・マイク感度を読み込む処理がコメントアウトされているのは、キット付属のマイクに感度調整機能が無いからです。

関数定義

・alarm()はユーザーが設定した時間になったら目覚ましのメッセージを発話させる関数です。

返答処理

・replayMessage()はkeywordを受け取ったら、それに一致する返答候補をリストアップし、その中からランダムで返答を選ぶ関数です。非活動時間の場合は、ボリュームを落として「活動時間外です」と喋らせています。

デバッグ用機能

・デバッグのための機能です。プログラム内の怪しいい箇所にdebug_message(“好きな文字列”)を挿入することで、debug.txtにメッセージが出力されるので、どこで異常が発生したかなどをチェックすることができます。

メインループ

・200行でjuliusからデータを受け取り、その中に</RECOGOUT>\nが含まれていたら、その直前に音声認識の結果が含まれているので、194行目でWORD\sから始まる行を抜き出し、さらに195行目でキーワード以外を削除して、replyMessage()へ送っています。