【问题标题】:detect different sounds/sources in audio recording检测录音中的不同声音/来源
【发布时间】:2014-03-31 14:12:15
【问题描述】:

我需要一些关于我对 UNI 项目的想法的建议。

我想知道是否可以将音频文件拆分为来自不同音频源的不同“流”。 例如,将音频文件拆分为:引擎噪音、火车噪音、人声、不同的声音,等等。

我不一定需要通过编程语言来执行此操作(尽管它会很理想),但也可以通过使用 Sound Forge 等声音处理软件手动执行。不过,我需要先知道这是否可行。我对声音处理一无所知。

第一阶段完成后(分离声音),我想确定一个处理过的声音是否存在于另一个录音中。目的是声音检测。对于(一个理想的)示例,获取汽车发动机声音并将其与另一个文件进行匹配,并确定该音频是否是汽车发动机的录音。它不需要那么精确,我想检测一个不恒定的声音,比如喇叭!也可以。

我会做编程部分,我只需要一些关于寻找什么的指针(软件、数学等)。由于我不是声音专家,如果可能的话,这确实是一个有趣的项目。

谢谢。

【问题讨论】:

  • 评论:您可能会找到最接近的匹配项之一是 Melodyne。看起来有点像音频编辑器;是……实际上令人敬畏。过去常常做一些不可能的事情,比如从音乐中近乎完美地提取人声和样本。 非常昂贵:)(而且肯定在我的待办事项定位-复制和尝试列表中...)

标签: c++ audio audio-processing audio-fingerprinting


【解决方案1】:

这种基于源分割声音的问题在研究中被称为(音频)源分离音频信号分离。如果没有关于声源或它们如何混合的更多信息,则这是一个盲音源分离问题。有数百篇关于这些主题的论文。

但是,出于声音检测的目的,通常不需要在音频级别上分离声音。很多时候,人们可以(并且将会)对基于混合信号计算的特征进行检测。搜索声学事件检测声学事件分类的文献。

有关该主题的介绍,请查看 Computational Analysis of Sound Scenes and Events 之类的书

【讨论】:

    【解决方案2】:

    从单个音频流中自动进行源分离是非常困难的。您的大脑非常擅长这项任务,而且还受益于立体声信号。

    例如。语音中充满了并非一直存在的信号。汽车噪音有相当固定的成分,但换档是异常值。

    很遗憾,没有简单的答案。

    【讨论】:

    • 确实,我希望手动完成声音的分离会很痛苦(如果自动完成,甚至是不可能的)。这就是为什么我想处理数量有限的声音,我必须将它们分离并用于第 2 步。谢谢。
    • @user3481244:也许我应该更详细一点。没有像 hte 引擎声音这样的东西,有各种各样的引擎声音。即使在混合信号中也很容易识别类。但是您没有完全匹配,因此您无法减去确切的引擎声音。而当你减去一个估计值时,误差相对于原始声音可能很小,但相对于剩余的声音它并不小。
    【解决方案3】:

    将参考信号与音频流相关联。使用 FFT 可以有效地完成相关性。相关性计算的输出可以及时进行阈值处理和“去抖动”以进行信号识别。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      相关资源
      最近更新 更多