fix(voice): instrucțiune de limbă inline + fallback Supertonic pe română
Markerul opac [tts-lang:en] depindea de regula din VOICE_MODE.md, aflată la ~30k caractere distanță în system prompt — modelul o rata pe ~1 din 5 turnuri. Răspunsul în română era apoi respins integral de pocket-tts (English-only) și turnul rămânea fără audio. - src/router.py: markerul poartă instrucțiunea inline (un singur token, acoperit în continuare de strip-ul anti-jailbreak); 5/5 EN la repro - src/voice/tts_stream.py: dacă modelul tot scapă română pe o voce pockettts, blocul cade pe Supertonic (M2, ro) în loc de tăcere; coada TTS transportă (clause, voice, lang) per clauză - tools/tts.py: looks_romanian public (folosit de tts_stream) - personality/VOICE_MODE.md: regula gated pe prefixul [tts-lang:en - tests: 4 teste noi fallback + expectații marker actualizate Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -449,7 +449,13 @@ class TestVoiceLangMarker:
|
||||
from src.router import _voice_turn_lang_marker
|
||||
|
||||
mock_config_cls.return_value.get.return_value = "Marius 2"
|
||||
assert _voice_turn_lang_marker() == "[tts-lang:en] "
|
||||
marker = _voice_turn_lang_marker()
|
||||
# Marker-ul poartă instrucțiunea inline, dar trebuie să rămână un
|
||||
# singur token [tts-lang:...] (fără ] interior) ca să fie gated de
|
||||
# VOICE_MODE.md și strip-uit de regex-ul anti-jailbreak.
|
||||
assert marker.startswith("[tts-lang:en")
|
||||
assert marker.endswith("] ")
|
||||
assert "]" not in marker[1:-2]
|
||||
mock_engine.assert_called_once_with("Marius 2")
|
||||
|
||||
@patch("tools.tts.engine_for_voice", return_value="supertonic")
|
||||
|
||||
Reference in New Issue
Block a user