I have figure out my Solution! Below is the end results:

I HAVE NOT TESTED IT YET!!!!
These article has helped me to my solution:
- Real-time Microphone Noise Cancellation on Linux
Here is Real-time Noise Suppression Plugin Github Respository for PipeWire:
- Real-time Noise Suppression Plugin
Here is simplify instruction I followed that has helped me. Feel free to correct my commands:
Go to your Download Folder:
cd ~/Downloads
Download the latest version for Real-time Noise Suppression Plugin in your Downloads folder:
Here is the link > Noise Suppression v1.03 (VST2, VST3, LV2, LADSPA, AU, AUv3

Extract linux-rnnoise.zip
file in your Download folder
if you don't have /usr/lib/ladspa
folder in your usr
path, create one:
sudo mkdir /usr/lib/ladspa/
copy librnnoise_ladspa.so
plugin in your /usr/lib/ladspa
:
REPLACE <USERNAME>
with your username!
sudo cp ~/Downloads/linux-rnnoise/ladspa/librnnoise_ladspa.so /usr/lib/ladspa
Create a configuration directory to store filter chain configuration files
mkdir -p ~/.config/pipewire/
Create a filter chain file with the name “input-filter-chain.conf”
gedit ~/.config/pipewire/input-filter-chain.conf
Paste these code in your input-filter-chain.conf
file:
# 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
}
}
}
]
MAKE SURE YOUR PLUGIN VARIABLE IS POINTING TO YOUR PLUGIN!
plugin = /usr/lib/ladspa/librnnoise_ladspa.so
Create the systemd user configuration directory if it does not exist.
mkdir -p ~/.config/systemd/user/
Create a new systemd unit file
gedit ~/.config/systemd/user/pipewire-input-filter-chain.service
Make sure to:
Replace the file name if you have used a different name for the filter chain configuration file.
Replace the <username>
with your account username.
[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
Reload systemd user unit files
systemctl --user daemon-reload
Enable the created systemd service
systemctl --user enable pipewire-input-filter-chain.service
Start the filter
systemctl --user enable pipewire-input-filter-chain.service
Verify pipewire-input-filter-chain.service
status is running
systemctl --user status pipewire-input-filter-chain.service
restart pipewire
systemctl --user restart pipewire.service pipewire-pulse.service
You should be all set!