werman/noise-suppression-for-voice

How use rnnoise with echo-cancel

neuralstring opened this issue · 1 comments

I want to echo-cancel my mic and then noise suppression it.

but configuring echo-cancel and rnnoise will make two separate source
image

How I could configure rnnoise to use echo-cancel source for capturing sound?

Sorry I had to ask this question here. But I could not found any docs that provide a solution for this problem

I solved it. here is my config:

==> 30-echo-cancel.conf <==
 context.modules = [
  {   name = libpipewire-module-echo-cancel
      args = {
          # library.name  = aec/libspa-aec-webrtc
          # node.latency = 1024/48000
          monitor.mode = true
          capture.props = {
             node.name = "Echo Cancellation Capture"
          }
          source.props = {
             node.name = "echo_source"
          }
      }
  }
]

==> 40-input-denoising.conf <==
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 = /usr/lib/ladspa/librnnoise_ladspa.so
                    label = noise_suppressor_mono
                    control = {
                        "VAD Threshold (%)" = 20
                        "VAD Grace Period (ms)" = 400 
                        "Retroactive VAD Grace (ms)" = 100
                    }
                }
            ]
        }
        capture.props = {
             target.object = "echo_source"
        }
        playback.props = {
             node.name =  "rnnoise_source"
             media.class = Audio/Source
        }
    }
}
]

closing the issue.