赞
踩
介绍一款python调用库,离线软件包pyttsx3 API,它能够将文字转化成语音文件。Python 中有多种 API 可用于将文本转换为语音。pyttsx3 是一个非常易于使用的工具,可将输入的文本转换为音频。与其它类似的库不同,它可以离线工作,并且与 Python 2 和 3 兼容。
安装 pyttsx3 API,请打开终端并写入:
pip install pyttsx3
该库依赖于 win32,因此我们在执行程序时可能会出现错误。为了避免这种情况,只需在您的环境中安装 pypiwin32 即可。
pip install pypiwin32
一些重要函数包括:
现在我们已经准备好编写一个将文本转换为语音的示例程序。
- # Python program to show
- # how to convert text to speech
- import pyttsx3
-
- # Initialize the converter
- converter = pyttsx3.init()
- # Set properties before adding
- # Things to say
- # Sets speed percent
-
- # Can be more than 100
- converter.setProperty('rate', 150)
- # Set volume 0-1
- converter.setProperty('volume', 0.7)
- # Queue the entered text
- # There will be a pause between
- # each one like a pause in
- # a sentence
-
- converter.say("Hello GeeksforGeeks")
- converter.say("I'm also a geek")
-
- # Empties the say() queue
- # Program will not continue
- # until all speech is done talking
-
- converter.runAndWait()
上述程序的输出将是一个声音,说“Hello GeeksforGeeks”和“I'm also a geek”。
我们将设置发动机的速率和音量。设置讲话的速率和音量:
- rate = engine.getProperty('rate')
- engine.setProperty('rate', rate-100)
默认情况下,速率是200,所以我们将其降低到100。速率是说话速率,200对我们来说很高。所以我们降低了它。
速率简单来说就是说话者说出文本的速度。设置速率后,我们将通过首先获取音量属性然后设置它来更改或设置音量。
- volume = engine.getProperty('volume')
- engine.setProperty('volume', volume+0.50)
默认音量为 1,即 100%,我们通过将 0.50 添加到从读取音量属性接收到的值,将其增加到 150%。
现在我们完成了这两个属性的设置,我们将调用 say(),语音现在将具有我们的参数,即 1x 速度和 1.50 音量。
- engine.say("Hello, This is the test for the pyttsx3")
- engine.runAndWait()
现在这个 runAndWait 对我们来说很重要。我们想要运行这个引擎,并继续运行,直到它完成所传递文本的 TTS。
假设您想将生成的声音从男性更改为女性。你怎样做呢?让我们来看看。
您会注意到,当您运行上述代码来实现文本到语音转换时,响应的声音是男性声音。要更改语音,您可以通过从引擎获取语音属性来获取可用语音列表,并且您可以根据系统中可用的语音更改语音。
要获取声音列表,请编写以下代码。
|
Output:
要更改语音,请使用 setProperty() 方法设置语音。上面找到的 Voice Id 用于设置语音。
下面是变声的实现。
|
现在,您可以根据需要在声音之间切换。您可以尝试运行 for 循环来将不同的语句分配给不同的声音。运行代码并享受结果。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。