如何在 Android 上使用 tarsosDSP 获取当前声音的所有频率使用 FFT_YIN

问题描述

这是得到峰值频率的FFT_YIN算法代码

public PitchDetectionResult getPitch(final float[] audioBuffer) {

    final int tauEstimate;
    final float pitchInHertz;

    // step 2
    difference(audioBuffer);

    // step 3
    cumulativeMeannormalizedDifference();

    // step 4
    tauEstimate = absoluteThreshold();

    // step 5
    if (tauEstimate != -1) {
        final float betterTau = parabolicInterpolation(tauEstimate);

        // step 6
        // Todo Implement optimization for the AUBIO_YIN algorithm.
        // 0.77% => 0.5% error rate,// using the data of the YIN paper
        // bestLocalEstimate()

        // conversion to Hz
        pitchInHertz = sampleRate / betterTau;
    } else{
        // no pitch found
        pitchInHertz = -1;
    }

    result.setPitch(pitchInHertz);

    return result;
}

但是我想通过 tarsosdsp 的 FFT_YIN 算法得到当前声音的所有频率。谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...