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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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
Audio 从Arduino中的FFT检测特定模式_Audio_Arduino_Pattern Matching_Audio Fingerprinting - Fatal编程技术网

Audio 从Arduino中的FFT检测特定模式

Audio 从Arduino中的FFT检测特定模式,audio,arduino,pattern-matching,audio-fingerprinting,Audio,Arduino,Pattern Matching,Audio Fingerprinting,我有一个麦克风的FFT输出,我想从中检测特定动物的嚎叫(它在特征频谱中嚎叫)。有没有办法在Arduino中实现模式识别算法 我已经有它的FFT部分在2kHz采样率下使用128个采样。查找音频指纹。。。基本上,您可以探测FFT调用的频域输出,并对频率范围和每个频率的幅度进行快照,然后在已知动物信号和未知信号之间进行比较,并输出这些差异的测量值 当未知信号是您的实际已知信号时,这种差异自然会接近零 这里是另一层:为了获得更好的保真度,而不是对整个可用音频执行单个FFT,请使用样本子集进行多次FFT调

我有一个麦克风的FFT输出,我想从中检测特定动物的嚎叫(它在特征频谱中嚎叫)。有没有办法在Arduino中实现模式识别算法


我已经有它的FFT部分在2kHz采样率下使用128个采样。

查找音频指纹。。。基本上,您可以探测FFT调用的频域输出,并对频率范围和每个频率的幅度进行快照,然后在已知动物信号和未知信号之间进行比较,并输出这些差异的测量值

当未知信号是您的实际已知信号时,这种差异自然会接近零

这里是另一层:为了获得更好的保真度,而不是对整个可用音频执行单个FFT,请使用样本子集进行多次FFT调用。。。对于每次通话,请将此示例窗口进一步滑入音频剪辑。。。假设你的音频片段是2秒,但在这里你只向你的FFT调用发送了200毫秒的样本,这会给你至少10个这样的FFT结果集,而不是你吞下整个音频片段时的一个结果集。。。这给了你时间特异性的概念,这是一个额外的维度,用来推导已知和未知信号之间更丰富的数据差异。。。试着看看滑动一下窗户是否有帮助,而不是把每个窗户端对端地排成一行

明确地说,你有一个频率范围,比如说沿X轴传播,然后沿Y轴传播,你有从音频剪辑中提取的不同时间点的每个频率的幅值,正如你根据上述段落改变样本窗口一样。。。现在你有了一个数据点的二维网格

再次,为了增加置信区间,您需要在已知源动物嚎叫的多个不同音频片段中对每个未知信号执行以上操作,因此现在您有了一个三维参数景观。。。正如您所看到的,您可以集合的每个附加尺寸将提供更大的牵引力,从而获得更精确的结果

从一个非常不同的未知音频开始,轻松区分已知音频。。。说一个50赫兹的正弦曲线音调为已知的音频信号对8000赫兹的正弦波为未知的。。。然后试着像你所知道的那样弹奏一把吉他,像不知道的那样用小号。。。然后继续使用实际的音频剪辑

Audacity是业界一款优秀的免费音频工作工具-它可以轻松绘制WAV文件以显示其时域信号或FFT频谱图。。。Sonic Visualiser也是一个顶级工具


这不是一个简单的银弹,但是,您添加到解决方案中的每一层都可以为您提供更好的结果。。。这是一个你正在制作的过程,不是一个单一维度的挤压触发器。

Hi!所以,对我来说,最大的问题是我找不到一个Arduino的音频指纹库:(.你知道我有什么方法可以自己实现吗?