Amazon EchoをRaspberry Piのワイヤレス音声認識マイク・スピーカとして使いたい 我が家では、Amazon Echoを壁掛け設置して色々便利に活用しています。 ただ、そんな中。妻から色々不満の声が上がってきました。具体的には以下です。 リマインダでいちいち2回言うのが気にくわない。 (adsbygoogle = window.adsbygoogle || []).push({}); >>プライバシーポリシー, Amazon EchoをRaspberry Piのワイヤレス音声認識マイク&スピーカとしてミクさんの声で喋らせたり家電制御(リモコン制御)する方法, 音声配信プラットフォーム「stand.fm」が便利なので100回限定でインターネットの歴史の話をしてみます, ノートアプリ「Notability」が使っていて気持ち良いので手帳のアナログからデジタルへの移行を考えている, Node-RED Alexa Home Skill Bridge(Webサービス). adsFilter(); (adsbygoogle = window.adsbygoogle || []).push({}); >>karaageのポートフォリオ ここまできたら、Amazon Echo単体では、如何ともしがたいですね。そんなときの強い味方が我らがRaspberry Piです。要はAmazon EchoをRaspberry Piのワイヤレス音声認識マイク&スピーカと使うことができれば何でもできます(ラズパイ脳なのでRaspberry Piなら何でもできると信じている)。, というわけで、今回は色々ネット情報調べて試行錯誤して、自分なりのAmazon EchoとRaspberry Piを連携させるベストプラクティスを見つけたので、その方法に関してご紹介したいと思います。助けられた先人の知恵は、本記事の最後に参考リンクとしてまとめていますので、この記事で分かり辛いという人はそちらも参考にしてみて下さい。, Amazon EchoとRaspberry Piを入力・出力両方向で連携させるところが肝で、これによりAmazon EchoをあたかもRaspberry Piの音声認識マイク&スピーカとして使うことが可能になります。このシステムでは、Raspberry PiからAmazon EchoへはBluetoothで、Amazon EchoからRaspberry PiへはNode-REDを用いて接続しています。Node-REDのところは、実際には「Node-RED Alexa Home Skill Bridge」でブリッジしたりと間に色々あるようなのですが(あんまり分かってない)、使うときはユーザはそこらへんは特に意識しないで、Amazon EchoとRaspberry Piがローカルネットワークで繋がっているかのように動作してくれるのが大変ありがたいです。, Amazon EchoからRapberry Piへの接続は、他にも「IFTTT + Slack + Hubot」 の組み合わせや、「Alexa Skills Kit + AWS lambda + AWS IoT」の組み合わせなど色々な手段があるようですが、IFTTTの日本語認識率が致命的に悪いとか、多くのサービスを使用して煩雑とか、スキル作成は初心者にはハードルがあるなどそれぞれ色々難点があるので、今のところNode-RED使うのが一番シンプルで応用も効きそうで良いかなと思っています(個人の感想です)。, Raspberry Pi3 Model B ボード&ケースセット 3ple Decker対応 (Clear)-Physical Computing Lab, Raspberry Piに関しては、以下の記事を参考にRaspberry Piの基礎的なセットアップをします, リモコン制御に関しては、以下の記事の irMagicianかVIR-USB赤外線学習リモコンセットのところを参考にして、コマンドでリモコンを操作できるようにしておきましょう。今回は、Siriは使わないので、homebridge関係のセットアップは不要です。, VIR-USB赤外線学習リモコンをRaspberry Piに繋いでセットアップした図, これは以前Bluetoothのスピーカと繋いだことあるので簡単でした。以下記事の「スマートフォン・Raspberry Piとスピーカーの接続性」という項目を参照下さい(私が以前に、はてなニュースさんに寄稿した記事です)。, 上記では、Pringlesとなっていますが、Amazon Echoの場合は以下のように表示されます。表示されない場合は、スマートフォンのアプリでペアリングの操作をすると良いかもしれません。, あとは、Raspberry Piに喋らせるだけです。Raspberry Piにミクさんの声で喋らせる方法は以下記事を参照下さい。, うまくいけば、以下のような感じにAmazon Echoにミクさんの声で好きなことをしゃべらせることが可能です, Bluetoothは、Raspberry PiとAmazon Echoの接続性を気にしていたのですが、Raspberry Piを1日放置しても接続したままでしたし。Raspberry Piを一旦電源切って再起動しても、自動的に接続してくれるので、そこまで悪くは無さそうです。, 後は、cronとか使えばRaspberry Piを使って、Amazon Echoにミクさんの声で好きなタイミングで好きな言葉をしゃべらせることができます。リマインダのように2回繰り返すこともないですね。, 天気予報やグーグルカレンダーの予定読み上げなども、以下記事参考にすれば簡単に実現できると思います。といっても、これらの機能はAmazon Echo単体でもある機能なので、利点はミクさんの声にできることくらいですが。, Amazon EchoからRaspberry Piへの通信を実現するには、以下の3つの設定をする必要があります。といっても、上2つは決まり切ったことをするだけで、肝となるのはNode-REDですね。, Amazon EchoとRaspberry Piを繋げる(ブリッジする)ためのサービスです。以下サイトにアクセスします。, 好きな名前のデバイスを作成します。とりあえず今回はkechoとしました。karaage echoね。, 続いてAmazon Echoのスキル設定をしましょう。まずはスマートフォンのAmazon Alexaアプリを起動します。以下はiPhoneでの設定例ですが、他のスマホでも基本は同じだと思います。, まずはスキルで、「Node-RED」で検索しましょう。「node」とかでもOKです。「Node-RED」というスキルが出てくるはずなので、クリックしましょう。, 有効にしようとすると以下のような画面が出てきますので、「Node-RED Alexa Home Skill Bridge」で設定したユーザ名とパスワードを入力しましょう, 成功すれば、以下のようにスマートホームのメニューに以下のように先ほど登録したデバイス「kecho」が出てきます, まだ「kecho」の中身を作っていないので当然オン、オフをタップしても何も起こりません。また、このままだと「kecho」がAmazon Echoの音声認識のトリガとなってしまうため、呼びやすい名前に変えておきましょう。, 名前を編集という項目をタップすると「kecho」を好きな名前に変えることができます。今回は照明を制御したいので、「ライト」という名前にしてみました。, 複数のデバイスを登録したい場合は、「Node-RED Alexa Home Skill Bridge」でデバイス追加した後、上記スマートホーム画面の「デバイスを追加」をタップしてしばらく待つだけでOKです。, これでAmazon Echoから音声認識で自分で作ったNode-REDの仮想デバイスを呼び出す準備ができました。次は、いよいよNode-REDの中身を作っていきましょう。, 最初アップデートしないで設定しようとしたら、以下のように肝心のノードを追加する項目(パレットの管理)が設定に出てこなくて焦りました。必ずアップデートしましょう。, また、以下コマンド実行しておくと、次回からはRaspberry Piが起動すると自動的にNode-REDが立ち上がるようになります(上記のコマンドの入力が不要になります)。, これでRaspberry Pi上にNode-REDサーバが立ち上がるようになりました。Node-REDはブラウザからサーバにアクセスして、開発していく流れになります。Raspberry Piでブラウザを立ち上げてアクセスしてもよいのですが、GUIでの開発にRaspberry Piだと少し非力なので、Raspberry Piと同じネットワーク上にあるPC(Mac)のブラウザからアクセスして開発していくことにします。, ブラウザのアドレス欄に、Raspberry PiのIPアドレスを入力しましょう(分からなければRaspberry Pi上でifconfig というコマンド打つとそれっぽい数字が出て来ます)。もしくは、ホスト名経由でもアクセスできます(Macの場合は設定不要です。WindowsはiTunesをインストールすればOKのはず)。今回Raspberry Piは kechoという名前にしたので、kecho.localでアクセスします。, 上記のような起動画面が表示されたら、右上のメニューボタンから、パレットの管理をクリックします, パレット->ノードを追加で「node-red-contrib-alexa-home-skill」を検索。ノードを追加しましょう。, ここからは、Node-REDのプログラミングになります。レゴのブロックみたいにGUIでノードをつないでいって機能を実現するのが作法のようです。とりあえず参考サイトなどをみながら勘で作ってみます。, alexa homeをドラッグアンドドロップして、画面に置いて選択。Accountの鉛筆マークをクリックします。, ユーザ名とパスワードは、もちろん「Node-RED Alexa Home Skill Bridge 」で設定したものを入力します, あとは、「機能」の「switch」と「その他」の「exec」を使って、以下のようにAmazon Echoで音声認識したON/OFFを元にライトをオン・オフするという流れを作ってやります。なんとなく動きはこの絵をみると想像できますね。, 「switch」の設定は以下のようにしています。オンとオフで行き先を切り替えているだけですね, 「exec」の設定は以下の通りです。ここで、Raspberry Piに実行させたい好きなコマンドを入力しましょう。今回は照明のリモコンONにするコマンドを使用しています。引数のmsg.payloadのチェックは外しておきましょう。, 設定終わったら、最後に必ず右上の「デプロイ」をクリックしましょう。デプロイの意味わからない人は、ファイルの保存くらいにとらえておいてください。私も正直あんまり分かってないです。, 続いては動作テストしてみましょう。まずはAmazon Alexaアプリのスマートホームから「ライト」を選択して、「オン」「オフ」をタップしてみましょう。, 問題無ければ、Raspberry Piが設定したコマンドを実行して、今回は照明をオン・オフします。うまくいかないときは、ブラウザでNode-REDサーバにアクセスしておくと、エラーの箇所が表示されますので、確認しましょう。, ここまでうまくいったら、後はAmazon Echoに「アレクサ ライト オフ」「アレクサ ライト オン」と話しかけましょう。以下のように照明を制御してくれます。, Amazon Echo、IFTTTを使うと、現状は異常に認識率悪いのですが、Node-RED経由の認識率は悪くなさそうな印象です。今後、他の単語も試してみようと思います。, Amazon EchoをNode-RED経由でRaspberry Piのワイヤレス音声認識マイク&スピーカとして使う方法を紹介しました。思ったよりシンプルな構成でAmazon EchoとRaspberry Piを連携させることができました。心配していた、Bluetoothとの接続性と音声認識の精度も、実用的なレベルにありそうな感触です。Raspberry Piで音声認識や音声出力を試してみたいという人は、マイクとスピーカ買う代わりにAmazon Echoを買うというのも良い選択肢かなと思いました。, 今回は家電制御として照明制御を試しましたが、今回構築したシステムならAmazon Echoの音声認識をトリガにRaspberry Piのあらゆるコマンドを実行できるので非常に応用範囲が広いと思います。例えば、、Raspberry Piを使って照明制御の他にリモコンで操作できるテレビ・エアコン・ルンバを制御したり、カメラを撮影したり、Slack、Twitter、はてなブログのようなWebサービスと連携させても面白そうですね。色々なことを試して実際に運用してみたいなと思っています。, Amazon Echo Dot(Alexa)とNode-REDで家電をスマートホームに対応させる - rochefort's blog, Echosim.ioを使うと日本でもAlexaでSmart Homeを実現できるので、安価なBlack Beanで照明やエアコンを制御してみた - 知的好奇心 for IoT, カラスのノート: amazon alexa と raspberry pi を使って簡単にスマートホームを作る. Amazon echo利用者の82.4%が利用している機能は 音楽再生 です。 つまり音楽再生機能を使っていない人は、Amazon echoの魅力の、ほんの一部にしか触れていないことになります。 Amazon Music Unlimitedなら月額380円(echoプラン)で音楽が聴き放題になります。 >>問い合わせはこちら