使用软件或命令行从音频/视频中删除人声



我正在寻找一种从视频中删除人声的方法。最初,我有以下几点:

  • 视频1.mp4
  • 语音1.mp3

video1有图像,只有非人类声音,而voice1只有一个人声 然后我将video1与语音 1 结合起来创建video2.m4,因此在video2中,我可以听到来自视频 1语音1的音频。值得一提的是,视频1和语音1的长度相同,约为2分钟。

这是一年前的事了。我不小心删除了视频1.mp4但我仍然有视频2语音1。现在我需要再次获取视频1.mp4。换句话说,如何从视频中删除语音12?如何从视频中删除人声2?

我不在乎这是通过软件、命令行还是计算机代码(也许是 Phyton;我听说Python可以用音频做很酷的事情(。

注意:在StackOverflow(从视频或音频文件中删除人声(中有一个类似的问题,但它没有解释如何删除音频。

问题

与其将其视为删除不需要的声音的问题,不如将其视为简单地撤消两个信号的总和。目前我们有三个音频信号需要考虑,让我们调用它们

  • A视频的音轨1.mp4
  • B语音的音频1.mp3
  • CAB之和(即C = A + B(,现在是video2.mp4的音轨

我们不再可以访问A,但我们仍然有BC.

理想案例

理想情况假设:

  • AB长度相同
  • 两个信号的总和是在没有任何滤波的情况下完成

溶液

在这种情况下,解决方案相当微不足道,我们需要做的就是将B乘以增益值-1(即反转(,并将其与信号相加C.

如果

C = A + B

然后

A = C - B
A = C + (B * -1)

鉴于您首先总结了这些信号,我假设您可以使用一些音频/视频编辑软件。要反转B您可以将文件导入到以下文件之一中:

  • 大胆
  • 车库乐队
  • 实况调查组
  • Adobe Premier/Audition
  • Final Cut Pro

任何可以编辑音频的软件也应该能够反转音频信号。对于您用来即时进行调整的任何 DAW,在同一项目中拥有CB可能是理想的选择。

警告

  • 如果B增益发生变化(即C = A + xB(,那么解决方案仍然相当微不足道,因为您只需将-B乘以一个因子x
  • 如果BA长度不同,则需要-BC正确对齐,以便信号取消。

非理想情况

如果您认为已经应用了一些过程来B则解决方案会更加复杂。这个过程可以是任何东西,滤波(EQ(,延迟,混响,音高偏移,速度偏移。让我们将此过程称为函数H(),如果B是该过程的输入,则为:H(B)

C = A + H(B)

我们可以在更长的时间内简单地反转B,我们现在需要先将完全相同的过程应用于B,然后反转,因为H(B)可能不等于H(-B)。您应该首先以完全相同的方式处理B,然后在最后反转它。

如果出于某种原因您不记得应用于B的过程,那么这会让您有点卡住。在这种情况下,最好的办法是尝试通过试验错误重新创建该过程。除非您完全匹配该过程,否则可能会有一些残留的H(B)

最新更新