Android,如何使用麦克风来计算声音频率?

我正在研究音频调谐器应用程序以调整乐器。 用户应该播放一个音符,然后在我的应用程序中我应该显示它有哪个频率。

首先,我应该访问麦克风

AudioRecord recorder = new AudioRecord(MediaRecorder.AudioSource.MIC, sampleRate, AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT, bufferSize); 

然后我需要计算声音的频率。 我怎样才能做到这一点?

我也试图这样做。 我还没有自己管理它,因为我对android开发完全不熟悉,但这里有两个有用的链接到其他调谐器的源代码,一个在Java中,一个不是:

编辑:我想更好地链接到这个网站上的许多替代品,人们试图制作吉他调音器。

  • 如何创建连续运行的调谐器?
  • 在android中声音转换为频率
  • 实时音高检测

重新编辑: FFT.java

解决了我的问题。 (没有正确链接,因为我是新用户)

您需要计算FFT。 也许你可以尝试这个链接:

FFT

但是你可以在互联网上find很多用于FFT算法的实现。