我正在尝试建立一个语音助手。我正面临着一个问题与playsound库。请查看我的代码片段。
def respond(output):
"""
function to respond to user questions
"""
num=0
print(output)
num += 1
response=gTTS(text=output, lang='en')
file = str(num)+".mp3"
response.save(file)
play(file, True) #playsound import playsound as play
if __name__=='__main__':
respond("Hi! I am Zoya, your personal assistant")
我的音频文件正在生成,但是在play(file,True)这行,它抛出以下错误:
---------------------------------------------------------------------------
CalledProcessError Traceback (most recent call last)
<ipython-input-52-be0c0a53e7e6> in <module>()
1 if __name__=='__main__':
----> 2 respond("Hi! I am Zoya, your personal assistant")
3
4 while(1):
5 respond("How can I help you?")
6 frames
/usr/lib/python3.7/subprocess.py in check_call(*popenargs, **kwargs)
361 if cmd is None:
362 cmd = popenargs[0]
--> 363 raise CalledProcessError(retcode, cmd)
364 return 0
365
CalledProcessError: Command '['/usr/bin/python3', '/usr/local/lib/python3.7/dist-packages/playsound.py', '1.mp3']' returned non-zero exit status 1.
如何解决这个问题?我还想提一下,我正在谷歌合作。
尝试安装PyObjC库来弥合python和objective C之间的差距。Playsound库使用依赖于PyObjC库的子进程。当它返回退出状态1时,这意味着由于某些依赖项不可用,它无法完成该进程。
这是我对堆栈溢出的第一个回答,请不要介意任何错误。
我认为你可以使用PyObjC,然而,这只适用于MacOS。这并不一定能解决Windows的问题。