From 8ca773d27d77e6ca9f62b64c3663b7e85cdba755 Mon Sep 17 00:00:00 2001 From: Yera All Date: Tue, 7 Apr 2026 00:43:20 +0500 Subject: [PATCH] feat(ai): Add support for OpenAI TTS speed configuration, defaulting to 1.1x --- services/ai_voice_runtime_service/providers/tts.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/services/ai_voice_runtime_service/providers/tts.py b/services/ai_voice_runtime_service/providers/tts.py index f5ade08..be6a50b 100644 --- a/services/ai_voice_runtime_service/providers/tts.py +++ b/services/ai_voice_runtime_service/providers/tts.py @@ -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", },