步骤:信号变换 → 声学特征提取 → 检测函数 → 峰值检测。
信号变换:让变化后的信号维度下降,便于提取特征。
STFT:每一帧的各个频率具有相同的频率分辨率和时间分辨率。
小波变换:在慢变信号(低频信号)具有较高频率分辨率;在高频信号具有较高时间分辨率,满足音符起始点检测时的要求。
常量 Q 变换:以十二平均律的方法组织基函数。
稀疏分解:构造和原来信号局部一样或类似的基函数来表征信号,用尽可能少的原子来表示信号。
引入深度学习:可以通过深度学习构造基函数。
类型 | 特征 | 描述 | 优缺点 |
---|---|---|---|
能量 | 幅度包络 | 信号幅值在音符起始点上开始激增。 | 不准确 |
能量 | 短时能量 | 打击乐音符起始点处,信号能量急剧增长 | 受噪声影响大,一般在打击乐中使用 |
能量 | 能量谱 | 音符起始点处域能量增长 | 无法准确反映单个音符信号能量变化。 |
成分变化 | 谱通量 | 音符起始点频率成分变化大 | 直接反映频率变化,但仍会依赖能量变化 |
成分变化 | 相位谱 | 音符起始点部分,相位的一阶差分发生急剧变化 | 对软起始点敏感,但容易受到相位畸变或噪声相位影响 |
成分变化 | 复数域特征 | 组合谱通量和相位差 | 仍然容易受相位畸变影响 |
B2-1 幅度包络与短时能量
对于音频 $x[n ]$ 的任意点 $n$ 处,幅度包络 (Amplitude Envelope) 为周遭 $\pm N_H$ 点幅度的均值,短时能量 (Short-time Energy) 为周遭 $\pm N_H$ 点能量的均值。
$$ AE[n] = \sum_{m=-N_H}^{N_H} | x[n+m] | \\ STE[n] = \sum_{m=-N_H}^{N_H} | x[n+m] |^2 \\ $$
由于上式公式计算太过密集,一般采用的方式是将音频先分帧,将各帧分别进行上述特征求解,再进行插值。
B2-2 幅度谱与能量谱
幅度谱和能量谱同理,是任意点 $n$ 处周遭 $\pm N_H$ 区域先作 DFT 得到频谱 $X_{{\rm at} \, n \pm N_H}[k]$,然后求频域的幅度和或频域能量和。
$$ SA[n] = \sum_{k=0}^{2N_H} | X_{{\rm at} \, n \pm N_H}[k] | \\ AE[n] = \sum_{k=0}^{2N_H} | X_{{\rm at} \, n \pm N_H}[k] |^2 $$
有时候会加权,如有的文献使用 $|k|$ 放大高频段能量。
由于公式直接计算太过密集,一般采用的方式是将音频先分帧,将各帧分别进行 FFT 和上述特征求解,再进行插值。
B2-3 频谱通量
频谱通量 (Spectral Flux)。表示为幅度谱的帧差分,并对每个频点求和。称帧编号为 $p$,帧长度为 $N_{F}$,在帧 $p$ 的 DFS 结果记为 $X_{{\rm at\, frame} \, p} [k] = X[p, k]$。
$$ SF[p] = \sum_{k=0}^{N_F - 1} (|X[p,k]| - |X[p-1,k]|) $$
可以采用 L2 范数通量 $((|X[p,k]| - |X[p-1,k]|))^2$。
还可以采用对数谱通量形式 $\log_2 \frac {|X[p,k]|}{|X[p-1,k]|}$。
B2-4 相位谱二阶通量
相位谱二阶通量。在帧 $p$ 的 DFS 结果记为 $X_{{\rm at\, frame} \, p} [k] = X[p, k] = |X[p, k]|{\rm e} ^{{\rm j} \phi [p, k]}$,其中 $\phi [p, k]$ 即为相位谱。
但是请注意,不是像幅度谱一样作一阶帧差分了,因为相位谱在正常情况下就应该随时间发生恒定帧差分。因而要判断的是帧差分之帧差分,即二阶帧差分。
$$ \phi'_F[p, k] = \phi[p+1, k] \ominus \phi[p, k] \\
\phi'_B[p, k] = \phi[p, k] \ominus \phi[p-1, k] \\
\phi''[p, k] = \phi'_F[p, k] \ominus \phi'_B[p, k] $$
这里每个减号 $\ominus$ 应该是相位差(书上没写,我是自己猜的):
相位差:相位谱中的差值,一般要取前向和后向之幅值最小的一者,即对于任意 $\phi_1, \phi_2 \in (-\pi, +\pi]$,通过这样的方式得到 $\phi_2 \ominus \phi_1 \in [-\pi, +\pi]$:
$$ \phi_2 \ominus \phi_1 = \begin{cases}
\phi_2 - \phi_1, & |\phi_2 - \phi_1| \le \pi \\
(\phi_2-2\pi) - \phi_1, & |\phi_2 - \phi_1| > \pi {\rm \ and \ } \phi_2 \ge \phi_1 \\
(\phi_2 + 2\pi) - \phi_1, & |\phi_2 - \phi_1| > \pi {\rm \ and \ } \phi_2 < \phi_1 \\
\end{cases} $$
仍然对每个频点求和。
$$ SP[p] = \sum_{k=0}^{N_F - 1} |\phi''[p, k]| $$
相位谱二阶通量的优劣