Интеграция Google Cloud Text-to-Speech для синтеза речи
Google Cloud TTS предлагает 380+ голосов на 50+ языках. Neural2 и Studio голоса — самые натуральные в портфолио Google. Wavenet-голоса имеют отличное качество при разумной стоимости. На русском: голоса ru-RU-Wavenet-A/B/C/D.
Типы голосов
| Тип | Качество | Стоимость | Пример |
|---|---|---|---|
| Standard | Базовое | $4/1M chars | ru-RU-Standard-A |
| Wavenet | Хорошее | $16/1M chars | ru-RU-Wavenet-D |
| Neural2 | Отличное | $16/1M chars | ru-RU-Neural2-A |
| Studio | Лучшее | $160/1M chars | ru-RU-Studio-* |
Базовая интеграция
from google.cloud import texttospeech
client = texttospeech.TextToSpeechClient()
def synthesize(text: str, voice_name: str = "ru-RU-Wavenet-D") -> bytes:
synthesis_input = texttospeech.SynthesisInput(text=text)
voice = texttospeech.VoiceSelectionParams(
language_code="ru-RU",
name=voice_name,
)
audio_config = texttospeech.AudioConfig(
audio_encoding=texttospeech.AudioEncoding.MP3,
speaking_rate=1.0, # 0.25–4.0
pitch=0.0, # -20.0–20.0 полутонов
volume_gain_db=0.0, # -96.0–16.0 дБ
effects_profile_id=["telephony-class-application"] # для IVR
)
response = client.synthesize_speech(
input=synthesis_input,
voice=voice,
audio_config=audio_config
)
return response.audio_content
SSML для контроля интонации
ssml_text = """
<speak>
Ваш заказ номер <say-as interpret-as="characters">A1234</say-as>
подтверждён на <say-as interpret-as="date" format="dd.MM.yyyy">01.03.2024</say-as>.
<break time="500ms"/>
Сумма к оплате: <say-as interpret-as="currency" language="ru-RU">1500 RUB</say-as>.
</speak>
"""
synthesis_input = texttospeech.SynthesisInput(ssml=ssml_text)
Сроки: 1 день (базовая интеграция), 2–3 дня (с SSML и кэшированием).







