Files
echo-core/tts_voices.json
Marius Mutu 61d667ec65 fix(voice): normalizare TTS lang-aware + cap 400 chars mutat per-request Supertonic
Două cauze pentru audio mut pe pocket-tts după fix-ul [tts-lang:en]:

1. normalize_for_tts expanda numerele/orele în cuvinte românești chiar și
   în text englezesc ("It's 9:46 PM" → "nouă și patruzeci și șase de
   minute") → diacritice → pocket-tts respingea clauzele. push_text rezolvă
   acum lang din engine-ul vocii curente (engine_for_voice) și sare
   expansiunile RO când lang != 'ro'. [scris de Echo în sesiunea Discord]

2. sanitize_for_supertonic (cap 400 chars — limită ONNX per request) rula
   pe textul întreg în normalize, înainte de segmentarea în clauze —
   răspunsurile lungi erau retezate mid-word și trunchierea la 200 cuvinte
   cu sufixul "Restul l-am scris în chat" nu se mai aplica. Separat
   map_tts_punctuation (fără cap, folosit de normalize) de
   sanitize_for_supertonic (cap, aplicat în _synthesize_supertonic).

Include vocea clonată "Marius 4" (tts_voices.json + default în config).

Fixează test_truncate_exactly_200_words_unchanged și
test_truncate_over_200_words_appends_suffix.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 18:57:30 +00:00

71 lines
1.3 KiB
JSON

{
"M1": {
"engine": "supertonic"
},
"M2": {
"engine": "supertonic"
},
"M3": {
"engine": "supertonic"
},
"M4": {
"engine": "supertonic"
},
"M5": {
"engine": "supertonic"
},
"F1": {
"engine": "supertonic"
},
"F2": {
"engine": "supertonic"
},
"F3": {
"engine": "supertonic"
},
"F4": {
"engine": "supertonic"
},
"F5": {
"engine": "supertonic"
},
"Marius 1": {
"engine": "pockettts",
"state_path": "models/voices/marius-1.safetensors",
"owner": "Marius"
},
"Marius 2": {
"engine": "pockettts",
"state_path": "models/voices/marius-2.safetensors",
"owner": "Marius"
},
"Marius 3": {
"engine": "pockettts",
"state_path": "models/voices/marius-3.safetensors",
"owner": "Marius"
},
"Paula 1": {
"engine": "pockettts",
"state_path": "models/voices/paula-1.safetensors",
"owner": "Paula"
},
"Paula 2": {
"engine": "pockettts",
"state_path": "models/voices/paula-2.safetensors",
"owner": "Paula"
},
"Paula 3": {
"engine": "pockettts",
"state_path": "models/voices/paula-3.safetensors",
"owner": "Paula"
},
"alba": {
"engine": "pockettts",
"voice_url": "alba"
},
"Marius 4": {
"engine": "pockettts",
"state_path": "models/voices/marius-4.safetensors",
"owner": "Marius"
}
}