Kotoba Text-to-Speech
Integreiddio
kotoba-technologies/kotoba-tts/v2/tts/ws
# 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/kotoba-technologies/kotoba-tts/v2/tts/ws?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "Hello from Doitong. This is a short test sentence.",
"language": "ja",
"speaker_id": "male-01"
}'
# 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/kotoba-technologies/kotoba-tts/v2/tts/ws?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"text": "Hello from Doitong. This is a short test sentence.",
"language": "ja",
"speaker_id": "male-01"
}),
});
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 = {
"text": "Hello from Doitong. This is a short test sentence.",
"language": "ja",
"speaker_id": "male-01",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/kotoba-technologies/kotoba-tts/v2/tts/ws", 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.ru/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "kotoba-technologies/kotoba-tts/v2/tts/ws",
"input": {
"text": "Hello from Doitong. This is a short test sentence.",
"language": "ja",
"speaker_id": "male-01"
}
}
Galwch y model Kotoba Text-to-Speech (kotoba-technologies/kotoba-tts/v2/tts/ws) drwy Doitong API. Dogfennaeth ar gyfer asiantau: https://doitong.com/cy/developers/models/kotoba-technologies/kotoba-tts/v2/tts/ws.md
POST https://api.doitong.ru/v1/run/kotoba-technologies/kotoba-tts/v2/tts/ws?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"text": "Hello from Doitong. This is a short test sentence.",
"language": "ja",
"speaker_id": "male-01"
}
Os yw statws yr ymateb yn "queued" neu "running", holwch GET https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20 nes ei fod yn "succeeded"; mae'r ffeiliau yn outputs[].url. Mae POST https://api.doitong.ru/v1/quote/kotoba-technologies/kotoba-tts/v2/tts/ws gyda'r un corff yn dychwelyd yr union bris cyn y rhediad.
Y cais hwn: $0.003 3 o gredydau API · ≈ ₽0.32 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/kotoba-technologies/kotoba-tts/v2/tts/ws?wait=20
dyfynbris → $0.003
# 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/kotoba-technologies/kotoba-tts/v2/tts/ws?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "Hello from Doitong. This is a short test sentence.",
"language": "ja",
"speaker_id": "male-01"
}'
# 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/kotoba-technologies/kotoba-tts/v2/tts/ws?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"text": "Hello from Doitong. This is a short test sentence.",
"language": "ja",
"speaker_id": "male-01"
}),
});
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 = {
"text": "Hello from Doitong. This is a short test sentence.",
"language": "ja",
"speaker_id": "male-01",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/kotoba-technologies/kotoba-tts/v2/tts/ws", 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": "kotoba-technologies/kotoba-tts/v2/tts/ws",
"input": {
"text": "Hello from Doitong. This is a short test sentence.",
"language": "ja",
"speaker_id": "male-01"
},
"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 â Kotoba Text-to-Speech
Yn llefaru `text` Japaneaidd o hyd at 400 nod, gyda `language` wedi'i osod i ja. Dewiswch y llais drwy `speaker_id`: male-01 neu female-01. Ffeil WAV yw'r allbwn ar 24 kHz mono, 16-bit, ynghyd â'r hyd mewn eiliadau a'r testun wedi'i syntheseiddio. Caiff y sain ei ffrydio wrth ei chynhyrchu.
Paramedrau
textgofynnol
languagegofynnol
speaker_idgofynnol
Allbwn
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "kotoba-technologies/kotoba-tts/v2/tts/ws",
"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": 3,
"usd": "0.003",
"charged": 3,
"refunded": 0
},
"input": {
"text": "Hello from Doitong. This is a short test sentence.",
"language": "ja",
"speaker_id": "male-01"
},
"output": {
"audio": {
"content_type": "audio/mpeg",
"file_name": "0-output.mp3",
"file_size": 1843200,
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp3"
},
"audio_duration_secs": 1.0,
"text": "string"
},
"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"
}
}
Meysydd yr allbwn
- audio
- object {content_type, file_name, file_size, url}Dolen i’r ffeil lleferydd wedi’i syntheseiddio mewn fformat WAV, gyda sain mono ar 24 kHz a dyfnder 16-did.
- audio_duration_secs
- numberHyd y sain wedi’i syntheseiddio mewn eiliadau.
- text
- stringTestun a ddefnyddir i syntheseiddio’r lleferydd.
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/kotoba-technologies/kotoba-tts/v2/tts/ws.md. Pob model a chanllaw: https://doitong.com/developers/llms.txt