功能介绍
基于 AI 语音模型,支持声音复刻、语音合成能力,适用于有声书、播客、音视频创作等多种场景。支持中、英、日、韩等40+语种,提供丰富的系统音色,音色复刻还原度高。

前提条件
在使用本功能前,您需完成以下前置操作:
腾讯云账号注册/登录、开通 MPS 产品、完成服务角色授权。
若您使用腾讯云子账号,还需要保证账号有足够权限使用 MPS 产品。
发起音色复刻任务
说明:
输入的音频时长没有限制,为提高复刻效果,建议时长控制在10秒-20秒之间,且仅包含单人清晰语音。
输入示例:
{"AudioData": "UklGRghoAABXQVZFZm10IBAAAAABAAEAgD4AAAB..."}
输出示例:
{"Response": {"ErrorCode": 0,"Msg": "success","VoiceId": "v1_jRFTM0hdReIsnPll+lDRCpW6+3Drq0RcmXwUT","RequestId": "15468f21-9d4a-4958-b652-454d6f7646ea"}}
计费说明
发起语音合成任务
短文本语音合成(同步)
传入文本、指定音色 ID:按照指定音色语音合成,返回语音数据。
传入文本、训练音频:先基于训练音频进行音色复刻,再基于复刻出的音色进行语音合成,返回语音数据、音色 ID。
传入文本、音色 ID 进行语音合成
输入示例:
{"Text": "您好","VoiceId": "s1_2GSzVAf00hl"}
输出示例:
{"Response": {"RequestId": "2f8fa58c-91e8-4564-8b42-490ececda193","ErrorCode": 0,"Msg": "success","AudioData": "UklGRuxnAABXQVZFZm10IBAAAAABAAEAgD4AAA...","VoiceId": "s1_2GSzVAf00hl"}}
计费说明
传入文本、训练音频,同时进行音色复刻、语音合成
输入示例:
{"Text": "您好","AudioData": "UklGRghoAABXQVZFZm10IBAAAAABAAEAgD4AAAB..."}
输出示例:
{"Response": {"RequestId": "2f8fa58c-91e8-4564-8b42-490ececda193","ErrorCode": 0,"Msg": "success","AudioData": "UklGRuxnAABXQVZFZm10IBAAAAABAAEAgD4AAA...","VoiceId": "s1_2GSzVAf00hl"}}
计费说明
长文本语音合成(异步)
传参 JSON 示例如下:
{"InputInfo": {"Type": "URL","UrlInputInfo": {"Url": "https://test.myqcloud.com/video/xxx.mp4" // SpeechToSpeech模式替换成要做音色替换的视频/音频,TextToSpeech模式下随便填写一个可访问的音视频链接即可,不会统计时长计费}},"AiAnalysisTask": {"Definition": 36, //预设语音合成模板 ID"ExtendedParameter": "{\\"dubbing\\":{\\"dubbingType\\":\\"TextToSpeech\\",\\"text\\":\\"文本\\",\\"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 用于对长文本语音合成(异步)任务进行个性设置,不同场景可选参数及其说明如下文。文本转语音场景
输入长文本,合成语音。
ExtendedParameter 传参示例:{"dubbing": {"dubbingType": "TextToSpeech","text": "文本","voiceId": "clone_v1_Q03FBduA"}}//调用API时需进行转义!
参数 | 类型 | 必选 | 描述 |
dubbingType | String | 是 | 配音任务类型,该场景填 TextToSpeech。 |
text | String | 是 | 需要合成音频的文本。 |
textLang | String | 否 | |
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即原音色输出。 |
synExt.sampleRate | Integer | 否 | 结果音频采样率,支持[8000,16000,22050,32000,44100]。 |
语音转语音场景(音视频音色替换)
输入原始音频或视频,指定音色 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即原音色输出。 |
计费说明
若指定音色 ID 合成语音,收取“语音合成(基于音色 ID)”费用。
查询任务结果
事件通知回调
在使用 ProcessMedia 发起媒体处理任务时,您可以通过 TaskNotifyConfig 参数配置事件回调。当任务处理完成后,会通过配置的回调信息回调任务结果,您可以通过 ParseNotification 解析事件通知结果。相关数据结构可参考下文。
调用接口查询任务结果
在使用 ProcessMedia 发起媒体处理任务后,会返回任务 ID(TaskId),例如:24000022-WorkflowTask-b20a8exxxxxxx1tt110253、24000022-ScheduleTask-774f101xxxxxxx1tt110253。调用 DescribeTaskDetail 接口,输入任务 ID 即可获取任务结果,您需要解析 WorkflowTask ->AiAnalysisResultSet > DubbingTask > Output 字段获取任务结果。下方列出了相关数据结构以供参考。
附:支持语种、系统音色列表
支持语种 | 语种 Code( srcLang、cloneVideoLang传参支持选项) |
中文 (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 |
挪威语 (Norwegian) | no |
粤语 (Cantonese) | yue |
泰语 (Thai) | th |
希伯来语 (Hebrew) | he |
加泰罗尼亚语 (Catalan) | ca |
尼诺斯克语 (Nynorsk) | nn |
阿非利卡语 (Afrikaans) | af |
波斯语 (Persian) | fa |
斯洛文尼亚语 (Slovenian) | sl |