중국어 TTS 숫자 정확도 벤치마크 | VoicePing 본문으로 건너뛰기
Text to Speech Mandarin TTS Voice Cloning Numeric Fidelity Speech AI Benchmark Fish Audio S2.1 CosyVoice IndexTTS Qwen3 TTS Chinese

중국어 TTS 모델은 숫자를 어떻게 읽는가: 음성 복제 600개 샘플 벤치마크

VoicePing- Kai-Teh Tzeng 8 분 읽기
음성 파형이 식별자, 통화, 수식, 소수, 측정 단위 해석으로 갈라지는 추상 일러스트
이 글의 내용

Fish Audio S2.1, CosyVoice3-RL, IndexTTS2, Qwen3-TTS Base를 소수, 식별자, 통화, 수식, 과학 단위가 포함된 중국어 음성 복제 샘플 600개로 평가했습니다.

요약

숫자 읽기 오류는 단순한 발음 문제가 아니라 의미 문제입니다. TTS 시스템은 매우 유창하게 들리면서도 식별자의 0을 누락하거나, 9*14를 94로 읽거나, 면적 단위에서 지수를 제거할 수 있습니다. 중국어에서는 001000000066, 9*14, 12cm²의 올바른 읽기가 기호 자체뿐 아니라 문장 속 역할에 따라 달라지기 때문에 이 문제가 특히 뚜렷하게 나타납니다.

내부 데이터셋의 중국어 참조 음성 2개를 사용해 Fish Audio S2.1, CosyVoice3-RL, IndexTTS2, Qwen3-TTS Base 등 4개 음성 복제 모델군을 평가했습니다. 각 모델·음성 조건에 동일한 비즈니스 문장 75개를 입력해 총 600개의 음성 샘플을 생성했습니다.

자동 숫자 완전 일치율에서는 Fish Audio S2.1이 79.3%(119/150)로 1위, CosyVoice3-RL이 74.7%(112/150)로 2위였습니다. 그러나 종합 점수만으로는 모델별 차이를 설명할 수 없습니다. CosyVoice3-RL은 식별자에서 90.0%를 기록한 반면, Qwen3-TTS Base는 식별자에서 0%였지만 수식과 과학 단위에서는 각각 86.7%로 가장 높았습니다.

이 평가는 사람의 청취 테스트가 아니라 자동 선별용 벤치마크입니다. 부록 B에는 별도로 생성한 듣기 세트를 제공하며, 이 클립들은 벤치마크 샘플이 아닙니다.

숫자 TTS가 의미 문제인 이유

숫자를 정확히 읽는 것과 각 숫자를 또렷하게 발음하는 것은 다릅니다. TTS 모델은 먼저 문장 안에서 숫자가 어떤 역할을 하는지 판단해야 합니다.

표시 텍스트의도한 중국어 읽기모델이 판단해야 하는 내용
3786.712三千七百八十六点七一二소수점 뒤 숫자는 한 자리씩 유지해야 한다.
001000000066零零一零零零零零零零六六식별자는 일반 수가 아니라 숫자의 순서열이다.
HK$100一百港元접두사가 통화를 지정하며, $100만으로는 지역 통화를 특정할 수 없다.
9*14九乘以十四기호는 문장부호가 아니라 연산자다.
12cm^2十二平方厘米지수는 길이 단위를 면적 단위로 바꾼다.

따라서 유창한 문장에도 심각한 숫자 오류가 포함될 수 있습니다. 식별자, 금액, 측정값, 수식에서는 작은 발음 차이보다 더 큰 문제가 됩니다.

벤치마크 개요

항목설계
범위음성 복제 조건만 평가
모델군Fish Audio S2.1, CosyVoice3-RL, IndexTTS2, Qwen3-TTS Base
참조 음성내부 데이터셋의 중국어 참조 음성 2개
모델군별 프롬프트 수150개: 프롬프트 75개 × 참조 음성 2개
전체 음성생성된 WAV 파일 600개
숫자 범주소수, 식별자, 통화, 수식, 과학·공학 단위
범주별 프롬프트 수모델·음성 조건별 15개
입력 정책아라비아 숫자 표기가 포함된 문장을 그대로 전송
통화의 모호성단독 $¥는 기호 계열 수준에서 채점하고, 명시적 코드나 통화명에는 정확한 통화를 요구
최종 판정 ASR고정 리비전의 Qwen3-ASR-1.7B
주요 지표숫자 목표와의 의미적 완전 일치

실험 설계

1. 균형 잡힌 다섯 개 프롬프트 그룹 구성

각 모델·음성 조건에 중국어 문장 75개를 사용했습니다. 다섯 개 숫자 범주에 각각 15개 프롬프트를 배정했습니다.

  1. 소수는 내부의 0, 반복되는 숫자, 소수부 끝의 0을 테스트했습니다.
  2. 식별자는 앞부분과 중간에 반복되는 0이 있고 일반 수로 묶어 읽으면 안 되는 합성·비식별 장문 숫자열을 사용했습니다.
  3. 통화는 USD, CNY, JPY, CAD, AUD, SGD, HKD와 모호한 $, ¥를 포함했습니다.
  4. 수식은 곱셈과 나눗셈, 그리고 二分之三三除以二 같은 동등한 읽기를 포함했습니다.
  5. 과학·공학 단위cm, µm, nm을 포함했습니다.

각 문장은 하나의 템플릿에 값만 바꿔 넣지 않고, 비즈니스, 엔지니어링, 물류, 운영 상황에서 자연스럽게 쓰일 수 있도록 개별 작성했습니다.

2. 참조 음성 고정

4개 모델군 모두 내부 데이터셋의 동일한 중국어 참조 음성 2개를 복제했습니다.

점수는 두 참조 음성을 합산해 모델군별 150개 샘플로 계산했습니다.

3. 화면에 표시된 문장을 그대로 전송

이 벤치마크는 합성 전에 숫자를 읽기 형태로 풀어 쓰지 않았습니다.

예:

1
维修平台确认,本次设备校验码为001000000066。

숫자를 다음과 같은 기대 읽기로 바꾸지 않았습니다.

1
维修平台确认,本次设备校验码为零零一零零零零零零零六六。

이렇게 해야 모델 자체의 텍스트 정규화 동작을 분리해 측정할 수 있습니다. 실제 서비스에서는 중요한 숫자를 미리 풀어 쓰는 편이 더 안전할 수 있지만, 이번 평가에서 그렇게 하면 측정하려는 질문 자체가 사라집니다.

4. 음성 생성 및 형식 정규화

오픈 웨이트 모델은 고정된 체크포인트에서 실행했고, 지원되는 경우 결정적 시드를 사용했습니다. Fish Audio S2.1의 모든 요청에는 normalize=true를 설정했습니다. 서비스는 일반 지연 모드로 실행했으므로, 이 점수는 공급자 정규화기가 활성화된 Fish Audio S2.1의 결과입니다.

각 공급자의 출력을 모노, 24 kHz, 16-bit PCM WAV로 통일한 뒤 채널 수, 샘플링 레이트, 샘플 폭, 디코딩 가능 여부를 확인했습니다.

생성된 600개 샘플 모두 형식 검사를 통과했습니다.

5. 전사 및 숫자 의미 채점

모든 생성 파일을 동일한 고정 리비전의 Qwen/Qwen3-ASR-1.7B로 전사했습니다. ASR 전사와 목표를 범주별 정규형으로 변환한 뒤 완전 일치를 요구했습니다. 따라서 주변 문장이 유창해도 0 누락, 연산자 변경, 통화 불일치, 지수 누락이 있으면 실패로 처리했습니다. 범주별 규칙은 글 마지막의 부록에 정리했습니다.

결과

중국어 TTS 모델군 4개의 종합, 소수, 식별자, 통화, 수식, 과학 단위 완전 일치율을 비교한 히트맵

결과는 내부 참조 음성 2개를 합산한 값입니다. 통화 출력은 부록의 모호성 인지 정책에 따라 저장된 검증 전사에서 다시 채점했습니다. 종합 점수는 모델군별 150개, 범주 점수는 각각 30개 샘플을 기준으로 합니다.

Fish Audio S2.1이 종합 79.3%로 1위였지만, 모든 범주에서 우승한 모델은 없었습니다. 같은 숫자라도 식별자, 소수, 금액, 수식, 단위 중 무엇을 나타내는지에 따라 모델의 실패 양상이 크게 달랐습니다.

식별자: 모델 간 격차가 가장 큰 범주

모델군완전 일치(n=30)
Fish Audio S2.166.7%
CosyVoice3-RL90.0%
IndexTTS240.0%
Qwen3-TTS Base0.0%

식별자는 모델 간 점수 차가 가장 컸습니다. 주요 문제는 발음 품질이 아니라 순서열의 무결성이었습니다. 숫자를 묶어서 읽거나, 반복된 0을 빼거나, 숫자를 하나 더 넣는 오류가 나타났습니다.

소수: 전반적으로 안정적

모델군완전 일치(n=30)
Fish Audio S2.193.3%
CosyVoice3-RL96.7%
IndexTTS2100.0%
Qwen3-TTS Base93.3%

소수는 가장 안정적인 범주였습니다. 익숙한 말하기 구조가 있기 때문에 모든 자리의 위치를 엄격하게 유지해야 하는 식별자보다 쉬웠습니다.

통화: 금액과 기호를 분리해 판단

모델군완전 일치(n=30)
Fish Audio S2.193.3%
CosyVoice3-RL46.7%
IndexTTS293.3%
Qwen3-TTS Base86.7%

발화된 금액과 통화 의미를 분리해 판단했습니다. 단독 $는 특정 지역 통화를 유일하게 지정하지 않지만, CAD 또는 加拿大元이 명시된 입력은 캐나다 달러 읽기가 필요합니다. 채점 샘플에서 Fish Audio S2.1은 명시적인 HK$100을 미국 달러로 읽었고, CosyVoice3-RL의 실패 대부분은 금액 자체를 바꿨습니다.

수식: 연산자가 쉽게 사라짐

모델군완전 일치(n=30)
Fish Audio S2.173.3%
CosyVoice3-RL70.0%
IndexTTS270.0%
Qwen3-TTS Base86.7%

숫자만 들으면 자연스럽더라도 의미적으로는 실패할 수 있습니다. 곱셈 연산자가 사라지면 9*1494가 됩니다.

과학·공학 단위: 지수를 보존해야 함

모델군완전 일치(n=30)
Fish Audio S2.170.0%
CosyVoice3-RL70.0%
IndexTTS266.7%
Qwen3-TTS Base86.7%

기본 숫자와 단위를 알아들을 수 있어도 제곱 지수가 사라지면 면적 측정의 의미가 달라집니다.

모델별 요약

모델군종합(n=150)핵심 결과
Fish Audio S2.179.3%종합 1위. 가장 약한 식별자도 66.7%
CosyVoice3-RL74.7%식별자 1위. 통화에서는 금액을 바꾸는 오류가 잦음
IndexTTS274.0%소수 100%. 식별자에서는 크게 하락
Qwen3-TTS Base70.7%수식, 통화, 단위에 강하지만 식별자는 전부 실패

재현성 정보

구성 요소고정 조건
Qwen3-TTS BaseQwen3-TTS-12Hz-1.7B-Base, revision fd4b254389122332181a7c3db7f27e918eec64e3
CosyVoice3-RLFun-CosyVoice3-0.5B-2512_RL, revision 29e01c4e8d000f4bcd70751be16fa94bf3d85a18
IndexTTS2IndexTTS2, revision 740dcaff396282ffb241903d150ac011cd4b1ede
Fish Audio S2.1합성 서비스, 일반 지연 모드, normalize=true
판정 ASRQwen/Qwen3-ASR-1.7B, revision 7278e1e70fe206f11671096ffdd38061171dd6e5

한계

  • 판정기는 중국어 원어민 청취 패널이 아니라 ASR 모델입니다. ASR 오류를 TTS 오류로 잘못 볼 수 있습니다.
  • 내부 참조 음성 2개가 모든 중국어 화자, 억양, 음높이, 녹음 조건을 대표하지는 않습니다.
  • 벤치마크는 화면 표기를 그대로 입력합니다. 실제 서비스의 텍스트 정규화 계층은 결과를 크게 개선할 수 있습니다.
  • 백분율은 두 음성을 합산한 모델군·범주별 30개 샘플을 기반으로 합니다. 작은 차이를 과도하게 해석하면 안 됩니다.
  • 공급자 서비스와 모델 구현은 고정된 평가일 이후 변경될 수 있습니다.

결론

중국어 숫자 TTS에서 모든 범주를 지배하는 모델은 없었습니다.

Fish Audio S2.1은 가장 균형 잡힌 모델군이었고 종합 79.3%로 1위였습니다. CosyVoice3-RL은 식별자에 가장 강했습니다. IndexTTS2는 소수에서 100%였지만 긴 숫자열에는 약했습니다. Qwen3-TTS Base는 기호 중심의 세 범주에서 가장 강했지만 식별자는 모두 실패했습니다.

순위보다 중요한 교훈은 숫자 의미가 별도의 신뢰성 축이라는 점입니다. 읽은 숫자가 결제, 측정, 경로, 신원, 접근 권한 판단을 바꿀 수 있다면 명시적으로 정규화하고 합성 후 다시 검증해야 합니다.

부록 A: 범주별 정규화 규칙

범주정규화 절차와 완전 일치 조건
소수아라비아 숫자와 중국어 수사를 소수 형태로 변환하되, 끝의 0을 포함한 소수부의 모든 자릿수를 보존한다.
식별자전체 숫자열을 추출하고 1로 정규화하며, 앞의 0, 순서, 길이를 보존한다.
통화금액을 정규화한 다음 입력 표기에서 허용 통화를 결정한다. 단독 $는 달러 계열 읽기를, 단독 ¥人民币 또는 日元을 허용한다. US$, HK$, JPY 또는 통화명이 명시되면 해당 중국어 통화 읽기를 요구한다.
수식먼저 중국어 또는 아라비아 숫자를 수치 피연산자로 변환한다. 이어서 /乘以/×/*multiply, 除以///÷/分之divide로 통일한다. A分之BB ÷ A를 뜻하므로 저장할 때 표면상의 피연산자 순서를 뒤집는다. 마지막으로 결과를 계산하지 않고 연산자와 순서가 있는 피연산자를 완전 일치로 비교한다. 따라서 三除以二二分之三은 모두 3/2와 일치하지만, 결과만 읽은 一点五는 연산자가 없어 실패한다.
과학·공학 단위먼저 수치를 정규화한다. 이어서 厘米/cm, 微米/µm, 纳米/奈米/nm 같은 음성·표기 별칭을 하나의 기본 단위로 통일한다. 平方, ², ^2는 지수 2로 기록하고 별도 표시가 없으면 지수 1로 기록한다. 수치, 기본 단위, 지수가 모두 일치해야 통과한다. 따라서 12cm²十二平方厘米는 통과하지만, 十二厘米는 지수가 2에서 1로 바뀌므로 실패한다.

부록 B: 공개 오디오 예시

듣기 예시를 제공하는 이유: 집계 점수는 모델이 의도한 읽기를 얼마나 자주 생성했는지는 보여 주지만, 오류가 실제로 어떻게 들리는지는 보여 주지 않습니다. 이 예시에서는 숫자 누락이나 묶음 읽기, 소수 구조 변경, 연산자 또는 지수 누락과 같은 주요 실패 양상을 직접 들을 수 있습니다. 이 20개 클립은 듣기 위한 별도의 데모 세트일 뿐이며, 600개 샘플 벤치마크에 포함되지 않았고 보고된 백분율 계산에도 사용되지 않았습니다.

데모에 사용한 합성 참조 음성

네 시스템 모두 동일한 AI 생성 Qwen3-TTS Serena 음성을 참조로 사용했습니다. 먼저 이 음성을 들으면 아래 데모들이 재현하려 한 공통 음성을 확인할 수 있습니다.

참조 텍스트: 今天我们将讨论项目进度、客户反馈与后续安排。请各位确认会议内容,并在结束后整理需要继续跟进的事项,感谢大家的配合。

식별자 예시

입력: 维修平台确认,本次设备校验码为001000000066。

목표: 零零一零零零零零零零六六

모델군예시 오디오와 ASR 전사확인할 점
Fish Audio S2.1
零零幺零零零零零零六六
0 하나 누락
CosyVoice3-RL
零零幺零零零零零零零六六
모든 숫자 보존
IndexTTS2
零零幺零零零零零零六六
0 하나 누락
Qwen3-TTS Base
零零幺零零万零六六
숫자를 묶어 읽고 일부 누락

소수 예시

입력: 值班工程师在电话会上报告:“主回路当前读数是3168.846。”

목표: 三千一百六十八点八四六

모델군예시 오디오와 ASR 전사확인할 점
Fish Audio S2.1
三幺六八八四六
소수 구조가 사라짐
CosyVoice3-RL
三千一百六十八点八四六
목표 읽기 보존
IndexTTS2
三千一百六十八点八四六
목표 읽기 보존
Qwen3-TTS Base
三千一百六十八点八四六
목표 읽기 보존

통화 예시

입력: 设计负责人提醒大家,加拿大外包插画的尾款还有$640未付。

허용 목표: 금액 640과 달러 계열임을 나타내는 읽기

모델군예시 오디오와 ASR 전사확인할 점
Fish Audio S2.1
六百四十美元
금액과 달러 계열 읽기 보존
CosyVoice3-RL
六百四十美元
금액과 달러 계열 읽기 보존
IndexTTS2
六百四十美元
금액과 달러 계열 읽기 보존
Qwen3-TTS Base
六百四十美元
금액과 달러 계열 읽기 보존

수식 예시

입력: 生成标签底稿时,把画布网格参数填写为9*14。

목표: 九乘以十四

모델군예시 오디오와 ASR 전사확인할 점
Fish Audio S2.1
九州十四
곱셈 연산자를 인식하지 못함
CosyVoice3-RL
九十四
곱셈 연산자 누락
IndexTTS2
九掺十四
곱셈 연산자를 인식하지 못함
Qwen3-TTS Base
九乘以十四
목표 읽기 보존

과학·공학 단위 예시

입력: 封装测试要求导热贴的接触面积达到12cm^2。

목표: 十二平方厘米

모델군예시 오디오와 ASR 전사확인할 점
Fish Audio S2.1
十二厘米定二
제곱 면적 의미가 사라짐
CosyVoice3-RL
十二厘米二
제곱 면적 의미가 사라짐
IndexTTS2
十二厘米,S二
제곱 면적 의미가 사라짐
Qwen3-TTS Base
十二厘米方
제곱센티미터 의미가 사라짐
이 기사 공유

VoicePing 무료로 시작하기

AI 번역으로 언어 장벽을 넘어보세요. 지금 무료로 시작하세요.