200밀리초 이하 음성 AI: Twilio와 OpenAI Realtime API 연결

발행: (2026년 3월 15일 오전 04:01 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

위에 제공된 소스 링크만으로는 번역할 본문 내용이 포함되어 있지 않습니다. 번역이 필요한 전체 텍스트(코드 블록을 제외한 본문)를 제공해 주시면, 요청하신 대로 한국어로 번역해 드리겠습니다.

전통적인 음성 AI의 문제점

전통적인 파이프라인은 다음과 같습니다:

  1. Speech‑to‑Text (STT) – 500 ms – 1 s
  2. LLM inference – 500 ms – 2 s
  3. Text‑to‑Speech (TTS) – ~500 ms

이렇게 하면 에이전트가 응답하기 전에 1.5 – 3.5 초의 침묵이 발생합니다. 인간은 약 300 ms를 초과하는 정지를 감지합니다.

OpenAI Realtime API

OpenAI의 Realtime API는 3단계 파이프라인을 단일 WebSocket으로 대체하여 원시 오디오를 받아들이고 오디오를 스트리밍합니다. 모델은 오디오를 직접 “듣고” “말”함으로써 전사 라운드‑트립을 없앱니다.

Source:

Twilio Media Streams를 OpenAI에 연결하기

Twilio 번호로 전화가 걸오면 Twilio는 Media Stream—원시 오디오 패킷(µ‑law, 8 kHz)을 전송하는 WebSocket—을 엽니다. 우리의 Node.js 서버는 얇은 브리지 역할을 합니다:

Phone Call → Twilio → Media Stream WS → Our Server → OpenAI Realtime WS

서버가 담당하는 작업:

  • Twilio에서 들어오는 오디오 청크를 OpenAI로 전달합니다.
  • OpenAI의 오디오 응답을 Twilio로 다시 파이프합니다.
  • 지연 시간을 최소화하기 위해 최소한의 처리만 수행합니다.

핵심 브리지 코드 (JavaScript)

// Twilio → OpenAI
twilioWs.on("message", (data) => {
  const msg = JSON.parse(data);
  if (msg.event === "media") {
    openaiWs.send(JSON.stringify({
      type: "input_audio_buffer.append",
      audio: msg.media.payload   // already base64 µ-law
    }));
  }
});

// OpenAI → Twilio
openaiWs.on("message", (data) => {
  const event = JSON.parse(data);
  if (event.type === "response.audio.delta") {
    twilioWs.send(JSON.stringify({
      event: "media",
      streamSid: streamSid,
      media: { payload: event.delta }
    }));
  }
});

이 루프는 양방향으로 오디오를 거의 오버헤드 없이 전달합니다.

추가 기능

전사

{
  "input_audio_transcription": { "model": "whisper-1" }
}

양쪽 모두의 비동기 전사를 가능하게 하여, 응답 지연을 증가시키지 않으면서 전체 통화 전사를 제공합니다.

음성 선택

OpenAI는 여러 음성을 제공합니다; 저자는 더 깊고 자연스러운 남성형 에이전트를 위해 **ash**를 선택했습니다. Realtime API의 음성 품질은 기존 TTS를 능가합니다.

중단 처리 (바지인)

Realtime API는 호출자가 에이전트 위에 말을 걸 때를 기본적으로 감지하여 재생을 즉시 중단합니다—별도의 맞춤 VAD가 필요 없습니다.

배포 세부 정보

구성 요소세부 정보
서버Node.js on a $10 / month VPS
전화Twilio (inbound + outbound)
AIOpenAI Realtime API (gpt-4o-realtime-preview)
프로세스 관리자PM2
도메인realtime.byldr.co (pointed directly to VPS; no Cloudflare proxy because WebSockets don’t work well through it)
SSLLet’s Encrypt certificate

지연 시간 및 비용

  • 엔드‑투‑엔드 지연: ~200 ms from the end of the user’s utterance to the start of the agent’s reply—fast enough to feel conversational.
  • 인프라 비용: ≈ $15 / month plus per‑minute API usage.
  • 가격 참고: Audio tokens are significantly more expensive than text tokens; for high‑volume scenarios a traditional three‑step pipeline with a cheaper STT (e.g., Deepgram) may be more cost‑effective despite higher latency.

신뢰성 고려 사항

WebSocket reconnection logic is essential. Twilio Media Streams can hiccup; if either socket drops, the bridge must restart gracefully to avoid dead air for the caller.

결론

실제처럼 느껴지는 음성 AI를 구축하기 위해 정교한 MLOps 플랫폼이 필요하지 않습니다. 적당한 VPS와 두 개의 WebSocket 연결, 그리고 신중한 오디오 파이프라인을 사용하면 200 ms 미만의 대화 지연 시간과 자연스러운 에이전트를 제공할 수 있습니다.

0 조회
Back to Blog

관련 글

더 보기 »

트라비고

Gemini와 함께 말하는 속도만큼 빠르게 여행하세요! 라이브 에이전트가 몰입형 스토리텔링 및 3D 내비게이션과 만나는 곳. 이 프로젝트는 Gemini Live Ag...에 진입하기 위해 만들어졌습니다.