Web Audio API中ScriptProcessor的float32[]音频数据类型及编码疑问
ScriptProcessor输出的音频数据解析
- 你拿到的
float32[]是归一化后的原始PCM采样数据,不属于.wav这类带容器的格式,就是最基础的PCM裸数据。 - 数值范围[-1.0, 1.0]是浏览器音频API的标准输出形式:它把常规16位有符号整数PCM(也就是你C#里PvRecorder输出的
short[],范围[-32768, 32767])做了归一化,每个采样值除以32768得到浮点数。 - 纠正个小错误:PvRecorder的
short[]是16位有符号整数PCM,不是无符号字节——无符号的是8位PCM(范围0-255),别搞混了。 - 你编码器识别失败的核心问题就是格式不匹配:多数编解码库要求输入16位有符号整数PCM(
Int16Array),把float32[]转成这个格式就行,逻辑很简单:每个浮点数乘以32767,再取整(注意边界值,超过1.0的取32767,低于-1.0的取-32768)。
内容的提问来源于stack exchange,提问作者Mamink
相关产品推荐
相关产品推荐

