Ubuntu下pyttsx3实现中文文字转语音的方法

要想实现语音合成功能,我们可以选择:

  • 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。