python让你的文字会说话

liftword1周前 (05-13)技术文章4

网上有很多各式各样的听书软件,网站上也都语音播报功能。前几天突发奇想我能不能自己实现把小说朗读出来呢。经过几天的摸索终于实现了,现在就记录一下过程。这个功能主要是把文字转成语音朗读出来,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效果还可以,我们可以在电脑上安装其他语音包,应该也能达成想到的效果。

相关文章

Linux系统下,五大步骤安装Python

一、下载Python包网上教程大多是通过官方地址进行下载Python的,但由于国内网络环境问题,会导致下载很慢,所以这里建议通过国内镜像进行下载例如:淘宝镜像 http://npm.taobao.or...

linux安装python

linux安装python3.5.11.linux如果已经安装了python2.* 不要管它!!!2.安装依赖环境  一定要使用yum去安装!!! 因为有的包有依赖或者升级需要,使用rpm取消强制依赖...

1分钟搞定!Python超速工具uv换国内镜像,下载速度飙升10倍

1分钟搞定!Python超速工具uv换国内镜像,下载速度飙升10倍作为搞运维的老手,我太清楚 Python 包下载速度慢是啥滋味了。今天我来教你用 3 行代码给 uv 换上清华或者阿里云的镜像,这样就...

Linux和Windows下:Python Crypto模块安装方式区别

一、Linux环境下:from Crypto.Signature import PKCS1_v1_5 如果导包报错: ImportError: No module named 'Crypt...

linux下Python版HTTP服务器(用于分享文件)

1、在终端进入你想分享的文件夹中,然后输入:python -m SimpleHTTPServer 端口号如:python -m SimpleHTTPServer 80092、在别的机器的浏览器地址栏输...

Windows 10 20H2新特性概览:细节优化 提升使用体验

来源:cnBeta.COM微软计划在5月28日发布Windows 10 May 2020(Version 2004/20H1)功能更新。在该功能更新发布之后微软将开发重心迁移到20H2和21H1功能更...