# Bytedance Seed Speech text to speech fal AI v2

Needs text.

Bytedance Seed Speech Text to Speech, served by fal.ai. $0.03 per 1000 characters Text is limited to 5000 characters; the exact receipt determines the final charge. Asynchronous: returns a request_id; poll fal/status and fetch fal/result with model "fal-ai/bytedance" and that request_id. The exact endpoint/request billing receipt is required before settlement.

- Tool ID: `fal/fal-ai-bytedance-seed-speech-tts-v2`
- Name in the catalog: Bytedance Seed Speech, text to speech
- 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,
  "unitsField": "text",
  "unitsMeasure": "chars",
  "unitsPer": 1000,
  "fractional": true,
  "maxUnits": 10
}
```

Pricing source: [https://fal.ai/models/fal-ai/bytedance/seed-speech/tts/v2/llms.txt](https://fal.ai/models/fal-ai/bytedance/seed-speech/tts/v2/llms.txt). $0.03 per 1000 characters Text is limited to 5000 characters; the exact receipt determines the final charge..

Price verification date: 2026-11-03.

## Complete input schema


```json
{
  "type": "object",
  "properties": {
    "voice": {
      "enum": [
        "vivi_mixed_en_zh_ja_es_id",
        "mindy_en_es_id_pt_zh",
        "stokie_en",
        "dacey_en",
        "tim_en",
        "kian_en_zh",
        "cedric_en_zh",
        "sophie_en_zh",
        "jean_en_zh",
        "magnus_en_zh",
        "mabel_en_zh",
        "nadia_en_zh",
        "opal_en_zh",
        "pearl_en_zh",
        "quentin_en_zh",
        "vienna_mixed_en_zh",
        "alina_mixed_en_zh",
        "corinne_mixed_en_zh",
        "esther_mixed_en_zh",
        "freya_mixed_en_zh",
        "gigi_mixed_en_zh",
        "holly_mixed_en_zh",
        "lyla_mixed_en_zh",
        "daisy_mixed_en_zh",
        "tracy_es_zh",
        "jess_ja_es_id_pt_en_zh",
        "pinky_es_ko_mixed_en_zh",
        "sweety_ja_es",
        "sandy_es_mixed_en_zh",
        "sven_de",
        "minimi_ja",
        "usseau_fr",
        "felipe_es",
        "han_id",
        "martins_pt",
        "enzo_it",
        "shane_ko",
        "bonnie_zh",
        "felix_zh",
        "celeste_zh",
        "monkey_king_zh"
      ],
      "description": "Voice to use for synthesis. The preset name encodes the voice and its supported language codes. 'mixed_en_zh' means the voice can seamlessly blend English and Chinese; separate codes (e.g. 'en_zh') mean the voice supports each language independently.",
      "default": "stokie_en",
      "title": "Voice",
      "type": "string"
    },
    "pitch": {
      "description": "Voice pitch shift in semitones. 0 is normal pitch, -12 lowers by one octave, 12 raises by one octave.",
      "default": 0,
      "minimum": -12,
      "title": "Pitch",
      "maximum": 12,
      "type": "integer"
    },
    "voice_instruction": {
      "description": "Optional natural-language instruction that steers the delivery (tone, emotion, pace, volume), e.g. 'Speak in a cheerful tone' or 'Could you speak a bit slower?'. It is not spoken aloud and does not affect billing.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Voice Instruction"
    },
    "sample_rate": {
      "enum": [
        8000,
        16000,
        22050,
        24000,
        32000,
        44100,
        48000
      ],
      "description": "Sample rate of the output audio in Hz.",
      "default": 24000,
      "title": "Sample Rate",
      "type": "integer"
    },
    "language": {
      "description": "Force the text to be read as a single language, disabling automatic language detection. Leave unset for automatic detection (including seamless Chinese/English mixing on bilingual voices). Codes: zh (Chinese), en (English), ja (Japanese), es-mx (Mexican Spanish), id (Indonesian), pt-br (Brazilian Portuguese), ko (Korean), it (Italian), de (German), fr (French).",
      "anyOf": [
        {
          "enum": [
            "zh",
            "en",
            "ja",
            "es-mx",
            "id",
            "pt-br",
            "ko",
            "it",
            "de",
            "fr"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Language"
    },
    "text": {
      "description": "The text to synthesize into speech.",
      "title": "Text",
      "maxLength": 5000,
      "type": "string",
      "minLength": 1
    },
    "volume": {
      "description": "Volume. 1.0 is normal volume, 0.5 is half, 2.0 is double.",
      "default": 1,
      "minimum": 0.5,
      "title": "Volume",
      "maximum": 2,
      "type": "number"
    },
    "output_format": {
      "enum": [
        "mp3",
        "opus"
      ],
      "description": "Output audio format. 'mp3' returns MP3 audio; 'opus' returns Opus audio in an Ogg container.",
      "default": "mp3",
      "title": "Output Format",
      "type": "string"
    },
    "speed": {
      "description": "Speech speed. 1.0 is normal speed, 0.5 is half speed, 2.0 is double speed.",
      "default": 1,
      "minimum": 0.5,
      "title": "Speed",
      "maximum": 2,
      "type": "number"
    }
  },
  "required": [
    "text"
  ],
  "additionalProperties": false
}
```

## 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/fal-ai-bytedance-seed-speech-tts-v2",
  "input": {
    "text": "Hello, this is a test of ByteDance TTS 2.0 speech synthesis.",
    "voice": "stokie_en",
    "pitch": 0,
    "sample_rate": 24000,
    "volume": 1,
    "output_format": "mp3",
    "speed": 1
  }
}
```

## 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/fal-ai/bytedance/seed-speech/tts/v2)

[REST inspection](https://api.agentik.cc/v1/tools/fal/fal-ai-bytedance-seed-speech-tts-v2) · [OpenAPI](/openapi.json) · [Connection guide](/connect.md)

---

[HTML page](/providers/fal/fal-ai-bytedance-seed-speech-tts-v2) · [Agent index](/llms.txt)
