大家好,超子今天又和大家见面了,能力有限,水平不高,有什么错误的地方,欢迎板砖。超子今天给大家介绍一下,如何使用阿里云平台的在线语音合成功能,实现文字到音频mp3文件的转换。阿里云有非常多的应用场景和发音人供我们选择,而且可以细调语速和语调,目前阿里云的接口我们可以免费试用,但是一次合成的文字不能超过300字。

本次实验只需要耐心和仔细就够了,不需要什么专业知识。如果有哪里不明白的也可以问我。

我们总共需要3个工具。

网络调试助手:在线语音合成功能,需要通过网络给阿里云发送合成请求,这个软件就是用来发送网络报文的。

WinHex软件:发送合成请求后,阿里云返回的是16进制数据,我们需要用这个软件把16进制数据写进mp3文件。

Windows系统自带的记事本:也就是txt文本文档,我们需要用它做utf-8格式的转换。




先看上图,我们找到阿里云语音合成功能的入口,在网站首页,选择产品分类->人工智能->语音合成



我们选择立即开通,可以免费试用,超子记得应该有2个月的免费试用期。



上图我们看到,可以开通的免费试用功能有不少,我们目前只关注语音合成功能即可。开通后我们进入管理控制台。



成功开通后,我们可以看到刚才的立即开通,变成了管理控制台,我们进入这个控制台。



管理控制台左侧的导航栏中,我们选择全部项目。



然后在全部项目页面中的右上角,我们创建项目。



我们自己给项目起个名字就行,然后点击保存。



然后我们进入到项目管理页面,选择语音合成功能,然后我们可以选择各种场景,每个场景内,都有不同的发音人,这会儿就需要我们自己根据喜好,选择喜欢的发音人,然后页面的下方,还可以细调发音人的语速,语调和音量。



页面的右侧,有一个小喇叭的图案,我们点击它,就可以进行试听,非常方便。当我们确定好具体的发音人和发音参数后,点击发布上线即可。



然后,我们要把发音人的名称以及3个参数记下来,我们下面就要用到了。

{"format":"mp3","appkey":"项目key","token":"密钥","voice":"发音人","speech_rate":"语速值","pitch_rate":"语调值","volume":"音量值","text":"需要合成的文字"}

上面就是需要发送给阿里云的请求,其中项目key、密钥、发音人、语速值、语调值、音量值以及需要合成的文字,就要根据自己的项目和需求进行设置了。



点击全部项目,然后右侧红圈中的内容就是项目key



然后再选择导航栏中的总览,然后页面的右上角我们可以看到,点击获取AccessToken,点击他后显示的就是密钥。



上图是发音人对应的列表,超子选择的是思诚,在上图找一下,思诚对应的是Sicheng,这个就是发音人。语速,语调和音量我们在发布上线的时候,都记下来了,分别是 -68,50,50。我需要合成的文字是“语音合成服务,通过先进的深度学习技术,将文本转换成自然流畅的语音。目前有多种音色可供选择,并提供调节语速、语调、音量等功能。适用于智能客服、语音交互、文学有声阅读和无障碍播报等场景”,所有需要替换的内容我们都准备好了,然后我们新建一个txt文档,在里面重新构建一下请求数据。



一定要小心仔细的替换数据,替换完毕后,我们点击另存为,一定是另存为。



选择编码方式UTF-8,然后点击保存即可。这时候我们需要发送给阿里云的请求数据就准备完毕了,接下来就是发送请求语音合成的报文,我们打开网络调试助手软件。



红圈1:选择TCP Client

红圈2:不用管,软件自动获取的电脑IP地址

红圈3:填写阿里云语音合成域名和端口 nls-gateway.cn-shanghai.aliyuncs.com :80

红圈4:点击连接



我们需要看一下刚才另存为的txt文档的大小,我们右键属性,看红圈中的数据是440字节。440这个数要用到,我们构建一下报文

POST /stream/v1/tts HTTP/1.1

HOST:nls-gateway.cn-shanghai.aliyuncs.com

Content-Type: application/json

Content-Length: 440

我们看到Content-Length后面跟着的数字就是440,这个一定要和自己的txt文档真实大小一样。

然后我们把上面的报文,复制到网络调试助手的发送框中。



我们要选择上十六进制显示,然后Content-Length:440后面一定要输入两个回车键,一定是两个回车。然后点击发送。



点击发送后,没有什么现象,然后我们马上选择启用文件数据源,然后在弹出的对话框中选择我们前面保存的txt文档。



然后点击发送按键,稍等一会,等待阿里云合成数据。



合成后,阿里云返回16进制数据,我们先找 0D 0A 0D 0A,如上图红圈中所示的数据, 0D 0A 0D 0A后面的数据就是我们要写进mp3文件的16进制数据。然后我们打开winhex软件。



红圈1:我们新建一个空白的文件

红圈2:空文件大小是1,这个没关系,我们一会追加数据

红圈3:点击确定就行



建立成功后,如上图所示,只有1个字节00,然后我们把网络调试助手中0D 0A 0D 0A后面所有的数据复制到winhex内。



注意复制的格式选择ASCII Hex,然后点击确定。



我们已经把数据追加进文件内,注意我们要把刚才的00删掉,00不是我们需要的数据。



然后我们点击保存,文件的扩展名是MP3,这个不要弄错了,如此一来,就能得到我们需要的mp3音频文件了。大家可以自己试试哦,有什么地方不明白的地方,可以问我。