# Bytedance Seed Speech Text to Speech API

> Seed Speech Tts 2.0 is Bytedance's text-to-speech AI model. Generate human-like voiceovers with expressive intonation, multilingual support, and customizable voice characteristics.

Source: https://www.sandbase.ai/models/bytedance/seed-speech/tts/2.0
API reference: https://www.sandbase.ai/models/bytedance/seed-speech/tts/2.0/docs

## Facts

- Provider: ByteDance
- Type: Audio model
- Model ID: `bytedance/seed-speech/tts/2.0`
- Price: From $0.06 per run
- Capabilities: text to speech
- Billing: pay per use from one SandBase balance; no provider account or subscription needed

## Call it

- Unified Run API: `POST https://api.sandbase.ai/v1/run`

```bash
curl -X POST https://api.sandbase.ai/v1/run \
  -H "Authorization: Bearer $SANDBASE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "bytedance/seed-speech/tts/2.0",
  "text": "Hello, this is a test of ByteDance TTS 2.0 speech synthesis.",
  "pitch": 0,
  "speed": 1,
  "voice": "stokie_en",
  "volume": 1,
  "sample_rate": 24000,
  "output_format": "mp3",
  "voice_instruction": "Speak in a warm, cheerful tone."
}'
```

The response returns a run id; poll `GET https://api.sandbase.ai/v1/run/{id}` until the status is `completed` or `failed`.

## FAQ

### How do I call Bytedance Seed Speech Text to Speech through SandBase?

Create a SandBase API key, then send requests with the model ID "bytedance/seed-speech/tts/2.0" to Unified Run API (/v1/run) at https://api.sandbase.ai. The request examples on this page show the exact payload.

### Do I need a separate ByteDance account?

No. One SandBase API key and balance gives you access to Bytedance Seed Speech Text to Speech and the other models in the catalog; you do not need to sign up with ByteDance separately.

## README

### Bytedance Seed Speech Text to Speech

Seed Speech TTS 2.0 generates expressive, multilingual voiceovers in 10 languages, with pitch, speed, and volume control and a free-text `voice_instruction` for delivery.

#### Fields

| Field | Type | Default | Notes |
|---|---|---|---|
| `text` | string | — | Text to speak. |
| `output_format` | `mp3` / `opus` | `mp3` | Output file format. |
| `sample_rate` | 8000 / 16000 / 22050 / 24000 / 32000 / 44100 / 48000 | 24000 | Output sample rate in Hz. |
| `volume` | number 0.5–2 | 1 | 0.5–2× loudness. |
| `voice` | `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` | `stokie_en` | Preset voice; names list the languages each voice supports. |
| `pitch` | integer -12–12 | 0 | Semitones, −12 to 12. |
| `language` | `zh` / `en` / `ja` / `es-mx` / `id` / `pt-br` / `ko` / `it` / `de` / `fr` | — | Force the text to be read as a single language, disabling automatic language detection. |
| `voice_instruction` | string | — | How to say it, e.g. “excited sports commentator”. |
| `speed` | number 0.5–2 | 1 | 0.5–2× speaking rate. |

#### Billing

$0.06 per started 1,000 characters of text, with a one-unit minimum.

| Text | Price |
|---|---|
| 200 characters | $0.06 |
| 1,000 characters | $0.06 |
| 2,500 characters | $0.18 |

Failed runs are not charged.

#### Prompting

- Pick a voice whose language list includes the text's language.
