检测录音中的不同声音/来源

时间:2014-03-31 14:12:16

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

我需要一些关于这个想法的建议,我有一个UNI项目。

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

我不一定需要从编程语言(尽管它是理想的)这样做,但也可以手动使用Sound Forge等声音处理软件。不过,我需要知道这是否可行。我对声音处理一无所知。

第一阶段完成后(分离声音)我想确定其中一个处理过的声音是否存在于另一个录音中。目的是进行声音检测。对于(一个理想的)示例,取出汽车引擎声音并将其与另一个文件匹配,并确定音频是否是汽车引擎的录音。它不需要那么精确,我想检测一个不恒定的声音,就像一个鸣喇叭!也没关系。

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

感谢。

3 个答案:

答案 0 :(得分:0)

非常难以从单个音频流中自动分离源。你的大脑非常擅长这项任务,它也受益于立体声信号。

例如。声音充满了一直没有的信号。汽车噪音的成分非常稳定,但换档是异常值。

不幸的是,没有简单的答案。

答案 1 :(得分:0)

将参考信号与音频流相关联。可以使用FFT有效地进行相关。相关计算的输出可以被阈值化并在时间上“去抖”以进行信号识别。

答案 2 :(得分:0)

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

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

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