如何在Python中将MP3转换为WAV

时间:2010-06-15 22:36:05

标签: python mp3

如果我有MP3文件,我该如何将其转换为WAV文件? (最好使用纯python方法)

6 个答案:

答案 0 :(得分:60)

我维护了一个开源库pydub,它可以帮助你解决这个问题。

from pydub import AudioSegment
sound = AudioSegment.from_mp3("/path/to/file.mp3")
sound.export("/output/path/file.wav", format="wav")

一个警告:它使用ffmpeg来处理音频格式转换(除了wav文件,python本身处理这些文件)。

注意:您可能不应该在GAE上执行此转换:/即使它 支持ffmpeg。虽然

,EC2将是一个很好的匹配工作

答案 1 :(得分:5)

我偶然发现了一个真正的纯Python实现:

然而,正如作者所指出的,它真的很慢(在他的机器上比实时慢10倍)。

答案 2 :(得分:3)

如何看待这个:
Python Audio Tools

答案 3 :(得分:3)

这对我有用:

import subprocess
subprocess.call(['ffmpeg', '-i', 'audio.mp3',
                   'audio.wav'])

答案 4 :(得分:2)

安装模块pydub。这是Python的音频处理模块。该模块可以打开许多多媒体音频和视频格式。您可以使用pip安装此模块。

pip install pydub

如果尚未安装ffmpeg,请安装它。您可以使用包裹管理器来做到这一点。

对于Ubuntu / Debian Linux:

apt-get install ffmpeg

准备好后,执行以下代码:

from os import path
from pydub import AudioSegment

# files                                                                         
src = "transcript.mp3"
dst = "test.wav"

# convert wav to mp3                                                            
sound = AudioSegment.from_mp3(src)
sound.export(dst, format="wav")

检查此link以获得详细信息。

答案 5 :(得分:-3)

在对sbery2A答案的评论中,你说你想把一个MP3解码功能放到Google App Engine中。

您唯一可能的希望是使用Python将MP3数据发送到另一台服务器,并在该服务器上进行MP3解码,然后将解码后的数据发送回App Engine服务器。通过在服务器上实际进行MP3解码,Google不会让你对App Engine服务器的CPU造成沉重的负担。谷歌也阻止你运行任何C代码;请参阅App Engine常见问题解答。您甚至不允许生成子流程或使用Python线程。

App Engine确实有Java API。我刚检查并发现Java MP3 decoder,它是LGPL,所以你不必担心许可证。

我不知道是否有任何方法可以从App Engine中的Python代码调用Java代码,但您可能会尝试查看。