功能介绍
功能 | 说明 |
语音音色转换 | 输入原始视频或音频,指定音色 ID 或传入用于克隆音色的训练音频/视频,可以替换原始音色,说话内容不变且情绪自然。 |
视频加语音 | 输入原始视频,指定音色 ID 和文本内容,系统将自动生成配音并合成到视频中,输出新视频文件。 |
前提条件
在使用本功能前,您需完成以下前置操作:
腾讯云账号注册/登录、开通 MPS 产品、完成服务角色授权。
若您使用腾讯云子账号,还需要保证账号有足够权限使用 MPS 产品。
计费说明
若发起任务时指定音色 ID,收取“AI 配音-指定音色”费用。
若传入了
cloneVideoUrl,则会先进行克隆音色操作再进行语音合成,收取“克隆音色”+“AI 配音-指定音色”费用。发起任务
传参 JSON 示例如下:
{"InputInfo": {"Type": "URL","UrlInputInfo": {"Url": "https://test.myqcloud.com/video/xxx.mp4" // SpeechToSpeech模式替换成要做音色替换的视频/音频,TextToSpeech模式下随便填写一个可访问的音视频链接即可,不会统计时长计费}},"AiAnalysisTask": {"Definition": 36, //预设语音合成模板 ID"ExtendedParameter": "{\\"dubbing\\":{\\"dubbingType\\":\\"SpeechToSpeech\\",\\"voiceId\\":\\"clone_v1_Q03FBduA\\"}}" //扩展参数,用于传入转换音色以及其他个性化能力,见下文说明},"OutputStorage": {"CosOutputStorage": {"Bucket": "test-mps-123456789","Region": "ap-guangzhou-2"},"Type": "COS"},"OutputDir": "/output/","TaskNotifyConfig": {"NotifyType": "URL","NotifyUrl": "http://qq.com/callback/qtatest/?token=xxxxxx"},"Action": "ProcessMedia","Version": "2019-06-12"}
ExtendedParameter 扩展参数说明
ExtendedParameter 用于指定不同功能场景和对应参数。场景一、语音音色转换(音视频音色替换)
输入原始音频或视频,指定音色 ID 或传入用于克隆音色的训练音频/视频,可以替换原始音色,说话内容不变。
ExtendedParameter 传参示例:{"dubbing": {"dubbingType": "SpeechToSpeech","cloneVideoUrl": "https://test.tencentcos.cn/test/trainingvoice.mp4"}}//调用API时需进行转义!
参数 | 类型 | 必选 | 描述 |
dubbingType | String | 是 | 配音任务类型,该场景填 SpeechToSpeech。 |
srcLang | String | 否 | 源视频/音频对应语言,源视频即 InputInfo 中的音视频。 |
voiceId | String | 否 | |
cloneVideoUrl | String | 否 | 克隆音色的视频/音频,要求时长不小于5s且只包含一个说话人。若没有指定 voiceId,将克隆该音视频的音色。 |
cloneVideoLang | String | 否 | |
outputPattern | String | 否 | 输出文件名前缀,支持占位符{taskType}、{timestamp},默认文件名为{taskType}_{timestamp}。 |
extraPara | Object | 否 | 其他参数。 |
extraPara.synExt | Object | 否 | 语音合成扩展参数。 |
synExt.pitch | Integer | 否 | 结果音频音调,取值[-12,12],默认0即原音色输出。 |
场景二、视频加语音场景
文本转语音,并将语音和字幕添加到视频上
ExtendedParameter 传参示例:{"dubbing": {"dubbingType": "AddAudioByTTS","text": "肌肤总干燥紧绷、透着黯黄?想要皮肤状态好,清洁到位是首要!魅护这款洁面乳,甄选芦荟与玫瑰精华,洗完清爽又透亮,日常清洁选它很省心~","voiceId": "s1_W6dm+psx/nndDcTY9fy8CXAuxN82CrmPBVLhaLBZGbylzrAzDwog9zElho/SYnVtGxU="}}
参数 | 类型 | 必填 | 描述 |
dubbingType | string | 是 | 配音任务类型,该场景填 AddAudioByTTS。 |
durationMode | string | 否 | 默认 video 模式。 video:以视频时长为准。若合成音频时长不等于视频,通过倍速或在两端填充静音保证时长一致。 audio:以音频时长为准。若音频时长大于视频,循环播放视频;若小于视频则截断视频,保证视频与合成音频时长相同。 |
text | string | 否 | 语音合成文本。 |
textLang | string | 否 | 文本对应语言,默认中文。 |
textSegments | array of object | 否 | 文本片段列表,可以将 tts 的结果插入到指定位置。 |
textSegments[i].text | string | 否 | 文本。 |
textSegments[i].startTime | float | 否 | 插入到视频中的起始时间位置。 |
textSegments[i].endTime | float | 否 | 插入到视频中的结束时间位置。 |
voiceId | string | 否 | 指定音色 ID,可填克隆音色或系统音色,系统音色见附录。 |
cloneVideoUrl | string | 否 | 克隆音色的视频/音频,要求时长不小于5s且只包含一个说话人。若没有指定 voiceId,将克隆该音视频的音色。 |
cloneVideoLang | string | 否 | 克隆视频/音频对应的语言,默认中文。 |
extraPara | object | 否 | 其他参数。 |
extraPara.synExt | object | 否 | 语音合成扩展参数。 |
synExt.pitch | int | 否 | 结果音频音调,取值[-12,12],默认0原音色输出。 |
subtitle | object | 否 | 字幕相关参数。 |
subtitle.style | Style | 否 | 字幕样式。详情见相关数据结构。 |
查询任务结果
事件通知回调
在使用 ProcessMedia 发起媒体处理任务时,您可以通过 TaskNotifyConfig 参数配置事件回调。当任务处理完成后,会通过配置的回调信息回调任务结果,您可以通过 ParseNotification 解析事件通知结果。相关数据结构可参考下文。
调用接口查询任务结果
在使用 ProcessMedia 发起媒体处理任务后,会返回任务 ID(TaskId),例如:24000022-WorkflowTask-b20a8exxxxxxx1tt110253、24000022-ScheduleTask-774f101xxxxxxx1tt110253。调用 DescribeTaskDetail 接口,输入任务 ID 即可获取任务结果,您需要解析 WorkflowTask ->AiAnalysisResultSet > DubbingTask > Output 字段获取任务结果。
下方列出了相关数据结构以供参考: