这是获取峰值频率的 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 算法得到当前声音的所有频率。谢谢