Skip to content

pipewire audio ducking #245

@JarbasAl

Description

@JarbasAl

from our chats


to enable pulse ducking, set your mycroft.conf

"tts": {"pulse_duck": true}

then sounds played by ovos will set

ENVIRONMENT['PULSE_PROP'] = 'media.role=phone'

if theres some equivalent for pipewire, let me know, or PR welcome https://github.com/OpenVoiceOS/ovos-utils/blob/dev/ovos_utils/sound.py#L22


https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/188
https://pipewire.pages.freedesktop.org/wireplumber/daemon/configuration/features.html#policies

not sure if 'PULSE_PROP' needs renaming? the functionality seems to be there


issue demonstration:

I'll try to express myself more clearly: A week ago I had Ubuntu 22.04 with pulseaudio as sound server on my desktop system. I have Internet radio running almost all the time with MPD as "radio". At the same time, OVOS was installed on this system as Hivemind-voice-satellite. If I wanted to know how warm it was outside, I said: "Hey Mycroft, what are the readings from the outside thermometer". My Tasmota MQTT skill then retrieved the sensor data from the outdoor thermometer and produced the statement "The temperature on the outdoor thermometer is 22.5 degrees". Before this announcement was made by TTS, the current radio program was automatically turned down and the announcement was output by OVOS at the general volume (ALSA master volume). The radio program was then played again at the original volume. That was very nice and extremely practical. However, I don't know which module or program did this. I have not programmed anything like that.

Now I use Ubuntu 24.04 with pipewire as default sound server. I still have Hivemind-voice-satellite and the MPD radio running at the same time. If I now ask the same question while the radio program is running, the radio program is not turned down but both sound sources are played at the same time with same volume. And then the answer from OVOS is sometimes difficult or impossible to understand.

I hope you can now understand what I mean. It's not particularly serious, but it would be nice if it worked like it did a week ago.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions