📜  Python文本转语音 | pyttsx 模块

📅  最后修改于: 2022-05-13 01:55:12.608000             🧑  作者: Mango

Python文本转语音 | pyttsx 模块

pyttsx是一个独立于平台的跨平台文本到语音库。使用这个库进行文本到语音转换的主要优点是它可以离线工作。但是, pyttsx仅支持Python 2.x。因此,我们将看到 pyttsx3 被修改为在Python 2.x 和Python 3.x 上使用相同的代码。

使用此命令进行安装:

pip install pyttsx3


用法 -
首先,我们需要导入库,然后使用init()函数对其进行初始化。此函数可能需要 2 个参数。
init(driverName string, debug bool)

  • drivername : [可用驱动程序的名称] Windows 上的sapi5 | MacOS 上的nsss
  • debug:启用或禁用调试输出

初始化后,我们将使用say()函数让程序说出文本。此方法也可能需要 2 个参数。
say(text unicode, name string)

  • text :您希望听到的任何文本。
  • name :为这个演讲设置一个名字。 (选修的)

最后,为了运行我们使用runAndWait()的语音,除非解释器遇到runAndWait() ,否则不会说出所有say()文本。

代码 #1:朗读文本

# importing the pyttsx library
import pyttsx3
  
# initialisation
engine = pyttsx3.init()
  
# testing
engine.say("My first code on text-to-speech")
engine.say("Thank you, Geeksforgeeks")
engine.runAndWait()


代码 #2:监听事件

import pyttsx3
  
def onStart():
   print('starting')
  
def onWord(name, location, length):
   print('word', name, location, length)
  
def onEnd(name, completed):
   print('finishing', name, completed)
  
engine = pyttsx3.init()
  
engine.connect('started-utterance', onStart)
engine.connect('started-word', onWord)
engine.connect('finished-utterance', onEnd)
  
sen = 'Geeks for geeks is a computer portal for Geeks'
  
  
engine.say(sen)
engine.runAndWait()

为什么是 pyttsx?
与其他文本转语音库不同,它可以离线工作。 pyttsx并没有将文本保存为音频文件,而是实际上在那里说话。这使得它更可靠地用于基于语音的项目。