Jul 16, 2026

대화는 순서를 기다리지 않는다: 실시간 음성 대화 AI를 위한 데이터 파이프라인 ‘Sommelier’

Image for 대화는 순서를 기다리지 않는다: 실시간 음성 대화 AI를 위한 데이터 파이프라인 ‘Sommelier’

이번 글에서는 지난 7 미국 캘리포니아주 샌디에이고에서 개최된 자연어 처리(NLP) 인공지능(AI) 분야 최고 권위 학술대회인 ACL 2026에서 발표된 네이버클라우드의 논문(Sommelier: Scalable Open Multi-turn Audio Pre-processing for Full-duplex Speech Language Models) 소개합니다.


정규단 (NAVER Cloud*, KAIST)

김지환 (NAVER Cloud*, KAIST)

김소윤 (NAVER Cloud)

김정훈 (NAVER Cloud)

주재걸 (KAIST)

박천복 (NAVER Cloud)

*NAVER Cloud Residency Program


실시간으로 대화하는 음성 AI를 향한 첫걸음

사람처럼 자연스럽게 대화하는 한국어 음성 AI 만들기 위해서는 어떤 준비가 필요할까요?

이전 테크 블로그에서는 HCX-OMNI 소개하면서 HyperCLOVA X 음성을 정확하게 이해하고, 자연스럽게 말하는 방향으로 확장되고 있음을 설명했습니다. 하지만 듣고 유창하게 말하는 모델이더라도 여전히 상당수의 음성 AI사용자가 질문하면 AI 답하고 다시 사용자가 기다리는방식으로 동작합니다.


하지만 실제 사람의 대화는 그렇지 않습니다. 상대가 말하는 도중에잠깐만요라고 끼어들기도 하고, 설명을 듣는 중간에”, “맞아요처럼 짧게 반응하기도 합니다. 혹은 답변이 끝나기 전에 질문을 바꾸거나, 방금 들은 내용 중간에 바로 이어서 질문하기도 하죠. 


저희는 이제 한계를 넘어 AI와 사용자가 실시간으로 상호작용 하는 더 사람 같은 음성 대화를 준비하고 있습니다. 번째 단계로 실제 사람의 대화처럼 중간에 끼어들고, 답변을 들으면서 다시 질문할 있는 음성 AI 위한 데이터 전처리 파이프라인 공유하고자 합니다.


질문하고 기다리는 AI에서, 대화 중에도 반응하는 AI로

지금까지의 많은 음성 AI 사용자가 말하고 모델이 듣고 모델이 답변한 다시 사용자가 말하는 구조였습니다. 이를 Half-duplex 방식이라고 합니다. 무전기처럼 한쪽이 말할 다른 한쪽은 기다려야 하는 방식이죠.


반면 Full-duplex 방식의 음성 AI는 사람이 대화하는 방식에 훨씬 가깝습니다. AI 말하는 중에도 사용자의 목소리를 계속 들으면서 사용자가 지금 답변에 만족하는지, 새로운 질문을 던지는지, 기존 질문을 바꾸려고 끼어드는지 실시간으로 판단합니다. 예를 들어 사용자가 주말 데이트 일정 추천을 요청했다고 가정해 보겠습니다.


Half-duplex 방식에서는 AI오전에는 야외 산책을 하고…”라고 말하는 동안 사용자는 기다려야 합니다. 사용자가 중간에잠깐, 실내 위주로 추천해 라고 말해도, AI 하던 답변을 끝낸 뒤에야 이를 반영할 있습니다. 하지만 Full-duplex 방식에서는 사용자의잠깐 듣는 순간 AI 기존 설명을 멈추고, “좋습니다. 실내 위주로 다시 정리해 볼게요라며 대화 방향을 바꿉니다. 반대로 사용자가”, “좋아요처럼 짧게 호응하면 대화를 빼앗지 않고 자연스럽게 설명을 이어가죠.


Full-duplex 음성 AI 핵심은 단순히 빠르게 답하는 것이 아닙니다. 사용자의 말을 언제 기다리고, 언제 받아들이고, 언제 자신의 말을 멈출지 판단하는 사람과 같은 대화를 하는 것입니다.


그렇다면 모델이 이런 대화를 어떻게 배울 있을까요? 사실 출발점은 모델 구조 이전에 학습 데이터 있습니다. 사람처럼 끼어들고 맞장구치며 대화하려면, 그렇게 대화하는 모습이 그대로 담긴 데이터로 배워야 하기 때문입니다. 그래서 저희는 모델을 만들기에 앞서 토대가 데이터부터 준비하기로 했습니다. 


오늘 소개할 Sommelier는 실제 대화 음성을 정제해 ‘자연스러운 실시간 대화’가 살아 있는 학습 데이터로 바꿔주는 파이프라인입니다. 네이버클라우드는 이 중 일부를 연구로 활용할 수 있는 오픈소스 파이프라인으로 공개하고자 합니다. 실시간 음성 AI 향한 여정에서 저희가 내딛는 번째 스텝이죠.


지워야 할 잡음인가, 살려야 할 신호인가

Full-duplex 모델을 학습하려면 사람들이 실제로 대화하는 방식이 그대로 담긴 데이터가 필요합니다. 그런데 여기서 근본적인 문제가 있습니다. 기존의 학습용 음성 데이터는 사람이 글을 읽거나 길게 설명하는 형태가 많다는 것인데요. 여러 사람이 참여한 대화 데이터가 있더라도 오래된 전화 음질로 녹음됐거나, 오늘날의 대규모 음성 언어 모델을 학습하기에는 규모와 환경의 다양성이 충분하지 않은 경우가 많습니다.


본질적인 문제는 기존 음성 전처리 과정에서 말이 겹친 구간을 오류나 잡음으로 취급해 왔다 점입니다. 깨끗한 음성을 만든다는 명목으로 사람이 동시에 말한 부분을 삭제하거나, 한쪽 화자의 목소리만 남기는 방식이죠. 하지만 실제 대화를 들여다보면, 말 겹침은 제거해야 할 잡음만은 아닙니다.


여행 일정을 상담받는 상황을 예로 들어볼까요?


여기서 사용자의 번째 “좋아 AI에게 대화를 계속하라는 신호입니다. 설명을 듣고 있다는 짧은 맞장구인 것이죠. 반면 번째잠깐 대화의 방향을 바꾸는 끼어들기 신호입니다. 사용자가 새로운 조건을 추가했기 때문에 AI 기존 답변을 멈추고, 공연 일정을 포함해 다시 계획해야 합니다.


발화 모두 AI 음성과 겹칠 있지만, 대화에서 맡는 역할은 전혀 다릅니다. 구간을 모두 삭제한 데이터로 모델을 학습하면 AI 자연스럽게 맞장구치는 타이밍도, 끼어들기에 반응하는 방법 배우기 어렵습니다.


그런데 기존 Half-duplex 전용 데이터 전처리 방법론은 이런 자연스러운 끼어들기 등과 같은 행동들을 제거하거나 최종 답변만 전처리하여 데이터셋을 만들었습니다. 그래서 저희의 핵심 원칙은 분명합니다. 기존의 데이터 전처리 방식을 탈피하고, 자연스러운 맞장구와 끼어들기를 Full-duplex 모델이 학습할 있는 형태로 보존하는 것입니다.


Sommelier: 세 단계로 대화를 살려내는 데이터셋 파이프라인

Sommelier 거칠게 녹음된 실제 대화 음성을, 사람의 대화 흐름이 그대로 남은 학습 데이터로 바꿔주는 오픈소스 파이프라인인데요. 전체 과정은 크게 단계로 정리할 있습니다.


  1. 누가 언제 말했는지 구분하고 
  2. 겹친 목소리를 화자별로 복원하고 
  3. 여러 음성 인식 결과를 비교해 전사 결과를 검증합니다.

이를 통해 같은 짧은 맞장구부터잠깐만요 같은 끼어들기까지, 사람의 대화가 진행되는 방식과 타이밍을 데이터에 남길 있습니다. 실생활 대화에서 자연스럽게 발생하는 상호작용들을 학습 신호로 바꾸는 과정인 것이죠.



1단계: 누가 언제 말했는지 구분합니다

Full-duplex 학습 데이터를 만들기 위한 단계는누가 언제 말했는지 찾아내는 것입니다.

음성 파일 안에는 실제 대화뿐 아니라 침묵, 배경음, 의미 없는 구간이 섞여 있습니다. 저희는 먼저 목소리가 존재하는 구간을 찾고, 오디오는 대화 흐름이 끊기지 않도록 침묵 구간을 기준으로 나눕니다.


그다음 발화가 어느 화자의 목소리인지 구분합니다. 과정은 단순히 음성을 텍스트로 바꾸는 것이 아니라, 다음과 같은 대화의 시간표를 만드는 과정입니다.


  • 00:01.2 — 화자 A
  • 00:02.0 — 화자 B
  • 00:02.4 — 화자 A
  • 00:03.1 — 화자 B

시간표가 있어야 모델은 문장을 누가 말했는지 아니라어떤 타이밍에 끼어들었는지 배울 있습니다. 특히”, “”, “맞아요처럼 짧은 발화는 Full-duplex 모델에서 중요한데요. 이런 발화는 새로운 질문이 아니라 대화의 리듬을 만드는 신호일 있기 때문입니다. 그래서 Sommelier 짧은 발화와 빠른 화자 전환을 포착할 있도록 화자 구분 단계를 설계했습니다. 구체적으로는, Voice Activity Detection 이용해 원본 음성에서 실제 음성이 존재하는 구간을 찾은 , Speaker Diarization 수행하여 음성 구간이 어떤 화자의 발화인지 구분합니다. 이를 통해 누가 언제부터 언제까지 말했는지를 나타내는 대화 타임라인을 생성합니다. 


2단계: 겹친 목소리를 지우지 않고 복원합니다

사람의 대화에서는 사람이 동시에 말하는 경우가 자주 발생하는데요. 사람이 설명하는 중에 다른 사람이, 라고 맞장구치거나, “잠깐만요라고 끼어드는 경우입니다. 기존 방식에서는 이런 겹친 구간을 잘라내거나 한쪽 화자의 말만 남기는 경우가 많았습니다. 하지만 Full-duplex 모델에게는 바로 겹친 구간이 중요합니다. AI가 말하는 중에 사용자가 어떻게 반응하는지를 배울 수 있는 구간이기 때문입니다.


예를 들어 이런 상황을 생각해 보겠습니다.

대화에서 화자 B 짧은 반응이고, “잠깐 대화 방향을 바꾸는 끼어들기입니다. 발화가 화자 A 말과 겹쳐 있더라도, 사라지면 됩니다. 이를 위해 Sommelier Overlap Separation으로 사람의 말이 겹친 구간을 복원합니다. 먼저 겹치지 않은 구간에서 화자의 목소리 특징, Speaker Embedding 추출합니다. 이후 실제로 목소리가 겹친 부분만 Speech Separation 모델로 분리하고, 분리된 음성이 누구의 목소리인지 다시 매칭해 원래 발화에 이어 붙입니다.


다음으로는 배경음을 확인합니다. 실제 대화 데이터에는 사람 목소리뿐 아니라 다양한 배경음이 섞여 있을 있기 때문입니다. 이는 학습에 방해가 있어, BGM Detector 배경음이 있는 구간을 먼저 찾고, 해당 구간에만 다시 Speech Separation 적용해 음성 영역만을 추출합니다. 다시 말해, 겹친 발화는 Overlap Separation으로 살리고, 배경음은 BGM Detector Speech Separation으로 필요한 구간에서만 정리합니다.


과정을 통해 화자 A 문장도 유지하고, 화자 B 맞장구와 끼어들기도 함께 보존할 있습니다. 모델이 학습하는 데이터에는무슨 말을 했는지 아니라 ‘언제, 누구의 말 위에 겹쳐 말했는지’까지 남게 되는 것이죠.


3단계: 여러 음성 인식 결과를 종합하여 텍스트 정보를 추출합니다.

마지막 단계인 Ensembled ASR 음성에 학습을 위해 텍스트 정보를 추가하는 과정입니다. Full-duplex 모델을 학습하려면 음성뿐 아니라 발화에 대응하는 텍스트도 필요합니다. 그런데 하나의 음성 인식 모델에만 의존하면 문제가 생길 있습니다. 모델마다 취약한 영역이 있어 실제로는 없었던 말을 만들어내거나, 같은 말을 반복해서 생성하는 경우가 있기 때문인데요.


예를 들어 원본 음성에는 짧은 잡음만 있었는데, 음성 인식 결과에 아래와 같은 반복 또는 환각이 들어가 있을 있습니다.

, , , , …”


이런 전사 결과가 그대로 학습 데이터에 들어가면, 데이터로 학습된 모델도 비슷한 행동을 있습니다. 이를 막기 위해 Sommelier 다양한 음성 인식 결과를 종합하는 앙상블 방법을 활용해 여러 음성 인식 결과를 종합해 가장 신뢰할 있는 전사를 골라냅니다. 이를 통해 음성 인식 모델들이 빈번히 오류를 내는 반복 생성을 사전에 탐지하여 제어하는데요. 결과적으로 특정 음성 인식기의 오류가 Full-duplex 모델의 잘못된 대화 습관으로 이어지지 않도록 합니다.


학습 결과: 더 잘 기다리고, 더 잘 끼어드는 모델

저희는 이렇게 만든 데이터가 실제 Full-duplex 모델 학습에 도움이 되는지도 직접 Full-duplex 벤치마크를 통해 확인했습니다. 이를 위해 83시간 분량의 대화 데이터를 Sommelier 파이프라인으로 가공한 , 데이터로 Full-duplex Moshi 모델을 추가로 학습시켜 대화 맞장구와 끼어들기, 자연스러운 전환을 평가했는데요.


결과는 분명했습니다. 먼저 백채널링, 사용자가”, “맞아요처럼 짧게 반응할 있는 구간에서 모델이 불필요하게 긴말을 시작하는 비율은 1.000에서 0.291 줄었고, 짧은 맞장구를 생성하는 빈도는 0.001에서 0.052 늘었습니다.

사용자의 말이 끝난 자연스럽게 대화를 이어받는 비율 역시 0.941에서 1.000으로 상승했습니다. 마지막으로 사용자가 AI 중간에 끼어들었을 , 모델이 내용에 맞춰 응답하는 정도를 평가한 점수는 0.765에서 3.684 크게 개선됐습니다.


다시 말해 이렇게 만든 데이터로 학습한 모델은 사용자의 말을 실제로 듣고, 필요하면 자신의 발화를 멈추며, 새로 들어온 내용에 맞는 답변을 내놓는 능력이 강화된 것입니다.


Full-duplex 모델로 가는 첫걸음

이번 글에서는 Full-duplex AI 모델을 만들기 위해 어떤 데이터를 준비해야 하는지, 실제 대화의 어떤 특징을 보존해야 하는지에 대한 저희의 고민을 담았습니다. 사람의 대화는 정해진 순서대로만 진행되지 않습니다. 상대가 말하는 중간에라고 반응하고, 새로운 조건이 떠오르면잠깐만요라고 끼어듭니다. 때로는 사람이 동시에 말하고, 주변 소음과 배경음이 대화에 섞이기도 하죠.


Sommelier 복잡함을 지우는 대신 보존합니다. 누가 언제 말했는지 구분하고, 겹친 목소리를 화자별로 복원하고, 여러 음성 인식 결과를 종합해 신뢰할 있는 학습 데이터를 만듭니다. 결과 모델은 언제 기다리고, 언제 짧게 호응하며, 언제 자신의 말을 멈춰야 하는지를 더 잘 배우게 되었습니다.


이번 Sommelier 파이프라인 공개는 시작점입니다. Sommelier 파이프라인과 네이버클라우드만의 Full-duplex 데이터셋 구축 노하우는 앞으로 선보일 Full-duplex 모델의 기반이 것입니다. 네이버클라우드는 이러한 과정에서 얻은 기술적 인사이트와 결과물을 앞으로도 꾸준히 공유하겠습니다. 


Sommelier 파이프라인의 코드와 데모는 오픈소스 라이브러리 프로젝트 페이지에서 확인하실 있습니다.

[전체 논문 보기]