Alexaのスキルについて詳しく解説!AWSサービスとの連携方法もご紹介します


Alexaについて知ろう
この記事では、AlexaスキルとAWSについて解説していきます。今、多くの人々が保持しているスマートスピーカーとAWSを連携させる方法について説明していきます。
Amazon EchoとAlexa
Amazonが提供しているスマートスピーカーはAmazon Echoです。AlexaとはAmazon Echo上で動作しているアプリケーションであり、クラウドベースの音声サービスとなっています。
Alexaには「スキル」と呼ばれる機能が含まれており、「アレクサ、明日の東京都の天気を教えて」「アレクサ、タイマー10分セットして」などと話しかけることによって、様々な操作を行うことができます。
Alexaスキルとは?
Alexaにおけるアプリケーション・プラグインのことをAlexaスキルと呼びます。スマートフォンには自由にアプリケーションをインストールすることができますが、Alexaにとってのアプリケーションが「Alexaスキル」となっています。
Amazon Echoはインターネットに接続されており、かつ、マイクとスピーカーが搭載されています。これらの特徴によって様々な機能を提供することができるのです。
Alexaスキルの仕組み
Alexaスキルはクラウドを通じて提供される仕組みです。
Amazon Echoはスピーカーを搭載しており、常に音声を収集しています。この状態で、「アレクサ、xxxをして」などとユーザーが話しかけます。すると「アレクサ」というウェイクワードを起点として、Alexaスキルを呼び出すのです。
例えば、「アレクサ、明日の東京の天気を教えて」などと話しかけると、「明日の東京の天気を教えて」の部分を録音します。録音された音声をクラウドに転送して、Alexaスキルを呼び出しています。
アプリケーションが実行されるまでの流れ
クラウド上に転送された音声データはAlexaによって処理され、アプリケーションが実行されるようになっています。
Alexaは主に、音声認識・自然言語理解・音声合成・機械学習の4つの機能で構成されています。転送された音声データは音声認識・自然言語理解の機能を使って処理され、パラメータ化されます。
これらのパラメータはAWS上の別サービスに連携され、何らかのプログラムが実行されるという流れになっています。
Alexaスキルを実装するならAWS Lambdaを利用
Alexaスキル用のアプリケーションを手軽に構築する手段は、AWS Lambdaです。
AWS Lambdaとはサーバーレスのアプリケーションを実現するAWSのマネージドサービスです。実装した関数をAWS上にアップロードすることにより、サーバーを構築することなくアプリケーションの実行環境を用意できます。
スキルの実行結果を受け取る
アプリケーションの実行結果は、Alexaを通じてAmazon Echoに返却されます。
レスポンスとして、文字列・画像・音声などを返却することができます。文字列を選択した場合は、Amazon Echoに特定の文字列を再生させることができます。また、音楽や効果音を再生するように指示することも可能です。
Alexaスキルを作成してみよう
こちらのセクションからはハンズオンを行うパートになります。独自のAlexaスキルを作成して、手持ちのAmazon Echoで任意の文章を再生させる方法を紹介します。
ハンズオンを進めるにあたっての前提条件は2つあります。1つ目は「AWSアカウントが作成済みであること」です。2つ目は「インターネットに接続されたAmazon Echoが手元にあること」です。
カスタムスキルを作成しましょう
独自の文言をAmazon Echoで再生させるために、カスタムスキルを作成していきます。
まず、開発者コンソールにログインします。その後、中央にある「スキルの作成」ボタンを押下します。
「新しいスキルを作成」という画面に遷移します。ここでは、スキル名に「ハローワールド」、デフォルトの言語として「日本語」、スキルに追加するモデルとして「カスタム」、スキルのバックエンドリソースとして「Alexa-hosted(Node.js)」を選択します。
選択が完了したら画面上部の「スキルの作成」ボタンを押下します。
次の画面でテンプレートの選択を迫られますが、ここでは「スクラッチで作成」を選択し、「テンプレートで続ける」を押下します。
Alexaスキルのビルドが始まります。ビルドには1〜2分程度時間がかかります。これでスキルの作成自体は完了です。
呼び出し名を変更する
スキルの呼び出し名を変更します。
ビルド直後の画面の右側にある「呼び出し名」を押下します。スキルの呼び出し名に「ハローワールド」と入力して、「モデルを保存」「モデルをビルド」を押下します。
これでスキルの呼び出し名が「ハローワールド」に変更されます。
シミュレーターでテストしましょう
作成したカスタムスキルをシミュレーターを使って動作確認していきます。
スキル詳細画面上部にある「テスト」を選択します。遷移後の画面で、スキルのステータスが確認できます。デフォルトでは「非公開」の状態となっていますので、これを「開発中」に変更します。これでシミュレーターの機能を使えるようになります。
左側の上部にあるインプットボックスに「ハローワールド」と入力します。すると「Welcome, you can say Hello or Help. Which would you like to try?」などと英語でレスポンスが返ってきます。
日本語化を行う
コードを修正して日本語化していきます。
画面上部のコードエディタをクリックすると、コードが表示されます。これが、Alexaスキルのコードです。LaunchRequestHandlerとHelloWorldIntentHandlerを以下の通り修正します。
const LaunchRequestHandler = {
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'LaunchRequest';
},
handle(handlerInput) {
const speakOutput = 'こんにちは。こちらはハローワールドです。';
return handlerInput.responseBuilder
.speak(speakOutput)
.reprompt(speakOutput)
.getResponse();
}
};
const HelloWorldIntentHandler = {
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest'
&& Alexa.getIntentName(handlerInput.requestEnvelope) === 'HelloWorldIntent';
},
handle(handlerInput) {
const speakOutput = 'こんにちは。';
return handlerInput.responseBuilder
.speak(speakOutput)
//.reprompt('add a reprompt if you want to keep the session open for the user to respond')
.getResponse();
}
};
その後、画面上部の「保存」と「デプロイ」ボタンを順番に押下します。
スキルを公開できる状態にする
実機で動作確認するために、スキルを公開可能なステータスに変更します。
開発者コンソールの「認定」タブを押下します。ここで表示される「検証」の画面で、必要な修正項目を画面の内容に従って修正していきます。
修正が完了したら「公開」タブの「公開範囲」にて、ベータテストの登録をしていきます。テスト用のEメールアドレスを追加して、「ベータテストの有効化」を押下します。
Amazon Echoで実行してみる
Amazon Echoの実機を使って動作確認してみます。
Alexaアプリに、開発者コンソールと同じEメールアドレスでログインします。その後、登録済みでない場合は該当のAmazon Echoを登録するようにしてください。
これで準備は完了です。Amazon Echoに「アレクサ、ハローワールドを開いて」と話しかけてみてください。
AWSと連携するには
AWSと連携するにはAWS Lambda関数を作成する必要があります。
AWS Lambdaで関数を作成した後、作成された関数のARNを取得します。そのARNをAlexaの開発者コンソールで登録する必要があります。
開発者コンソールにて、ビルドページ > カスタム > エンドポイントを選択すると、関数のARNを登録することができます。このようにしてAWSとAlexaが連携可能です。
AWSと連携することでLambdaからさらに他のAWSのサービスを呼び出すことができるなど、可能性が広がります。
この記事の監修者・著者

- AWSパートナー/Salesforce認定コンサルティングパートナー 認定企業
-
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。
・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
最新の投稿
- 2024-12-27営業インタビュー情報共有の活性化の中心に。SP企画部の新たな取り組み
- 2024-07-01営業インタビュー最短で当日にご提案可能。 OPE営業の対応が早い3つの理由
- 2024-07-01営業インタビュー研修見学ツアーが高評価!「お客様のOPEに対する期待を高め、継続に貢献できればと思います。」
- 2024-07-01営業インタビュー信頼関係を構築し、エンジニアの長期就業へ

- 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
- すぐに採用したいが、応募がぜんぜん集まらない
オープンアップITエンジニアをご検討ください!
当社のITエンジニア派遣サービスは
- 派遣スピードが速い!(最短即日)
- 4,500名のエンジニアから貴社にマッチした人材を派遣
- 正社員雇用も可能
こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。