Tag:

使用Naudio将每个WAV通道保存为单通道WAV文件

我正在尝试将WAV文件(PCM,48kHz,4通道,16位)转换为单通道WAV文件。 我尝试将WAV文件拆分成4个字节数组,就像这个答案一样,并创建了一个WaveMemoryStream,如下所示,但不起作用。 byte[] chan1ByteArray = new byte[channel1Buffer.Length]; Buffer.BlockCopy(channel1Buffer, 0, chan1ByteArray, 0, chan1ByteArray.Length); WaveMemoryStream chan1 = new WaveMemoryStream(chan1ByteArray, sampleRate, (ushort)bitsPerSample, 1); 我在创建WAVE标题时遗漏了什么? 或者更多的是将WAV分成单声道WAV文件?

从原始波数据中检测特定频率/音调

我正在读取来自麦克风的原始波流。 (这部分可以正常工作,因为我可以将它发送到扬声器并获得良好的回声。) 为简单起见,我想要检测波形数据中的DTMF音调。 实际上我想检测任何频率,而不仅仅是DTMF中的频率。 但我总是知道我要找的频率。 我试过通过FFT运行它,但如果我想要高精度的检测(例如它只有20毫秒),它似乎不是很有效。 我可以检测到它的精度大约为200毫秒。 关于算法,我有哪些选择? 它有任何.Net库吗?