2 Commits

Author SHA1 Message Date
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
e3b5cdf0e5 feat: US-003 - Creează catalogul de voci tts_voices.json cu seed inițial
- tts_voices.json (nou): seed 17 intrări — M1-M5/F1-F5 supertonic, Marius 1-3
  și Paula 1-3 pockettts (state_path spre models/voices/*.safetensors), alba
  pockettts (voice_url)
- .gitignore: +*.lock pentru sidecar-uri jsonlock
- elimină approved-tasks.json.lock din git (sidecar gol, jsonlock îl recreează)
- scris prin src/jsonlock.py write_locked()
- gates: /review (backend) PASS, db (schema manuală) PASS, pytest 1043 passed
  (22 eșecuri preexistente neschimbate)
2026-07-11 10:14:40 +00:00