Maya · Batch
Integra
maya/batch
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/maya/batch?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"texts": [
"Hello from Doitong. This is a short test sentence."
],
"prompts": [
"Hello from Doitong. This is a short test sentence."
]
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/maya/batch?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"texts": [
"Hello from Doitong. This is a short test sentence."
],
"prompts": [
"Hello from Doitong. This is a short test sentence."
]
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"texts": [
"Hello from Doitong. This is a short test sentence.",
],
"prompts": [
"Hello from Doitong. This is a short test sentence.",
],
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/maya/batch", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
# 1. Connect once (Claude Code; Cursor, VS Code, Claude Desktop: https://doitong.com/it/developers/docs/mcp)
claude mcp add --transport http doitong-models https://api.doitong.com/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "maya/batch",
"input": {
"texts": [
"Hello from Doitong. This is a short test sentence."
],
"prompts": [
"Hello from Doitong. This is a short test sentence."
]
}
}
Chiama il modello Maya · Batch (maya/batch) tramite Doitong API. Documentazione per gli agenti: https://doitong.com/it/developers/models/maya/batch.md
POST https://api.doitong.com/v1/run/maya/batch?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"texts": [
"Hello from Doitong. This is a short test sentence."
],
"prompts": [
"Hello from Doitong. This is a short test sentence."
]
}
Se lo stato della risposta è "queued" o "running", interroga GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20 finché non diventa "succeeded"; i file si trovano in outputs[].url. POST https://api.doitong.com/v1/quote/maya/batch con lo stesso body restituisce il prezzo esatto prima dell'esecuzione.
Questa richiesta: ≈0,049 $ 49 crediti API Esegui in questa pagina
La tua nuova chiave API. Viene mostrata solo ora ed è già presente nel codice e nel campo della chiave API qui sotto. Mantienila segreta: non inserirla mai nel codice eseguito in un browser.
Il tuo primo risultato apparirà qui
Crea una richiesta qui sotto ed eseguila con la tua chiave API. Gli output vengono copiati nella nostra archiviazione, conservati per sempre oppure 7 giorni gratuitamente.
Crea una richiesta
I controlli vengono generati dallo schema del modello. Il codice e il prezzo si aggiornano mentre li modifichi.
/run/maya/batch?wait=20
preventivo → 0,049 $
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/maya/batch?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"texts": [
"Hello from Doitong. This is a short test sentence."
],
"prompts": [
"Hello from Doitong. This is a short test sentence."
]
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/maya/batch?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"texts": [
"Hello from Doitong. This is a short test sentence."
],
"prompts": [
"Hello from Doitong. This is a short test sentence."
]
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"texts": [
"Hello from Doitong. This is a short test sentence.",
],
"prompts": [
"Hello from Doitong. This is a short test sentence.",
],
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/maya/batch", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "run",
"arguments": {
"model_id": "maya/batch",
"input": {
"texts": [
"Hello from Doitong. This is a short test sentence."
],
"prompts": [
"Hello from Doitong. This is a short test sentence."
]
},
"wait_seconds": 20
}
}
}
Esegui questa richiesta
La tua chiave rimane in questo browser: viene inviata solo al Doitong API e salvata in localStorage solo se selezioni Ricorda. Ottieni una chiave API
Informazioni su Maya · Batch
Sintetizza molti clip in un'unica richiesta. `texts` e `prompts` accettano da 1 a 100 elementi ciascuno e devono avere la stessa lunghezza, associando ogni testo a una descrizione della voce. I tag delle emozioni funzionano in ogni testo. Impostazioni come frequenza di campionamento, formato di output e temperatura si applicano a tutti i testi; i risultati includono un elenco di file audio e durate.
Parametri
textsobbligatorio
promptsobbligatorio
temperaturefacoltativo
top_pfacoltativo
max_tokensfacoltativo
repetition_penaltyfacoltativo
sample_ratefacoltativo
output_formatfacoltativo
enable_safety_checkerfacoltativo
Output
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "maya/batch",
"status": "succeeded",
"created_at": "2026-10-20T12:00:00Z",
"started_at": "2026-10-20T12:00:02Z",
"completed_at": "2026-10-20T12:00:09Z",
"queue_position": null,
"cost": {
"credits": 49,
"usd": "0.049",
"charged": 49,
"refunded": 0
},
"input": {
"texts": [
"Hello from Doitong. This is a short test sentence."
],
"prompts": [
"Hello from Doitong. This is a short test sentence."
]
},
"output": {
"audios": [
{
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp3",
"content_type": "audio/mpeg",
"file_name": "0-output.mp3",
"file_size": 1843200
}
],
"durations": [
5
],
"sample_rate": "48 kHz",
"total_generation_time": 5.7,
"average_rtf": 0.15
},
"outputs": [
{
"type": "audio",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp3",
"content_type": "audio/mpeg",
"file_size": 1843200,
"duration": 12,
"stored": true
}
],
"error": null,
"metrics": {
"inference_seconds": 6.8
},
"urls": {
"self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
Campi dell'output
- audios
- array of object {url, content_type, file_name, file_size}File audio prodotti, restituiti come elenco.
- durations
- array of numberDurata in secondi di ogni registrazione audio generata.
- sample_rate
- stringFrequenza di campionamento condivisa da tutti i file audio generati.
- total_generation_time
- numberTempo di generazione complessivo in secondi per tutti i file audio.
- average_rtf
- numberFattore medio in tempo reale su tutte le generazioni.
Altre varianti di Maya
Altri modelli: Da testo a voce
Per gli agenti AI: questa pagina in Markdown è disponibile all'indirizzo https://doitong.com/it/developers/models/maya/batch.md. Tutti i modelli e le guide: https://doitong.com/developers/llms.txt