【问题标题】:Using FFT to compare two audio files and then realtime comparison使用 FFT 比较两个音频文件,然后实时比较
【发布时间】:2012-04-20 22:56:40
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 你需要了解信号处理,因为这个问题对于 SO 来说太宽泛了。

标签: java android audio fft signals


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 2012-12-16
    • 2010-12-19
    • 2018-11-20
    相关资源
    最近更新 更多