2016-05-17 142 views
0

我知道在PyAudio上可以选择播放什么播放设备,但PyAudio不支持mp3文件。我的脚本将工作,如果下列问题之一是解决:在Python中播放不使用默认输出(播放)设备的mp3文件

  1. 播放MP3文件上PyAudio

  2. 从MP3转换为无任何数据丢失,且无需PyDub(不含WAV转换与this method,我发现,在一个较长的音频,末端缺失)

  3. 不知何故从MP3文件到不同的播放设备播放声音(该设备是不是默认的)

我个人想解决第一个问题。

如果我可以在PyAudio上播放mp3文件而不会造成任何数据丢失或质量损失,我将不胜感激。

编辑:我发现,当我打我的MP3文件(这是顺便说一句,从谷歌文本到语音生成的文件),与PyMedia的结局也失踪了一些奇怪的原因所以也许转换方法(点2.)工作正常,但问题可能在其他地方。

+0

您是否尝试过除PyAudio之外的其他任何东西?您可能会发现这个答案有帮助:http://stackoverflow.com/a/26759539/295246 –

+0

@ HEADLESS_0NE我已经看到了答案(我做了一个研究)。关键是我找不到任何有关在其他播放设备上播放声音的文章。就我自己而言,我在PyAudio上发现了一种方法来选择我想从哪个播放设备播放声音。 –

+0

太棒了!您可以发布您的解决方案,对自己的问题有一个答案。也许它会在稍后帮助有同样问题的人。 –

回答

0

首先,您在答案中提到的link约为pymedia而不是pydub

接下来,我使用pydub将许多文件从mp3转换为wav,没有任何问题。

如果你想试试看,这里是一个单行代码,从mp3wav。您将可以使用选项2以这种方式使用其余代码。

from pydub import AudioSegment 
AudioSegment.from_file("audio.mp3", format="mp3").export("audio.wav", format="wav") 
+0

是的,我知道。我只是不想使用Pydub,所以我写了“AND没有PyDub”。无论如何,我不想使用PyDub,因为它需要安装ffmpeg,我试图避免让我的脚本依赖于其他软件。 –