0
Background:
Trying to do some audio processing in python3 in a docker image running on the cloud.
Problem:
PyAudio looks for ALSA and JACK audio servers, and ALSA at least needs to have a device.
Not Solutions:
I was initially trying to do it with only PulseAudio Sound Server but this is inadequate.
Sharing /dev/snd/ is not scalable, even if the cloud service happened to have a sound card installed it can only serve a limited number of users. This is the approach that most of the other questions end up recommending.
Possible Solutions on which I would like advice:
I understand that you can create a dummy soundcard in ALSA with the snd-aloop module. This has led to a number of further questions:
- getting access to this module necessitates having privileges that Iām not certain I will have on a cloud service, such as accessing the host machine and modprobing modules into the kernel
- I can try building the modules from source
JACK sound server as an alternative sound server. That is what I'll look into now, I just hope it isn't as problematic as an ALSA virtual server.
Other things to think about:
Perhaps I need to ditch PyAudio altogether?
My incoming audiostream can see pulseaudio, so perhaps https://pypi.org/project/pulsectl/
might be more useful, or something like https://github.com/kubikb/py-audio-docker
Note, per this issue on the page of pysoundio, you should be careful when mixing it with asynchronous libraries, or just in general im not sure exactly how widely that bug can be found
ā Fergus Fettes ā 2019-11-08T14:59:09.370