feat(ai): Add support for OpenAI TTS speed configuration, defaulting to 1.1x
This commit is contained in:
@@ -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",
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user