
Comparación de cinco modelos de TTS emocional para japonés y chino con seis emociones, SenseVoice, emotion2vec anchors, CER, naturalidad, runtime y ejemplos de audio.
Modelos y referencias:
Resumen
Evaluamos cinco sistemas de TTS emocional para japonés y chino con seis emociones objetivo: neutral, happy, sad, angry, fear y disgust. Las frases son neutras para que la emoción tenga que venir del estilo de habla.
El candidato más equilibrado es Qwen3-TTS CustomVoice 1.7B: CER bajo, mejor anchor hit rate, buena naturalidad y el compromiso más práctico para japonés/chino.
CosyVoice 300M Instruct lidera en naturalidad, pero el control emocional es débil. IndexTTS-2 parece fuerte en el pooled SenseVoice score, pero su CER japonés es demasiado alto. El chino es más fácil que el japonés, y fear y disgust siguen sin resolverse.
Motivación
El TTS emocional no consiste solo en sonar natural. El modelo debe decir la frase correcta, ser agradable de escuchar y expresar la emoción solicitada. Por eso esta evaluación combina reconocimiento emocional, anchors, CER, naturalidad, runtime y ejemplos de audio.
- La frase prevista en japonés o chino debe mantenerse correcta.
- El habla debe sonar lo bastante natural para una escucha real.
- La voz generada debe expresar la emoción solicitada, sin caer en habla neutra o en una emoción cercana.
Metodología de evaluación
El benchmark usa una grilla balanceada por idioma, emoción y prompt. La misma frase se reutiliza en seis emociones para obligar al modelo a expresar emoción con prosodia y estilo vocal.
Conjunto de prompts
Ejemplos de prompts en japonés:
| ID | Frase |
|---|---|
ja_001 | 会議は午前十時に始まります。 |
ja_002 | 資料は机の上に置いてあります。 |
ja_003 | 明日の予定を確認してください。 |
ja_004 | 電車は三番線から出発します。 |
ja_005 | 受付で名前を伝えてください。 |
Ejemplos de prompts en chino:
| ID | Frase |
|---|---|
zh_001 | 会议将在上午十点开始。 |
zh_002 | 资料已经放在桌子上。 |
zh_003 | 请确认明天的日程安排。 |
zh_004 | 列车将从三号站台出发。 |
zh_005 | 请在前台告知您的姓名。 |
Control de emoción
| 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. |
Métricas
- Precisión emocional SenseVoice: métrica principal de filtrado automático.
- Anchor hit y margin de emotion2vec: diagnóstico secundario basado en centroides de anchors de habla emocional.
- CER: tasa de error de caracteres entre la transcripción y el prompt original.
- NISQA-TTS y UTMOS: métricas de diagnóstico de naturalidad y calidad de la voz sintetizada.
- RTF: real-time factor para medir la velocidad de síntesis.
Resultados
Uso de recursos
Las métricas de recursos provienen de 600 generaciones exitosas. GPU, VRAM, wall time y RTF están presentes en todas las filas completadas; CPU no siempre se captura en adapters server-backed.
| 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 es el más rápido y usa menos VRAM, pero no es el mejor candidato de control emocional. Qwen3-TTS usa más VRAM que CosyVoice, pero es mucho más rápido que IndexTTS-2 y VoxCPM2 y mantiene mejor equilibrio.
Resumen de métricas JA/ZH
Esta tabla separa japonés y chino en tres controles centrales: precisión SenseVoice, CER y alineación de anchors 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 |
El chino suele ser más fácil para las métricas emocionales automáticas, pero CER y precisión emocional no siempre se mueven juntos. Qwen3-TTS mantiene CER bajo en ambos idiomas; IndexTTS-2 tiene el mejor SenseVoice japonés y también el peor CER japonés.
Fidelidad textual (CER)
En fidelidad textual, Qwen3-TTS es el resultado más estable: CER japonés 8,6% y CER chino 9,7%. IndexTTS-2 es el caso de advertencia, con CER japonés de 91,0%.
Precisión emocional
SenseVoice
En este setup automático, el chino es claramente más fácil que el japonés. Para Qwen3-TTS, la precisión SenseVoice china es 53,3% y la japonesa 15,0%, aunque CER es bajo en ambos idiomas.
fear y disgust son las etiquetas más difíciles. Su recall SenseVoice es 0,0% en todos los pares modelo/idioma, y suelen caer en sad, neutral, angry o unknown.
Las filas son emociones objetivo y las columnas son predicciones SenseVoice. Las cajas verdes marcan la diagonal ideal.
| Caso | Qué ocurrió | Por qué importa |
|---|---|---|
indextts-2 / ja | happy -> sad 4/10; fear -> sad 5/10; disgust -> angry 10/10. | Las etiquetas emocionales pueden parecer plausibles incluso cuando la calidad textual japonesa no es fiable. |
qwen3_tts_customvoice_1_7b / zh | happy -> neutral 5/10; fear -> sad 9/10; disgust -> neutral 9/10. | Qwen es el candidato más equilibrado, pero las emociones difíciles aún colapsan. |
cosyvoice_300m_instruct / ja | happy -> unknown 10/10; fear -> unknown 9/10; disgust -> unknown 8/10. | La naturalidad no garantiza un control emocional reconocible. |
fish_audio_s1_mini / zh | happy -> neutral 10/10; fear -> neutral 9/10; disgust -> neutral 8/10. | Los marcadores emocionales inline no cambiaron la prosodia de forma fiable. |
voxcpm2 / zh | happy -> neutral 7/10; fear -> neutral 6/10; disgust -> neutral 10/10. | El control mediante prompt a menudo cayó en habla neutra. |
emotion2vec anchors
La métrica anchor cuenta una historia similar: los anchors chinos son más favorables que los japoneses. Una margen positiva significa que el audio está más cerca del centroide de la emoción objetivo. Qwen3-TTS tiene margen positiva en chino; todas las márgenes japonesas son negativas.
Naturalidad
| 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% |
Naturalidad y corrección emocional son preguntas diferentes. CosyVoice gana en naturalidad, pero no en control emocional. Qwen3-TTS queda algo detrás en NISQA-TTS, pero equilibra mejor emoción, texto y velocidad.
Ejemplos de audio
La tabla usa el mismo prompt index para muestras happy y angry en japonés y chino. Estos clips no son una prueba humana, sino anchors cualitativos para interpretar las métricas.
| 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 |
Limitaciones
- Las etiquetas emocionales automáticas no son juicio humano. SenseVoice es útil porque soporta japonés y chino, pero puede tener bias de clasificador y desequilibrio por idioma.
- Las métricas anchor dependen de los datasets anchor. Los anchors japoneses vienen de JVNV y los chinos de CSEMOTIONS; faltaban
ja/neutralyzh/disgusten esta corrida. - IndexTTS-2 japonés es diagnóstico. El pooled score parece fuerte, pero el CER japonés es demasiado alto en este setup.
Investigación futura
- Ejecutar un MOS/CMOS pequeño con hablantes nativos para Qwen3-TTS y CosyVoice.
- Tratar IndexTTS-2 como candidato chino por ahora, o repetir tras arreglar el tokenizer/text path japonés.
- Agregar o curar anchors faltantes
ja/neutralyzh/disgust. - Hacer una revisión humana en chino para
sad,angry,fearydisgust. - Mantener SenseVoice como filtro automático, pero decidir producción con pruebas humanas de escucha.
Conclusión
Para TTS emocional en japonés y chino, Qwen3-TTS CustomVoice 1.7B es el modelo más equilibrado de este benchmark. No resuelve todas las emociones, pero ofrece la combinación más práctica de reconocimiento emocional, CER bajo, anchor hit rate, naturalidad y runtime.