皆さんはアレクサを体験済みですか? Raspberry Pi とは一見して関係が無さそうに思えるAmazonEchoとそのサービスは、Echoスキルの開発として実はAmazonが推奨しています。
先日のセールにてRaspberry Pi と連携させるべくAmazonEchoShow5を購入しました。
ツールキットを利用してRaspberry Pi で開発していければと思っています。
Alexa Gadgets Toolkit
Amazonはカスタムインターフェイスの開発支援するために、Raspberry PiとPythonベースのソフトウェアを使用してガジェット(スキル)の構築ガイドとしてサンプルプロジェクトをオンラインで公開しています。
Alexa Voice Service Developer Console
Echoデバイスで動作するガジェットを作成することになります。
そのためには最初にAlexa Voice Service Developer Consoleで新しいガジェットを登録する必要があります。
これらを使い、ユーザーはAlexa Gadgets Toolkitを使用して、Alexaの音声応答やタイマー、アラーム、リマインダー、Amazon Musicなどへの動作を促すトリガーを作成できるようになります。
サンプルがあるGitHubリポジトリには、カスタムインターフェイスコントローラーを使用してスキルが制御できるリソースが含まれています。
サンプルはNode.jsとPythonとあり、これら両方で使用できるPythonクライアント側コードもあります。

開発に必要な環境
これらRaspberry Pi を使ったAmazonスキルの開発に必要な条件は以下です。
- Raspberry Pi Zero WまたはRaspberry Pi 3B+(要インターネット接続)
- 最新バージョンのRaspian Stretchがインストールされた最小で8GBからのmicroSDカード
- Amazon開発者アカウント
- Alexaガジェットと互換性のあるEchoデバイス
Echoデバイスは持っているのは当然として、Raspberry Pi も手に入りやすい3B+とZeroWなので、問題ありませんね。
Raspbian Stretchの次バージョンであるBusterではどうなんだろう??
3番の開発者アカウントが無い人が多いかと思います。無料ですし、この機会に登録してみてください。
手順については公式サイトも詳しく載っています。
まだ英語の環境なので別の記事でまとめたいと思っています。ただ、公式サイトもキャプチャ画像が豊富な説明なので分かり易いでしょう。
連携の導入手順は一応まとめてみました。
サンプルプログラム
インストールが終われば、exampleフォルダに5つのプロジェクトが入っています。
/home/pi/Alexa-Gadgets-Raspberry-Pi-Samples/src/examples
- Kitchen Sink Gadget
ダイレクトに応答してメッセージを印刷させる。ウェイクワードの検出、アラーム、タイマー、通知、リマインダーが含まれます。 - Color Cycler Gadget
LEDとボタンを備えたガジェットを作成します。様々な色を切り替え、ボタンが押されたLEDの色を報告します。(このプロジェクトにはAlexaのスキルが必要です) - Wake Word Gadget
ウェイクワードの検出と同期してLEDをオン/オフします。 - Notification Flag Gadget
ペアリングされたEchoデバイスで通知を受信またはクリアしたときに、サーボを回転させてフラグを上げ下げするAlexaガジェットを作成します。 - Timer Gadget
Echoデバイスに設定された単一のタイマーに反応するAlexaガジェットを作成します。サーボがディスクを回転させて、タイマーの残り時間、タイマーの有効期限、タイマーのキャンセルを示します。
金魚にエサをやるサーボモーターを動かすにはタイマーのガジェットとか組み合わせれば簡単にできそうだ?
実行方法
実際にサンプルプログラムを実行するには、Echoのデバイスとスマホアプリを使い、Bluetoothでペアリング接続を設定します。
ネット接続は必要とはいえ、ほぼローカル環境で試せます。他に公開する必要がありません。
注意
インストールの過程で、BluetoothでのA2DP環境は無効になっています。
A2DPとは、Bluetoothで音楽をストリーミング配信するデータ転送のことで、alexaとの連携には邪魔なため無効にするよう推奨されています。
Raspberry Pi 側を元に戻したい場合は以下のコマンドです。
sudo apt-get -y install bluealsa
sudo reboot
使ったmicroSDカードを開発用から元のRaspberry Pi としてそのまま再利用する際には思い出してください。microSDカードごと交換するなら必要ない手順ですね。
最後に
Alexaのみならず、こういったWebコンソールの利用というのは少し理解しずらい面があります。
Amazonの場合は比較的に分かり易いと感じます。
AmazonのアカウントやEchoデバイスを所持しているのなら、手順通りに試すだけで実現できますので、英語はWeb翻訳に頼ってみて一度トライしてみてください。
オリジナルのガジェット(スキル)を作れるというのは魅力的です。このラズパイダでも試してみたことはご紹介していきたいと思います。
既に楽しんでいる人や玄人の人は、参考になりますので、ぜひフォーラムにてお教えください!
AppleもようやくHomePodをリリースしてきましたが、先行しているAmazonが格安でEchoを販売しているので、取っつきやすさではAmazon側が断然に有利です。
特にRaspberry Pi と連携させるなんてステキです。
Amazon Echoはモニター付きだと更に楽しめます!
AmazonEchoのスキル開発についてでした。
実際にプログラムする手前まで準備してみます。続きは「ラズパイとAmazonアレクサを連携してAlexa Gadgetを使う」です。
コメント ご感想をお願いします。