文档首页 > > SDK参考> Python SDK> 使用语音合成

使用语音合成

分享
更新时间: 2019/12/04 GMT+08:00

前提条件

初始化Client

初始化TtsClient详见表 TtsClient初始化参数

表1 TtsClient初始化参数

参数名称

是否必选

参数类型

描述

ak

String

用户的ak,可参考AK/SK认证

sk

String

用户的sk,可参考AK/SK认证

region

String

区域,如:cn-north-1。具体请参考终端节点

service_endpoint

String

终端节点,一般使用默认即可。

sis_config

Object

详见表 SisConfig数据结构

表2 SisConfig数据结构

参数名称

是否必选

参数类型

描述

connect_timeout

String

连接超时,默认10,单位s。

read_timeout

String

读取超时,默认10,单位s。

proxy

List

[host, port] 或 [host, port, username, password]。

请求参数

请求类为TtsRequest,详见表 TtsRequest数据结构

表3 TtsRequest数据结构

参数名称

是否必选

参数类型

描述

text

String

待合成的文本。

sample_rate

String

采样率,支持8k/16k。 默认8k。

voice_name

String

发声人,支持xiaoyu,xiaoqi,xiaoyan,三个发声人,默认选择xiaoyan。

pitch_rate

Integer

音高,[-500,500],默认0。

speech_speed

Integer

语速,[-500,500],默认0。

volume

Integer

音量,[-20,20],默认0。

saved

Boolean

合成音频是否保存为本地音频文件,目前仅支持合成wav格式音频文件, 默认False。

saved_path

String

设置合成的音频文件保存路径。

响应参数

Python SDK响应结果为Json格式,详见 表 响应结果数据结构
表4 响应结果数据结构

参数名称

是否必选

参数类型

描述

result

Object

调用成功时为合成语音内容,请参考表 result数据结构

is_saved

Boolean

是否保存为本地音频。

saved_path

String

保存音频的本地路径,只有在请求时saved参数设置为true才生效。

表5 result数据结构

参数名称

是否必选

参数类型

说明

data

String

合成后生成的语音数据,以Base64编码格式返回。用户如需生成音频,需要将Base64编码解码成byte数组,再保存为wav音频。

说明:

语音数据输出的格式为wav格式。

代码示例

# -*- coding: utf-8 -*-

from huaweicloud_sis.client.tts_client import TtsClient
from huaweicloud_sis.bean.tts_request import TtsRequest
from huaweicloud_sis.bean.sis_config import SisConfig
from huaweicloud_sis.exception.exceptions import ClientException
from huaweicloud_sis.exception.exceptions import ServerException
import json


def tts_example():
    """ 语音合成demo """
    ak = ''         # 参考https://support.huaweicloud.com/sdkreference-sis/sis_05_0003.html
    sk = ''         # 参考https://support.huaweicloud.com/sdkreference-sis/sis_05_0003.html
    region = ''     # region,如cn-north-1
    text = ''       # 待合成文本,不超过500字
    path = ''       # 保存路径,可在设置中选择不保存本地

    # step1 初始化客户端
    config = SisConfig()
    config.set_connect_timeout(5)       # 设置连接超时
    config.set_read_timeout(10)         # 设置读取超时
    # 设置代理,使用代理前一定要确保代理可用。 代理格式可为[host, port] 或 [host, port, username, password]
    # config.set_proxy(proxy)
    tts_client = TtsClient(ak, sk, region, sis_config=config)

    # step2 构造请求
    tts_request = TtsRequest(text)
    # 设置请求,所有参数均可不设置,使用默认参数
    # 设置发声人,默认xiaoyan,可参考api文档
    tts_request.set_voice_name('xiaoyan')
    # 设置采样率,默认8k
    tts_request.set_sample_rate('8k')
    # 设置音量,[-20, 20],默认0
    tts_request.set_volume(0)
    # 设置音高, [-500, 500], 默认0
    tts_request.set_pitch_rate(0)
    # 设置音速, [-500, 500], 默认0
    tts_request.set_speech_speed(0)
    # 设置是否保存,默认False
    tts_request.set_saved(True)
    # 设置保存路径,只有设置保存,此参数才生效
    tts_request.set_saved_path(path)

    # step3 发送请求,返回结果,格式为json. 如果设置保存,可在指定路径里查看保存的音频
    result = tts_client.get_tts_response(tts_request)
    print(json.dumps(result, indent=2, ensure_ascii=False))


if __name__ == '__main__':
    try:
        tts_example()
    except ClientException as e:
        print(e)
    except ServerException as e:
        print(e)
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区