Javascript 根据声音片段的原始音频阵列数据计算持续时间

Javascript 根据声音片段的原始音频阵列数据计算持续时间,javascript,audio,buffer,duration,pcm,Javascript,Audio,Buffer,Duration,Pcm,如何从原始阵列数据评估声音片段的持续时间 我从麦克风获得原始数据,我知道采样率和通道数。我需要数学公式来计算这个音频片段的持续时间 我发现: 1000 * bytesLength / 4 / rate_hz 但我认为这是错误的。在PCM格式原始音频的质量和资源需求之间取得平衡的突出因素: Attribute Typical Values ____________ _________________ bit_depth 16 bits per sample (8 bits p

如何从原始阵列数据评估声音片段的持续时间

我从麦克风获得原始数据,我知道采样率和通道数。我需要数学公式来计算这个音频片段的持续时间

我发现:

1000 * bytesLength / 4 / rate_hz

但我认为这是错误的。

在PCM格式原始音频的质量和资源需求之间取得平衡的突出因素:

 Attribute     Typical Values
____________  _________________
bit_depth     16 bits per sample (8 bits per byte)        ... higher the better
num_channels  2 for stereo (or 1 for mono), lets use stereo
sample_rate   44100 samples per second (CD quality audio) ... higher the better
此公式表示上述变量之间的关系:

storage_in_bytes / second == num_channels * sample_rate * bit_depth / 8
秒解:(这是你要的方程式)

使用上述变量插入时,我们需要以字节为单位提供存储,或以秒为单位提供持续时间,因此如果

storage_in_bytes = 2 mb = 2097152 bytes
然后我们得到

duration = 2097152/(2 * 44100 * (16/8)) = 11.89 seconds

在第一个等式中,
bit\u depth
除以
2
,但在下一个等式中(您所说的OP要求的等式),
2
消失了。你能解释一下为什么吗?每1字节8位。。。所以16位的位深度==(16位/8)字节==每个样本2个字节。。。好的渔获量现在被修正了
duration = 2097152/(2 * 44100 * (16/8)) = 11.89 seconds