Overview
This guide helps you turn on echo cancellation by selecting the processed microphone input.
First: create the “StarLabs Mic (Processed)” device (one-time)
The “StarLabs Mic (Processed)” option will not appear until you create it with a PipeWire config file.
Step 1: Open Terminal
- Press
Ctrl+Alt+T
Step 2: Create the config file
Copy/paste this whole block into Terminal:
mkdir -p ~/.config/pipewire/pipewire.conf.d
cat > ~/.config/pipewire/pipewire.conf.d/99-starlabs-mic-processing.conf <<'EOF'
context.modules = [
{ name = libpipewire-module-echo-cancel
flags = [ ifexists nofail ]
args = {
# Creates a virtual source that applies WebRTC processing.
# Note: select this new source in your audio settings.
aec.method = webrtc
aec.args = {
noise_suppression = true
gain_control = true
high_pass_filter = true
}
source.props = {
node.name = "starlabs_mic_processed"
node.description = "StarLabs Mic (Processed)"
media.class = "Audio/Source"
}
capture.props = {
node.name = "starlabs_mic_capture"
}
sink.props = {
node.name = "starlabs_mic_sink"
node.description = "StarLabs Mic (Processed Sink)"
media.class = "Audio/Sink"
}
playback.props = {
node.name = "starlabs_mic_playback"
}
}
}
]
EOF
Step 3: Restart audio services
Copy/paste:
systemctl --user restart pipewire pipewire-pulse wireplumber
Wait 5–10 seconds.
Step 2 (Recommended): Select it in GNOME Settings
- Open Settings.
- Click Sound.
- Scroll to Input.
- Select StarLabs Mic (Processed).
Important: Some apps pick their own microphone
Apps like Zoom, Microsoft Teams, and Google Meet may have a mic selector inside the app.
- If it still sounds wrong in the app, open the app’s Audio / Microphone settings.
- Select StarLabs Mic (Processed) there too.
Terminal fallback: set it as default with wpctl
Step A: Find the device ID
Run:
wpctl status
Look under Sources for StarLabs Mic (Processed) and note the ID number.
Step B: Set it as the default microphone
Replace <ID> with the number you found:
wpctl set-default <ID>
Troubleshooting
I don’t see “StarLabs Mic (Processed)” in Settings
- Restart services again:
systemctl --user restart pipewire pipewire-pulse wireplumber
- Confirm the config file exists:
ls -l ~/.config/pipewire/pipewire.conf.d/99-starlabs-mic-processing.conf
If that file is missing, the processed mic won’t appear.