0

这是获取峰值频率的 FFT_YIN 算法的代码

公共 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 算法得到当前声音的所有频率。谢谢

4

0 回答 0