Avatars Audio to Video
集成
模型 id
argil/avatars/audio-to-video
# 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/argil/avatars/audio-to-video?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"avatar": "Mia outdoor (UGC)",
"audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
}'
# 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/argil/avatars/audio-to-video?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"avatar": "Mia outdoor (UGC)",
"audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
}),
});
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 = {
"avatar": "Mia outdoor (UGC)",
"audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/argil/avatars/audio-to-video", 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/zh/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": "argil/avatars/audio-to-video",
"input": {
"avatar": "Mia outdoor (UGC)",
"audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
}
}
通过 Doitong API 调用 Avatars Audio to Video 模型(argil/avatars/audio-to-video)。智能体文档:https://doitong.com/zh/developers/models/argil/avatars/audio-to-video.md
POST https://api.doitong.ru/v1/run/argil/avatars/audio-to-video?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"avatar": "Mia outdoor (UGC)",
"audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
}
如果响应状态为 "queued" 或 "running",请轮询 GET https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20,直到状态变为 "succeeded";文件位于 outputs[].url。使用相同请求体 POST https://api.doitong.ru/v1/quote/argil/avatars/audio-to-video,可在运行前返回确切价格。
与示例类似的文件: $0.20 200 API 积分 · ≈ ₽21.52 运行前会测量你的文件 在此页面运行
你的新 API 密钥。 它仅在此时显示,并且已填入下方的代码和 API 密钥字段中。请妥善保密:切勿将其放入在浏览器中运行的代码。
构建请求
控件根据模型架构生成。更改控件时,代码和价格会同步更新。
POST
/run/argil/avatars/audio-to-video?wait=20
报价 → $0.20
# 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/argil/avatars/audio-to-video?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"avatar": "Mia outdoor (UGC)",
"audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
}'
# 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/argil/avatars/audio-to-video?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"avatar": "Mia outdoor (UGC)",
"audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
}),
});
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 = {
"avatar": "Mia outdoor (UGC)",
"audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/argil/avatars/audio-to-video", 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": "argil/avatars/audio-to-video",
"input": {
"avatar": "Mia outdoor (UGC)",
"audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
},
"wait_seconds": 20
}
}
}
关于 Avatars Audio to Video
按名称选择预设头像(UGC 和 Masterclass 风格),并提供 `audio_url`。头像会进行动画处理以说出该录音。将 `remove_background` 设为 true 可移除背景。响应包含视频以及 flagged 状态和转录文本等审核字段。
参数
发送规范名称或原生名称之一,不要同时发送两者。 规范名称
名称类型
默认值允许值
描述
avatar必填
类型enum
Mia outdoor (UGC)Lara (Masterclass)Ines (UGC)Maria (Masterclass)Emma (UGC)Sienna (Masterclass)Elena (UGC)Jasmine (Masterclass)Amara (Masterclass)Ryan podcast (UGC)Tyler (Masterclass)Jayse (Masterclass)Paul (Masterclass)Matteo (UGC)Daniel car (UGC)Dario (Masterclass)
另外 12 个
Viva (Masterclass)Chen (Masterclass)Alex (Masterclass)Vanessa (UGC)Laurent (UGC)Noemie car (UGC)Brandon (UGC)Byron (Masterclass)Calista (Masterclass)Milo (Masterclass)Fabien (Masterclass)Rose (UGC)audio_url必填
audio
类型url · audio
remove_background可选
类型boolean
默认值false
必填
规范名称,也可接受
文件参数接受公开的 https:// URL、最大 10 MB 的 data: URI,或上传文件的 file_url。 文件
输出
GET /requests/req_8k2m4q7x1z9c3v5b6n0p2r4t
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "argil/avatars/audio-to-video",
"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": 200,
"usd": "0.20",
"charged": 200,
"refunded": 0
},
"input": {
"avatar": "Mia outdoor (UGC)",
"audio_url": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
},
"output": {
"video": {
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
"content_type": "video/mp4",
"file_name": "0-output.mp4",
"file_size": 1843200
},
"moderation_flagged": false,
"moderation_transcription": "string",
"moderation_error": "string"
},
"outputs": [
{
"type": "video",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
"content_type": "video/mp4",
"file_size": 1843200,
"width": 1280,
"height": 720,
"duration": 5,
"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"
}
}
你的文件,由你选择每个 outputs[].url 都是存储中的副本:可永久保存(按 GB-月付费),也可免费保存 7 天,由账户设置或 ?storage= 决定。
每个模型的结构相同图像、视频和音频均包含 type、url、content_type、width、height 和 duration。output 是模型自身的结果对象。
输出字段
- video
- object {url, content_type, file_name, file_size} | null
- moderation_flagged
- boolean
- moderation_transcription
- string | null
- moderation_error
- string | null
其他 Argil Avatar 变体
更多模型:唇形同步与数字人
对于 AI 代理:此页面的 Markdown 版本位于 https://doitong.com/zh/developers/models/argil/avatars/audio-to-video.md. 所有模型和指南: https://doitong.com/developers/llms.txt