这是一个pydub 包的开发错误;中文环境里面的解决方案几乎都是胡说八道,我查看了pydub的代码后,给出如下解决方案,亲测有效。我的环境是 python3.6 pydub 0.23.1
这个问题首先是由于ffmpeg造成的
1. 下载而不是直接安装ffmpeg
下载地址是(http://ffmpeg.org/),这里需要注意的是下载ffmpeg的exe文件,而不是直接下载source code ,更不是使用pip install ffmpeg
2. 下载完成后,将exe文件解压到自定义位置,同时进入其bin子文件查看是否有ffmpeg.exe ffprobe.exe 以及ffplay.exe 在运行过程中需要使用前两者的路径
按照下面方式即可完成正常使用不会报错
测试代码如下:
from pydub import silence, AudioSegment
from pathlib import Path
import os, sys
import matplotlib.pyplot as plt
print (sys.version)
#AudioSegment.ffmpeg = os.getcwd()+"\\ffmpeg\\bin\\ffmpeg.exe"
AudioSegment.converter = r"D:\Program Files\ffmpeg-20200401-afa5e38-win64-static\bin\ffmpeg.exe"
AudioSegment.ffprobe = r"D:\Program Files\ffmpeg-20200401-afa5e38-win64-static\bin\ffprobe.exe"
#print (AudioSegment.converter)
#print (AudioSegment.ffprobe)
my_file = Path(r"G:\DataSet\2019\PMEmo2019\chorus\1.mp3")
audio = AudioSegment.from_mp3(my_file) # solves ***[WinError2]*** issue.
给出一张我的代码运行的截图,表明使用正常
------------------------------------------------------------------------------------------------------------------------------------------------------------
如果走到这一步还是报错,那么可能的原因是pycharm的版本以及pydub版本问题,通用的办法是将ffmpeg.exe 以及ffprobe.exe直接拷贝放到这个项目路径下即可