阅读Python 3中的MP3

时间:2012-02-26 23:52:45

标签: python audio python-3.x mp3

我想做的只是

mp3 = read_mp3(mp3_filename)
audio_left = mp3.audio_channels[0]

其中audio_left将包含原始PCM音频数据。

我正在查看Play a Sound with Python,但大多数建议的模块尚未移植到Python 3。如果可能的话,我想避免安装一个完全成熟的游戏开发库。

我是一个完整的Python初学者,所以我想开始使用Python 3。

7 个答案:

答案 0 :(得分:11)

为了方便我将某些工具mp3转换为wav,或者:

$ ffmpeg -i foo.mp3 -vn -acodec pcm_s16le -ac 1 -ar 44100 -f wav foo.wav
or
$ mpg123 -w foo.wav foo.mp3

然后用one of the python WAV libraries阅读WAV。我建议使用PySoundFile,因为它可以正常使用大多数生成的WAV并且没有问题安装(而不是scikits.audiolab)。

注意:即使scipy.io.wavfile.read()给了我一个" WavFileWarning:不熟悉的格式字节"警告,它还正确加载文件。

答案 1 :(得分:6)

我正在考虑使用FFmpeg作为子进程。有一个名为pyffmpeg的Python包装器,但是我在系统上安装它时遇到了困难(OS X 10.7.3)。

您可能还想查看此处的代码,将FFmpeg作为Python的子进程调用:https://github.com/albertz/learn-midi/blob/master/decode.py

答案 2 :(得分:5)

我最终使用mpg123子进程将mp3转换为wav,然后使用scipy.io.wavfile.read来读取wav文件。

答案 3 :(得分:4)

可以使用pydub完成:

SELECT * FROM tags WHERE tagname LIKE '%[^-+a-z0-9]%'

答案 4 :(得分:1)

我认为最好的做到这一点并且与Python 3.x兼容的是:

https://pypi.python.org/pypi/mplayer.py/

我强烈建议您查看Darwin M. Bautista的gitgoogle code

这是一个例子(由他提供):

from mplayer import Player, CmdPrefix

# Set default prefix for all Player instances
Player.cmd_prefix = CmdPrefix.PAUSING_KEEP

# Since autospawn is True by default, no need to call player.spawn() manually
player = Player()

# Play a file
player.loadfile('mp3_filename')

# Pause playback
player.pause()

# Get title from metadata
metadata = player.metadata or {}
print metadata.get('Title', '')

# Print the filename
print player.filename

# Seek +5 seconds
player.time_pos += 5

# Set to fullscreen
player.fullscreen = True

# Terminate MPlayer
player.quit()

支持的音频编解码器列表:

  • MPEG第1,2和3层(MP3)音频
  • AC3 / A52,E-AC3,DTS(杜比数字)音频(软件或SP / DIF)
  • AAC(MPEG-4音频)
  • WMA(DivX Audio)v1,v2
  • WMA 9(WMAv3),Voxware音频,ACELP.net等(使用x86 DLL)
  • RealAudio:COOK,SIPRO,ATRAC3(使用Real库)
  • RealAudio:DNET和旧编解码器
  • QuickTime:Qclp,Q-Design QDMC / QDM2,MACE 3/6(使用QT库),ALAC
  • Ogg Vorbis音频
  • VIVO audio(g723,Vivo Siren)(使用x86 DLL)
  • alaw / ulaw,(ms)gsm,pcm,* adpcm等简单的旧音频格式

答案 5 :(得分:0)

您可以使用librosa:

import librosa
y, sr = librosa.load('your_file.mp3')

更多信息:https://github.com/librosa/librosa

答案 6 :(得分:0)

使用Python播放歌曲的代码

pip3 install python-vlc

下载python VLC软件包

代码-import vlc

#plays the song for 10 seconds

import vlc
import time

song = '/home/fsociety/Music/1.mp3'

playSong = vlc.MediaPlayer(song)
song.play()
time.sleep(10)

pip3安装playsound

import playsound

song = 'path_to_the_.mp3_file'

playsound.playsound(song)

就是这样!