Wie kann man überlappendes Audio herausfiltern? Wie kann man bei einem gemischten Track und einem Stem-Track den Stem am besten vom Mix „abziehen“?

Bei zwei Audiostreams möchte ich das Audio in einem Stream entfernen, das auch in einem anderen vorhanden ist. In diesem speziellen Fall enthält der 1. Stream alles gemischt, und der 2. Stream enthält nur die Hintergrundgeräusche, die auch im 1. Stream vorhanden sind. Gibt es eine vernünftige Möglichkeit, diese Hintergrund-Audiospur von der 1. Audiospur zu "subtrahieren"?

Idealerweise mit ffmpeg, aber offen für alles. Ich habe naiv versucht, den Hintergrundkanal zu invertieren und ihn mit diesem ffmpeg-Filter mit dem ersten Kanal zu mischen: aeval=val(0)|-val(1)aber das funktioniert nicht. Ich nehme an, das liegt daran, dass der Hintergrund auf einer anderen Ebene gemischt wird. (Ich gehe auch davon aus, dass sie genau in Phase sind)

Irgendwelche anderen Ideen?

Audio-Visualisierung

Als Referenz ist hier der ffmpeg- showcqtFilter für jeden Kanal nebeneinander. Sie können sehen, wie die zweite Spalte das gesamte Audio in der ersten Spalte und einige mehr zu "enthalten" scheint. (und auf verschiedenen Ebenen gemischt)

Antworten (1)

Das Invertieren des Hintergrunds sollte funktionieren, genau so funktioniert eine symmetrische Audioverbindung, um Rauschen zu eliminieren, aber wie genau passt Ihre isolierte Hintergrundspur im Vergleich zur gemischten Spur zusammen? Es funktioniert nur dann vollständig, wenn es mit genau der gleichen Qualität, Lautstärke usw. aufgenommen wird und das Timing genau gleich ist. Was war die Aufnahmequelle für jeden Track? Wie sicher sind Sie, dass die beiden aufgezeichneten Hintergrundaudiosätze identisch sind?

Meine Vermutung ist, dass die Übereinstimmung nicht genau ist. Oder besser gesagt, dass es in der zeitlichen Dimension exakt ist, aber dass die Lautstärke unterschiedlich ist. Für den Kontext bin ich daran interessiert, dies im Allgemeinen zu tun, aber ein bestimmter Anwendungsfall, an den ich denke, ist das Isolieren von Dialogen von einem 5.1-Surround-Audio. Bei 5.1-Sound enthält der Center-Kanal ( ) normalerweise FCalle Dialoge, manchmal auch Hintergrundgeräusche mit geringerer Lautstärke. Derselbe Hintergrundsound ist auch in den Kanälen FR und FL vorhanden (vorausgesetzt, es gibt keine Stereounterschiede, was meistens zutrifft). Also würde ich gerne FR+FL vom FC subtrahieren, um nur Dialog zu bekommen!
Ich würde vorschlagen, einen neuen Beitrag zu erstellen und speziell nach der besten Möglichkeit zu fragen, Dialoge aus einem 5.1-Audiomix zu isolieren. In diesem Fall bezweifle ich, dass das Audio in anderen Kanälen ausreicht, um es so zu invertieren, wie Sie es versucht haben (aber einen Versuch wert), aber ich vermute, dass andere Methoden verfügbar sind, die besser funktionieren. Ich habe gesehen, dass dies einigermaßen erfolgreich durchgeführt wurde, indem Frequenzen gefiltert wurden, um "Nicht-Sprach" -Klänge zu entfernen, aber es könnte andere bessere Möglichkeiten geben, dies zu tun.