refactor(tools): pack tts constant tables, writelines for elevenlabs, lease release result literal

This commit is contained in:
Teknium
2026-09-03 01:23:19 -07:00
parent 01262a79eb
commit 7664005a5d
3 changed files with 9 additions and 18 deletions

View File

@@ -59,14 +59,10 @@ PROVIDER_MAX_TEXT_LENGTH: Dict[str, int] = {
# ElevenLabs caps vary by model_id. https://elevenlabs.io/docs/overview/models
ELEVENLABS_MODEL_MAX_TEXT_LENGTH: Dict[str, int] = {
"eleven_v3": 5000,
"eleven_ttv_v3": 5000,
"eleven_multilingual_v2": 10000,
"eleven_multilingual_v1": 10000,
"eleven_english_sts_v2": 10000,
"eleven_english_sts_v1": 10000,
"eleven_flash_v2": 30000,
"eleven_flash_v2_5": 40000}
"eleven_v3": 5000, "eleven_ttv_v3": 5000,
"eleven_multilingual_v2": 10000, "eleven_multilingual_v1": 10000,
"eleven_english_sts_v2": 10000, "eleven_english_sts_v1": 10000,
"eleven_flash_v2": 30000, "eleven_flash_v2_5": 40000}
def _positive_int(value: Any) -> Optional[int]:
@@ -103,9 +99,7 @@ def _resolve_max_text_length(provider: Optional[str], tts_config: Optional[Dict[
# PCM output specs for Gemini TTS (fixed by the API): 24kHz mono 16-bit (L16).
GEMINI_TTS_SAMPLE_RATE = 24000
GEMINI_TTS_CHANNELS = 1
GEMINI_TTS_SAMPLE_WIDTH = 2
GEMINI_TTS_SAMPLE_RATE, GEMINI_TTS_CHANNELS, GEMINI_TTS_SAMPLE_WIDTH = 24000, 1, 2
# ffmpeg args producing the Ogg/Opus voice-bubble encoding Telegram & co expect.
_OPUS_VOICE_ARGS = [

View File

@@ -153,10 +153,8 @@ def release_tts_lease(lease: str) -> Dict[str, Any]:
with _tts_lease_lock:
_tts_leases.discard(lease)
holders = len(_tts_leases)
result: Dict[str, Any] = {"leases": holders, "released": 0}
if holders == 0:
result["released"] = release_tts_provider()["released"]
return result
released = release_tts_provider()["released"] if holders == 0 else 0
return {"leases": holders, "released": released}
def tts_lease_holders() -> List[str]:

View File

@@ -225,8 +225,7 @@ def _generate_elevenlabs(text: str, output_path: str, tts_config: Dict[str, Any]
model_id=el_config.get("model_id", DEFAULT_ELEVENLABS_MODEL_ID),
output_format="opus_48000_64" if output_path.endswith(".ogg") else "mp3_44100_128")
with open(output_path, "wb") as f:
for chunk in audio_generator:
f.write(chunk)
f.writelines(audio_generator)
return output_path
@@ -238,7 +237,7 @@ _XAI_WRAPPING_SPEECH_TAGS = (
"soft", "whisper", "loud", "build-intensity", "decrease-intensity", "higher-pitch",
"lower-pitch", "slow", "fast", "sing-song", "singing", "laugh-speak", "emphasis")
_XAI_SPEECH_TAG_RE = re.compile(
r"(\[(?:" + "|".join(_XAI_INLINE_SPEECH_TAGS) + r")\]|</?(?:" + "|".join(_XAI_WRAPPING_SPEECH_TAGS) + r")>)",
rf"(\[(?:{'|'.join(_XAI_INLINE_SPEECH_TAGS)})\]|</?(?:{'|'.join(_XAI_WRAPPING_SPEECH_TAGS)})>)",
flags=re.IGNORECASE)
_XAI_FIRST_SENTENCE_RE = re.compile(r"^(.{12,120}?[.!?…])\s+(?=\S)", flags=re.DOTALL)