Python PermissionError:[Errno 13]权限被拒绝:';voice.mp3';

Python PermissionError:[Errno 13]权限被拒绝:';voice.mp3';,python,bots,chatbot,Python,Bots,Chatbot,我正在尝试用Python创建一个聊天机器人VA,用于接收音频输出,我有gtts(谷歌文本到语音)、playsound软件包,并在播放之前使用系统操作系统保存音频文件 代码如下: 从gtts导入gtts 将语音识别作为sr导入 导入播放声音 导入操作系统以保存文件 导入时间 def speak(text):#定义函数speak并创建命令供其使用 tts=gTTS(text=text,lang=“en”) filename=“voice.mp3” 保存(文件名)#保存音频文件 playsound.p

我正在尝试用Python创建一个聊天机器人VA,用于接收音频输出,我有gtts(谷歌文本到语音)、playsound软件包,并在播放之前使用系统操作系统保存音频文件

代码如下:

从gtts导入gtts
将语音识别作为sr导入
导入播放声音
导入操作系统以保存文件
导入时间
def speak(text):#定义函数speak并创建命令供其使用
tts=gTTS(text=text,lang=“en”)
filename=“voice.mp3”
保存(文件名)#保存音频文件
playsound.playsound(文件名)
#函数到此结束
要播放音频,我按以下方式使用该功能:

>>>speak("I am speaking this text")
上面的^^^^工作得非常好,但是当我使用多个语句时,例如:

>>>speak("I am saying this")
>>>speak("And also this!")
它给出了一个错误:

PermissionError: [Errno 13] Permission denied: 'voice.mp3'

我认为这是由于匹配了音频文件的名称。但是,当我每次尝试使用循环更改数字时,在播放指定次数的音频后,它仍然显示错误。有人能给我一个解决办法吗?谢谢

听起来像是一个文件权限问题,当函数运行时,它正在覆盖现有文件

我将检查运行代码的用户/组是否具有读/写权限


如何执行此操作取决于您是否使用windows、mac或linux

不允许您从不同的函数调用覆盖文件
voice.mp3
。您需要做的是在播放voice.mp3文件后删除该文件。因此:

def speak(text):#这定义函数speak并创建用于该函数的命令
tts=gTTS(text=text,lang=“en”)
filename=“voice.mp3”
保存(文件名)#保存音频文件
playsound.playsound(文件名)
删除(文件名)

请确保您没有将文件存储在敏感位置,并且您的工作目录位于文档或下载或其他地方。

感谢您在我进行研究期间抽出时间回答这个问题,我发现了这种方法,而且效果很好。太棒了!我也很乐意帮忙