【发布时间】:2017-02-10 15:35:10
【问题描述】:
写入音频文件时出现错误。
基本上,每当我的函数被调用然后播放时,我都会覆盖 mp3 中的数据。
它第一次运行,但随后给了我[Errno 13] Permission denied: 'file.mp3'。
代码如下:
def speech(self, response):
audio_file = "response.mp3"
tts = gTTS(text=str(response), lang="en")
tts.save(audio_file)
pygame.mixer.init()
pygame.mixer.music.load(audio_file)
pygame.mixer.music.play()
tts.save 行有错误。
更多信息:
Traceback (most recent call last):
File "myprojectpath", line 63, in speech
tts.save(audio_file)
File "C:\Python35\lib\site-packages\gtts\tts.py", line 93, in save
with open(savefile, 'wb') as f:
谢谢!
【问题讨论】:
-
可能是程序(播放它)阻止了对文件的访问。
-
有办法测试吗?
-
您是否以管理员身份启动 python 脚本? Windows 用户是否有权访问此文件?这里是验证访问文件或文件夹superuser.com/questions/117902/…的进程的方法你之前是否在脚本中打开过这个文件?
-
我不相信这些都是问题,因为我尝试在管理员中运行 Pycharm,如果它至少执行一次,它显然可以访问文件并写入它,我从来没有真正打开它。唯一一次编辑是在提供的代码中。
-
在尝试重写文件之前,您是否曾经调用过 pygame.mixer.music.stop()?如果 pygame 仍然打开文件以读取它,则可能会在您尝试覆盖文件时产生干扰。
标签: python pygame mp3 text-to-speech