
在前面 有用到pywin32
这个库很强大,上次只是用它来垮进程操作,这次,我们又要用到它来把文字转语音。其实Python除了用pywin32
来实现文字转语音,还有一个库叫pyttsx3
,它也可以实现文字转语音的功能,我们来挨个尝试一下吧。
由于之前安装过pywin32
,所以这里就直接开始使用吧,新建一个demo.py
文件
from win32com.client import Dispatch
speaker = Dispatch("SAPI.SpVoice")
speaker.Speak("成都市今天实况:28度 多云,湿度:56%,北风:1级。白天:29度,多云。 夜间:阴,22度,天气较热,墨迹天气建议您选择短袖上衣加七分裤的搭配,针织衫是进出空调房的必备单品。")
现在执行python demo.py
就可以调用windows的API来转换成语音。
接下来,我们再来见识一下pyttsx3
这个库
我们来看看它的基本操作
我们来按照教程来调用语音API
import pyttsx3
engine = pyttsx3.init()
pyttsx3.speak("成都市今天实况:28度 多云,湿度:56%,北风:1级。白天:29度,多云。 夜间:阴,22度,天气较热,墨迹天气建议您选择短袖上衣加七分裤的搭配,针织衫是进出空调房的必备单品。")
其实语音效果和pywin32
差不多,只不过它的方法更多,可以控制音速、改变声音、音量大小等,一般默认为女生,我们接下来把它保存为mp3
格式的语音文件
import pyttsx3
engine = pyttsx3.init()
engine.save_to_file('成都市今天实况:28度 多云,湿度:56%,北风:1级。白天:29度,多云。 夜间:阴,22度,天气较热,墨迹天气建议您选择短袖上衣加七分裤的搭配,针织衫是进出空调房的必备单品。', 'ppp.mp3')
engine.runAndWait()
运行脚本后,会在相应的目录生成ppp.mp3
的语音文件。这种也就只是拿来玩玩而已,真实场景需要的语音效果要求更好,所以需要用到比如腾讯
、京东
、百度
、科大讯飞
等这些大厂提供的语音合成API来合成语音,而且供多种声音选择,非常强大,当然,这是收费的,相对而言,腾讯的性价比应该是比较高的,有兴趣的可以去了解一下。
我只是记录我的学习过程,由于书读的少,可能很多地方表述或者是理解得不对,请轻喷并指正。