Async Text to Speech Pro V1.0
Whakauru
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.ru/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.ru/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.ru/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.ru/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/mi/developers/docs/mcp)
claude mcp add --transport http doitong-models https://api.doitong.ru/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"
}
}
}
Karangahia te tauira Async Text to Speech Pro V1.0 (async/tts-pro/v1.0) mā te Doitong API. Tuhinga mō ngā āpiha: https://doitong.com/mi/developers/models/async/tts-pro/v1.0.md
POST https://api.doitong.ru/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"
}
}
Mēnā ko "queued" "running" rānei te tūnga whakautu, uiuitia GET https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20 kia "succeeded"; kei outputs[].url ngā kōnae. Ko POST https://api.doitong.ru/v1/quote/async/tts-pro/v1.0 me taua tinana anō ka whakahoki i te utu tika i mua i te whakahaere.
Tēnei tono: $ 0.001 1 whiwhinga API · ≈ ₽ 0.10 Whakahaerehia ki tēnei whārangi
Tō kī API hou. Ka whakaaturia ināianei anake, ā, kua whakaurua kētia ki te waehere me te āpure kī API kei raro. Me huna: kaua rawa e waiho ki te waehere e whakahaere ana i roto i te pūtirotiro.
Kei konei tō hua tuatahi
Hangaia he tono ki raro nei, ka whakahaere mā tō kī API. Ka tāruatia ngā putanga ki tō mātou rokiroki, ka puritia mō ake tonu atu, mō rānei 7 rā mō te kore utu.
Hangaia he tono
Ka hangaia ngā mana whakahaere mai i te aronuinga o te tauira. Ka whakahoungia te waehere me te utu ina whakarerekē koe.
/run/async/tts-pro/v1.0?wait=20
utu → $ 0.001
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.ru/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.ru/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.ru/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.ru/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
}
}
}
Whakahaerehia tēnei tono
Ka noho tō kī ki tēnei pūtirotiro: ka tukuna ki te Doitong API anake, ā, ka tiakina ki te localStorage anake ina tohua e koe te Mahara. Tikina he kī API
Mō Async Text to Speech Pro V1.0
Ka huri i tētahi `transcript` hei kōrero mā te whakamahi i tētahi ahanoa `voice` kua tīpakohia. Mā te tawhā `language` whiriwhiri e takoha te waihanga ki English, French, Spanish, German, Italian, Portuguese rānei. Mā tētahi ahanoa `output_format` e whirihora te oro, ā, kei roto i te hua te kōnae oro, tōna momo MIME me tōna rahi ki ngā paita. He pai mō ngā reo whakamārama ina tīpakohia he reo motuhake.
Ngā tawhā
transcripte hiahiatia ana
voicee hiahiatia ana
voice.namekōwhiringa
+84 anō
EiraNyraArianLilyPierceKaelaElowenFreyaLennyAlessaPandoraFiaAbbottKaelOrlaSableMarnieSeraVirelLioraRivenElysDreenaRheaVelaNymeraIsoldeLirienZellaAvennaMirelleCaliaLuneaLucanTarianArloJovanNeronZivenDaxOrienLiorEryxTyrenNoxElricVarianZoranMiroDalenRonixJarekNyxieSorenVionaSeleneRachielCorbinAbigailFaithKimberlyDaveGraceAldenRenlyVioletJoelXavierEsmeraldaRobertLilaBrooksLennoxVanessaSimonNyomiJackPenelopeBraydenAbelNellieConnieAndrewLincolnoutput_formatkōwhiringa
output_format.containerkōwhiringa
output_format.encodingkōwhiringa
output_format.sample_ratekōwhiringa
output_format.bit_ratekōwhiringa
languagekōwhiringa
Putanga
{
"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.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
Ngā āpure o te putanga
- audio
- object {url, content_type, file_name, file_size}
- content_type
- stringMomo MIME ororongo.
- size_bytes
- integerTe rahi o te ororongo, kua inehia ki ngā paita.
Ētahi atu tauira: Kuputuhi ki te Kōrero
Mō ngā āpiha AI: kei te wātea tēnei whārangi hei Markdown ki https://doitong.com/mi/developers/models/async/tts-pro/v1.0.md. Ngā tauira me ngā aratohu katoa: https://doitong.com/developers/llms.txt