Я создаю мобильное приложение Android, где я пытаюсь определить высоту тона, используя TarsosDSP . Который работал отлично, только если он больше, чем 43 Гц. Но у меня есть требование, чтобы оно работало с частотой 40 Гц. Когда я играю звук, он даже не дает результатов ниже 43. Это , где вы можете создать мелодию онлайн с нужной частотой. вот код.
void connectsAudioDispatchertoMicrophone() {
AudioDispatcher dispatcher = AudioDispatcherFactory.fromDefaultMicrophone(22050, 1024, 0);
PitchDetectionHandler pdh = new PitchDetectionHandler() {
@Override
public void handlePitch(final PitchDetectionResult result, AudioEvent e) {
final float pitchInHz = result.getPitch();
runOnUiThread(new Runnable() {
@Override
public void run() {
if (pitchInHz > 1)
Log.d(TAG, "pitchInHz: " + pitchInHz);
}
});
}
};
AudioProcessor p = new PitchProcessor(PitchProcessor.PitchEstimationAlgorithm.FFT_YIN,
22050,
1024,
pdh);
dispatcher.addAudioProcessor(p);
thread = new Thread(dispatcher, "Audio Dispatcher");
thread.start();
}