使用阿里云 DashScope/灵眸 API 生成人脸口播视频(talking head video)。支持三种模式:EMO(人像+音频驱动口播,两步流程)、AA/Animate Anyone(全身动画)、灵眸(基于模板的数字人口播视频)。当用户需要制作口播视频、数字人视频、EMO/AA 人脸动画、VideoRe...
| 模式 | 接口 | 认证 | Region | 说明 |
|---|---|---|---|---|
| EMO | DashScope | DASHSCOPE_API_KEY | cn-beijing | 人像+音频→口播,需先 detect |
| AA (Animate Anyone) | DashScope | DASHSCOPE_API_KEY | cn-beijing | 人像+动作视频→全身动画 |
| 灵眸 (LingMou) | 独立产品 SDK | AK/SK | cn-beijing | 基于模板的数字人口播 |
| VideoRetalk (视频换人) | DashScope | DASHSCOPE_API_KEY | cn-beijing | 视频角色替换 |
⚠️ Region 固定为 cn-beijing,API Key 需在北京地域开通,不可与新加坡 Key 混用。
pip install requests dashscope oss2
# 灵眸额外需要:
pip install alibabacloud-lingmou20250527 alibabacloud-tea-openapi
环境变量:
export DASHSCOPE_API_KEY=sk-xxxx # DashScope API Key(百炼控制台获取)
export ALIBABA_CLOUD_ACCESS_KEY_ID=xxx # 灵眸用
export ALIBABA_CLOUD_ACCESS_KEY_SECRET=xxx
export OSS_BUCKET=xxx # 本地文件上传用
export OSS_ENDPOINT=oss-cn-beijing.aliyuncs.com
Step 1: emo-detect-v1 检测人脸 → 获取 face_bbox, ext_bbox
↓
Step 2: emo-v1 提交生成 → task_id
↓
轮询 GET /api/v1/tasks/{task_id} → SUCCEEDED → video_url
python scripts/portrait_animate.py \
--image-url "https://example.com/portrait.jpg" \
--audio-url "https://example.com/speech.mp3" \
--download
1. 查询模板列表 → templateId(已存 digital_human_template.json)
2. CreateBroadcastVideoFromTemplate (variables 替换 text_content)
3. 轮询 ListBroadcastVideosById → SUCCESS → videoURL
python scripts/avatar_video.py \
--template-id "BS1b2WNnRMu4ouRzT4clY9Jhg" \
--text "大家好,欢迎收看今天的科技新闻。" \
--download
# EMO
python scripts/demo_pipeline.py --mode emo --image ./face.jpg --audio ./speech.mp3 --download
# AA
python scripts/demo_pipeline.py --mode aa --model <AA_MODEL_NAME> --image-url https://... --video-url https://... --download
# 灵眸
python scripts/demo_pipeline.py --mode lingmou --template-id BSxxxx --text "大家好" --download
| 参数 | EMO 要求 |
|---|---|
| 图片格式 | jpg/jpeg/png/bmp/webp |
| 图片分辨率 | 最小边 ≥400px,最大边 ≤7000px |
| 单人正面 | 必须,面部完整无遮挡 |
| 音频格式 | mp3/wav |
| 音频大小 | ≤15MB |
| 音频时长 | ≤60s,需清晰人声(去背景噪音) |
| URL 类型 | 必须是公网 HTTP/HTTPS(不支持 file:// 本地路径) |
ZIP package — ready to use