気の向くままに辿るIT/ICT/IoT
IoT・電子工作

ラズベリーパイ 3 B+スマートスピーカーで定型アクションを実行

ホーム前へ次へ
Raspberry Piって?

ラズベリーパイ 3 B+スマートスピーカーで定型アクションを実行

ラズベリーパイ 3 B+スマートスピーカーで定型アクションを実行

2019/02/04

 以前、作って運用しつつもブラッシュアップ中のRaspberry Pi 3 Model B+とJuliusOpen JTalkベースの自作スマートスピーカーがあります。

 主な機能は、

 尚、ラズパイ用ACアダプタを挿したスイッチ付きコンセントでのON/OFFとは別にラズパイ用boot/reboot/shutdown物理ボタン付き。

 音声認識にJuliusを使った自作スマートスピーカーに伝言とメモの機能を実装するにあたり、マイクとスピーカーを専有してしまうOSSやALSAからPulseAudioに移行しました。

 ちなみに便利なのでラズパイだけでなく、PC/Debianにも自作スマートスピーカー機能を搭載しています。

 自ずとモニタ付きとなるPC版スマートスピーカーには、PC及びラズパイ双方のスマートスピーカー機能のデスクトップアプリとしてPyQt5/Qt Designerによる操作パネルも作成しました。

定型アクションの追加

 定型アクションは、構成上、元々、できるようになっていますが、改めてページとして起こしておきます。

 自作スマートスピーカーはWifi(無線LANアクセスポイントに)接続してあります。

 ESP8266によるスマートリモコンやスマートコンセントも自作でき、これらは赤外線リモコン家電・非リモコン家電をWifi越しに制御できます。

 よってJulius/Open JTalkベースな自作スマートスピーカーから家電を制御するのもAlexaのように複数の操作をまとめた定型アクションを登録・操作するのも容易い。

 定型アクションは、家電操作のみとは限りませんが。

 具体的には、Julius用オリジナル辞書に定型アクションを音声操作するための任意のフレーズ・定型句を追記、iconvコマンドでファイルエンコーディングをeucjpに変換、応答用自作スクリプトにその定型句による条件分岐を追加し、一連の操作コマンドのスクリプトを作成・指定、systemctlで反映させるだけ。

 現時点での実装で言えば、「スタンバイ」や「ボイス」などのウェイク(起動)ワードにスマートスピーカーから「音声操作を開始します」と応答があったら、例えば、「おはよう」、「おやすみ」、「出かけるよ」などと呼びかければ、家電操作を含む一連の操作を行ってくれるという流れ。

 この機能は、全てのスマートスピーカーが搭載しているわけでもないようですが、自作ラズパイスマートスピーカー+ESP8266スマートリモコンやスマートコンセントなら、こんな風に簡単。

 ただ、自作、市販に関わらず、音声に限らず、遠隔操作でも家電操作については、具体的にやってみようとすると待機電力を無視するのか、専用機器やスイッチを物理的にON/OFFする装置を自作して多用するのかの選択を迫られたり、Arduinoによるエアコン制御やそのリンク先に書いたような制約など周辺の状況や実用性という意味ですんなりいかなかったり、利用シーンが限られたりするケースも出てくるかとは思いますが。

 また、自身が外出先からの遠隔操作を想定していないからですが、外出する際、最後にスマートスピーカーの電源もOFFにするか、就寝前のみOFFにするかも意外と迷うところ。

 もしも夜中に誤動作で何かしゃべられて目が覚めてしまうのも嫌だし、年中無休でつけっぱなしというのは、あまり考えられず、目覚ましアラームも想定していません。

ホーム前へ次へ