Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 探测风噪声_Algorithm_Language Agnostic_Signal Processing_Audio Processing - Fatal编程技术网

Algorithm 探测风噪声

Algorithm 探测风噪声,algorithm,language-agnostic,signal-processing,audio-processing,Algorithm,Language Agnostic,Signal Processing,Audio Processing,我想开发一个根据音频流检测风的应用程序。 我需要一些专家的想法在这里,只是给我一些指导方针或一些链接,我知道这是不容易的任务,但我计划在这里投入大量的努力 我的计划是检测气流中的一些常见模式,如果值接近风噪波的常见模式,我会通知找到匹配项,如果值接近已知模式,我可以确保检测到风,如果值与模式不匹配,那么我想没有那么多风 这是我一开始的计划,但我需要了解这些事情是如何完成的。是否有某个开放项目已经在这样做?还是有人在做这方面的研究 我之所以在这个论坛上写作,是因为我不知道如何用谷歌搜索它,我发现的

我想开发一个根据音频流检测风的应用程序。
我需要一些专家的想法在这里,只是给我一些指导方针或一些链接,我知道这是不容易的任务,但我计划在这里投入大量的努力

我的计划是检测气流中的一些常见模式,如果值接近风噪波的常见模式,我会通知找到匹配项,如果值接近已知模式,我可以确保检测到风,如果值与模式不匹配,那么我想没有那么多风

这是我一开始的计划,但我需要了解这些事情是如何完成的。是否有某个开放项目已经在这样做?还是有人在做这方面的研究

我之所以在这个论坛上写作,是因为我不知道如何用谷歌搜索它,我发现的东西不是我想要的。我真的不知道如何开始开发这种算法

编辑1:
我试着录一个风,当我打开保存的音频文件时,它只是一堆数字:)。我甚至不知道我应该用什么格式保存这个,wave足够好吗?我应该使用其他东西吗,或者如果我将风噪音频文件转换成mp3会怎么样:这有助于解析吗

嗯,我有很多问题,那是因为我不知道从哪里可以读到更多关于这类话题的内容。我把我的问题贴上了指南,希望有人能帮助我


一定有可以检测到的东西,因为风噪声是如此普遍,一定有某种方法可以检测到,我们只需要有人给我提示,有人熟悉这个主题。

解决你问题的科学叫做“模式分类”,特别是“音频模式分类”的子领域。这项任务被抽象为将录音分为两类(风和非风)。您似乎在信号处理方面还没有很强的背景,所以让我插入一个中心警告: 模式分类并不像最初看起来那么容易。人类擅长模式分类。计算机没有。

第一个好方法通常是计算信号和样本的傅里叶变换的相关性。不过,我不知道这在多大程度上取决于风速


您可能想看看这种方法,它被成功地用于对环境噪声进行分类。

正如@thiton所提到的,这是音频模式分类的一个示例

风的主要特征:它是一种形状(波段/hp过滤)的白噪声,振幅和音调有小的半随机波动。至少这是大多数合成器复制它的方式,听起来很有说服力

您必须检查频谱内容和波文件中的变化,因此需要FFT。输入格式并不重要,但显然原材料(wav)更好


一旦你得到了,你应该检测到它接近某种有色噪声,然后也许提取一系列的音调和振幅,并尝试使用经典的模式分类算法对该数据集进行分类。我认为监督学习可以在这里工作。

我刚刚看到这篇文章,我最近制作了一个图书馆,可以检测录音中的风噪声

我制作了一个风噪模型,创建了一个示例数据库,然后训练了一个机器学习算法,以感知加权的方式检测和测量风级


如果它对任何人都有用的话

这实际上是一个很难解决的问题

假设您只有一个麦克风数据。当你打开一个音频文件(时域信号)时,你得到的原始数据有一些信息,但对于这种处理来说不是很多。您需要使用FFT进入频域,查看频率箱的统计信息,并使用它来使用SVM或随机林构建分类器

对于@Karoly Horvath,我也不会使用任何经过压缩的录音,比如mp3。音频压缩算法总是会对较高的频率进行失真,事实证明,这是现在检测风的一个重要特征。如果可能,从麦克风获取原始PCM数据。 您还需要确保您的录音采样频率至少为24kHz,这样您就可以获得高达12kHz的信号信息

最后-频域中的风形状不是简单的滤波白噪声。其特点是,它通常在低频(一种隆隆声)中具有高能量,在高频中具有倾斜和拍打声。高频能量是非常短暂的,因此如果FFT大小过大,您将错过这一重要功能

如果您有两个麦克风数据,那么这会变得容易一些。风,当被记录时,是一种局部现象。当然,在录音中,你可以听到树叶的沙沙声或风引起的钟声。但这不是风的噪音,不应该被过滤掉

你在录音中听到的实际恼人的风噪是空气撞击麦克风膜的声音。这种效果是一个局部事件,如果你有两个麦克风,就可以利用它。可以利用它,因为事件是每个麦克风的本地事件,并且与其他麦克风不相关。当然,两个话筒的放置位置也很重要。它们必须合理地彼此靠近(比如说,在8英寸以内)

然后可以使用时域来确定风噪声的存在。(所有其他录制的声音都相互关联,因为麦克风彼此非常接近,因此高关联表示无风,低关联表示有风)。如果使用这种方法,则不需要解压缩输入音频文件。合理的压缩算法不会影响这一点


我希望这一概述能有所帮助。

您是否已经记录了一些风号