声音的 22 种看法:从波形到时频域的可视化全家桶

声音本质是个一维信号 —— 麦克风每秒采样几万次”此刻空气被推了多少”,串起来就是一条曲线。但这条曲线本身几乎没有信息可读 —— 哪怕是有经验的工程师,盯着原始波形也看不出”这段是 C 大调”还是”这是男声”还是”这是节奏 120 BPM 的鼓”。

所以过去 80 年里,人类发明了 20 多种把声音”看见”的方法,每一种都在做同一件事:把一维信号往二维(或三维)映射,让人脑能利用空间感知做模式识别。不同的映射方法保留 / 强调 / 损失不同的信息 —— 选哪一种取决于你想看到什么

本文按 7 个 group 铺开这些可视化方案,每一种标注它在回答什么问题、适合什么场景、视觉上长什么样。配套的 声音可视化 Lab 已经实现 4 种,可以浏览器里实时玩;其余正在按 batch 补。

标记说明:

  • [lab 可玩] — 已在 /tools/sound-vis/ 上线,可以麦克风/上传/合成音源实时体验。
  • [待补] — 后续 batch 添加。

1. 时域类(time domain)—— 最朴素的”声音长什么样”

时域可视化直接看”声压随时间怎么变”。没有任何变换,所以信息密度低,但直觉性最高

1.1 波形 Waveform [lab 可玩]

经典中的经典 —— 横轴时间、纵轴振幅(声压)。回答的问题:

  • “这段音频有多响?响度怎么随时间变?”
  • “这是 click 噪声还是连续音?”
  • “有没有 clipping(削波,振幅打到 ±1)?”

视觉特征:上下对称的”毛刺图”。响的部分粗、安静的部分细。

在 lab 里玩 — 启动麦克风后,4 种可视化 grid 同时显示,左上格就是波形 —— 对着麦克风说话能看到自己的声音”长出来”。

1.2 包络 Envelope [待补]

把波形的”外轮廓”画出来 —— 通常用 Hilbert transform、RMS、或者 peak follower 算。回答的问题:

  • “声音的攻击 (attack)、衰减 (decay)、持续 (sustain)、释放 (release) 分别多长?”
  • “这段音是渐强还是渐弱?”

视觉特征:一条平滑曲线(相对原始波形是一条剧烈震荡的边界)。乐器分析、声音设计的标配。

1.3 Lissajous(立体声相位) [lab 可玩]

两个声道(L 和 R)的瞬时值作为 (x, y) 坐标,画轨迹。回答的问题:

  • “立体声的”宽度”有多大?“(散开 = 宽,聚集成线 = 窄)
  • “L/R 是不是反相?“(反相会显示为水平线,单声道播放会完全抵消!)
  • “MS (mid/side) 编码后中间有多少能量?”

视觉特征:抽象的发光轨迹。混音工程师用它检查”我这首歌在收音机里(强制 mono)会不会消失”。

在 lab 里玩 — grid 的右下格就是 Lissajous,用”合成预置 / 音乐”会看到它因为是单声道叠加而显示为一条竖直线。

2. 频域类(frequency domain)—— “这段音由哪些频率组成”

时域看不出来”这是 440 Hz 的纯音”还是”这是 220 + 440 + 660 Hz 的复音”,但对人耳的感知而言,频率成分才是关键。

2.1 FFT 频谱 [lab 可玩]

对一段(典型 20-50ms)音频做 FFT,得到”每个频率上有多少能量”。频率轴通常画成对数刻度(接近人耳感知),纵轴画成 dBFS(对数刻度,0 dB = 满量程)。

回答的问题:

  • “这段音的基频在哪?谐波结构是什么?”
  • “有没有 60 Hz 工频干扰?有没有高频 hiss?”
  • “EQ 调节后中频确实凹下去了吗?”

视觉特征:高低起伏的曲线,每个 peak 对应一个频率成分。

在 lab 里玩 — grid 的右上格就是 FFT 频谱,吹口哨能看到一根明显的尖峰随音高移动。

2.2 长时平均频谱 LTAS [待补]

整段音频做 FFT 后平均起来,得到”这段音频整体的频率特征”。回答的问题:

  • “这位歌手的音色集中在哪个频段?”
  • “这间录音室的频率响应曲线长什么样?”

视觉特征:和 FFT 频谱类似,但更平滑(因为做了时间平均),用于”风格化指纹”分析。

3. 时频域(time-frequency)—— 最吃可视化的一组

时域有时间、没频率;频域有频率、没时间。真实声音两者都在变(一段歌的频率成分会随节拍变),所以需要”既看时间又看频率”的二维表示 —— 这就是时频域。

代价:必须做权衡(Heisenberg uncertainty principle 在 DSP 里也成立 —— 时间精度和频率精度互相挤压)。

3.1 Spectrogram(声谱图) [lab 可玩]

最经典的时频可视化。横轴时间、纵轴频率(通常对数)、颜色亮度即该时刻该频率的能量。底层是 STFT(short-time Fourier transform)—— 把音频切成短窗口、每窗口做 FFT、拼起来。

回答的问题:

  • “这段语音是几个元音?元音之间的 formant 怎么移动的?”
  • “鼓击在频谱上是从高频炸开的吗?”
  • “鸟叫的旋律线条是什么形状?”

视觉特征:横向滚动的”热成像图”。是 ML 输入声音特征的事实标准。

在 lab 里玩 — grid 的左下格是 Spectrogram,用麦克风对着键盘敲一下,能看到撞击声从高频炸下来的”瀑布”形状。

3.2 Mel-spectrogram [待补]

把 spectrogram 的频率轴从线性 Hz 换成 Mel scale —— 一种模拟人耳”对低频敏感、对高频钝感”的对数标度。回答的问题:

  • 和 spectrogram 一样,但更接近人耳的”听感”分布
  • 现代音频 ML 模型(Whisper、Wav2Vec、AudioLM)几乎都用 Mel-spectrogram 作为输入。

视觉特征:低频被”拉伸”、高频被”压缩”,能量分布更均衡。

3.3 Constant-Q Transform (CQT) [待补]

STFT 的所有 bin 等宽(线性频率),所以在对数频率轴上显示时低频会拥挤、高频会稀疏。CQT 反过来:对数频率上每个 bin 等宽。结果是:每个八度的频率分辨率一致

回答的问题:

  • “这是和弦还是单音?“(CQT 上每个音都占同样的纵向高度)
  • “音乐转调了没有?“(在 CQT 上转调只是整体上下平移)

视觉特征:和 spectrogram 类似,但音乐相关任务上明显更清晰。

3.4 Chromagram [待补]

把所有频率折叠到 12 个半音上(C, C#, D, D#, …, B),不管在哪个八度。横轴时间、纵轴 12 个 pitch class、颜色为能量。

回答的问题:

  • “这首歌的和弦进行是什么?“(chromagram 上和弦显示为同时点亮的若干个 pitch class)
  • “副歌在 1
    和 2
    是同一段吗?“(chromagram 模式重复 = 段落重复)

视觉特征:只有 12 行的密集色块图。是音乐结构分析的核心工具。

3.5 Reassigned spectrogram(重分配声谱图) [待补]

普通 spectrogram 的每个像素其实”涂抹”在一个时间-频率框里 —— 看不出框内的精确峰值。reassigned spectrogram 利用相位信息把每个能量点重新分配到它真正的中心位置

回答的问题:

  • “这两条非常近的频率线,到底是一条还是两条?”
  • “这段瞬态(transient)的真正起点是哪一帧?”

视觉特征:边缘锐利得多,“涂抹”的能量被收紧成细线。音频取证 / 高分辨率分析专用。

4. 心理声学(perceptual)—— “人耳听起来怎么样”

物理意义的”响度”和”主观响度”是两件事 —— 把一段低频和一段高频调到同样的物理能量,人耳听起来低频明显更弱。这一组可视化把”客观信号”转换成”人耳维度”。

4.1 等响曲线 / A-weighting [待补]

国际标准 ISO 226 定义的等响曲线 —— 在不同频率上,多大物理声压能产生相同的主观响度(单位 phon)。A-weighting 是它的工程化简化版:一条加权曲线,按频率扣减不同的 dB 数。

回答的问题:

  • “这段环境噪声的 dBA 值是多少?“(噪声治理、施工规范)
  • “为什么我录的歌混音师说低频太多?“(低频虽然物理能量大,但听感上贡献小 —— A-weighting 一压低频就显示出比例失衡)

视觉特征:通常画为一条频率轴上的曲线(修正曲线),或把 dBFS 频谱”修正后”再画。

4.2 LUFS loudness meter [待补]

广播 / 流媒体行业的事实标准 —— ITU-R BS.1770 / EBU R128 定义的积分响度(integrated loudness),单位 LUFS(Loudness Units Full Scale)。结合了 K-weighting + 门限 + 时间积分。

回答的问题:

  • “这首歌符合 Spotify 的 -14 LUFS 投递标准吗?”
  • “动态范围(loudness range, LRA)够大吗?还是压缩过度?”

视觉特征:一个仪表盘 + 一条 LUFS 随时间变化曲线 + short-term / momentary / integrated 三个数。

5. 音乐结构(music structure)—— “这首歌的骨架”

针对音乐(不是一般声音)的可视化方案。回答的问题都是音乐学层面的:节奏、和声、段落。

5.1 Onset / Beat tracking [待补]

在波形上标注每一次”音符起始”(onset)和每一次”节拍点”(beat)的时刻。

回答的问题:

  • “这首歌的 BPM 是多少?拍子稳不稳?”
  • “鼓点的微调(micro-timing)是 swing 还是直线?”

视觉特征:波形 / spectrogram 上叠加竖线标注每个 onset / beat。

5.2 Tempogram [待补]

节奏的 spectrogram —— 横轴时间、纵轴 BPM、颜色为该时刻这个 BPM 假设的”支持度”。

回答的问题:

  • “整首歌是匀速吗?哪里加速 / 减速了?”
  • “这首爵士的节奏在 4/4 和 3/4 之间切换吗?”

视觉特征:和 spectrogram 类似,但纵轴单位是 BPM。

5.3 Self-Similarity Matrix (SSM) [待补]

把音频切成短帧、计算任意两帧之间的相似度,画成一个 N × N 的方阵。横纵轴都是时间。

回答的问题:

  • “这首歌是 ABA、ABABCB 还是 verse-chorus 结构?”
  • “副歌在哪里?过门在哪里?”

视觉特征:对角线一定是亮的(自己和自己最像),副歌重复段会显示为对角线之外的平行亮带矩形块。是音乐信息检索(MIR)的经典工具。

5.4 Pitch contour / Melody extraction [待补]

只提取”主旋律”在每一时刻的音高,画成一条曲线(纵轴 Hz 或半音)。

回答的问题:

  • “这位歌手的颤音(vibrato)多深?”
  • “这段独唱的音准准不准?”
  • “鸟叫的旋律走向是上升还是下降?”

视觉特征:一条在 spectrogram 上看起来”沿着最亮的脊”走的曲线。

6. 立体声 / 空间(spatial)—— “声音的左右、前后”

立体声(甚至环绕声)信息无法用单声道可视化承载。这组方案关注空间维度。

6.1 Stereo correlation meter [待补]

实时计算 L 和 R 的相关系数(-1 ~ +1),用一根指针或一条带形显示。

  • +1 = 完全单声道(L 和 R 一样)
  • 0 = 完全独立
  • -1 = 完全反相(致命 —— 强制单声道会消失)

回答的问题:

  • “我这首歌的立体声平衡安全吗?”

视觉特征:一根指针(类似仪表盘),通常配合 Lissajous 一起看。

6.2 Stereo spectrum / panorama [待补]

频谱图的”立体声”版本 —— 同一频率的能量在 L/R 上的分布,用颜色 / 位置编码。

回答的问题:

  • “底鼓在中间、镲在两侧,符合期望吗?”
  • “为什么这首歌”听起来很空”?“(可能是高频全在两侧、中间空了)

视觉特征:常见形态是横轴 L↔R panorama、纵轴频率、颜色为能量 —— 一种”声音的鸟瞰图”。

7. 进阶 / 前沿(advanced)—— 不常见但有意思

7.1 Wavelet scalogram [待补]

用 wavelet transform 替代 FFT 做时频分析。wavelet 在不同频率上自适应窗长(高频用短窗、低频用长窗),所以对瞬态信号(鼓击、咔哒声)的时间精度比 spectrogram 高得多。

视觉特征:和 spectrogram 类似,但瞬态部分边缘更锐利。在生物信号 / 心音 / EEG 上比 spectrogram 更常用。

7.2 Cepstrum / MFCC [待补]

对频谱再做一次 FFT —— 得到”频谱的频谱”(cepstrum)。MFCC(Mel-frequency cepstral coefficients)是它的 Mel 版本,传统 ASR(自动语音识别)的标准特征。

回答的问题:

  • “这段语音的基频是多少?“(cepstrum 上的”高 quefrency 峰”对应基频)
  • “这段语音的”音色”特征是什么?“(MFCC 前 13 个系数是音色的紧致表示)

视觉特征:横轴是”quefrency”(频率的倒数,单位是秒),纵轴是能量。

7.3 3D 瀑布图(3D waterfall) [待补]

把 spectrogram 立起来 —— 横轴时间、深度轴频率、高度轴振幅。

回答的问题:

  • 和 spectrogram 一样,但高度维度让”哪个频率突出”更直观。

视觉特征:像一座声音”山脉”。常见于 VJ 演出、专业音频分析仪。

7.4 Autocorrelation [待补]

把信号和它自己的”延迟版本”相乘求和 —— 在周期性强的时刻会出现明显的 peak。

回答的问题:

  • “这段音的基频是多少?“(最强 peak 的位置 = 基频周期)
  • “这是周期性信号还是噪声?”

视觉特征:一条衰减的振荡曲线,peak 之间的距离反映周期性。

8. 一张表速查

#名字维度适合场景状态
1Waveform时域响度、动态、clippinglab
2Envelope时域ADSR、声音设计待补
3Lissajous时域立体声相位、mono 兼容lab
4FFT 频谱频域频率成分、谐波结构lab
5LTAS频域频率指纹、风格分析待补
6Spectrogram时频通用时频分析lab
7Mel-spectrogram时频ML 输入、人耳感知待补
8CQT时频音乐分析(八度均匀)待补
9Chromagram时频和弦、调性、段落待补
10Reassigned spectrogram时频高分辨率分析待补
11A-weighting / 等响心理声学环境噪声、混音待补
12LUFS meter心理声学广播 / 流媒体响度合规待补
13Onset / Beat音乐节奏、BPM待补
14Tempogram音乐BPM 随时间变化待补
15SSM音乐段落结构、副歌定位待补
16Pitch contour音乐主旋律、颤音、音准待补
17Stereo correlation空间立体声安全检查待补
18Stereo panorama空间左右分布、声场宽度待补
19Wavelet scalogram进阶瞬态信号、生物信号待补
20Cepstrum / MFCC进阶基频、ASR 特征待补
213D waterfall进阶声音”山脉”视觉化待补
22Autocorrelation进阶周期性、基频估计待补

9. 怎么玩

声音可视化 Lab →

第一批 4 种已经能跑。三种音源:

  1. 麦克风 — 浏览器请求权限后实时采集(数据完全不离开你的设备)。
  2. 上传音频 — 拖一首 mp3 / wav / flac 进来。
  3. 合成预置 — 三段用 Web Audio 原生节点合成的示例(类语音 / 音乐 / 鼓点),零文件零依赖。

4 种可视化 grid 平铺同时显示 —— 同一段音频在不同”看法”下的样子一眼看全,建立直觉最快的方式。

10. 后续计划

按重要性 + 实现成本,下几批 batch 的顺序大致是:

  • Batch 2(最常用):Mel-spectrogram、Chromagram、LUFS meter、Stereo correlation
  • Batch 3(音乐导向):CQT、Onset/Beat、Tempogram、Pitch contour
  • Batch 4(高级):SSM、Reassigned spectrogram、Wavelet scalogram、3D waterfall
  • Batch 5(剩余):Envelope、LTAS、A-weighting、Stereo panorama、Cepstrum、MFCC、Autocorrelation

如果你对某个特别感兴趣或者发现 bug,可以提个 issue(github.com/nxdong/nxdong-astro),我会按反馈调优先级。

参考资料

  • Müller, Fundamentals of Music Processing — 音乐信号处理的标准教材,chromagram / SSM / tempogram 都在此
  • ITU-R BS.1770 — LUFS 标准
  • ISO 226 — 等响曲线标准
  • Smith, Introduction to the Mathematics of the Discrete Fourier Transform — STFT / windowing 入门
  • Bello et al., A Tutorial on Onset Detection in Music Signals — onset/beat 经典综述
  • Web Audio API — MDN 文档
这篇怎么样?