我从nAudio得到的浮点数组缓冲区看起来很奇怪,当我重放它听起来很完美但是缓冲图表显示的图像看起来很像噪音。我花了一段时间,但我认为我取得了一些进展,但我有点卡住了。
出来的浮点数组的块对齐为8,因此每个样本有4个浮点数(我在16位记录,所以一个浮点数应该很容易保持这个。但是有2个,通常有3个(用于加载)浮点数每个我最终绘制了它的图形 - Charts of Data。顶部的图片是我能够重建波浪的最接近的图片,底部是记录的波浪,中间是原始数据的图表。
在我看来,每个浮点数只是保持一个字节值,但我很困惑第一个值似乎是某种比例因子。
在我详细了解我发现的内容之前,我可能会把它留在那里,希望Mark能够确切地知道我是怎样/为什么看到这个。
我目前解码此数据的最佳尝试是将数字转换为字节,然后将它们移位到一起,从而提供附加的顶部图表。我很确定它还有更多。
答案 0 :(得分:1)
好的,经过多次调整后,我发现浮点数实际上是浮点数的一个字节数组。不确定这是否有意义,每个"浮动"在每个样品的4个浮子中是原始的碎片组成浮子。
最后,这使得将缓冲区处理成浮点数组非常容易,如下所示;
_samplesToProcess = floatsIn.Length / WaveFormat.BlockAlign * WaveFormat.Channels;
if (_rawFloatsOut.Length < _samplesToProcess)
_rawFloatsOut = new float[_samplesToProcess];
Buffer.BlockCopy(floatsIn, 0, _rawFloatsOut, 0, floatsIn.Length);
BufferProcessor(_rawFloatsOut);