好的,现在我坚持将mp3转换为wav。我看到了不同的答案,但我想我会去使用pydub之一,我已经使用这几行代码做了
from pydub import AudioSegment AudioSegment.from_mp3("/input/file.mp3").export("/output/file.wav", format="wav")
但是当我运行上面的代码时,出现以下错误
C:\ Python27 \ lib \ site-packages \ pydub-0.14.2-py2.7.egg \ pydub \ utils.py:165:运行时警告:找不到ffmpeg或avconv-默认为ffmpeg,但可能不起作用 追溯(最近一次通话最后一次):文件stereo_to_mono()中的文件“ C:/Users/phourlhar/Desktop/VoiceDetector/yeah.py”,第7行 文件“ C:\ Users \ phourlhar \ Desktop \ VoiceDetector \ utils.py”,第25行,位于stereo_to_mono中 sound = AudioSegment.from_mp3(PROJECT_DIR+'\\files\\rec'+str(c)+'.mp3') from_file中的第346行的文件“ build \ bdist.win32 \ egg \ pydub \ audio_segment.py” init errread,errwrite中的文件“ C:\ Python27 \ lib \ subprocess.py”,第711行) _execute_child startupinfo中的文件“ C:\ Python27 \ lib \ subprocess.py”,第948行) WindowsError:[错误2]系统找不到指定的文件
C:\ Python27 \ lib \ site-packages \ pydub-0.14.2-py2.7.egg \ pydub \ utils.py:165:运行时警告:找不到ffmpeg或avconv-默认为ffmpeg,但可能不起作用
追溯(最近一次通话最后一次):文件stereo_to_mono()中的文件“ C:/Users/phourlhar/Desktop/VoiceDetector/yeah.py”,第7行
文件“ C:\ Users \ phourlhar \ Desktop \ VoiceDetector \ utils.py”,第25行,位于stereo_to_mono中
sound = AudioSegment.from_mp3(PROJECT_DIR+'\\files\\rec'+str(c)+'.mp3')
from_file中的第346行的文件“ build \ bdist.win32 \ egg \ pydub \ audio_segment.py”
init errread,errwrite中的文件“ C:\ Python27 \ lib \ subprocess.py”,第711行)
_execute_child startupinfo中的文件“ C:\ Python27 \ lib \ subprocess.py”,第948行)
WindowsError:[错误2]系统找不到指定的文件
我不知道为什么会引发此错误,因为我非常确定文件存在。虽然我有建议安装ffmpeg的答案,但我不知道以后是否会以任何方式影响应用程序的部署
该pydub模块使用ffmpeg或avconf程序进行实际转换。因此,您必须进行安装ffmpeg才能使其正常工作。
pydub
ffmpeg
avconf
但是,如果您不需要pydub其他任何东西,则可以使用内置subprocess模块来调用转换器程序,ffmpeg如下所示:
subprocess
import subprocess subprocess.call(['ffmpeg', '-i', '/input/file.mp3', '/output/file.wav'])
顺便说一下,这要求ffmpeg二进制文件位于$ PATH中的某个位置。
编辑 :用ffmeg,据我所知,您不能将立体声转换为单声道。您只能 选择 左或右声道。我假设这不是您想要的。
ffmeg
该sox程序 可以 将立体声转换为单声道:
sox
import subprocess subprocess.call(['sox', '/input/file.mp3', '-e', 'mu-law', '-r', '16k', '/output/file.wav', 'remix', '1,2'])
这将以16 kHz的速率进行采样,采样率为8位,从而为您提供16 kb / s。