mirror of
https://github.com/R0m1k3/Socialflow.git
synced 2026-10-21 05:58:12 +02:00
Voix : Qwen gardé, nombres en lettres reconnus, Gemini plus court
Vu en production avec Qwen sur GPU : la plupart des phrases basculaient sur Gemini puis Edge (voix différente d'un sous-titre à l'autre). - Vérification de lecture : les nombres en lettres (« trente », « vingt-cinq pour cent ») et leur signe (« plus », « moins ») sont comparés comme les chiffres écrits par Whisper, au lieu de passer pour des mots sautés. - Prises emballées (14 s pour 34 caractères) écartées d'office ; côté qwen-tts, max_new_tokens borne la durée à « caractères / 6 + 3 » s. - Le moteur choisi est gardé tant qu'il lit au moins 70 % du texte (avec avertissement), au lieu de 85 % ; 3 tentatives Qwen. - Gemini : délai d'attente 45 s au lieu de 120 s, erreurs journalisées en repr. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Upu97wMmsRkBoj6iVM4rH6
This commit is contained in:
7 files changed
+93
-17
No files matched your search
@@ -103,3 +103,18 @@ def test_cut_prefers_the_sentence_pause_over_a_comma():
|
||||
# Borne estimée entre la virgule (1,3 s) et la fin de phrase (2,22 s)
|
||||
cut = sentence_cut(env, previous_end=1.7, next_start=1.75)
|
||||
assert 2.22 <= cut <= 2.67
|
||||
|
||||
|
||||
def test_numbers_written_in_letters_are_not_missing_words():
|
||||
expected = "Plus trente secondes chrono, le compteur s'affole : moins vingt-cinq pour cent !"
|
||||
heard = _heard("+30 secondes chrono, le compteur s'affole : -25% !")
|
||||
check = check_reading(expected, heard)
|
||||
assert check.acceptable, check
|
||||
assert check.missing == []
|
||||
|
||||
|
||||
def test_skipped_word_next_to_a_number_in_letters_is_still_detected():
|
||||
expected = "Trente secondes chrono, le compteur s'affole vraiment !"
|
||||
heard = _heard("30 secondes, le compteur s'affole vraiment !")
|
||||
check = check_reading(expected, heard)
|
||||
assert "chrono" in check.missing
|
||||
@@ -48,3 +48,12 @@ def test_qwen_target_prefers_app_settings(monkeypatch):
|
||||
assert Target.resolve(None, None) == Target("http://qwen-tts:8001", "env-key")
|
||||
monkeypatch.setattr(config, "QWEN_TTS_URL", "")
|
||||
assert Target.resolve("", None) is None
|
||||
|
||||
|
||||
def test_runaway_take_is_detected():
|
||||
from app.tts import is_runaway
|
||||
|
||||
text = "Christelle fonce dans les rayons !" # 34 caractères
|
||||
assert not is_runaway(3.0, text)
|
||||
assert not is_runaway(6.5, text) # lecture lente, mais plausible
|
||||
assert is_runaway(14.2, text) # vu en production : le modèle continue sans fin
|
||||
Reference in new issue
Block a user