Voice-First Agent: 실시간 API로 구현하는 차세대 인간-컴퓨터 상호작용(HCI)

우리는 이제 텍스트를 입력하고 결과를 기다리는 시대에서, 마치 사람에게 말을 건네듯 과업을 위임하는 시대로 진입하고 있습니다. 특히 인공지능 기술이 고도화됨에 따라 사용자의 의도를 정확히 파악하고 실행하는 '에이전트'의 역할이 중요해지고 있습니다. Perplexity는 이러한 흐름 속에서 차세대 에이전틱 브라우저인 'Comet(코멧)'과 강력한 범용 디지털 워커인 'Computer(컴퓨터)'

Voice-First Agent: 실시간 API로 구현하는 차세대 인간-컴퓨터 상호작용(HCI)

서론: 음성 인터페이스와 에이전트 브라우저의 만남

우리는 이제 텍스트를 입력하고 결과를 기다리는 시대에서, 마치 사람에게 말을 건네듯 과업을 위임하는 시대로 진입하고 있습니다. 특히 인공지능 기술이 고도화됨에 따라 사용자의 의도를 정확히 파악하고 실행하는 '에이전트'의 역할이 중요해지고 있습니다. Perplexity는 이러한 흐름 속에서 차세대 에이전틱 브라우저인 'Comet(코멧)'과 강력한 범용 디지털 워커인 'Computer(컴퓨터)'를 통해 혁신적인 사용자 경험을 선보이고 있습니다.

Perplexity가 지향하는 가치는 단순히 정보를 찾는 것을 넘어, 사용자가 원하는 바를 말하면 인용 AI가 그 과업을 수행하는 자연스러운 대화의 경험입니다. 이러한 마법 같은 순간은 기술적 배경 없이는 불가능합니다. Perplexity는 OpenAI의 Realtime-1.5 API를 활용하여 수백만 명의 사용자에게 끊김 없고 매끄러운 음성 인터페이스를 제공하며, 인간과 컴퓨터 사이의 거리를 좁히고 있습니다.

본론 1: 정교한 컨텍스트 관리를 통한 지능형 대화 구현

음성 기반 에이전트가 가장 큰 도전에 직면하는 순간은 방대한 양의 데이터를 다룰 때입니다. 예를 들어, 몇 시간 분량의 긴 팟캐스트 트랜스크립트를 처리해야 하는 상황을 가정해 봅시다. 사용자는 특정 시점(예: 2시간 30분 지점)에서 무슨 일이 일어났는지 물을 수 있어야 하며, 모델은 그 맥락을 정확히 파악해야 합니다. 하지만 전체 스크립트를 한 번에 컨텍스트에 넣는 것은 기술적으로 매우 까다롭습니다.

Perplexity는 초기 단계에서 거대한 데이터 덩어리(Chunk)를 전송하는 방식을 시도했으나, 이는 '전부 아니면 전무(all-or-nothing)' 식의 실패를 야기한다는 것을 발견했습니다. 만약 5,000 토큰의 여유 공간이 있는 창에 10,000 토큰을 보내려 하면 기존 히스토리가 통째로 사라지는 문제가 발생했기 때문입니다. 이를 해결하기 위해 Perplexity는 데이터를 약 2,000 토큰 단위의 작은 조각으로 나누어 점진적으로 업데이트하는 전략을 선택했습니다. 이 방식은 오버헤드는 늘어나지만, 데이터가 잘릴 때도 이전 기록이 한꺼번에 사라지지 않고 일부만 다듬되는 훨씬 안정적인 동작을 보장합니다.

또한, '역할(Role)' 기반의 컨텍스트 설계 역시 핵심적인 기술입니다. OpenAI Realtime-1.5 API에서는 system(지시 및 행동 양식), user(사용자 입력), assistant(모델 출력)라는 세 가지 역할이 존재합니다. Perplexity는 이 역할을 정교하게 구분하는 데 집중했습니다. 만약 웹페이지의 스니펫이나 댓글 같은 배경 정보를 모두 user로 전달하면, 모델은 사용자가 모든 글을 직접 읽고 있는 것처럼 행동하거나 과도한 서술을 하는 등 부자연스러운 모습을 보였습니다. 반대로 너무 많은 정보가 system으로 들어가면 모델이 자신의 지식과 제공된 맥락 사이의 경계를 잃기도 했습니다. 결국 성공적인 에이전트는 사용자가 배경 정보를 인지하면서도 자연스럽게 질문할 수 있도록 정교한 문맥 설계가 뒷받침되어야 합니다.

본론 2: 다양한 플랫폼 환경에서의 오디오 표준화와 안정성

Perplexity의 서비스는 Ask, Comet, Computer 등 다양한 제품군으로 운영되며, 각 플랫폼은 Swift, TypeScript, Rust, C++ 등 서로 다른 클라이언트 스택을 사용합니다. 문제는 각 개발 환경마다 생성되는 오디오 버퍼 형식이 제각기 다르다는 점이었습니다. 이러한 불일치는 Realtime API로 전달되는 데이터의 성능 저하와 일관성 없는 사용자 경험을 유발했습니다.

이를 극복하기 위해 Perplexity는 Rust 기반의 독자적인 SDK를 개발하여 플랫폼 간의 차이를 추상화했습니다. 모든 클라이언트가 동일한 오디오 규약을 따르도록 만드는 것이 목표였습니다. 구체적으로는 서버에 도달하기 전, 48 kHz 모노로 샘플링을 수행하고 Opus 코덱 및 WebRTC 환경에 맞춘 정교한 전처리 과정을 거칩니다. 이는 단순히 소리를 전달하는 것을 넘어, 모든 데이터가 일정한 규격으로 처리되도록 보장하는 기술적 장치입니다.

또한 현실 세계의 물리적 제약을 극복하는 것도 필수적이었습니다. 사용자는 조용한 연구실이 아닌 에코와 노이즈가 가득한 곳에서 앱을 사용할 수 있습니다. 이를 위해 WebRTC의 APM(Acoustic Processing Module) 기술을 활용하여 에코 제거, 자동 이득 제어(AGC), 노이즈 감소 및 하이패스 필터링을 수행합니다. 이러한 강력한 전처리 과정을 통해 어떤 환경에서도 사용자의 목소리를 깨끗하게 추출하여 모델에 전달할 수 있는 안정적인 파이프라인을 구축했습니다.

결론: 현실 세계를 반영하는 차세대 인터페이스의 미래

결국 인공지능 에이전트의 성공 여부는 '현실 세계(Real World)'에서 얼마나 강건하게 작동하느냐에 달려 있습니다. Perplexity는 단순히 깨끗한 환경에서의 성능을 넘어, 시끄러운 샌프란시스코의 바(Bar) 같은 일상적인 장소에서도 작동하는 VAD(음성 활동 감지) 기술을 목표로 합니다. 친구가 새로운 앱에 대해 물었을 때 음성 인식이 실패한다면 사용자를 놓치게 되지만, 완벽하게 작동할 때는 사용자에게 경이로운 경험을 제공하기 때문입니다.

앞으로의 음성 기반 에이전트는 단순한 기능 구현을 넘어 일상에서 공기처럼 자연스럽게 스며드는 인터페이스로 진화할 것입니다. 이는 인간과 컴퓨터 사이의 상호작용(HCI)에 있어 새로운 패러다임을 제시하며, 우리가 기술과 대화하는 방식을 근본적으로 바꿀 것입니다. Perplexity와 같은 선구적인 시도는 우리가 더 직관적이고 마법 같은 디지털 경험을 누릴 수 있는 미래를 열어가고 있습니다.

근거 중심 요약

출처

  1. How Perplexity Brought Voice Search to Millions Using the Realtime API | OpenAI Developers

관련 글

← 목록으로