Open4
OpenAI Realtime API の調査
先日の OpenAI DevDay で発表された Realtime API について,自分用に調査した内容です.Realtime API の概要やその他発表された機能の概要については,本リンクや本記事で日本語でよくまとめられていました.
リアルタイムで低遅延な音声会話可能な API である Realtime API をリリース
- Realtime API で利用可能な新しい対応モデルとして
gpt-4o-realtime-preview
が OpenAI [1] および Azure [2] で利用可能になりました.- 入出力には音声とテキストが対応.
- Function Calling にも対応.
- API Reference は [3] で公開されてますが,本日時点(2024/10/04)では JavaScript の実装しか公開されてないです.
- Azure では,East US 2 (
eastus2
) および Sweden Central (swedencentral
) のみで利用可能です. - 仕組みとしては,内部的に WebSocket 接続を行うことで,クライアントとサーバーとの双方向のリアルタイム通信を実現しています [4] .Realtime API はステートフルなので,セッションが確立している限り会話内容は保持されます [3].
- OpenAI におけるエンドポイントは以下 [3].
wss://api.openai.com/v1/realtime
- Azure OpenAI におけるエンドポイントは以下(例)[4].
wss://my-eastus2-openai-resource.openai.azure.com/openai/realtime?api-version=2024-10-01-preview&deployment=gpt-4o-realtime-preview
- AOAIでのサンプルコードや AOAI Studio での利用手順は [4] [5]で公開されておりますが,ソリューションに組み込む場合,かなり複雑になりそうです.
- サンプルコードでは,JavaScript による簡易アプリケーションと,Python による API 実行サンプルが含まれています.
- Python のサンプルコードでは,予め準備した mp3 や wav などの音源データを入力とし,出力として音源データ(wav)とテキストデータ(発話内容)が保存されます.
- 私の方でも動作検証しましたが,本 API のサービスへの組み込みは難易度が高い印象でした.特に,非同期処理の実装や WebSocket 接続による API の利用が難しいと感じました.(ここらへんは WebRTC などのノウハウが無いと厳しそうです.)
- 本 API では,テキストトークンと音声トークンの両方を使用しており,価格は以下です.(音声が高いです)
- テキスト入力:$5/100 万トークン,テキスト出力:$20/100 万トークン
- 音声入力:$100/100 万トークン,音声出力:$200/100 万トークン
従来の Chat Completions API でも,音声の入出力が可能に(数週間以内に利用可能になる)
- Chat Completions API で利用可能な新しい対応モデルとして
gpt-4o-audio-preview
が数週間以内にリリースされるらしいです [1]. -
gpt-4o-audio-preview
では,テキストまたは音声を入力し,テキスト または 音声(またはその両方)を出力できます. - 料金については Realtime API と同様のようです.
References
1. https://openai.com/index/introducing-the-realtime-api/
2. https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models#gpt-4o-audio
3. https://platform.openai.com/docs/guides/realtime/overview
4. https://github.com/Azure-Samples/aoai-realtime-audio-sdk
5. https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/audio-real-time
OpenAIの方でもRealtime APIが利用できるようになったようです.
わかりやすいAPIの解説記事
Realtime APIとLangChainによる音声対話検索エージェントを試す良記事
OpenAI純正のRealtime API を利用したサンプルコード(デモ)は以下