2

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

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

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

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

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

4

1 回答 1

0

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

但是给你一个快速'n'dirty的答案。准确定义您的算法应该做什么。它应该做语音识别吗?如果您只想对相似性有一个简单的度量,请使用互相关(询问谷歌)。你也不需要 FFT(FFT 似乎被过度使用了,最近。每个不知道他在做什么的人都想出了 FFT 的东西)。一旦你知道你想做什么并且你知道你真的需要它,FFT 可能会发挥作用;也许是为了应用一些心理声学模型。但即便如此,简单的 haar 变换也可能更充分、更简单、更快,尤其是在移动设备上。

于 2012-04-10T12:46:04.997 回答