我希望能够在 VB.net 中进行生命频率检测。我必须说我真的不知道从哪里开始。我研究了 BASS.net,但这似乎只适用于预先录制的音频。我需要能够近乎实时地检测通过线路输入或麦克风输入的音频频率。
提前致谢。
也许NAudio是一个开源的 .NET 音频和 MIDI 库,可以提供帮助。我还会查看这篇 CodeProject 文章以获取灵感。
我有使用 BASS/C++ 进行实时频率检测的经验。它在 C++ 中基本上是这样的。我认为您可以轻松找到 .NET 等价物:
初始化:
// initialize BASS recording (default device)
if (!BASS_RecordInit(-1)) {
LOG("Can't initialize device")
exit(-1);
}
// start recording (44100hz mono 16-bit)
if (!(m_recChan = BASS_RecordStart(44100, 1, 0, &DuffRecording, 0))) {
LOG("Can't start recording")
然后将计时器设置为每 50 毫秒检索一次频率数据。这是使用的代码。
float fft[4096];
BASS_ChannelGetData(m_recChan, fft, BASS_DATA_FFT8192); // get the FFT data
希望这可以帮助。