可视化监视工具是一类允许用户实时看到音频相关信息图表的工具。其大致分为 Stereo meter, Spectrogram, Spectrum, Waveform, Oscilloscope, Level meter, Correlation Meter.
Stereo meter 是一种允许用户直观看到当前时间声场分布的图表,其一般绘制方式如下:
设存在数字音频流 L [ n ] L[n]L [ n ] 和 R [ n ] R[n]R [ n ] 代表左右声道内容,绘制如下参数方程
{ x [ n ] = L [ n ] y [ n ] = R [ n ] \left\{\begin{matrix}
x[n] = L[n] \\
y[n] = R[n]
\end{matrix}\right.
{ x [ n ] = L [ n ] y [ n ] = R [ n ]
得到的图像即为 Stereo meter。在实践中,可能会遇到一些变体,如对 y [ n ] y[n]y [ n ] 取绝对值并旋转 4 5 ∘ 45^{\circ}4 5 ∘ 得到图像(即一些实现如 Minimeters 的 linear 模式)。或者将整体图像映射到上半圆中,具体映射方式如下
{ θ [ n ] = arctan R [ n ] L [ n ] ρ [ n ] = 20 lg ( R [ n ] 2 + L [ n ] 2 ) L r e f \left\{\begin{matrix}
\theta[n] = \arctan \frac{R[n]}{L[n]} \\
\rho[n] = 20\lg \frac{\sqrt{(R[n]^2 + L[n]^2)}}{L_{ref}}
\end{matrix}\right.
⎩ ⎪ ⎨ ⎪ ⎧ θ [ n ] = arctan L [ n ] R [ n ] ρ [ n ] = 2 0 lg L r e f ( R [ n ] 2 + L [ n ] 2 )
此处给出极坐标形式,其中 L r e f L_{ref}L r e f 为幅度,在 DAW 中一般取 L r e f = 1.0 L_{ref} = 1.0L r e f = 1 . 0 ,即 dBFS 量标。
Spectrogram 是一种允许用户直观看到频率随时间变化的图表,其一般绘制方式如下:
设存在数字音频流 X [ n ] X[n]X [ n ] ,对其加窗后进行离散傅里叶变换 (即短时傅里叶变换 )得到频域信息,由此得到频率信息绘制在以时间为 x xx 轴,频率为 y yy 轴(一般为对数坐标轴)的图表上得到的即为 Spectrogram. 通常我们还会把音频音量大小映射为不同颜色。
容易发现,Spectrogram 的频率分辨率和时间分辨率与窗函数长度有关,较低的窗函数长度有更高的时间分辨率但更低的频率分辨率,较高的窗函数长度有更高的频率分辨率和更低的时间分辨率。为了解决分辨率不能兼得的问题,实践中一般会使用 Reassignment Method 改进频率分辨率。
Reassignment Method 是一种通过估算局部瞬时频率和群延迟信息改进频率分辨率的方法,其一般过程如下:
我们约定模拟信号用圆括号指示,如 X ( t , f ) X(t, f)X ( t , f ) ,离散信号用方括号指示,如 X [ m , k ] X[m, k]X [ m , k ]
对于离散信号 x [ n ] x[n]x [ n ] 对其加窗 并进行离散傅里叶变换得到
X [ m , k ] = ∑ n = 0 N − 1 x [ n + m H ] W [ n ] e − k 2 n π N i X[m, k] = \sum\limits_{n = 0}^{N - 1} x[n + mH]W[n]e^{-k\frac{2n\pi }{N}i}
X [ m , k ] = n = 0 ∑ N − 1 x [ n + m H ] W [ n ] e − k N 2 n π i
其中 N NN 为窗函数 长度,H HH 为帧移长度,W [ n ] W[n]W [ n ] 为窗函数,索引 k kk 对应频率,其满足 f = k f s N f = \frac{kf_{s}}{N}f = N k f s ,其中 f s f_{s}f s 为采样率,索引 m mm 对应时间索引,其满足 t = m H f s t = \frac{mH}{f_{s}}t = f s m H .
则瞬时频率在 Reassignment Method 中被修正为(连续形式)
f ^ ( t , f ) = f + Im ( ∂ X ( t , f ) ∂ t ⋅ X ( t , f ) ‾ ) 2 π ∣ X ( t , f ) ∣ 2 \hat{f}(t, f) = f + \frac{\operatorname{Im}\left(\frac{\partial X(t, f)}{\partial t} \cdot \overline{X(t, f)}\right)}{2\pi |X(t, f)|^2}
f ^ ( t , f ) = f + 2 π ∣ X ( t , f ) ∣ 2 I m ( ∂ t ∂ X ( t , f ) ⋅ X ( t , f ) )
其中 ⋅ ‾ \overline{\cdot}⋅ 表示复共轭。
实践中常用数值方法近似,如中心差分法:
∂ X [ m , k ] ∂ t ≈ X [ m + 1 , k ] − X [ m − 1 , k ] 2 H f s \frac{\partial X[m, k]}{\partial t} \approx \frac{X[m + 1, k] - X[m - 1, k]}{2\frac{H}{f_s}}
∂ t ∂ X [ m , k ] ≈ 2 f s H X [ m + 1 , k ] − X [ m − 1 , k ]
带回原式得到离散形式
f ^ [ m , k ] = k f s N + Im ( ( X [ m + 1 , k ] − X [ m − 1 , k ] ) ⋅ X [ m , k ] ‾ ) 2 π ∣ X [ m , k ] ∣ 2 ⋅ f s 2 H \hat{f}[m, k] = \frac{kf_s}{N} + \frac{\operatorname{Im}\left((X[m + 1, k] - X[m - 1, k]) \cdot \overline{X[m ,k]}\right)}{2\pi |X[m ,k]|^2} \cdot \frac{f_s}{2H}
f ^ [ m , k ] = N k f s + 2 π ∣ X [ m , k ] ∣ 2 I m ( ( X [ m + 1 , k ] − X [ m − 1 , k ] ) ⋅ X [ m , k ] ) ⋅ 2 H f s
而群延迟被修正为(连续形式)
t ^ ( t , f ) = t − Re ( ∂ X ( t , f ) ∂ f ⋅ X ( t , f ) ‾ ) 2 π ∣ X ( t , f ) ∣ 2 \hat{t}(t, f) = t - \frac{\operatorname{Re}\left(\frac{\partial X(t, f)}{\partial f} \cdot \overline{X(t, f)}\right)}{2\pi |X(t, f)|^2}
t ^ ( t , f ) = t − 2 π ∣ X ( t , f ) ∣ 2 R e ( ∂ f ∂ X ( t , f ) ⋅ X ( t , f ) )
在离散情况下,我们交换求和和偏导顺序得到
∂ X [ m , k ] ∂ f = − 2 π i ∑ n = 0 N − 1 n x [ n + m H ] W [ n ] e − k 2 n π N i \frac{\partial X[m, k]}{\partial f} = -2\pi i\sum\limits_{n = 0}^{N - 1}n x[n + mH]W[n]e^{-k\frac{2n\pi }{N}i}
∂ f ∂ X [ m , k ] = − 2 π i n = 0 ∑ N − 1 n x [ n + m H ] W [ n ] e − k N 2 n π i
从而得到
t ^ [ m , k ] = m H f s − Re ( ∂ X [ m , k ] ∂ f ⋅ X [ m , k ] ‾ ) 2 π ∣ X [ m , k ] ∣ 2 \hat{t}[m, k] = \frac{mH}{f_s} - \frac{\operatorname{Re}\left(\frac{\partial X[m, k]}{\partial f} \cdot \overline{X[m, k]}\right)}{2\pi |X[m, k]|^2}
t ^ [ m , k ] = f s m H − 2 π ∣ X [ m , k ] ∣ 2 R e ( ∂ f ∂ X [ m , k ] ⋅ X [ m , k ] )
从而将每个绘制的频点从 ( t , f ) (t, f)( t , f ) 修正为 ( t ^ , f ^ ) (\hat{t}, \hat{f})( t ^ , f ^ )
从实现过程不难看出,Reassignment Method 会增加 Spectrogram 绘制的时间复杂度,因此实践中需要进行一定程度的取舍。
Spectrum 是一种允许用户直观的看见当前时间下频率与音量大小的图表。其以频率为 x xx 轴(常取对数),以对应频率音量大小为 y yy 轴进行绘制。同样的,其也受到离散傅里叶变换的限制,同时也可以使用 Reassignment Method.
在FL中Spectrum与Spectrogram意义恰好相反。
Waveform/Oscilloscope 都是允许用户直观的看到采样频点随时间变化的图像。其以时间为 x xx 轴,对应的采样点的值 X [ n ] X[n]X [ n ] 绘制在 y yy 方向上得到。不同的是,Waveform 通常会展示固定时间长度的信息,而 Oscilloscope 通常会自动调整时间长度以精确地显示一个合理范围内的周期中的内容。
为了精确地显示一个周期中的内容,常常会进行频率检测以适配窗口长度,常见的方法如下:
名称
方法概述
优劣
过零检测法
音频具有周期性,因此可以计数单位时间 Δ t \Delta tΔ t 内零点的个数 N NN 得到音频频率,即 f = N 2 Δ t . f = \frac{N}{2\Delta t}.f = 2 Δ t N .
仅适用于简单情况,遇到复杂波形往往不准确
FFT
利用 FFT 获取信号最强的基频并以此为音频频率。
精确,但计算复杂度相对更大
自相关分析
信号与其时延版本的相关性在周期处达到峰值,由此可以通过分析自相关性得到周期从而求得频率。即寻找 R ( τ ) = ∑ X [ n ] X [ n − τ ] R(\tau)=\sum X[n]X[n - \tau]R ( τ ) = ∑ X [ n ] X [ n − τ ] 的次峰值 τ p e a k \tau_{peak}τ p e a k 得到周期 T = τ p e a k f s T = \frac{\tau_{peak}}{f_s}T = f s τ p e a k ,从而 f = 1 T . f = \frac{1}{T}.f = T 1 .
抗噪性良好,实践中广泛应用,但需要信号存在一定的周期性
峰值检测
信号的峰值应呈周期性出现,因此可以记录及大点的未知并取平均时间结合求得周期得到频率
对高频噪声以及多峰信号敏感,常配合滤波使用
相位锁定环
通过反馈系统锁定输入信号的相位和频率,有鉴相器、环路滤波器、压控振荡器构成
实时跟踪,动态响应但设计复杂,存在收敛时间
倒谱分析
借助倒谱 即 F − 1 { log abs ( F { x } ) } [ n ] \mathcal{F}^{-1}\{\log \operatorname{abs} (\mathcal{F}\{x\})\}[n]F − 1 { log a b s ( F { x } ) } [ n ] 统计其中显著峰值 q p e a k q_{peak}q p e a k 从而得到频率 f = f s q p e a k f = \frac{f_s}{q_{peak}}f = q p e a k f s 其中 f s f_sf s 是采样率 F \mathcal{F}F 是傅里叶变换算符
拥有极其优良的抗干扰性,但计算量大
Level meter 是一种允许用户直观看见当前音量的图表,其直接将当前音频帧的音量大小绘制出来。设音频帧 X [ n ] X[n]X [ n ] 长度为 N NN 下表给出了一些常见的衡量音频帧音量大小衡量方法:
名称
公式
均方根
1 N ∑ i = 0 n − 1 X [ i ] 2 \sqrt{\frac{1}{N}\sum\limits_{i = 0}^{n - 1}X[i]^2}N 1 i = 0 ∑ n − 1 X [ i ] 2
平均值
1 N ∑ i = 0 n − 1 X [ i ] \frac{1}{N}\sum\limits_{i = 0}^{n - 1}X[i]N 1 i = 0 ∑ n − 1 X [ i ]
峰值
max { abs ( X [ 0 ] ) , ⋯ , abs ( X [ N − 1 ] ) } \max\{\operatorname{abs}(X[0]), \cdots, \operatorname{abs}(X[N - 1])\}max { a b s ( X [ 0 ] ) , ⋯ , a b s ( X [ N − 1 ] ) }
之后会将求得的音量大小值 A AA 转换为 dB 量标,即 20 lg ( A L r e f ) 20 \lg (\frac{A}{L_{ref}})2 0 lg ( L r e f A ) , 其中 L r e f L_{ref}L r e f 为幅度,是一个参考值,编曲实践中常取 L r e f = 1.0 L_{ref} = 1.0L r e f = 1 . 0 即 dBFS
在实践中也可能会对输入音频帧进行按频率的加权得到 LUFS 量标,被认为是更加符合人耳响度感知的量标。
Correlation Meter 是一种允许用户直观看到当前左右声道信号相关性的图表。其一般表现为一维图表,假设左右耳音频流分别为 L [ n ] L[n]L [ n ] 和 R [ n ] R[n]R [ n ] 则相关系数直接计算为 r ( L , R ) = C o v ( L , R ) V a r [ L ] V a r [ R ] r(L, R) = \frac{Cov(L, R)}{\sqrt{Var[L]Var[R]}}r ( L , R ) = V a r [ L ] V a r [ R ] C o v ( L , R ) 其中 C o v CovC o v 是协方差,V a r VarV a r 表示方差。