gpt4 book ai didi

web-audio-api - 如何以特定位深度渲染?

转载 作者:行者123 更新时间:2023-12-02 04:00:45 25 4
gpt4 key购买 nike

OfflineAudioContext.startRendering() 如何输出包含我选择的位深度(16 位或 24 位)的 AudioBuffer?我知道我可以使用 AudioContext.sampleRate 轻松设置输出的采样率,但如何设置位深度?

我对音频处理的理解非常有限,所以也许它并不像我想象的那么容易。

编辑#1:

实际上,AudioContext.sampleRate 是只读的,因此如果您知道如何设置输出的采样率,那就太好了。

编辑#2:

我猜采样率是在编码的 WAV 中的 channel 数之后插入的(在 DataView 中)

最佳答案

您不能直接执行此操作,因为 WebAudio 仅适用于浮点值。你必须自己做这件事。基本上从离线上下文中获取输出,并将每个样本乘以 32768(16 位)或 8388608(24 位),然后舍入为整数。这假设上下文的输出位于 -1 到 1 的范围内。如果不是,则必须进行额外的缩放。最后,您可能需要将最终结果除以 32768 (8388608) 以获取 float 。这取决于最终的应用是什么。

对于编辑 #1,答案是,当您构造 OfflineAudioContext 时,您必须指定采样率。将其设置为您想要的速率。不确定 AudioContext.sampleRate 与此有什么关系。

对于编辑 #2,没有足够的信息来回答,因为您没有说明 DataView 是什么。

关于web-audio-api - 如何以特定位深度渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42027805/

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