mirror of
https://github.com/R0m1k3/Socialflow.git
synced 2026-10-23 06:58:12 +02:00
fix(voix SRT): prix et unités reconnus, coupes dans les vraies pauses
- Contrôle de lecture : les nombres et l'unité qui les suit ne sont plus comparés lettre à lettre. Whisper écrit « 11 € 99 » ou « 40 cm » là où le texte dit « 11,99 € » ou « 40 centimètres » : une lecture correcte passait pour des mots sautés (88–91 %) et relançait jusqu'à 3 générations. - Découpe de la lecture SRT : la coupe entre deux sous-titres se fait dans la pause mesurée la plus proche de la borne estimée (fins de phrases préférées aux virgules), et non plus à la borne Whisper elle-même, fausse quand un prix non reconnu termine la phrase : la coupe tombait alors au milieu d'une phrase. - Whisper reçoit 0,5 s de silence avant la voix : il laissait passer le premier mot (« Alerte ») d'une voix qui démarre aussitôt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X3ywVwJUjjUXuvM6PwSzSi
This commit is contained in:
4 files changed
+119
-12
No files matched your search
@@ -103,7 +103,7 @@ def segments_from_reading(groups: list[list[Word]], envelope: quality.Envelope)
|
||||
marge (300 ms après le dernier son : les fins de phrases ne sont pas rognées)."""
|
||||
cuts = [0.0]
|
||||
for previous, following in zip(groups, groups[1:]):
|
||||
cuts.append(quality.sentence_cut(envelope, previous[-1].end, following[0].start))
|
||||
cuts.append(quality.sentence_cut(envelope, previous[-1].end, following[0].start, after=cuts[-1]))
|
||||
cuts.append(envelope.duration)
|
||||
if any(b <= a for a, b in zip(cuts, cuts[1:])):
|
||||
return None
|
||||
|
||||
Reference in new issue
Block a user