Eleven v4 Text to Speech
Tích hợp
elevenlabs/tts/eleven-v4
# 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/elevenlabs/tts/eleven-v4?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "[whispers] Okay, everyone, gather close. [excited] The bread is finally out of the oven. [laughs] Fine, fine, one slice each, but only if you promise to save one for me."
}'
# 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/elevenlabs/tts/eleven-v4?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"text": "[whispers] Okay, everyone, gather close. [excited] The bread is finally out of the oven. [laughs] Fine, fine, one slice each, but only if you promise to save one for me."
}),
});
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": "[whispers] Okay, everyone, gather close. [excited] The bread is finally out of the oven. [laughs] Fine, fine, one slice each, but only if you promise to save one for me.",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/elevenlabs/tts/eleven-v4", 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/vi/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": "elevenlabs/tts/eleven-v4",
"input": {
"text": "[whispers] Okay, everyone, gather close. [excited] The bread is finally out of the oven. [laughs] Fine, fine, one slice each, but only if you promise to save one for me."
}
}
Gọi mô hình Eleven v4 Text to Speech (elevenlabs/tts/eleven-v4) qua Doitong API. Tài liệu cho tác nhân: https://doitong.com/vi/developers/models/elevenlabs/tts/eleven-v4.md
POST https://api.doitong.ru/v1/run/elevenlabs/tts/eleven-v4?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"text": "[whispers] Okay, everyone, gather close. [excited] The bread is finally out of the oven. [laughs] Fine, fine, one slice each, but only if you promise to save one for me."
}
Nếu trạng thái phản hồi là "queued" hoặc "running", hãy thăm dò GET https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20 cho đến khi trạng thái là "succeeded"; tệp nằm trong outputs[].url. POST https://api.doitong.ru/v1/quote/elevenlabs/tts/eleven-v4 với cùng nội dung sẽ trả về giá chính xác trước khi chạy.
Yêu cầu này: 0,014 $ 14 tín dụng API · ≈ 1,51 ₽ Chạy trên trang này
Khóa API mới của bạn. Khóa này chỉ hiển thị lúc này và đã được chèn vào mã cũng như trường khóa API bên dưới. Hãy giữ bí mật: không bao giờ đưa khóa này vào mã chạy trong trình duyệt.
Ví dụ
Tạo một yêu cầu
Các điều khiển được tạo từ lược đồ mô hình. Mã và giá sẽ cập nhật khi bạn thay đổi chúng.
/run/elevenlabs/tts/eleven-v4?wait=20
báo giá → 0,014 $
# 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/elevenlabs/tts/eleven-v4?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "[whispers] Okay, everyone, gather close. [excited] The bread is finally out of the oven. [laughs] Fine, fine, one slice each, but only if you promise to save one for me."
}'
# 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/elevenlabs/tts/eleven-v4?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"text": "[whispers] Okay, everyone, gather close. [excited] The bread is finally out of the oven. [laughs] Fine, fine, one slice each, but only if you promise to save one for me."
}),
});
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": "[whispers] Okay, everyone, gather close. [excited] The bread is finally out of the oven. [laughs] Fine, fine, one slice each, but only if you promise to save one for me.",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/elevenlabs/tts/eleven-v4", 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": "elevenlabs/tts/eleven-v4",
"input": {
"text": "[whispers] Okay, everyone, gather close. [excited] The bread is finally out of the oven. [laughs] Fine, fine, one slice each, but only if you promise to save one for me."
},
"wait_seconds": 20
}
}
}
Chạy yêu cầu này
Key của bạn vẫn nằm trong trình duyệt này: key chỉ được gửi đến Doitong API và chỉ được lưu trong localStorage nếu bạn chọn Ghi nhớ. Nhận khóa API
Giới thiệu về Eleven v4 Text to Speech
Eleven v4 đọc văn bản bằng giọng tự nhiên, giàu cảm xúc và hiểu các thẻ âm thanh nội dòng như [excited] hoặc [whispering], cũng như cách phát âm IPA. Chọn giọng, điều chỉnh độ ổn định và độ tương đồng, đặt ngôn ngữ, và tùy chọn nhận mốc thời gian theo từ. Các định dạng MP3, PCM, Opus và điện thoại.
Tham số
textbắt buộc
voicetùy chọn
stabilitytùy chọn
similarity_boosttùy chọn
seedtùy chọn
language_codetùy chọn
output_formattùy chọn
+3 giá trị khác
opus_48000_96opus_48000_128opus_48000_192apply_text_normalizationtùy chọn
timestampstùy chọn
Đầu ra
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "elevenlabs/tts/eleven-v4",
"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": 14,
"usd": "0.014",
"charged": 14,
"refunded": 0
},
"input": {
"text": "[excited] Hello! Welcome to the future of voice.",
"voice": "Aria"
},
"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
},
"timestamps": []
},
"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"
}
}
Các trường đầu ra
- audio
- object {url, content_type, file_name, file_size}Tệp âm thanh do quá trình tạo sinh tạo ra.
- timestamps
- array of any | nullDữ liệu thời gian của giọng nói được tạo, chỉ có trong các yêu cầu đặt `timestamps` thành True, với một dấu thời gian cho mỗi từ.
Các biến thể ElevenLabs v4 khác
Thêm mô hình: Văn bản sang giọng nói
Dành cho tác nhân AI: trang này ở dạng Markdown tại https://doitong.com/vi/developers/models/elevenlabs/tts/eleven-v4.md. Tất cả mô hình và hướng dẫn: https://doitong.com/developers/llms.txt