Amazon Lexを使った音声ボット

今日のAIプラットフォームは、音声やテキストのボット、書き起こしエンジン、センチメント分析エンジンなどの高度な機能を提供している。

これらの機能により、開発者は、注文、予約、問題解決の支援など、多数の機能を提供するボットを構築することができる。

このガイドでは、基本的なAmazon Lexボットのセットアップ、Lexリファレンス接続のセットアップ、Vonage Voice APIアプリケーションのサンプルについて説明します。

最初のセクションでは、Amazon Lexボットの例を設定します。

次に、Lex参照接続を設定します。このLexリファレンス接続では、発信者の音声とLexボットの応答が ウェブソケット.また、LexボットからのトランスクリプションとセンチメントスコアをVoice APIアプリケーションに中継する。

その後、サンプル・アプリケーションを Vonage Voice API を使用して、着信コールを処理し、WebSocketを確立し、発信者とボットのトランスクリプトを受信し、発信者の文章のセンチメント分析スコアを受信します。

下の図は、このサンプルの統合アーキテクチャーの概要を示している。

A diagram that outlines how Amazon Lex and the Vonage Voice API work together to create a voice bot

前提条件

以下の手順で説明するアクションを実行するには、Amazon Web Servicesアカウントが必要です。アカウントをお持ちでない場合は、以下をご利用ください。 ひとつ作る 始める前に

Vonage API アカウント

このガイドを完成させるには Vonage APIアカウント.まだお持ちでない方は、今すぐサインアップして、無料のクレジット・ビルドを始めてください。アカウントをお持ちの方は、APIキーとAPIシークレットを Vonage APIダッシュボード.

このガイドでは、バーチャル電話番号も使用しています。購入するには、「Numbers」>「Buy Numbers」でニーズに合ったものを検索してください。

Start developing in minutes with free credits on us. No credit card required!

Amazon Lexボットの設定例

AWSマネジメントコンソールにログインする または AWSアカウントの作成 もしまだ持っていないなら

アマゾンのレックス・サービスを検索し、次の項目をクリックする。 作成 をクリックして、ボットのセットアッププロセスを開始します。

The Amazon Lex service dashboard

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

The Amazon Lex Bot Creation Dashboard

次に、ボットを設定する。

  • あらかじめ設定されているボット名のままでも、別の名前を入力してもかまいません。
  • ボット名をメモしておく(例 ScheduleAppointment後で必要になる
The Lex bot setup screen from Amazon Web Services
  • 希望の言語を選択
  • 選択 はい センチメント分析
  • このボットの例では いいえ COPPAについて

設定が完了したら 作成.

Final steps in the bot setup process

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

The bot has been created successfully

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

入力したエイリアス名(例:ステージング)をメモしておく。後で必要になります。

Adding an alias name to your Amazon Lex Bot

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

Notification that the bot has been published

レックス・レファレンス接続の設定

  • をクローンする。 レックス・レファレンス・コネクション リポジトリを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の隣にある[+]アイコンをクリックします。

The Lex Dashboard

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

Creating an intent for a Lex bot

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

Entering a name for the intent

アンダー 発話例:

正確に入力する Good morningこれは現在、LexのサンプルVoice APIアプリケーションで、WebSocketが確立されたときにLexボットに再生されるTTSとしてコード化されています。

新しい発話を追加するには、[+]アイコンをクリックします。

Adding new utterances to a Lex bot

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

Adding a new message to the bot responder

1つ以上のグリーティングメッセージを入力します。メッセージの内容や数は自由です。例えば こんにちは。あるいは もしもし、お電話いただいた理由は何ですか?

入力された各メッセージの[+]アイコンを忘れずにクリックしてください。

Adding a message response to a Lex bot

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

Listing message responses

次に、ボットを再構築する必要があります。 ビルド.ビルドが完了したら 出版 前回と同じように、もう1度ボットを操作してください。

もう一度エイリアスの入力を求められますが、先ほどのサンプルボットと同じエイリアスを使うことができます。

Entering 'staging' as the alias for the Lex bot

レックス・ボットへのアップデートのテスト

前のステップでアプリケーションにリンクした電話番号に電話をかけると、"Please wait "という音声が流れます。Vonage APIプラットフォームからのこのTTSは、あなたの電話がプラットフォームによって応答されるとすぐに再生されます。

WebSocketがセットアップされると、Vonage APIプラットフォームはLexボットにTTSの「おはよう」を再生する(発信者であるあなたには聞こえない)。

Lexボットは応答メッセージの1つ(Greetingインテントの)を再生します。あなたはそれを電話越しに聞き、Lexボットとの接続を確認します。

そして、アポイントメントを取るように頼むかもしれない(この例のレックス・ボットで)。

予約確認メッセージを再生する

AWSコンソールで、Amazon Lexに移動し、Lexボットに移動します。をクリックします。編集する

Editing the Lex bot

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

Adding a new message to the Lex bot

例えば、1つ以上の応答メッセージを入力する:

日付}の{時間}に{予約タイプ}の予約が確定しました。さようなら!

中括弧内の単語は、このインテントに関連するスロットに対応する。

次に[+]アイコンをクリックして、新しい回答を追加します。

Adding a new message to the Lex bot

新しいメッセージを確定するには 保存の意図.

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

A successfully published bot

更新されたレックス・ボットのテスト

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