Reducción del ruido del micrófono mediante módulos pipewire

Reducción del ruido del micrófono mediante módulos pipewire

Con pulseaudio, fue fácil cargar un módulo para reducción de ruido del micrófono. Este enlace lo explica claramente: https://askubuntu.com/questions/18958/realtime-noise-removal-with-pulseaudio

Quiero agregar rnnoise como complemento de pipewire para cancelar el ruido del micrófono para todos los usuarios.

Estoy buscando una solución minimalista y me gustaría evitar aplicaciones. Como éste: https://github.com/noisetorch/NoiseTorch?tab=readme-ov-file

Respuesta1

Instalarsupresion-de-ruido-por-voz. A partir de abril de 2024, no hay ningún paquete de Ubuntu, consulteeste tema abiertopara obtener instrucciones de instalación. Sin embargo, está empaquetado para Arch, Alpine, Gentoo y openSUSE. Consulte su archivo README para conocer las configuraciones que puede modificar.

Respuesta2

Encontré una manera de cargarlo rnnoisecomo pipewirecomplemento para todos los usuarios.

Paso 1:
En esta páginaPuede descargar los rnnoisecontroladores compilados para Linux X86. Esta no es la última versión de rnnoise. Si desea la última versión, creo que debe realizar la compilación usted mismo desde elrepositorio oficial de github.

Paso 2:
En el archivo descargado, encontrará las bibliotecas de Linux necesarias. Tome siempre mono libs. ¡Probablemente solo tengas un micrófono! Te propongo almacenarlos en /usr/lib/audio/Así que tendrás que crear la carpeta audio. Cuando cambié el nombre de los archivos, ahora tengo en esta carpeta:

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

Paso 3
Crea las 2 pipewirecarpetas para obtener esta ruta:

/etc/pipewire/pipewire.conf.d/

Etapa 4
En esta carpeta cree el archivo 99-mic-denoising.conf. En este archivo pegue este contenido:

    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
        }
    }
    }
    ]

Paso 5
Reinicie el demonio pipewire:

systemctl restart --user pipewire.service

Ahora en la configuración de gnome puedes elegir el micrófono con cancelación de ruido.

Comentarios

  1. Así que utilizamos el módulo de cadena de filtro Pipewire.. Consulta la documentación, es muy útil.
  2. Cada aplicación (que usa audio) ha sido diseñada para usar un estándar (llamado API de complemento de audio):
    • ladspa: estándar abierto... pero no es el más nuevo
    • lv2: estándar abierto... el más nuevo
    • vst3: estándar propietario (no deberías verlo con programas de código abierto)
    • vst: estándar propietario (no deberías...)

Entonces, la solución que proporcioné no cubre aplicaciones que usan el complemento de audio lv2 (no me importan los estándares propietarios). Cualquier ayuda para lv2 es bienvenida.

información relacionada