含辞未吐,声若幽兰,史上最强免费人工智能AI语音合成TTS服务微软Azure(Python3.10接入)

所谓文无第一,武无第二,云原生人工智能技术目前呈现三足鼎立的态势,微软,谷歌以及亚马逊三大巨头各擅胜场,不分伯仲,但目前微软Azure平台不仅仅只是一个PaaS平台,相比AWS,以及GAE,它应该是目前提供云计算人工智能服务最全面的一个平台,尤其是语音合成领域,论AI语音的平顺、自然以及拟真性,无平台能出其右。
本次,我们通过Python3.10版本接入Azure平台语音合成接口,打造一款本地的TTS服务(文本转语音:Text To Speech)。
准备工作
首先根据Azure平台官方文档:https://learn.microsoft.com/zh-cn/azure/cognitive-services/speech-service/get-started-text-to-speech?tabs=macos%2Cterminal&pivots=programming-language-python
图片
需要注意的是,任何时候都不要将秘钥进行传播,或者将秘钥写入代码并且提交版本。
这里相对稳妥的方式是将秘钥写入本地系统的环境变量中。
Windows系统使用如下命令:
Linux系统使用如下命令:
Mac系统的bash终端:
编辑 ~/.bash_profile,然后添加环境变量
添加环境变量后,请从控制台窗口运行 source ~/.bash_profile,使更改生效。
Mac系统的zsh终端:
编辑 ~/.zshrc,然后添加环境变量
如此,前期准备工作就完成了。
本地接入
确保本地Python环境版本3.10以上,然后安装Azure平台sdk:
创建test.py文件:
这里定义语音的配置文件,通过os模块将上文环境变量中的秘钥取出使用,region就是新建语音资源时选择的地区,audio_config是选择当前计算机默认的音箱进行输出操作。
接着,根据官方文档的配置,选择一个语音机器人:https://learn.microsoft.com/zh-cn/azure/cognitive-services/speech-service/language-support?tabs=stt-tts#prebuilt-neural-voices
单以中文语音论,可选择的范围还是相当广泛的。
继续编辑代码:
这里我们选择zh-CN-XiaomoNeural作为默认AI语音,并且将text文本变量中的内容通过音箱进行输出。
如果愿意,我们也可以将语音输出为实体文件进行存储:
这里指定file_config配置为脚本相对路径下的output.wav文件:
如此,音频文件就可以被保存起来,留作以后使用了。
语音调优
默认AI语音听多了,难免会有些索然寡味之感,幸运的是,Azure平台提供了语音合成标记语言 (SSML) ,它可以改善合成语音的听感。
根据Azure官方文档:https://learn.microsoft.com/zh-cn/azure/cognitive-services/speech-service/speech-synthesis-markup
通过调整语音的角色以及样式来获取定制化的声音:
这里将语音文本改造为SSML的配置格式:
通过使用style和role标记进行定制,同时使用rate属性来提升百分之十二的语速,从而让AI语音更加连贯顺畅。注意这里使用ssml=text来声明ssml格式的文本。
结语
人工智能AI语音系统完成了人工智能在语音合成这个细分市场的落地应用,为互联网领域内许多需要配音的业务节约了成本和时间。