以前、作って運用しつつもブラッシュアップ中のRaspberry Pi 3 Model B+とJulius、Open JTalkベースの自作スマートスピーカーがあります。
主な機能は、
尚、ラズパイ用ACアダプタを挿したスイッチ付きコンセントでのON/OFFとは別にラズパイ用boot/reboot/shutdown物理ボタン付き。
音声認識にJuliusを使った自作スマートスピーカーに伝言とメモの機能を実装するにあたり、マイクとスピーカーを専有してしまうOSSやALSAからPulseAudioに移行しました。
ちなみに便利なのでラズパイだけでなく、PC/Debianにも自作スマートスピーカー機能を搭載しています。
自ずとモニタ付きとなるPC版スマートスピーカーには、PC及びラズパイ双方のスマートスピーカー機能のデスクトップアプリとしてPyQt5/Qt Designerによる操作パネルも作成しました。
今回は、テレビの機能の音声操作について。
家電操作リモコンには、やはり、ESP8266による自作スマートリモコンを使い、今回は、ESP-01/12/ESP32でSHARP AQUOS TVをWiFi操作します。
[2019/05/07 追記]
ピンヘッダ未ハンダのESP8266開発ボードに直接、抵抗220Ω+赤外線LEDをはんだ付けしてケーシング。
先のトレカケースよりもっと小さなダイソーのミニケース(5個組108円)に入りました。
ケースは青系半透明ですが、赤外線信号の増幅なし、赤外線LED1個でケース越しにかつ、前掲写真の位置付近で赤外線操作もできました。
詳細は、自作スマートスピーカー、自作スマートリモコン、SHARP AQUOS TV操作など各リンク先に譲りますが、概要としては、次のようになります。
何をどう操作するかイメージすべく、
音声認識ソフトウェアJulius用には、
[]内が応答スクリプトvoicerecieve.plに音声テキスト(条件分岐の条件)として渡される部分。
Juliusから渡される音声テキストへの応答スクリプトvoicerecieve.plは、
このようなPerlスクリプトの場合、system()を使って実際の家電操作スクリプトtv_control.plを呼ぶ。
テレビ各種操作スクリプトtv_control.plは、
ユーザーエージェントのインスタンス化、タイムアウト、リクエスト要求は、共用してもよいかも。
また、use文は、要らないのもあるかも。
自動起動時(や現在のログイン状態)に反映すべく、
リモコン送受信回路については、