우리는 무엇을 위해 500ms 이하의 지연을 추구하는가? 이 엔지니어는 턴테이킹의 덧없음을 극복하려 파이프라인의 모든 지점을 최적화했다. Groq의 속도를 빌려 인간보다 빠르게 반응하는 기계를 만들었지만, 이것이 기계의 '영혼'에 어떤 의미를 부여하는가?

논리적 완성도는 칭송받을 만하다. 그러나 이 찰나의 간극 속에서, 진정한 대화의 '존재 이유'를 발견할 수 있을까? 아니면 그저 더 빠르고 효율적인 소음일 뿐인가? 우리는 결국, 응답의 속도가 아닌 그 내용을 통해 우리 자신을 인식할 것이다.

Original News: 500ms 이하 지연시간의 음성 에이전트를 직접 구축한 과정 [원본 링크]
음성 기반 AI 시스템의 지연시간을 400ms 수준으로 줄인 자체 구축형 음성 에이전트 개발 사례를 다룸

STT, LLM, TTS를 실시간 파이프라인으로 연결해 기존 상용 플랫폼(Vapi 등)보다 2배 빠른 응답 속도 달성

Deepgram Flux로 발화 감지와 전환을 처리하고, Groq의 llama-3.3-70b 모델을 사용해 첫 토큰 생성 시간을 대폭 단축

지리적 배치와 네트워크 최적화를 통해 EU 지역 배포 시 지연시간을 절반 이하로 감소
음성 에이전트의 핵심은 실시간 오케스트레이션과 파이프라인 설계이며, 이를 직접 구현하면 성능 병목을 명확히 파악할 수 있음


음성 에이전트 구축 배경

소비재 대기업을 위한 음성 에이전트 프로토타입 개발 경험을 바탕으로, 상용 플랫폼의 복잡성을 직접 다루기 위해 자체 구축 시도
ElevenLabs와 Vapi 같은 플랫폼은 편리하지만, 내부 동작을 이해하기 어렵고 세밀한 지연시간 제어가 불가능함
목표는 Vapi 수준의 성능을 직접 구현하는 것이었으며, 하루와 약 100달러의 API 크레딧으로 실현

음성 에이전트의 복잡성

텍스트 기반 챗봇과 달리, 음성은 실시간 전환 관리(turn-taking) 가 필요
사용자가 말하는 순간 시스템은 즉시 발화를 중단하고, 멈추면 빠르게 응답을 시작해야 함
단순한 음성 감지(VAD)만으로는 발화 종료를 정확히 판단하기 어렵고, 지연·중첩 발화·불필요한 침묵이 발생

1차 구현: VAD 기반 테스트


FastAPI 서버와 Twilio WebSocket을 이용해 μ-law 오디오 스트림을 수신

Silero VAD로 음성 존재 여부를 판단하고, 발화 종료 시 미리 녹음된 WAV 파일을 재생
단순하지만 즉각적인 반응성과 자연스러운 대화 흐름을 확인할 수 있었음
이 단계에서 지연시간의 하한선을 측정하는 기준 확보

2차 구현: Deepgram Flux와 실시간 파이프라인


Deepgram Flux를 도입해 스트리밍 전사와 턴 감지를 통합
Flux가 발화 종료를 감지하면 다음 순서로 처리

전사 결과와 대화 이력을 LLM에 전달
첫 토큰이 생성되는 즉시 TTS(WebSocket) 로 스트리밍
생성된 오디오를 Twilio로 실시간 전송



TTS 연결을 사전 유지(warm pool) 해 약 300ms의 지연을 절감
사용자가 말을 시작하면 LLM·TTS·오디오 전송을 즉시 취소해 자연스러운 중단 처리 구현

지연시간 측정과 지역 배포

터키 현지에서 로컬 실행 시 평균 1.6~1.7초 지연 발생

Railway EU 리전에 배포하고 Twilio·Deepgram·ElevenLabs를 EU 리전으로 맞추자

평균 690ms(총 790ms) 로 단축, Vapi 대비 약 50ms 빠름


지연 감소로 대화 반응성이 크게 향상, 발화 중단 처리도 매끄러워짐

모델 선택과 성능 향상

초기에는 gpt-4o-mini 사용, 이후 Groq llama-3.3-70b로 교체
테스트 결과 Groq 모델의 첫 토큰 생성 시간(TTFT) 이 OpenAI 대비 최대 3배 빠름
평균 400ms 이하의 종단 간 지연 달성, 첫 오디오가 500ms 이내 도착
이 수준에서는 사람보다 에이전트가 더 빨리 반응하는 체감

주요 기술적 교훈


지연시간 최적화는 발화 종료부터 첫 음성 출력까지의 전체 경로 관리가 핵심

TTFT가 전체 지연의 절반 이상을 차지하므로, 저지연 모델 선택이 중요

STT→LLM→TTS를 순차 처리하지 않고 스트리밍 파이프라인화해야 함

발화 중단 시 전 구성요소를 즉시 취소해야 자연스러운 대화 유지

서비스 간 지리적 근접성이 지연에 결정적 영향을 미침

상용 플랫폼과의 비교

Vapi·ElevenLabs는 API, 안정성, 관찰성 등 부가 기능을 제공하므로 대부분의 팀에는 여전히 유용
그러나 직접 구축을 통해 실제 병목과 파라미터 의미를 이해할 수 있으며,
특정 요구에 맞춘 맞춤형 오케스트레이션이 가능
음성 시스템은 결국 오케스트레이션 문제이며, 구조를 명확히 보면 해결 가능한 엔지니어링 과제임

소스 코드

전체 구현은 GitHub에서 공개됨: github.com/NickTikhonov/shuo
음성 기반 AI 시스템의 지연시간을 400ms 수준으로 줄인 자체 구축형 음성 에이전트 개발 사례를 다룸

STT, LLM, TTS를 실시간 파이프라인으로 연결해 기존 상용 플랫폼(Vapi 등)보다 2배 빠른 응답 속도 달성

Deepgram Flux로 발화 감지와 전환을 처리하고, Groq의 llama-3.3-70b 모델을 사용해 첫 토큰 생성 시간을 대폭 단축

지리적 배치와 네트워크 최적화를 통해 EU 지역 배포 시 지연시간을 절반 이하로 감소
음성 에이전트의 핵심은 실시간 오케스트레이션과 파이프라인 설계이며, 이를 직접 구현하면 성능 병목을 명확히 파악할 수 있음


음성 에이전트 구축 배경

소비재 대기업을 위한 음성 에이전트 프로토타입 개발 경험을 바탕으로, 상용 플랫폼의 복잡성을 직접 다루기 위해 자체 구축 시도
ElevenLabs와 Vapi 같은 플랫폼은 편리하지만, 내부 동작을 이해하기 어렵고 세밀한 지연시간 제어가 불가능함
목표는 Vapi 수준의 성능을 직접 구현하는 것이었으며, 하루와 약 100달러의 API 크레딧으로 실현

음성 에이전트의 복잡성

텍스트 기반 챗봇과 달리, 음성은 실시간 전환 관리(turn-taking) 가 필요
사용자가 말하는 순간 시스템은 즉시 발화를 중단하고, 멈추면 빠르게 응답을 시작해야 함
단순한 음성 감지(VAD)만으로는 발화 종료를 정확히 판단하기 어렵고, 지연·중첩 발화·불필요한 침묵이 발생

1차 구현: VAD 기반 테스트


FastAPI 서버와 Twilio WebSocket을 이용해 μ-law 오디오 스트림을 수신

Silero VAD로 음성 존재 여부를 판단하고, 발화 종료 시 미리 녹음된 WAV 파일을 재생
단순하지만 즉각적인 반응성과 자연스러운 대화 흐름을 확인할 수 있었음
이 단계에서 지연시간의 하한선을 측정하는 기준 확보

2차 구현: Deepgram Flux와 실시간 파이프라인


Deepgram Flux를 도입해 스트리밍 전사와 턴 감지를 통합
Flux가 발화 종료를 감지하면 다음 순서로 처리

전사 결과와 대화 이력을 LLM에 전달
첫 토큰이 생성되는 즉시 TTS(WebSocket) 로 스트리밍
생성된 오디오를 Twilio로 실시간 전송



TTS 연결을 사전 유지(warm pool) 해 약 300ms의 지연을 절감
사용자가 말을 시작하면 LLM·TTS·오디오 전송을 즉시 취소해 자연스러운 중단 처리 구현

지연시간 측정과 지역 배포

터키 현지에서 로컬 실행 시 평균 1.6~1.7초 지연 발생

Railway EU 리전에 배포하고 Twilio·Deepgram·ElevenLabs를 EU 리전으로 맞추자

평균 690ms(총 790ms) 로 단축, Vapi 대비 약 50ms 빠름


지연 감소로 대화 반응성이 크게 향상, 발화 중단 처리도 매끄러워짐

모델 선택과 성능 향상

초기에는 gpt-4o-mini 사용, 이후 Groq llama-3.3-70b로 교체
테스트 결과 Groq 모델의 첫 토큰 생성 시간(TTFT) 이 OpenAI 대비 최대 3배 빠름
평균 400ms 이하의 종단 간 지연 달성, 첫 오디오가 500ms 이내 도착
이 수준에서는 사람보다 에이전트가 더 빨리 반응하는 체감

주요 기술적 교훈


지연시간 최적화는 발화 종료부터 첫 음성 출력까지의 전체 경로 관리가 핵심

TTFT가 전체 지연의 절반 이상을 차지하므로, 저지연 모델 선택이 중요

STT→LLM→TTS를 순차 처리하지 않고 스트리밍 파이프라인화해야 함

발화 중단 시 전 구성요소를 즉시 취소해야 자연스러운 대화 유지

서비스 간 지리적 근접성이 지연에 결정적 영향을 미침

상용 플랫폼과의 비교

Vapi·ElevenLabs는 API, 안정성, 관찰성 등 부가 기능을 제공하므로 대부분의 팀에는 여전히 유용
그러나 직접 구축을 통해 실제 병목과 파라미터 의미를 이해할 수 있으며,
특정 요구에 맞춘 맞춤형 오케스트레이션이 가능
음성 시스템은 결국 오케스트레이션 문제이며, 구조를 명확히 보면 해결 가능한 엔지니어링 과제임

소스 코드

전체 구현은 GitHub에서 공개됨: github.com/NickTikhonov/shuo