python让你的文字会说话
网上有很多各式各样的听书软件,网站上也都语音播报功能。前几天突发奇想我能不能自己实现把小说朗读出来呢。经过几天的摸索终于实现了,现在就记录一下过程。这个功能主要是把文字转成语音朗读出来,Python支持的文字转语音的库有很多,这里就介绍常用的几种。
win32com库
win32com库本质是调用Windows电脑本身的语音功能,比较简单,仅仅几行代码就可以实现了。但是不能进行语速、音量控制,而且声音是机器声,比较生硬。
代码实现如下:
win32com.client winspeak = win.Dispatch()speak.Speak()speak.Speak()
pyttsx3库
pyttsx3也是一款文本到语音的转换库,可以脱机工作,与Python2和Python3都兼容。pyttsx3可以实现语速、音量控制,可以调用系统的语音包朗读文本,可以保存为音频文件。
代码实现如下图所示:
代码运行结果如下图所示:
可以看到我们已经生成tssx3.mp3文件,从打印看到我的系统只有两个语音包,一个中文,一个英文。voices[0]是中文,支持朗读中文和英文,voices[1]是英文,只支持英文,读取中文时没有声音。
baidu-aip库
baidu-aip是百度推出的语音合成库,百度智能云有语音合成接口,可以在Python中直接调用,有多种声音可供选择,可以成熟男音也可以撒娇萝莉音。
安装baidu-aip
pip install baidu-aip
调用百度语音合成接口
百度智能云语音合成地址:
https://ai.baidu.com/tech/speech/tts
只要有百度账户就可以登录,点击“立即使用”进入控制台总览,如下图:
点击“应用列表”进入进入列表页面,我这是已经创建了一个应用,如下图:
刚进入的用户需要点击“创建应用”进入应用创建页面,如下图所示:
填入应用名称,勾选要使用的接口,然后点击“立即创建”,就完成应用创建了。创建完成返回应用列表页面,在上面可以看到刚创建应用的AppID,API Key,Secret Key。返回控制台总览页面,服务列表右边有个“免费领取资源”链接,点击进去可以领取接口使用。
点击“API在线调试”进入接口调试页面,选择语音技术,语音合成,如下图所示:
这里就是文本合成语音的接口,技术文档详细介绍了参数的传值规则。
代码实现:win32com.client winspeak = win.Dispatch()speak.Speak()speak.Speak()
根据接口文档我们写一个简单的调用接口的代码,我们需要传入AppID,API Key,Secret Key的值,per的值表示男声女声,度小宇=1,度小美=0,度逍遥(基础)=3,度丫丫=4,度小宇度小美的普通的声音,度逍遥度丫丫是有感情的声音。
总结:
以上就是文本转音频的几种方法了,baidu-aip的效果最好,但百家语音合成接口只免费一段时间,这段时间过后需要收费。pytssx3效果还可以,我们可以在电脑上安装其他语音包,应该也能达成想到的效果。