音声入力と音声出力に対応する Web ベースのチャットボットを作成する

概要

誰もが知っているように、カスタマー・サービスの改善とコストの削減に対する AI の答えはチャットボットです。チャットボットは、さまざまなユーザー・インターフェースと入力フォーム内で使用できます。その具体的な例として、これまでのコード・パターンでは Slack、Web インターフェース、Facebook Messenger といった異なるメディアを使用してチャットボットを作成する方法を説明してきました。今回のコード・パターンでは同じく Web インターフェースを使用しますが、テキストを入力として使用するのではなく、音声による入力と出力を使用します。このコード・パターンでは Watson Assistant を利用して会話のダイアログを制御し、Watson Speech to Text サービスと Watson Text to Speech サービスを利用して音声の認識と再生を処理します。

説明

これまで、異なるユーザー入力フォームを使用した複数のコード・パターンを作成してきました。具体的には、Speech Sandbox のコード・パターンでは VR ヘッドセットを入力として使用し、Watson Assistant と Slack のコード・パターンではテキストと Slack インターフェースを、Facebook Messenger と Watson のチュートリアルではテキストと Facebook を使用しました。このコード・パターンでは、Watson Text to Speech、Watson Speech to Text、Watson Assistant を利用する Web ベースのアプリケーションを作成する方法を説明します。今回は音声入力とオーディオ出力、そして Web ブラウザーをインターフェースとして使用します。

メインの Web サイトは Query を使用して作成し、API 呼び出しには Python の flask を使用します。また、WebSocket 接続を作成して、さまざまな Watson サービスを呼び出せるようにします。ダイアログにはサンプルの保険関連の会話を使用します。

このコード・パターンを完了すると、以下の方法がわかるようになります。

  • WebSocket 接続を使用して Watson Speech To Text を呼び出す
  • REST API を使用して Watson Text to Speech を呼び出す
  • REST API を使用して Watson Assistant との間でメッセージを送受信する
  • Watson Speech To Text、Watson Text To Speech、Watson Assistant を Web アプリ内で統合する

フロー

フロー

  1. ユーザーがブラウザー上でマイクを選択し、マイクに向かって話します。
  2. WebSocket 接続を使用して、ユーザーの音声が Watson Speech to Text に渡されます。
  3. Watson Speech to Text から返されたテキストが抽出されて、入力として Watson Assistant に送信されます。
  4. Watson Assistant から返されたレスポンスが Watson Text to Speech に渡されます。
  5. オーディオ出力が Web アプリケーションに送信されてユーザーに再生される間、UI には再生中のオーディオと同じテキストが表示されます。

手順

詳細な手順については、README を参照してください。手順の概要は以下のとおりです。

  1. リポジトリーを複製します。
  2. 各サービスのインスタンスを作成し、Web アプリをデプロイします。
  3. Watson Assistant ワークスペースをアップロードします。
  4. 環境変数を構成します。