Automated TTS Quality Evaluation Pipeline
음성‑TTS 품질을 자동으로 수치화하는 간단한 파이프라인을 소개한다. TTS(또는 녹음) → ASR 재전사 → 원문과 정렬 → WER/CER·DTW 점수 산출 → 발화별 리포트
Hun Jang Nov 25, 2025
자동 음소-음성 정렬 정확도 검증기 만들기
음성‑TTS 품질을 자동으로 수치화하는 간단한 파이프라인을 소개
TTS(또는 녹음) → ASR 재전사 → 원문과 정렬 → WER/CER·DTW 점수 산출 → 발화별 리포트
왜 필요한가
- POI(Point‑of‑Interest): 상호명·상품명·인명 같은 고유명사 정확도가 비즈니스 임팩트를 좌우한다.
- 멀티링구얼/코드스위칭: 언어마다 오류 양상이 달라 발화 단위 점검이 필요하다.
- 모델/빌드 비교: 배포 전후, 보이스/프롬프트/샘플링 설정을 바꿨을 때 수치로 전후비교 가능.
핵심 지표
- WER (Word Error Rate) / CER (Character Error Rate): 삽입(I)·삭제(D)·대치(S) 합을 기준으로 함. 짧은 POI에는 CER가 민감.
- DTW(동적 시간 왜곡): 두 음성의 프레임 단위 경로 비용. 발음 타이밍/신장 차이를 반영.
- Alignment hit@k (POI): 사전(lexicon) 또는 정규식으로 추출한 POI 토큰이 정렬 상에서 매칭됐는지 측정.
동작 흐름
- 텍스트 원문 준비 (언어태그/POI 마크업 선택)
- TTS 또는 사용자 음성 생성/수집
- ASR로 재전사 (언어 자동/강제)
- 텍스트 기준 WER/CER 산출 + POI 정규식 매칭
- 오디오‑오디오 DTW로 타이밍 유사도(선택)
- 발화별 리포트/랭킹 → 임계치 미달 항목만 수동 청취
최소 구현 예시 (파이썬, 의존성: jiwer, librosa, numpy)
실무 팁
- 정규화: 대소문자, 숫자 읽기(one→1), 기호(#, @) 등 ASR‑TTS 간 규칙 통일이 WER 안정화에 필수.
- 언어 고정 vs. 자동감지: 코드스위칭이면 문장 단위 언어 힌트가 WER 분산을 줄인다.
- POI 사전: 상호명/브랜드 철자 변형(띄어쓰기·하이픈)을 대체 패턴으로 준비.
- 임계치: 예) WER≤0.08 또는 CER≤0.04, POI 미히트 시 레드 플래그로 수동 청취.
- 리포트: 발화별 점수 정렬, POI miss만 모아서 QA 큐로 보내면 효율적.
확장 아이디어
- *음소 단위 정렬(forced alignment)**로 발음별 가중 오류를 표출(“ㄹ→ㄴ 치환” 등).
- 발화‑메타 로깅: 보이스ID, 샘플링레이트, prosody 설정까지 저장 → A/B 실험 자동 집계.
- 멀티턴 QA: POI가 질문 의도와 맞는지 NLU 일치도(semantic similarity)까지 포함.