2012-05-25 78 views
3

我将录制自己的声音并将它们保存为我的电脑中的wav文件。稍后我会说和电脑应与已有的/预先录制的WAV文件,我的语音命令..如何比较两个音频数据?

问:如何检查两个音频数据等于或之间有两个音频80%的比赛?

if(audio1 == audio2) 
    DO Task A 
else if(audio1 is a bit similar to audio 2) 
    DO TASK B 
else if(audio1 (80% match) audio 2) 
    DO TASK C 
end if 

什么是比较两个音频数据的最佳方法?

+0

取决于您的音频数据。它的声音?是音乐吗?它是纯色调吗?典型样本的长度是多少? –

+0

@DavidBrabant是声音只.. – Somnath

+0

认为这将是我自己的声音命令到我的电脑..“做到这一点”,“做到这一点”对我来说。 – Somnath

回答

1

相似之处,你的意思是纯粹的数字?在这种情况下,互相关分析就足够了。否则,如果您的意思是听众对声音样本的听觉感知相似,那么您需要阅读声学指纹识别。

编辑:

我从你想要做语音识别的一种简单形式的更新猜测,是否正确?如果是这种情况,那么在非常有限的语料库中获得信号的最佳匹配的最佳选择是基于Dynamic Time Warping (DTW)的识别器。 Hidden Markov Model为基础的识别系统是最先进的,但基于DTW的系统将更加容易实现。

+0

我已经更新了我的问题。请检查。 – Somnath

0

正如其他人所建议的,除非您可以提供更多信息,否则没有简单的解决方案。如果它们只是非常短的声音,而这些声音不会随时间变化很大,那么可能会做一个FFT并比较FFT的结果。

对于更复杂的事情,你可以采取类似的方法,但要做STFT。

然而,在所有可能情况下,您的问题都有一个特定于域的答案。

+0

这将是我自己的声音命令到我的电脑..“做到这一点”,“做到这一点”我.. – Somnath

+0

我更详细地解释了需求。我已更新该帖子。请检查。 – Somnath

2

你可以从Homemade Speech Recognition找到一些想法。这是针对.NET紧凑型框架,但可以很容易地适应普通vanilla .NET。该解决方案基于快速傅立叶变换

3

不幸的是,您只是试图直接比较音频波形,所以不会很快得到任何结果。关于言语和说话人识别的研究有很多,如果你不熟悉基本知识,你就会重新发明轮子。我觉得你在这里取决于你真正想做的事

  • 开始阅读有关的HMM,DTW(由learnvst提到的)多种选择,并Mel-frequency Cepstral Coefficients知道从哪里开始。
  • 使用现有的语音API,例如其采用低电平信号处理,你可以建立到应用程序的照顾Microsoft one
  • 使用的东西,甚至更高的水平,例如,给你来控制方面的能力Windows Speech Recognition Macros你的电脑通过语音(例如'玩紫雾')

这取决于你是否想要了解低水平的语音处理(这将涉及大量的数学),或者你是否只想要一些可行的几乎没有编码。