使用Python pydub模块转换MP3至WAV时出现FileNotFoundError
MP3转WAV格式时pydub报错的解决方法
问题描述
我尝试使用Python的pydub模块将MP3文件转换为WAV格式,但运行代码时出现错误。
我的代码
from pydub import AudioSegment src = "my_result.mp3" dst = "final.wav" sound = AudioSegment.from_mp3(src) sound.export("final.wav", format="wav")
报错信息
C:\Users\91630\AppData\Local\Programs\Python\Python311\Lib\site-packages\pydub\utils.py:170: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning) C:\Users\91630\AppData\Local\Programs\Python\Python311\Lib\site-packages\pydub\utils.py:198: RuntimeWarning: Couldn't find ffprobe or avprobe - defaulting to ffprobe, but may not work warn("Couldn't find ffprobe or avprobe - defaulting to ffprobe, but may not work", RuntimeWarning) Traceback (most recent call last): File "c:\Users\91630\Searches\SciTech Dropbox\meruvu likith\PC\Desktop\python temp\mp3_wav.py", line 6, in <module> sound = AudioSegment.from_mp3(src) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\91630\AppData\Local\Programs\Python\Python311\Lib\site-packages\pydub\audio_segment.py", line 796, in from_mp3 return cls.from_file(file, 'mp3', parameters=parameters) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\91630\AppData\Local\Programs\Python\Python311\Lib\site-packages\pydub\audio_segment.py", line 728, in from_file info = mediainfo_json(orig_file, read_ahead_limit=read_ahead_limit) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\91630\AppData\Local\Programs\Python\Python311\Lib\site-packages\pydub\utils.py", line 274, in mediainfo_json res = Popen(command, stdin=stdin_parameter, stdout=PIPE, stderr=PIPE) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\91630\AppData\Local\Programs\Python\Python311\Lib\subprocess.py", line 1022, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, File "C:\Users\91630\AppData\Local\Programs\Python\Python311\Lib\subprocess.py", line 1491, in _execute_child hp, ht, pid, tid = _winapi.CreateProcess(executable, args, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [WinError 2] 系统找不到指定的文件
问题原因
pydub本身不处理音频编码解码,依赖ffmpeg工具完成底层的音频格式转换工作。报错中的警告已经明确提示找不到ffmpeg或ffprobe,最终导致系统无法启动对应进程,抛出FileNotFoundError。
解决步骤
- 下载ffmpeg
前往ffmpeg官方平台下载适配Windows系统的压缩包,解压到本地任意目录(例如C:\ffmpeg)。 - 配置系统环境变量
打开系统属性→高级→环境变量,在系统变量的Path中添加ffmpeg解压目录下的bin文件夹路径(例如C:\ffmpeg\bin)。添加完成后重启命令行或IDE,确保环境变量生效。 - 验证配置
打开命令提示符,输入ffmpeg -version,若能正常显示ffmpeg的版本信息,说明配置成功。 - 重新运行代码
再次执行你的Python代码,即可完成MP3到WAV的格式转换。
内容的提问来源于stack exchange,提问作者KARTX LEGEND YT
相关产品推荐
相关产品推荐

