视频制作接口- PPT模式

最近更新时间:2026-04-01 18:23:31

我的收藏

接口说明

基于 ppt 文件生成数智人讲解视频,当前一个账户仅允许同时提交一个 PPT 视频合成任务,任务最终会扣减相应数智人类型的播报小时包(制作失败不扣减小时包)。通过 视频制作接口-PPT 模式进度查询接口 最终返回成品视频。

调用协议

HTTPS + JSON
POST /v2/ivh/mediaproduction/mediaproduction/videomakewithppt
Header Content-Type: application/json;charset=utf-8

请求参数

参数
类型
必须
说明
PPTFileUrl
string
PPT 文件 URL,支持格式:ppt、pptx、pdf。
大小要求:不超过100MB,页数要求:不超过50页。
GlobalConfig
object
定义全局默认参数,包含视频相关参数、音频相关参数等。参数优先级规则:PageConfig > GlobalConfig。即每页配置中显式指定的参数将覆盖全局默认值;未指定的参数自动继承全局配置。
GlobalConfig.AdaptationType
int
全局画面适配模式,当背景图和输出视频分辨率不一致时,提供两种适配模式:0,1;默认0。
以下是两种适配模式:
0: 拉伸适配:强制将 PPT 内容拉伸至充满整个视频画面,可能导致文字、图片变形,适合对画面比例无严格要求的场景;
1 :等比缩放:按原始文件比例缩放内容,确保画面无变形,剩余区域以指定颜色背景填充
GlobalConfig.BackgroundColor
string
全局背景图填充颜色,当适配模式选择等比缩放时生效, 默认值:#FFFFFF(白色)。
格式要求:
必须为合法的十六进制颜色代码
以#符号开头,后跟6位十六进制字符(0-9, A-F)
不区分大小写
不支持简写形式(如 #FFF)
GlobalConfig.ShowSubtitles
bool
是否在视频内显示字幕(显示要求是文本驱动),默认不展示,展示会大大增加视频制作时间。
说明:
需要注意当值为 true 时,如果某些音色(第三方音色)不支持字幕会导致任务失败。
GlobalConfig.LogoParams
Array of [LogoParam]
定义视频中 logo 相关参数。
GlobalConfig.SpeechParam
定义全局音频的详细参数。
GlobalConfig.VideoParam
定义全局视频的详细参数。
PageConfigs

Array of[PageConfig]
定义具体页 PPT 的参数,包含数字人形象、音频相关参数、视频相关参数。
说明:
PageConfigs 元素数量应不超过 PPT 页数, 当 PageConfigs 元素数量为 N,并且少于 PPT 页数时,仅基于前 N 页 PPT 合成视频。

LogoParam

参数
类型
必须
说明
LogoFileUrl
string
LOGO 图片文件下载路径,支持 jpg、png 格式
PositionX
int
LOGO 图片左上角的 X 坐标(坐标范围和视频分辨率相关)
PositionY
int
LOGO 图片左上角的 Y 坐标(坐标范围和视频分辨率相关)
Scale
float
LOGO 图片缩放比例(1.0为原始图片大小,范围(0,15])

PageConfig

参数
类型
必须
说明
VirtualmanKey
string
数字人形象,包含了播报的角色、服装、姿态、分辨率等信息。 要求每页配置的数智人形象为同一类型,并且分辨率相同。
说明:
当前仅支持1080P 横版(1920×1080)和 1080P 竖版(1080×1920)的形象。
如果不需要数智人出镜(只要 PPT 画面 + 语音旁白),该字段可为空。
InputAudioUrl
string
驱动数智人的音频 URL。当 DriverType 为 OriginalVoice 时,该字段必填。
音频格式要求:音频时长不超过60分钟(VirtualmanKey 为空时不超过30分钟),不少于0.5秒。
支持格式:wav、mp3、wma、m4a、aac、ogg。
建议文件大小:不大于100MB。
DriverType
string
驱动类型,为空时默认 Text。
Text:文本驱动,要求 InputSsml 字段必填。
OriginalVoice:原声音频驱动,要求 InputAudioUrl 字段必填。可通过 Speech.TimbreKey 指定音色,未填写时使用主播默认音色。
InputSsml
string
播报的文本内容,支持 SSML 标签,支持的标签类型参照 数智人 SSML 标记语言规范,标签写法参照示例,内容不能换行,符号需转义。上限2万字(字数按 unicode 字符数计算)。DriverType 为空、或 Text 时,该字段必填。
SpeechParam
定义当前页面的音频详细参数。
VideoParam
定义当前页面的视频详细参数 。

SpeechParam

参数
类型
必须
说明
Speed
float
语速(1.0为正常语速,范围[0.5-1.5],值为0.5时播报语速最慢,值为1.5时播报语速最快,DriverType 为音频驱动类型时,语速控制不生效)。
TimbreKey
string
音色 key,默认使用形象自有音色。
Volume
int
音量大小,范围[0,10],对应音量大小。默认为0,代表正常音量,值越大音量越高。
说明:
TimbreKey 在 male_1 - 20、female_1 - 23(即男声1 - 20、女声1 - 23)间的音色不支持音量调节。
EmotionCategory
string
控制合成音频的情感,仅支持多情感音色使用,可选值参考个人资产管理 API 分页查询音色列表 接口。
EmotionIntensity
int
控制合成音频情感程度,取值范围为 [50,200],只有 EmotionCategory 不为空时生效。
TimbreLanguage
string
音色语种,可选语种参考个人资产管理 API 分页查询音色列表 接口,多语种音色在合成时必须选择对应语种。

VideoParam

参数
类型
必须
说明
AnchorParam
定义视频中主播相关参数
SmallSampleParam
定义小样本相关特殊参数,当为非小样本形象时,此参数不生效。
SmartActionEnabled
bool
是否开启智能动作,默认不开启。生效条件:DriverType=Text、且 InputSsml 中不携带动作标签。

VideoParam.AnchorParam

参数
类型
必须
说明
HorizontalPosition
float
定义主播横向位置(0为中间位置) 。
说明:
具体计算方法请参见 主播位置计算方法
VerticalPosition
float
定义主播纵向位置(0为中间位置)。
说明:
具体计算方法请参见 主播位置计算方法
Scale
float
主播大小(1是默认大小,范围(0,20])
Angle
int
主播角度(默认0度,范围[0,360])目前仅3D 形象支持。
AnchorExtraParam
string
主播额外可配置参数,目前仅包含 3D 服装变色参数。不同主播可配置的参数不同,详情见接口 查询形象资产信息-查询主播下的所有形象 的 SupportAnchorExtraParam 参数。
需要将该参数组织为 JSON 字符串格式,请参考请求示例组织 JSON。

VideoParam.SmallSampleParam

参数
类型
必须
说明
MakeType
string
定义小样本制作类型:
Default:默认配置,会从随机起始帧开始制作,StartIdx 和 EndIdx 均不生效。
Custom:指定视频片段,可以填写 StartIdx 和 EndIdx 来选择片段,默认生成的视频用该“指定的视频片段”进行正倒放循环。
Circle:首尾帧归位,可以填写 StartIdx 来指定视频开始帧数(EndIdx 不生效),注意:该类型只用于声音驱动。
StartIdx
int
起始帧号,当 MakeType 为 Custom 或 Circle 时生效,当填写的时候,默认生成的视频从该位置开始;不填的时候,默认选取开始帧号,即第0帧。
EndIdx
int
结束帧号,当 MakeType 为 Custom 时生效,当填写的时候,默认结束的视频到该位置结束;不填的时候,默认选取该“选中的全部视频片段”的结束帧号。

VideoParam.AnchorParam.AnchorExtraParam 示例

说明:
colorValue 转换规则:十六进制 Hex 色值,去掉 # 后转为十进制,例如: #FAFAFA =>16448250
{
"shirtColor": {
"colorValue": 10491928
},
"clotheColor": {
"colorValue": 10491928
},
"shoeColor": {
"colorValue": 10491928
}
}

返回参数

参数
类型
必须
说明
TaskId
string
视频制作的任务 ID,携带 TaskId 访问 PPT 合成视频进度查询接口,可获得制作进度和制作结果

请求示例


{
"Header": {},
"Payload": {
"PPTFileUrl": "https://virtualhuman-cos-prod-1251316161.cos.ap-nanjing.myqcloud.com/12323/%E5%AE%9E%E4%B9%A0%E7%AD%94%E8%BE%A92.pptx",
"GlobalConfig": {
"AdaptationType": 0,
"BackgroundColor": "",
"SpeechParam": {
"EmotionCategory": "",
"EmotionIntensity": 0,
"Speed": 0,
"TimbreKey": "tts_female_yunxiaoxiao",
"TimbreLanguage": "",
"Volume": 0
},
"VideoParam": {
"AnchorParam": {
"AnchorExtraParam": "",
"Angle": 0,
"HorizontalPosition": 0,
"Scale": 0,
"VerticalPosition": 0
},
"SmallSampleParam": {
"EndIdx": 0,
"MakeType": "",
"StartIdx": 0
},
"SmartActionEnabled": true
},
"ShowSubtitles": true,
"LogoParams": [
{
"LogoFileUrl": "https://virtualhuman-cos-prod-1251316161.cos.ap-nanjing.myqcloud.com/123/123.png",
"PositionX": 0,
"PositionY": 0,
"Scale": 0.1
}
]
},
"PageConfigs": [
{
"DriverType": "",
"InputAudioUrl": "",
"InputSsml": "你好呀,我是数智人,这是我的第一次ppt视频",
"SpeechParam": {
"EmotionCategory": "",
"EmotionIntensity": 0,
"Speed": 1,
"TimbreKey": "tts_female_yunxiaoxiao",
"TimbreLanguage": "",
"Volume": 0
},
"VideoParam": {
"AnchorParam": {
"AnchorExtraParam": "",
"Angle": 0,
"HorizontalPosition": 0,
"Scale": 0,
"VerticalPosition": 0
},
"SmallSampleParam": {
"EndIdx": 0,
"MakeType": "",
"StartIdx": 0
},
"SmartActionEnabled": false
},
"VirtualmanKey": "2c3f4c11d1e54b7693156b060990544d"
},
{
"DriverType": "",
"InputAudioUrl": "",
"InputSsml": "你好呀,我是数智人,这是我的第一次ppt视频",
"SpeechParam": {
"EmotionCategory": "",
"EmotionIntensity": 0,
"Speed": 1,
"TimbreKey": "tts_female_yunxiaoxiao",
"TimbreLanguage": "",
"Volume": 0
},
"VideoParam": {
"AnchorParam": {
"AnchorExtraParam": "",
"Angle": 0,
"HorizontalPosition": 0,
"Scale": 0,
"VerticalPosition": 0
},
"SmallSampleParam": {
"EndIdx": 0,
"MakeType": "",
"StartIdx": 0
},
"SmartActionEnabled": false
},
"VirtualmanKey": ""
},
{
"DriverType": "",
"InputAudioUrl": "",
"InputSsml": "你好呀,我是数智人,这是我的第一次ppt视频",
"SpeechParam": {
"EmotionCategory": "",
"EmotionIntensity": 0,
"Speed": 1,
"TimbreKey": "tts_female_yunxiaoxiao",
"TimbreLanguage": "",
"Volume": 0
},
"VideoParam": {
"AnchorParam": {
"AnchorExtraParam": "",
"Angle": 0,
"Scale": 0,
"VerticalPosition": 0
},
"SmallSampleParam": {
"EndIdx": 0,
"MakeType": "",
"StartIdx": 0
},
"SmartActionEnabled": false
},
"VirtualmanKey": "2c3f4c11d1e54b7693156b060990544d"
}
]
}
}

返回示例

成功

{
"Header": {
"RequestID": "5e2dd62fa7f3c1aa6030875637688706",
"SessionID": "gzfa9105ca17749284691612885",
"DialogID": "",
"Code": 0,
"Message": ""
},
"Payload": {
"TaskId": "098b482c71f643ad8f288df9f2961403"
}
}
失败
{
"Header": {
"RequestID": "d99cf740be48d7b0fb1eee4447b71781",
"SessionID": "gz6240ef0317651792698007383",
"DialogID": "",
"Code": 100001,
"Message": "InvalidParameter:请求参数错误: Speed value invalid,ranges:0.5-1.5"
}
}