본문 바로가기
AI2026년 5월 10일5분 읽기

Whisper 4 + Realtime API — 실시간 음성 챗봇 구축 가이드

YS
김영삼
조회 386
Whisper 4 + Realtime API — 실시간 음성 챗봇 구축 가이드

핵심 요약

OpenAI Realtime API와 Whisper 4(2026-02 출시)·고품질 TTS를 결합하면 음성-텍스트-LLM-텍스트-음성 사이클이 P50 700ms대까지 떨어진다. 사람 대화에 가까운 음성 챗봇 만든 경험을 정리.

1. 두 가지 접근

접근구조P50비용/분제약
Pipeline (Whisper → LLM → TTS)3단계 직렬1.2~2s$0.06인터럽트 어려움
Realtime API (Speech-to-Speech)단일 모델0.4~0.8s$0.24모델·기능 제약

2. Pipeline 패턴 — 유연함

// 1) Whisper STT (스트리밍)
const stt = await openai.audio.transcriptions.create({
  file: audioStream,
  model: 'whisper-4',
  response_format: 'verbose_json',
  stream: true,
})

// 2) LLM (스트리밍)
const completion = await openai.chat.completions.create({
  model: 'gpt-5.5',
  messages,
  stream: true,
})

// 3) TTS (스트리밍)
for await (const sentence of bufferBySentence(completion)) {
  const audio = await openai.audio.speech.create({
    model: 'tts-4-hd',
    voice: 'alloy',
    input: sentence,
    response_format: 'opus',
  })
  pipeToClient(audio)
}

3. Realtime API 패턴 — 빠름

const ws = new WebSocket('wss://api.openai.com/v1/realtime?model=gpt-realtime-4', {
  headers: { Authorization: 'Bearer ' + key },
})
ws.send(JSON.stringify({
  type: 'session.update',
  session: {
    modalities: ['audio', 'text'],
    voice: 'alloy',
    input_audio_format: 'pcm16',
    output_audio_format: 'pcm16',
    turn_detection: { type: 'server_vad', threshold: 0.6 },
  },
}))
// 클라이언트가 마이크 PCM을 그대로 보냄

4. 지연시간 분해 — Pipeline 1.4s 케이스

구간시간
마이크 → 서버 (WebRTC)40ms
VAD 종료 감지250ms
Whisper 4 (한국어 5초 음성)320ms
LLM 첫 토큰380ms
TTS 첫 청크290ms
네트워크 응답40ms

VAD와 TTS가 절반. 첫 sentence 끝나자마자 보내면 P50 0.9s 가능.

5. 인터럽트 처리

사용자가 봇이 말하는 중에 끼어드는 게 자연스러움 핵심. Realtime API는 input_audio_buffer.speech_started 이벤트로 자동 처리. Pipeline은 직접 구현:

if (vad.speechStarted) {
  await tts.cancel()
  await llm.abort()
  startNewTurn()
}

6. 한국어 품질 (2026-05)

  • Whisper 4: 한국어 WER 4.2% (3.x 7.8%). 전문 용어·이름 여전히 약함.
  • TTS-4-HD: 한국어 자연스러움 상위 수준. 감정 컨트롤 옵션.
  • Realtime API: 영어 우선. 한국어는 일부 표현 어색.

7. 비용 실측 — 10분 통화

구성비용
Whisper 4 (10분 입력)$0.06
GPT-5.5 (평균 8K tokens)$0.16
TTS-4-HD (출력 7,000자)$0.18
합계 Pipeline$0.40
Realtime API 10분$2.40

대량 처리는 Pipeline, 고가치·짧은 인터랙션은 Realtime.

8. WebRTC vs WebSocket

  • WebRTC: 패킷 손실에 강함, P50 -100ms, 구현 복잡
  • WebSocket + opus: 단순, 안정망에선 동등 품질

모바일 등 네트워크 변동 큰 환경은 WebRTC. 회사 내부망은 WebSocket으로 충분.

9. 안전·법규

  • 녹음 동의 고지 (한국 통신비밀보호법)
  • 음성·텍스트 보관 정책 명문화
  • 의료·금융 상담엔 보이스 인증 별도 (음성 위조 대비)

10. 흔한 함정

  • VAD 임계값 너무 낮음: 짧은 침묵을 발화로 인식 → 봇이 자꾸 끼어듦
  • echo cancellation 미적용: 봇 음성이 마이크로 들어가 무한 루프
  • TTS를 한 번에 다 생성: 첫 응답까지 5초+. 문장 단위 스트리밍 필수

참고

  • platform.openai.com/docs/guides/realtime
  • github.com/openai/openai-realtime-api-beta

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록