ChatGPT에서 실시간 음성 대화를 해본 적이 있다면, 그 응답 속도가 얼마나 많은 공학적 고민의 결과인지 체감하기 쉽지 않다. OpenAI가 이번 주 저지연 음성 AI를 대규모로 운영하는 방법을 상세히 공개했다.
이미지 출처: Unsplash
핵심 결정은 전통적인 SFU(Selective Forwarding Unit) 방식을 버리고 WebRTC 직접 트랜시버 연결을 택한 것이다. 기존 음성·영상 통화 인프라는 대부분 중간 서버가 미디어 스트림을 중계하는 SFU 구조를 쓴다. 네트워크 홉(hop)이 늘어나는 만큼 지연도 따라 늘어난다. OpenAI는 이 중간 단계를 줄이는 방향으로 아키텍처를 설계했다. 전 세계 잠재 이용자 9억 명을 감당하는 구조치고는 오히려 단순한 방향을 택한 셈이다.
구현에는 Go 언어를 썼다. 릴레이와 서비스 레이어 모두 Go로 작성했는데, 저지연 성능이 언어 선택의 주된 이유다. WebRTC 백엔드 지원에는 Pion WebRTC 라이브러리를 활용하고, 오케스트레이션은 Kubernetes로 처리한다. 특별히 새로운 스택은 아니지만, 조합 방식과 튜닝이 이 시스템의 차별점이다.
지연은 줄었는데, 대화는 여전히 어색하다
흥미로운 건 인프라 최적화 이후 드러난 문제다. 네트워크 지연을 충분히 낮추자, 다음 병목이 모습을 드러냈다. VAD(Voice Activity Detection), 즉 음성 활동 감지 시스템이다.
이미지 출처: Unsplash
현재 시스템은 사람이 말을 잠깐 멈추면 발언이 끝난 것으로 인식하고 응답을 시작한다. 생각을 정리하거나 자연스러운 호흡 사이에서도 AI가 끼어드는 일이 빈번하다. 사용자들은 이를 피하려고 “음…” 같은 채움말을 쓰거나 한 문장 전체를 머릿속에서 완성한 뒤 한 번에 말하게 된다. 지연이 줄어든 만큼 대화가 더 자연스러워지길 기대했던 것과는 반대 방향이다.
음성 모델 자체도 여전히 텍스트 최전선 모델보다 한 단계 아래다. GPT-4o 기반으로 운영되는데, 텍스트로는 더 강력한 모델을 쓸 수 있지만 음성 인터페이스에서는 그 성능을 그대로 끌어다 쓰지 못하는 구조다. 결국 실시간 음성 AI의 품질 한계는 지금 인프라 지연이 아니라 모델과 VAD 쪽에 있다. 네트워크 문제를 해결하면 다음 문제가 드러난다는, 시스템 최적화의 오래된 진실이 여기서도 반복된다.
출처