Synthesize

text_to_speech.synthesize
ActionGoogle Cloudconnection required

Calls the Text-to-Speech API POST /v1/text:synthesize.

Synthesize speech from text or SSML; emits an audio file envelope.

Connection

Required
Yes — the node will not save without one
Auth type
OAuth 2.0
Providers
Google Text-to-Speech
Secret shape
{"client_id", "client_secret", "refresh_token"}
Resolved by
config.connection_id, else node.connection_id

Configuration

8 fields, none required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
text
Plain text to speak (or use ssml).
stringNo———
ssml
SSML markup to speak (takes precedence).
stringNo———
language_code
BCP-47 code; blank leaves it out of the call.
stringNoen-US——
voice_name
Voice name (e.g. en-US-Neural2-C); see List Voices.
stringNo———
ssml_gender
Preferred gender when no voice name is set.
stringNoSSML_VOICE_GENDER_UNSPECIFIEDone of "SSML_VOICE_GENDER_UNSPECIFIED", "MALE", "FEMALE", "NEUTRAL"—
audio_encoding
Output format.
stringNoMP3one of "MP3", "LINEAR16", "OGG_OPUS"—
speaking_rate
0.25-4.0 (1.0 = normal).
numberNo—0.25–4—
pitch
-20.0 to 20.0 semitones.
numberNo—-20–20—
  • At least one of text, ssml must be set.

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "audio_encoding": "MP3",
  "language_code": "en-US",
  "ssml_gender": "SSML_VOICE_GENDER_UNSPECIFIED"
}

Output

One shape.

file

FieldTypeExample
ok
boolean—
file_content
The file, base64-encoded.
string—
content_encoding
stringbase64
filename
stringapp-main.zip
content_type
stringapplication/zip
size
Raw size in bytes (before base64).
number—
encoding
string—
{
  "content_encoding": "base64",
  "content_type": "application/zip",
  "encoding": "",
  "file_content": "",
  "filename": "app-main.zip",
  "ok": false,
  "size": 0
}

Related Google Text-to-Speech nodes

See Synthesize run in a workflow.

In a technical demo we add the Google Text-to-Speech connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.