턴 디텍터 제거와 풀듀플렉스 모델을 통한 대화 즉각성 확보
기존의 음성 AI 시스템은 사용자의 발화 종료 시점을 예측하는 턴 디텍터(Turn detector) 모델이 추론 시작 시점을 결정하는 구조였다. 턴 디텍터가 종료 시점을 너무 빠르게 판단하면 사용자의 말이 끊기고, 너무 늦게 판단하면 응답이 느려지는 딜레마가 발생했다. OpenAI는 GPT-Live에서 오디오 경로의 턴 디텍터를 완전히 제거하고, 송수신이 동시에 가능한 풀듀플렉스(Full-duplex) 음성 모델을 채택했다. 이를 통해 시스템은 듣기와 말하기를 동시에 수행하며 대화의 즉각성을 확보했다.
초기 캐스케이드(Cascaded) 시스템은 STT(Speech-to-Text), LLM, TTS(Text-to-Speech)가 직렬로 작동하는 구조였다. 이 방식은 단계별 지연 시간이 누적될 뿐만 아니라, 텍스트 변환 과정에서 화자의 톤이나 속도 같은 비언어적 단서가 소실되는 한계가 있었다. 이후 등장한 음성-음성(Speech-to-Speech) 모델은 오디오를 직접 처리해 전사 손실을 줄였으나, 여전히 턴 디텍터에 의존하는 턴 기반(Turn-based) 상호작용의 제약을 유지했다.
GPT-Live는 음성 모델이 대화의 제어권을 직접 갖도록 설계하여 오디오가 모델 내부로 끊임없이 흐르게 했다. 시스템은 데이터가 쌓이기를 기다리는 버퍼링과 특정 작업 완료까지 대기하는 블로킹(Blocking)을 최소화했다. 이러한 구조적 변화를 통해 인간이 일상 대화에서 기대하는 1초 미만의 반응 속도를 구현하고, 대화의 리듬을 자연스럽게 유지했다.
Go 언어 전환과 WebRTC 기반의 미디어 전용 패스트 패스 구축
OpenAI는 미디어 프론트엔드와 추론 로직을 기존 Python asyncio 구현체에서 Go 언어로 전면 교체했다. 언어 교체 결과, 전체 요청 중 상위 5%의 지연시간을 의미하는 p95 지연시간이 이전 시스템의 중간값인 p50 수준으로 개선되었다. Go 언어의 효율적인 동시성 처리를 통해 오디오 프레임 전달의 매끄러움을 높였으며, 프로덕션 환경에서 오디오 전달의 안정성을 확보했다.
시스템 아키텍처는 미디어 흐름을 애플리케이션 및 비즈니스 로직과 완전히 분리한 이원화 구조를 취한다. 클라이언트와 음성 모델 사이에는 오디오 데이터만 빠르게 오가는 미디어 전용 패스트 패스(Fast Path)를 구축했다. 반면 도구 호출, 위임, 기타 애플리케이션 작업은 비동기 RPC(원격 프로시저 호출) 경계 뒤에서 처리한다. 이 설계를 통해 백엔드 서비스나 도구 호출이 지연되더라도 실시간 미디어 루프는 멈추지 않고 계속 작동한다.
전송 계층에는 저지연 미디어 전송 표준인 WebRTC를 도입했다. WebRTC는 패킷 손실, 클록 드리프트(Clock drift), 클라이언트 연결 변경 상황에서도 작동을 유지하는 특성이 있다. 패킷이 늦게 도착할 경우 WebRTC가 오디오를 미세하게 늘려 재생해 소리 끊김(Gap)을 방지하고, 이후 재생 속도를 일시적으로 가속해 실시간 흐름을 따라잡는다. 이러한 제어 기법은 전송 지연이 가청 수준의 일시 정지나 오디오 아티팩트로 변하는 것을 막는다.
상태 유지 추론과 무중단 컨텍스트 압축 메커니즘
상태 유지 추론(Stateful Inference) 시스템은 세션이 길어짐에 따라 증가하는 컨텍스트와 수요에 따른 모델 인스턴스의 빈번한 생성·소멸 문제를 해결해야 한다. OpenAI는 모델 인스턴스 간의 끊김 없는 핸드오프(Handoff) 메커니즘을 구축했다. 인스턴스 전환이 필요할 때 교체용 모델을 미리 준비하는 웜업(Warm) 과정을 거치고, 현재 세션 컨텍스트를 미리 채우는 프리필(Prefill)을 수행한다. 이후 기존 인스턴스와 새 인스턴스에서 추론을 병렬로 실행하다가 새 인스턴스가 준비된 시점에 즉시 제어권을 전환한다.
대화가 길어져 모델의 컨텍스트 제한을 초과하면 누적 데이터를 줄이는 컨텍스트 압축(Context Compaction)을 수행한다. 압축 작업은 기존의 KV 캐시(Key-Value Cache)를 무효화하며, 상태 재구축을 위한 새로운 프리필 과정에서 수백 밀리초 이상의 지연을 유발한다. 이는 실시간 음성 대화에서 치명적인 오디오 끊김으로 이어질 수 있다.
시스템은 압축 작업을 메인 추론 경로에서 분리하여 별도의 백그라운드 인스턴스에서 처리한다. 기존 모델 인스턴스가 실시간 대화를 유지하는 동안, 백그라운드 인스턴스가 컨텍스트 압축과 프리필 준비를 완료한다. 압축된 상태의 새 인스턴스가 기존 인스턴스와 동일한 시점의 상태를 갖게 되면 즉시 전환함으로써, 무거운 연산 작업이 실시간 오디오 스트림의 연속성을 해치지 않도록 설계했다.
'말하기'와 '생각하기'의 분리를 통한 기능 확장 및 최적화
GPT-Live 아키텍처는 자연스러운 응답을 생성하는 '말하기' 영역과 깊은 추론을 수행하는 '생각하기' 영역을 분리했다. GPT-Live 모델은 실시간 미디어 루프 유지를 최우선으로 하며, 복잡한 연산이 필요한 작업은 GPT-5.5와 같은 프론티어 모델에 비동기적으로 위임한다. 이를 통해 모델은 대화를 이어가는 동시에 내부적으로 정답을 찾는 과정을 병렬로 진행하여, 지능 수준을 높이면서도 음성 대화의 리듬을 유지한다.
프론티어 모델 호출이나 외부 도구 사용 시 발생하는 지연은 라이브 패스(Live path) 외부의 비동기 경로에서 독립적으로 처리된다. 도구 호출이 느려지더라도 음성 모델은 짧은 응답이나 추임새를 유지하며 대화 흐름을 붙잡고, 결과가 준비되면 이를 다시 미디어 루프로 전달해 답변에 반영한다. 실시간 미디어 루프의 연속적인 흐름을 유지하면서, 시스템의 다른 구성 요소가 요구하는 개별 메시지 단위의 RPC 요청을 분리 처리하는 것이 핵심이다.
이 구조는 ChatGPT Voice와 데스크톱 앱의 컴퓨터 제어, 에이전트 조정 기능의 기반이 된다. 미디어 프론트엔드와 백엔드 로직 사이에 명확한 경계가 구축되어 있어, 개발자는 오디오 흐름을 제어하는 프론트엔드 설정 변경 없이도 적용 도구, 운영 정책, 백엔드 동작을 자유롭게 커스터마이징할 수 있다. 실시간 경로를 작고 예측 가능하게 유지함으로써 시스템 안정성을 높이고, 복잡한 기능 확장은 비동기 영역에서 독립적으로 수행한다.
실시간 음성 인터페이스 설계 시, 미디어 전송을 위한 패스트 패스와 무거운 추론을 위한 비동기 RPC 경계를 완전히 분리하여 지연 시간이 사용자 경험을 해치지 않도록 아키텍처를 구성해야 한다.




