Python使用Pydub将mp3转换为wav

2024-05-16 19:39:08 发布

您现在位置:Python中文网/ 问答频道 /正文

好吧,现在我正忙着把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: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work

Traceback (most recent call last): File "C:/Users/phourlhar/Desktop/VoiceDetector/yeah.py", line 7, in stereo_to_mono()

File "C:\Users\phourlhar\Desktop\VoiceDetector\utils.py", line 25, in stereo_to_mono

sound = AudioSegment.from_mp3(PROJECT_DIR+'\\files\\rec'+str(c)+'.mp3')

File "build\bdist.win32\egg\pydub\audio_segment.py", line 346, in from_file

File "C:\Python27\lib\subprocess.py", line 711, in init errread, errwrite)

File "C:\Python27\lib\subprocess.py", line 948, in _execute_child startupinfo)

WindowsError: [Error 2] The system cannot find the file specified

我不知道它为什么会引发这个错误,因为我非常确定这个文件存在。虽然我有建议安装ffmpeg的答案,但我不知道以后是否会以任何方式影响应用程序的部署


Tags: to答案infrompyliblinemp3
2条回答

你一定要去pydub,它是一个伟大的模块与音频文件相关的操作。

注意。请记住在使用pydub之前安装ffmpeg。

有关安装ffmpeg的帮助,可以使用这个link

然后要安装pydub,只需打开命令提示符并键入

pip install pydub

然后要将任何文件从mp3转换为wav,只需使用pydub

import pydub
sound = pydub.AudioSegment.from_mp3("D:/example/apple.mp3")
sound.export("D:/example/apple.wav", format="wav")

pydub模块使用ffmpegavconf程序进行实际转换。因此,您必须安装ffmpeg才能正常工作。

但是,如果您不需要pydub来执行任何其他操作,您可以使用内置的subprocess模块来调用类似ffmpeg的转换器程序,如下所示:

  import subprocess

  subprocess.call(['ffmpeg', '-i', '/input/file.mp3',
                   '/output/file.wav'])

顺便说一下,这要求ffmpeg二进制文件位于$PATH中的某个位置。

编辑:据我所知,使用ffmeg,您无法将立体声转换为单声道。您只能选择左声道或右声道。我想这不是你想要的。

^{}程序可以将立体声转换为单声道:

  import subprocess

  subprocess.call(['sox', '/input/file.mp3', '-e', 'mu-law', 
                   '-r', '16k', '/output/file.wav', 'remix', '1,2'])

这将采样16千赫,8位/采样,给你16千字节/秒

相关问题 更多 >