Skip to main content

Usage guide

Setup, environment variables, and Python/JavaScript/Go usage examples.

GoogleTTS

Google Cloud Text-to-Speech plugin with streaming output. Synthesises speech using the Google Cloud TTS API, supporting the full voice family range from Standard through Chirp3-HD. Voices are selected by name; the model family is inferred from the voice name automatically.

Constructor

api_key
Optional[str]
Google API key. Also used as a fallback credential source (treated as a JSON file path first). Falls back to the GOOGLE_API_KEY env var.
credentials_json
Optional[str]
Service-account credentials as a raw JSON string or a path to a JSON key file. Takes highest precedence for authentication.
service_account_path
Optional[str]
Path to a service-account JSON key file. Used when credentials_json is not provided.
stream
bool
default:"True"
When True (default), audio is streamed back progressively for lower time-to-first-audio. When False, the full synthesis result is returned in one response.
voice
str
default:"en-US-Neural2-F"
Google Cloud TTS voice name following the pattern {language}-{region}-{Family}-{Character}, e.g. "en-US-Neural2-F" (default, Neural2 female US English). The voice name implicitly determines the model family; see model for details. Overridden by voice_config.name when a voice_config is supplied and the default is active.
language_code
str
default:"en-US"
BCP-47 language code for the voice, e.g. "en-US" (default). Overridden by voice_config.languageCode when a voice_config is supplied and the default is active.
model
GoogleTTSModel | str
default:""
Voice family override. Known values (GoogleTTSModel): "chirp3-hd", "chirp-hd", "studio", "neural2" , "wavenet", "standard", "news", "polyglot", "chirp". Leave empty (default "") to let the voice name determine the family. Raises ValueError if the explicit model contradicts the family implied by voice.
sample_rate
int
default:"24000"
Output audio sample rate in Hz. Default: 24000.
speaking_rate
Optional[float]
Playback speed multiplier. Range [0.25, 4.0]; 1.0 is native speed (API default). None omits the parameter and lets the API use its default.
pitch
Optional[float]
Pitch shift in semitones. Range [-20.0, 20.0]; 0.0 is the original pitch. None omits the parameter. Raises ValueError outside the valid range.
voice_config
Optional[GoogleVoiceConfig]
Optional GoogleVoiceConfig dataclass. When provided, its name and languageCode fields take precedence over voice / language_code if those parameters are still at their defaults.

aclose

Release any resources held by the provider.

emit

Emit an event, invoking all registered handlers with the given arguments. Handlers are called in registration order. Coroutine handlers are scheduled on the running event loop. If the emitter is closed, the call is a no-op.
event
T
required
The event to emit.

interrupt

Interrupt and cancel the current synthesis for the active session, if any.

off

Remove a previously registered handler for an event. If the handler is not registered for the event, the call is a no-op.
event
T
required
The event the handler was registered for.
callback
Callable[..., Any]
required
The handler to remove.

on

Register a handler for an event. Can be used directly by passing a callback, or as a decorator when callback is omitted.
event
T
required
The event to listen for.
callback
Callable[..., Any] | None
The handler to invoke when the event is emitted. If None, a decorator is returned that registers the decorated function.
returns
Callable[..., Any]
The registered callback when callback is provided, otherwise a decorator that registers and returns the function it wraps.

on_first_audio_byte

Register the callback invoked when the first audio byte is produced.
callback
'Callable[[int, int], Awaitable[None] | None]'
required
A callable, optionally async, invoked with synthesis timing information when the first audio byte is emitted.

synthesize

Synthesize the given text into speech. Implementations should convert the text to audio. The default behavior forwards the text to the active session for playback when one is present.
text
Any
required
The text to synthesize; coerced to a string if needed.

GoogleTTSModel