(レポート) AWS Summit Berlin 2016: Enabling New Voice Experiences with Amazon Alexa and AWS Lambda #AWSSummit
ベルリンの半瀬です。
4月12日のAWS Summit Berlin 2016 セッションレポートをお届けします。
はじめに
Alexaのデモを見てみたかったので、本セッションを聴講しました。
スピーカーは、David Isbtiski氏(AWS Chief Evangelist Alexa and Echo)
セッション内容
公開されたスライドでざっとご紹介いたします。
まずは、echoとAlexaについて
Amazon Echoは据え置き型の音声認識デバイスです。
屋内に配置し、話しかけて色々な命令に対応してくれるもの。
Skills are how you as a developer make alexa smater...
Alexaに担わせる機能は「Alexa Skill」と呼ばれます。
「Skill」によってAlexaをよりスマートに開発できる
「Skill」は顧客に新しい経験を与える
「Skill」はAlexaのためのvoice-firstなアプリである
Alexa skills kit (ASK)
Alexa Skills Kitで様々なSkillを作成/登録します。ASKはAPIツールやコードサンプルを提供しています。
Creating your own Alexa Skills
さて、Alexa Skillを登録していってみましょう。
Alexa Skill には2つのパートがあります。
1. Amazon Developer Portalでのコンフィグ設定
2. リクエストに反応するためのホストサービス設定
Alexa Skills Kit Architecture
Alexa Skill の概要です
Building an Alexa Skill Hosted Service
Hosted ServiceとしてのAlexa Skillの説明
* サービスインターフェースとASKとの密接した関係
* SSL/TLS
* インターネットにアクセス可能であること
* ドメイン名に一致する信頼された証明書の提供
- IntentによるAlexa Skillの定義
- 個々のIntentは2つのフィールドをもつ。"Intent名"と"Slot(このIntentと関連するslotがリスト形式で格納)"である
- Slotsは 様々な内部タイプをもつ。例えば、 "AMAZON.LITERAL","AMAZON.NUMBER"といったもの。あるいは新しく定義してもよい
Implementing Bulit-In Slot Types
ビルトインされた"Slot"タイプ
Incresing Accuracy with Custom Slots
カスタムSlotを新しく定義し、アクションの精度を向上させる
Building on Alexa Skill Hosted Service (2)
Hosted ServiceとしてのAlexa Skillの説明(2)
Intentと、Intentを呼び出すAlexaへの発声との間のマッピングは、タブ区切りのテキストで提供されています。発声音はシンプルなもの。
The Amazon Alexa Service WILL POST EVENTS
主なPOST EVENT
* LaunchRequest: onLaunch()にマッピング
* IntentRequest: onIntent()にマッピング
* SessionEndedRequest: OnSessionEnded()にマッピング
Handling Amazon Alexa Service REQUESTS
Alexaのリクエストの扱い
* 443ポートを経由してJSONパースをPOSTリクエストする必要があります
* セッション変数をチェックし新しいセッションがスタートされたのか、既存セッションをリクエストしたのかを把握する必要がある
* リクエストは typeとrequestIdとtimestampからなる
* requestIdは LaunchRequest, IntentRequest あるいは SessionEndedRequest に直接マッピングされる
Increasomg Acciracy with Built-In Intents
ビルトインIntentによって、アクションの精度を向上させる
* 全てのAlexa SkillとAlexaのコア機能から随時コールされる
* いくつかのビルトインIntent はIntentがKillされた場合に備える
* CancelIntent, HelpIntent, YesIntent, NoIntent, RepeatIntent, StartOverIntent, StopIntent
Changeing Alexa's inflection with SSML
Alexaはピリオドなどの句読点の後には間をおき、疑問文にも対応します。
* Speech Synthesis Markup Language (SSML) を利用して、テキストを合成音声の生成に変換する
* サポートされるタグは "speak", "p", "s", "say-as", "phoneme", "w", "audio"
※ 参考引用
Existing Customer with ACCOUNT LINKING
Testing your Skill Service Simulator
JSON形式のリクエストで、サービスシミュレータでのテストを行う。
Lambdaユニットとの結合テストをクライアントおよび、Alexaエンドポイントで確認する。
Testing your Skill Voice simulator
ボイスシミュレータでSSMLを飛ばし、Alexaに反応させるテストを行う。
Demoをして終了
スライドは半分くらい残っていましたが、だいたい以上までが設定のキモということで、
話の内容をデモで確認して終了。Alexaが正しく動いた時は会場から拍手がおこりました。
※ 補足: カスタムSkillの作成方法はコチラ
最後に
デモの流れはコチラにある内容と同じ
当ブログでもご紹介がされています。
AWS Lambdaを使ってAmazon Echoに機能追加してみた - Developers.IO
私も時間を見つけて遊んでみようかと思います。(いい感じにしてオフィスに置けるといいなあ)
それではー。