Langsung ke konten utama

Body Permintaan

Timeout permintaan sinkron: endpoint non-chat ini menunggu model yang dirutekan selesai. Input besar, audio panjang, atau batch besar dapat melebihi default client umum 30s, jadi atur timeout HTTP client Anda minimal 120s. Field opsional yang didukung berbeda menurut family model. TokenLab memvalidasi matriks field ini sebelum routing: OpenAI TTS menerima voice, instructions, response_format, stream_format, dan speed; MiniMax speech menerima voice, voice_id, response_format, stream_format, dan speed; Gemini TTS menerima prompt, language_code, voice, response_format, stream_format, speed, dan temperature; route TTS yang lebih sempit seperti Vidu/Kling mungkin hanya menerima input dan stream_format. Field top-level yang tidak dikenal, termasuk user, akan mengembalikan 400 unsupported_parameter alih-alih diabaikan.
model
string
default:"tts-1"
Model TTS. Contohnya tts-1, gpt-4o-mini-tts, speech-02-hd, dan gemini-2.5-flash-tts. Kueri GET /v1/models?recommended_for=tts untuk daftar terbaru.
input
string
wajib
Teks untuk menghasilkan audio. Maksimum 4096 karakter.
voice
string | object
Selector suara. Kirim nama bawaan seperti nova, suara Gemini seperti Kore, atau objek seperti { "id": "voice-id" } untuk suara kustom yang kompatibel.
voice_id
string
Selector suara native provider untuk model speech yang kompatibel dengan MiniMax.
instructions
string
Instruksi gaya atau delivery opsional untuk model TTS kompatibel OpenAI yang mendukungnya.
prompt
string
Prompt gaya bicara opsional untuk model Gemini TTS.
language_code
string
Kode bahasa opsional, misalnya en-US, untuk route Gemini, xAI, dan TTS kompatibel.
response_format
string
Format audio. Nilai umum mencakup mp3, opus, aac, flac, wav, dan pcm; nilai yang didukung berbeda menurut family model.
stream_format
string
default:"audio"
Format delivery TokenLab: audio atau sse. stream_format=sse tidak didukung untuk tts-1 atau tts-1-hd.
speed
number
Kecepatan bicara untuk family model yang mendukungnya (0.25 hingga 4.0).
temperature
number
Sampling temperature untuk route TTS kompatibel Gemini (0 hingga 2).

Respons

Mengembalikan file audio dalam format yang diminta.
curl -X POST "https://api.tokenlab.sh/v1/audio/speech" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-1-hd",
    "voice": "nova",
    "input": "Hello, welcome to TokenLab!"
  }' \
  --output speech.mp3
from openai import OpenAI

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://api.tokenlab.sh/v1"
)

response = client.audio.speech.create(
    model="tts-1-hd",
    voice="nova",
    input="Hello, welcome to TokenLab!"
)

response.stream_to_file("speech.mp3")
import OpenAI from 'openai';
import fs from 'fs';

const client = new OpenAI({
  apiKey: 'sk-your-api-key',
  baseURL: 'https://api.tokenlab.sh/v1'
});

const response = await client.audio.speech.create({
  model: 'tts-1-hd',
  voice: 'nova',
  input: 'Hello, welcome to TokenLab!'
});

const buffer = Buffer.from(await response.arrayBuffer());
fs.writeFileSync('speech.mp3', buffer);
<?php
$ch = curl_init('https://api.tokenlab.sh/v1/audio/speech');

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'Authorization: Bearer sk-your-api-key'
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'model' => 'tts-1-hd',
        'voice' => 'nova',
        'input' => 'Hello, welcome to TokenLab!'
    ])
]);

$audio = curl_exec($ch);
curl_close($ch);

file_put_contents('speech.mp3', $audio);

Sampel Voice

VoiceDeskripsi
alloyNetral, seimbang
ashTenang, terukur
balladMelodis, ekspresif
coralHangat, mengundang
echoHangat, percakapan
fableEkspresif, naratif
novaRamah, jelas
onyxDalam, berwibawa
sageBijaksana, penuh pertimbangan
shimmerLembut, halus
verseDinamis, serbaguna

Contoh respons

<binary audio data>

Field penting

Content-Type
string
Tipe event atau message yang dikembalikan API.
body
binary
Body respons mentah. Simpan langsung, jangan parse sebagai JSON.