UStackUStack
OpenAI Realtime API icon

OpenAI Realtime API

使用 OpenAI Realtime API 建立低延遲、多模態語音與即時音訊體驗,支援瀏覽器語音代理與 WebSocket 即時轉錄。

OpenAI Realtime API

OpenAI Realtime API 是什麼?

OpenAI Realtime API 提供應用程式與原生支援語音對語音互動的模型之間的低延遲通訊。它也支援多模態輸入—音訊、圖像與文字—以及多模態輸出—音訊與文字—適合互動式語音體驗。

除了語音代理,Realtime API 可用於透過 WebSocket 連線串流音訊進行即時音訊轉錄。文件也強調瀏覽器語音代理工作流程的推薦起點(如 TypeScript 的 Agents SDK)。

主要功能

  • 低延遲語音對語音互動:設計用於即時對話音訊體驗,而非僅限請求/回應。
  • 多模態輸入 (音訊、圖像、文字):讓單一工作階段依應用流程接受不同輸入類型。
  • 多模態輸出 (音訊與文字):支援在互動中回傳音訊、文字或兩者。
  • 多種連線方式:選擇 WebRTC(瀏覽器/客戶端)、WebSocket(中間層伺服器端,具一致低延遲)或 SIP(VoIP 電話)。
  • 工作階段與對話工具指南:包含提示、對話生命週期事件及伺服器端管理工作階段行為的指引。
  • WebSocket 即時轉錄:提供即時轉錄音訊串流的途徑。

如何使用 OpenAI Realtime API

  1. 選擇連線方式,依應用程式執行位置:瀏覽器/客戶端用 WebRTC,伺服器/中間層用 WebSocket,VoIP 電話用 SIP。
  2. 從工作階段開始。文件推薦瀏覽器語音代理使用 Agents SDK for TypeScript,其在瀏覽器使用 WebRTC,伺服器使用 WebSocket
  3. 在程式碼中建立並初始化工作階段,然後使用客戶端 API 金鑰 連線(範例使用 RealtimeAgentRealtimeSession 搭配 session.connect)。
  4. 使用事件與模型互動。連線後,使用提供的指南進行提示/導向、對話生命週期管理,以及(必要時)透過 webhooks 的伺服器端控制。

文件也註明影響 Realtime 請求驗證的 GA 遷移細節(見 FAQ)。

使用案例

  • 基於瀏覽器的語音對語音代理:使用 WebRTC(常透過 Agents SDK for TypeScript)連線麥克風與音訊輸出進行互動對話。
  • 伺服器後援即時助理:當需要一致低延遲網路與集中式工作階段處理時,從中間層使用 WebSocket 連線。
  • VoIP/電話整合:目標部署為電話環境而非網頁瀏覽器時,透過 SIP 連線。
  • 即時音訊轉錄:透過 WebSocket 將音訊串流至 Realtime 轉錄流程,在傳送音訊時接收轉錄結果。
  • 多模態互動:在單一即時工作階段接受音訊搭配圖像與文字,然後回傳音訊、文字或兩者。

常見問題

使用 GA Realtime API 時需要 beta 標頭嗎?

文件指出,對於 GA 請求,應移除 OpenAI-Beta: realtime=v1 標頭。若要保留 beta 行為,應繼續包含該標頭。

如何為客戶端(瀏覽器)Realtime 工作階段產生憑證?

在 GA 介面中,文件描述單一 REST 端點—POST /v1/realtime/client_secrets—用於產生初始化 WebRTC 或 WebSocket 連線的金鑰。範例顯示建立工作階段設定並發佈至該端點。

WebRTC 與 WebSocket 在執行位置上有何差異?

文件將 WebRTC 定位為瀏覽器/客戶端互動的理想選擇,而 WebSocket 適合具一致低延遲網路連線的中間層伺服器端應用。

WebRTC SDP 擷取的 URL 有何變更?

在瀏覽器初始化 WebRTC 工作階段時,文件指出透過 SDP 取得遠端工作階段資訊的 URL 現為 /v1/realtime/calls

能否使用 Realtime API 僅進行轉錄而不需完整語音代理行為?

可以。文件特別強調透過 WebSocket 連線即時轉錄音訊串流的即時音訊轉錄

替代方案

  • 使用 TypeScript 的 Agents SDK,而非直接建置在 Realtime 基礎元件上:這能讓您專注於語音代理協調,同時在背景利用 Realtime 處理瀏覽器 (WebRTC) 與伺服器 (WebSocket) 連線。
  • 建置請求/回應轉錄管線,而非串流:若您的應用程式無需即時音訊處理,非即時轉錄工作流程即可避免 Realtime 所述的イベント驅動工作階段方式。
  • 語音的其他即時通訊方式:若需特定電話系統流程,Realtime 連線方式中 SIP 整合為一選項;否則,依部署選擇 WebRTC (瀏覽器) 或 WebSocket (伺服器)。
  • 使用非即時端點的多模態對話:若延遲需求不如「低延遲通訊」嚴格,非即時多模態對話方式或許適合,雖然不會遵循 Realtime 文件所述的串流/事件工作階段流程。