媒体处理 AI 配音(不含擦除)接入

AI 配音功能可以将视频原配音替换为翻译语言 AI 配音,并将翻译语言字幕压制至视频画面上。

相关产品
媒体处理 产品页,含版本规格、价格与购买入口。

一、AI 配音功能简介

根据你的业务场景,参考以下表格选择接入方式:

译制模式 配音级译制  字幕级译制 
 一站式字幕识别 + 翻译 + 擦除+ AI 配音 仅做 AI 配音 一站式字幕识别 + 翻译 + 擦除 仅做字幕识别 + 翻译
适用场景 有原始视频,需要全流程自动完成:字幕识别提取→翻译→擦除→AI 配音。 已有无痕视频、原文和译文字幕文件,只需 AI 配音,无需 MPS 进行字幕识别和擦除。 原始视频带有硬字幕,需要擦除原字幕,翻译为其他语种,再压制并渲染回视频画面。 原始视频没有硬字幕,无需擦除,只需要识别提取字幕并翻译为其他语种。
使用模板 「智能分析」 25 号预设模板 「智能分析」 32 号预设模板 「智能擦除」模板 「智能字幕」模板
字幕来源 OCR 文本识别 / ASR 语音识别 传入原文和译文字幕文件 OCR 文本识别 / ASR 语音识别 OCR 文本识别 / ASR 语音识别
原文字幕擦除 ✓ 默认开启(可关闭) ✗ 不包含(不可开启) ✓ 包含(不可关闭) ✗ 不包含(不可开启)
AI 配音 ✓ 包含(不可关闭)。支持三种模式:全自动克隆配音、按角色智能配音、指定单一音色配音。 ✓ 包含(不可关闭)。支持三种模式:全自动克隆配音、按角色智能配音、指定单一音色配音。 ✗ 不包含(不可开启) ✗ 不包含(不可开启)
译文字幕压制 ✓ 默认开启(可关闭) ✓ 默认开启(可关闭) ✓ 默认开启(可关闭) ✓ 默认开启(可关闭)
计费说明 收取“去字幕” + “OCR 提取字幕并翻译”/“ASR 语音翻译” + “AI 配音” + “压制字幕”费用。定价请参考 计费说明。 收取“AI 配音” + “压制字幕”费用。定价请参考 计费说明。 收取“去字幕” + “OCR 提取字幕并翻译”/“ASR 语音翻译” + “压制字幕”费用。定价请参考 计费说明。 收取 “OCR 提取字幕并翻译”/“ASR 语音翻译” + “压制字幕”费用。定价请参考 计费说明。
接入指引 参考 一站式视频译制接入 文档 参考这篇说说 参考 一站式视频译制接入 – 字幕级视频译制接入 – 场景2 文档 参考 一站式视频译制接入 – 字幕级视频译制接入 – 场景1 文档

本接入指引针对「仅做 AI 配音」模式。发起任务,需要输入以下两种文件:

1. 视频文件。AI 配音任务不进行字幕擦除,因此输入视频上不应有硬字幕。

2. 字幕文件或角色标记文件(Speaker 文件)。

三、接入前置操作

在接入 AI 配音前,为正常使用 MPS 产品,你需要完成以下前置操作:腾讯云账号注册和登录、开通 MPS 产品、授权服务角色。

具体指引请参考 快速入门。账号授权问题可参考 账号授权 文档。

四、方式1:控制台发起任务

1. 进入控制台 创建任务 页面,依次选择输入文件路径、配置编排处理流程、输出路径。

2. 在编排配置中,选择媒体 AI – 智能分析节点。

3. 在右侧弹出页面中,选择32号预设模板。开启“更多设置 – 扩展参数”,根据下文 扩展参数说明,传入所需参数。

注意:说明:

五、方式2:API 发起任务

调用 ProcessMedia 接口 ,选择 AiAnalysisTask 任务,将 Definition 设置为32(预设模板 ID),ExtendedParameter 填写扩展参数,通过该参数实现 AI 配音能力,取值见下文 扩展参数说明。ProcessMedia 的 JSON 示例如下:

{ "InputInfo":{ //输入视频路径,请替换为你的原始视频(建议使用无字幕视频,纯配音服务不会做字幕擦除) "Type":"URL", "UrlInputInfo":{ "Url":"https://test-1234567.cos.ap-nanjing.myqcloud.com/mps_test/myvideo.mp4" } }, "OutputStorage":{ //输出COS存储桶,请替换 "Type":"COS", "CosOutputStorage":{ "Bucket":"test", "Region":"ap-nanjing" } }, "OutputDir":"/mps_test/output/",//输出文件夹路径,请替换 "AiAnalysisTask":{ "Definition":32, //预设模板ID,填 32 即可 "ExtendedParameter":"{\\"dubbing\\":{\\"speakerUrl\\":\\"https://mycloud.com/path/to/file.json\\"}}" //扩展参数,必传,用于指定speaker文件路径、字幕样式等参数 }, "TaskNotifyConfig":{ //事件回调通知配置,可选 "NotifyType":"URL", "NotifyUrl":"http://www.qq.com/callback" }}

建议你通过 API Explorer 实现快速验证。你可以将上述 JSON 复制到 API Explorer 的 JSON 模式中,切换至“表单”模式可以自动解析,调整输入输出路径等必要参数后,再单击发起调用即可。

在 API Explorer 表单和 JSON 两种输入模式下,ExtendedParameter 的位置示意如下:

注意:使用 API Explorer 的表单模式填写 ExtendedParameter 时,需要直接传入 JSON,不用转换成字符串。但使用 API Explorer 的 JSON 模式或直接使用 API 接口,则必须传入转义后的字符串。

注意:

注意:{\\"dubbing\\":{\\"speakerUrl\\":\\"https://mycloud.com/path/to/file.json\\"}}

六、配音模式传参说明(ExtendedParameter)

AI 配音支持以下几种模式:

AI 配音模式 说明 计费说明
高情感克隆配音 (默认) 克隆原片角色音色,保留情感语气。情绪表现最好。 收取“AI 配音-克隆音色”费用。
按角色智能分配音色 自动角色识别,从音色库中为每个角色自动分配符合角色描述的音色(不进行音色克隆)。情绪表现中等,音色一致性好,性价比高。 收取“AI 配音-按角色分配”费用。
手动标记音色 传入 Speaker 文件,手动标记说话人对应的音色 ID。适合手动精调场景,或旁白、解说等单人说话的视频场景。 收取“AI 配音-指定音色”费用。定价请参考 计费说明。

指定配音模式,需要通过请求中的 ExtendedParameter 字段传入(JSON 字符串格式)。不传时默认使用克隆模式。以下提供几种常见场景传参示例:

八、V2 版本 (推荐)

ExtendedParameter 传参示例如下:

{ "dubbing": { "srcLang": "zh", "dstLangs": ["ja"], "subtitleUrls": { "srcSubtitleUrl": "https://test/zh.vtt", // 原语言字幕文件链接 "dstSubtitleUrls": { "ja": "https://test/ja.vtt" // 翻译语言字幕文件链接 } }, "extraPara": { "provider": "opus" }, "subtitle": { "embed": true, // 是否压制字幕,默认开启 "style": { // 字幕样式,启用字幕压制时生效 "font": "auto", // 字体, auto时根据语言自动匹配 "fontSize": 0.04, // 字体大小 "marginV": 0.15 // 字幕距离底部位置 } } }}

V2版本支持不传字幕文件(不传 subtitleUrls):

1. 如果不传任何字幕文件,会通过 ASR 自动识别字幕并翻译。

2. 如果仅传原文字幕文件,会使用原文字幕文件作为字幕并自动翻译。

3. 如果仅传译文字幕文件,不会参考译文字幕文件,会通过 ASR 自动识别字幕并翻译,译文字幕文件需要配合原文字幕文件一起传入。

九、V1 版本

ExtendedParameter 传参示例如下:

{ "dubbing": { "srcLang": "zh", "dstLangs": ["ja"], "subtitleUrls": { "srcSubtitleUrl": "https://test/zh.vtt", // 原语言字幕文件链接 "dstSubtitleUrls": { "ja": "https://test/ja.vtt" // 翻译语言字幕文件链接 } }, "subtitle": { "embed": true, // 是否压制字幕,默认开启 "style": { // 字幕样式,启用字幕压制时生效 "font": "auto", // 字体, auto时根据语言自动匹配 "fontSize": 0.04, // 字体大小 "marginV": 0.15 // 字幕距离底部位置 } } }}

十、场景2:按角色智能分配音色

ExtendedParameter 传参示例如下:

{ "dubbing": { "srcLang": "zh", "dstLangs": ["ja"], "subtitleUrls": { "srcSubtitleUrl": "https://test/zh.vtt", // 原语言字幕文件链接 "dstSubtitleUrls": { "ja": "https://test/ja.vtt" // 翻译语言字幕文件链接 } }, "extraPara": { "voice_from": "match" //表示使用“按角色智能分配音色”模式 }, "subtitle": { "embed": true, // 是否压制字幕,默认开启 "style": { // 字幕样式,启用字幕压制时生效 "font": "auto", // 字体, auto时根据语言自动匹配 "fontSize": 0.04, // 字体大小 "marginV": 0.15 // 字幕距离底部位置 } } }}

十一、场景3:手动标记音色

输入 Speaker文件,标记好每个说话人对应的音色 ID。ExtendedParameter 传参示例如下:

{ "dubbing": { "speakerUrl": "https://mycloud.com/path/to/file.json", // speaker 文件 URL "subtitle": { "embed": true, // 是否压制字幕,默认开启 "style": { // 字幕样式,启用字幕压制时生效 "font": "auto", // 字体, auto时根据语言自动匹配 "fontSize": 0.04, // 字体大小 "marginV": 0.15 // 字幕距离底部位置 } } }}

十三、ExtendedParameter 字段说明

参数 类型 必填 描述
speakerUrl string 否 Speaker 文件 Url,和 SubtitleUrls 二选一,说明见 Speaker 数据格式。
srcLang string 否 源语言,speakerUrl 模式下可不填。
dstLangs list<string> 否 配音目标语言,speakerUrl 模式下可不填。
subtitleUrls json 否 输入字幕 Urls,和 speakerUrl 二选一。
subtitleUrls.srcSubtitleUrl string 否 原字幕 Url.
subtitleUrls.dstSubtitleUrls json 否 目标字幕 Urls,key 为语言,value 为字幕 Url。
subtitle json 否 输出字幕相关参数。
subtitle.embed bool 否 是否压制字幕,默认开启。
subtitle.style json 否 字幕样式,启用字幕压制时生效。
subtitle.style.font string 否 字体,不填或填"auto"时使用默认字体。支持的字体参考 SubtitleTemplate 数据结构。
subtitle.style.fontSize float 否 字体大小,默认值 50 px。
subtitle.style.marginV float 否 底部距离,默认值 50 px。
outputPattern string 否 输出文件名前缀,不传则前缀默认为 dub,文件全名为dub_{unixtime}.{format}。
extraPara json 否 额外参数字段

十四、口型驱动配置

支持在配音任务同时开启口型驱动,通过传入 extraPara.enable_lipsync 为 true 开启,使用 V2 配音同时进行口型驱动示例如下:

{ "dubbing": { "srcLang": "zh", "dstLangs": ["ja"], "subtitleUrls": { "srcSubtitleUrl": "https://test/zh.vtt", // 原语言字幕文件链接 "dstSubtitleUrls": { "ja": "https://test/ja.vtt" // 翻译语言字幕文件链接 } }, "extraPara": { "provider": "opus", "enable_lipsync": true } }}

注意:当前口型驱动能力仅建议在单人、简单场景开启。

十五、查询任务结果

AI 配音任务会输出处理后的视频文件、精调后的 Speaker 文件(在配音的同时,会对原始 Speaker 文件中的译文做精简逻辑,保证配音的语速正常,避免语速过快的情况,因此会生成新的 Speaker 文件),保存在任务配置的输出路径下。

十六、控制台查询结果

1. 你可以在控制台 任务管理 页面查看任务状态,当子任务状态为“成功”时,单击回调 JSON。

2. 可以在输出信息中找到输出文件路径。

如果使用 COS 作为输出路径,你可以在 MPS 控制台的编排管理 > COS Bucket > 输出 Bucket 页面中找到输出文件。文件名类似"dub-xxx.mp4"、"dub-xxx.json"的文件即为 AI 配音处理后的视频文件、Speaker 文件。

十七、事件通知回调

在使用 ProcessMedia 发起媒体处理任务时,你可以通过 TaskNotifyConfig 参数配置事件回调。当任务处理完成后,会通过配置的回调信息回调任务结果,你可以通过 ParseNotification 解析事件通知结果。下方列出了相关数据结构以供参考。

十八、调用接口查询任务结果

在使用 ProcessMedia 发起媒体处理任务后,会返回任务 ID(TaskId),例如:24000022-WorkflowTask-b20a8exxxxxxx1tt110253、24000022-ScheduleTask-774f101xxxxxxx1tt110253。调用 DescribeTaskDetail 接口,输入任务 ID 即可获取任务结果,你需要解析 WorkflowTask ->AiAnalysisResultSet > DubbingTask > Output 字段获取任务结果。下方列出了相关数据结构以供参考。

十九、相关数据结构

·AiAnalysisTaskDubbingResult

·AiAnalysisTaskDubbingInput

·AiAnalysisTaskDubbingOutput

22、数据格式

Speaker 文件指带有字幕及对应角色信息的 JSON 格式文件,数据格式如下:

{ "SrcLang": "zh", "DstLangs": ["en"], "Speakers": [ { "Id": "speaker_0", "Gender": "male", "VoiceId": "s1_iWay8xZE9nWeUwd66czvRDO/cvcyLQsU0gdJpUs0t0xPiyQbgFwjrJMYV18uGUZYiwFRrA6/prU=" }, { "Id": "speaker_1", "Gender": "female", "VoiceId": "s1_FdaOYPrTugqzcDM0oTF5w9nWN+lgMy9OY64fFR82/vGS6w+42WXMwnrLOfZm3fY4C7SSZA==" } ], "Clips": [ { "TextStartTime": "00:00:00.100", "TextEndTime": "00:00:00.600", "SpeakerId": "speaker_0", "SrcText": "没谁", "DstTexts": { "en": "No one" } }, { "TextStartTime": "00:00:01.0", "TextEndTime": "00:00:01.200", "SpeakerId": "speaker_1", "SrcText": "早上好", "DstTexts": { "en": "Morning" } } ]}

参数 是否必填 类型 说明
SrcLang 是 string 视频源语言。下文列出了 支持语种。
DstLangs 是 list<string> 译制目标语言,当前仅支持单种语言。下文列出了 支持语种。
Speakers[i].Id 是 string 说话人 ID。
Speakers[i].Gender 是 string 说话人性别,取 male 或 female。
Speakers[i].VoiceId 否 string 说话人音色 ID,用于从音色库中指定说话人音色。
Clips[i].TextStartTime 是 string 字幕切片开始时间戳,时:分:秒.毫秒。
Clips[i].TextEndTime 是 string 字幕切片结束时间戳,时:分:秒.毫秒。
Clips[i].SpeakerId 是 string 字幕切片对应的说话人 ID。
Clips[i].SrcText 是 string 字幕切片源语言。
Clips[i].DstTexts 是 map<string,string> 字幕切片翻译语言,当前仅支持单种语言。

23、如何通过 SRT/VTT 格式字幕文件生成 Speaker 文件?

MPS 提供字幕文件转 Speaker 文件脚本 subtitle2speaker.py。

支持 SRT 或 VTT 格式字幕文件,使用示例如下:

·提供双语字幕文件(原字幕和翻译字幕在同一个字幕文件里)。

python3 subtitle2speaker.py input.srt output.json –src_lang "zh" –dst_langs "en"

·提供两个单语字幕文件(原字幕和翻译字幕不在一个文件中)。

python3 subtitle2speaker.py input_src.vtt input_dst.vtt output.json –src_lang "zh" –dst_langs "en"

注意:说明:

注意:通过 SRT/VTT 格式字幕文件生成的 Speaker 文件,说话人 ID 都为默认值,你需要手动修改说话人信息,否则配音效果可能不符合预期。

24、Speaker 文件中的音色 VoiceId 如何获取?

从 系统音色列表 选取,或者通过 配音接口 自行克隆或设计。

25、修改 Speaker 文件示例

修改标记不正确的说话人(SpeakerId),可以避免串音现象修改过短的时间戳,避免配音语速过快问题修改译文,满足更地道、更口语化的需求

26、AI 配音支持语种

语种 Code 是否可用于源语言(SrcLang) 是否可用于译制目标语言(DstLangs)
中文 (Chinese) zh ✓ ✓
英语 (English) en ✓ ✓
日语 (Japanese) ja ✓ ✓
德语 (German) de ✓ ✓
法语 (French) fr ✓ ✓
韩语 (Korean) ko ✓ ✓
俄语 (Russian) ru ✓ ✓
乌克兰语 (Ukrainian) uk ✓ ✓
葡萄牙语 (Portuguese) pt ✓ ✓
意大利语 (Italian) it ✓ ✓
西班牙语 (Spanish) es ✓ ✓
印度尼西亚语 (Indonesian) id ✓ ✓
荷兰语 (Dutch) nl ✓ ✓
土耳其语 (Turkish) tr ✓ ✓
菲律宾语 (Filipino) fil ✓ ✓
马来语 (Malay) ms ✓ ✓
希腊语 (Greek) el ✓ ✓
芬兰语 (Finnish) fi ✓ ✓
克罗地亚语 (Croatian) hr ✓ ✓
斯洛伐克语 (Slovak) sk ✓ ✓
波兰语 (Polish) pl ✓ ✓
瑞典语 (Swedish) sv ✓ ✓
印地语 (Hindi) hi ✓ ✓
保加利亚语 (Bulgarian) bg ✓ ✓
罗马尼亚语 (Romanian) ro ✓ ✓
阿拉伯语 (Arabic) ar ✓ ✓
捷克语 (Czech) cs ✓ ✓
丹麦语 (Danish) da ✓ ✓
泰米尔语 (Tamil) ta ✓ ✓
匈牙利语(Hungarian) hun ✓ ✓
越南语(Vietnamese) vi ✓ ✓
泰语(Thai) th ✓ ✓
粤语(Cantonese) yue ✓ ✓

27、如何去除视频硬字幕,获得无痕视频?

你可以通过 智能擦除 功能去除视频上的字幕、水印等内容,获得无痕视频。

28、是否支持输入视频,一站式进行去字幕+翻译字幕+压制字幕+AI 配音处理?

支持,请参考 配音级视频译制接入。

29、如何获取音色库,如何克隆或设计新音色?

调用 查询可用音色、同步语音合成 等接口。你也可以在控制台菜单 AI 语音 页面,进行音色库查询、克隆音色、设计音色。

赞 (0)
上一篇 4天前
下一篇 4天前