【问题标题】:Get frequency and pitch from audio recorded file in android从android中的音频录制文件中获取频率和音高
【发布时间】:2013-07-30 03:51:47
【问题描述】:

我正在尝试做一个应用程序,用户会说一些话,然后单击一个按钮,该按钮将为他们提供他们所说的话的频率值。我一直在搜索,我得出的结论是,我需要先使用录音类,录制语音,然后使用 FFT 将其转换为频率。 我的主要问题是 FFT 给出了频率图,我不需要它,我需要频率和音高值。我该怎么做?

请帮帮我:)

【问题讨论】:

标签: android fft android-audiorecord pitch-tracking


【解决方案1】:

您可以使用很多方法来帮助完成此过程。 JTransforms 是一个让您轻松进行 FFT 的库。您需要在多个点进行 FFT 以获得每个点的相应频率。当我说“点”时,我的意思是您应该将音频分成将单独进行 FFT 的块。这些块可以重叠以提高准确性。也可以在执行 FFT 之前对它们进行加窗以获得更高的准确性。

然后,需要对 FFT 的结果进行更多的操作以使结果更准确。这可以使用倒谱分析或谐波乘积频谱分析以及其他方式来完成。

最后,请记住,除了 FFT 之外,还有其他解决方案。自相关方法根本不使用频域。它检查实际的音频文件样本以确定频率。这在计算上可能更昂贵,但也可能更准确。

【讨论】:

    【解决方案2】:

    除非您正在收集纯音高的声音(如正弦波),否则您的结果实际上将是您目前使用 FFT 获得的频率范围(查看this 描述)。

    可以通过使用音高估计算法从 FFT 图中收集声音的音高(请参阅答案 here)。 Here's some links 开源音高跟踪实现,如果合适的话。

    这绝对是可行的!

    祝你好运。

    【讨论】:

    • 你能给我提供一个使用音高估计算法获取音高值的例子吗?
    • 嘿 Nutan,不是很抱歉。有一个很好的例子 here 用于处理 FFT 值,以及频率到音高的映射 here。真希望我能提供更多帮助。
    猜你喜欢
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多