背景
- 以下の動機から、Alexaを使い始めようと考えたため。
- Amazon Echo が日本で発売されるらしい。
- Custom Skillというので一儲けできるらしい。
- Lexで作った対話アプリをAlexaに移行しちゃえばいいのでは。
Alexaとは
- AlexaはAmazonが開発したAIアシスタント。
音声交流や音楽再生、予定表リストの作成、アラームの設定、ポッドキャストのストリーミング、オーディオブックの再生と天気や交通情報、リアルタイム情報などの提供ができる。
2017年10月時点では、英語とドイツ語のみ対応。日本語も年内対応予定。
Amazon Echo等、Alexa対応デバイスにSkill(アプリケーション)をセットし、音声入力によって起動することで動作する。
Lexとは
- Amazon Lex は、音声やテキストを使用して、任意のアプリケーションに対話型インターフェイスを構築するAWS上のサービス。SDKを用いて任意のアプリケーションで動作する。
- 2017/10末時点では、日本語対応はしていない。
機能比較
- 大きく違うのはアプリのインストール。AlexaはechoなどのAlexa対応デバイスにSkillをインストールすることで利用可能になるが、Lexは独自でアプリケーションを組む必要がある。(AlexaもSDKを提供しており、アプリケーションを組むことは可能)
- ただしLexについても、Facebook MessangerとSlack用のChatbotに関してはマネジメントコンソール内で作成できる。
- よって、LexとAlexaでは基本的な仕組みは同じものの、用途が異なる。
- また、Alexa対応デバイスを利用する場合、Alexaに対し特定の起動コマンド("Alexa,ask ◯◯")を発話することでSkillが起動する。
- Amazon Echoの2017年内の日本語対応を発表しているため、独自Skillも日本語版が年内に作成できるようになるはずだが、Lexに関しては明確な発表は今のところない。
- Alexa SkillはAmazonアカウントに紐付いており、一方でビジネスロジックはAWS Lambdaを利用するため、CustomSkillを使うならAmazonとAWSの両方のアカウントを持つ必要がある。
- AlexaのビジネスロジックもLexのビジネスロジックもLambdaだが、Lambdaのインターフェースは異なるので、同一のLambdaFunctionを共有することはできない。よって同一の対話アプリをLexとAlexaで組むというのは難しい。また、Lexで作ったLambdaFunctionをAlexaに移行するにはソースコードの修正が必要。
機能 | Alexa | Lex |
---|---|---|
アプリ起動方法 | "Alexa, ask ◯◯(Skill名) XX(Utterance)" と発話 | 対話アプリ内でSDK、APIのパラメータに指定 |
アプリインストール方法 | Alexa対応デバイスにインストール | 独自アプリを作成。(facebook Messanger,Slack用チャットボットはLex内で作成可能) |
想定するアプリケーションの種類 | Amazon Echo, および同様のアシスタント | チャットボットアプリ |
対応言語 | 英語、ドイツ語、(もうすぐ)日本語 | 英語(日本語対応予定は不明) |
アプリ作成アカウント | Amazonアカウント(Lambdaを動かすのにAWSアカウントが別途必要) | AWSアカウント |
ビジネスロジック | AWS Lambda | AWS Lambda |
結論
- Alexaは音声アシスタントとして、Lexはチャットボットとして使うのが正当パターン。
- それ以外の使い方ができないわけではない。
- Lexで作った対話システムをAlexaに移行するにはそれなりに移行作業が必要。
用語
- ほとんど同じ。
機能 | Alexa | Lex |
---|---|---|
アプリケーション | Skill | Bots |
(アプリケーションの持つ)機能 | Intent | Intent |
意図理解のための発話サンプル | Utterance | Utterance |
変数 | Slot | Slot |