JAWS-UG近畿・中国レポート 第1回
世界で一番濃いAlexa勉強会がJAWS-UG神戸で開催!
「Pardon?」連発を乗り越えたAlexa AMIMOTO Ninja開発秘話
2016年08月02日 07時00分更新
7月28日、JAWS-UG神戸はAmazonの音声認識技術であるAlexaをテーマにした「Alexa Meetup #01」を開催した。イベントでは、AlexaがWordPressについて答えてくれる「Alexa AMIMOTO Ninja」の開発ノウハウが披露され、エンジニアの好奇心を大いに刺激したようだった。
Alexaの認証とやりとりの基本を学ぶ
最近、1ヶ月の1回のペースで勉強会やイベントを開催しているJAWS-UG神戸。新しモノ好きのJAWS-UG神戸が今回テーマに選んだのは、6月のAWS Summit 2016でも大きな話題となった音声認識技術のAlexa(アレクサ)によるアプリケーション開発。元町駅近くにある「オープンスペース DEP. KOBE」で行なわれたAlexa Meetup Vol.1には、神戸や大阪から14名のエンジニアが集まった。
少人数のビアバッシュ形式ということもあり、全員の自己紹介と乾杯で始まったイベント。最初のセッションはJAWS-UG神戸のTomoharu Itoさん(TiNm'S:ティムズ)によるAlexaクライアントの作り方だ。
AlexaではEchoなどのデバイスで録音した音声データをAlexa Voice Service(AVS)に送信すると、応答が返る。このフローの中で、ItoさんはデバイスをAVSに認証させる方法を説明した。
AlexaではセキュリティプロファイルをAmazon.comの認証URLに送信し、アクセストークンとリフレッシュトークンを取得するという流れになる。アクセストークンはAVSのAPIを呼び出すためのセキュリティコードで、有効期限は1時間。一方のリフレッシュトークンは有効期限が過ぎた場合に再度取得するためのトークンになる。
Alexaでは、まずプロダクトサイトで発行されたアクセストークンを元にAmazonのWebサイトにログインし、そこで受け取ったアクセストークンでAVSのAPIをコールするという流れになる。AmazonサイトへのログインはクライアントIDを送信してログインする「Implicit Grant」という方法と、クライアントIDに加えクライアントシークレットを送信する「Authorization Code Grant」という2つがある。両者の違いはトークンの扱いの違いで、Authorization Code Grantはリフレッシュトークンを利用して再認証なしに更新できるというメリットがある。
続いてItoさんは、Alexaとのリクエストとレスポンスについて説明した。AlexaはデバイスからAVSに送るリクエストにEventと呼ばれるメッセージを付与すると、AVSではDirectivesというレスポンスが戻ってくる。中身は両方ともマルチパートのJSON形式になるので、開発者はこれを解析して、音声の出力を指定すればよいという。
WordPressってなに?と聞くと、Echoが力説してくれる
そして、今回のハイライトはHiganWorksの澤登亨彦さんによるAlexaアプリケーション(Alexa Skills Kit)のセッションだ。
Alexa Skills KitはAlexaデバイス用の自作APIで、実体はAWS Lambdaのfunctionを指す。Amazon Echoに話した内容を聞き取って、特定のアクションを実行できる。今回、澤登さんがデジタルキューブと共同で作ったのは「Alexa AMIMOTO Ninja」というSkill。ヨーロッパで開催された「WordCamp」において、デジタルキューブがブース設置用に作ったものだという。
Alexa AMIMOTO Ninjaは、まず質問者の名前を聞き、続いてAMIMOTOに関する質問を回答する。聞き取れなかったら、オススメのトピックをランダムに紹介してくれるという親切仕様だ。
まずはデモ。「ask amimoto ninja」でスキルを起動すると案内が流れるので、それに従って話者が「What is WordPress?」と質問。きちんと質問の意図が通じたようで、「WordPressとはなにか」を熱く語り始める。もちろん、会場から「おおっ」というどよめきと拍手が巻き起こる。
この連載の記事
-
第2回
デジタル
そんな使い方あかん!やらかした事例満載のJAWS-UG大阪 - この連載の一覧へ