파이프와이어 모듈을 사용하여 마이크 소음 감소

파이프와이어 모듈을 사용하여 마이크 소음 감소

펄스오디오를 사용하면 마이크 소음 감소용 모듈을 쉽게 로드할 수 있습니다. 이 링크는 이를 명확하게 설명합니다. https://askubuntu.com/questions/18958/realtime-noise-removal-with-pulseaudio

모든 사용자의 마이크 소음을 취소하기 위해 rnnoise를 파이프와이어의 플러그인으로 추가하고 싶습니다.

저는 최소한의 솔루션을 찾고 있으며 응용 프로그램을 피하고 싶습니다. 이 같은: https://github.com/noisetorch/NoiseTorch?tab=readme-ov-file

답변1

설치하다음성에 대한 소음 억제. 2024년 4월 현재 Ubuntu 패키지는 없습니다.이 공개 문제설치 지침을 확인하세요. 그러나 Arch, Alpine, Gentoo 및 openSUSE용으로 패키지되어 있습니다. 조정할 수 있는 설정은 README를 참조하세요.

답변2

모든 사용자를 위한 플러그인 rnnoise으로 로드하는 방법을 찾았습니다 .pipewire

1 단계:
이 페이지에서rnnoiseX86 Linux용으로 컴파일된 드라이버를 다운로드할 수 있습니다 . 이것은 의 마지막 버전이 아닙니다 rnnoise. 최신 버전을 원한다면 다음에서 직접 컴파일을 수행해야 할 것 같습니다.공식 github 레포.

2 단계:
다운로드한 아카이브에서 필요한 Linux 라이브러리를 찾을 수 있습니다. 항상 모노 라이브러리를 사용하세요. 아마도 마이크가 하나만 있을 것입니다! 나는 그것들을 저장할 것을 제안합니다. /usr/lib/audio/그래서 당신은 audio 폴더를 만들어야 할 것입니다. 파일 이름을 바꾸면서 이제 이 폴더에 있습니다.

  • ladspa.so
  • lv2.so
  • vst3.so
  • vst.so

3단계
pipewire이 경로를 얻으려면 2개의 폴더를 만듭니다 .

/etc/pipewire/pipewire.conf.d/

4단계
이 폴더에 파일을 만듭니다 99-mic-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/audio/ladspa.so
                    label = noise_suppressor_mono
                    control = {
                        "VAD Threshold (%)" = 90.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
        }
    }
    }
    ]

5단계
파이프와이어 데몬을 다시 시작합니다.

systemctl restart --user pipewire.service

이제 그놈 설정에서 소음이 제거된 마이크를 선택할 수 있습니다.

코멘트

  1. 우리는 파이프와이어 필터 체인 모듈을 사용합니다.. 문서를 확인하면 매우 유용합니다.
  2. 오디오를 사용하는 각 애플리케이션은 표준(오디오 플러그인 API라고 함)을 사용하도록 설계되었습니다.
    • ladspa: 개방형 표준이지만...최신 표준은 아니지
    • lv2: 개방형 표준...최신 표준
    • vst3: 독점 표준(오픈 소스 프로그램에서는 볼 수 없음)
    • vst: 독점 표준(그러면 안 됩니다 ....)

따라서 제가 제공한 솔루션은 lv2 오디오 플러그인을 사용하는 애플리케이션에는 적용되지 않습니다(독점 표준에는 관심이 없습니다). lv2에 대한 도움을 환영합니다.

관련 정보