# Gemini 3.8 Flash Lite TTS speech and two-speaker dialogue

Takes style instructions, voice, turns and more, all optional. Served by fal.ai.

Gemini 3.8 Flash Lite TTS (Google), speech and two-speaker dialogue, served by fal.ai. Generate speech from text with Google’s Gemini 3.8 Flash Lite TTS. Price: $0.03 per 1,000 spoken characters, pro rata: prompt or the sum of turns[].text; styles and speaker aliases are excluded. 30 voices, WAV, single speech or exactly two speakers. Provider limit: 8,192 total input tokens including style instructions. Agentik also refuses more than 1,000,000 spoken Unicode characters before dispatch; this is a local bound, not a conversion of tokens to characters. Waits up to 40 s for the result; if the generation takes longer, the run stays RUNNING and returns a request_id; poll fal/status and fetch fal/result with model "google/gemini-3.8-flash-lite-tts" and that request_id. Billed once, when the result is ready; a generation that fails is refunded.

- Tool ID: `fal/gemini-3-8-flash-lite-tts`
- Name in the catalog: Gemini 3.8 Flash Lite TTS (Google), speech and two-speaker dialogue
- Provider: [fal.ai](/providers/fal.md)
- Capability: [AI audio](/tools/audio-generation.md)
- Price: $0.03 per 1,000 characters
- Authentication: an authorised Agentik workspace is required for execution, including zero-price tools.

## Pricing contract

The provider’s price, with no markup. Billed for measured usage.


```json
{
  "model": "per_unit",
  "amountUsd": 0.03,
  "unitsFields": [
    {
      "path": "prompt"
    },
    {
      "path": "turns",
      "itemField": "text"
    }
  ],
  "unitsMeasure": "chars",
  "unitsPer": 1000,
  "fractional": true,
  "maxUnits": 1000
}
```

Pricing source: [https://fal.ai/models/google/gemini-3.8-flash-lite-tts](https://fal.ai/models/google/gemini-3.8-flash-lite-tts). $0.03 per 1,000 spoken characters, pro rata: prompt or the sum of turns[].text; styles and speaker aliases are excluded. 30 voices, WAV, single speech or exactly two speakers. Provider limit: 8,192 total input tokens including style instructions. Agentik also refuses more than 1,000,000 spoken Unicode characters before dispatch; this is a local bound, not a conversion of tokens to characters..

Price verification date: 2026-10-07.

## Complete input schema


```json
{
  "type": "object",
  "properties": {
    "style_instructions": {
      "type": "string",
      "description": "Delivery style, separate from the spoken transcript. Applies to all turns unless overridden.",
      "title": "Style Instructions"
    },
    "voice": {
      "description": "Prebuilt voice for single-speaker speech.",
      "type": "string",
      "enum": [
        "Achernar",
        "Achird",
        "Algenib",
        "Algieba",
        "Alnilam",
        "Aoede",
        "Autonoe",
        "Callirrhoe",
        "Charon",
        "Despina",
        "Enceladus",
        "Erinome",
        "Fenrir",
        "Gacrux",
        "Iapetus",
        "Kore",
        "Laomedeia",
        "Leda",
        "Orus",
        "Pulcherrima",
        "Puck",
        "Rasalgethi",
        "Sadachbia",
        "Sadaltager",
        "Schedar",
        "Sulafat",
        "Umbriel",
        "Vindemiatrix",
        "Zephyr",
        "Zubenelgenubi"
      ],
      "default": "Kore",
      "title": "Voice"
    },
    "turns": {
      "items": {
        "required": [
          "speaker_id",
          "text"
        ],
        "properties": {
          "style_instructions": {
            "description": "Optional delivery style for this turn.",
            "title": "Style Instructions",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "text": {
            "minLength": 1,
            "description": "Verbatim transcript for this turn.",
            "type": "string",
            "title": "Text"
          },
          "speaker_id": {
            "minLength": 1,
            "description": "Alias of a configured speaker.",
            "type": "string",
            "title": "Speaker ID"
          }
        },
        "type": "object",
        "x-fal-order-properties": [
          "speaker_id",
          "text",
          "style_instructions"
        ],
        "title": "SpeechTurn",
        "additionalProperties": false
      },
      "type": [
        "array",
        "null"
      ],
      "minItems": 1,
      "description": "Ordered dialogue turns, each identifying a configured speaker.",
      "title": "Turns"
    },
    "speakers": {
      "items": {
        "required": [
          "speaker_id",
          "voice"
        ],
        "properties": {
          "voice": {
            "description": "Prebuilt voice for this speaker.",
            "type": "string",
            "enum": [
              "Achernar",
              "Achird",
              "Algenib",
              "Algieba",
              "Alnilam",
              "Aoede",
              "Autonoe",
              "Callirrhoe",
              "Charon",
              "Despina",
              "Enceladus",
              "Erinome",
              "Fenrir",
              "Gacrux",
              "Iapetus",
              "Kore",
              "Laomedeia",
              "Leda",
              "Orus",
              "Pulcherrima",
              "Puck",
              "Rasalgethi",
              "Sadachbia",
              "Sadaltager",
              "Schedar",
              "Sulafat",
              "Umbriel",
              "Vindemiatrix",
              "Zephyr",
              "Zubenelgenubi"
            ],
            "title": "Voice"
          },
          "speaker_id": {
            "minLength": 1,
            "description": "Speaker alias used in each turn.",
            "type": "string",
            "title": "Speaker ID"
          }
        },
        "type": "object",
        "x-fal-order-properties": [
          "speaker_id",
          "voice"
        ],
        "title": "SpeakerConfig",
        "additionalProperties": false
      },
      "type": [
        "array",
        "null"
      ],
      "minItems": 2,
      "maxItems": 2,
      "description": "Exactly two distinct speaker aliases and their prebuilt voices for dialogue.",
      "title": "Speakers",
      "uniqueItems": true
    },
    "prompt": {
      "type": [
        "string",
        "null"
      ],
      "description": "Verbatim text for single-speaker speech. Put delivery directions in style_instructions; inline vocal events may use <laugh> or <sigh>. For dialogue, omit prompt and provide speakers and turns instead. The provider limits the complete input to 8,192 tokens.",
      "title": "Prompt"
    }
  },
  "additionalProperties": false,
  "oneOf": [
    {
      "required": [
        "prompt"
      ],
      "properties": {
        "prompt": {
          "type": "string",
          "minLength": 1
        },
        "speakers": {
          "type": "null"
        },
        "turns": {
          "type": "null"
        }
      }
    },
    {
      "required": [
        "speakers",
        "turns"
      ],
      "properties": {
        "prompt": {
          "type": "null"
        },
        "speakers": {
          "type": "array"
        },
        "turns": {
          "type": "array"
        }
      }
    }
  ]
}
```

## Published example

This is the provider tool’s published example. Replace example values with the user’s requested inputs, respecting the schema; do not execute an example merely to test a connection.


```json
{
  "tool_id": "fal/gemini-3-8-flash-lite-tts",
  "input": {
    "prompt": "Bonjour depuis Agentik.",
    "voice": "Kore",
    "style_instructions": "Warm and friendly"
  }
}
```

## Execute and retrieve

Inspect again before execution, explain the price and obtain the required authority. Use MCP run_tool or POST /v1/run with this tool ID, valid input and an idempotency key. Save the returned run ID and follow the actual state. If Agentik answers that the tool is temporarily unavailable, do not retry it blindly; use discovery to propose an alternative.

This tool uses deferred settlement. Follow its returned task/run instructions; preserve the existing reservation until the result is reconciled.

A partial or uncertain result can still have consumed provider resources. Consult [billing](/docs/billing.md), [idempotency](/docs/idempotency.md) and [asynchronous results](/docs/async.md).

[Provider documentation](https://fal.ai/models/google/gemini-3.8-flash-lite-tts)

[REST inspection](https://api.agentik.cc/v1/tools/fal/gemini-3-8-flash-lite-tts) · [OpenAPI](/openapi.json) · [Connection guide](/connect.md)

---

[HTML page](/providers/fal/gemini-3-8-flash-lite-tts) · [Agent index](/llms.txt)
