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

5

我正在开发一款音频调谐应用程序,用于调谐乐器。用户需要演奏一段音符,然后在我的应用程序中,我需要显示其频率。

首先,我需要访问麦克风吗?

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

然后,我需要计算声音的频率。我该怎么做?

2个回答

4

我也在尝试做这件事。由于我完全是新手,还没有成功实现,但是以下两个有用的链接提供了其他调音器的源代码,一个是Java,一个不是:

编辑: 我认为最好链接到此网站上的许多替代方案,这些替代方案都是人们正在尝试制作吉他调音器。

重新编辑: FFT.java

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


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

FFT

但是你可以在互联网上找到很多FFT算法的实现。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接