Amazon Lexを使った音声ボット
今日のAIプラットフォームは、音声やテキストのボット、書き起こしエンジン、センチメント分析エンジンなどの高度な機能を提供している。
これらの機能により、開発者は、注文、予約、問題解決の支援など、多数の機能を提供するボットを構築することができる。
このガイドでは、基本的なAmazon Lexボットのセットアップ、Lexリファレンス接続のセットアップ、Vonage Voice APIアプリケーションのサンプルについて説明します。
最初のセクションでは、Amazon Lexボットの例を設定します。
次に、Lex参照接続を設定します。このLexリファレンス接続では、発信者の音声とLexボットの応答が ウェブソケット.また、LexボットからのトランスクリプションとセンチメントスコアをVoice APIアプリケーションに中継する。
その後、サンプル・アプリケーションを Vonage Voice API を使用して、着信コールを処理し、WebSocketを確立し、発信者とボットのトランスクリプトを受信し、発信者の文章のセンチメント分析スコアを受信します。
下の図は、このサンプルの統合アーキテクチャーの概要を示している。

前提条件
以下の手順で説明するアクションを実行するには、Amazon Web Servicesアカウントが必要です。アカウントをお持ちでない場合は、以下をご利用ください。 ひとつ作る 始める前に
Vonage API アカウント
このガイドを完成させるには Vonage APIアカウント.まだお持ちでない方は、今すぐサインアップして、無料のクレジット・ビルドを始めてください。アカウントをお持ちの方は、APIキーとAPIシークレットを Vonage APIダッシュボード.
このガイドでは、バーチャル電話番号も使用しています。購入するには、「Numbers」>「Buy Numbers」でニーズに合ったものを検索してください。

Amazon Lexボットの設定例
AWSマネジメントコンソールにログインする または AWSアカウントの作成 もしまだ持っていないなら
アマゾンのレックス・サービスを検索し、次の項目をクリックする。 作成 をクリックして、ボットのセットアッププロセスを開始します。

セットアッププロセスの一環として、以下のオプションが表示されます。 自分で作る または サンプルをお試しください。 この例ではサンプル・ボットが必要です。 ScheduleAppointment.

次に、ボットを設定する。
- あらかじめ設定されているボット名のままでも、別の名前を入力してもかまいません。
- ボット名をメモしておく(例
ScheduleAppointment後で必要になる

- 希望の言語を選択
- 選択 はい センチメント分析
- このボットの例では いいえ COPPAについて
設定が完了したら 作成.

ボットの作成プロセスが完了すると、以下のような画面が表示されます。

次に、作成したボットを使用するには、ボットを公開する必要があります。 出版.その後、ボットのエイリアスを選択するよう求められます。エイリアスは、開発用に使用するボットや本番用に使用するボットなど、異なるバージョンのボットに名前を付けるのに適しています。
入力したエイリアス名(例:ステージング)をメモしておく。後で必要になります。

クリック 出版 をもう一度実行すると、サンプルボットのセットアップが完了します。

レックス・レファレンス接続の設定
- をクローンする。 レックス・レファレンス・コネクション リポジトリをGitHubからダウンロードし、readmeに記載されている手順に従ってください。
- レックス参照接続コードを実行する」のセクションで説明したように、デプロイメントタイプのいずれかを選択します。
- をメモしておく。
LEX_REFERENCE_CONNECTION引数xxxx.ngrok.ioあるいはmyserver.mycompany.com:40000後で必要になるからだ。
LexサンプルVoice APIアプリケーションのセットアップ
- をクローンする。 レックスサンプルボイスアプリケーション GitHubのリポジトリにある説明に従ってください。
- サンプルVoice APIアプリケーションの実行」で説明するデプロイメントタイプのいずれかを選択します。
- で説明したように、Voice APIアプリケーションにリンクされている電話番号をメモしてください。 Vonage Voice API アプリケーションの認証情報と電話番号の設定 セクションを参照されたい。
レックスボットと音声で対話
- Voice APIアプリケーションにリンクされた電話番号に電話をかけ、Lexボットと対話します。
- Lexリファレンス接続アプリケーションコンソールとLexサンプルVoice APIアプリケーションコンソールに、トランスクリプションとセンチメント分析結果が表示されます。
レックスボットの改善
リンクされた電話番号を使ってLexボットに電話をかける際、ボットが挨拶を流さないため、接続された電話の相手はいつ話し始めればいいのかわからないことにお気づきかもしれない。
さらに、ボットは、あなたが口頭でアポイントメントを希望することを確認した後、確認メッセージを再生しません。
この2つの問題に対処することで、例のレックス・ボットを改善しよう。
レックス・ボットに挨拶をさせる
AWSコンソールで、Amazon Lexに移動し、Lexボットに移動します。Intentsの隣にある[+]アイコンをクリックします。

次に インテントを作成する.

新しいインテントの名前を入力するよう促されます。名前を決めたら 追加 をクリックして次のステップに進む。

アンダー 発話例:
正確に入力する Good morningこれは現在、LexのサンプルVoice APIアプリケーションで、WebSocketが確立されたときにLexボットに再生されるTTSとしてコード化されています。
新しい発話を追加するには、[+]アイコンをクリックします。

次に 応答 クリック メッセージを追加.

1つ以上のグリーティングメッセージを入力します。メッセージの内容や数は自由です。例えば こんにちは。あるいは もしもし、お電話いただいた理由は何ですか?
入力された各メッセージの[+]アイコンを忘れずにクリックしてください。

希望のメッセージをすべて追加したら 保存の意図.

次に、ボットを再構築する必要があります。 ビルド.ビルドが完了したら 出版 前回と同じように、もう1度ボットを操作してください。
もう一度エイリアスの入力を求められますが、先ほどのサンプルボットと同じエイリアスを使うことができます。

レックス・ボットへのアップデートのテスト
前のステップでアプリケーションにリンクした電話番号に電話をかけると、"Please wait "という音声が流れます。Vonage APIプラットフォームからのこのTTSは、あなたの電話がプラットフォームによって応答されるとすぐに再生されます。
WebSocketがセットアップされると、Vonage APIプラットフォームはLexボットにTTSの「おはよう」を再生する(発信者であるあなたには聞こえない)。
Lexボットは応答メッセージの1つ(Greetingインテントの)を再生します。あなたはそれを電話越しに聞き、Lexボットとの接続を確認します。
そして、アポイントメントを取るように頼むかもしれない(この例のレックス・ボットで)。
予約確認メッセージを再生する
AWSコンソールで、Amazon Lexに移動し、Lexボットに移動します。をクリックします。編集する

アンダー 応答をクリックする。 メッセージを追加.

例えば、1つ以上の応答メッセージを入力する:
日付}の{時間}に{予約タイプ}の予約が確定しました。さようなら!
中括弧内の単語は、このインテントに関連するスロットに対応する。
次に[+]アイコンをクリックして、新しい回答を追加します。

新しいメッセージを確定するには 保存の意図.
最後に、これらの変更をコミットするには ビルド をクリックして、新しい変更でボットを再構築してください。その後、もう一度、新しいバージョンを公開する必要があります。エイリアスは前のステップと同じままでよい。

更新されたレックス・ボットのテスト
この新しい変更を試すには、アカウントにリンクされた電話番号に電話をかけ、Lexボットと対話し、アポイントメントを設定してください。この時、設定した確認メッセージがLexボットによって読み上げられます。