スマートスピーカーのAmazon Echoで「Hello World」するには|翔泳社の本

スマートスピーカーのAmazon Echoで「Hello World」するには

2018/08/31 07:00

 Amazonが展開するスマートスピーカー、Amazon Echo。そこに搭載されているのがAIのAlexaです。音声UIに注目が集まる中、今後はAlexaを利用したWebサービスやデバイスが増えてくるでしょう。そのニーズに合わせ翔泳社では『Amazon Alexa開発ガイド』を発売しました。今回は本書から、Amazon Echoで「Hello World」する方法を紹介します。

本記事は『Amazon Alexa開発ガイド Alexa対応スキル&AVS対応アプリの作り方』から抜粋、掲載にあたって一部を編集したものです。Amazon開発者コンソールとAWSへの登録が前提となります。

 ここではAlexaの発話までの一番簡単な一連の設定、実装を行い全体の開発の流れを説明します。各機能の詳細については本書の続き「Chapter3 スキル開発入門」で詳しく説明していますので、そちらを参照してください。

カスタムスキルの開発の工程

 Alexaのスキル開発は次の3つの工程から成ります。

  • Amazon 開発者コンソールの設定
  • Lambdaの実装および設定
  • 動作確認

 それぞれの実施方法を説明します。

Amazon開発者コンソールの設定およびLambdaの実装

 本節ではAmazon 開発者コンソールの設定方法を説明します。

 コンソールでは、次の4つの工程でスキルを登録します。登録が済むと、Alexaデバイスで動作させることができるようになります。

  1. スキルの基本情報設定
  2. Alexaデバイスの応答設定
  3. Lambdaの設定および実装
  4. LambdaとAlexaデバイスの応答設定との紐付け

1 スキルの基本情報設定

 https://developer.amazon.com/ja/alexaにアクセスしてログインします。ログイン後の画面の右上から「あなたのAlexaコンソール」→「Skills」を選択すると(図2-11(1)(2))、「新しいAlexa Skills Kit開発者コンソールへようこそ」画面が表示されます(図2-12)。ここからAlexaスキルの作成を行います。

図2-11:Amazon開発者コンソールページ
図2-11:Amazon開発者コンソールページ

 図2-12の画面で「スキルの作成」をクリックします。

図2-12:「新しいAlexa Skills Kit開発者コンソールへようこそ」画面
図2-12:「新しいAlexa Skills Kit開発者コンソールへようこそ」画面

 図2-13ではスキル名を入力して(1)(ここでは「ハローワールド」に設定。この名前がマーケットに表示されるスキル名になる)、「デフォルトの言語」を「日本語」に設定し(2)、スキルの種類を選択します。本節ではカスタムスキルを動かすため「カスタム」を選択して(3)、「スキルを作成」をクリックします(4)。

図2-13:「新しいスキル 作成」画面
図2-13:「新しいスキル 作成」画面
図2-14:「新しいスキル作成」画面
図2-14:「新しいスキル作成」画面

2 Alexaデバイスの応答設定

 次にAlexaデバイスの応答設定を行う画面(図2-15)が表示されます。この画面での各項目の詳細は「Chapter3 スキル開発入門」で説明します。「対話モデル」メニューから「呼び出し名」を選択します。

図2-15:対話モデル設定ページ
図2-15:対話モデル設定ページ

 すると図2-16が表示されます。ここで「スキルの呼び出し名」を設定します。サンプルでは「ハローワールド」と設定します(1)。このようにするとAlexaデバイスで呼び出す際に「アレクサ、ハローワールドを開いて」と呼び出せるようになります。

 次に「対話モデル」メニューから「インテント」の右側にある「追加」をクリックします(2)。

図2-16:呼び出し名の設定ページ
図2-16:呼び出し名の設定ページ

 すると図2-17が表示されます。ここではLambdaで利用するインテント名を設定します。インテントの詳細は「Chapter3 スキル開発入門」にて説明します。本書のサンプルで用意しているインテント名は「HelloWorldIntent」のため「HelloWorldIntent」と入力してください(1)。「カスタムインテントを作成」をクリックします(2)。

図2-17:インテントを追加のページ
図2-17:インテントを追加のページ

 すると図2-18の画面が表示されます。スキルに対して要求する命令(サンプル発話)を設定します。今回は「こんにちは」と記入して設定します(1)(2)(3)。「モデルを保存」をクリックして(4)、作成したインテントを一旦保存します。

図2-18:インテントのサンプル発話の追加ページ
図2-18:インテントのサンプル発話の追加ページ

 次に左のメニューから「エンドポイント」を選択します(図2-19(1))。Lambdaとの連携を行いますので「AWS LambdaのARN」を選択します(2)。

図2-19:エンドポイント設定ページ(1)
図2-19:エンドポイント設定ページ(1)

 すると図2-20が表示されます。ここで表示される「スキルID」はLambdaで利用するので(1)、「クリップボードにコピー」をクリックして(2)、テキストエディタに貼り付け、保存しておきましょう。ここで一旦「エンドポイントを保存」をクリックして保存しておきます(3)。

図2-20:エンドポイント設定ページ(2)
図2-20:エンドポイント設定ページ(2)

3 Lambdaの設定および実装

 ここからはLambdaの設定および実装を行います。

 AWS のサイトにアクセスして(図2-21)、「コンソールへログイン」をクリックし(1)、作成したアカウントでログインします。コンソール画面が開くので、左上のサービスから「Lambda」を選択します(2)。

図2-21:「Lamda」の選択
図2-21:「Lamda」の選択

 図2-22で「関数の作成」をクリックすると、図2-23が表示されます。図2-23では「一から作成」を選択し(1)、表2-2のように、名前を「CustomSkillHelloWorld」と入力し(図2-23(2))、ランタイムで「Node.js 6.10」(3)、ロールで「カスタムロールの作成」を選択します(4)。

図2-21:「Lamda」の選択
図2-21:「Lamda」の選択
図2-23:「一から作成」クリック
図2-23:「一から作成」クリック
表2-2:作成する関数ページの設定
表2-2:作成する関数ページの設定

 すると、新しいウィンドウが立ち上がり、ロールの作成画面(図2-24)が表示されます。図2-24 で「IAM ロール」項目を「新しいIAM ロールの作成」(1)、「ロール名」をデフォルトの「lambda_basic_execution」に設定して(2)、「許可」をクリックし(3)、ロールを作成します。

図2-24:IAMロール作成画面
図2-24:IAMロール作成画面

 ロールの作成が完了すると、図2-25の画面になります。この画面で「ロール」の項目を「既存のロールを選択」に設定すると(1)、「既存のロール」という項目が表示されます。ここで先程作成した「lambda_basic_execution」を選択します(2)。これでLambdaの設定が整いましたので、「関数の作成」をクリックします(3)。

図2-25:作成したロールの設定画面
図2-25:作成したロールの設定画面

 すると図2-26に遷移します。

 図2-26で操作する前に、本書のサンプルソースコード(2-2-1_hello-world.zip)をダウンロードします(本書で提供するサンプルコードのzipファイルにはサンプルコードで利用されるライブラリをnpmのコマンドによってインストール環境を再現するためのpackage.jsonおよびpackage-lock.jsonを含めたものを提供いたします)。

 ダウンロードが完了したら図2-26の画面に戻り、「コードエントリタイプ」から「.ZIPファイルをアップロード」を選択して(1)、「アップロード」をクリックします。そしてダウンロードした「2-2-1_hello-world.zip」を選択して、アップロードします(2)。アップロード完了には、右上の「保存」をクリックします(3)。完了するとindex.jsのコードが表示されます(4)。

図2-26:「コードエントリタイプ」の設定と、サンプルのアップロード
図2-26:「コードエントリタイプ」の設定と、サンプルのアップロード

「トリガーの追加」のメニューから「Alexa Skills Kit」を選択します(図2-27(1)(2))。

図2-27:「トリガーの追加」のメニューから「Alexa Skills Kit」選択
図2-27:「トリガーの追加」のメニューから「Alexa Skills Kit」選択

4 LambdaとAlexaデバイスの応答設定との紐付け

 図2-28の画面で「スキルID検証」で「有効(推奨)」を選択して有効にし(1)、図2-20で控えたスキルIDを「スキルID」の入力欄にコピー&ペーストして(2)、右下の「追加」をクリックし(3)、右上の「保存」をクリックします(4)。そして図2-28 の右上の「ARN-arn:aws:lambda:XX-XXXXX:XXXXXXXXXXXX:function:XXXXXXX」となっている文字列のarn:の部分から後ろをテキストエディタなどにコピー&ペーストして控えます(5)。

図2-28:Lamda関数のAlexa設定ページ
図2-28:Lamda関数のAlexa設定ページ

 Amazon Alexa のコンソール画面に戻り、図2-29のデフォルトの地域に図2-28(5)で控えておいた「arn:aws:lambda:XX-XXXX-X:XXXXXXXXXXXX:function:XXXXXXX」を入力して(1)、「エンドポイントを保存」をクリックします(2)。「スキルのマニフェストは正常に保存されました」のメッセージが出れば(3)、無事設定されたことになります。

図2-29:デフォルトの地域にエンドポイント設定
図2-29:デフォルトの地域にエンドポイント設定

 左メニューから「呼び出し名」をクリックして(図2-30(1))、図2-16で設定した「スキルの呼び出し名」を確認します(2)。

「モデルを保存」をクリックして(3)、「モデルをビルド」をクリックし(4)、対話モデルを作成します。(5)(6)(7)の順番に表示されれば、モデルのビルドは成功です。

図2-30:「スキルの呼び出し名」の設定画面
図2-30:「スキルの呼び出し名」の設定画面

動作確認

 対話モデルのビルドが完了した状態で上部のメニューから「テスト」をクリックすると(図2-31(1))、「このスキルでは、テストは無効になっています」の画面が表示されます(Alexaアプリで設定したアカウントとAmazon開発者コンソールで設定したアカウントが異なる場合はスキルが表示されないため、実機での動作を確認する場合は同一アカウントによる再ログインを行ってください。)。

 左上のスライドスイッチを右へ動かして(2)、テストを有効にします。有効にするとスマートフォンのAmazon Alexaアプリのスキル項目に表示され実機で確認することができます(図2-32)。

 実機によるテストはChapter5の01節にある「実機によるテスト」を参照してください。実機以外にもAmazon開発者コンソールの図2-31の画面に音声入力、文字入力できる画面が表示されます。

 マイクボタンをクリックすると、音声入力状態になるため「ハローワールドを開いて」と話しかけると、設定した内容とLambdaの実装をテストすることができます。

 Amazon 開発者コンソールでは、テキストボックスに音声入力したい文字列を入力してテストすることも可能です。

図2-31:テストページ
図2-31:テストページ
図2-32:スキル表示
図2-32:スキル表示

 図2-33はテストを実行した結果となります(1)(2)。

図2-33:実行結果
図2-33:実行結果

続きは本書で

 本書『Amazon Alexa開発ガイド』ではこのあと、本格的にスキルの開発方法からデバッグ、Webサービスと連携させたアプリ、スマートホームスキルの開発へと解説を続けていきます。スマートスピーカーに注目している方はぜひ参考にしてみてください。

Amazon Alexa開発ガイド

Amazon SEshop その他

Amazon Alexa開発ガイド
Alexa対応スキル&AVS対応アプリの作り方

著者:加藤勝也、小林慎治、木村尭海
発売日:2018年8月24日(金)
価格:3,024円(税込)

本書について

本書は今後様々なWebサービスやデバイスが増えてくると予想されるAlexaを利用したWebサービスおよびデバイス開発の入門書です。Alexaの開発環境の準備からはじまりAlexaのコア技術であるスキル開発を解説します。