在 ubuntu 20.04 LTS 上运行 pyttsx3 代码时,espeak 文本转语音听起来很奇怪

在 ubuntu 20.04 LTS 上运行 pyttsx3 代码时,espeak 文本转语音听起来很奇怪

我对 Linux 还不熟悉,我尝试运行这个 Python 代码。第一次它要求我安装 libespeak-dev 并尝试再次运行代码。安装后,当我运行代码时,声音非常奇怪,非常机械,听起来很糟糕。代码如下:

import pyttsx3

engine = pyttsx3.init()


def speak(text):
    engine.say(text)
    engine.runAndWait()


speak("Hello World and this is a test.")

当我尝试在 Windows 10 上使用相同的 Python 版本运行相同的代码时,听起来很正常,但是当我尝试在 ubuntu 20.04 LTS 上运行代码时,听起来非常糟糕。

由于某些原因,我无法附加 mp3 文件来告诉您它听起来有多糟糕。顺便说一下,我使用的是 Ubuntu 20.04 LTS,它默认安装的是 python 3.8.5。有什么解决办法吗?因为听起来很糟糕。提前谢谢...

答案1

我在编译程序时也遇到过类似的问题贾维斯在Ubuntu20.04 LTS中就是这样的,而且声音非常糟糕,所以经过一番研究,我找到了一个解决方案。

你编写的代码可以在 Windows 等操作系统中正常运行,因为根据pyttsx3库以下是不同操作系统中使用的驱动程序

  • sapi5 - Windows 上的 SAPI5
  • nsss - Mac OS X 上的 NSSpeechSynthesizer
  • espeak - 其他所有平台上的 eSpeak(Linux)

因此,当你在 ubuntu20.04 中进行编译时,首先,你需要下载 espeak

$ sudo apt-get install espeak

您可以使用如下代码:

import pyttsx3

engine = pyttsx3.init("espeak")
voices = engine.getProperty('voices')
engine.setProperty('voice',voices[11].id) #English

def speak(text):
    engine.say(text)
    engine.runAndWait()


speak("Hello World and this is a test.")

第 4 行voices[11].id用于声明输出语音语言,现在设置为英语,通过更改索引,语言将发生变化。要查看说话模块在终端中运行以下命令

sudo espeak --voices

最后,你可以听到一些比初始语音更好理解的输出语音。

相关内容