【web音频学习(一)】音频基础

物理的声音

音调

由声波的频率决定,频率越高,音调越高;频率越低,音调越低。

  • "振动次数"指一次完整的往复运动,即一个完整周期。
  • 单位:赫兹 (Hz),1 Hz = 1 次/秒。

声响

由声波的振幅决定,振幅越大,能量越多,人耳感觉越响;振幅越小,越轻。

  • 单位:分贝 (dB)。

音色

由声波的波形决定,体现声源的独特"指纹"。

计算机中的音频

基本概念

采样率

每秒钟对模拟声波进行采样的次数

  • 单位 Hz(或 kHz)。

  • 常见值:44 100 Hz(CD 音质)、48 000 Hz(专业音频)。

  • 一般采用率需要最少是声调的两倍,一次声波震动,最少要记住最高点和最低点,这样才能记录足够多的数据。

  • 采样率越高,生产的音频图波形越圆滑。

采样大小(位深)

每次采样记录的量化精度,用多少个二进制位来表示瞬时振幅。

比如:16bit 所表示的数据返回是 [2**-15,2**15]

  • 常见值:16 bit(CD)、24 bit(高清录音)。
  • 位深越大,采样数据精度越大,动态范围越宽,噪声越小。

声道

同时记录的独立音频信号数量

  • 1 = 单声道(Mono),2 = 双声道/立体声(Stereo)。
  • 声道数量遇到,音频音质更大,但是音频大小也会倍数增长。

位速(码率 / 比特率)

每秒存储或传输的总数据量

  • 单位 bit/s(或 kbps、Mbps)。
  • 计算:位速 = 采样率 × 采样大小 × 声道数 例:44 100 Hz × 16 bit × 2 ch ≈ 1 411 kbps(CD 立体声)。

例题

采样频率 44100 Hz,采样精度16 bit,单声道,采集3 分钟,文件大小是多少MB。

44100 * 16 * 3 * 60 = 127008000 bit

2116800 / 8 / 1024 / 1024 ≈ 15.141M

原始音频数据PCM

未经压缩的原始音频数字信号,只记录瞬时振幅,不压缩、不编码。

  • 单声道:采样点按时间顺序依次排列。
  • 多声道(如立体声) :各声道采样值 交叉(interleaved)存放,小端字节序: 例:L R L R ...

位宽 / 数值范围

位宽 每采样字节 典型类型 数值区间 备注
8 bit 1 UInt8 0‒255 无符号
16 bit 2 Int16 --32 768‒+32 767 小端
24 bit 3 Int24 --8 388 608‒+8 388 607 需对齐
32 bit 4 Int32 --2 147 483 648‒+2 147 483 647 小端
32 bit Float 4 Float32 --1.0‒+1.0(实际裁剪区) Web 麦克风常用

Web 端麦克风 API 返回的 Float32Array32-bit IEEE-754 浮点 PCM ,每个采样 4 字节,值域 [-1.0, 1.0]

相关推荐
空中海2 小时前
第七章:vue工程化与构建工具
前端·javascript·vue.js
zhensherlock2 小时前
Protocol Launcher 系列:Trello 看板管理的协议自动化
前端·javascript·typescript·node.js·自动化·github·js
zhuà!2 小时前
element的el-form提交校验没反应问题
前端·elementui
龙猫里的小梅啊2 小时前
CSS(一)CSS基础语法与样式引入
前端·css
小码哥_常2 小时前
从0到1,开启Android音视频开发之旅
前端
渔舟小调3 小时前
P19 | 前端加密通信层 pikachuNetwork.js 完整实现
开发语言·前端·javascript
qq_12084093713 小时前
Three.js 工程向:Draw Call 预算治理与渲染批处理实践
前端·javascript
不会聊天真君6476 小时前
JavaScript基础语法(Web前端开发笔记第三期)
前端·javascript·笔记
IT_陈寒6 小时前
SpringBoot自动配置这破玩意儿又坑我一次
前端·人工智能·后端