Overview
Google Cloud Text-to-Speech provides high-quality speech synthesis with two service implementations:GoogleTTSService (WebSocket-based) for streaming with the lowest latency, and GoogleHttpTTSService (HTTP-based) for simpler integration. GoogleTTSService is recommended for real-time applications.
Google TTS API Reference
Pipecat’s API methods for Google Cloud TTS integration
Example Implementation
Complete example with Chirp 3 HD voice
Google Cloud Documentation
Official Google Cloud Text-to-Speech documentation
Voice Gallery
Browse available voices and languages
Installation
To use Google services, install the required dependencies:Prerequisites
Google Cloud Setup
Before using Google Cloud TTS services, you need:- Google Cloud Account: Sign up at Google Cloud Console
- Project Setup: Create a project and enable the Text-to-Speech API
- Service Account: Create a service account with TTS permissions
- Authentication: Set up credentials via service account key or Application Default Credentials
Required Environment Variables
GOOGLE_APPLICATION_CREDENTIALS: Path to your service account key file (recommended)- Or use Application Default Credentials for cloud deployments
Configuration
GoogleTTSService
Streaming service optimized for Chirp 3 HD and Journey voices.str
default:"None"
JSON string containing Google Cloud service account credentials.
str
default:"None"
Path to Google Cloud service account JSON file.
str
default:"None"
Google Cloud location for regional endpoint (e.g.,
"us-central1").str
default:"en-US-Chirp3-HD-Charon"
deprecated
Google TTS voice identifier. Deprecated in v0.0.105. Use
settings=GoogleTTSService.Settings(voice=...) instead.str
default:"None"
Voice cloning key for Chirp 3 custom voices.
int
default:"None"
Output audio sample rate in Hz. When
None, uses the pipeline’s configured
sample rate.InputParams
default:"InputParams()"
deprecated
Deprecated in v0.0.105. Use
settings=GoogleTTSService.Settings(...)
instead.GoogleTTSService.Settings
default:"None"
Runtime-configurable settings. See GoogleTTSService
Settings below.
GoogleTTSService Settings
Runtime-configurable settings passed via thesettings constructor argument using GoogleTTSService.Settings(...). These can be updated mid-conversation with TTSUpdateSettingsFrame. See Service Settings for details.
GoogleHttpTTSService
HTTP service with full SSML support for all voice types.str
default:"None"
JSON string containing Google Cloud service account credentials.
str
default:"None"
Path to Google Cloud service account JSON file.
str
default:"None"
Google Cloud location for regional endpoint.
str
default:"en-US-Chirp3-HD-Charon"
deprecated
Google TTS voice identifier. Deprecated in v0.0.105. Use
settings=GoogleHttpTTSService.Settings(voice=...) instead.int
default:"None"
Output audio sample rate in Hz.
InputParams
default:"None"
deprecated
Deprecated in v0.0.105. Use
settings=GoogleHttpTTSService.Settings(...)
instead.GoogleHttpTTSService.Settings
default:"None"
Runtime-configurable settings. See GoogleHttpTTSService
Settings below.
GoogleHttpTTSService Settings
Runtime-configurable settings passed via thesettings constructor argument using GoogleHttpTTSService.Settings(...). These can be updated mid-conversation with TTSUpdateSettingsFrame. See Service Settings for details.
GeminiTTSService
Streaming service using Gemini’s TTS-specific models with natural voice control, prompts for style instructions, and multi-speaker support.str
default:"gemini-2.5-flash-tts"
deprecated
Gemini TTS model to use. Options:
"gemini-2.5-flash-tts",
"gemini-2.5-pro-tts". Deprecated in v0.0.105. Use
settings=GeminiTTSService.Settings(model=...) instead.str
default:"None"
JSON string containing Google Cloud service account credentials.
str
default:"None"
Path to Google Cloud service account JSON file.
str
default:"None"
Google Cloud location for regional endpoint.
str
default:"Kore"
deprecated
Voice name from available Gemini voices (e.g.,
"Kore", "Charon", "Puck",
"Zephyr"). Deprecated in v0.0.105. Use
settings=GeminiTTSService.Settings(voice=...) instead.int
default:"None"
Output audio sample rate in Hz. Google TTS outputs at 24kHz; mismatched rates
will produce a warning.
InputParams
default:"None"
deprecated
Deprecated in v0.0.105. Use
settings=GeminiTTSService.Settings(...)
instead.GeminiTTSService.Settings
default:"None"
Runtime-configurable settings. See GeminiTTSService
Settings below.
GeminiTTSService Settings
Runtime-configurable settings passed via thesettings constructor argument using GeminiTTSService.Settings(...). These can be updated mid-conversation with TTSUpdateSettingsFrame. See Service Settings for details.
Usage
Basic Setup (Streaming)
HTTP Service with SSML
Gemini TTS with Style Prompt
Notes
- Streaming vs HTTP:
GoogleTTSServiceuses the streaming API for low latency and only supports Chirp 3 HD and Journey voices.GoogleHttpTTSServicesupports all Google voices including Standard and WaveNet, with full SSML support. - Chirp/Journey voices and SSML: Chirp and Journey voices do not support SSML. The HTTP service automatically uses plain text input for these voices.
- Speaking rate: For Chirp and Journey voices, use
speaking_rate(float, 0.25-2.0) insettings. For other voices, userate(string) for SSML prosody control. - Gemini TTS sample rate: Google TTS always outputs at 24kHz. Setting a different sample rate will produce a warning and may cause audio issues.
- Gemini multi-speaker: Use
multi_speaker=Truewithspeaker_configsto generate conversations between multiple voices. Markup text with speaker aliases to control which voice speaks.