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

相关推荐
菜鸟una18 小时前
【微信小程序 + map组件】自定义地图气泡?原生气泡?如何抉择?
前端·vue.js·程序人生·微信小程序·小程序·typescript
昔人'20 小时前
`list-style-type: decimal-leading-zero;`在有序列表`<ol></ol>` 中将零添加到一位数前面
前端·javascript·html
岁月宁静1 天前
深度定制:在 Vue 3.5 应用中集成流式 AI 写作助手的实践
前端·vue.js·人工智能
心易行者1 天前
10天!前端用coze,后端用Trae IDE+Claude Code从0开始构建到平台上线
前端
saadiya~1 天前
ECharts 实时数据平滑更新实践(含 WebSocket 模拟)
前端·javascript·echarts
fruge1 天前
前端三驾马车(HTML/CSS/JS)核心概念深度解析
前端·css·html
百锦再1 天前
Vue Scoped样式混淆问题详解与解决方案
java·前端·javascript·数据库·vue.js·学习·.net
烛阴1 天前
Lua 模块的完整入门指南
前端·lua
浪里行舟1 天前
国产OCR双雄对决?PaddleOCR-VL与DeepSeek-OCR全面解析
前端·后端
znhy@1231 天前
CSS易忘属性
前端·css