From ab34086fcc6f6942f694291b7c596ba8d5d0a7d8 Mon Sep 17 00:00:00 2001 From: hesam-init Date: Fri, 1 Nov 2024 19:11:58 +0330 Subject: [PATCH] feat: pipewire echo canceling --- .../pipewire.conf.d/98-echo-canceling.conf | 22 ++++++++++++ .../pipewire.conf.d/99-input-denoising.conf | 34 +++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 hypr-configs/dotfiles/pipewire/pipewire.conf.d/98-echo-canceling.conf create mode 100644 hypr-configs/dotfiles/pipewire/pipewire.conf.d/99-input-denoising.conf diff --git a/hypr-configs/dotfiles/pipewire/pipewire.conf.d/98-echo-canceling.conf b/hypr-configs/dotfiles/pipewire/pipewire.conf.d/98-echo-canceling.conf new file mode 100644 index 0000000..c8b939e --- /dev/null +++ b/hypr-configs/dotfiles/pipewire/pipewire.conf.d/98-echo-canceling.conf @@ -0,0 +1,22 @@ +context.modules = [ + { + name = libpipewire-module-echo-cancel + args = { + library.name = aec/libspa-aec-webrtc + node.latency = 1024/48000 + monitor.mode = false + capture.props = { + node.name = "Echo Cancellation Capture" + } + source.props = { + node.name = "Echo Cancellation Source" + } + sink.props = { + node.name = "Echo Cancellation Sink" + } + playback.props = { + node.name = "Echo Cancellation Playback" + } + } + } +] \ No newline at end of file diff --git a/hypr-configs/dotfiles/pipewire/pipewire.conf.d/99-input-denoising.conf b/hypr-configs/dotfiles/pipewire/pipewire.conf.d/99-input-denoising.conf new file mode 100644 index 0000000..b2a1ab6 --- /dev/null +++ b/hypr-configs/dotfiles/pipewire/pipewire.conf.d/99-input-denoising.conf @@ -0,0 +1,34 @@ +# context.modules = [ +# { +# name = libpipewire-module-filter-chain +# args = { +# node.description = "Noise Canceling source" +# media.name = "Noise Canceling source" +# filter.graph = { +# nodes = [ +# { +# type = ladspa +# name = rnnoise +# plugin = /home/hesam/Pipewire/linux-rnnoise/ladspa/librnnoise_ladspa.so +# label = noise_suppressor_mono +# control = { +# "VAD Threshold (%)" = 50.0 +# "VAD Grace Period (ms)" = 200 +# "Retroactive VAD Grace (ms)" = 0 +# } +# } +# ] +# } +# capture.props = { +# node.name = "capture.rnnoise_source" +# node.passive = true +# audio.rate = 48000 +# } +# playback.props = { +# node.name = "rnnoise_source" +# media.class = Audio/Source +# audio.rate = 48000 +# } +# } +# } +# ]