| Type | Technique |
|---|---|
| Aliases | ITN, inverse text normalization |
| Related | 음성-텍스트 변환 (STT), 단어 오류율 (WER), 화자 분리 (Diarization) |
무엇인가
음성 인식기([[speech-to-text]])는 사람이 말한 소리를 글자로 옮긴다. 그런데 사람은 전화번호를 "사일사 다시 오오오 다시 일이삼사"처럼 한 자리씩 읽고, 가격을 "삼만 오천 원"이라고 부른다. 음성 인식기가 이 소리를 그대로 받아 적으면 "사일사 오오오 일이삼사"라는 글자가 나온다. 사람이 보기엔 어색하고, 검색이나 데이터베이스에 넣기에도 불편하다.
역 텍스트 정규화(Inverse Text Normalization, ITN)는 이런 "말로 풀어 쓴 형태"를 "글로 적을 때의 형태"로 바꿔 주는 단계다. 이름에 "역(逆)"이 붙은 이유는, 음성 합성(TTS) 쪽에서 "414"를 "사백십사"로 풀어 읽기 위해 거치는 정규화의 반대 방향이기 때문이다.
어떤 변환이 일어나는가
대표적인 변환은 다음과 같다.
- 숫자: "이천이십육 년" → "2026년"
- 전화번호: "공일공 다시 일이삼사 다시 오육칠팔" → "010-1234-5678"
- 시간: "오후 세 시 반" → "오후 3:30"
- 통화: "삼십오 달러" → "$35"
- 이메일: "지메일 닷 컴" → "@gmail.com"
언어마다 규칙이 다르고, 같은 한국어 안에서도 도메인(의료·금융·법률)에 따라 정답이 달라질 수 있다.
왜 중요한가
음성 비서, 자막, 회의 받아쓰기 같은 서비스에서 ITN 은 출력의 가독성을 결정짓는다. ITN 이 잘 되어 있지 않으면 음성 인식 자체의 정확도가 같아도 사용자가 체감하는 품질이 크게 떨어진다. 그래서 [[word-error-rate]] 같은 단순 정확도 지표 외에, 숫자·날짜·고유명사를 제대로 정리했는지 따로 평가하는 경우가 많다.
누가 만드는가
전통적으로는 NVIDIA NeMo, Google Sparrowhawk 같은 도구가 룰을 모아 두고 있고, 최근 ASR 모델들은 아예 학습 단계에서 written-form 을 직접 뱉도록 만든다. 사용자 입장에서는 "숫자가 깔끔하게 나오느냐"의 차이로 보이지만, 그 뒤에는 한 단계의 후처리, 또는 모델 안에 녹아 든 후처리가 항상 있다.
위치와 역할
ITN 은 ASR 파이프라인의 마지막 후처리 단계다. acoustic 모델과 언어 모델이 spoken-form 텍스트("이천이십육 년 사월 이십칠 일")를 만들어 내면, ITN 이 이를 written-form("2026년 4월 27일")으로 바꾼다. 자막, 음성 비서, 콜센터 분석, 의료 받아쓰기 같은 다운스트림 작업의 가독성과 entity 추출 정확도를 좌우한다.
구현 방식
WFST 룰 기반
NVIDIA NeMo 의 ITN 모듈, Google Sparrowhawk 가 대표적이다. 도메인별 grammar 를 weighted finite-state transducer 로 컴파일해 결정론적으로 변환한다. 장점은 디버깅이 쉽고 새 룰을 추가하기 좋다는 점, 단점은 새 언어나 새 도메인을 시작할 때 룰 작성 비용이 크고 모호한 입력에 약하다는 점.
seq2seq 모델
T5·BART 같은 작은 트랜스포머를 spoken→written pair 로 fine-tune 해 ITN 을 수행한다. 도메인 적응이 빠르고 문맥 기반 모호성 해소에 강하지만, hallucination 으로 입력에 없는 숫자·기호를 만들거나 고유명사를 임의로 바꿔 버리는 실패가 알려져 있다. 보통 WFST 와 hybrid 로 묶어, 룰이 처리할 수 있는 입력은 룰로, 나머지는 모델로 보낸다.
모델 내부 통합 (joint)
최근 end-to-end ASR — Whisper, USM, 그리고 시장에 새로 합류한 Grok-STT 같은 후발 모델들 — 은 written-form 을 직접 출력하도록 학습돼, 별도 ITN 단계가 없는 것처럼 보인다. 실제로는 학습 데이터에 written-form 라벨이 섞여 있고, 모델 내부에서 acoustic confidence 와 정규화 결정을 함께 한다.
평가와 운영
- 정규화-인지 WER: 숫자·날짜·통화의 spoken/written 변형을 정답으로 동시 인정하는 변형 [[word-error-rate]]. 단순 WER 이 ITN 출력에 불리하게 채점되는 문제를 완화한다.
- Entity F1: 전화번호·금액·날짜·단위 같은 슬롯을 추출해 normalized 형태로 단위별 매칭. 다운스트림 품질에 더 직접 대응한다.
- 도메인 회귀 셋: 의료 단위(mg/dL), 통화 기호, 법률 사건번호, 약어가 자주 깨지므로 별도 골든셋을 운영한다.
[[speaker-diarization]] 결과와 함께 다룰 때는 화자 경계를 넘어 숫자가 합쳐지지 않도록 segment 단위로 ITN 을 돌리는 것이 안전하다. streaming 환경에서는 부분 hypothesis 의 ITN 결정을 후속 토큰이 들어왔을 때 뒤집어야 할 수 있어, UI 깜빡임을 줄이는 retraction 전략이 별도 과제다.
정의와 위치
Inverse Text Normalization(ITN) 은 ASR 시스템의 후처리 단계로, spoken-form 표기 (숫자·날짜·통화·약어·이메일·URL 등이 자연어 발음대로 풀어 쓰인 형태) 를 written-form 표기 (실제 텍스트로 사용되는 정형 형식) 로 사상하는 작업이다. TTS 의 텍스트 정규화 (TN) 와 반대 방향이라는 점에서 이름이 붙었다. 입력은 일반적으로 ASR 디코더의 hypothesis 이며, 출력은 다운스트림 NLU·검색·자막 시스템이 소비할 수 있는 정형 텍스트다.
구현 패러다임
WFST 기반
전통적 접근은 weighted finite-state transducer 로 grammar 를 컴파일하는 방식이다. NVIDIA NeMo 의 ITN, Google Sparrowhawk (Sproat & Jaitly, 2016 계열) 가 대표적이며, 영어·중국어·러시아어 등 다국어와 도메인별 모듈 구성이 가능하다. 결정론적이고 검증 가능하지만, 새 언어 추가 비용이 크고 long-tail 모호성에 취약하다.
Neural seq2seq
Sproat 그룹의 후속 연구와 T5·BART 기반 ITN 모델은 spoken/written pair 를 직접 학습한다. context 기반 모호성 해소(예: "오 시"가 시각인지 시간 길이인지)는 강하지만, hallucination — 입력에 없는 숫자·기호를 생성하거나 고유명사를 임의로 바꾸는 실패 — 이 알려진 실패 모드다. 그래서 production 시스템은 대개 hybrid: WFST 가 처리 가능한 패턴은 룰로, 잔여는 모델로, 그리고 모델 출력을 후속 검증기로 거른다.
Joint / 통합형
최근 흐름은 ITN 을 별도 단계로 두지 않고 ASR 모델이 written-form 을 직접 출력하도록 학습하는 것이다. Whisper, USM, 그리고 후발주자인 Grok-STT 같은 모델들은 written-form 라벨을 섞어 학습한다. 이 방식은 acoustic confidence 와 normalization 결정을 단일 모델 안에서 결합할 수 있어 모호한 입력에서 유리하지만, 학습 데이터의 라벨 일관성이 결과 품질을 좌우한다. 실패 시 디버깅이 어렵고, 룰 수준의 결정론을 잃는 trade-off 가 있다.
평가
평가는 크게 두 갈래다.
- 정규화-인지 WER: 숫자·날짜의 spoken/written 변형을 정답 집합으로 확장한 [[word-error-rate]]. 단순 WER 이 ITN 출력에 불리하게 평가되는 문제를 완화한다.
- Entity-level F1: 전화번호·통화·날짜·단위 등 슬롯을 추출해 normalized 형태로 매칭한다. 다운스트림 작업의 실용 품질에 더 직접 대응한다.
도메인별 회귀 셋(의료 단위, 금융 통화, 법률 사건번호) 운영은 prod 표준이다. 다국어 환경에서는 [[speaker-diarization]] 후 화자별 segment 단위 ITN, 코드 스위칭 시 grammar 폴백 등이 추가 고려 사항이다.
한계와 열린 문제
- 저자원 언어: WFST 룰과 학습 코퍼스 모두 부족해, 영어 대비 품질 격차가 크다.
- 고유명사·신조어: "GPT-사" 같은 발음을 "GPT-4"로 옮기려면 lexicon 갱신과 frequent retraining 이 필수다.
- Streaming ITN: 부분 hypothesis 에서 결정을 내리면 후속 토큰이 들어왔을 때 결정을 뒤집어야 하는 retraction 문제가 발생한다.
- Joint 모델의 검증성: end-to-end 로 들어가면 어디서 잘못됐는지 추적하기 어렵다. attribution / consistency 연구가 진행 중이다.
- 평가 자체의 빈약함: 단순 WER 은 ITN 의 효과를 가린다. 더 풍부한 entity·readability 지표가 표준화되지 않았다.
ITN 은 지표상 비중이 작아 보이지만, 사용자가 체감하는 ASR 품질의 큰 부분을 결정한다. 모델이 written-form 을 직접 출력하는 시대에도, ITN 의 문제 정의는 사라지지 않고 모델 학습 데이터와 평가 셋 안으로 옮겨 갔을 뿐이다.