¿Cómo filtrar el audio superpuesto? Dada una pista mixta y una pista de raíz, ¿cuál es la mejor manera de "restar" la raíz de la mezcla?

Dadas dos secuencias de audio, me gustaría eliminar el audio de una secuencia que también existe en otra. En este caso particular, la primera transmisión contiene todo mezclado, y la segunda transmisión contiene solo el ruido de fondo que también existe en la primera transmisión. ¿Hay alguna forma razonable de "restar" esta pista de audio de fondo de la primera pista de audio?

Idealmente usando ffmpeg, pero abierto a cualquier cosa. Intenté ingenuamente invertir el canal de fondo y mezclarlo con el primer canal con este filtro ffmpeg: aeval=val(0)|-val(1)pero eso no funciona. Supongo que es porque el fondo se mezcla en un nivel diferente. (También asumo que están exactamente en fase)

¿Alguna otra idea?

visualización de audio

Como referencia, aquí hay showcqtun filtro ffmpeg en cada canal, uno al lado del otro. Puede ver cómo la segunda columna parece "contener" todo el audio de la primera columna, y algo más. (y mezclado en diferentes niveles)

Respuestas (1)

Invertir el fondo debería funcionar, así es exactamente como funciona una conexión de audio balanceada para eliminar el ruido, pero ¿cuán exacta es la coincidencia entre la pista de fondo aislada y la pista mixta? Solo funcionará completamente si se graba exactamente con la misma calidad, volumen, etc., y el tiempo es exactamente el mismo. ¿Cuál fue la fuente de grabación para cada pista? ¿Qué tan seguro está de que los dos conjuntos de audio de fondo que se grabaron son idénticos entre sí?

Supongo que la coincidencia no es exacta. O más bien, que es exacta en la dimensión del tiempo, pero que el volumen difiere. Por contexto, estoy interesado en hacer esto en general, pero un caso de uso particular que tengo en mente es aislar el diálogo de un audio envolvente 5.1. Por lo general, con el canal central de sonido 5.1 ( FC) contiene todo el diálogo y, en ocasiones, también tiene el sonido de fondo a un volumen más bajo. Ese mismo sonido de fondo también está en los canales FR y FL (suponiendo que no haya diferencias estéreo, la mayoría de las veces). ¡Así que me gustaría restar FR+FL del FC para obtener solo diálogo!
Sugeriría hacer una nueva publicación, preguntando específicamente cuál es la mejor manera de aislar el diálogo de una mezcla de audio 5.1. En este caso, dudo que el audio en otros canales coincida lo suficiente como para invertir como lo intentaste (pero vale la pena intentarlo), pero sospecho que hay otros métodos disponibles que funcionarán mejor. Lo he visto con cierto éxito al filtrar frecuencias para eliminar sonidos "sin voz", pero puede haber otras formas mejores de hacerlo.