sound reproducir read playsound play python audio python-3.x mp3

reproducir - read mp3 python



Leer MP3 en Python 3 (5)

Creo que lo mejor para hacer esto y que también es compatible con Python 3.x es:

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

Te recomiendo que mires el código git o google de Darwin M. Bautista:

Y aquí hay un ejemplo de (según lo provisto por él):

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()

Lista de codecs de audio soportados:

  • Audio MPEG layer 1, 2, and 3 (MP3)
  • Audio AC3 / A52, E-AC3, DTS (Dolby Digital) (software o SP / DIF)
  • AAC (audio MPEG-4)
  • WMA (DivX Audio) v1, v2
  • WMA 9 (WMAv3), audio Voxware, ACELP.net, etc. (utilizando DLL x86)
  • RealAudio: COOK, SIPRO, ATRAC3 (usando bibliotecas Real)
  • RealAudio: DNET y codecs antiguos
  • QuickTime: Qclp, Q-Design QDMC / QDM2, MACE 3/6 (utilizando bibliotecas QT), ALAC
  • Audio Ogg Vorbis
  • Audio VIVO (g723, Vivo Siren) (usando DLL x86)
  • alaw / ulaw, (ms) gsm, pcm, * adpcm y otros formatos de audio antiguos simples

Lo que quiero hacer es simplemente

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

donde audio_left contendrá datos de audio PCM sin procesar.

Estaba mirando Reproducir un sonido con Python , pero la mayoría de los módulos sugeridos aún no están adaptados a Python 3. Si es posible, me gustaría evitar tener que instalar una biblioteca de desarrollo de juegos en toda regla.

Soy un completo principiante de Python, así que me gustaría comenzar a usar Python 3.


Estoy considerando usar FFmpeg como un subproceso. Hay un contenedor de Python llamado pyffmpeg, pero tuve dificultades para instalarlo en mi sistema (OS X 10.7.3).

También puede consultar el código aquí para llamar a FFmpeg como un subproceso de Python: https://github.com/albertz/learn-midi/blob/master/decode.py


Para hacerlo más fácil, convertiría con algunas herramientas mp3 a wav, ya sea:

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

Luego lee el WAV con una de las bibliotecas de Python WAV . Recomiendo PySoundFile porque funciona con la mayoría de los WAV generados e instalados sin problemas (a diferencia de scikits.audiolab ).

Nota: A pesar de que scipy.io.wavfile.read() me dio una advertencia de "WavFileWarning: Desconocido de bytes de formato", también cargó el archivo correctamente.


Se puede hacer con pydub:

import array from pydub import AudioSegment from pydub.utils import get_array_type sound = AudioSegment.from_file(file=path_to_file) left = sound.split_to_mono()[0] bit_depth = left.sample_width * 8 array_type = get_array_type(bit_depth) numeric_array = array.array(array_type, left._data)


Terminé usando un subproceso mpg123 para convertir el mp3 a wav, y luego uso scipy.io.wavfile.read para leer el archivo wav.