调用自定义time()函数时pyttsx3无语音输出如何解决
pyttsx3调用自定义time函数无声音修复方案
核心错误原因
你的代码存在变量引用错误:你把格式化后的时间存在了大写开头的Time变量中,但调用speak()时传入的是小写的time,也就是你定义的time函数对象本身,pyttsx3无法对函数对象执行朗读操作,因此没有声音输出。
修复后代码
import pyttsx3 import datetime friday = pyttsx3.init() voice = friday.getProperty("voices") friday.setProperty('voice', voice[1].id) def speak(audio): friday.say(audio) friday.runAndWait() def time(): Time = datetime.datetime.now().strftime('%I:%M:%p') # 修正参数为存储时间的Time变量 speak(Time) time()
其他异常排查方案
如果修改后仍然没有声音,可按以下步骤排查:
- 检查设备音频输出是否正常,音量是否未开启
- 部分设备的可用语音包索引和预期不符,可尝试将
voice[1].id替换为voice[0].id测试 - 若运行时报数组越界错误,说明你的设备只有1个可用语音包,必须使用
voice[0].id
内容的提问来源于stack exchange,提问作者Jadon
相关产品推荐
相关产品推荐

