Async Text to Speech Pro V1.0
Integreiddio
async/tts-pro/v1.0
# 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/async/tts-pro/v1.0?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"transcript": "Hello from Doitong. This is a short test sentence.",
"voice": {
"name": "Jennie"
}
}'
# 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/async/tts-pro/v1.0?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"transcript": "Hello from Doitong. This is a short test sentence.",
"voice": {
"name": "Jennie"
}
}),
});
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 = {
"transcript": "Hello from Doitong. This is a short test sentence.",
"voice": {
"name": "Jennie",
},
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/async/tts-pro/v1.0", 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/cy/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": "async/tts-pro/v1.0",
"input": {
"transcript": "Hello from Doitong. This is a short test sentence.",
"voice": {
"name": "Jennie"
}
}
}
Galwch y model Async Text to Speech Pro V1.0 (async/tts-pro/v1.0) drwy Doitong API. Dogfennaeth ar gyfer asiantau: https://doitong.com/cy/developers/models/async/tts-pro/v1.0.md
POST https://api.doitong.com/v1/run/async/tts-pro/v1.0?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"transcript": "Hello from Doitong. This is a short test sentence.",
"voice": {
"name": "Jennie"
}
}
Os yw statws yr ymateb yn "queued" neu "running", holwch GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20 nes ei fod yn "succeeded"; mae'r ffeiliau yn outputs[].url. Mae POST https://api.doitong.com/v1/quote/async/tts-pro/v1.0 gyda'r un corff yn dychwelyd yr union bris cyn y rhediad.
Y cais hwn: $0.001 1 credyd API Ei redeg ar y dudalen hon
Eich allwedd API newydd. Dim ond nawr y caiff ei ddangos ac mae eisoes yn y cod ac ym maes allwedd API isod. Cadwch ef yn gyfrinachol: peidiwch byth â’i roi mewn cod sy’n rhedeg mewn porwr.
Mae eich canlyniad cyntaf yn mynd yma
Adeiladwch gais isod a'i redeg gyda'ch allwedd API. Mae allbynnau'n cael eu copïo i'n storio, wedi'u cadw am byth neu am 7 diwrnod am ddim.
Adeiladu cais
Cynhyrchir rheolyddion o sgema'r model. Mae'r cod a'r pris yn diweddaru wrth i chi eu newid.
/run/async/tts-pro/v1.0?wait=20
dyfynbris → $0.001
# 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/async/tts-pro/v1.0?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"transcript": "Hello from Doitong. This is a short test sentence.",
"voice": {
"name": "Jennie"
}
}'
# 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/async/tts-pro/v1.0?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"transcript": "Hello from Doitong. This is a short test sentence.",
"voice": {
"name": "Jennie"
}
}),
});
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 = {
"transcript": "Hello from Doitong. This is a short test sentence.",
"voice": {
"name": "Jennie",
},
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/async/tts-pro/v1.0", 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": "async/tts-pro/v1.0",
"input": {
"transcript": "Hello from Doitong. This is a short test sentence.",
"voice": {
"name": "Jennie"
}
},
"wait_seconds": 20
}
}
}
Rhedeg y cais hwn
Mae'ch allwedd yn aros yn y porwr hwn: caiff ei hanfon at Doitong API yn unig a'i chadw (localStorage) dim ond os ticiwch Cofio. Cael allwedd API
Ynglŷn â Async Text to Speech Pro V1.0
Yn trosi `transcript` yn lleferydd gan ddefnyddio gwrthrych `voice` a ddewiswyd. Mae'r paramedr `language` dewisol yn gorfodi syntheseiddio yn Saesneg, Ffrangeg, Sbaeneg, Almaeneg, Eidaleg neu Bortiwgaleg. Mae gwrthrych `output_format` yn ffurfweddu'r sain, ac mae'r canlyniad yn cynnwys y ffeil sain, ei math MIME a'i maint mewn beitiau. Yn addas ar gyfer trosleisio lle rydych yn dewis llais penodol.
Paramedrau
transcriptgofynnol
voicegofynnol
voice.namedewisol
+84 yn rhagor
EiraNyraArianLilyPierceKaelaElowenFreyaLennyAlessaPandoraFiaAbbottKaelOrlaSableMarnieSeraVirelLioraRivenElysDreenaRheaVelaNymeraIsoldeLirienZellaAvennaMirelleCaliaLuneaLucanTarianArloJovanNeronZivenDaxOrienLiorEryxTyrenNoxElricVarianZoranMiroDalenRonixJarekNyxieSorenVionaSeleneRachielCorbinAbigailFaithKimberlyDaveGraceAldenRenlyVioletJoelXavierEsmeraldaRobertLilaBrooksLennoxVanessaSimonNyomiJackPenelopeBraydenAbelNellieConnieAndrewLincolnoutput_formatdewisol
output_format.containerdewisol
output_format.encodingdewisol
output_format.sample_ratedewisol
output_format.bit_ratedewisol
languagedewisol
Allbwn
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "async/tts-pro/v1.0",
"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": 1,
"usd": "0.001",
"charged": 1,
"refunded": 0
},
"input": {
"transcript": "Hello from Doitong. This is a short test sentence.",
"voice": {
"name": "Jennie"
}
},
"output": {
"audio": {
"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
},
"content_type": "audio/mpeg",
"size_bytes": 1
},
"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"
}
}
Meysydd yr allbwn
- audio
- object {url, content_type, file_name, file_size}
- content_type
- stringMath MIME sain.
- size_bytes
- integerMaint sain wedi'i fesur mewn beitiau.
Mwy o fodelau: Testun i Leferydd
Ar gyfer asiantau AI: mae'r dudalen hon fel Markdown ar gael yn https://doitong.com/cy/developers/models/async/tts-pro/v1.0.md. Pob model a chanllaw: https://doitong.com/developers/llms.txt