hamiltron/py-simple-audio

Simple Audio multiprocessing Error opening PCM device. -- CODE: -5

Opened this issue · 0 comments

I'm using Ubuntu 20.04.

After installing simple audio pip install simpleaudio the following code started to generate an error:

Test without process
Test with process
starting
Process Process-1:
Traceback (most recent call last):
  File "/usr/lib/python3.8/multiprocessing/process.py", line 315, in _bootstrap
    self.run()
  File "/usr/lib/python3.8/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "my_code.py", line 9, in play_audio
    play(wavf)
  File "/home/marvin/.local/lib/python3.8/site-packages/pydub/playback.py", line 53, in play
    playback = _play_with_simpleaudio(audio_segment)
  File "/home/marvin/.local/lib/python3.8/site-packages/pydub/playback.py", line 43, in _play_with_simpleaudio
    return simpleaudio.play_buffer(
  File "/home/marvin/.local/lib/python3.8/site-packages/simpleaudio/shiny.py", line 60, in play_buffer
    play_id = _sa._play_buffer(audio_data, num_channels, bytes_per_sample,
_simpleaudio.SimpleaudioError: Error opening PCM device. -- CODE: -5 -- MSG: Input/output error

audio_file to test

from multiprocessing import Process
from pydub import AudioSegment
from pydub.playback import play

name = "audio.wav"

def play_audio():
    wavf= AudioSegment.from_wav(name)
    play(wavf)

if __name__ == "__main__":

    print("Test without process")
    play_audio()

    print("Test with process")
    s_task=Process(target=play_audio)
    s_task.start()
    print("starting")
    s_task.join()