Інтеграція OpenAI TTS для синтезу мови OpenAI TTS API пропонує 6 голосів (alloy, echo, fable, onyx, nova, shimmer) з підтримкою 50+ мов. Якість англійською — найкраща серед хмарних рішень. Російською — гарна, з природною інтонацією, але іноді з помітним акцентом. ### Доступні моделі - tts-1: оптимізовано для швидкості, затримка ~300 мс - tts-1-hd: висока якість, затримка ~500–800 мс ### Базова інтеграція```python
from openai import OpenAI import io
client = OpenAI()
def synthesize_speech(text: str, voice: str = "alloy") -> bytes: response = client.audio.speech.create( model="tts-1-hd", voice=voice, # alloy | echo | fable | onyx | nova | shimmer input=text, response_format="mp3", # mp3 | opus | aac | flac | wav | pcm speed=1.0 # 0.25–4.0 ) return response.content
Потоковый вывод (для real-time воспроизведения)
with client.audio.speech.with_streaming_response.create(
model="tts-1",
voice="nova",
input="Привет! Как я могу вам помочь?",
) as response:
response.stream_to_file("output.mp3")
### Кешування відповідей TTS-запити ідентичного тексту повертають однакове аудіо - кешуємо:python
import hashlib
import redis
cache = redis.Redis()
def get_speech(text: str, voice: str = "alloy") -> bytes: cache_key = hashlib.md5(f"{text}:{voice}:tts-1-hd".encode()).hexdigest() cached = cache.get(cache_key) if cached: return cached
audio = synthesize_speech(text, voice)
cache.setex(cache_key, 86400 * 7, audio) # TTL 7 дней
return audio







