Voice Assistants Are Designed in the Silence

개요

음성 비서의 성능은 사용자가 말을 마친 후 발생하는 '정적 시간(pause)'을 어떻게 관리하느냐에 따라 좌우된다. 이 시간은 음성 인식, 언어 모델, 도구 호출, 음성 합성 등 여러 단계를 거치며 사용자에게는 하나의 대화 흐름으로 인식되므로, 각 단계의 지연이나 불확실성은 전체 경험을 저해한다.

주요 내용

  • 단일 턴(turn) 측정의 중요성: 음성 비서는 여러 서비스를 순차적으로 처리하는 것처럼 보이지만, 실제로는 유용한 작업이 중첩되어 실행된다. 따라서 각 서비스를 개별적으로 측정하기보다는 전체 대화 턴을 하나의 단위로 측정하고, 턴 결정 지연, STT 최종화 지연, LLM TTFT, 첫 발언 가능 청크까지의 시간, TTS 첫 오디오까지의 시간, 최종 재생까지의 시간 등 경계를 명확히 분리하여 측정해야 한다.
  • VAD와 턴 감지의 차이: 음성 활동 감지(VAD)는 음성이 있는지 여부만 판단하지만, 턴 감지는 화자가 생각을 마쳤는지 여부를 판단하는 더 복잡한 질문에 답한다. 턴 감지는 최종/중간 전사 타이밍, 신뢰도, 구두점, 도메인 패턴, 발화 속도 등을 종합적으로 고려해야 한다.
  • STT 정확도 평가: 단순한 단어 오류율(WER)보다 엔티티 수준 및 작업 성공률 평가가 중요하다. 실제 사용 환경(소음, 약한 연결, 억양 등)을 반영한 오디오로 테스트해야 하며, 스트리밍 ASR은 지연 시간을 줄이지만 불안정한 부분 가설을 도입하므로 지연 시간과 인식 품질을 함께 평가해야 한다.
  • 첫 토큰(token) 이후의 작업: LLM의 첫 토큰 생성 시간은 중요하지만, 이것이 곧 유용한 발언으로 이어지는 것은 아니다. TTS 또한 안정적인 문구 생성을 위해 기다려야 할 수 있으므로, '첫 발언 가능 청크까지의 시간'이라는 지표가 더 유용하다.
  • 도구 지연 시간의 영향: 도구 호출 지연은 필수적인 경로에 있을 때만 전체 시간에 직접적인 영향을 미친다. 사전 가져오기, 캐싱, 병렬 실행, 안전한 인정 음성 처리, 비결정적 작업 취소 등을 통해 숨기거나 줄일 수 있다.
  • 스트리밍은 통제된 중첩: 모든 단계를 스트리밍하는 것은 부분 출력이 유용하고 되돌릴 수 있을 때만 가치가 있다. 오류가 포함되거나 취소하기 어려운 경우, 또는 비용이 증가하는 경우에는 신중해야 한다.
  • 명시적인 지연 시간 예산 설정: 지연 시간 예산은 설계 제약으로, 출시 후 차트 작성 전에 설정해야 한다. 최종 재생 시간 목표를 정하고 각 단계에 예산을 할당해야 하며, 평균보다는 p50, p95, p99와 같은 분포를 측정해야 한다.
  • 전체 턴 계측: 실제 콜백에서 이벤트 경계를 기록하여 각 단계의 지속 시간을 측정하고, 트레이스 ID를 사용하여 서비스 간 상관관계를 확보해야 한다.
  • Barge-in 기능 구현: Barge-in은 기존 응답을 중단하고 새로운 사용자 음성을 처리하는 것으로, 모델 생성 취소, 합성 취소, 재생 중지, 관련 없는 도구 결과 폐기 등을 포함하는 복잡한 작업이다.
  • 프로덕션 환경 테스트: 데모는 행복 경로만 보여주지만, 프로덕션 환경에서는 인간 행동과 불완전한 인프라를 고려한 테스트가 필요하다. 다양한 오디오 조건, 사용자 입력, 도구 호출 시나리오, Barge-in, 네트워크 문제, 다국어 지원, 장기 대화 등을 테스트해야 한다.
  • 지연 시간은 아키텍처 자체: 빠른 구성 요소만으로는 성능을 보장할 수 없으며, 턴 감지, 도구 호출, 전사 안정화, 오디오 버퍼링 등 전체 파이프라인의 지연 시간을 측정하고 최적화해야 한다.

시사점

음성 비서의 성공적인 사용자 경험은 개별 기술의 속도뿐만 아니라, 사용자 발화 종료 시점부터 응답 재생 시작 시점까지 전체적인 '시간'을 얼마나 효율적으로 관리하는가에 달려 있으며, 이는 전체 아키텍처 설계의 핵심 요소이다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions