Passer au contenu principal

Corps de la requête

Timeout des requêtes synchrones : cet endpoint non-chat attend que le modèle routé termine son traitement. Les entrées volumineuses, les longs fichiers audio ou les grands lots peuvent dépasser les valeurs par défaut courantes de 30s côté client ; configurez donc le timeout de votre client HTTP à au moins 120s. Les champs optionnels pris en charge varient selon la famille de modèles. TokenLab valide cette matrice avant le routage : OpenAI TTS accepte voice, instructions, response_format, stream_format et speed ; MiniMax speech accepte voice, voice_id, response_format, stream_format et speed ; Gemini TTS accepte prompt, language_code, voice, response_format, stream_format, speed et temperature ; les routes TTS plus strictes de type Vidu/Kling peuvent n’accepter que input et stream_format. Les champs de premier niveau inconnus, y compris user, renvoient 400 unsupported_parameter au lieu d’être ignorés.
model
string
défaut:"tts-1"
Modèle TTS. Exemples : tts-1, gpt-4o-mini-tts, speech-02-hd et gemini-2.5-flash-tts. Consultez GET /v1/models?recommended_for=tts pour la sélection actuelle.
input
string
requis
Le texte pour lequel générer l’audio. Maximum 4096 caractères.
voice
string | object
Sélecteur de voix. Passez un nom intégré comme nova, une voix Gemini comme Kore, ou un objet comme { "id": "voice-id" } pour les voix personnalisées compatibles.
voice_id
string
Sélecteur vocal natif du fournisseur pour les modèles speech compatibles MiniMax.
instructions
string
Instructions optionnelles de style ou de rendu pour les modèles TTS compatibles OpenAI qui les prennent en charge.
prompt
string
Prompt optionnel de style de parole pour les modèles Gemini TTS.
language_code
string
Code de langue optionnel, par exemple en-US, pour les routes Gemini, xAI et TTS compatibles.
response_format
string
Format audio. Les valeurs courantes incluent mp3, opus, aac, flac, wav et pcm ; les valeurs prises en charge varient selon la famille de modèles.
stream_format
string
défaut:"audio"
Format de livraison TokenLab : audio ou sse. stream_format=sse n’est pas pris en charge pour tts-1 ni tts-1-hd.
speed
number
Vitesse de parole pour les familles de modèles qui la prennent en charge (0.25 à 4.0).
temperature
number
Température d’échantillonnage pour les routes TTS compatibles Gemini (0 à 2).

Réponse

Retourne le fichier audio dans le format demandé.
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);

Exemples de voix

VoixDescription
alloyNeutre, équilibrée
ashCalme, mesurée
balladMélodique, expressive
coralChaleureuse, accueillante
echoChaleureuse, conversationnelle
fableExpressif, narratif
novaAmicale, claire
onyxGrave, autoritaire
sageSage, réfléchie
shimmerDouce, délicate
verseDynamique, polyvalente

Exemple de réponse

<binary audio data>

Champs importants

Content-Type
string
Type d’événement ou de message retourné par l’API.
body
binary
Corps brut de la réponse. Enregistrez-le directement sans le parser en JSON.