【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]

相关推荐
F1FJJ7 分钟前
Shield CLI:MySQL 插件 vs phpMyAdmin:轻量 Web 数据库管理工具对比
前端·网络·数据库·网络协议·mysql·容器
李明卫杭州22 分钟前
JavaScript 严格模式下 arguments 的区别
前端·javascript
swipe25 分钟前
向量数据库实战:为什么 AI Agent 离不开 Milvus
前端·面试·agent
小锋学长生活大爆炸35 分钟前
【教程】Edge浏览器中可以提升性能的flags
前端·edge
苍舒墨37 分钟前
如何借助Github pages部署React+vite静态前端项目
前端
曹牧1 小时前
JSON 数组的正确使用方式
java·服务器·前端
小村儿1 小时前
一起吃透 Claude Code,告别 AI 编程迷茫
前端·后端·ai编程
小金鱼Y1 小时前
🔥 前端人必看:浏览器安全核心知识点全解析(XSS/CSRF/DDoS)
前端·javascript·安全
时寒的笔记1 小时前
js逆向05_ob混淆花指令,平坦流,某麦网(突破ob混淆寻找拦截器)
开发语言·前端·javascript
ZengLiangYi2 小时前
从文章到脚本:把 Git Tag + Semver + CI/CD 收敛成一个 `release.mjs`
前端·github