Kazeia-central/kazeia_central/voice
alf 0bf399cb79 fix(voice): §7 — coupe-silence + troncature phrase (anti mot parasite)
Le cap dur à 16s coupait la réf en plein mot ; l'auto-ASR transcrivait le bout tronqué
(ex. 'présenter') et OmniVoice le recrachait en tête de chaque génération.
- prepare_wav : couper sur une frontière de silence (librosa.effects.split), jamais à
  cap brut → clip finit en silence, mots entiers.
- enroll : tronquer ref_text à la dernière phrase complète (. ! ?).
Validé sur le consentement réel de richard : 24.4s→15.7s, ref_text finit '…des oiseaux.'
(plus de mot parasite). NB : voix enrôlées avec l'ancien cap = à ré-enrôler.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-23 23:30:45 +02:00
..
__init__.py feat(voice): migration CosyVoice → OmniVoice (.cvps → .ovsp) 2026-06-23 10:15:11 +02:00
admin_ingest.py feat(voice): ingestion depuis le stockage ADMIN (manifestes record-time §4.2) 2026-06-23 10:30:58 +02:00
autosync.py feat(voice): catalogue GLOBAL (flotte) + déploiement par tablette 2026-06-23 19:39:00 +02:00
bridge.py feat(voice): migration CosyVoice → OmniVoice (.cvps → .ovsp) 2026-06-23 10:15:11 +02:00
enroll.py fix(voice): §7 — coupe-silence + troncature phrase (anti mot parasite) 2026-06-23 23:30:45 +02:00
orchestrator.py feat(voice): catalogue GLOBAL (flotte) + déploiement par tablette 2026-06-23 19:39:00 +02:00
transcribe.py feat(voice): migration CosyVoice → OmniVoice (.cvps → .ovsp) 2026-06-23 10:15:11 +02:00
transfer.py feat(voice): migration CosyVoice → OmniVoice (.cvps → .ovsp) 2026-06-23 10:15:11 +02:00
worker.py feat(voice): migration CosyVoice → OmniVoice (.cvps → .ovsp) 2026-06-23 10:15:11 +02:00