¿Es posible hacer la eliminación de ruido en tiempo real con PulseAudio, por lo que la salida de sonido que sale es más suave?
sound
pulseaudio
noise
Vadim Peretokin
fuente
fuente
Respuestas:
Módulo Pulseaudio
module-echo-cancel
Comencé a leer mucho sobre PulseAudio y las opciones "ocultas" que tenía para poder encontrar una similar a esta pregunta. El que encontré fue el módulo de cancelación de ruido, que es uno que reduce drásticamente cualquier ruido estático en el micrófono e incluso MUCHO ruido de fondo, básicamente brindándole la ventaja de grabar solo su propia voz con excelente calidad (para grabación de audio por ejemplo). Para hacer esto, siga estos pasos:
sudo nano /etc/pulse/default.pa
Agregue la siguiente línea en cualquier parte del archivo, pero le recomiendo casi al final donde encontrará un comentario sobre el material de cancelación de eco (~ línea 140):
Vuelva a cargar PulseAudio (
pulseaudio -k
) o simplemente reinicie la computadora. Debería poder seleccionar la nueva opción de Cancelación de ruido en la sección Dispositivo de entrada:Puede encontrar más información al respecto en la página del módulo de cancelación de eco
Establecer entrada como predeterminada
Si desea establecer como predeterminado el dispositivo de cancelación de eco, simplemente convierta la línea anterior en:
y luego en la parte inferior del archivo agregue
En este caso, llamé a la fuente
logitechsource
, pero puede nombrarla como desee y simplemente reiniciar pulseaudio.Renombrar dispositivo
Por último, si no desea un nombre súper largo en la Configuración de sonido (cuando desea seleccionar un dispositivo de entrada / salida). Mi sugerencia es cambiar el nombre del dispositivo de entrada de esta manera:
Y nuevamente, reiniciando pulseaudio. El resultado final se ve así:
fuente
load-module module-echo-cancel aec_method=webrtc aec_args="analog_gain_control=0 digital_gain_control=1"
según gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/224Esta es una vieja pregunta, pero tuve el mismo problema y después de buscar en Google (donde encontré principalmente personas que estaban de acuerdo en que no era posible) y leer algunas páginas de manual, ahora he desarrollado una solución basada en la idea del usuario 2330377.
Primero debe crear un perfil de ruido para SoX. Simplemente use cualquier programa de grabación de audio para grabar unos segundos de ruido, luego
cd
en el directorio donde lo guardó y hagasox noise.wav -n noiseprof noise.prof
.Luego, debe crear un dispositivo ALSA loopback:
Esto es necesario porque pulseaudio, a diferencia de Jack, no puede conectar directamente el software de audio; Por lo tanto, utilizaremos el dispositivo loopback como proxy.
Ahora debe comenzar
paman
y encontrar los nombres tanto de su micrófono (u otro dispositivo de grabación) como del dispositivo de bucle invertido que acabamos de crear. Una vez que se encuentren, puede ejecutar el siguiente comando para comenzar a grabar sonido desde su micrófono, pasarlo a través de SoX y luego reproducirlo en el dispositivo de bucle invertido:(Cuando necesite sustituir los nombres de dispositivo correctos por los parámetros -d: el dispositivo de entrada para la primera invocación de pacat y la salida del dispositivo de bucle de retorno para la segunda).
Ahí lo tienes, casi listo! Como último paso, comience a grabar sonido con la aplicación que elija, luego inicie
pavucontrol
, cambie a la pestaña "Grabación" y configure el dispositivo de audio utilizado para la grabación (que se muestra como el botón gris a la derecha) en "Monitor de audio de bucle invertido". Dispositivo". ¡Ahora debería tener una grabación clara y sin ruidos!fuente
La investigación muestra que no existe una forma conocida de hacer filtros de reducción de ruido en tiempo real con ningún subsistema Linux. Algunos sitios web apuntan a hardware que puede comprar, que debería ser mucho mejor que hacer un filtro de software.
Alternativamente, si esto es para una grabación, puede pasar el sonido a través de Audacity y usar el filtro de ruido allí.
fuente
module-echo-cancel
, que tiene varias implementaciones, como webrtc | Speex.Aquí está, al menos, la forma del tono, implementa webrtc-aec en
http://wiki.gentoo.org/wiki/PulseAudio
webrtc-aec Sí Utiliza la biblioteca de procesamiento de audio webrtc.org para mejorar en gran medida las llamadas VoIP en aplicaciones que lo soportan mediante la cancelación de eco acústico, control de ganancia analógica, supresión de ruido y otros procesamientos.
Aquí hay un documento con fecha de 2013 sobre el tema (eliminación de ruido con pulseaudio no webrtc-aec específicamente) http://lac.linuxaudio.org/2013/papers/37.pdf
"Hemos presentado los primeros resultados de una solución de reducción de ruido / eco multicanal construida sobre PulseAudio y motivamos las decisiones de diseño. El trabajo ha resultado en una serie de mejoras en el marco de procesamiento de señal y cancelación de eco de PulseAudio, que han sido contribuyó durante el ciclo de desarrollo de la versión 3.0 / 4.0 y debería facilitar futuras soluciones integradas de audio Linux. El trabajo adicional incluye la optimización del código para la mezcla de flujo de audio, métodos de muestreo más eficientes y la implementación de un AEC eficiente en la tubería de procesamiento multicanal ".
fuente
No hay ninguna información en la página de documentación del módulo sobre cancelación de ruido. Solo hay un algoritmo AEC (Cancelación de eco acústico) dentro de module-echo-cancel, que tiene varias implementaciones, como webrtc | Speex.
Por lo tanto, debe comprar auriculares con micrófono con función de cancelación de ruido integrada tanto como sea posible.
Cuando probé la grabación de voz en ubuntu, encontré algunas cualidades particulares:
Skype, Telegram utiliza la entrada sin formato del dispositivo predeterminado (en mi caso, conectores de micrófono frontal y posterior). Si necesita cancelar un ruido en estas aplicaciones, debe comprar auriculares y micrófonos solo con la función integrada de cancelación de ruido
Si necesita usar llamadas de voz en el navegador, debe tener en cuenta que los navegadores tienen sus propias implementaciones de algoritmos de procesamiento de voz, por ejemplo, WebRTC.
También las aplicaciones web (sitios como talky, hangouts, seem.in, etc.) pueden tener sus propias implementaciones de algoritmos de procesamiento de voz, a pesar del hecho de que pueden basarse en el análisis de hangouts webrtc
fuente