查看: 583|回复: 0

[经验分享] 云课堂 第十七课:天翼云在线语音合成AI云服务测试Demo

[复制链接]
发表于 2019-1-29 09:29:14 | 显示全部楼层 |阅读模式
大家好,很高兴又跟大家见面了!最近因部门内工作调整,繁忙的工作导致自己定的作业只能一拖再做。
上次跟大家分享了天翼云人工智能的两款产品之一“语音听写”的Dmeo,今天就跟大家分享用Python语言实现的“在线语音合成”模块的Demo,供大家参考。
官网对“在线语音合成”描述如下:
‘’将文字信息转化为声音信息,可提供众多极具特色的发音人(音库)。其合成音在音色、自然度等方面的表现均接近甚至超过了人声。“
这个模块的应用其实非常广泛,比如导航的发音,TXT文件朗读等等,像文本的朗读,总是感觉通过软件发出的声音非常不自然,没有感情,所以自己也很少用,后来又查了一下讯飞的官网,体验了其丰富的文字转语音的功能,有些语音库确实非常接近真人发音,只是语速方面与真人还有些差距,相信以后会越做越好。
废话少说,下面按步骤描述。
第一步:在之前创建的AI语音服务应用,点击“编辑应用”,勾选”在线语音合成“,确定后,在API列表里查看。
11.jpg
其中“API Key”后续程序Demo的代码里会用到,还有下图的"APPID"的值同样在后的代码里也会用到。
22.jpg
第二步;官网下载“在线语音合成用户接口使用文档”,需要了解以下信息:
1、采用Web API方式调用,接口地址如下:
Content-Type:application/x-www-form-urlencoded; charset=utf-8
2、我们在发送Http Request Header中,需要配置如下信息:
参数
类型
必须
说明
示例
auf
string
音频采样率,可选值:audio/L16;rate=8000,audio/L16;rate=16000
audio/L16;rate=16000
aue
string
音频编码,可选值:raw(未压缩的pcm或wav格式),lame(mp3格式)
raw
voice_name
string
根据下面的发音人列表选择
xiaoyan
speed
string
语速,可选值:[0-100],默认为50
50
volume
string
音量,可选值:[0-100],默认为50
50
pitch
string
音高,可选值:[0-100],默认为50
50
engine_type
string
引擎类型,可选值:aisound(普通效果),intp65(中文),intp65_en(英文),mtts(小语种,需配合小语种发音人使用),x(优化效果),默认为intp65
intp65
text_type
string
文本类型,可选值:text(普通格式文本),默认为text
text
发音人(voice_name)列表清单如下:
发音人
参数名称
语种/方言
音色
小燕
xiaoyan
普通话
青年女声
燕平
yanping
普通话
青年女声
晓峰
xiaofeng
普通话
青年男声
晓婧
jinger
普通话
青年女声
唐老鸭
donaldduck
普通话
卡通
许小宝
babyxu
普通话
童声
楠楠
nannan
普通话
童声
晓梦
xiaomeng
普通话
青年女声
晓琳
xiaolin
台湾普通话
青年女声
晓倩
xiaoqian
东北话
青年女声
晓蓉
xiaorong
四川话
青年女声
小坤
xiaokun
河南话
青年男声
小强
xiaoqiang
湖南话
青年男声
晓美
xiaomei
粤语
青年女声
大龙
dalong
粤语
青年男声
Catherine
catherine
美式纯英文
青年女声
John
john
美式纯英文
青年男声
3、我们在发送Http Request Body中,需要配置audio信息:
参数
类型
必须
说明
示例
text
string
待合成文本,使用utf-8编码,需urlencode,长度小于1000字节
中国电信股份有限公司云计算分公司是中国电信旗下直属专业公司...
4、返回值
需要根据 Content-type 的头部来确定是否服务端合成成功。
若合成成功,响应 header 包含:
Content-type: audio/mpeg
sid: hts0000bb3f@ch3d5c059d83b3477200
响应 body 为音频数据,可写入文件保存,保存类型由入参的 aue 决定:
  • aue = raw, 音频文件保存类型为 wav
  • aue = lame, 音频文件保存类型为 mp3

若合成出现错误,响应 header 包含:
Content-type: text/plain
响应 body 为 json 字符串,json 字段如下:
参数
类型
说明
code
string
结果码
data
string
desc
string
描述
sid
string
会话ID
如果成功,示例如下:
header:
    Content-Type:audio/mpeg
    Connection:keep-alive
    Cache-Control:no-cache
    sid:hts0000bb3f@ch3d5c059d83b3477200
body:
    音频数据(二进制数组)
第三步:编写Demo,上面的信息接口文档如果能看明白,代码就能很很容易看懂了,把代码贴出来,如下:
33.jpg
第四步:执行代码,在执行代码前,要在自己的操作系统安装好Python和requests,执行结果如下:
44.jpg
下面是生成的WAV格式的语音文件和Demo源代码文件。
55.jpg
我把代码源文件和测试用的音频文件放在百度网盘里,关注公众号“云计算那点事儿”后,回复“语音合成”可见。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则