OpenAI, Realtime API WebRTC 모드 정식 GA — 음성 레이턴시 평균 320ms 달성
OpenAI가 Realtime API의 WebRTC 전송 방식을 정식 GA로 전환하며, 기존 WebSocket 대비 평균 응답 레이턴시를 40% 낮춘 320ms를 공식 수치로 발표했다. 브라우저·모바일 앱에서 별도 서버 없이 클라이언트 직접 연결이 가능해져, 한국 개발자들이 실시간 음성 인터페이스를 훨씬 낮은 인프라 비용으로 구축할 수 있게 됐다.
무엇이 달라졌나
OpenAI Realtime API는 이제 WebSocket과 WebRTC 두 가지 전송 모드를 공식 지원한다. WebRTC 모드는 클라이언트(브라우저, iOS, Android)가 OpenAI 엣지 서버와 P2P 방식으로 직접 오디오 스트림을 교환하기 때문에, 기존처럼 자체 중계 서버를 운용할 필요가 없다.
공식 발표 수치:
- 평균 음성 응답 레이턴시: 320ms (WebSocket 모드 540ms 대비 약 41% 단축)
- 최대 동시 세션: 계정 티어별 상이 — 공식 페이지 참조
- 지원 코덱: Opus 16kHz / 24kHz, G.711 μ-law
- 클라이언트 SDK:
openai-realtime-clientv2.0 (JS/TS), Python SDK 별도 업데이트 예정
한국 개발자·크리에이터에게 미치는 영향
인프라 비용 절감: 기존 WebSocket 방식에서는 클라이언트-서버-OpenAI 3홉 구조가 필요했다. WebRTC 모드에서는 클라이언트가 OpenAI 엣지에 직접 붙으므로 EC2·GCE 등 중계 서버 상시 운용 비용이 제거된다.
실사용 시나리오:
- 음성 기반 고객 응대 봇을 React/Next.js 앱에 서버리스로 내장
- Flutter 앱에서 네이티브 WebRTC 소켓으로 AI 튜터 구현
- OBS 플러그인 혹은 크리에이터 라이브 스트리밍 도구에 실시간 자막·번역 레이어 삽입
주의사항: WebRTC 모드는 현재 gpt-4o-realtime-preview 모델에만 적용된다. 함수 호출(Function Calling)은 WebRTC 모드에서도 지원되지만, 동시 함수 실행은 세션당 최대 8개로 제한된다.
빠른 시작 코드 예시
import { RealtimeClient } from 'openai/realtime';
const client = new RealtimeClient({
apiKey: process.env.OPENAI_API_KEY,
transport: 'webrtc', // 신규 옵션
model: 'gpt-4o-realtime-preview',
});
await client.connect();
client.sendUserMessageContent([{ type: 'input_audio', audio: audioBuffer }]);
client.on('response.audio.delta', ({ delta }) => {
// 320ms 내외로 첫 오디오 청크 도착
playAudioChunk(delta);
});
가격은 입력 오디오 토큰·출력 오디오 토큰 기준으로 부과되며, 구체적인 단가는 공식 페이지 참조. 현재 한국 리전 엣지 노드는 도쿄·싱가포르 경유로 제공되므로, 실제 레이턴시는 네트워크 환경에 따라 다를 수 있다.