[レポート] AWS IoTとAlexaを使った音声制御ホームデバイスの構築ワークショップ #IOT304 #reinvent 2019

ラスベガスで開催されたre:Invent2019のワークショップ「IOT304 - Building voice-controlled home devices with AWS IoT and Alexa」に参加したのでレポートします。
2019.12.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWS re:Invent 2019「IOT304 - Building voice-controlled home devices with AWS IoT and Alexa」ワークショップ に参加したのでレポートします。

ワークショップ概要

Voice is a natural interface for not only the world around us, but also with physical things, such as connected home devices, including lights and thermostats. In this workshop, learn how you can connect and control devices with Alexa using AWS IoT services. We teach you the building blocks for implementing IoT solutions that can utilize voice. You'll learn how to build voice-enabled devices and also how to build a cloud infrastructure using AWS IoT services to support you smart products' life cycle. This workshop will cover AWS IoT Core, AWS IoT Device Management, AWS IoT Events, and AWS IoT Device Defender.

Presented by

  • Harish Rajagopalan - Solutions Architect, Amazon Web Services
  • Neel Mitra - Sr Solutions Architect , IOT Specialist, Amazon Web Services

レポート

ワークショップの説明

  • Alexaに話しかけた時、デバイスおよびAVSではどのような処理が行われているか

  • AVS SDKの内部でやっていること
    1. AIP: SDSから転送されたオーディオ入力を処理
    2. WWE: ストリームからウェイクワードを判定
    3. ACL: クライアントとAVS間との通信チャネル
    4. ADSL: AVSからのディレクティブ順序とシーケンスを管理
    5. CA: ディレクティブやイベントなど、Alexaとの対話を処理
    6. AFML: デバイスのオーディオ・ビジュアルを集中管理

  • AVSプロトコルは、AWS Cloudと接続する際の複雑さを軽減してくれる

  • AVS for AWS IoTとAVS Device SDKの比較

  • AWS IoT群を利用した、IoTの好循環サイクル

  • 音声制御されたモノのライフサイクル

  • テンプレートを使って、フリートを一括でプロビジョニングする例

  • フリートに音声で接続する流れ

  • AWS IoTを使ってフリートを一括管理する

  • 今回のワークショップで構築するアーキテクチャ

ハンズオン

説明が終わったら実際にデバイスを繋げて構築していきます。
今回は、NXP社のMCU-based Solution for Alexa Voice Service Turnkey i.MX RT solution for Alexa Built-inというAlexa Built-inのプロダクトが配布され、そちらを使用しました。

こちらのデバイスの詳細に関しては、さかじがレポートしてくれていますので、よろしければそちらを参照ください。

ワークショップで見かけたAVS用デバイスが気になったのでちょっと調べてみた #IOT304 #reinvent

配布されたデバイスをPCに接続した様子です。

【GitHub】Build Voice Controlled home devices with AWS IoT and Alexa

を参照し、Alexaデバイスの構築とAWS IoTを使ったデバイス管理の設定を行っていきます。

Lab 1 : Build Alexa device on a MCU

AVSの作成とAWSで必要なリソースの作成を行う。

  • AWS IoT Consoleで配布されたデバイス(モノ)の登録とCFnを使った各種リソースの構築
  • Amazonの開発者コンソールからAVS製品とセキュリティプロファイルの新規作成

Lab 2 : Enable Alexa on the NxP MCU kit

NxP microcontroller kitを使用したAVSとAWS IoT Coreへの接続を行う。

  • デバイスをシリアル接続し、キットを使ってMQTTによる接続と認証を設定
  • AWS IoT Consoleでモノの接続が成功していることを確認
  • デバイスに話しかけてAlexaとして動作するか確認(下記動画です)

ラスベガスの天気を教えてくれていますね。

Lab 3 : Command and Control Alexa enabled IoT device(s)

Alexa対応のIoTデバイスでコマンドと制御を実行する方法を学ぶ。
AWS IoT Coreでデバイスの状態(shadow)を対話できるカスタムスキルとLambdaを作成する。

  • カスタムスキルのバックエンドLambda作成とAWS IoT Shadowでデバイスのステータスを確認
  • Alexaのカスタムスキルを作成。モデルのビルドまで行い、コンソールからテスト可能な状態にしておく
  • コンソールおよび実機での動作テスト。Alexaとの対話でデバイスの状態を聞くことができる

おわりに

AVS + AWS IoT Coreを使ったのは初めてだったので、色々と勉強になるワークショップでした。
AWS IoTを使ったデバイスの管理は、実際にモノをデプロイし運用していくシーンで非常に便利そうな印象を受けました。

ハンズオン途中色々とハマったりしましたが、何とかLab3までは無事に到達できました。
配布されたデバイスがAlexaとして反応してくれたときは、思わず「おおー!」と声が出てしまいましたw
ワークショップ形式で実際に手を動かしたり、ハードを触って動作させるのはやっぱり楽しいですね。