gpt4 book ai didi

c# - 播放文件中的nAudio奇数缓冲区值

转载 作者:行者123 更新时间:2023-12-03 00:35:30 25 4
gpt4 key购买 nike

我从nAudio获得的float数组缓冲区看起来确实很奇怪,当我重播时听起来很完美,但是绘制缓冲区的图形显示的图像看上去大多像噪声。我花了一段时间,但我想我取得了一些进展,但我有些卡住。

出现的float数组的块对齐为8,因此每个样本有4个float(我以16bit进行记录,因此一个float应该很容易容纳这个。但是,每个样本提供2个(通常是3个)(用于负载)float。最终将其绘制为-Charts of Data,最上面的图片是我可以最接近重建的波形,最下面的是记录的波形,中间是原始数据的图表。

在我看来,每个浮点数都只是持有一个字节值,但对于第一个似乎是某种比例因子的值,我感到非常困惑。

在我详细介绍发现的内容之前,我可能会将其保留下来,希望Mark能够确切地知道我如何/为什么看到这种情况。

我目前最好的解码此数据的方法是将数字转换为字节,然后将它们左移在一起,以提供附件的顶部图表。我很确定但是还有更多。

最佳答案

好的,所以在进行了一些进一步的调整之后,我发现float数组实际上是float的字节数组。不确定是否有意义,每个样本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);

关于c# - 播放文件中的nAudio奇数缓冲区值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41797877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com