Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.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
Linux 比较录音_Linux_Matlab_Audio_Signal Processing_Fft - Fatal编程技术网

Linux 比较录音

Linux 比较录音,linux,matlab,audio,signal-processing,fft,Linux,Matlab,Audio,Signal Processing,Fft,我有5个录制的wav文件。我想将新传入的录音与这些文件进行比较,并确定其中最相似的一个 在最后的产品中,我需要在Linux上用C++实现它,但是现在我在Matlab进行实验。我可以很容易地看到FFT图。但我不知道如何比较它们 如何计算两个FFT图的相似性 编辑:录音中只有语音。事实上,我正试图找出一些电信公司的应答机的反应。区分两条信息就足够了:“目前无法联系到此人”和“不再使用此号码”这在很大程度上取决于您对“最相似”的定义。根据您的用例,这可能是很多事情。如果您只想比较整个文件的裸光谱,您可

我有5个录制的wav文件。我想将新传入的录音与这些文件进行比较,并确定其中最相似的一个

在最后的产品中,我需要在Linux上用C++实现它,但是现在我在Matlab进行实验。我可以很容易地看到FFT图。但我不知道如何比较它们

如何计算两个FFT图的相似性


编辑:录音中只有语音。事实上,我正试图找出一些电信公司的应答机的反应。区分两条信息就足够了:“目前无法联系到此人”和“不再使用此号码”

这在很大程度上取决于您对“最相似”的定义。根据您的用例,这可能是很多事情。如果您只想比较整个文件的裸光谱,您可以将两个FFT返回的值关联起来

但是,当文件在时间上发生扭曲时,光谱往往会发生很大变化。要找出与此不同的地方,您需要进行加窗fft并比较每个窗口的频谱。然后,它定义了可以在应用程序中使用的差分函数

如果你需要感知上的相似性,FFT可能无法满足你的需要。一部分录音很可能更接近这个问题。同样,您可能需要计算窗口MFCC,而不是整个录制的MFCC

如果你有音乐录音,你需要完全不同的方法。有一篇博客文章描述了Shazam是如何工作的,所以你可以在谷歌上找到它。或者如果你想要真正的音乐相似性,看看

编辑


上述问题的最佳解决方案是所述的(“shazam算法”,如上所述)。然而,这有点复杂,更简单的解决方案可能就足够了。

如果您知道只有5个不同的可能传入文件,我建议首先尝试一些简单的方法,比如计算两个信号之间的欧几里得距离(时间或傅里叶)。这可能会给你带来好的结果


编辑:因此,使用不同的可能开始,尝试进行自相关,看看哪个文件的峰值更高。

我建议您计算简单的声音参数,如基频。有几种方法可以得到这个值——我尝试了自相关和倒谱,对于语音信号,它们工作得很好。有了这样的功能,您可以进行时间分析,并在给定的间隔频率上比较两个信号(基-您要比较的,在-您要匹配的)。根据这些标准比较几个时间间隔可以告诉您哪个基本样本最匹配


当然,一切都取决于你的意思。要比较函数,您可以引入其他参数,如音量、噪音、咔哒声、音调…

没有音乐或感知解释。它们只是电信公司的固定录音。尽管如此,由于线路的原因,它们的质量可能较低,或者录音的开始时刻可能不同。如果它们除了噪音之外是相同的,我也不建议比较FFT,而是建议进行互相关。这应该会有足够好的结果。我会有大约10-15次录音。你认为可以很快完成吗?你能参考一些关于计算音频文件欧几里得距离的资料吗?另一点是,传入记录的起始时刻可能会相差几秒钟。你认为采用欧几里得距离可以解决这个问题吗?如果起点可能不同,你可以尝试互相关()并查看哪个文件的峰值更高。我从类似的问题开始,并构建了自己的音频查找打印解决方案。尝试在该区域搜索图书馆。。。