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)を組み合わせたボイスボットの構築方法をご紹介します。
それではMicrosoft公式から公開されている Voice RAG を早速試していきましょう。
Voice RAGの仕組み
Microsoft公式から公開されているVoice RAGリポジトリを使用して、早速構築していきましょう。Voice RAGの基本的な仕組みは以下の通りです:
デバイスのマイクで音声入力を取得
取得した音声をバックエンドにリアルタイムで送信
Azure OpenAI GPT-4o Realtime APIで入力音声をテキストに変換
Azure AI Searchを使用してナレッジベースから関連情報を検索
検索結果があればGPT-4o Realtime APIに送信し、応答音声(とテキスト)を生成
生成された音声をリアルタイムにブラウザから出力
それでは早速Microsoft公式レポジトリからセットアップしていきましょう
GitHub Codespacesでセットアップ
セットアップを進める方法は2つあります。
VSCode Dev Containers(ローカルでDockerを使ってコンテナ内で開発環境を構築する方法。自分のPC上でセットアップが必要)
GitHub Codespaces(GitHubが提供しているクラウド上でコンテナベースの開発環境を提供するサービス)
今回はGitHub Codespacesでのセットアップを解説します。
1. GitHubへアクセス
2. Codespacesの起動
• GitHubリポジトリのページで、画面右上にある「Code」ボタンをクリックします。
• ドロップダウンメニューで「Codespaces」タブを選択し、「Create codespace on main」ボタンをクリックします。
これで、GitHub Codespacesが自動的に起動し、必要な開発環境をセットアップできます。数分間待ちましょう。
3. 開発環境のセットアップ
• Codespacesが立ち上がると、自動的にWebベースのVSCode環境が表示されます。初回起動時は数分かかる場合があるので待ちましょう。
• 開発環境が整うと、リポジトリのファイルが表示されます。
4. ターミナルでプロジェクトを実行
• 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}
実際に質問してみる
それでは、実際に音声でContoso社について質問してみましょう。
データ参照先ファイルとして、GitHubにはサンプル用のドキュメントが格納されています。内容はContoso社の従業員向け英語マニュアルになります。
参照しているデータの中身
デモ動画
実際に日本語で会話をしている動画です。
やや抑揚の不自然さや不正確な発音が含まれますが、Contoso社の社内規定について回答してくれましたね。
RAGを使用して回答する場合は、数秒単位での遅延が発生することも確認できます。
Realtime APIの展望
いかがだったでしょうか。
・日本語の不自然さ
・RAG時の遅延の大きさ
といった弱点はありますが、技術としては今後の期待値の高い注目のサービスかと思います。
価格
2024/10/10時点でのAPI利用原価は1時間あたり約1300円と、従来のボイスボットと比較して10~100倍近く高額になります。
従来型ボイスボットと比較して高額ですが、GPT-4やGPT-4-turboなど、これまでのモデルの値下げペースを考えるとRealtime APIも次第に実用的な価格に落ち込むと予想できます。
想定されるユースケース
・カスタマーサポート
現時点では日本語の不自然さと情報参照速度・精度の観点から、実際に有人オペレータと同様の対応をすることは難しいですが、会話ターン数の少ない一次対応や単純な荷電業務においては効果を発揮するのではないでしょうか。
・語学学習者向けアプリ
実際にOpenAI Dev Dayでは米国シリコンバレー発のスピーキング特化型の英語教育アプリ「Speak」が動画で紹介されました。相手がAIなので、時間や内容を気にすることなく好きなだけ英会話力を鍛えることができます。
最後に
IZAIでは自然な音声インターフェースの社会実装を目指して、コールセンター向けサービスを提供しています。今回のOpenAIのリリースは当社にとっても大きなニュースで、音声インターフェースの実現へ向けた注目すべき一歩と捉えています!
当社にてTwilio API を使用したRealtime APIのCTIへの組み込みも承っておりますので、お気軽にお問い合わせください。
参考になった方、興味のある方はぜひ「いいね」をよろしくお願いします。ではまた!