ElevenLabs
ElevenLabs
elevenlabs/text-to-dialogue
Famiglia di generazione vocale e audio per sviluppatori, che copre sintesi vocale, voce conversazionale, effetti sonori e generazione musicale
Prova elevenlabs/text-to-dialogue
Input
Creazioni
Vedi tutte le creazioniOutput
audioPrezzi
elevenlabs/text-to-dialogue per 1,000 characters
| Prezzo unitario | $0.125 |
|---|
Panoramica e posizionamento
elevenlabs/text-to-dialogue è un'interfaccia che sintetizza direttamente in voce un testo di dialogo multi-personaggio: chi chiama descrive ogni battuta e il relativo timbro tramite un array di { text, voice }, e il modello restituisce le voci corrispondenti riga per riga; il totale di tutte le battute inviate in una singola richiesta non supera i 5000 caratteri. È adatta agli sviluppatori che devono produrre audio di dialoghi a due o più personaggi in un'unica richiesta, ad esempio per il doppiaggio di miniserie, conversazioni per podcast, materiali di esempio per assistenti vocali e la recitazione di dialoghi in contenuti interattivi.
Punti di forza principali
- Timbro specificato riga per riga, dialogo multi-personaggio in un'unica richiesta — ogni battuta dell'array dialogue è associata singolarmente a un voice_id, senza bisogno di suddividere in più sintesi a voce singola e poi unirle.
- Timbro modificabile frase per frase, con oltre 60 timbri candidati — l'enumerazione voice dello schema offre decine di opzioni e personaggi diversi all'interno dello stesso dialogo possono usare timbri diversi.
- Parametro di stabilità regolabile globalmente — stability supporta tre livelli: 0, 0.5 e 1, per bilanciare l'oscillazione emotiva e la coerenza del timbro.
- Lingua rilevata automaticamente o specificata — se language_code viene lasciato vuoto la lingua è rilevata automaticamente; è anche possibile specificare esplicitamente il codice ISO della lingua, con oltre 70 lingue supportate.
Descrizione delle capacità
Sintesi di dialoghi multi-personaggio: descrivendo battute e timbri tramite un array di dialogo, una singola chiamata restituisce un audio di dialogo con più personaggi, eliminando la sintesi a segmenti e l'unione manuale.
Associazione del timbro frase per frase: il voice di ogni battuta può essere scelto in modo indipendente, adatto ad assegnare timbri diversi a personaggi diversi mantenendo le rispettive caratteristiche vocali.
Controllo di stabilità e lingua: stability controlla l'ampiezza della variazione emotiva dell'espressione; language_code determina la lingua di lettura o delega al rilevamento automatico, utile per elaborare in batch materiali in una lingua fissa.
Gestione di testi di dialogo lunghi: in una singola richiesta il totale di tutte le battute è limitato a 5000 caratteri, adatto a inviare in un'unica volta copioni di dialogo articolati senza preoccuparsi della segmentazione interna.
Scenari d'uso
- Creatori di miniserie e contenuti narrativi: copioni di dialogo multi-personaggio — inviando le battute dei vari personaggi con i rispettivi timbri si ottiene un audio di dialogo completo, per la recitazione di trame in miniserie, radiodrammi o drammi interattivi.
- Contenuti podcast e interviste: copioni di conversazione — convertendo testi di conversazioni a due voci in tracce audio di dialogo con timbri diversi, utilizzabili direttamente come segmenti di podcast o nastri demo del programma.
- Team di prodotto e contenuto: materiali di dialogo multilingue — specificando il codice lingua si sintetizza l'audio di dialogo nella lingua corrispondente, per doppiaggio e presentazioni di contenuti per versioni estere.
- Sviluppatori: materiali prototipo per dialoghi vocali — generazione rapida di audio di esempio multi-personaggio per prototipi come assistenti vocali e chatbot di assistenza, utile per convalida dei flussi e demo interne.
Limiti e consigli per la scelta
L'output è audio e non produce immagini o video; se serve un prodotto finito è necessario realizzare separatamente la parte visiva. In una singola richiesta il totale di tutte le battute non supera i 5000 caratteri; i copioni troppo lunghi devono essere suddivisi in più chiamate e poi uniti. Il timbro può essere scelto solo dal elenco voice fornito dall'interfaccia e non è possibile clonare direttamente nuovi timbri. Se lo scenario prevede solo una narrazione singola o una lettura a voce singola, è sufficiente la linea di sintesi vocale a voce singola, senza costruire un array di dialogo.
Domande frequenti
Vedi tutte le domande →-
Che cos'è Turbo 2.5?
Modello text-to-speech a bassa latenza di ElevenLabs, adatto per assistenti vocali, annunci di notifica e doppiaggio su larga scala.
-
Come si chiama?
Invia model (elevenlabs/text-to-speech-turbo-2-5) e input a POST /v1/tasks, poi usa taskId per interrogare il risultato o configurare callback.
-
Come viene calcolato il costo?
Il costo è calcolato in base al numero di caratteri di input.text, ogni 1.000 caratteri; il prezzo unitario in tempo reale è quello indicato nella sezione prezzi di questa pagina.
-
previous_text e next_text sono a pagamento?
No, sono gratuite. Servono solo a fornire contesto alla sintesi a segmenti, così che l'intonazione risulti naturale e ben collegata.
Crea un'attività di generazione
https://api.hiapi.ai/v1/tasks Header
AuthorizationstringObbligatorioChiave API dell'account. Obbligatoria in ogni richiesta. Esempio: Bearer YOUR_HIAPI_API_KEY. Ottieni una chiave API
Content-TypestringOpzionaleIl corpo della richiesta viene sempre interpretato come JSON; se inviato, è accettato solo application/json (charset facoltativo) — qualsiasi altro valore restituisce 415. Esempio: application/json.
Idempotency-KeystringOpzionaleChiave di idempotenza, fino a 255 byte. I retry con la stessa chiave dello stesso account creano l'attività una sola volta; i replay restituiscono il taskId originale.
In caso di timeout di rete o retry automatici del client, la stessa chiave crea l'attività una sola volta, senza doppi addebiti (ambito = l'account della chiave API). Usa un identificatore univoco di business (es. "order-42"); i replay restituiscono il taskId originale e le chiavi scadono 24 ore dopo la prima richiesta. La matrice completa degli scenari è nell'introduzione dell'API asincrona unificata.
Corpo
modelstringObbligatorioValore fisso attuale: elevenlabs/text-to-dialogue
routestringOpzionaleValore fisso attuale: default
inputobjectObbligatorio
Oggetto di parametri di business per elevenlabs/text-to-dialogue e la route default — vedi la tabella dei parametri sotto.
dialoguearrayObbligatoriominItems 1
Array di elementi di dialogo; ogni elemento dell'array contiene i campi text e voice, che specificano rispettivamente la battuta di quella riga e il timbro vocale utilizzato. Il numero totale di caratteri dei campi text di tutti gli elementi di dialogo non deve superare 5000.
Array [ object ]
Elementi dell'array
textstringObbligatoriominLength 1Il contenuto testuale della battuta di dialogo. Il numero totale di caratteri di tutti i campi text nell'array di dialogo non deve superare 5000.
voicestringObbligatorioPredefinito: "EkK5I93UQWFDigLMpZcX"Il timbro vocale utilizzato per la battuta di quella riga; è possibile inserire il nome di un timbro predefinito o un voice_id. Predefinito: EkK5I93UQWFDigLMpZcX.
EkK5I93UQWFDigLMpZcXZ3R5wn05IrDiVCyEkUrKNNl6r8mD7vthiJatiJt1YOq2y2Up4RgXP2HyXjE5B8gJV1IhpuegLxdpXFOE2zRM7PkgwBPiau2jvVXc1SM7GgM6IMuvQlz2BwM35l5f8iK3YPeGga21rQIXMostra tutto (59)
scOwDtmlUjD3prqpp97INOpBlnGInO9m6vDvFkFCBZgkqPqms7Kj9ulSkVznwo6udizrrtpIxWGp2qJkgU0LNdkMOQCOrPrwtbeeDGzg6RaUqxGRTHSBjfgFx70vRnQBMBu4FAYhjJbOSm1seazb4gs7RSlUVw7cP1bg08DkjqiVEzOn76yGqDuRKMlYmrm8trt5QyBnqXpMhyvQqiRxWQs4qSSBTX3LPaxmHKxFdv7VOQHJN2lVS1w4EtoT3dr4eOWOFGY2WhTYpPnrIDTdsKH5kPzsL2i3teMYv0FxEYQ6UgBBYS2sOqTuMpoF3BR0hpp4J3VqNfWAUOO0d1UsnPczCjzI2devNBz1zQrbuYXf8XasLslADfZ2MB4ugs0tAILXbY5DNrJrsM6FDTKMou8ccj1ZaWGBiotdvBKc2FfBKJfcZNyEt1n6DYkrAHD8iwork3YSUBbs56AoDkrOh6qfVPDXZ7PteR40ATw9ArzDf9h3v7t7g6xIsTj2HwM6VR4iXFCwlcMyyd2HUfFzxdCaC4Ta6aDn1KB0hjpdcocrUkmqSq93GQT4X1lKDXsQcixOflHkNRp1BlvT73UL6gyz9yzdeviXkFddZ4Oz8MokpPdl9cQBQq4p6mRkZy2ZzYcjlYFOd3taleS0gkk3nzeAacJi50IvxcyDnMXaruirxsoakN0GWmGNIo04TC0Zp7WVFzhA8zpTlRqVljo9gAlSqKOvF6D8sOsXPPzYpIqttlTYA83688JI8JVbfL6oEdmuxKn5DK2CiCrDUkL56s3C8sCRl7wbwJqPPQ618aTW29mptyocEiNlNiXeDU1pqqOPrYMO4YYIPFl9wE5c4L2eu2Gb6F5Zhi321D3Oq7v1oNT4YXpFCvM1S3JbWEJhoskWLG95yZDEHg6fCZdQjLqjCeNX9CMwmxDxUF5Q2InmaD6riP1btT197c6dACmymtrellq69YZsNwzUSyXhdHd5gvgSOzSfduK4CvEgeVItLK1UvXctxuaRV2Oqesy0r39YPLQjOczyOib8Tsns2HvNFKfGiNjllgqo1U02n4nD6AdIZ9CjF053AeRdCCKzvd23BpJoofzxLruHrtVF6PSyGItzMNHS1wGbFxmAM3Fgw63G1zZJhqfrgApggtO1785R4FsnMJ0RnG71ty4LH3dvNfSdstabilitynumberOpzionalePredefinito: 0.5Stabilità del timbro vocale: valori più bassi producono un'emozione più ricca e maggiori variazioni, valori più alti producono un output più stabile e uniforme. Predefinito: 0.5.
00.51language_codestringOpzionalePredefinito: ""Codice lingua (formato ISO). Lasciare vuoto per il rilevamento automatico della lingua; valore predefinito: vuoto.
afarhyasazbebnMostra tutto (67)
bsbgcacebnyhrcsdanlenetfilfifrglkadeelguhahehihuisidgaitjajvknkkkykolvlnltlbmkmsmlzhmrnenopsfaplptparorusrsdskslsoesswsvtatethtrukurvicycallbackobjectOpzionale
Configurazione di notifica dello stato terminale. Se omessa, nessun callback: interroga l'attività per conto tuo.
Fornisci callback.url in creazione e HiAPI invierà un POST al tuo servizio allo stato terminale, senza polling. Il corpo del callback replica la struttura del dettaglio attività; verifica firma, retry e idempotenza sono descritti nell'introduzione dell'API asincrona unificata.
urlstringObbligatorioObbligatoria se è presente callback. Allo stato terminale viene inviato un POST a questo URL; deve essere un URL http(s) valido.
whenstringOpzionalePredefinito: "final"Al momento è supportato solo final: notifica sia su success sia su fail.
finalstoragestringOpzionalePredefinito: "temp"Livello di archiviazione degli artefatti: temp (predefinito, ~7 giorni) o persistent (a lungo termine, fatturato per dimensione). Saldo insufficiente o superamento del limite ⇒ declassamento silenzioso a temp; il livello effettivo è visibile nella risposta di dettaglio.
temppersistentEsempi di richiesta
# Invia un'attività asincrona; restituisce subito un taskId (senza attendere la generazione)
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"
} Ottieni i dettagli dell'attività
https://api.hiapi.ai/v1/tasks/:id Campi della risposta
taskIdstringObbligatorioID attività, sempre con prefisso tk-hiapi-.
modelstringObbligatorioNome completo risolto del modello. Le attività inviate con il parametro route restituiscono base@route (es. gpt-image-2/text-to-image@ext); altrimenti coincide con il nome inviato.
routestringOpzionalePresente solo se è stato usato il parametro route esplicito; restituisce il valore inviato.
statusstringObbligatorioStato dell'attività.
queued In coda, non avviata.
handling In elaborazione.
archiving Elaborazione conclusa, preparazione artefatti.
success Terminale: completato, artefatti disponibili (restituisce output).
fail Terminale: errore (restituisce error).
Dopo l'invio, segui status: success e fail sono terminali, il resto no. Esegui polling ogni 1–3 s fino allo stato terminale. In caso di successo scarica gli artefatti da output[].url e trasferiscili prima di expireAt; per conservazione lunga usa storage: "persistent" in creazione.
creatednumberObbligatorioIstante di creazione dell'attività (secondi Unix).
completednumberObbligatorioSecondi Unix dello stato terminale; 0 finché non terminale.
outputarrayOpzionale
Presente solo con status == success. Elenco artefatti — sempre un array; un'attività può restituire più type contemporaneamente (es. video + first_frame).
Array [ object ]
Elementi dell'array
urlstringObbligatorioURL dell'artefatto, scaricabile direttamente.
typestringObbligatorioValori attualmente possibili: video, image, audio, first_frame, last_frame, thumbnail; potrebbero essere ampliati in futuro.
expireAtnumberObbligatorioSecondi Unix di disponibilità dell'artefatto; scarica o trasferisci prima della scadenza.
errorobjectOpzionale
Presente solo con status == fail.
codestringObbligatorioCodice errore di business.
messagestringObbligatorioDescrizione dell'errore.
Esempi di risposta
Successo
{
"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
}
]
}
} In elaborazione (non terminale)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Non riuscito
{
"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"
}
}
} Articoli
Vedi tutti gli articoli →-
Tutoriale
Come chiamare hailuo-2.3/text-to-video tramite l'API HiAPI: curl, Python ed esempi di richiesta eseguibili
-
Tutoriale
Utilizzare Kandinsky 6.0 Pro su HiAPI per la generazione di video da testo: tutorial con curl e Python
Dimostrazione pratica guidata dalla richiesta: costruire la chiamata da prompt a clip video, inviare la richiesta, monitorare lo stato di completamento e scaricare il risultato
-
Tutoriale
Come chiamare hailuo-2.3-fast/image-to-video tramite l'API HiAPI: pratica con curl e Python
La prima richiesta funzionante per il livello image-to-video veloce ed economico — dall'ID del modello al download di un MP4
-
Tutoriale
recraft-v4.1-flash text-to-image in pratica: 5 scenari di business ad alto valore e punti chiave di integrazione
Partendo da un costo di $0,01 per immagine, pianificare l'implementazione della generazione di immagini nei processi di business reali
-
Tutoriale
Tutorial su kandinsky-6.0-pro/image-to-video tramite HiAPI: curl + Python
Avvia una richiesta funzionante di image-to-video su HiAPI: dal caricamento del primo fotogramma al polling asincrono fino al download finale
-
Tutoriale
Come chiamare kling-4.0/image-to-video su HiAPI: curl, Python e polling
-
Confronto e valutazione
hailuo-2.3-fast/image-to-video confronto orizzontale: come scegliere un modello image-to-video e i punti chiave per la migrazione
-
Confronto e valutazione
Confronto orizzontale di Recraft v4.1 Flash per la generazione di immagini da testo: guida alla scelta e alla migrazione per gli sviluppatori
Con un costo di $0,01 per immagine e la capacità di generazione puramente testuale, valuta se è adatto alla tua pipeline di generazione di immagini
-
Tutoriale
Come usare kling-4.0/text-to-video tramite l'API HiAPI: curl, Python e un esempio di richiesta funzionante
Guida pratica per sviluppatori: prompt cinematografici, audio sincronizzato, polling asincrono e download dell'output
Modelli correlati
Vedi tutti i modelli →Stesso tipo
-
Gemini 3.1 Flash TTS Google -- -
MiniMax Music 2.6 MiniMax $0.210 /brano -
MiniMax Music 1.5 MiniMax $0.070 /brano -
ElevenLabs ElevenLabs $0.0029 /secondo -
Lyria 3 Pro Google $0.140 /brano -
Mirelo SFX 2.0 Mirelo AI $0.021 /secondo -
Mureka 9.5 Mureka $0.322 per request -
Qwen Audio 3.0 TTS Alibaba $0.030 /1.000 caratteri -
Lyria 3.5 Google $0.090 /brano -
MiniMax Music 3 MiniMax $0.0026 /secondo



