전화로 이름 받아 적기는 왜 이렇게 어려울까
타우-엘리시테이션이 음성 에이전트의 다중 턴 정보 수집을 측정한 방식을 해설합니다. 텍스트에서는 다 맞추고 음성에서는 틀리는 이유와 검증과 복구의 병목을 다룹니다.
원문 논문 보기
$\\tau$-Elicitation: Benchmarking multi-turn entity extraction in voice agents라는 논문이 arXiv에 공개됐습니다. 식별자는 arXiv 2609.13602입니다. 원문 링크는 제목 아래에 걸어 두었습니다. 이 논문이 내세우는 주장은 한 문장으로 정리됩니다. 음성 에이전트가 여러 턴에 걸쳐 이름과 주소 같은 정보를 한 글자도 틀리지 않고 받아 적는지 따로 측정하면 텍스트에서는 보이지 않던 실패가 드러난다는 것입니다.
전화로 이름 한 번 받아 적어 본 사람은 압니다
호텔 프런트에서 예약 전화를 받아 본 경험을 떠올려 보시면 됩니다. 상대가 말하는 성함을 듣고 그대로 적는 일은 생각보다 쉽게 어긋납니다. 김민준인지 김민준인지, 영문 이름이라면 e가 두 번인지 한 번인지, 주소의 동과 호수가 맞는지, 날짜가 15일인지 50일인지가 헷갈리죠. 그래서 사람은 자연스럽게 되묻습니다. "민준이 어떻게 쓰세요?" 하고 철자를 확인하고, 적은 것을 다시 읽어주면서 틀린 부분을 고칩니다. 이 과정은 이해를 돕기 위해 들어 둔 예시 장면인데요. 음성으로 정보를 주고받는 일이 원래 여러 번의 확인을 필요로 한다는 점을 보여줍니다.
제가 이 논문에서 오래 머문 부분은 바로 그 당연한 과정을 벤치마크로 옮겼다는 점입니다. 음성 에이전트는 요즘 예약을 받고, 주소를 묻고, 식별 번호를 받아 적는 일을 맡습니다. 그런데 기존 평가는 통화가 끝까지 잘 마쳤는지만 보고, 어디에서 받아쓰기가 틀렸는지는 잘 보여주지 않았습니다. 통화가 매끈하게 끝났는데 정작 예약 이름이 틀렸다면, 그 통화를 잘했다고 말하기는 어렵죠. 그렇다면 받아쓰기 자체를 따로 떼어내서 측정할 수는 없을까요? 이 논문은 그 질문에서 출발합니다.

끝까지 잘했다는 점수가 가리는 것이 있습니다
종단 간 평가는 통화가 성립했는지, 과제가 해결된 것처럼 보이는지를 크게 봅니다. 그런데 이 방식은 실패의 위치를 흐립니다. 음성 인식이 틀렸는지, 인식은 맞았는데 대화 관리가 놓쳤는지, 아니면 마지막에 값을 정리하는 단계에서 틀렸는지가 한 점수 안에 뭉개지기 때문입니다. 점수는 하나인데 원인은 여러 개인 셈이죠. 그래서 개발자는 점수를 보고도 어디를 고쳐야 할지 알기 어렵습니다.
이 논문이 지적하는 지점도 여기와 이어집니다. 음성 에이전트는 이름과 주소와 식별자와 날짜와 시간을 정확히 모아야 합니다. 한 글자만 틀려도 예약이 다른 사람에게 넘어가고, 배송이 다른 집으로 가고, 결제가 막힙니다. 그런데 통화가 자연스러웠다는 점수는 이런 글자 단위의 정확함을 보장하지 않습니다. 말투가 부드러웠는데 받아 적은 번호가 틀렸다면, 사용자는 그 통화를 실패로 기억하죠. 그렇다면 매끈함보다 받아쓰기를 직접 재야 하지 않을까요? 저는 이 문제의식이 회사에서 모델을 볼 때의 기준과도 닿아 있다고 봅니다. 저희가 새로운 AI 구조를 볼 때도 점수 하나만 보지 않고, 무엇이 바뀌었고 그 변화가 시스템에서 어떤 비용을 만드는지를 함께 보니까요.
글로 하면 다 맞는데 목소리에서는 왜 틀릴까
이 논문의 설계에서 눈에 밟히는 대목은 대조군입니다. 연구진은 음성 에이전트와 같은 과제를 푸는 텍스트 에이전트를 따로 두었는데, 이 텍스트 에이전트는 200개 과제를 모두 통과합니다. 같은 과제, 같은 정보, 같은 정리 규칙인데 입력 통로만 글로 바뀌면 다 맞는 것이죠. 이 결과는 실패의 원인을 좁혀 줍니다. 과제가 논리적으로 어려워서 틀렸다기보다, 목소리로 주고받는 과정 자체에서 무너진다는 뜻이기 때문입니다.
생각해 보면 사람도 비슷하게 배웁니다. 글로 온 주민등록번호는 그대로 옮기면 되지만, 전화로 들은 번호는 한 번에 옮기기 어렵습니다. 소리가 겹치고, 억양이 뭉개지고, 주변 소음이 끼어들죠. 에이전트도 비슷한 처지인데요. 텍스트에서는 또렷하던 값이 음성에서는 흔들립니다. 그래서 이 대조군은 단순한 참고 성적을 넘어 논문 전체의 해석을 지탱하는 기둥이 됩니다. 텍스트에서는 되는데 음성에서는 안 된다면, 그 차이를 만든 것이 바로 음성 상호작용이라는 결론이 나오니까요. 여기서 재미있는 질문이 생깁니다. 그 차이는 정확히 어디에서 생길까요? 인식의 문제일까요, 아니면 대화를 이어가는 방식의 문제일까요?

200개 과제 속에 난이도와 현실감을 숨겨 둔 이유
벤치마크의 겉모습은 단순합니다. 200개 과제, 10개 엔티티 유형, 난이도 조절, 발신자 현실감, 세 가지 환경이 갖춰져 있습니다. 그런데 이 구성을 조금 뜯어보면 의도가 보입니다. 엔티티 유형을 10개로 나눈 것은 이름만 잘하면 되는 평가를 피하기 위해서입니다. 이름과 주소와 식별자와 날짜와 시간은 틀리는 양상이 서로 다르니까요. 이름은 발음이 비슷해서 틀리고, 주소는 숫자와 동 이름이 얽혀서 틀리고, 식별자는 길어서 틀립니다. 한 유형만 보면 에이전트의 약점이 가려지죠.
난이도 조절도 같은 맥락에서 이해됩니다. 쉬운 이름만 주면 대부분의 에이전트가 통과하고, 어려운 이름만 주면 대부분이 떨어집니다. 그러면 변별력이 사라지죠. 그래서 쉬운 경우와 까다로운 경우를 함께 섞어 두면, 어디부터 무너지는지가 보입니다. 발신자 현실감이라는 요소도 눈에 남습니다. 실제 전화에서는 발신자가 철자를 말하기도 하고, 말을 더듬기도 하고, 다시 시작하기도 하고, 발음을 흐리기도 합니다. 이런 현실감을 통제해서 넣으면, 어떤 흔들림에 강한지가 드러나죠. 세 가지 환경은 이런 흔들림을 같은 잣대로 반복해서 잴 수 있게 해줍니다.
저는 여기서 멈칫했습니다. 과제 수를 200개로 잡은 것은 많은 것도 적은 것도 아닌 어중간한 숫자처럼 보이는데요. 곱씹어 보면 이 숫자는 통계와 운영 사이의 타협으로 읽힙니다. 너무 적으면 유형별 차이가 우연에 묻히고, 너무 많으면 음성 통화 실험 비용이 감당하기 어려워집니다. 음성 실험은 텍스트 실험과 달리 통화 시간과 음성 합성 비용이 매번 붙으니까요. 그래서 200이라는 숫자는 그 자체로 이 분야의 현실을 말해줍니다. 음성을 재는 일은 글로 재는 일보다 손이 많이 간다는 것이죠.
0.14에서 0.41이라는 숫자를 어떻게 받아들여야 할까
결과부터 말하면 숫자는 낮습니다. 네 가지 음성 구성의 강건한 정확 성공률은 0.14에서 0.41 사이에 머뭅니다. 여기서 강건하다는 말은 한 번 맞히는 데서 끝나지 않고 여러 번 시도해도 흔들리지 않고 맞춰야 한다는 뜻입니다. 논문에서 쓰는 Pass 세제곱이라는 지표도 같은 방향을 가리키는데요. 세 번을 연달아 틀리지 않고 맞춰야 통과로 인정하는 셈이라서 운으로 한 번 맞힌 경우는 걸러집니다. 그러니까 0.41이라는 가장 좋은 숫자도 "다섯 번 중 두 번은 세 번 연속으로 다 맞히지 못한다"는 뜻에 가깝습니다.
이 숫자는 그대로 믿기 전에 조건을 봐야 합니다. 한 글자도 틀리면 실패로 처리하는 엄격한 잣대이기 때문입니다. 김민준을 김민준으로 적으면 사람은 "아, 그분이구나" 하고 알아듣지만, 예약 시스템은 다른 사람으로 처리할 수 있습니다. 그래서 엄격한 잣대가 억지는 아닙니다. 다만 이 잣대가 높다는 점은 염두에 둬야 합니다. 부드러운 대화 점수에서는 80점 같아 보이던 에이전트가, 글자 단위로 재면 14점에서 41점 사이로 내려앉는다는 것이 이 논문이 보여주는 간극이죠.
문제는 그다음입니다. 이 간극을 알았으니 다음에는 어디를 봐야 할까요? 단순히 모델이 커지면 해결될 문제일까요, 대화의 절차가 바뀌어야 할 문제일까요? 숫자를 오래 들여다보면 후자에 가깝다는 느낌이 듭니다. 텍스트 대조군이 이미 다 맞히고 있으니, 남은 문제는 음성을 다루는 절차에 있다는 뜻이 되니까요.

에이전트는 언제 다시 묻고 언제 그냥 넘어갈까
사람은 확신이 없을 때 되묻습니다. 에이전트도 어느 정도는 그렇게 움직입니다. 어려운 엔티티나 낯선 엔티티가 나오면 검증 시도가 늘어납니다. 받아 적은 값이 틀린 것으로 보일 때 다시 확인하는 경우도 있습니다. 여기까지는 예상과 맞물리죠. 그런데 이 논문을 읽으면서 고개를 갸웃하게 되는 대목이 뒤에 나옵니다. 가장 약한 발신자 목소리에서는 검증이 늘지 않았다는 것입니다.
이 대목은 곱씹을수록 의미가 깊습니다. 가장 도움이 필요한 상황에서 에이전트가 되묻지 않았다는 뜻이기 때문입니다. 왜 그랬을까요? 가능한 해석은 여러 갈래입니다. 에이전트가 자신의 약점을 모르고 지나쳤을 수도 있고, 음질이 나빠서 틀렸다는 신호 자체를 놓쳤을 수도 있습니다. 혹은 틀린 줄 알면서도 대화를 끊지 않으려고 넘어갔을 수도 있죠. 어느 해석이 맞는지 논문만으로는 단정하기 어렵습니다. 하지만 실제 시스템 관점에서 보면 다음 질문이 바로 생깁니다. 확신이 없을 때 되묻는 규칙이, 정작 가장 헷갈리는 음성에서는 왜 작동하지 않았을까요?
또 하나 짚을 점은 검증의 방향이 늘 정확하지는 않다는 것입니다. 틀린 경우에 검증을 늘리는 경향이 있다는 말은, 뒤집으면 맞았는데도 의심하거나 틀렸는데도 그냥 넘어가는 경우가 섞여 있다는 뜻이기도 합니다. 검증은 공짜가 아닙니다. 매번 되물으면 통화는 길어지고 사용자는 지칩니다. 그래서 검증은 맞게 쓸 때만 약이 됩니다. 언제 되묻고 언제 넘어갈지를 가르는 감각, 그 감각이 아직은 무르다는 것이 이 절의 메시지처럼 읽힙니다.
확인하고도 고치지 못하는 순간이 더 많습니다
검증보다 뼈아픈 숫자는 복구율입니다. 검증된 오류 중에서 실제로 고쳐지는 비율은 24에서 37퍼센트에 그칩니다. 다시 말하면 틀린 줄 알고 되물어도 네 번 중 세 번 가까이는 끝내 바로잡지 못한다는 뜻입니다. 확인했다는 것은 문제를 알아챘다는 뜻인데, 알아채고도 고치지 못하는 것이죠. 이 차이는 그냥 넘기기 어렵습니다. 검증은 진단이고 복구는 치료인데, 진단만 되고 치료가 안 되는 셈이니까요.
전화 통화를 떠올려 보면 이유가 짐작됩니다. 상대가 "제 이름은 박서연이에요, 서는 서울 서, 연은 인연 연이요"라고 말한다고 해 보죠. 이 설명은 이해를 돕기 위해 들어 둔 예시 발화인데요. 에이전트는 이 설명을 듣고도 어떤 글자를 써야 할지 모를 수 있습니다. 서울 서가 서인지 서인지, 인연 연이 연인지 연인지가 말만으로는 가려지지 않기 때문입니다. 그래서 다시 묻고, 상대는 다시 설명하고, 시간은 흐르는데 값은 그대로입니다. 확인했다는 기록은 남지만 결과는 틀린 채로 남죠.
저는 이 숫자보다 그 뒤의 구조가 더 신경 쓰입니다. 복구는 한 번의 질문으로 끝나지 않고 여러 턴에 걸쳐 값을 좁혀가는 과정이기 때문입니다. 철자를 듣고, 적은 것을 읽어주고, 틀린 부분을 고치고, 다시 확정하는 순서가 필요합니다. 이 순서가 없으면 검증은 그저 같은 자리를 맴도는 질문이 됩니다. "다시 한 번 말씀해 주세요"를 반복하는 에이전트를 상상해 보시면 됩니다. 정중하지만 앞으로 나아가지 않죠. 그래서 복구의 병목은 단순한 인식 오류를 넘어 절차의 부재에서 비롯된 것으로 읽힙니다.

철자를 부르고 다시 읽어주면 무엇이 달라질까
이 논문이 제안하는 처방은 거창하지 않습니다. 철자를 부르게 하고, 받아 적은 것을 다시 읽어주고, 틀린 부분을 고치고, 마지막에 확정하는 절차를 스캐폴드로 고정하는 것입니다. 말하자면 사람이 전화를 받을 때 무의식적으로 하던 일을 순서대로 적어 둔 것이죠. 그런데 효과는 분명합니다. 강건한 Pass 세제곱 점수가 14에서 31포인트 오릅니다. 가장 낮은 구성도, 가장 높은 구성도 함께 올라갑니다.
이 상승폭은 숫자로만 보면 꽤 큽니다. 0.14 근처에 있던 구성이 0.3 언저리로 올라오면 체감이 달라지니까요. 그런데 이 처방을 자세히 보면 새로운 능력이 붙었다기보다 실수를 줄이는 절차가 더해졌다고 보는 편이 가깝습니다. 철자를 부르면 비슷한 발음이 가려지고, 읽어주면 발신자가 틀린 부분을 잡아낼 기회를 얻고, 확정을 하면 마지막에 한 번 더 걸러집니다. 각 단계는 화려하지 않지만, 함께 묶이면 받아쓰기의 흔들림을 줄여줍니다.
여기서는 조금 조심해서 읽을 필요가 있습니다. 스캐폴드가 점수를 올렸다고 해서 에이전트가 음성을 더 잘 듣게 된 것은 아니기 때문입니다. 듣는 귀는 그대로인데 확인하는 손이 부지런해진 셈이죠. 그럼에도 저는 이 결과를 가볍게 보지 않습니다. 음성 에이전트의 실패가 듣는 귀의 문제에 더해 확인하는 손의 문제, 곧 절차의 문제라는 것을 보여주기 때문입니다. 좋은 절차는 약한 귀를 어느 정도 보완할 수 있다는 것이고, 이는 설계자에게는 희소식입니다. 모델을 통째로 바꾸지 않고도 올릴 수 있는 점수가 있다는 뜻이니까요.
21초에서 28초라는 대가를 어떻게 볼 것인가
효과에는 대가가 따릅니다. 이 스캐폴드는 통화당 21초에서 28초를 더 씁니다. 철자를 묻고, 읽어주고, 고치고, 확정하면 시간이 늘어나는 것은 당연합니다. 그런데 이 숫자를 어떻게 받아들여야 할까요? 길다고만 말하기에는 정확도가 함께 올랐고, 짧다고만 말하기에는 20초 넘는 추가 시간이 적지 않기 때문입니다.
운영 측면에서 보면 이 차이는 상당히 큽니다. 콜센터나 예약 라인을 떠올려 보시면 됩니다. 한 통화에 25초가 추가되면 시간당 처리할 수 있는 통화 수가 줄고, 대기열이 길어지고, 인건비와 통신비가 함께 늘어납니다. 반면 이름을 틀려서 생기는 비용도 만만치 않습니다. 잘못된 예약 하나를 바로잡으려면 재통화와 확인과 보상 절차가 필요합니다. 그래서 21초에서 28초라는 숫자는 단순한 지연을 넘어 선택의 문제로 읽힙니다. 정확하게 오래 통화할 것인가, 빠르게 통화하고 뒤에서 고칠 것인가를 고르는 일이죠.
좋은 건 알겠는데, 이걸 실제로 어떻게 서빙할까요? 모든 통화에서 같은 절차를 돌릴 필요는 없어 보입니다. 쉬운 값은 가볍게 넘기고, 어렵거나 낯선 값에서만 철자 확인을 켜는 식으로 조절할 수 있죠. 실제로 이 논문의 검증 결과도 어려운 경우에 검증이 늘어난다는 점을 보여줍니다. 그렇다면 다음 설계는 조건부 절차가 될 수 있습니다. 위험해 보이는 값에서만 시간을 쓰는 것이죠. 저는 앞으로 보고 싶은 것이 바로 그 지점입니다. 고정된 절차에 더해 상황에 따라 길어졌다 짧아졌다 하는 절차가 이 점수를 얼마나 유지하면서 시간을 얼마나 아낄 수 있을지 말이죠.

발음 실수와 다시 시작은 왜 다르게 작용할까
마지막으로 다룰 결과는 얼핏 사소해 보이지만 뜯어보면 쓸모가 있습니다. 철자 방식의 차이와 다시 시작은 정확 성공률에 뚜렷한 영향을 주지 않았는데, 발음 실수는 복구에 드는 노력을 늘렸다는 것입니다. 같은 흔들림처럼 보여도 에이전트에게는 전혀 다른 일이라는 뜻이죠.
이유를 따라가 보면 감이 옵니다. 철자를 부르는 방식이 달라도 결국 같은 글자를 가리키면 에이전트는 값을 확정할 수 있습니다. "에스로 시작해요"라고 하든 "S라고요"라고 하든, 가리키는 글자가 같으면 결과는 같죠. 다시 시작도 비슷합니다. "아, 다시 말할게요" 하고 끊고 다시 말하면 앞의 말은 버리고 뒤의 말을 따르면 됩니다. 반면 발음 실수는 값을 흐립니다. 박과 박, 서와 서, 연과 연처럼 소리가 겹치면 어느 글자인지 자체가 불확실해집니다. 그래서 에이전트는 더 오래 묻고, 더 여러 번 확인하고, 그래도 확신을 얻지 못합니다.
이 구분은 실무에서 바로 써먹을 수 있습니다. 모든 흔들림을 같은 경보로 다룰 필요가 없다는 뜻이기 때문입니다. 다시 시작은 기다렸다가 뒤의 말을 따르면 되고, 철자 방식의 차이는 정규화하면 되지만, 발음 실수는 처음부터 복구 절차를 켜야 합니다. 발신자가 헷갈리는 발음을 내놓는 순간, 그 통화는 이미 긴 통화가 될 가능성이 큽니다. 그렇다면 에이전트는 그 신호를 일찍 알아채야 하지 않을까요? 저는 이 대목이 논문 전체에서 가장 실무적인 힌트라고 봅니다. 무엇을 걱정하고 무엇을 흘려보낼지를 가르는 기준이 되니까요.
음성 에이전트를 만든다면 어디부터 고치겠습니까
앞에서 미뤄둔 질문으로 돌아올 차례입니다. 받아쓰기를 따로 재면 무엇이 달라질까요? 답은 생각보다 구체적입니다. 텍스트에서는 다 맞는데 음성에서는 0.14에서 0.41 사이로 떨어진다면, 고쳐야 할 곳은 언어 이해보다 음성 상호작용 쪽에 있다는 뜻입니다. 검증이 가장 약한 목소리에서 늘지 않는다면, 확신이 없을 때 되묻는 규칙부터 손봐야 합니다. 검증된 오류의 24에서 37퍼센트만 고쳐진다면, 다시 묻는 문장보다 고치는 순서를 먼저 짜야 합니다.
이 논문이 남기는 그림은 한쪽으로 치우치지 않습니다. 철자를 부르고 읽어주고 고치고 확정하는 절차만으로도 강건한 점수가 14에서 31포인트 오르는데, 그 대가로 21초에서 28초가 든다는 것입니다. 정확도를 돈 주고 사는 셈이죠. 이 거래를 무조건 좋은 거래라고 말하기는 어렵습니다. 상황에 따라 살 만한 거래가 되기도 하고, 아닐 때도 있다는 것이 더 솔직한 표현입니다. 급한 안내 방송처럼 틀려도 되는 값이 있는 반면, 처방전이나 결제처럼 틀리면 안 되는 값도 있으니까요.
그렇다면 사람의 역할은 무엇일까요. 에이전트가 스스로 철자를 묻고 다시 읽어주는 시대일수록, 무엇을 언제 물을지와 틀렸을 때 어떻게 좁혀갈지를 정하는 일은 여전히 사람의 몫으로 남습니다. 어떤 값은 한 글자도 틀리면 안 되고, 어떤 흔들림은 그냥 흘려보내도 되며, 어떤 발음에서는 처음부터 긴 절차를 타야 한다는 기준 말이죠. 이 기준을 정하는 일이야말로 음성 에이전트를 만드는 일의 앞부분이라고 저는 봅니다. 받아쓰기 하나를 제대로 재는 일에서 시작하는 것이죠.