gpt4 book ai didi

javascript - 将 Float32Array 转换为 16 位 float 组缓冲区 JavaScript

转载 作者:行者123 更新时间:2023-11-30 05:40:50 27 4
gpt4 key购买 nike

我在 Float32Arrays 中获取 PCM 音频样本。但是我的应用程序只能支持 16 位长度的数据,所以我需要转换。

我不确定如何执行此操作,因为 Float16Array 没有类型化数组,而且我从未在位级别上处理过数据。有人可以解释或展示如何做到这一点吗?

最佳答案

首先,JavaScript 是动态类型的,没有类型长度/大小的概念。

native 平台内部可以使用何种类型大小是运行时的问题,但这并不一定会限制可能的值,即在 JavaScript 运行时环境中的模拟类型长度。

此外,您可能需要 16 位整数才能将其传递给音频设备。会更有意义。

因此,我会将您的问题缩小为:如何在 JavaScript 中将 float 转换为 int ,答案在这里: How do I convert a float number to a whole number in JavaScript?

但是如果您真的想转换值的精度:您可以做的是乘以 X,然后对其进行舍入(“转换为 int”,请参阅上面的链接),然后再次除以 X。但是,这不像将一种大小的 float 转换为另一种大小,因为您没有考虑实际内存中 float 的尾数/指数表示。我的解决方案只会降低一些精度(如果你愿意的话,可以量化)。

无论如何,JavaScript 不是处理类型的内存表示的平台;它已经足够困惑来处理 float 和 int 之间的区别;)

关于javascript - 将 Float32Array 转换为 16 位 float 组缓冲区 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20925527/

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