VB.net实时频率检测

时间:2009-03-25 18:14:48

标签: vb.net audio frequency

我希望能够在VB.net中进行生命频率检测。我必须说我真的不知道从哪里开始。我已经查看了BASS.net,但这似乎只适用于预先录制的音频。我需要能够近乎实时地检测通过线路输入的音频或麦克风输入的频率。

提前致谢。

2 个答案:

答案 0 :(得分:2)

也许NAudio,一个开源的.NET音频和MIDI库,可以提供帮助。我也会检查this CodeProject article的灵感。

答案 1 :(得分:0)

我有使用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")

然后设置定时器以检索每50ms的频率数据。这是使用的代码。

                    float fft[4096];
                    BASS_ChannelGetData(m_recChan, fft, BASS_DATA_FFT8192); // get the FFT data

希望这有帮助。