LLM에게 숫자 읽기를 맡기지 마라: Voice Pipeline에서 Rule이 모델을 이기는 곳
이 글은 한국어 전화 Voice Agent 현장 노트 7부작 중 2부다. 내가 리드했던 프로젝트 — 공공 서비스 전화 상담용 실시간 한국어 voice agent(STT → LLM → TTS) — 를 만들면서 겪은 일을 정리한다. 1부에서는 STT 평가가 나를 어떻게 속였는지를 다뤘다. 이번에는 LLM을 둘러싼 텍스트 이야기다: 들어오고 나가는 숫자, STT가 거의 맞게 듣는 이름, 그리고 LLM 호출이 latency를 감수할 만한 자리. 3월의 어느 금요일 새벽 2시 17분, TTS normalizer 버그 하나를 고쳤다. 27,000원 같은 금액을 “이, 칠, 공, 공, 공 원"처럼 한 자리씩 읽어 버리는 버그였다. 그리고 30분쯤 뒤, 한국어 숫자 읽는 rule을 손으로 짜는 건 그만두고 그 일을 LLM에게 넘겼다. 어차피 한국어는 내 regex보다 LLM이 더 잘하니까. (새벽 세 시를 앞둔 사람의 논리였다.) ...