2010-06-15 126 views
13

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

+0

解压MP3不是一个合适的任务在Python中实现。 – 2010-06-16 00:46:02

+1

据我所知,没有人曾试图用Python编写MP3解码器。由此产生的解码器会非常慢,而且无论如何这个项目都没有意义。更自然的事情就是制作一个包装C库的Python模块。重新使用已经编写且已经调试过的C代码,不要试图重新发明轮子。我也爱Python,但有些项目不适合Python,而MP3解码器就是其中之一。 – steveha 2010-06-16 02:05:00

回答

-1

在上sbery2A的答案评论,你说你想放的MP3解码功能,到谷歌应用程序引擎。

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

App Engine确实有一个Java API。我刚刚检查并发现了一个Java MP3 decoder,它是LGPL,因此您不必担心许可证。

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

+0

谢谢。我一定会考虑这一点。虽然无法从Python运行Java,但可以使用Java部署单独的版本,并使Python版本与Java版本进行通信。 – yydl 2010-06-16 03:19:38

+0

你可以用Jython编写你的应用程序,它可以让你编写运行在JVM上的Python代码。该语言与python非常相似,但它也允许直接与java类互操作。 – 2011-10-30 18:31:15

+1

我刚刚检查过,Google App Engine不仅允许Java代码,而且还支持编译为Java字节码并在JVM上运行的语言。所以,Jython应该是一个选择。 – steveha 2011-11-01 07:28:13

3

您可以考虑看看这个:
Python Audio Tools

+0

我的意思是一个纯Python的方法 – yydl 2010-06-15 22:43:58

+0

但是,无论如何,感谢您的帮助和快速的答案。 – yydl 2010-06-15 22:44:48

+0

为什么*纯python *? – 2010-06-15 22:46:56

5

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

然而,正如笔者所指出的,这实在是太慢了(他的机器上实时慢约10倍)。

+0

“比实时慢10倍”真的吗?;) – Risadinha 2015-09-16 14:23:30

34

我维护一个开源库,pydub,它可以帮助你。

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

警告:它使用的ffmpeg处理音频格式转换(除wav文件,其中原生蟒处理)。

注意:你可能不应该在GAE上做这种转换:/即使它确实支持ffmpeg。 EC2将是一个很好的匹配的工作,虽然

+0

你不知道这使我的项目有多棒。谢谢! :) – Makoto 2013-02-22 05:43:40

+0

这不会将wav转换成mp3吗?这个问题要求mp3到wav。 – 2013-12-20 05:12:41

+0

@ someone-or-other oops你是对的,虽然它只是改变代码中提到的格式(我现在已经修复它) – Jiaaro 2013-12-20 18:06:51