ko-tts-human-eval / README.md
xbuzz's picture
한국어 TTS 사람 청취평가 — 의원 접수대 100문장 × TTS 2종 블라인드 평가
dcf8942 verified
|
Raw
History Blame Contribute Delete
4.2 kB

A newer version of the Gradio SDK is available: 6.26.0

Upgrade
metadata
title: 한국어 TTS 사람 청취평가
emoji: 🎧
colorFrom: indigo
colorTo: pink
sdk: gradio
sdk_version: 5.49.1
app_file: app.py
pinned: false
license: cc-by-nc-4.0

한국어 TTS 사람 청취평가

합성음을 블라인드로 듣고 받아쓰기 + 0~10점을 남기는 앱. Open Ko-S2S Leaderboard 의 TTS 발음 지표를 사람 귀로 검증하기 위해 만들었다.

왜 만들었나

리더보드의 TTS 발음 점수는 합성음을 ASR(faster-whisper-large-v3-turbo)로 되받아쓴 CER 이다. RTX 4090 실측에서 이 지표가 발음이 아니라 숫자 표기를 재고 있다는 것이 드러났다.

구분 n CER
Qwen3-TTS 전체 (기존 20문장) 20 11.08%
├ 숫자 표기 문장 9 23.67%
└ 숫자 없는 문장 11 0.50%

삼십 분30분, 십이 퍼센트12% 처럼 발음은 정확한데 표기가 달라서 CER 이 올랐다. 20문장 중 실제 발음 오류는 1건뿐이었다.

허용 표기(variants) 최소거리 채점을 도입해 이 편향을 걷어내자 숫자문장 CER 이 23.67% → 3.09% 로 떨어졌다.

모델 전체 숫자문장 숫자없음
Qwen3-TTS-12Hz-1.7B-CustomVoice 1.50% 3.09% 1.02%
MMS-TTS-Korean 6.28% 7.74% 5.84%

그래도 자동 지표만으로는 확정할 수 없다. 보정이 과한지 부족한지, 남은 오차가 정말 발음 문제인지는 사람이 들어봐야 안다. 그래서 이 앱을 만들었다.

무엇을 듣는가

의원(1차 의료기관) 접수대 100문장 × TTS 2종 = 200 샘플.

음성봇이 가장 먼저 투입되는 구간이 병원 접수대인데, 이 도메인의 공개 한국어 TTS 발음 벤치마크가 없다(CoreaSpeech 는 범용·gated, 상용 데이터는 비공개). 문장은 실제 한국어 의료 코퍼스에서 어휘를 채굴하되 창구 발화로 새로 썼다 — 원본은 환자 질문이거나 시험 문항이라 그대로 쓸 수 없다.

범주는 접수·안내·수납·서류·응대 각 20문장이고, 한국어 TTS 가 실제로 틀리는 지점(한자어 연음 52, 숫자+단위 23, 고유명사 15, 받침 연음 11, 외래어 10)을 의도적으로 심었다.

측정하는 것

  • 사람 CER — 받아쓴 내용 vs 원문. 숫자 표기를 정규화한 값과 원문 그대로의 값을 함께 기록해서, 둘의 차이가 곧 표기가 만드는 오차의 크기다.
  • 주관 점수(0~10) — 자연스러움·명료도.

리더보드의 tts_naturalness 는 이름과 달리 발음 정확도이고 UTMOS 는 미구현이다. 사람 점수가 이 부문의 첫 실제 자연스러움 데이터가 된다.

설계

  • 블라인드: 모델명과 정답 문장을 제출 전에는 감춘다. 정답을 먼저 보여주면 받아쓰기가 베끼기가 되어 명료도 측정이 무의미해진다.
  • 표기 통제: 사람도 삼십 분 을 듣고 30분 이라 적는다. 안내로 한글 표기를 요청하고, 채점에서도 숫자를 정규화하며, 참조에 허용 표기가 있으면 그중 최소 거리를 쓴다. 리더보드 metrics.py 와 같은 원리를 사람 평가에도 일관 적용했다.
  • 출제: 아직 안 들은 항목 우선, 그 안에서 응답 수가 적은 항목 우선.

저장

HF_TOKEN(write) 시크릿을 설정하면 응답이 데이터셋 repo 에 누적된다. 없으면 컨테이너 로컬에만 임시 저장되며 화면에 경고가 표시된다 — 조용히 유실되지 않게 하기 위함이다.

변수 기본값 설명
HF_TOKEN (없음) write 권한 토큰. 없으면 임시 저장
EVAL_DATASET_REPO baryonlabs/ko-tts-human-eval-votes 응답 누적 대상

오디오

audio/manifest.json 에 (모델, 문장, 범주, 난이도 태그, 허용 표기, 파일) 매핑이 있다. 모든 음성은 RTX 4090 에서 리더보드 하네스와 동일한 백엔드로 생성했다 — Qwen3-TTS 는 faster-qwen3-tts(ggml), MMS 는 transformers VitsModel.