poner - reproducir audio en python
¿Qué es una forma de plataforma cruzada para reproducir un archivo de sonido en Python? (5)
Puedes usar wxPython
sound = wx.Sound(''sound.wav'')
sound.Play(wx.SOUND_SYNC)
o
sound.Play(wx.SOUND_ASYNC)
Aquí hay un ejemplo de la demostración de wxPython.
Intenté reproducir un archivo .wav usando pyaudio. Funciona muy bien en Windows, pero no funciona en Ubuntu cuando otro dispositivo está usando sonido.
El error es "IOError: [Error no dispositivo de salida no válido (no dispositivo de salida predeterminado)] -9996
¿Hay otra biblioteca que pueda tratar de usar? ¿Otro método?
No estoy del todo seguro de si cumple tus requisitos, pero de inmediato pensé que PyGame
http://www.pygame.org/docs/ref/mixer.html#pygame.mixer.Sound
from pygame import mixer
mixer.init()
s = mixer.Sound(''sound.wav'')
s.play()
¿Has mirado pymedia? Parece tan fácil como esto reproducir un archivo WAV:
import time, wave, pymedia.audio.sound as sound
f= wave.open(''YOUR FILE NAME'', ''rb'')
sampleRate= f.getframerate()
channels= f.getnchannels()
format= sound.AFMT_S16_LE
snd= sound.Output(sampleRate, channels, format)
s= f.readframes(300000)
snd.play(s)
while snd.isPlaying(): time.sleep(0.05)
Ref: http://pymedia.org/tut/play_wav.html
Por supuesto, puedes echar un vistazo a la wiki de Python en Audio ( http://wiki.python.org/moin/Audio/ ) para otras bibliotecas como https://docs.python.org/library/wave.html o de nuevo en la wiki de Python bajo Game Libraries ( http://wiki.python.org/moin/PythonGameLibraries ) que lo dirigirá a enlaces a OpenAL o Pygame que tiene módulos de sonido.
Y finalmente, aunque no conozco las limitaciones de pyaudio, su mensaje de error suena más como que la biblioteca no puede encontrar el dispositivo de salida predeterminado más de lo que el dispositivo está siendo utilizado por otro proceso. Tal vez eche un vistazo a qué dispositivo de salida devuelve get_default_output_device_info
de pyaudio y compárelo con cualquiera que sea su configuración predeterminada en Ubuntu.
Puedes probar Simpleaudio :
> pip install simpleaudio
Entonces:
import simpleaudio as sa
wave_obj = sa.WaveObject.from_wave_file("path/to/file.wav")
play_obj = wave_obj.play()
play_obj.wait_done()
Encontré playsound
para ser el más simple.
from playsound import playsound
synchronus = False
playsound(r"C:/Windows/Media/chimes.wav", synchronus)