OpenAI Realtime API, WebRTC 트랙 직접 연결 정식 GA
OpenAI가 Realtime API의 WebRTC 미디어 트랙 직접 연결 기능을 정식 GA로 전환했다. 기존 WebSocket 방식 대비 음성 레이턴시가 평균 40% 감소하며, 브라우저·모바일 앱에서 서버 중계 없이 peer-to-peer 음성 스트리밍이 가능해져 실시간 음성 AI 제품 개발 진입 장벽이 크게 낮아졌다.
무엇이 달라졌나
OpenAI Realtime API는 기존 WebSocket 기반 텍스트·오디오 스트리밍 외에, 이제 WebRTC SDP(Session Description Protocol) 협상을 통해 브라우저나 모바일 클라이언트가 미디어 트랙을 직접 OpenAI 엔드포인트에 연결할 수 있다. 개발자는 별도의 미디어 서버(예: mediasoup, LiveKit) 없이도 RTCPeerConnection 표준 API만으로 연동이 가능하다.
주요 수치:
- 평균 음성 응답 레이턴시: WebSocket 대비 약 40% 감소 (내부 벤치마크)
- 지원 코덱: Opus 48kHz, G.711 (PCMU/PCMA)
- 동시 세션 제한: 티어별 상이, 공식 페이지 참조
- 가격: 공식 페이지 참조
한국 개발자 실전 적용 포인트
// 브라우저에서 RTCPeerConnection으로 Realtime API 연결 예시
const pc = new RTCPeerConnection();
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
stream.getTracks().forEach(track => pc.addTrack(track, stream));
const offer = await pc.createOffer();
await pc.setLocalDescription(offer);
// OpenAI Realtime 엔드포인트에 SDP 협상 요청
const res = await fetch('https://api.openai.com/v1/realtime/sessions/{id}/sdp', {
method: 'POST',
headers: { 'Authorization': `Bearer ${OPENAI_API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ sdp: offer.sdp, type: offer.type })
});
const answer = await res.json();
await pc.setRemoteDescription(answer);
한국 서비스 특성상 콜센터 자동화, 실시간 통역 앱, 음성 기반 교육 플랫폼 수요가 높다. WebRTC 직접 연결은 TURN 서버 유지 비용을 제거하고 NAT 환경에서도 안정적인 연결을 보장한다.
기존 WebSocket 방식과 비교
| 항목 | WebSocket | WebRTC (신규) | |---|---|---| | 서버 중계 필요 | 필수 | 불필요 | | 평균 레이턴시 | ~350ms | ~210ms | | 브라우저 네이티브 | 별도 오디오 처리 필요 | getUserMedia 직접 연결 | | 모바일 지원 | 추가 SDK 필요 | WebRTC 표준으로 지원 |
세션 관리, 인터럽션(barge-in) 처리, 함수 호출은 기존 Realtime API 이벤트 모델과 동일하게 DataChannel을 통해 JSON 메시지로 교환한다.