ElevenLabs
ElevenLabs
elevenlabs/text-to-dialogue
Une famille de génération vocale et audio destinée aux développeurs, couvrant la synthèse vocale, la voix conversationnelle, les effets sonores et la génération musicale
Essayer elevenlabs/text-to-dialogue
Entrée
Créations
Voir toutes les créationsSortie
audioTarifs
elevenlabs/text-to-dialogue per 1,000 characters
| Prix unitaire | $0.125 |
|---|
Présentation
elevenlabs/text-to-dialogue est une interface qui synthétise directement en parole un texte de dialogue à plusieurs rôles : l'appelant décrit chaque réplique et sa voix au moyen d'un tableau { text, voice }, et le modèle produit en sortie les voix correspondantes ligne par ligne, l'ensemble des répliques soumises en une seule fois ne devant pas dépasser 5000 caractères. Il s'adresse aux développeurs qui doivent produire en une seule requête un audio de dialogue à deux ou plusieurs personnages, par exemple pour le doublage de sketchs, des conversations de podcast, des exemples de matériel pour assistants vocaux et l'interprétation dialoguée de contenus interactifs.
Points clés
- Timbre spécifié ligne par ligne, dialogue multi-personnages synthétisé en une requête — chaque réplique du tableau dialogue est associée individuellement à un voice_id, sans qu'il soit nécessaire de découper en plusieurs synthèses mono-voix puis de les assembler.
- Changement de timbre à chaque réplique, plus de 60 timbres candidats — l'énumération voice du schéma propose des dizaines d'options ; différents personnages d'un même dialogue peuvent utiliser des timbres différents.
- Paramètre de stabilité réglable globalement — stability accepte trois niveaux : 0, 0,5 et 1, pour arbitrer entre variation émotionnelle et constance du timbre.
- Langue détectée automatiquement ou spécifiée — language_code, laissé vide, déclenche la détection automatique ; il est aussi possible de spécifier explicitement un code ISO de langue, couvrant plus de 70 langues.
Description des capacités
Synthèse de dialogue multi-personnages : un tableau de dialogue décrit les répliques et les timbres ; un seul appel produit un audio de dialogue contenant plusieurs personnages, ce qui évite la synthèse par segments et l'assemblage manuel.
Association du timbre réplique par réplique : la voix de chaque ligne de dialogue se choisit indépendamment, ce qui permet d'attribuer des timbres différents aux personnages tout en préservant les caractéristiques vocales de chacun.
Contrôle de la stabilité et de la langue : stability contrôle l'amplitude des variations émotionnelles de l'expression, language_code détermine la langue de lecture ou laisse faire la détection automatique, ce qui facilite le traitement en lot de contenus dans une langue fixe.
Traitement de longs textes de dialogue : l'ensemble des répliques d'une requête est limité à 5000 caractères, ce qui convient à la soumission en une fois de scripts de dialogue complets, sans se soucier du découpage interne.
Cas d'usage
- Créateurs de sketchs et de contenus narratifs : scripts de dialogue multi-personnages — soumettre les répliques réparties par personnage avec leurs timbres respectifs pour obtenir un audio de dialogue complet, destiné à l'interprétation d'intrigues de sketchs, de fictions radiophoniques ou de séries interactives.
- Podcasts et contenus d'interview : scripts de conversation — convertir un texte de conversation à deux en une piste audio dialoguée aux timbres distincts, directement utilisable comme extrait de podcast ou bande démo d'émission.
- Équipes produit et contenu : matériel de dialogue multilingue — synthétiser un audio de dialogue dans la langue correspondante en spécifiant le code de langue, pour le doublage et la démonstration de versions étrangères.
- Développeurs : matériel de prototype pour dialogues vocaux — générer rapidement des audios d'exemple multi-personnages pour des prototypes d'assistants vocaux, de robots de service client, etc., afin de valider les flux et de réaliser des démonstrations internes.
Limites et conseils de choix
La sortie est un audio ; aucune image ni vidéo n'est produite, et la fabrication visuelle doit être réalisée séparément si un rendu final est nécessaire. L'ensemble des répliques d'une requête ne doit pas dépasser 5000 caractères ; un script trop long doit être découpé en plusieurs appels puis assemblé. Les timbres ne peuvent être choisis que dans la liste voice fournie par l'interface, sans clonage direct de nouveaux timbres. Si le cas d'usage ne concerne qu'une narration ou une lecture à une seule voix, la ligne de synthèse vocale mono-voix suffit, sans construire de tableau de dialogue.
Questions fréquentes
Voir toutes les questions →-
Qu'est-ce que Turbo 2.5 ?
Modèle de synthèse vocale à faible latence d'ElevenLabs, adapté aux assistants vocaux, aux annonces de notification et au doublage à grande échelle.
-
Comment l'appeler ?
Envoyez une requête POST /v1/tasks avec model (elevenlabs/text-to-speech-turbo-2-5) et input, puis utilisez taskId pour récupérer le résultat ou configurer un callback.
-
Comment la facturation est-elle calculée ?
La facturation est basée sur le nombre de caractères de input.text, par tranche de 1 000 caractères ; le prix unitaire en temps réel est celui indiqué dans la section tarifs de cette page.
-
previous_text et next_text sont-ils payants ?
Non, ils sont gratuits. Ils fournissent uniquement un contexte à la synthèse par segments afin de garantir une transition de ton naturelle.
Créer une tâche de génération
https://api.hiapi.ai/v1/tasks En-têtes
AuthorizationstringRequisClé API du compte. Requise sur chaque requête. Exemple : Bearer YOUR_HIAPI_API_KEY. Obtenir une clé API
Content-TypestringOptionnelLe corps de la requête est toujours analysé en JSON ; s'il est envoyé, seul application/json (charset facultatif) est accepté — toute autre valeur renvoie 415. Exemple : application/json.
Idempotency-KeystringOptionnelClé d'idempotence, jusqu'à 255 octets. Les reprises avec la même clé du même compte ne créent la tâche qu'une seule fois ; les rejeux renvoient le taskId d'origine.
En cas de timeout réseau ou de relance automatique du client, la même clé ne crée la tâche qu'une seule fois, sans double facturation (portée = le compte de la clé API). Utilisez un identifiant métier unique (ex. "order-42") ; les rejeux renvoient le taskId d'origine et les clés expirent 24 h après la première requête. La matrice complète des scénarios est dans la présentation de l'API asynchrone unifiée.
Corps
modelstringRequisValeur fixe actuelle : elevenlabs/text-to-dialogue
routestringOptionnelValeur fixe actuelle : default
inputobjectRequis
Objet de paramètres métier pour elevenlabs/text-to-dialogue et la route default — voir le tableau des paramètres ci-dessous.
dialoguearrayRequisminItems 1
Tableau d'éléments de dialogue ; chaque élément du tableau contient deux champs, text et voice, qui spécifient respectivement la réplique et la voix utilisée. Le nombre total de caractères de tous les champs text des éléments de dialogue ne doit pas dépasser 5000.
Array [ object ]
Éléments du tableau
textstringRequisminLength 1Contenu textuel de la réplique. Le nombre total de caractères de tous les champs text du tableau de dialogue ne doit pas dépasser 5000.
voicestringRequisDéfaut: "EkK5I93UQWFDigLMpZcX"Voix utilisée pour la réplique ; peut être un nom de voix prédéfini ou un voice_id. Par défaut EkK5I93UQWFDigLMpZcX.
EkK5I93UQWFDigLMpZcXZ3R5wn05IrDiVCyEkUrKNNl6r8mD7vthiJatiJt1YOq2y2Up4RgXP2HyXjE5B8gJV1IhpuegLxdpXFOE2zRM7PkgwBPiau2jvVXc1SM7GgM6IMuvQlz2BwM35l5f8iK3YPeGga21rQIXTout afficher (59)
scOwDtmlUjD3prqpp97INOpBlnGInO9m6vDvFkFCBZgkqPqms7Kj9ulSkVznwo6udizrrtpIxWGp2qJkgU0LNdkMOQCOrPrwtbeeDGzg6RaUqxGRTHSBjfgFx70vRnQBMBu4FAYhjJbOSm1seazb4gs7RSlUVw7cP1bg08DkjqiVEzOn76yGqDuRKMlYmrm8trt5QyBnqXpMhyvQqiRxWQs4qSSBTX3LPaxmHKxFdv7VOQHJN2lVS1w4EtoT3dr4eOWOFGY2WhTYpPnrIDTdsKH5kPzsL2i3teMYv0FxEYQ6UgBBYS2sOqTuMpoF3BR0hpp4J3VqNfWAUOO0d1UsnPczCjzI2devNBz1zQrbuYXf8XasLslADfZ2MB4ugs0tAILXbY5DNrJrsM6FDTKMou8ccj1ZaWGBiotdvBKc2FfBKJfcZNyEt1n6DYkrAHD8iwork3YSUBbs56AoDkrOh6qfVPDXZ7PteR40ATw9ArzDf9h3v7t7g6xIsTj2HwM6VR4iXFCwlcMyyd2HUfFzxdCaC4Ta6aDn1KB0hjpdcocrUkmqSq93GQT4X1lKDXsQcixOflHkNRp1BlvT73UL6gyz9yzdeviXkFddZ4Oz8MokpPdl9cQBQq4p6mRkZy2ZzYcjlYFOd3taleS0gkk3nzeAacJi50IvxcyDnMXaruirxsoakN0GWmGNIo04TC0Zp7WVFzhA8zpTlRqVljo9gAlSqKOvF6D8sOsXPPzYpIqttlTYA83688JI8JVbfL6oEdmuxKn5DK2CiCrDUkL56s3C8sCRl7wbwJqPPQ618aTW29mptyocEiNlNiXeDU1pqqOPrYMO4YYIPFl9wE5c4L2eu2Gb6F5Zhi321D3Oq7v1oNT4YXpFCvM1S3JbWEJhoskWLG95yZDEHg6fCZdQjLqjCeNX9CMwmxDxUF5Q2InmaD6riP1btT197c6dACmymtrellq69YZsNwzUSyXhdHd5gvgSOzSfduK4CvEgeVItLK1UvXctxuaRV2Oqesy0r39YPLQjOczyOib8Tsns2HvNFKfGiNjllgqo1U02n4nD6AdIZ9CjF053AeRdCCKzvd23BpJoofzxLruHrtVF6PSyGItzMNHS1wGbFxmAM3Fgw63G1zZJhqfrgApggtO1785R4FsnMJ0RnG71ty4LH3dvNfSdstabilitynumberOptionnelDéfaut: 0.5Stabilité de la voix : plus la valeur est petite, plus l'émotion est riche et variée ; plus elle est grande, plus la sortie est stable et cohérente. Par défaut 0.5.
00.51language_codestringOptionnelDéfaut: ""Code de langue (format ISO). Laisser vide pour une détection automatique de la langue ; vide par défaut.
afarhyasazbebnTout afficher (67)
bsbgcacebnyhrcsdanlenetfilfifrglkadeelguhahehihuisidgaitjajvknkkkykolvlnltlbmkmsmlzhmrnenopsfaplptparorusrsdskslsoesswsvtatethtrukurvicycallbackobjectOptionnel
Configuration de notification d'état terminal. Sans elle, aucun callback — interrogez la tâche vous-même.
Fournissez callback.url à la création et HiAPI envoie un POST à votre service à l'état terminal — plus besoin de polling. Le corps du rappel reprend la structure du détail de tâche ; vérification de signature, relances et idempotence sont décrits dans la présentation de l'API asynchrone unifiée.
urlstringRequisObligatoire si callback est présent. Un POST est envoyé vers cette URL à l'état terminal ; doit être une URL http(s) valide.
whenstringOptionnelDéfaut: "final"Seul final est pris en charge pour l'instant — notifié sur success et fail.
finalstoragestringOptionnelDéfaut: "temp"Niveau de stockage des artefacts : temp (par défaut, ~7 jours) ou persistent (long terme, facturé au volume). Solde insuffisant ou dépassement de limite ⇒ rétrogradation silencieuse en temp ; le niveau effectif figure dans la réponse de détail.
temppersistentExemples de requête
# Soumet une tâche asynchrone ; renvoie immédiatement un taskId (n'attend pas la génération)
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "elevenlabs/text-to-dialogue",
"input": {
"dialogue": "…",
"stability": 0.5,
"language_code": ""
}
}' const res = await fetch("https://api.hiapi.ai/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HIAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "elevenlabs/text-to-dialogue",
input: {
"dialogue": "…",
"stability": 0.5,
"language_code": ""
}
}),
});
const task = await res.json();
// { code: 200, message: "success", data: { taskId } } import os, requests
res = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json={
"model": "elevenlabs/text-to-dialogue",
"input": {
"dialogue": "…",
"stability": 0.5,
"language_code": ""
}
},
)
print(res.json()) # { code, message, data: { taskId } } 200 OK
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR"
}
} 400 Bad Request
{
"code": 400,
"message": "invalid request",
"data": null,
"error_code": "INVALID_REQUEST"
} Obtenir le détail de la tâche
https://api.hiapi.ai/v1/tasks/:id Champs de réponse
taskIdstringRequisIdentifiant de tâche, toujours préfixé tk-hiapi-.
modelstringRequisNom complet résolu du modèle. Les tâches envoyées avec le paramètre route renvoient base@route (ex. gpt-image-2/text-to-image@ext) ; sinon identique au nom fourni.
routestringOptionnelPrésent uniquement si le paramètre route explicite a été utilisé ; renvoie la valeur soumise.
statusstringRequisStatut de la tâche.
queued En file, pas encore démarrée.
handling En cours de traitement.
archiving Traitement terminé, préparation des artefacts.
success Terminal : terminé, artefacts disponibles (output renvoyé).
fail Terminal : échec (error renvoyé).
Après soumission, suivez status : success et fail sont terminaux, le reste non terminal. Interrogez toutes les 1–3 s jusqu'à l'état terminal. En cas de succès, téléchargez les artefacts via output[].url et transférez-les avant expireAt ; pour une conservation longue durée, indiquez storage: "persistent" à la création.
creatednumberRequisDate de création de la tâche (secondes Unix).
completednumberRequisSecondes Unix de l'état terminal ; 0 tant que non terminal.
outputarrayOptionnel
Présent uniquement si status == success. Liste d'artefacts — toujours un tableau ; une tâche peut renvoyer plusieurs types à la fois (ex. video + first_frame).
Array [ object ]
Éléments du tableau
urlstringRequisURL de l'artefact, téléchargeable directement.
typestringRequisValeurs possibles actuelles : video, image, audio, first_frame, last_frame, thumbnail ; d'autres pourront s'ajouter.
expireAtnumberRequisSecondes Unix de disponibilité de l'artefact ; téléchargez ou transférez avant l'expiration.
errorobjectOptionnel
Présent uniquement si status == fail.
codestringRequisCode d'erreur métier.
messagestringRequisDescription de l'erreur.
Exemples de réponse
Succès
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR",
"model": "happyhorse-1-0",
"status": "success",
"created": 1777282033,
"completed": 1777282099,
"output": [
{
"url": "https://cdn.hiapi.ai/tasks/.../video.mp4",
"type": "video",
"expireAt": 1777886899
}
]
}
} En cours (non terminal)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Échec
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "fail",
"created": 1777282033,
"completed": 1777282099,
"error": {
"code": "TASK_FAILED",
"message": "task failed"
}
}
} Articles
Voir tous les articles →-
Tutoriel
Comment appeler kling-4.0/image-to-video sur HiAPI : curl, Python et interrogation périodique
-
Comparatif et évaluation
Comparatif horizontal de Recraft v4.1 Flash en génération d'images à partir de texte : guide de sélection et de migration pour les développeurs
Avec un coût de 0,01 $ par image et ses capacités de génération pure à partir de texte, déterminez s'il convient à votre pipeline de génération d'images
-
Tutoriel
Tutoriel pour kandinsky-6.0-pro/image-to-video sur HiAPI : curl + Python
Lancer une requête image-vers-vidéo exploitable sur HiAPI : de l'envoi de la première image à l'interrogation asynchrone jusqu'au téléchargement final
-
Tutoriel
recraft-v4.1-flash génération d'images texte-à-image en pratique : 5 scénarios métier à forte valeur et points d'intégration clés
À partir d'un coût de 0,01 $ par image, planifier le déploiement de la génération d'images dans de vrais contextes métier
-
Tutoriel
Comment appeler hailuo-2.3/text-to-video via l'API HiAPI : curl, Python et exemples de requêtes exécutables
-
Tutoriel
Utiliser Kandinsky 6.0 Pro texte-vers-vidéo sur HiAPI : tutoriel curl et Python
Démonstration pratique axée sur la requête : construire l'appel du prompt au clip vidéo, soumettre la requête, interroger l'état d'achèvement et télécharger le résultat
-
Comparatif et évaluation
Comparatif transversal de hailuo-2.3-fast/image-to-video : comment choisir un modèle image-to-video et les points clés de migration
-
Tutoriel
Comment utiliser kling-4.0/text-to-video via l'API HiAPI : curl, Python et un exemple de requête fonctionnel
Guide pratique pour les développeurs : prompts cinématographiques, audio synchronisé, interrogation asynchrone et téléchargement des sorties
-
Tutoriel
Comment appeler hailuo-2.3-fast/image-to-video via l'API HiAPI : curl et Python en pratique
La première requête exploitable du palier image-vers-vidéo rapide et économique — de l'ID du modèle au téléchargement du MP4
Modèles associés
Voir tous les modèles →Même type
-
Gemini 3.1 Flash TTS Google -- -
Qwen Audio 3.0 TTS Alibaba $0.030 /1 000 caractères -
MiniMax Music 3 MiniMax $0.0026 /seconde -
Lyria 3.5 Google $0.090 /morceau -
Mureka 9.5 Mureka $0.322 per request -
Lyria 3 Pro Google $0.140 /morceau -
MiniMax Music 2.6 MiniMax $0.210 /morceau -
Mirelo SFX 2.0 Mirelo AI $0.021 /seconde -
MiniMax Music 1.5 MiniMax $0.070 /morceau -
ElevenLabs ElevenLabs $0.0029 /seconde



