¿Limpiar grabaciones de voz desde la línea de comandos?
28
He usado Audacity para eliminar el ruido de las grabaciones antes, sin embargo, tiene un uso muy limitado de la línea de comandos. Tengo ~ 100 videos cortos de conferencias que veré durante los próximos meses y me gustaría una manera fácil de limpiarlos todos a la vez o según sea necesario antes de verlos.
¿Existe una herramienta de línea de comandos o una biblioteca de idiomas populares que pueda usar para hacer esto?
SoX - Sound eXchange, the Swiss Army knife of audio manipulation
[...]
SoX is a command-line audio processing tool, particularly suited to
making quick, simple edits and to batch processing. If you need an
interactive, graphical audio editor, use audacity(1).
Por lo tanto, debería ser una buena opción como alternativa de línea de comando complementaria a audaciy.
Con respecto a la tarea real de limpiar las grabaciones, eche un vistazo al filtro noiseredpara el cual es igual el filtro de reducción de ruido Audacity :
man sox | less -p 'noisered \['
[...]
noisered [profile-file [amount]]
Reduce noise in the audio signal by profiling and filtering.
This effect is moderately effective at removing consistent
background noise such as hiss or hum. To use it, first run
SoX with the noiseprof effect on a section of audio that
ideally would contain silence but in fact contains noise -
such sections are typically found at the beginning or the
end of a recording. noiseprof will write out a noise pro‐
file to profile-file, or to stdout if no profile-file or if
`-' is given. E.g.
sox speech.wav -n trim 0 1.5 noiseprof speech.noise-profil
To actually remove the noise, run SoX again, this time with
the noisered effect; noisered will reduce noise according to
a noise profile (which was generated by noiseprof), from
profile-file, or from stdin if no profile-file or if `-' is
given. E.g.
sox speech.wav cleaned.wav noisered speech.noise-profile 0
How much noise should be removed is specified by amount-a
number between 0 and 1 with a default of 0.5. Higher num‐
bers will remove more noise but present a greater likelihood
of removing wanted components of the audio signal. Before
replacing an original recording with a noise-reduced ver‐
sion, experiment with different amount values to find the
optimal one for your audio; use headphones to check that you
are happy with the results, paying particular attention to
quieter sections of the audio.
On most systems, the two stages - profiling and reduction -
can be combined using a pipe, e.g.
sox noisy.wav -n trim 0 1 noiseprof | play noisy.wav noise
[...]
Desafortunadamente, encuentro que la descripción que los sox usan en la página de manual es muy ruidosa para leer. ¿No hay una manera mucho más simple, con solo un comando para hacer malabares con la reducción de ruido?
shevy
Claro, no hay problema, solo escriba en una oración simple lo que desea cambiar, pero lo suficientemente preciso como para ser técnicamente claro ... Ok, eso no funcionará así porque necesita comprender qué es el ruido y cuál de las partes de el ruido que desea eliminar, que puede reducir, y lo que puede reducir la calidad del sonido, de lo contrario, reducir el ruido. Para hacer malabares con la reducción de ruido, debe conocer sus clubes de malabarismo: los tipos de ruido para hacer malabares y cómo se pueden equilibrar cuando colisionan en el aire. Entonces, ¡sox es tu caja de herramientas y botiquín de primeros auxilios!
Volker Siegel
12
La respuesta aceptada no da un ejemplo práctico (vea el primer comentario), así que estoy tratando de dar una aquí. En Ubuntu con apt, debe instalar soxy admitir formatos de audio
Primera instalación soxy soporte para formatos (incluido mp3):
sudo apt install sox libsox-fmt-*
Luego, antes de ejecutar su comando en el archivo / archivos primero debe crear un perfil, hacer una muestra de ruido, esta es la parte más importante que tiene que seleccionar el mejor momento cuando se produce el ruido, asegúrese de no tiene voz (o la música / señal que intenta mantener) en esta muestra:
¿Dónde noise_profile_fileestá el perfil y 0.30el valor? Los valores van mejor en algún lugar entre 0,20 y 0,30, más de 0,3 es muy agresivo, menos de 0,20 es algo suave y funciona bien para audios muy ruidosos.
Intente jugar con eso y si encuentra otros trucos de configuración y comente con los hallazgos y la configuración de ajuste.
cómo procesarlos por lotes
Si el ruido es similar, puede usar el mismo perfil para todos los mp3
si es audio hablado y los canales separados de izquierda a derecha no son necesarios, entonces puede agregar remix -una mezcla de todos los canales de entrada a mono
Jake Berger
2
@EduardFlorinescu Su respuesta es acertada. Tuve una grabación de ruido estático en el fondo de cada grabación. Leí tu respuesta y usé los primeros 2 segundos de mi archivo de sonido para crear un perfil y finalmente lo usé para eliminar el ruido de la grabación. Muchas gracias por esto.
La respuesta aceptada no da un ejemplo práctico (vea el primer comentario), así que estoy tratando de dar una aquí. En Ubuntu con apt, debe instalar
sox
y admitir formatos de audiosox
Primera instalación
sox
y soporte para formatos (incluido mp3):Luego, antes de ejecutar su comando en el archivo / archivos primero debe crear un perfil, hacer una muestra de ruido, esta es la parte más importante que tiene que seleccionar el mejor momento cuando se produce el ruido, asegúrese de no tiene voz (o la música / señal que intenta mantener) en esta muestra:
Ahora haga un perfil de esa fuente:
Y finalmente ejecuta la reducción de ruido en el archivo:
¿Dónde
noise_profile_file
está el perfil y0.30
el valor? Los valores van mejor en algún lugar entre 0,20 y 0,30, más de 0,3 es muy agresivo, menos de 0,20 es algo suave y funciona bien para audios muy ruidosos.Intente jugar con eso y si encuentra otros trucos de configuración y comente con los hallazgos y la configuración de ajuste.
cómo procesarlos por lotes
Si el ruido es similar, puede usar el mismo perfil para todos los mp3
o si hay una estructura de carpetas:
fuente
remix -
una mezcla de todos los canales de entrada a mono