📅  最后修改于: 2023-12-03 14:46:48.756000             🧑  作者: Mango
当使用 pyttsx3 库时出现 NameError: name 'voices' is not defined
错误,这通常是由于在代码中未正确定义 'voices' 变量造成的。此错误可能是以下两种情况之一:
下面是解决该问题的几种方法:
import pyttsx3
# 初始化 pyttsx3 引擎
engine = pyttsx3.init()
# 获取系统中的语音列表
voices = engine.getProperty('voices')
# 打印语音列表
for voice in voices:
print(voice.id)
确保在获取语音列表之前正确初始化了 pyttsx3 引擎,然后使用 engine.getProperty('voices')
获取语音列表。
import pyttsx3
# 初始化 pyttsx3 引擎
engine = pyttsx3.init()
# 获取系统中的语音列表
voices = engine.getProperty('voices')
# 设置使用的语音
engine.setProperty('voice', voices[0].id)
# 语音输出测试
engine.say("Hello, World!")
engine.runAndWait()
同样,确保在获取语音列表并设置使用的语音之前正确初始化了引擎。
import pyttsx3
# 初始化 pyttsx3 引擎
engine = pyttsx3.init()
# 指定语音路径
voice_path = 'path/to/voice'
# 设置使用的语音
engine.setProperty('voice', voice_path)
# 语音输出测试
engine.say("Hello, World!")
engine.runAndWait()
在某些情况下,可能需要手动指定语音的路径。使用 engine.setProperty('voice', voice_path)
来指定使用的语音。