
So sánh năm mô hình TTS cảm xúc cho tiếng Nhật và tiếng Trung qua sáu cảm xúc, SenseVoice, emotion2vec anchors, CER, độ tự nhiên, tốc độ và mẫu nghe.
Mô hình và tài liệu tham khảo:
Tóm tắt
Chúng tôi benchmark năm hệ thống TTS cảm xúc cho tiếng Nhật và tiếng Trung với sáu nhãn cảm xúc: neutral, happy, sad, angry, fear, disgust. Nội dung câu được giữ trung tính để cảm xúc phải đến từ phong cách nói.
Ứng viên cân bằng nhất là Qwen3-TTS CustomVoice 1.7B: CER thấp, anchor hit rate tốt, độ tự nhiên mạnh và kết quả cảm xúc thực dụng nhất khi xét cả Nhật và Trung.
CosyVoice 300M Instruct dẫn đầu về độ tự nhiên, nhưng điều khiển cảm xúc còn yếu. IndexTTS-2 có điểm pooled SenseVoice khá cao, nhưng CER tiếng Nhật quá lớn nên không thể xem là kết quả TTS tiếng Nhật đáng tin cậy. Tiếng Trung dễ hơn tiếng Nhật, còn fear và disgust vẫn chưa được giải quyết.
Động lực
TTS cảm xúc không chỉ là tạo giọng nghe tự nhiên. Hệ thống cần đọc đúng câu, đủ dễ nghe và thể hiện đúng cảm xúc được yêu cầu. Vì vậy benchmark này kết hợp nhận diện cảm xúc, anchor cảm xúc, lỗi chuyển âm, độ tự nhiên, tốc độ và mẫu nghe.
- Câu tiếng Nhật hoặc tiếng Trung mục tiêu phải được giữ đúng.
- Giọng nói cần đủ tự nhiên để nghe trong thực tế.
- Giọng tạo ra cần thể hiện cảm xúc được yêu cầu, thay vì rơi về giọng trung tính hoặc một cảm xúc gần đó.
Phương pháp đánh giá
Benchmark dùng lưới tạo mẫu cân bằng theo ngôn ngữ, cảm xúc và câu prompt. Cùng một câu được dùng cho cả sáu cảm xúc, buộc mô hình thể hiện cảm xúc qua ngữ điệu và phong cách nói.
Tập prompt
Ví dụ prompt tiếng Nhật:
| ID | Câu |
|---|---|
ja_001 | 会議は午前十時に始まります。 |
ja_002 | 資料は机の上に置いてあります。 |
ja_003 | 明日の予定を確認してください。 |
ja_004 | 電車は三番線から出発します。 |
ja_005 | 受付で名前を伝えてください。 |
Ví dụ prompt tiếng Trung:
| ID | Câu |
|---|---|
zh_001 | 会议将在上午十点开始。 |
zh_002 | 资料已经放在桌子上。 |
zh_003 | 请确认明天的日程安排。 |
zh_004 | 列车将从三号站台出发。 |
zh_005 | 请在前台告知您的姓名。 |
Điều khiển cảm xúc
| Target emotion | Control text |
|---|---|
neutral | Speak in a clear, neutral, natural voice. |
happy | Speak in a happy, warm, bright voice. |
sad | Speak in a sad, soft, slow, gentle voice. |
angry | Speak in an angry, tense, forceful voice. |
fear | Speak in a fearful, tense, trembling voice. |
disgust | Speak in a disgusted, displeased, rejecting voice. |
Chỉ số
- Độ chính xác cảm xúc SenseVoice: chỉ số sàng lọc tự động chính.
- Anchor hit và margin của emotion2vec: chỉ số chẩn đoán phụ dựa trên tâm cụm anchor của giọng nói cảm xúc.
- CER: tỷ lệ lỗi ký tự khi so sánh bản chuyển âm với prompt gốc.
- NISQA-TTS và UTMOS: chỉ số chẩn đoán độ tự nhiên và chất lượng của giọng tổng hợp.
- RTF: real-time factor dùng để đo tốc độ tổng hợp.
Kết quả
Mức sử dụng tài nguyên
Chỉ số tài nguyên được tính từ 600 mẫu tạo thành công. GPU, VRAM, wall time và RTF có trong tất cả hàng hoàn tất; CPU không luôn được ghi lại cho adapter chạy bên ngoài cây tiến trình được lấy mẫu.
| Model | Median wall time | Median RTF | Median peak VRAM | GPU util | GPU power | CPU | Median peak RSS |
|---|---|---|---|---|---|---|---|
cosyvoice_300m_instruct | 2.26s | 0.85 | 3.96 GB | 30.3% avg / 39.0% peak | 145.0W avg / 155.6W peak | 127.8% peak; 100% coverage | 5.54 GB |
qwen3_tts_customvoice_1_7b | 4.20s | 1.58 | 8.13 GB | 22.9% avg / 25.0% peak | 126.3W avg / 127.1W peak | 138.1% peak; 100% coverage | 6.22 GB |
fish_audio_s1_mini | 7.06s | 3.47 | 13.05 GB | 25.3% avg / 69.0% peak | 150.4W avg / 183.7W peak | not captured; 0% coverage | 0.80 GB |
indextts-2 | 26.39s | 6.97 | 7.29 GB | 18.2% avg / 100.0% peak | 131.3W avg / 199.6W peak | not captured; 0% coverage | 7.69 GB |
voxcpm2 | 28.44s | 9.84 | 12.79 GB | 12.3% avg / 100.0% peak | 106.7W avg / 191.5W peak | not captured; 0% coverage | 10.65 GB |
CosyVoice nhanh nhất và dùng ít VRAM nhất, nhưng không phải ứng viên điều khiển cảm xúc mạnh nhất. Qwen3-TTS dùng nhiều VRAM hơn CosyVoice nhưng nhanh hơn nhiều so với IndexTTS-2 và VoxCPM2, đồng thời giữ cân bằng tốt nhất giữa cảm xúc và độ đúng văn bản.
Tổng quan chỉ số JA/ZH
Bảng này tách tiếng Nhật và tiếng Trung theo ba kiểm tra chính: độ chính xác SenseVoice, CER và độ khớp anchor emotion2vec.
| Model | JA SenseVoice | ZH SenseVoice | JA CER | ZH CER | JA anchor hit | ZH anchor hit | JA anchor margin | ZH anchor margin |
|---|---|---|---|---|---|---|---|---|
qwen3_tts_customvoice_1_7b | 15.0% | 53.3% | 8.6% | 9.7% | 40.0% | 64.0% | -0.06645 | 0.04480 |
indextts-2 | 43.3% | 16.7% | 91.0% | 10.3% | 38.0% | 30.0% | -0.08293 | -0.04063 |
voxcpm2 | 6.7% | 35.0% | 18.6% | 4.4% | 40.0% | 36.0% | -0.04479 | -0.02693 |
cosyvoice_300m_instruct | 1.7% | 36.7% | 43.9% | 11.1% | 24.0% | 72.0% | -0.05481 | 0.03796 |
fish_audio_s1_mini | 6.7% | 16.7% | 12.7% | 16.8% | 20.0% | 24.0% | -0.08972 | -0.09542 |
Tiếng Trung thường dễ hơn trong các chỉ số cảm xúc tự động, nhưng CER và độ chính xác cảm xúc không luôn đi cùng nhau. Qwen3-TTS giữ CER thấp ở cả hai ngôn ngữ; IndexTTS-2 có điểm SenseVoice tiếng Nhật cao nhất nhưng CER tiếng Nhật cũng tệ nhất.
Độ đúng văn bản (CER)
Với độ đúng văn bản, Qwen3-TTS ổn định nhất: CER tiếng Nhật 8.6% và tiếng Trung 9.7%. IndexTTS-2 là trường hợp cảnh báo vì CER tiếng Nhật lên tới 91.0%.
Độ chính xác cảm xúc
SenseVoice
Trong thiết lập tự động này, tiếng Trung rõ ràng dễ hơn tiếng Nhật. Với Qwen3-TTS, độ chính xác SenseVoice tiếng Trung là 53.3% còn tiếng Nhật là 15.0%, dù CER đều thấp. Điều này cho thấy vấn đề không chỉ là độ dễ hiểu mà còn là tín hiệu cảm xúc trong tiếng Nhật yếu hoặc không khớp với SenseVoice.
fear và disgust là hai nhãn khó nhất. Recall SenseVoice là 0.0% cho cả hai cảm xúc ở mọi cặp mô hình/ngôn ngữ, thường rơi vào sad, neutral, angry hoặc unknown.
Hàng là cảm xúc mục tiêu, cột là dự đoán của SenseVoice. Ô xanh là đường chéo lý tưởng.
| Trường hợp | Điều quan sát được | Vì sao quan trọng |
|---|---|---|
indextts-2 / ja | happy -> sad 4/10; fear -> sad 5/10; disgust -> angry 10/10. | Nhãn cảm xúc có thể trông hợp lý dù chất lượng văn bản tiếng Nhật không đáng tin cậy. |
qwen3_tts_customvoice_1_7b / zh | happy -> neutral 5/10; fear -> sad 9/10; disgust -> neutral 9/10. | Qwen là ứng viên cân bằng nhất, nhưng các cảm xúc khó vẫn bị sụp về nhãn khác. |
cosyvoice_300m_instruct / ja | happy -> unknown 10/10; fear -> unknown 9/10; disgust -> unknown 8/10. | Độ tự nhiên cao không đảm bảo điều khiển cảm xúc có thể nhận ra được. |
fish_audio_s1_mini / zh | happy -> neutral 10/10; fear -> neutral 9/10; disgust -> neutral 8/10. | Marker cảm xúc inline không thay đổi prosody một cách ổn định. |
voxcpm2 / zh | happy -> neutral 7/10; fear -> neutral 6/10; disgust -> neutral 10/10. | Điều khiển bằng prompt thường rơi về giọng trung tính. |
emotion2vec anchors
Chỉ số anchor kể câu chuyện tương tự SenseVoice: anchor tiếng Trung thuận lợi hơn tiếng Nhật. Margin dương nghĩa là âm thanh gần centroid cảm xúc mục tiêu hơn centroid không mục tiêu gần nhất. Qwen3-TTS có margin dương cho tiếng Trung, còn mọi margin tiếng Nhật đều âm.
Độ tự nhiên
| Model | Mean NISQA-TTS | Low NISQA-TTS <3.0 | Mean UTMOS | Low UTMOS <3.0 |
|---|---|---|---|---|
cosyvoice_300m_instruct | 4.267 | 0.0% | 3.282 | 20.8% |
indextts-2 | 4.063 | 11.7% | 2.078 | 93.3% |
qwen3_tts_customvoice_1_7b | 4.007 | 0.8% | 2.939 | 51.7% |
fish_audio_s1_mini | 3.935 | 3.3% | 2.932 | 55.8% |
voxcpm2 | 3.788 | 8.3% | 2.596 | 76.7% |
Độ tự nhiên và độ đúng cảm xúc là hai câu hỏi khác nhau. CosyVoice thắng về độ tự nhiên, nhưng không thắng về điều khiển cảm xúc. Qwen3-TTS hơi thấp hơn về NISQA-TTS nhưng cân bằng hơn về cảm xúc, độ đúng câu và tốc độ.
Mẫu nghe
Bảng dưới dùng cùng prompt index cho mẫu happy và angry trong tiếng Nhật và tiếng Trung. Đây không phải bài nghe của con người, mà là điểm neo định tính cho các chỉ số tự động.
| Model | Language | Target | SenseVoice prediction | Sample |
|---|---|---|---|---|
qwen3_tts_customvoice_1_7b | JA | happy | unknown | |
qwen3_tts_customvoice_1_7b | JA | angry | angry | |
qwen3_tts_customvoice_1_7b | ZH | happy | neutral | |
qwen3_tts_customvoice_1_7b | ZH | angry | angry | |
cosyvoice_300m_instruct | JA | happy | unknown | |
cosyvoice_300m_instruct | JA | angry | unknown | |
cosyvoice_300m_instruct | ZH | happy | happy | |
cosyvoice_300m_instruct | ZH | angry | neutral | |
indextts-2 | JA | happy | sad | |
indextts-2 | JA | angry | surprised | |
indextts-2 | ZH | happy | neutral | |
indextts-2 | ZH | angry | neutral | |
fish_audio_s1_mini | JA | happy | happy | |
fish_audio_s1_mini | JA | angry | happy | |
fish_audio_s1_mini | ZH | happy | neutral | |
fish_audio_s1_mini | ZH | angry | neutral | |
voxcpm2 | JA | happy | unknown | |
voxcpm2 | JA | angry | angry | |
voxcpm2 | ZH | happy | happy | |
voxcpm2 | ZH | angry | angry |
Giới hạn
- Nhãn cảm xúc tự động không phải phán đoán của con người. SenseVoice hữu ích vì hỗ trợ Nhật/Trung và có nhãn gần với benchmark, nhưng có thể có bias bộ phân loại và mất cân bằng theo ngôn ngữ.
- Chỉ số anchor phụ thuộc vào bộ dữ liệu anchor. Anchor tiếng Nhật đến từ JVNV, tiếng Trung từ CSEMOTIONS; lần chạy này thiếu
ja/neutralvàzh/disgust. - Kết quả tiếng Nhật của IndexTTS-2 chỉ có tính chẩn đoán. Điểm pooled có vẻ mạnh, nhưng CER tiếng Nhật quá cao trong thiết lập này.
Nghiên cứu tiếp theo
- Chạy MOS/CMOS nhỏ với người bản ngữ cho Qwen3-TTS và CosyVoice, tách riêng độ tự nhiên, độ đúng cảm xúc và độ dễ hiểu.
- Tạm xem IndexTTS-2 là hướng tiếng Trung, hoặc chạy lại sau khi sửa tokenizer/text path tiếng Nhật.
- Bổ sung hoặc tuyển chọn anchor còn thiếu cho
ja/neutralvàzh/disgust. - Kiểm tra người nghe tiếng Trung cho
sad,angry,fear,disgust. - Dùng SenseVoice để sàng lọc tự động, nhưng quyết định sản phẩm bằng bài nghe con người.
Kết luận
Với TTS cảm xúc tiếng Nhật và tiếng Trung, Qwen3-TTS CustomVoice 1.7B là mô hình cân bằng nhất trong benchmark này. Nó chưa giải quyết mọi cảm xúc, nhưng có tổ hợp thực dụng nhất về nhận diện cảm xúc, CER thấp, anchor hit rate, độ tự nhiên và tốc độ.
