Sound system¶
PulseAudio is a requirement and has to be up and running on the host (not inside the containers) to expose a socket (for communication) and a cookie (for authentication) to allow the containers to have access to the microphone (input device) and speakers (output device).
On modern Linux distribution, PipeWire now handles the sound stack on the system.
Sound server auto-detection
ovos-docker
supports both native PulseAudio and PipeWire, the containers will automatically detect which sound server is running on the operating system.
Mac OS and Windows¶
If you are running an operating system other Linux such as Mac OS or Windows, then PulseAudio will have to be installed to act as a gateway between the containers and the OS.
Permissions¶
The user running the containers must be part of the audio
system group (depending the Linux distribution).
PulseAudio files permissions
Check the permissions for ~/.config/pulse/
and /run/user/1000/pulse
directories, they should belong to the user running the stack (where 1000
is your user ID), not to root
user.
If you are running on Mac OS, there is no /run/user/1000/
directory.
Validation¶
pactl
is a PulseAudio command shipped with the pulseaudio-utils
package and pw-cli
is a PipeWire command shipped with pipewire-utils
or pipewire-bin
depending your distribution.
These commands provide information about the status of PulseAudio or PipeWire.
List microphones¶
At least one of the sources (microphones/audio input) returned, should match the Default Source
line from the pactl info
command or the Audio/Source
line from the wpctl status
command.
List speakers¶
At least one of the sinks (speakers/audio output) returned, should match the Default Sink
line from the pactl info
command or the Audio/Sink
line from the wpctl status
command.