VB.net现场频率检测

Posted

技术标签:

【中文标题】VB.net现场频率检测【英文标题】:VB.net live frequency detection 【发布时间】:2009-03-25 18:14:47 【问题描述】:

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

提前致谢。

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

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

希望这会有所帮助。

【讨论】:

以上是关于VB.net现场频率检测的主要内容,如果未能解决你的问题,请参考以下文章

SCPI 命令 VB.net 在循环中显示值

检测特定频率的算法? [关闭]

如何进行语音频率检测?

如何使用 Goertzel 算法检测频率

检测特定频率和持续时间的哔声

检测音频输入的频率 - Java?