使用OpenAI-Whisper转录视频时遇FileNotFoundError问题求助
问题原因
你用os.listdir(directory)获取的是纯文件名,而model.transcribe()需要的是文件的完整路径。如果脚本运行时的当前工作目录(非脚本所在目录)和视频文件所在目录不一致,就会触发找不到文件的错误。
修复方案
修改代码,将文件名与脚本所在目录拼接成完整路径:
import whisper import os directory = os.path.dirname(os.path.abspath(__file__)) start = 0 videoList = [] for file in os.listdir(directory): if file.endswith('.mp4'): # 拼接视频文件的完整路径 full_video_path = os.path.join(directory, file) videoList.append(full_video_path) model = whisper.load_model('base') for video in videoList: start += 1 result = model.transcribe(video) # 给输出文件也指定完整路径,确保生成在脚本同目录下 output_file_path = os.path.join(directory, f"Video {start} transcription.txt") with open(output_file_path, "w", encoding="utf-8") as f: f.write(result["text"] + '\n')
额外说明
- 添加
encoding="utf-8"是为了避免中文等非ASCII字符写入文件时出现编码错误 - 输出文件指定完整路径,能确保转录文件和视频文件保存在同一目录,方便管理
内容的提问来源于stack exchange,提问作者aloo_q
相关产品推荐
相关产品推荐

