虽然我在这个网站上有很多关于音高检测概念的问题......但它们都处理了我不熟悉的神奇FFT.我正在尝试构建一个需要实现音调检测的Android应用程序.我完全不了解用于执行此操作的算法.
这可不是那么难吗?毕竟,Android市场上有大约80亿个吉他调谐器应用程序.
有人可以帮忙吗?
我正在研究音频调谐器应用程序以调整乐器.用户应该播放一个音符,然后在我的应用程序中,我应该显示它有哪个频率.
首先,我应该访问麦克风?
AudioRecord recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,
sampleRate, AudioFormat.CHANNEL_IN_STEREO,
AudioFormat.ENCODING_PCM_16BIT, bufferSize);
Run Code Online (Sandbox Code Playgroud)
然后我需要计算声音的频率.我怎样才能做到这一点?
我正在使用Objective-C为 iOS 制作吉他调音器。由于我是初学者,我正在努力收集有关它的所有资源和信息。我知道这样的理论(如果我错了,请纠正我):-
在堆栈和谷歌上搜索时,我发现人们谈论了很多关于AurioTouch 的例子,所以我看了一下这个例子,但是我无法弄清楚到底发生了什么,因为代码主要是用 C++ 返回的和指针,我至少现在无法理解。我还发现了EZAudio示例,这是一个很棒的示例,似乎工作正常,但根据我的研究,吉他的基频测量为:-
String Frequency
1 (E) 329.63 Hz
2 (B) 246.94 Hz
3 (G) 196.00 Hz
4 (D) 146.83 Hz
5 (A) 110.00 Hz
6 (E) 82.41 Hz
Run Code Online (Sandbox Code Playgroud)
从 EZAudioFFT 示例中,我得到了频率:-
String Frequency
1 (E) 333.02 Hz
2 (B) 247.60 Hz
3 (G) 398-193 Hz (398 when start and 193 when end)
4 (D) 290-150 Hz (290 when …Run Code Online (Sandbox Code Playgroud) android ×2
audio ×2
frameworks ×1
frequency ×1
ios ×1
java ×1
microphone ×1
objective-c ×1
xcode ×1