要想实现语音合成功能,我们可以选择:
- 1. 各大人工智能平台的api接口
- 2. python深度学习自己训练模型
- 3. 调用第三方库
本文简述pyttsx3的使用方法及代码实例。 本文简述pyttsx3的使用方法及代码实例.
安装
笔者使用清华镜像源,用pip命令快速安装
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyttsx3
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pyttsx3
代码实现
import pyttsx3
import io
import sys
engine = pyttsx3.init()
# 获取语音包
voices = engine.getProperty('voices')
for voice in voices:
print ('id = {}\tname = {} \n'.format(voice.id, voice.name))
# 设置使用的语音包
engine.setProperty('voice', 'zh') #开启支持中文
# engine.setProperty('voice', voices[0].id)
# 改变语速 范围为0-200 默认值为200
rate = engine.getProperty('rate') #获取当前语速
engine.setProperty('rate', rate-40)
# 设置音量 范围为0.0-1.0 默认值为1.0
engine.setProperty('volume', 0.7)
# 预设要朗读的文本数据
line = "你好,世界!" #要播报的内容
engine.say(line)
# 朗读
engine.runAndWait()
注意:若 engine = pyttsx3.init() 处报错:
OSError: libespeak.so.1: cannot open shared object file: No such file or directory
需要安装 espeak驱动包
sudo apt-get install espeak
点评
在Ubuntu下,默认的这个语音包,是个歪果仁,说的中文确确实实是那种歪果仁说中文的感觉,而且整体音色机械音。
为啥Win和liunx播放效果如此区别呢?Windows上使用的是sapi5语音合成引擎,Mac OS X上是nsspeech合成器,eSpeak 其他平台上使用,即,linux上使用的espeak。