首先让我解释一下我们将在本文中使用的一些缩写和一些基本术语。
对于那些不知道 TTS 是什么意思的人,它的意思是文本到语音。
我们想要做的是给我们的程序一些文本,它会将文本转换成语音并读给我们听。
换句话说,就是让计算机读给我们听。
现在有很多方法可以做这个TTS,但是这里我们将讨论一个库,我个人使用过并且取得了很好的效果。
我们将使用pyttsx3
。
pyttsx3
pyttsx3 是一个 Python 库,它允许我们将文本转换为语音。所以我们将向它提供我们的文本,它会将文本转换为音频。
它是几个文本到语音引擎的包装器,包括 Microsoft 的文本到语音 (TTS) 引擎。
现在让我们看看如何将这个库用于 TTS。
我们需要做的第一件也是最重要的事情是安装这个库,我们可以使用pip
来安装,它与 python 安装捆绑在一起。
此安装的语法类似于所有pip installs
。
pip install pyttsx3
如果万一此安装为您提供错误cmd not found
,请尝试使用pip3
而不是pip
,例如:
pip3 install pyttsx3
安装完成后,让我们通过运行以下命令检查它是否安装成功:
pip3 freeze
它将返回我们环境中安装的所有包的列表。如果你在这个列表中找到pyttsx3
,那么我们就成功安装了pyttsx3
,我们就可以在我们的项目中使用它了。
安装完成后,我们需要将这个库导入到我们的项目中,然后我们要初始化文本转语音引擎。这个引擎是最重要的部分,就是这个引擎要为我们做TTS。
Importing pyttsx3 and initializing the text-to-speech engine:
import pyttsx3
engine = pyttsx3.init()
.init()
是需要调用以初始化引擎的方法。
现在,当我们的引擎被初始化时,我们可以通过调用say(text)
方法将它用于我们的 TTS。
engine.say(text)
engine.runAndWait()
此语音文本的速度和音量将是默认值,我们可以通过以下方式更改它们。
我们所需要的只是为我们的引擎设置一些值。这就像告诉引擎使用什么。
因此,我们必须按以下方式执行此操作:
getProperty(name)
获取该属性setProperty(name, value)
设置该属性
我们将设置速率和引擎的音量。
设置语音的速率和音量:
rate = engine.getProperty('rate')
engine.setProperty('rate', rate-100)
默认情况下,rate是200,所以我们将它降低到100。rate就是说话的rate
,200对我们来说已经很高了。所以我们降低了它。
速率很简单,就是说话者说出文本的速度。
设置速率后,我们将通过首先获取音量属性然后设置它来更改或设置音量。
volume = engine.getProperty('volume')
engine.setProperty('volume', volume+0.50)
默认音量为 1,即 100%,我们将通过将 .50 添加到从读取音量属性接收到的值来将其增加到 150%。
现在我们完成了这两个属性的设置,我们将调用say()
并且语音现在将具有我们的参数,即1x
速度和1.50
音量。
engine.say("Hello, This is the test for the pyttsx3")
engine.runAndWait()
现在这个runAndWait
对我们很重要。我们要运行这个引擎,一直运行到它完成传递文本的 TTS。
此外,改变音量,我们也可以改变说话的声音。现在这里有2个声音。一种用于女声,一种用于男声。
我们将使用与之前相同的语法来设置我们的属性。
记住:
voices[0]
是男声。voices[1]
是女声。
让我们改变声音:
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[1].id)
我们需要调用所选语音的id
属性,然后一切就绪。
我们可以复制上面的代码,这次声音将是女性,而不是默认的男性。
完成参数设置和 TTS 测试后,我们现在可以保存生成的 TTS 的音频文件。
这次我们将调用.save_to_file
而不是调用.say()
并传递文本和输出文件的名称,我们希望将 TTS 音频保存到该文件中。
这一次,它不会大声朗读文本,而是将其保存到我们传递的名称的文件中。
engine.save_to_file("Hello, this is test for pyttsx3.", "test.mp3")
engine.runAndWait()
运行后,我们将有一个名为test.mp3
的文件,其中包含生成的 TTS。
此外,pyttsx3 还有其他几种方法和属性,可用于自定义文本到语音输出,例如设置音高、语言等。您可以在pyttsx3文档中找到有关这些的更多信息。
看,从文本甚至包含文本的文件生成 TTS 有多容易?
我们可以将这些生成的 TTS 用于各种目的,这是给你的。
我知道,现在您将能够轻松地执行此 TTS,并且您将使用它制作很棒的项目。
现在,做一件事,如果您喜欢我的内容并想保持联系,请在Twitter 上关注我。
感谢您阅读,享受内容。