我想使用带有 MP3FileReader 对象的 NAudio 将 mp3 读入字节数组,然后我会尝试 fft 它来创建频谱分析仪,但我找不到任何关于它的方法的文档。你有什么建议或例子吗?
问问题
7084 次
3 回答
1
MP3 被编码。在 MP3 上执行 FFT 只会扰乱数据。首先解码,删除元数据,然后作为样本读入数组。确保元素大小与样本大小相同。
MATLAB 和 Octave 非常适合信号处理。
抱歉,没有任何 NAudio 经验。
于 2013-03-27T03:50:33.827 回答
1
File.ReadAllBytes将文件读入字节数组:
var bytes = File.ReadAllBytes(fileName);
于 2013-03-27T03:37:52.220 回答
0
要将音频传递到 FFT,您需要先将其转换为 PCM。NAudioMp3FileReader
附带的会自动执行此操作。因此,当您调用时,Read
您将获得 16 位 PCM 作为字节数组。如果AudioFileReader
改为使用,则可以将样本作为浮点数,标准化为 +/- 1.0 范围,这是传递给 FFT 的理想选择(尽管您需要分别计算每个通道的 FFT)。如果您查看 NAudio WPF 项目的源代码,您会发现它使用 FFT 来创建频谱分析仪。
于 2013-03-27T07:00:07.753 回答