使用Speech Recognition库遇权限拒绝与ffmpeg错误求助
解决speech_recognition调用whisper时的权限拒绝错误
报错核心是系统临时目录的WAV文件无法访问,大概率是系统Temp目录权限受限或第三方软件拦截,以下是几种可行的解决方法:
1. 手动指定自定义临时目录(推荐)
在项目目录下创建一个完全可控的临时文件夹,将音频文件保存到该目录后再传给whisper,绕过系统Temp的权限问题。修改后的代码如下:
import speech_recognition as sr import os r = sr.Recognizer() # 创建项目内的临时目录(不存在则自动创建) temp_dir = os.path.join(os.getcwd(), "audio_temp") os.makedirs(temp_dir, exist_ok=True) with sr.Microphone() as source: print("Say something!") try: audio = r.listen(source, timeout=5) except sr.WaitTimeoutError: print("You didn't say anything") exit() # 将录制的音频保存到自定义临时目录 temp_audio_path = os.path.join(temp_dir, "temp_recording.wav") with open(temp_audio_path, "wb") as f: f.write(audio.get_wav_data()) # 传入自定义路径的音频文件进行识别 print("Did you say " + r.recognize_whisper(temp_audio_path))
2. 检查系统临时目录权限
打开C:\Users\s\AppData\Local\Temp文件夹,右键选择「属性」→「安全」标签页,确认当前用户(s)拥有读取、写入、修改权限。如果权限缺失,点击「编辑」按钮为当前用户添加对应权限。
3. 以管理员身份运行脚本
右键点击Python解释器、命令提示符或你的代码编辑器(如VSCode),选择「以管理员身份运行」,再执行脚本,尝试绕过系统权限限制。
4. 排查杀毒软件拦截
部分杀毒软件会限制程序访问系统临时目录,临时关闭杀毒软件后重新运行脚本。如果问题解决,将Python程序或项目目录添加到杀毒软件的信任列表中。
内容的提问来源于stack exchange,提问作者sally carlund
相关产品推荐
相关产品推荐

