visit
Arch Linux:
To install the plugin on Arch Linux, you must use the
Execute the following command to install the package using `yay` an
$ yay -S noise-suppression-for-voice
$ sudo pacman -S git
$ git clone //aur.archlinux.org/noise-suppression-for-voice.git
$ cd noise-suppression-for-voice
$ makepkg -si
Fedora:
The plugin can be installed on Fedora using the COPR repository. To configure this repository, enter the following command:
$ sudo dnf copr enable ycollet/linuxmao
$ sudo dnf install ladspa-noise-suppression-for-voice
Complete the above tasks to install the plugin binary into the location “/usr/lib/ladspa/librnnoise_ladspa.so
”.
2.1 Create a configuration directory to store filter chain configuration files.
$ mkdir -p ~/.config/pipewire/
2.2 Create a filter chain file “input-filter-chain.conf
”.
$ vim ~/.config/pipewire/input-filter-chain.conf
# Noise canceling source
#
# start with pipewire -c filter-chain/input-filter-chain.conf
#
context.properties = {
log.level = 0
}
context.spa-libs = {
audio.convert.* = audioconvert/libspa-audioconvert
support.* = support/libspa-support
}
context.modules = [
{ name = libpipewire-module-rtkit
args = {
#nice.level = -11
#rt.prio = 88
#rt.time.soft = 200000
#rt.time.hard = 200000
}
flags = [ ifexists nofail ]
}
{ name = libpipewire-module-protocol-native }
{ name = libpipewire-module-client-node }
{ name = libpipewire-module-adapter }
{ name = libpipewire-module-filter-chain
args = {
node.name = "rnnoise_source"
node.description = "Noise Canceling source"
media.name = "Noise Canceling source"
filter.graph = {
nodes = [
{
type = ladspa
name = rnnoise
plugin = /usr/lib/ladspa/librnnoise_ladspa.so
label = noise_suppressor_stereo
control = {
"VAD Threshold (%)" 50.0
}
}
]
}
capture.props = {
node.passive = true
}
playback.props = {
media.class = Audio/Source
}
}
}
To load this filter chain to the PipeWire, we need to create a systemd service. The service we will be making as a systemd user instance and it will start at the first login.
The systemd user instance is a per-user process and not per-session.
3.1 Create the systemd user configuration directory if it does not exist.
$ mkdir -p ~/.config/systemd/user/
3.2 Create a new systemd unit file.
$ vim ~/.config/systemd/user/pipewire-input-filter-chain.service
[Unit]
Description=PipeWire Input Filter Chain
After=pipewire.service
BindsTo=pipewire.service
[Service]
ExecStart=/usr/bin/pipewire -c /home/<username>/.config/pipewire/input-filter-chain.conf
Type=simple
Restart=on-failure
[Install]
WantedBy=pipewire.service
3.3 Reload systemd user unit files.
$ systemct --user daemon-reload
3.4 Enable the created systemd service.
$ systemct --user enable pipewire-input-filter-chain.service
If you do not see the new Virtual Source device, please check the systemd service’s status and rectify any errors in the configuration if the service fails to start.
$ systemctl --user status pipewire-input-filter-chain.service
Google Meet
For other applications, the configuration would be similar.