Reference · Tools

Gemini TTS

Convert text to speech using Gemini.

Action (binary) AI v1 Binary data

The Gemini TTS node calls Google's Gemini generateContent API with an audio response modality to convert text into a playable WAV file, stored as binary data on the output item. You pick from five prebuilt voices — Puck, Charon, Kore, Fenrir, or Aoede — and wire the result straight into a file upload, email attachment, or media pipeline. It's the right node when your workflow needs to produce actual spoken audio, not just synthesize speech metadata.

Node type
Action (binary)
Parameters
6
Outputs
Output, Error
Credentials
Google AI

Gemini TTS

Convert text to speech using Gemini.

Overview

Gemini TTS uses the Gemini generateContent API with an audio response modality to turn text into speech. You choose one of five prebuilt voices — Puck, Charon, Kore, Fenrir or Aoede — and the spoken audio comes back as a playable file stored on the output item as binary data. Only TTS-capable models can produce audio; the Model dropdown is limited to those.

Category: AI
Tool Name: gemini_tts
Version: 1

Appearance: Icon: gemini | Color: #ffffff

Node Type

Action (Binary) — handles file/binary data operations

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Google AI credentials. See the Credentials Guide for setup instructions.

Parameters

ParameterTypeRequiredDefaultDescription
ModeloptionsNoThe Gemini TTS model to use. Only IDs ending in -tts-preview / -preview-tts can produce audio; plain chat IDs return “This model only supports text output.” The dropdown lists the models currently available for this node; leave it unset to use the default.
TextstringYesThe text to convert to speech. If empty, falls back to item.json.text or item.json.message. Supports expressions.
VoiceoptionsNoPuckThe prebuilt voice to use for speech synthesis.
Options: Puck (playful and energetic), Charon (deep and steady), Kore (clear and articulate), Fenrir (strong and commanding), Aoede (melodic and expressive)
OptionscollectionNo{}Optional output settings.
— Binary Property NamestringNodataProperty name under which the binary audio data will be stored. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use.
Include InputbooleanNofalseWhether to include the original input item fields in the output alongside the audio metadata.
Max ConcurrencynumberNo5Maximum number of items to process concurrently.

Output Data

One output item per input item. The speech is written to the binary property named by Binary Property Name (default data) as speech.wav — raw PCM audio returned by the model is wrapped in a proper WAV container first, so the file plays anywhere without further conversion. Binary data arriving from upstream is preserved.

The output item’s JSON contains only the fields below. The input item’s JSON is merged in only when Include Input is on:

FieldDescription
voiceThe voice used for this item.
modelThe model that produced the audio.
mimeTypeMedia type of the stored audio file.
textLengthCharacter count of the text that was spoken.

A request that comes back without audio is treated as an item error rather than a silent empty result.

Reference the result downstream by expression, e.g. {{ $json.voice }}, and the audio itself through the binary property name you configured.

Usage Examples

  • Convert text to speech using Gemini
  • Generate audio from text with the Kore voice
  • Create speech audio with a Gemini TTS model
  • Synthesize voiceover for each item in a dataset
  • Generate audio narration with Gemini Aoede voice

Example Configuration

Speak a fixed line with the default voice:

{
  "type": "gemini_tts",
  "parameters": {
    "text": "Hello, welcome to the workflow automation system."
  }
}

Narrate a field from each item, keeping the source data for correlation:

{
  "type": "gemini_tts",
  "parameters": {
    "text": "{{ $json.message }}",
    "voice": "Aoede",
    "includeInput": true,
    "maxConcurrency": 5,
    "options": {
      "binaryPropertyName": "narrationAudio"
    }
  }
}

Throttle to one item at a time and store the audio under its own property:

{
  "type": "gemini_tts",
  "parameters": {
    "text": "Processing complete. Please review the attached report.",
    "voice": "Charon",
    "maxConcurrency": 1,
    "options": {
      "binaryPropertyName": "ttsAudio"
    }
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Gemini TTS converts text to speech audio using the Gemini generateContent API with audio response modality, running on a TTS-capable Gemini model picked from the Model dropdown, which tracks the model catalog. Use it when a workflow needs to produce spoken audio from text input, selecting from five prebuilt voices: Puck, Charon, Kore, Fenrir, or Aoede. It outputs binary WAV audio data stored via the binary storage layer, delivered on the main output or routed to the error output on failure.

Frequently asked questions

Which voices are available, and can I use a custom voice?

The node offers exactly five prebuilt voices: Puck, Charon, Kore, Fenrir, and Aoede. There is no option to supply a custom voice model or clone a voice — you must choose one of these five from the Voice parameter.

What credential do I need to connect this node?

You need a Google AI credential (type: googleAi) configured in BusyBot. This is a Google AI Studio API key, not a Google Cloud service account. If you have credentials set up for other Google AI nodes they may already be usable here.

What does the output actually look like — how do I use the audio downstream?

The node outputs a binary WAV file attached to the output item's binary data field. Downstream nodes can read it the same way they would any binary file — pass it to a file-write node, attach it to an email, or upload it to cloud storage. Failures are routed to the separate Error output rather than stopping the main flow.

Can I use any Gemini model, or are there restrictions?

Only TTS-capable Gemini models can produce audio output, so the Model dropdown is filtered to that subset of the model catalog. You cannot select a general-purpose Gemini model and expect audio back — the node enforces this at the parameter level.

What happens if the API call fails mid-workflow?

Errors are routed to the dedicated Error output rather than propagating as a hard failure on the main output. This lets you branch your workflow — for example, logging the failure or retrying — without halting downstream steps that don't depend on the audio.

Build with the Gemini TTS node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Google AI credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.