啓介=ダブルバインド2015.12.10音声リモコンの仕組み音声認識した結果を受け取って、ロボットの動きをコントロールできる音声リモコンを作成しましょう。図18が音声リモコンを実現するシステムの全体図です。左側のマイク、サウンドカード、「Julius」の部分については既に作業しました。「gpio」や「jtalk」といった部分(コマンドで実行するツール)も既にそろっています。図18の中でまだ用意していないのは「Julius」と「gpio」や「jtalk」をつなぐプログラム「voice-remocon」です。Juliusはバックグラウンドで常に動いていて、外部から取り込まれる音声を認識しています。その結果を別のプログラムに渡すために「ポート10500」を使います(「ポート」とはデータをやり取りするための出入り口のことです)。このポートに接続してきた別のプログラムにその結果を渡すのです。このように別のプログラムに何かしら情報を提供する(情報サービスをする)プログラムのことを「サーバー」といいます。Juliusは音声認識した結果を情報として提供するサーバーとして機能しており、その結果を別のプログラムにデータとして渡せるように「ポート10500」を利用しているのです(このポートに接続した別のプログラムに情報を提供するわけです)。サービスを受け取る側のことを「クライアント」と呼びます。「voice-remocon.py」はJuliusから提供される音声認識結果を受け取るプログラムなので、このプログラムのことを「Juliusクライアント」と呼ぶことにします。Juliusクライアントは、Juliusサーバーから情報を受け取り、最終的にGPIOピンを制御したりjtalkを起動したりするのがその役割です。