gpt4 book ai didi

audio - 是否可以/如何对样本大小不是 8 的倍数的 WAV 文件进行编码

转载 作者:行者123 更新时间:2023-12-02 22:19:34 25 4
gpt4 key购买 nike

我正在尝试从 Arduino Uno 的模拟输入编码 WAV 文件。 analogRead(pinNumber) 函数返回 0 - 1023 之间的值。然后需要将这个 10 位值编码到 WAV 文件中。有一个函数 map(val, inMin, inMax, outMin, outMax) 可以将其调整为完整的 16 位值(或 8 位值)。但理想情况下,如果我可以简单地将 WAV 文件的样本大小设为 10 位,那就完美了。我知道如何将其写入 header ,但我不知道它是否真的有效,或者如果数据不是 8 位的倍数,则如何实际写入数据。

如果可能的话,我认为它需要一些奇特的按位运算,但我不知道如何实现这一点。

最佳答案

任何应用程序都不可能读取包含 10 位采样的波形文件。很少有程序能够读取打包的 24 位数据。可能是因为解压回 32 位非常麻烦。

最好的选择是将其存储为 16 位签名。该问题提到调用一个映射函数,该函数可能会将 10 位音频重新调整为 16 位音频。更好的解决方案是将 10 位样本向上移动,以便它们左对齐,而将低 6 位保留为零。这样做有几个优点。首先,重新缩放不会提高音频质量(显然),只会增加一些额外的量化噪声。其次,如果您想将其作为 10 位音频读回,您只需将其向下移动或执行其他操作,而不会损失任何精度。

关于audio - 是否可以/如何对样本大小不是 8 的倍数的 WAV 文件进行编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26768722/

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