見出し画像

Azure OpenAIの「Realtime API」で社内情報RAGボイスボットを作ってみた

こんにちは、IZAIエンジニアチームです。今回はコールセンター自動化や語学学習アプリなど、幅広い用途での実用が期待されているOpenAIのRealtime APIを使用して、社内情報について回答するボイスボットの開発方法を紹介します。


Realtime APIとは


2024年10月1日に開催されたOpenAI DevDay 2024で高速で音声応答できる高速・低遅延のボイスボット「Realtime API」が発表されました。
スマートフォン版ChatGPTアプリに搭載されているAdvanced Voice Modeの開発者向けサービスになります。

主な特徴

  • 0.3秒程度で高速自然な音声応答が可能

  • テキスト生成と音声生成をDecoderで同時に行うので感情や話速を反映させた音声生成が可能

  • Azure AI Search との接続でRAG構築可能←本記事

  • Twilioなど音声基盤APIとの接続でアプリケーションへの組み込みが可能

Voice RAGを使う

今回は、このRealtimeAPIとRAG(Retrieval Augmented Generation)構築で広く使用されているサービスであるAzure AI Search (旧Cognitive Search)を組み合わせたボイスボットの構築方法をご紹介します。

OpenAI DevDay 2024 Realtime API セッション

それではMicrosoft公式から公開されている Voice RAG を早速試していきましょう。

Voice RAGの仕組み


引用: https://github.com/Azure-Samples/aisearch-openai-rag-audio

Microsoft公式から公開されているVoice RAGリポジトリを使用して、早速構築していきましょう。Voice RAGの基本的な仕組みは以下の通りです:

  1. デバイスのマイクで音声入力を取得

  2. 取得した音声をバックエンドにリアルタイムで送信

  3. Azure OpenAI GPT-4o Realtime APIで入力音声をテキストに変換

  4. Azure AI Searchを使用してナレッジベースから関連情報を検索

  5. 検索結果があればGPT-4o Realtime APIに送信し、応答音声(とテキスト)を生成

  6. 生成された音声をリアルタイムにブラウザから出力

それでは早速Microsoft公式レポジトリからセットアップしていきましょう

GitHub Codespacesでセットアップ


セットアップを進める方法は2つあります。

  • VSCode Dev Containers(ローカルでDockerを使ってコンテナ内で開発環境を構築する方法。自分のPC上でセットアップが必要)

  • GitHub Codespaces(GitHubが提供しているクラウド上でコンテナベースの開発環境を提供するサービス)

今回はGitHub Codespacesでのセットアップを解説します。

1. GitHubへアクセス

Voice RAG GitHubリポジトリを開く

2. Codespacesの起動

• GitHubリポジトリのページで、画面右上にある「Code」ボタンをクリックします。
• ドロップダウンメニューで「Codespaces」タブを選択し、「Create codespace on main」ボタンをクリックします。
これで、GitHub Codespacesが自動的に起動し、必要な開発環境をセットアップできます。数分間待ちましょう。

3. 開発環境のセットアップ

• Codespacesが立ち上がると、自動的にWebベースのVSCode環境が表示されます。初回起動時は数分かかる場合があるので待ちましょう。
• 開発環境が整うと、リポジトリのファイルが表示されます。

4. ターミナルでプロジェクトを実行

(注意)もしAzure アカウントが未作成の場合はこちらから作成してください。初めての方は無料枠が使用できます。
すでにお持ちの方は先に進んでください。

• CodespacesのVSCode上で「ターミナル」を開き、以下を実行してください。

# Azure アカウントにログインします。
azd auth login --use-device-code
# 新しい azd 環境を作成します。
azd env new
# 新しい azd 環境を作成します。各リソースのリージョンを選択して
azd up

Azureへの環境作成が完了したらスタート用のShellスクリプトを実行します。
本デモが終了したら必ず azd down を実行してください。AI Searchの料金が毎月請求されてしまいます

./scripts/start.sh

5. ブラウザでアプリを確認

アプリケーションが起動したら、表示されたURLを押下してブラウザを開きましょう。

 (✓) Done: Deploying service backend
  - Endpoint: https://{GitHub Code Spaceと接続されたエンドポイントのベースURL}
ブラウザからアクセスできます


(注意)AI Searchは削除するまで課金が継続されます。
以下の
コマンドで今回作成したリソースを一括で削除することができます。
$ azd down
デモンストレーションが終了したら必ず実行してください。

実際に質問してみる


それでは、実際に音声でContoso社について質問してみましょう。
データ参照先ファイルとして、GitHubにはサンプル用のドキュメントが格納されています。内容はContoso社の従業員向け英語マニュアルになります。

ちなみに「Contoso」とは架空の会社名で、Microsoft がサンプルやデモとしてよく使用しています。

参照しているデータの中身

ここに格納されているファイルを参照して回答します
中身の例(従業員向けハンドブック)

デモ動画


実際に日本語で会話をしている動画です。

やや抑揚の不自然さや不正確な発音が含まれますが、Contoso社の社内規定について回答してくれましたね。
RAGを使用して回答する場合は、数秒単位での遅延が発生することも確認できます。

Realtime APIの展望


いかがだったでしょうか。
・日本語の不自然さ
・RAG時の遅延の大きさ
といった弱点はありますが、技術としては今後の期待値の高い注目のサービスかと思います。

価格

2024/10/10時点でのAPI利用原価は1時間あたり約1300円と、従来のボイスボットと比較して10~100倍近く高額になります。

<Realtime API利用料>
・音声入力:$0.06/分
・音声出力:$0.24/分

<1時間あたりの試算>
入力30分、出力30分と仮定すると1時間 9.0ドル = 日本円で約1,300円

従来型ボイスボットと比較して高額ですが、GPT-4やGPT-4-turboなど、これまでのモデルの値下げペースを考えるとRealtime APIも次第に実用的な価格に落ち込むと予想できます。

想定されるユースケース

・カスタマーサポート
現時点では日本語の不自然さと情報参照速度・精度の観点から、実際に有人オペレータと同様の対応をすることは難しいですが、会話ターン数の少ない一次対応や単純な荷電業務においては効果を発揮するのではないでしょうか。

・語学学習者向けアプリ
実際にOpenAI Dev Dayでは米国シリコンバレー発のスピーキング特化型の英語教育アプリ「Speak」が動画で紹介されました。相手がAIなので、時間や内容を気にすることなく好きなだけ英会話力を鍛えることができます。



最後に


IZAIでは自然な音声インターフェースの社会実装を目指して、コールセンター向けサービスを提供しています。今回のOpenAIのリリースは当社にとっても大きなニュースで、音声インターフェースの実現へ向けた注目すべき一歩と捉えています!
当社にてTwilio API を使用したRealtime APIのCTIへの組み込みも承っておりますので、お気軽にお問い合わせください。

参考になった方、興味のある方はぜひ「いいね」をよろしくお願いします。ではまた!



いいなと思ったら応援しよう!

この記事が参加している募集