爱诗-视频对口型模型支持输入 视频 和 音频 (或 TTS 文本),生成与音频同步的对口型视频。
重要本文档仅适用于华北2(北京)地域,且必须使用该地域的API Key。
服务开通
- 前往阿里云百炼控制台,搜索 PixVerse,找到 PixVerse 模型卡片,单击立即开通;
- 在弹窗内确认开通及授权。
适用范围
为确保调用成功,请务必保证模型、Endpoint URL 和 API Key 均属于同一地域。跨地域调用将会失败。
说明本文的视频对口型示例适用于华北2(北京)地域。
HTTP调用
由于视频对口型任务耗时较长(通常为1-5分钟),API采用异步调用。整个流程包含 "创建任务 -> 轮询获取" 两个核心步骤,具体如下:
步骤1:创建任务获取任务ID
北京地域:POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
调用时请将{WorkspaceId}替换为真实的业务空间ID。
说明
- 创建成功后,使用接口返回的
task_id 查询结果,task_id 有效期为 24 小时。请勿重复创建任务,轮询获取即可。
- 新手指引请参见Postman。
请求参数 请求头(Headers) Content-Typestring(必选) 请求内容类型。此参数必须设置为application/json。 Authorizationstring(必选) 请求身份认证。接口使用阿里云百炼API Key进行身份认证。示例值:Bearer sk-xxxx。 X-DashScope-Asyncstring(必选) 异步处理配置参数。HTTP请求只支持异步,必须设置为enable。 重要缺少此请求头将报错:“current user api does not support synchronous calls”。 请求体(Request Body) model string (必选) 模型名称。固定值:pixverse/pixverse-lipsync。 input object (必选) 输入的基本信息,包括人脸视频和音频来源。 属性 media array (必选) 媒体资源列表。必须包含一个 video_url 类型的视频,以及音频来源(二选一):
- 方式一(音频驱动):传入
audio_url 类型的音频文件。
- 方式二(TTS 合成):同时传入
lip_sync_tts_speaker_id 和 lip_sync_tts_content。
重要audio_url 与 lip_sync_tts_speaker_id + lip_sync_tts_content 二选一,不允许同时传入。 元素属性 type string (必选) 媒体类型标识符。取值范围:
video_url:人脸视频。
audio_url:音频文件。
lip_sync_tts_speaker_id:TTS 音色 ID。
lip_sync_tts_content:TTS 文本内容。
url string (条件必选) 当 type 为 video_url 或 audio_url 时必填。媒体资源的 URL 地址。 id string (条件必选) 当 type 为 lip_sync_tts_speaker_id 时必填。TTS 音色 ID。取值为 auto 时随机选择音色,取值为数字字符串时按音色 ID 指定。支持的取值见下表。 音色取值表 id 取值 | 音色名称 |
|---|
auto | 随机 | 2 | 詹有鱼 | 4 | 外国阿利 | 6 | 李解 | 10 | 姜姜好 | 11 | 老森 | 12 | 李杰克 | 13 | 钱多多 | 14 | 呆萌王小拍 | 16 | 屯里大嗓 | 18 | 豫语汉子 | 19 | 宝岛囡囡 | 20 | 陕西掌柜 | 21 | 港风阿sir |
content string (条件必选) 当 type 为 lip_sync_tts_content 时必填。需要驱动口型的文本内容,支持中英文,不超过 200 字(UTF-8 编码)。 parameters object (可选) 视频生成参数。如设置是否添加水印等。 属性 watermark boolean (可选) 是否添加水印标识,水印位于视频右下角,文案固定为"AI生成"。
false:默认值,不添加水印。
true:添加水印。
| 音频驱动传入视频和音频文件,生成对口型视频。 # 调用时请将 {WorkspaceId} 替换为真实的业务空间ID。
curl --location 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis' \
-H 'X-DashScope-Async: enable' \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "pixverse/pixverse-lipsync",
"input": {
"media": [
{
"type": "video_url",
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250717/pvegot/input_video_01.mp4"
},
{
"type": "audio_url",
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250717/aumwir/stella2-%E6%9C%89%E5%A3%B0%E4%B9%A67.wav"
}
]
},
"parameters": {
"watermark": true
}
}'
Python SDKimport dashscope
import os
from dashscope.v2 import DashScopeError
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx"
# 获取API Key:https://help.aliyun.com/zh/model-studio/get-api-key
client = dashscope.Client(api_key=os.getenv("DASHSCOPE_API_KEY"))
media = [{'type': 'video_url', 'url': 'https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250717/pvegot/input_video_01.mp4'}, {'type': 'audio_url', 'url': 'https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250717/aumwir/stella2-%E6%9C%89%E5%A3%B0%E4%B9%A67.wav'}]
def sample_async_call():
# 异步提交视频生成任务
try:
job = client.videos.jobs.create(model='pixverse/pixverse-lipsync',
media=media,
watermark=True)
print(job)
print("task_id: %s" % job.task_id)
except DashScopeError as e:
print(f"HTTP返回码:{e.status_code}")
print(f"错误码:{e.code}")
print(f"错误信息:{e.message}")
print("请参考文档:https://help.aliyun.com/zh/model-studio/developer-reference/error-code")
return
# 查询任务状态
try:
snapshot = client.videos.jobs.fetch(job.task_id)
print(snapshot.status)
except DashScopeError as e:
print(f"HTTP返回码:{e.status_code}")
print(f"错误码:{e.code}")
print(f"错误信息:{e.message}")
print("请参考文档:https://help.aliyun.com/zh/model-studio/developer-reference/error-code")
# 等待任务完成
try:
done = client.videos.jobs.wait(job)
print(done)
print(done.video_url)
except DashScopeError as e:
print(f"HTTP返回码:{e.status_code}")
print(f"错误码:{e.code}")
print(f"错误信息:{e.message}")
print("请参考文档:https://help.aliyun.com/zh/model-studio/developer-reference/error-code")
if __name__ == '__main__':
sample_async_call()
TTS 文本驱动传入视频和 TTS 文本,由模型合成语音并生成对口型视频。 # 调用时请将 {WorkspaceId} 替换为真实的业务空间ID。
curl --location 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis' \
-H 'X-DashScope-Async: enable' \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "pixverse/pixverse-lipsync",
"input": {
"media": [
{
"type": "video_url",
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250717/pvegot/input_video_01.mp4"
},
{
"type": "lip_sync_tts_speaker_id",
"id": "auto"
},
{
"type": "lip_sync_tts_content",
"content": "保持热爱持续开心,琐碎小事不值得烦心"
}
]
},
"parameters": {
"watermark": true
}
}'
|
步骤2:根据任务ID查询结果
北京地域:GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id}
说明
- 轮询建议:视频生成过程约需数分钟,建议采用轮询机制,并设置合理的查询间隔(如 15 秒)来获取结果。
- 任务状态流转:PENDING(排队中)→ RUNNING(处理中)→ SUCCEEDED(成功)/ FAILED(失败)。
- task_id 有效期:24小时,超时后将无法查询结果,接口将返回任务状态为
UNKNOWN。
- RPS 限制:查询接口默认RPS为20。如需更高频查询或事件通知,建议配置异步任务回调。
- 更多操作:如需批量查询、取消任务等操作,请参见管理异步任务。
请求参数 请求头(Headers) Authorizationstring(必选) 请求身份认证。接口使用阿里云百炼API Key进行身份认证。示例值:Bearer sk-xxxx。 URL路径参数(Path parameters) task_id string(必选) 任务ID。 | 查询任务结果将{task_id}完整替换为上一步接口返回的task_id的值。task_id查询有效期为24小时,并请将{WorkspaceId}替换为真实的业务空间ID。 curl -X GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id} \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
|
响应参数 outputobject 任务输出信息。 属性 task_id string 任务ID。查询有效期24小时。 task_status string 任务状态。 枚举值
- PENDING:任务排队中
- RUNNING:任务处理中
- SUCCEEDED:任务执行成功
- FAILED:任务执行失败
- CANCELED:任务已取消
- UNKNOWN:任务不存在或状态未知
轮询过程中的状态流转:
- PENDING(排队中) → RUNNING(处理中)→ SUCCEEDED(成功)/ FAILED(失败)。
- 初次查询状态通常为 PENDING(排队中)或 RUNNING(处理中)。
- 当状态变为 SUCCEEDED 时,响应中将包含生成的视频URL。
- 若状态为 FAILED,请检查错误信息并重试。
- 若状态为 CANCELED,表示任务已取消,如需继续请重新提交任务。
- 若状态为 UNKNOWN,表示任务不存在或状态未知,可能在 task_id 不存在或超过 24 小时有效期后出现。
submit_time string 任务提交时间。格式为 YYYY-MM-DD HH:mm:ss.SSS。 scheduled_time string 任务执行时间。格式为 YYYY-MM-DD HH:mm:ss.SSS。 end_time string 任务完成时间。格式为 YYYY-MM-DD HH:mm:ss.SSS。 video_urlstring 视频URL。仅在 task_status 为 SUCCEEDED 时返回。 视频格式为MP4(H.264 编码)。视频链接暂无过期时间,但不建议将其作为长期存储,请及时下载。 orig_prompt string 原始输入的prompt,对应请求参数prompt。 codestring 请求失败的错误码。请求成功时不会返回此参数,详情请参见错误码。 messagestring 请求失败的详细信息。请求成功时不会返回此参数,详情请参见错误码。 usage object 输出信息统计。只对成功的结果计数。 属性 duration integer 计费时长(秒)。音频驱动方式为音频时长向上取整;TTS 方式为文本字节数(UTF-8)÷ 15 向上取整。 size string 输出视频的分辨率。 fps integer 输出视频的帧率。 SR string 输出视频的分辨率档位。 video_count integer 视频数量,固定为 1。 | 任务执行成功{
"request_id": "ddf8140e-67c6-9e70-8953-xxxxxx",
"output": {
"task_id": "1acb9d0c-7a63-4ff6-a198-xxxxxx",
"task_status": "SUCCEEDED",
"submit_time": "2026-07-15 17:01:49.352",
"scheduled_time": "2026-07-15 17:01:49.398",
"end_time": "2026-07-15 17:02:29.724",
"video_url": "https://media.pixverseai.cn/xxxx.mp4"
},
"usage": {
"duration": 7,
"size": "1080*1920",
"fps": 24,
"video_count": 1,
"SR": ""
}
}
任务执行失败若任务执行失败,task_status将置为 FAILED,并提供错误码和信息。请参见错误码进行解决。 {
"request_id": "e5d70b02-ebd3-98ce-9fe8-759d7d7b107d",
"output": {
"task_id": "86ecf553-d340-4e21-af6e-a0c6a421c010",
"task_status": "FAILED",
"code": "InvalidParameter",
"message": "Invalid field type or value. Please verify your input data."
}
}
任务查询过期task_id查询有效期为 24 小时,超时后将无法查询,返回以下报错信息。 {
"request_id": "a4de7c32-7057-9f82-8581-xxxxxx",
"output": {
"task_id": "502a00b1-19d9-4839-a82f-xxxxxx",
"task_status": "UNKNOWN"
}
}
|
错误码
如果模型调用失败并返回报错信息,请参见错误码进行解决。