Python使用pyttsx3调用getProperty()报参数过多错误如何解决
报错原因
pyttsx3库的getProperty()方法作用是获取指定属性的当前值,仅支持传入1个参数(目标属性的名称)。你在调用时额外传入了第二个参数100,不符合方法的参数要求,因此抛出参数数量不匹配的TypeError。
你原本的需求是修改语音语速,应该调用用来设置属性的setProperty()方法,而非获取属性的getProperty()。
解决方法
将错误行的getProperty替换为setProperty,同时补充修复代码中其他小问题(stop方法未执行、语音设置行的参数错误),修改后的完整代码如下:
import pyttsx3 # 该函数用于处理文本并转为语音播放 def speak(lis): voiceEngine = pyttsx3.init() # 设置语速为100,用setProperty而非getProperty voiceEngine.setProperty("rate", 100) # 如果要使用指定语音,修改setProperty第一个参数为'voice',示例如下 # voice_id = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\IVONA 2 Voice Brian22" # voiceEngine.setProperty('voice', voice_id) voiceEngine.say(lis) voiceEngine.runAndWait() # stop是方法,需要加括号执行 voiceEngine.stop() speak(lis = "Hello i am alpha, your personal digital assistant. how may i be of your assistance")
内容的提问来源于stack exchange,提问作者Swagata Acharjee
相关产品推荐
相关产品推荐

