0

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

提前致谢。

4

2 回答 2

2

也许NAudio是一个开源的 .NET 音频和 MIDI 库,可以提供帮助。我还会查看这篇 CodeProject 文章以获取灵感。

于 2009-03-25T18:23:54.837 回答
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")

然后将计时器设置为每 50 毫秒检索一次频率数据。这是使用的代码。

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

希望这可以帮助。

于 2009-03-30T13:57:19.900 回答