C#学习教程:在音频文件中查找音频样本(存在频谱图)以下:来自skype的音频和参考蜂鸣声的FFT结果在数值意义上是不同的,即它们相似但不相同,尽管从带有skype音频记录的音频文件中提取蜂鸣声。下图左侧显示了Skype音频的蜂鸣声谱图,右侧显示了参考蜂鸣声谱图。如您所见,它们非常相似,但又不相同...上传了一张图片http://img27.imageshack.us/img27/6717/spectrogram.png我不知道,如何从这里着手。我应该对它进行平均吗,即将它分成列和行,并比较这些单元格的平均值,如此处所述?正如他所说,我不确定这是最好的方法,它不能很好地处理短音频样本,而且哔哔声的长度不到一秒……关于如何进行的任何提示?您应该确定峰值频率和持续时间(可能是频率持续时间内的最小功率(RMS是最简单的测量)这应该很容易测量。为了让事情变得更聪明(但对于这个简单的匹配任务可能根本不是必需的),你可以断言蜂鸣窗口期间没有其他峰值。更新要比较完整的音频片段,你需要使用卷积算法。我建议使用现成的库实现而不是自己编译。最常见的快速卷积算法通过循环卷积定理使用快速傅立叶变换(FFT)算法,具体来说,就是对两个有限长度的序列取循环卷积,通过对每个序列取FFT,逐点相乘,然后进行逆FFT,然后将此技术与零扩展和/或丢弃部分输出结合使用,可以有效地实现上述类型的卷积。其他快速卷积算法,例如Sch?nhage-Strassen算法,在其他环中使用快速傅里叶变换。维基百科将http://freeverb3.sourceforge.net列为开源候选者编辑以添加指向API教程页面的链接:http://freeverb3.sourceforge.net/tutorial_lib.shtml其他资源:http://en.wikipedia。org/wiki/Finite_impulse_responseFIR滤波器常见问题解答在debian上使用现有的相关工具包:[brutefir-软件卷积引擎][3]jconvolver-JACK的卷积混响引擎libzita-convolver2-实现实时卷积矩阵teem-的C++库apps-处理和可视化科学数据和图像的工具-命令行工具teem-doc-处理和可视化科学数据和图像的工具-文档libteem1-处理和可视化科学数据和图像的工具-运行时yorick-yeti-实用程序插件Yorick语言首先,我会在频率方向对其进行平滑处理,这样频率的微小变化就变得不那么重要了。然后简单地获取每个频率并减去两个幅度。平衡差异并将它们相加。也许首先将信号归一化,这样总振幅的差异就无关紧要了。然后将差异与阈值进行比较。以上是C#学习教程:在音频文件中查找音频样本(频谱图已经存在)。如果对你有用,需要了解更多C#学习教程,希望大家多加关注——本文来自网络合集,不代表立场,如涉及侵权,请点击有权联系管理员删除。如需转载请注明出处:
