使用FFT比较两个音频文件,然后进行实时比较

时间:2012-04-07 21:17:13

标签: java android audio fft signals

我正在制作Android应用程序,它将保存用户语音命令,然后在应用程序运行时;将麦克风输入的实时数据与保存的数据进行比较。到目前为止,我已经将声音保存在wav文件中,现在我想将它与输入流进行比较。我使用此API应用了FFT,因为它与Android兼容:

http://code.google.com/p/musicg/

我也不太了解这个api但是,我认为FFT数据存储在FrequencyTimeDomainRepresentation对象中。我在互联网上搜索,发现我必须使用一个窗口来比较数据但是,我无法怎么做。 我不知道如何比较数据。

请告诉我如何比较FFT数据以及如何将保存的文件数据与输入流数据相匹配,我的意思是代码。与此同时,我正在尝试使用java不在Android上比较两个音频文件。

任何帮助将不胜感激, 感谢。

1 个答案:

答案 0 :(得分:0)

正如评论中所提到的,这是一个与dsp相关的问题。您应该在dspexchange上询问详细信息。

但要给你一个快速的答案。准确定义您的algortihm应该做什么。它应该进行语音识别吗?如果你只是想要一个简单的同步度量使用互相关(请问google)。你也不需要FFT(最近FFT似乎过度使用了很多。每个人都不知道他在做什么,想出了那些FFT的东西)。一旦你知道自己想要做什么就知道你真的需要它就可以发挥作用。也许是为了应用一些精神科学模型。但即便如此,简单的haar变换可能更充足,更简单,更快速,尤其是在移动设备上。