OpenAI는 2026년 11월 6일 차세대 음성 모델인 GPT-Realtime-2를 공개했습니다. GPT-Realtime-2는 GPT-5급 추론, 128,000 토큰 컨텍스트 창, 응답 품질과 지연 시간을 조절하는 구성 가능한 추론 수준을 제공하는 음성-음성 모델입니다. 기존 Realtime API 표면에서 실행되므로 이미 gpt-realtime을 사용 중이라면 모델 문자열을 gpt-realtime-2로 바꾸고 일부 세션 필드만 추가해 마이그레이션할 수 있습니다.
이 글에서는 GPT-Realtime-2의 핵심 변경 사항, 가격, WebSocket/SIP 호출 방법, 이미지 입력, 함수 호출, MCP 구성 방법을 구현 중심으로 정리합니다. 또한 Apidog에서 Realtime WebSocket 세션을 재생하고 비교하는 설정도 포함합니다.
OpenAI의 2026년 모델 라인업 컨텍스트는 GPT-5.5란 무엇인가를 참고하세요. 멀티모달 이미지 모델은 GPT-Image-2 API 사용 방법을 참고하세요.
요약
- GPT-Realtime-2는 GPT-5급 추론, 128k 컨텍스트, 32k 최대 출력 토큰을 제공하는 OpenAI의 대표 음성-음성 모델입니다.
- 오디오 가격은 입력 1백만 토큰당 32달러, 출력 1백만 토큰당 64달러입니다. 캐시된 입력은 1백만 토큰당 0.40달러입니다.
- 새 음성 Cedar, Marin은 Realtime API 전용입니다. 기존 8개 음성도 품질 업데이트를 받았습니다.
- 추론 수준은
minimal,low,medium,high,xhigh다섯 가지입니다. 기본값은 지연 시간을 고려한low입니다. - WebSocket 엔드포인트는
wss://api.openai.com/v1/realtime?model=gpt-realtime-2입니다. - SIP를 통해 수신 전화 기반 음성 에이전트도 구성할 수 있습니다.
- 보조 모델로 GPT-Realtime-Translate와 GPT-Realtime-Whisper도 제공됩니다.
- Apidog를 사용하면 WebSocket 세션을 스크립트화하고, 프레임을 캡처하고, 실행 결과를 비교할 수 있습니다.
GPT-Realtime-2란 무엇인가요?
GPT-Realtime-2는 오디오 입력부터 전사, 추론, 도구 선택, 음성 출력까지 한 모델에서 처리하는 음성-음성 모델입니다. 별도의 STT → LLM → TTS 파이프라인을 구성하지 않아도 됩니다.
기존 gpt-realtime을 사용하고 있다면 가장 먼저 바꿀 값은 모델 ID입니다.
gpt-realtime-2
GPT-Realtime-2는 텍스트, 오디오, 이미지를 입력으로 받고 텍스트와 오디오를 출력합니다. 이미지 입력이 추가되었기 때문에 사용자가 스크린샷이나 사진을 공유한 뒤 음성으로 후속 질문을 이어갈 수 있습니다. 예를 들어 사용자가 오류 화면을 보여주면 에이전트가 화면을 해석하고 음성으로 해결 방법을 안내할 수 있습니다.
| 속성 | 값 |
|---|---|
| 모델 ID | gpt-realtime-2 |
| 컨텍스트 창 | 128,000 토큰 |
| 최대 출력 | 32,000 토큰 |
| 입력 모달리티 | 텍스트, 오디오, 이미지 |
| 출력 모달리티 | 텍스트, 오디오 |
| 지식 차단 시점 | 2024-09-30 |
| 추론 수준 |
minimal, low, medium, high, xhigh
|
| 함수 호출 | 지원 |
| 원격 MCP 서버 | 지원 |
| 이미지 입력 | 지원 |
| SIP 전화 | 지원 |
gpt-realtime 대비 변경 사항
gpt-realtime-1.5와 비교하면 GPT-Realtime-2는 오디오 이해와 명령 수행 성능이 개선되었습니다.
- Big Bench Audio: 81.4% → 96.6%
- Audio MultiChallenge: 34.7% → 48.5%
이 점수는 high, xhigh 추론 수준에서 측정되었습니다. 실제 프로덕션에서는 기본값인 low로 시작한 뒤 품질 문제가 재현될 때만 상향 조정하는 방식이 좋습니다.
주요 동작 변화는 다음과 같습니다.
- 짧은 서론 발화: 모델이 답변 전 “확인해볼게요” 같은 짧은 문장을 말해 추론 지연을 자연스럽게 숨길 수 있습니다.
- 병렬 도구 호출: 여러 함수를 동시에 호출하고 처리 중인 작업을 음성으로 설명할 수 있습니다.
- 복구 능력 개선: 모호하거나 일부 실패한 턴에서 대화를 처음부터 다시 시작하지 않고 이어갈 수 있습니다.
- 톤 제어: 세션 중 사용자가 요청하면 공식적, 비격식적, 느린 말투 등으로 전달 방식을 바꿀 수 있습니다.
컨텍스트 창은 32k에서 128k로 증가했습니다. 긴 고객 지원 통화, 튜터링, 금융 상담처럼 대화 이력이 긴 음성 에이전트에 유리합니다.
가격
GPT-Realtime-2는 텍스트, 오디오, 이미지 토큰별로 다른 요율이 적용됩니다.
| 토큰 유형 | 입력 | 캐시된 입력 | 출력 |
|---|---|---|---|
| 텍스트 | $4.00 / 1M | $0.40 / 1M | $24.00 / 1M |
| 오디오 | $32.00 / 1M | $0.40 / 1M | $64.00 / 1M |
| 이미지 | $5.00 / 1M | $0.50 / 1M | 해당 없음 |
반복되는 시스템 프롬프트, 정책 문서, 도구 설명이 있다면 캐시된 입력을 활용해야 합니다. 캐시된 입력은 반복 컨텍스트 비용을 크게 줄입니다.
다른 모델 가격과 비교하려면 GPT-5.5 가격 책정을 참고하세요.
보조 모델은 분당 요금이 적용됩니다.
- GPT-Realtime-Translate: 분당 0.034달러. 70개 입력 언어와 13개 출력 언어를 처리합니다.
- GPT-Realtime-Whisper: 분당 0.017달러. 실시간 자막과 연속 전사를 위한 스트리밍 STT 모델입니다.
선택 기준은 단순합니다.
- 음성 추론과 음성 응답이 모두 필요하면 GPT-Realtime-2
- 실시간 통역이 필요하면 GPT-Realtime-Translate
- 전사본만 필요하면 GPT-Realtime-Whisper
엔드포인트 및 인증
GPT-Realtime-2는 여러 API 표면에서 노출됩니다.
POST https://api.openai.com/v1/chat/completions
POST https://api.openai.com/v1/responses
WSS wss://api.openai.com/v1/realtime?model=gpt-realtime-2
WSS wss://api.openai.com/v1/realtime?call_id={call_id} # SIP
POST https://api.openai.com/v1/realtime/translations
POST https://api.openai.com/v1/realtime/transcription_sessions
음성 에이전트 구현에는 WebSocket 엔드포인트를 사용합니다.
필수 헤더는 다음과 같습니다.
Authorization: Bearer $OPENAI_API_KEY
OpenAI-Beta: realtime=v1
로컬 개발 환경에서는 API 키를 환경 변수로 설정합니다.
export OPENAI_API_KEY="sk-proj-..."
WebSocket으로 연결하기
다음은 최소 Node.js WebSocket 클라이언트입니다.
import WebSocket from "ws";
const ws = new WebSocket(
"wss://api.openai.com/v1/realtime?model=gpt-realtime-2",
{
headers: {
Authorization: `Bearer ${process.env.OPENAI_API_KEY}`,
"OpenAI-Beta": "realtime=v1",
},
}
);
ws.on("open", () => {
ws.send(JSON.stringify({
type: "session.update",
session: {
voice: "cedar",
instructions: "You are a friendly support agent for a fintech app.",
input_audio_format: "pcm16",
output_audio_format: "pcm16",
turn_detection: { type: "server_vad" },
reasoning: { effort: "low" },
},
}));
});
ws.on("message", (raw) => {
const event = JSON.parse(raw.toString());
if (event.type === "response.audio.delta") {
// base64 PCM16 audio chunk
// 브라우저, 스피커, 오디오 파이프라인으로 전달
process.stdout.write(Buffer.from(event.delta, "base64"));
}
});
세션 흐름은 이벤트 기반입니다.
- 연결을 엽니다.
-
session.update로 음성, 지시문, 오디오 포맷, 추론 수준을 설정합니다. - 사용자의 오디오를
input_audio_buffer.append이벤트로 보냅니다. - 서버는
response.audio.delta이벤트로 오디오 청크를 반환합니다.
기본 오디오 포맷은 24kHz PCM16을 사용하는 것이 안전합니다. 전화 시스템과 연결할 때는 G.711 mu-law 또는 A-law도 사용할 수 있습니다.
Python을 사용하는 경우 openai SDK >= 2.1.0의 realtime 클라이언트가 동일한 이벤트 이름을 제공합니다. Realtime 인터페이스와 Responses API 비교는 GPT-5.5 API 사용 방법을 참고하세요.
음성 선택
이번 릴리스에는 두 가지 새 음성이 포함됩니다.
- Cedar: 따뜻한 중저음 남성 음성. 일반 지원 에이전트 기본값으로 적합합니다.
- Marin: 밝고 명확한 여성 음성. 번역, 공지, 안내에 적합합니다.
두 음성은 Realtime API 전용입니다.
기존 음성도 계속 사용할 수 있습니다.
alloy
ash
ballad
coral
echo
sage
shimmer
verse
세션 중 음성을 바꾸려면 새 voice 값을 포함한 session.update를 다시 전송하면 됩니다.
ws.send(JSON.stringify({
type: "session.update",
session: {
voice: "marin",
},
}));
이미지 입력 사용하기
GPT-Realtime-2는 사용자 턴에 이미지를 포함할 수 있습니다. 예를 들어 사용자가 오류 화면 스크린샷을 공유하고 “이 오류가 무슨 뜻이야?”라고 묻는 흐름을 만들 수 있습니다.
ws.send(JSON.stringify({
type: "conversation.item.create",
item: {
type: "message",
role: "user",
content: [
{
type: "input_image",
image_url: "https://example.com/screenshot.png",
},
{
type: "input_text",
text: "What does this error mean?",
},
],
},
}));
ws.send(JSON.stringify({
type: "response.create",
}));
적용하기 좋은 패턴은 다음과 같습니다.
- 음성 기반 QA: 테스터가 고장난 UI를 촬영하면 에이전트가 화면을 설명하고 버그 리포트를 작성합니다.
- 현장 지원: 기술자가 장비 사진을 공유하면 에이전트가 진단 절차를 음성으로 안내합니다.
- 접근성: 지원 통화 중 사용자의 화면을 실시간으로 설명합니다.
이미지 API 자체가 필요하다면 GPT-Image-2 API 사용 방법을 참고하세요.
함수 호출 및 MCP
GPT-Realtime-2는 동일한 세션에서 표준 함수 도구와 원격 MCP 서버를 모두 지원합니다.
표준 함수 호출 흐름은 다음과 같습니다.
-
session.update에서 도구를 선언합니다. - 모델이
response.function_call_arguments.delta이벤트를 보냅니다. - 애플리케이션이 실제 함수를 실행합니다.
- 결과를
conversation.item.create의function_call_output으로 다시 보냅니다. - 모델이 음성 응답을 이어갑니다.
새로운 점은 병렬 호출입니다. 모델은 여러 도구를 동시에 실행하면서 사용자에게 “잔액과 최근 거래 내역을 확인하고 있습니다”처럼 진행 상황을 말할 수 있습니다.
원격 MCP 서버를 사용하는 경우에는 세션에 MCP 서버 URL과 허용 도구 목록을 지정합니다.
ws.send(JSON.stringify({
type: "session.update",
session: {
tools: [
{
type: "mcp",
server_url: "https://mcp.example.com/sse",
allowed_tools: [
"lookup_account",
"list_transactions",
],
},
],
},
}));
이 방식은 음성 에이전트가 많은 도구 카탈로그에서 필요한 기능을 선택해야 할 때 유용합니다. 애플리케이션 코드에서 모든 함수 호출 이벤트 루프를 직접 처리하지 않아도 되기 때문입니다.
음성 에이전트에 붙이기 전 MCP 서버를 검증하려면 Apidog의 MCP 서버 테스트를 참고하세요.
SIP 전화 통화 구성
GPT-Realtime-2는 실제 전화 통화에도 사용할 수 있습니다. SIP 트렁크를 OpenAI의 SIP 게이트웨이로 지정하면 수신 전화가 다음 WebSocket 세션으로 연결됩니다.
wss://api.openai.com/v1/realtime?call_id={call_id}
모델은 G.711 mu-law 및 A-law를 직접 수락하므로 브리지 계층에서 별도 트랜스코딩을 줄일 수 있습니다.
이 구성은 콜센터형 음성 에이전트에 적합합니다. 대부분의 전화 에이전트는 계정 조회, 거래 조회, 티켓 생성 같은 도구 호출이 많기 때문에 병렬 도구 호출 및 MCP와 함께 사용하면 좋습니다.
추론 수준 설정
추론 수준은 지연 시간과 응답 품질 사이의 조절 장치입니다.
| 수준 | 사용 사례 | 대략적인 지연 비용 |
|---|---|---|
minimal |
단일 턴 예/아니오 응답 | 없음 |
low |
기본값, 일반 지원 및 채팅 | 작음 |
medium |
모호성 해소, 복잡한 도구 디스패치 | 보통 |
high |
다단계 추론, 음성 기반 코드 리뷰 | 높음 |
xhigh |
벤치마크, 어려운 분석 질문 | 가장 높음 |
프로덕션 기본값은 low로 두는 것이 좋습니다.
ws.send(JSON.stringify({
type: "session.update",
session: {
reasoning: {
effort: "low",
},
},
}));
운영 중 다음 문제가 측정될 때만 medium 이상으로 올리세요.
- 도구 선택 오류가 반복됨
- 복잡한 요청에서 답변 품질이 낮음
- 여러 단계의 업무 흐름을 자주 놓침
- 사용자가 추가 설명을 반복해서 요구함
high, xhigh는 통화 중 사용자가 체감할 수 있을 만큼 지연 시간이 늘어날 수 있습니다.
Apidog에서 Realtime API 테스트하기
WebSocket API는 상태가 있는 대화형 프로토콜이므로 터미널만으로 디버깅하기 어렵습니다. Apidog를 사용하면 Realtime 세션을 요청 단위로 저장하고 반복 실행할 수 있습니다.
추천 워크플로는 다음과 같습니다.
- 새 WebSocket 요청을 생성합니다.
- URL을 저장합니다.
wss://api.openai.com/v1/realtime?model=gpt-realtime-2
- 헤더를 설정합니다.
Authorization: Bearer {{OPENAI_API_KEY}}
OpenAI-Beta: realtime=v1
-
session.update메시지를 저장합니다.
{
"type": "session.update",
"session": {
"voice": "{{voice}}",
"instructions": "You are a concise support agent.",
"input_audio_format": "pcm16",
"output_audio_format": "pcm16",
"turn_detection": {
"type": "server_vad"
},
"reasoning": {
"effort": "low"
}
}
}
-
input_audio_buffer.append,response.create이벤트를 순서대로 스크립트화합니다. - 서버 이벤트를 트리 형태로 캡처합니다.
-
reasoning.effort,voice, 도구 목록을 바꾼 뒤 실행 결과를 비교합니다.
Apidog를 다운로드한 뒤 환경 변수로 OPENAI_API_KEY를 만들고, voice 같은 값은 컬렉션 변수로 분리하세요. 이렇게 하면 같은 오디오 입력으로 여러 세션 설정을 반복 테스트할 수 있습니다.
다른 빠른 멀티모달 모델과 비교하려면 Gemini 3 Flash Preview API 사용 방법을 참고하세요.
자주 묻는 질문
어떤 모델 ID를 전달해야 하나요?
gpt-realtime-2입니다.
롤백이 필요하면 기존 gpt-realtime도 사용할 수 있습니다. 라이트 버전으로는 gpt-realtime-2-mini도 출시되었습니다.
출력 오디오가 재생 중일 때 입력 오디오를 스트리밍할 수 있나요?
예. Realtime API는 기본적으로 서버 측 음성 활동 감지(VAD)를 사용합니다. 사용자가 말하기 시작하면 모델은 말하기를 중지할 수 있습니다.
직접 턴 경계를 제어하려면 VAD를 비활성화하고 클라이언트에서 입력 커밋 시점을 관리하면 됩니다.
128k 컨텍스트에 오디오 토큰도 포함되나요?
예. 오디오도 토큰화됩니다. 오디오 1초는 형식에 따라 대략 50토큰입니다.
긴 지원 통화는 긴 텍스트 채팅보다 컨텍스트를 빠르게 사용할 수 있으므로 실제 사용량을 반드시 측정해야 합니다.
미세 조정이 지원되나요?
아직 아닙니다. 모델 카드에 따르면 GPT-Realtime-2는 아직 미세 조정, 예측 출력, Chat Completions에서의 텍스트 스트리밍을 지원하지 않습니다.
Realtime 엔드포인트는 본질적으로 오디오 스트리밍을 지원합니다.
TTS를 붙인 GPT-5.5와 비교하면 어떤가요?
GPT-Realtime-2는 음성 입력의 어조, 망설임, 강조 같은 정보를 직접 활용할 수 있습니다. 반면 TTS를 붙인 텍스트 모델은 텍스트 변환 이후의 정보만 처리합니다.
사용자가 어떻게 말하는지에 반응해야 하는 에이전트라면 GPT-Realtime-2가 적합합니다. 순수 텍스트 추론이 목적이라면 GPT-5.5 API 사용 방법을 참고하세요.
어떤 속도 제한이 적용되나요?
Tier 1은 분당 40,000 토큰에서 시작하고 Tier 5에서는 분당 15M 토큰까지 확장됩니다. 속도 제한은 모델별로 적용되므로 기존 GPT-5 할당량이 그대로 이월된다고 가정하면 안 됩니다.
마무리
GPT-Realtime-2는 음성 에이전트를 구현할 때 필요한 요소를 하나의 Realtime 세션 안에 모읍니다. 128k 컨텍스트, GPT-5급 추론, 이미지 입력, MCP, SIP 지원을 조합하면 전화 통화를 받고, 스크린샷을 해석하고, 원격 도구를 호출하고, 대화 중 실패를 복구하는 음성 에이전트를 WebSocket 기반으로 구축할 수 있습니다.
가장 안전한 구현 순서는 다음과 같습니다.
- WebSocket 세션을 먼저 구성합니다.
-
reasoning.effort는low로 시작합니다. - 음성은
cedar또는marin중 사용 사례에 맞게 선택합니다. - 도구 목록은 최소한으로 고정합니다.
- 같은 오디오 입력으로 여러 세션 설정을 반복 테스트합니다.
- 품질 문제가 측정될 때만 추론 수준을 올립니다.



Top comments (0)