【レポート】【re:Mars 2019】「Voice Control for Any Thing」で #Alexa のワークショップに参加してきた。#reMARS #AlexaDevs

2019.06.06

せーのでございます。
只今私はAmazon初めてのAI・機械学習系カンファレンス「re:Mars 2019」に参加するため、アメリカはラスベガス「Aria Casino & Resort」に来ております。

このエントリーでは1日目に行われたワークショップ「Voice Control for Any Thing」をレポート致します。

会場

会場はAriaのConvention Center。「Jupitar 4」という少し広めの場所でした。

会場につくと、各テーブルにはモニター、キーボード、マウスが配置されており、てっきりノートPCを見やすくするためかと思ったら、後にラズパイ用だと判明しました。

講師はAmazonのソリューションアーキテクト、Eric Fahsl氏。まずはAlexaに関するプレゼンテーションを聞いてからワークショップに入ります。9時スタート、17時終了という長丁場です。

セッション

  • 今日やること
    • AVSを「CanaKit」というLED付きのラズパイにセットアップする
    • カスタムスキルを作成する
    • AWS IoTを連携させてAlexaからラズパイにつながっているLEDを操作する

  • なぜVoiceなのか
    • 声によるコミュニケーションズは非常に自然なインターフェース
    • インターフェースの歴史からVUIはこれから必ず来る
  • Amazon Echo
    • Echoは2014年に登場した
    • 現在は14の国でサポートされ、60000以上のAlexaで動く製品が出荷されており、90000以上のスキルが公開されている
    • Echoを始めとしたスピーカー、タブレット、TVなど1億人以上の手にAlexa built-inのデバイスが届いている
  • AVSの仕組み
    • Alexaはクラウドベース
    • ユーザーがAVSの入っている製品に話しかけると、クラウドにてASR、NLUなどを通じてその意図が解釈され、バックエンドに送られる
    • 例えば「Alexa, will I need an umbrella tomorrow?(アレクサ、明日傘いる?)」と聴くと、サーバー上では「DOMAIN: WEATHER / INTENT: RAIN / DATE: TOMORROW」といった要素に分解され、バックエンドのスキルに情報としてリクエストされる
    • スキルはその情報を元に処理を行い、レスポンスをAlexaに返す
    • AlexaはTTSを使ってそのレスポンスを音声に変更してスピーカーからユーザーに返す
  • Works with Alexa(Smart Home Devices)の場合
    • スキルで処理した結果を、それぞれの家電からメーカーのクラウドを通じて指示が送られる

  • スマートスイッチ
    • AWS IoTを通じて現実のものを操作する。今回のワークショップのテーマ

  • 開発者に向けてのAlexaは3種類
    • AVS: Alexaを音声認識の製品に組み込む
    • ASK: 音声認識体験の構築
    • Alexa Smart Home and Gadgets: Works with Alexaで動く製品を開発する
  • Acoustic Echo Cancellation(AEC)
    • ノイズリダクションのアルゴリズムにて、マイクの音声から声以外の音を減衰させる
  • Wake Word Engine
    • キーワードを聞き取る機能。このケースでは「Alexa」
    • クラウドベースでWake Wordの検証が行われることでCX(顧客体験)を向上させる
  • AVS Client SoftWare
    • Event: ClientからAlexaへ
    • Directive: AlexaからClientへ
  • AVS Client Software Solutions
    • alexa.design/AVSdeviceSDK
    • C++ライブラリ
    • Github.ioで無料公開
  • 製品のカテゴリ
    • スピーカー
    • スマートスクリーン
    • ヘッドフォン
    • スマートホーム
    • TV
    • 詳細は alexa.design/AVStutorials で

Alexa on Devices

  • 音声連携のモデル
    • タッチやタップすることで立ち上がるタイプ
    • ハンズフリーで遠くからでも声で立ち上がるタイプ

ワークショップ

ということで、ワークショップに入りました。今回のフローはこんな感じになります。

ラズパイにAVSを入れて、そのラズパイにブレイクボードをつなげ、LEDを配置します。
ラズパイにはUSBのマイクとイヤホンを挿し、ラズパイに話しかけることでAlexaにリクエストを送ります。

スキル側ではLambdaとAWS IoTを連携して、スキルからのリクエストをThings Shadowを変更することで処理します。
ラズパイにはAWS IoT SDKも組み込まれているので、コードを書いてnodeで立ち上げておくことで、Shadowの変更を検知し、LEDが点く、という仕組みになります.

このデモの中にAVS、AWS IoT(IoT Shadow)、ASKを使った構築が組み込まれており、特にIoTの知識がない人はしんどいかもしれない、と最初は感じました。

用意されていたもの

ワークショップで用意されていたのは

  • Raspberry Pi(またはそれに類するシングルボードコンピュータ)
  • USBマイク
  • キーボードとマウス
  • 5mmジャックのついた有線イヤホン
  • EthernetまたはWi-Fi
  • micro USBケーブル(電源用)
  • マイクロSDカード
  • ブレイクボード
  • ラズパイとブレイクボードをつなげるGPIOピンまたはbreakoutボード
  • LEDライト(赤、青、緑)
  • 220Ωの抵抗 x 3
  • 10kΩの抵抗 x 1
  • ブレイクボードに挿せるスイッチ
  • ジャンパー線(赤、青、緑、黄)

でした。

配られたSDカードの中にすでにAVSもAWS IoT SDKも入っていて、ご丁寧にインストールスクリプトやサンプルアプリケーションまで入っていましたので、ただテキストを上からなぞっていけばなんとかなる、というものでした。最初は知識によって進捗バラけそうだな、と思っていたのですが、ここまで用意してあると(コードもほぼコピペ)、作り上げること自体は楽勝です。

テキスト: https://avs-dvk-workshop.github.io/

壁紙もきっちり作り込んでいますね。

ただボードがラズパイなので接触が悪くなったり、突然落ちたり、という組み込みあるあるも起こりました。
更に今回は開発も全てラズパイ上で行うことになっていたので、いつものクセで4枚も5枚もブラウザのタブを開くと、それだけで激重になります。久々に「メモリを節約する」という事をしました。

まとめ

ということでre:MARS初めてのセッションはワークショップでした。一日やりましたが日本人、外国人、両方の知り合いができて楽しかったです。
おそらくサンプルアプリ系はAmazonのgithubにあるものでいけそうなので、やってみたいかたは是非挑戦してみてください。