声音复刻接口
前提条件
- 确保已按照配置Python环境配置完毕。
- 请参考SDK(websocket)获取最新版本SDK包。
- 使用预置音色或注册的声音合成语音。
- 仅上海一局点支持该接口。
初始化Client
初始化vcs_client,详见表1。
请求参数
请求类型为vcs_request,详见表2。
参数名称 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
text | 是 | String | 待合成文本,文本的长度不大于300字符。 |
audio_path | 是 | String | 待合成音频存储路径。 |
config | 是 | Object | 详见表3。 |
参数名称 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
audio_format | 否 | String | 合成音频的格式。支持wav、mp3、pcm,默认wav |
sample_rate | 否 | String | 合成音频的采样率。支持8kHz、16kHz、24kHz,默认16kHz |
voice_name | 是 | String | 合成所使用的音色名称,可选择用户注册的音色或预置音色。预置音色取值范围参考表4。 |
speed | 否 | Integer | 语速。 取值范围:-500~500 默认值:0 |
pitch | 否 | Integer | 音高。 取值范围: -500~500 默认值:0 |
volume | 否 | Integer | 音量。 取值范围:0~100 默认值:50 |
参数名称 | voice_name | 类型 | 使用场景 | 支持采样率(Hz) |
|---|---|---|---|---|
华小莉 | chinese_huaxiaoli_common | 标准女声 | 中英混合 | 8k/16k/24k |
华小智 | chinese_huaxiaozhi_common | 男童声 | 中英混合 | 8k/16k/24k |
华小天 | chinese_huaxiaotian_common | 朝气男声 | 中英混合 | 8k/16k/24k |
华小媛 | chinese_huaxiaoyuan_common | 成熟女声 | 中英混合 | 8k/16k/24k |
华小静 | chinese_huaxiaojing_common | 女童声 | 中英混合 | 8k/16k/24k |
华小博 | chinese_huaxiaobo_common | 标准男声 | 中英混合 | 8k/16k/24k |
华小柔 | chinese_huaxiaorou_common | 标准女声 | 中英混合 | 8k/16k/24k |
华小悠 | chinese_huaxiaoyou_common | 嘹亮女声 | 中英混合 | 8k/16k/24k |
华小晴 | chinese_huaxiaoqing_common | 青春女声 | 中英混合 | 8k/16k/24k |
华小溪 | chinese_huaxiaoxi_common | 温柔女声 | 中英混合 | 8k/16k/24k |
华小彤 | chinese_huaxiaotong_common | 俏皮女声 | 中英混合 | 8k/16k/24k |
华小雅 | chinese_huaxiaoya_common | 标准女声 | 中英混合 | 8k/16k/24k |
华小伟 | chinese_huaxiaowei_common | 成熟男声 | 中英混合 | 8k/16k/24k |
华小帅 | chinese_huaxiaoshuai_common | 标准男声 | 中英混合 | 8k/16k/24k |
华小杰 | chinese_huaxiaojie_common | 温柔男声 | 中英混合 | 8k/16k/24k |
响应参数
请求示例
- 说明:“endpoint”即调用API的请求地址,不同服务不同区域的“endpoint”不同,具体请参见终端节点,当前仅支持上海一。
- 调用合成API,将文本合成为语音。
import base64 import os from huaweicloud_sis.bean.vcs_register_voice_request import RegisterVoiceRequest from huaweicloud_sis.bean.vcs_synthesis_request import VcsSynthesisRequest from huaweicloud_sis.client.vcs_client import VcsClient from huaweicloud_sis.bean.sis_config import SisConfig # 鉴权参数 # 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SIS_AK/HUAWEICLOUD_SIS_SK/HUAWEICLOUD_SIS_PROJECT_ID。 ak = os.getenv("HUAWEICLOUD_SIS_AK") # 从环境变量获取ak 参考https://support.huaweicloud.com/sdkreference-sis/sis_05_0003.html assert ak is not None, "Please add ak in your develop environment" sk = os.getenv("HUAWEICLOUD_SIS_SK") # 从环境变量获取sk 参考https://support.huaweicloud.com/sdkreference-sis/sis_05_0003.html assert sk is not None, "Please add sk in your develop environment" region = '' # region,支持上海一region,cn-east-3 project_id = "" # project id 同region一一对应,参考https://support.huaweicloud.com/api-sis/sis_03_0008.html service_endpoint = "" # 可选,自定义endpoint,传入VcsClient(ak, sk, region, project_id, sis_config=config) # 使用该脚本前,保证要使用的声音已经注册,voice_name为声音名称。若没有注册声音,请使用vcs_register_and_request.py脚本,注册声音和查询声音 voice_name = "" # 音色名称,可以使用注册音色或预置音色 audio_path = "" # 待合成结果保存路径,例如"D://SIS/audio.wav" text = "" # 待合成文本 def synthesis_example(text, voice_name): # step1 初始化客户端 config = SisConfig() config.set_connect_timeout(10) # 设置连接超时,单位s config.set_read_timeout(60) # 设置读取超时,单位s vcs_client = VcsClient(ak, sk, region, project_id, sis_config=config) synthesis_request = VcsSynthesisRequest(text, voice_name) # 设置采样率,8000 or 16000 or 24000, 默认16000 synthesis_request.set_sample_rate("16000") # 设置音频格式, wav、pcm or mp3, 可参考api文档 synthesis_request.set_audio_format("wav") # 设置音量,[0, 100],默认50 synthesis_request.set_volume(50) # 设置音高, [-500, 500], 默认0 synthesis_request.set_pitch(0) # 设置音速, [-500, 500], 默认0 synthesis_request.set_speed(0) synthesis_request.set_saved(True) # 是否对合成结果进行保存 synthesis_request.set_saved_path(audio_path) # 保存路径 result = vcs_client.synthesis(synthesis_request) print(result) if __name__ == '__main__': # 合成 synthesis_example(text, voice_name)
响应示例
状态码:200
成功响应示例
{
"trace_id": "567e8537-a89c-13c3-a882-826321939651",
"result":{
"data":
"/+MgxAAUeHpMAUkQAANhuRACAIAgKHKQmRisVo0aNAgQIIQyCgGBiwfB8H4IAgCAJg+D4Ph+IAQBBywfB8HwQDGAwfB8Hwf..."
}
} 状态码:400
失败响应示例
{
"error_code": "SIS.1207",
"error_msg": "'sample_rate' is invalid"
} 
