LoginSignup
45
40

More than 5 years have passed since last update.

Alexaスキル 入門 & VUI 設計

Last updated at Posted at 2018-03-06
1 / 71

1. はじめに


自己紹介

  • 所属
    独立系SIer 先端技術事業部(2000年入社)

  • 業務
    Alexaスキル開発&Googleアシスタント開発

  • TAKAHIRO NISHIZONO
    @zono_0


profile image

  • アイコンかえました。(お知らせ)

83260.png


個人で開発したAlexaスキルの紹介

スクリーンショット (198).png


個人で開発したGoogleHomeアプリ

スクリーンショット (201).png


このスライドを見てできること

  • Amazon Echoが理解できる。
  • Amazon Alexaが理解できる。
  • Alexaスキル開発の基本が理解できる。
  • AlexaスキルのVUI設計が理解できる。

VUI:ボイスユーザインターフェース
→いけてるトークのこと。


2. Amazon Echoについて


Amazon Echoとは

  • Amazon が開発したスマートスピーカ。
  • Amazon が所有する人工知能「Alexa(アレクサ)」を利用し、音声を認識して色々な操作を事項できる「音声認識ユーザインターフェース」。

Amazon Echo & Echo Dot

Echo and Echo Dot.jpg


Amazon Echoの使い方

  • Amazon Echoに対して話しかけるだけ。
トーク(サンプル)
ユーザー:「アレクサ、今日の天気は?」
アレクサ:「〇〇の現在の天気は晴れで、摂氏20度です。」

Amazon Echoの特徴

  • 音声発話に対するレスポンスは1秒以内のこだわり。(byジェフ・ベゾフ氏)
  • 7つのマイクで、音声を正確にひろうことができる。
  • 未来のUIはタッチから音声の時代になる?
  • スマートホームハブの役割を果たす。

Amazon Echoで出来ること

  • 天気、ニュース、スポーツの読み上げ
  • 音楽、ラジオの再生
  • ショッピング
  • デバイスの操作(ライト、テレビ)
  • カスタムスキルの実行(音声アプリ
  • タイマー(神機能!)

Echo 姉妹製品

  • Amazon Echo Dot 小型($50)
  • Amazon Echo Spot モニタ付き($130)
  • Amazon Tap 屋外用($139.99)
  • Amazon Echo Look カメラ付き($199)
  • Amazon Echo Show モニタ付き($230)

Echo 姉妹製品

スクリーンショット (204).png


類似製品

  • Google Home($130)
  • LINE WAVE(14,000円)
  • Apple HomePod($349)
  • Microsoft Harman Kardon Invoke($199.95)

3. Amazon Alexaについて


Amazon Alexaとは

  • Amazonが提供するクラウドベースの音声認識サービス
  • 音声Requestは、Alexaに送信され、テキスト変換後、Alexa Skill(AWS Lambda)で処理され、Response結果を音声で応答します。

音声処理の流れ

スクリーンショット (25).png


4. Alexaスキルについて


Alexaスキルとは

  • Alexaが音声から変換したテキスト情報(JSON Request)を処理して応答(JSON Response)する音声プログラム
  • 一般的に音声プログラムは、AWS Lambda Functionに実装される。

Alexaスキルストアとは

  • Alexaスキルの入手場所。
  • スマホのAlexaアプリからAlexaスキルを入手。
  • Alexaスキルは、スキルを「有効」にすることで利用できるようになる。
  • Alexaスキルには、「アカウントリンク」と呼ばれる個人情報登録が必要なものもある。

5. Alexaスキルの開発について


開発対象

  • 開発対象は、AlexaスキルとLambda部分

スクリーンショット (24).png


6. Amazon Developer Portalについて


Amazon Developer Portalでの開発

  • Alexa Skills Kit(ASK)
    Alexaスキル(音声アプリ)が作れます。

  • Alexa Voice Service(AVS)
    →独自のスマートスピーカが作れます。
    →Raspberry PiでAVSを利用するとか。


Alexa Skills Kit(ASK)とは

主に3種類のAlexaスキルが作成できる。
- Custom Skills(一般的な音声スキル)
- Smart Home Skills(家電操作のスキル)
- Flash Brifing Skills(ニュース読み上げスキル)


参考:Amazon Developer Portal

  • 開発画面イメージ

スクリーンショット (207).png


7. AWS Lambdaについて


AWS Lambdaでの開発

  • AWS Lambdaで、音声プログラムを開発。
  • Node.js(Javascript)、Pythonが利用可。
  • Lambda関数には、Amazon リソースネーム(ARN)が付与され、一意に識別される。
  • Amazon Developer Portal側でエンドポイントにARNを設定することで、Alexaスキルから、どのLambda関数を呼び出すかを設定。

エンドポイントとARN

スクリーンショット (27).png


参考:AWS Lambda

  • 開発画面イメージ

スクリーンショット (206).png


8. テスト方法について


Alexaスキルのテスト方法とは

  • Echoデバイス実機テスト
  • Amazon Developer Portal内のテストシミュレータ(優秀、実機がなくてもスキル申請までもっていける)
  • Reverb(スマホiOSで日本語がつかえたー!)
  • Echosim.io(今はもう使わないかも)

テストツールの紹介

  • ADP内のテストシミュレータ(神ツール)

スクリーンショット (20).png


テストツールの紹介

  • ADP内のサービスシミュレータ(Intent用)

スクリーンショット (19).png


テストツールの紹介

スクリーンショット (22).png


テストツールの紹介

  • Reverb(iOS、Androidアプリ。iOS版は日本語Alexaが使えておすすめ。)

スクリーンショット (23).png


9. 必要な知識について


スキル呼び出し

スキル呼び出し
ユーザー:「アレクサ、ピカチュウトーク を 開いて。」
           -------  --------------    ------
          <wake word> <skill name>   <launch phrase>
  • 起動フレーズ(launch)は、起動して。実行して。スタートして。なども使える。
  • 接続詞「で」の使用は原則禁止らしい。

スロット(会話中のキーワード

スロット
アレクサ:「ご利用の日付と時間をお知らせください。」
ユーザー:「<今日>の<15>時。」
           -----   --
           <slot> <slot>
  • <今日>は、AMAZON.DATE スロット
  • <15>は、AMAZON.NUMBER スロット

インテント(ユーザのお願いごと

インテント
ユーザー:「ニュースを聞かせて。」
           -----------------
           <Intent>:例えば、NewsIntent

ユーザー:「運勢を占って。」
           -----------
           <Intent>:例えば、FortuneIntent


インテントとスロット

インテント&スロット
ユーザー:「<今日>のニュースを聞かせて。」
           -----  -----------------
           <slot>  <Intent>:NewsIntent

  • NewsIntentに、AMAZON.DATEスロットが、ひもづく関係。

サンプル発話(呼び出しフレーズ)

サンプル発話
ユーザー:「ニュースを聞かせて。」
ユーザー:「ニュースを知りたい。」
ユーザー:「ニュースを読んで。」
ユーザー:「ニュース!!」
           全て、NewsIntent の呼び出しフレーズとなる。

  • 人が言いそうな発話パターンを洗い出し、あらかじめサンプル発話として登録する。

10. 開発用語


開発用語

  • Skill name(スキル名)
  • Invocation Name(スキル呼び出し名
  • Intent Schema(インテントの定義)
  • Intent(インテント:人間の「意図」)
  • Slot(スロット:変数みたいなもの)
  • Sample Utterances(サンプル発話:インテント呼び出しフレーズ)
  • Endpoint(エンドポイント Lambda のARN)

11. ビルトイン(標準機能)


便利なビルトインインテント

サンプル発話登録不要、標準で使える、ビルトインインテント

  • AMAZON.YesIntent ・・・「はい。/オッケー。/いいよ。」
  • AMAZON.NoIntent ・・・「いいえ。/ノー。」

必須のビルトインインテント

Amazon様仕様により必須となるインテント

  • AMAZON.CancelIntent ・・・「キャンセル。/取り消し。/やっぱりやめる。」
  • AMAZON.StopIntent ・・・「ストップ。/止めて。/中止。」
  • AMAZON.HelpIntent ・・・「ヘルプ。/どうすればいいの。/使い方を教えて。」

便利なビルトインスロット

スロット登録不要、標準で使える、ビルトインスロット

  • AMAZON.DATE、AMAZON.TIME、AMAZON.NUMBERなど

→Amazonが用意したスロット登録済み用語
→音声認識精度が高く、Good!


12. リクエストとインテント


リクエストの種類

基本のリクエストは、3つ。

  • 'LaunchRequest' ・・・インテント無し起動
  • 'IntentRequest' ・・・インテント指定発話
  • 'SessionEndedRequest' ・・・予期せぬ終了

IntentRequestの種類

IntentRequestには、子供Intentがいる。

  • 必須インテント3兄弟(CancelIntent、StopIntent、HelpIntent)
  • はい/いいえ姉妹(YesIntent、NoIntent)
  • ユーザ定義(NewsIntent、FortuneIntent)

13. VUI音声設計について


VUI設計:トークシナリオ(例)

トークシナリオ(例)
ユーザー:「アレクサ、<新幹線予約>を開いて。」
アレクサ:「新幹線予約へようこそ、このスキルでは新幹線
      チケットをご購入いただけます。ご利用の日付
      と時間をお知らせください。」
ユーザー:「<今日>の<15>時。」
アレクサ:「<〇月〇日>、<15>時ですね、自由席か指定席の
      どちらになさいますか?」
ユーザー:「<自由席>でお願い。」
アレクサ:「<自由席>ですね、購入しますか?」
ユーザー:「<はい>。」
アレクサ:「チケット購入を確定しました、ご利用ありがとうございます。」


VUI設計:スキル呼び出し名

ユーザ発話から、スキル呼び出し名 を決定。

VUI設計解説
ユーザー:「アレクサ、<新幹線予約>を開いて。」
                     ---------
                     <スキル呼び出し名>

                     インテント指定なしの初回起動は、
                     'LaunchRequest' が呼ばれるっぺ。

VUI設計:Intent & Slot

ユーザ発話から、Intent と Slot を抽出する。

VUI設計解説
ユーザー:「<今日>の<15>時。」
            ----   ---
            <slot> <slot>
            AMAZON.DATE と AMAZON.NUMBERが使えるっぺ。

            Intent名は、DateAndTimeIntent にすっぺ!
            サンプル発話は、以下でいけそうだべ。
            DateAndTimeIntent {DATE} の {TIME} 時 

VUI設計:Intent & Slot

ユーザ発話から、Intent と Slot を抽出する。

VUI設計解説
ユーザー:「<自由席>でお願い。」
            -----
            <slot>
            ビルトインは使えない、カスタムスロットだべ。
            LIST_OF_SEATスロットを定義して、
            値に「自由席」と「指定席」を入れるべ。
            Intent名は、SeatIntent にすっぺ!
            サンプル発話は、以下でいけそうだべ。
            SeatIntent {SEAT} でお願い 

VUI設計:Intent & Slot

ユーザ発話から、Intent と Slot を抽出する。

VUI設計解説
ユーザー:「<はい>。」
            ----
            これはAMAZON.YesIntentだべ。
            Slot定義は不要だべさ。

            サンプル発話には、以下もついかすっぺ。
            AMAZON.YesIntent 購入します 

14. 設計例


IntentSchema.jsonの設計例

IntentSchema.json
{
  "intents": [
    {
      "slots": [
        {
          "name": "DATE",
          "type": "AMAZON.DATE"
        },
        {
          "name": "TIME",
          "type": "AMAZON.TIME"
        }
      ],
      "intent": "DateAndTimeIntent"
    },
    {
      "slots": [
        {
          "name": "SEAT",
          "type": "LIST_OF_SEAT"
        },
      ],
      "intent": "SeatIntent"
    },
    {
      "intent": "AMAZON.YesIntent"
    },
    {
      "intent": "AMAZON.NoIntent"
    },
    {
      "intent": "AMAZON.CancelIntent"
    },
    {
      "intent": "AMAZON.StopIntent"
    },
    {
      "intent": "AMAZON.HelpIntent"
    }
  ]
}

カスタムスロットの設計例

LIST_OF_SEAT.txt
自由席
指定席

サンプル発話の設計例

ユーザ発話しそうな可能性を、全て列挙する。

Utterances.txt
DateAndTimeIntent {DATE} の {TIME} 時 
SeatIntent {SEAT} でお願い
AMAZON.YesIntent 購入します  
DateAndTimeIntent {DATE}
DateAndTimeIntent {TIME}
DateAndTimeIntent {TIME} 時 {DATE} で 
AMAZON.HelpIntent 使い方を教えて
AMAZON.HelpIntent 使い方教えて
AMAZON.HelpIntent 使い方

15. おまけ


スマートスピーカをいますぐ体験

  • iOS(iPhone、iPad)の方は、アプリ「Reverb」と「Alexaスキル」をインストールすると、日本語Alexaが使えます。
  • iOS & Android(スマホ、タブレット)の方は、アプリ「Googleアシスタント」をインストールすると、日本語Googleアシスタントが使えます。

16. まとめ


Alexaスキル開発でおこなうこと

  • Amazon Developer Portalを用いて、Alexaスキルの設定&登録をおこなう。
  • スキル名、スキル呼び出し名、インテント、スロット、サンプル発話等を定義。
  • AWS Lambdaを用いて、定義に沿った音声プログラムを作成する。

さらなる高みへ

  • Amazon Developer PortalのVUI設計としてはこれで十分。
  • ただし、Lambda Function側では、状態遷移(state)を制御しないと、真のトーク上手にはなれない。。。
  • まずは、状態遷移が不要なショートトークのAlexaスキルで、トークの極意を磨くのじゃ!

17. おわりに


おわりに

いかがでしたでしょうか?
いけてるVUI設計が、できそうですか?

いけてなくてもいいので、
まずは、Alexaスキル作り、してみましょう!!


ご視聴ありがとうございました。

45
40
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
45
40