Robot付属のSDカードの中を見てみるSDカードのバックアップ・付属のSDカードにはべゼリーのプログラムだけでなく、音声認識システム、音声合成システム、日本語変換プログラムなどが入っています。あやまってこれらのファイルを壊してしまうかもしれないので、SDカードのまるごとバックアップをしておくことをお勧めします。SDカードとUSB接続のSDカードリーダライターを使う方法です。Copier」を選びます。SDカードをまるごとコピーすることができます。・8GBのSDカードを入れたのにも関わらず「容量不足でコピーできない」と言われることがありますが、これはスペック上同じ容量のSDカードであっても、メーカーや種類によって記憶可能な領域が異なるためです。その場合は別のカードを試すか、1段階大きな容量のカードを使ってください。・SDカードをコピーする方法として、パソコンのディスクにバックアップをとるという方法もあります。パソコンに「DiskImager」などディスクイメージを作成するアプリをインストールしなければなりませんが、この方法ならバックアップ用のSDカードを用意する必要がありませんし、パソコンにSDカードライターがついていれば、何も買う必要がありません。rpi-updateでこまめにアップデートしましょう」などと書いてあるかもしれませんが、ラズパイをアップデートすることによってべゼリーのプログラムが動かなくなってしまう可能性がありますのでご注意ください。・以下はべゼリーの主なファイルの関係図になります。~/bezelie/ディレクトリchatIntent.csv・ユーザーからの質問の意図のリストです。chatDialog.csvとchatEntity.csvを結びつけているキーワードのリストです。common,顔認識1234567891011121314151617181920212223242526common,名前を聞くcommon,調子を聞くcommon,時間を聞くcommon,天気を聞くcommon,朝の挨拶common,昼の挨拶common,夜の挨拶common,寝る挨拶common,話しかけるcommon,ねぎらうcommon,うらやむcommon,お願いするcommon,同意するcommon,拒否するcommon,感謝するcommon,褒めるcommon,突っ込むcommon,愚痴るcommon,テストcommon,その他common,帰宅の挨拶common,出発の挨拶common,ボケcommon,うらないcommon,顔認識chatEntity.***・chatEntityファイルは拡張子違いで3つあります。ユーザーからの質問の同意語のリストです。実際にjuliusが使うのはdicファイルなのですが、dicファイルはtsvファイルから生成されるため、server_chat.jsの中でまずcsvファイルとして作成したあと、tsvに変換し、さらにdicに変換しています。ichatDialog.csv・ユーザーの意図に対する、ベゼリーの返答のリストです。・同じ意図に対して複数の返答を記述することができます。どの返答が選ばれるかはランダムです。夜の挨拶,こんばんはです夜の挨拶,こんばんわ寝る挨拶,おやすみなさい寝る挨拶,おやすみです寝る挨拶,おやすみー~/bezelie/edgarディレクトリ・このディレクトリはgitリポジトリです。pullで最新の状態にすることができます。pullすると上書きされてしまいますので、自分なりにファイルを書き換えるときはファイル名を変えることをお勧めします。メインプログラムdemo_chat1.py・python(パイソン)で記述された音声対話プログラムです。・juliusが音声認識したテキストをソケット通信で受け取りますので、juliusが起動完了したあとに起動しないとエラーになります。・対話リスト「chatDialog.csv」、設定ファイル「data_chat.json」を参照しています。・非活動時間(ブラウザから設定します)には、発話しません。・アラーム時間になると、mild設定では「朝ですよ」、hard設定では「朝だよ早く起きてー」と喋ります。demo_face1.py・pythonで記述された顔認識プログラムです。・非活動時間(ブラウザから設定します)には、動作しません。bezelie.py・pythonで書かれたベゼリー専用ライブラリです。サーボドライバーボード(PCA9685)を通じて3つのサーボを動かすための関数が入っています。jsで書かれたサーバーサイドプログラムです。PCやスマホのブラウザからアクセスすることで、ベゼリーの時間設定や対話データなどを編集することができます。・起動するとlocalhostのポート3000でリクエストを待ち受けます。js用のテンプレートエンジン「ejs」を利用しています。・複数のブラウザから同時にアクセスし、同じファイルを編集しようとすると競合が発生しますのでご注意ください。systemd設定ファイル・ラズパイ起動時に各種のプログラムを自動的に起動するためのsystemd用設定ファイルです。autoStart_julius.service・起動時にboot_julius.shを自動起動するための設定ファイル。autoStart_python.service・起動時にboot_chatMode.shあるいはboot_faceModeを自動起動するための設定ファイル。autoStart_dhcp.service・起動時にboot_dhcp.shを自動起動するための設定ファイル。autoStart_node.service・起動時にboot_node.shを自動起動するための設定ファイル。・これらの設定ファイルはsetting_chatMode.shあるいはsetting_faceModeを実行することで/etc/systemd/system/にコピーされ、さらにシンボルリンクファイルがmultiuser.targetディレクトリにコピーされることで自動実行が有効になります。・逆にsetting_disableServer.shを実行することで、これらの自動実行は無効になります。起動用シェルスクリプト・autoStart_***.serviceによって起動時に自動実行されるシェルスクリプトです。・setting_chatDemo.shあるいはsetting_faceDemoが実行されると、これらのファイルはopt/bezelie/binにコピーされます。boot_chatMode.sh・音声認識モードのpythonスクリプト「demo_chat1.py」を起動するためのシェルスクリプト。boot_faceMode.sh・顔認識モードのpythonスクリプト「face_chat1.py」を起動するためのシェルスクリプト。boot_dhcp.sh・dhcpサーバーを起動するためのシェルスクリプト。JSプログラム「server_chat.js」を起動するためのシェルスクリプト。boot_julius.sh・音声認識エンジンJuliusをキーワード認識モードで起動するためのシェルスクリプトです。・「./boot_julius.sh」で実行できます。起動時に認識単語ファイル「chatEntity.dic」と設定ファイル「julius.jconf」を読み込みます。・「モジュールモード」で起動するようになっているので、起動するとlocalhostの10500ポートでソケット通信を待ち受ける状態になります。・起動中に動作チェックしたい場合は以下のプログラムをご利用ください。localhostboot_juliusNL.sh・音声認識エンジンJuliusを自然言語認識モードで起動するためのシェルスクリプトです。・起動時に設定ファイル「juliusNL.jconf」を読み込みます。・「モジュールモード」で起動するようになっているので、起動するとlocalhostの10500ポートでソケット通信を待ち受ける状態になります。サーボのセンター位置などべゼリーの設定ファイルです。JSON形式で記述されています。・server_chat.jsによってブラウザから編集することができますが、エディターで直接書き換えることもできます。}123456789101112131415161718192021222324252627{"data0":[{"name":"べゼリー","user":"マスター","vol":"80"}],"data1":[{"nowYear":"2018-02-18","nowTime":"17:16:29","alarmOn":"false","alarmTime":"08:00","alarmKind":"mild","awake1Start":"00:00","awake1End":"11:59","awake2Start":"12:00","awake2End":"23:59"}],"data2":[{"head":"0","back":"0","stage":"-3"}]}julius.jconf・音声認識プログラム「julius」の音声キーワード認識用の設定ファイルです。モデル、音声認識条件などを設定しています。・設定を変えたい場合はjulius設定マニュアルをご覧ください。juliusNL.jconf・音声認識プログラム「julius」の自然言語認識用の設定ファイルです。boot_juliusNL.sh実行時に同時に読み込まれます。ツールexec_camera.sh・カメラの動作をチェックするためのシェルスクリプトです。exec_openJTalk.sh・音声合成プログラム「openJTalk」を実行するスクリプトです。“喋らせたい文字”」で喋らせることができます。・パラメータを調整することで、声を変えることもできます。・音声種はMMDAgent「mei_happy」を使用しています。Menu”)setting_disableServer.sh・ラズパイがサーバーモードで動作している時に実行すると、サーバーを無効化することができます。再起動後、クライアントとして立ち上がります。setting_chatMode.sh・ラズパイがクライアントモードで動作している時に実行すると、サーバーを有効化することができます。その後、再起動するとサーバーとして立ち上がります。setting_faceMode.sh・ラズパイがクライアントモードで動作している時に実行すると、サーバーを有効化することができます。その後、再起動するとサーバーとして立ち上がります。juliusが起動しているかどうかをチェックしたいときに使うツールです。・実行中だった場合、プロセス番号が表示されるので、下記のようにすることでプロセスを停止することができます。プロセス番号tool_killApps.sh・server_chat.js、パイソンスクリプト、juliusを停止させます。restart_app.sh・パイソンスクリプトとjuliusをいったん終了してから、また起動します。server_chat.jsの中で「プログラムの再起動」として使っています。tool_juliusDic.sh・chatEntity.cvsをchatEntity.dicに変換します。server_chat.jsを使わず、手動でentityデータを編集するときに使います。サンプルpythonスクリプトsample_print1.pysample_talk1.pysample_servo1.pysample_servo2.pysample_servo3.pysample_julius1.pysample_juliusNL1.pysample_output1.pysample_led1.pysample_camera1.pysample_face1.pysample_vision1.pysample_record1.pysample_input1.py・プログラムを学ぶためのサンプルです。分かりやすくするため、機能をしぼりこんでシンプルに書かれています。別ページで詳しく説明しています。そのほかFront_Center.wav・サンプル音声ファイルです。スピーカーから音がでるかどうかをチェックしたいとき、下記を実行してスピーカーから「フロントセンター」と声がしたら正常です。Front_Center.wavREADME.md・gitHub用の説明ページです。markDownで書かれています。.git・通常は表示されない隠しファイルです。-a」で見ることができます。JSでhtmlページを簡単に生成するためのテンプレートエンジン「ejs」のテンプレートファイルが入っています。~/bezelie/edgar/configディレクトリ・ラズパイをアクセスポイント化するための、書き換えるファイルと、書き換える前のファイルが保存されています。tipsべゼリーのgitリポジトリ・べゼリーに付属しているSDカードの~/bezelie/edgar/ディレクトリに入っているファイル群はgitHubでも公開しており、ブラウザから閲覧することもできます。https://github.com/bezelie/edgar.git・またインターネットにつながったリナックスであれば、下記のコマンドでローカルにコピーすることもできます。https://github.com/bezelie/edgar.gitベゼリーは量産を目指して開発継続中です。facebookページに「いいね!」をお願いします。