feat(ai): Add support for OpenAI TTS speed configuration, defaulting to 1.1x

This commit is contained in:
Yera All
2026-04-07 00:43:20 +05:00
parent 0a8f586f97
commit 8ca773d27d
@@ -44,6 +44,15 @@ def _openai_tts_voice() -> str:
return os.getenv("AI_VOICE_TTS_VOICE", "alloy").strip() or "alloy"
def _openai_tts_speed() -> float:
raw = os.getenv("AI_VOICE_TTS_OPENAI_SPEED", "1.1").strip()
try:
value = float(raw)
except ValueError:
value = 1.1
return max(0.25, min(value, 4.0))
def _yandex_api_base() -> str:
return (
os.getenv("AI_VOICE_TTS_YANDEX_API_BASE", "https://tts.api.ml.yandexcloud.kz").strip()
@@ -155,6 +164,7 @@ class OpenAITTSProvider(TTSProvider):
self._timeout_seconds = _timeout_seconds()
self._model = _openai_tts_model()
self._voice = _openai_tts_voice()
self._speed = _openai_tts_speed()
self._cache_enabled = _tts_cache_enabled()
self._cache_dir = _tts_cache_dir()
self._cache_lock = Lock()
@@ -164,6 +174,7 @@ class OpenAITTSProvider(TTSProvider):
"provider": self.name,
"model": self._model,
"voice": self._voice,
"speed": self._speed,
"language": str(language or "").strip() or None,
"text": text,
}
@@ -202,6 +213,7 @@ class OpenAITTSProvider(TTSProvider):
"provider": self.name,
"model": self._model,
"voice": self._voice,
"speed": self._speed,
"language": str(language or "").strip() or None,
"sample_rate_hz": synthesis.sample_rate_hz,
"text": synthesis.text,
@@ -247,6 +259,7 @@ class OpenAITTSProvider(TTSProvider):
json={
"model": self._model,
"voice": self._voice,
"speed": self._speed,
"input": text,
"response_format": "pcm",
},