我正在读取来自麦克风的原始波流。 (这部分工作正常,因为我可以将其发送给扬声器并获得良好的回声。)
为了简单起见,假设我要在波形数据中检测DTMF音。实际上,我想检测任何频率,而不仅仅是DTMF中的频率。但是我总是知道我要寻找哪个频率。
我曾尝试通过FFT运行它,但是如果我想要高精度的检测(例如,它只存在20毫秒),似乎效率不高。我可以将其检测到大约200毫秒的精度。
关于算法,我有哪些选择?是否有任何.Net库?
如果尝试检测特定频率(例如DTMF输入),则可能需要查看Goertzel算法。基于此算法,Sourceforge上有一个C#DTMF生成器/检测器库。