如果有两个数字化格式的录音声音,是否有一种算法可以比较这两个声音并返回相似度系数呢?
如果有两个数字化格式的录音声音,是否有一种算法可以比较这两个声音并返回相似度系数呢?
有许多不同的算法——这项任务的通用名称是 说话人识别
——从这个维基百科页面开始,然后继续研究:http://en.wikipedia.org/wiki/Speaker_recognition
fftSoundFile1 = fft(soundFile1);
fftConjSoundFile2 = conj(fft(soundFile2));
result_corr = real(ifft(soundFile1.*soundFile2));
其中fft代表快速傅里叶变换,ifft代表反变换,conj代表共轭复数。
fft是在声音文件的样本值上执行的。结果相关向量中的峰值将给出高相关性的位置。
请注意,两个声音文件在此情况下必须具有相同的大小-否则,您必须将较短的一个放入最大(soundFileLength)向量的文件中。
敬礼
编辑:.*表示(在Matlab风格中)逐分量乘法,不得进行向量乘法! 下一步编辑:请注意,您必须使用复数进行计算-但是有几个复数类可用,因此我认为您不必担心这个问题。