音频特征
音频特征提取是AI音频处理的核心环节,决定了模型对音频的理解能力和下游任务的性能。
特征概述
音频特征是从原始音频信号中提取的有意义信息,用于表征音频的各种属性。
特征分类
- 时域特征:直接从波形提取,如能量、过零率
- 频域特征:从频谱提取,如频谱质心、带宽
- 时频特征:结合时域和频域,如梅尔频谱
- 深度特征:神经网络自动学习,如wav2vec特征
特征设计原则
相关性
特征应与目标任务高度相关,去除冗余信息。
鲁棒性
对噪声、信道变化等干扰具有稳定性。
可计算性
特征提取效率高,适合实时应用。
时域特征
时域特征直接从音频波形中提取,计算简单但包含丰富的信息。
| 特征 | 计算方式 | 应用 |
|---|---|---|
| 能量/功率 | 信号平方和 | 端点检测、音量控制 |
| 过零率 | 穿过零点的次数 | 浊音/清音分类 |
| 自相关 | 信号与延迟版的相似度 | 基频检测 |
| 幅度包络 | 信号幅度变化曲线 | 节奏分析 |
过零率详解
过零率反映信号频率特性,计算公式:
ZCR = Σ |sign(x[n]) - sign(x[n-1])| / 2N
清音(如/s/)的过零率通常高于浊音(如/a/),可用于语音端点检测。
能量特征
短时能量
在短时间窗口内计算能量,用于检测语音活动。
RMS能量
均方根能量,更稳定的响度估计。
频域特征
频域特征通过傅里叶变换获得,包含更丰富的音频信息。
| 特征 | 说明 | 应用 |
|---|---|---|
| 频谱质心 | 频谱"重心",反映明亮度 | 音色分类 |
| 频谱带宽 | 频谱分散程度 | 音色分析 |
| 频谱对比度 | 峰值与谷值差异 | 音乐分类 |
| 频谱滚降点 | 85%能量处的频率 | 音频分类 |
| 频谱平坦度 | 频谱平坦程度 | 噪声/音乐区分 |
频谱质心
频谱质心反映频谱的"重心"位置,是音色明亮度的指标:
Centroid = Σ(f·X(f)) / ΣX(f)
高质心表示明亮音色,低质心表示暗淡音色。
频谱对比度
频谱对比度捕捉频谱中峰值和谷值的差异,对音乐分类很有用。
将频谱分成多个子带,计算每个子带中峰值和谷值的差值, 形成对比度特征向量。这对区分不同乐器和音乐风格很有效。
短时傅里叶变换
STFT是时频分析的基础,将信号分解为时间和频率的二维表示。
基本原理
- 1. 分帧:将信号分成重叠的短帧(通常25ms,步长10ms)
- 2. 加窗:对每帧应用窗函数(如汉明窗)
- 3. FFT:对每帧计算快速傅里叶变换
- 4. 堆叠:将所有帧的频谱堆叠形成时频图
参数选择
帧长
通常25ms,平衡频率分辨率和时间分辨率。帧越长频率分辨率越高,时间分辨率越低。
帧移
通常10ms,帧移越小特征越密集,但计算量增大。
窗函数
汉明窗最常用,汉宁窗旁瓣更低,Blackman窗主瓣更宽。
时频不确定性
时间分辨率和频率分辨率不可兼得:Δt·Δf ≥ 1/(4π)。 这是STFT的基本限制,小波变换通过多分辨率分析部分解决此问题。
梅尔频谱
梅尔频谱模拟人耳对频率的感知,是深度学习音频模型的标准输入。
梅尔尺度
梅尔尺度是非线性频率刻度,低频分辨率高、高频分辨率低,符合人耳感知特性:
mel = 2595 · log₁₀(1 + f/700)
计算流程
- 1. 预加重:补偿高频衰减,y[n] = x[n] - α·x[n-1]
- 2. 分帧加窗:分割短时信号
- 3. FFT变换:获取幅度谱
- 4. 梅尔滤波器组:应用三角滤波器到梅尔刻度
- 5. 对数运算:log(scale),模拟人耳感知
梅尔滤波器组
三角滤波器
在梅尔刻度上均匀分布三角滤波器,低频滤波器窄,高频滤波器宽。
滤波器数量
通常40或80个,更多的滤波器提供更细的频率分辨率。
为什么用梅尔频谱?
- • 符合人耳感知,对下游任务更有效
- • 压缩表示,减少模型输入维度
- • 去除相位信息,降低复杂度
- • 深度学习模型的标准输入格式
MFCC特征
梅尔频率倒谱系数(MFCC)是语音识别的经典特征,至今仍广泛使用。
计算流程
- 1. 计算梅尔频谱(上述流程)
- 2. DCT变换:离散余弦变换,压缩表示
- 3. 取低阶系数:通常取前13个系数
- 4. 动态特征:计算一阶差分(Δ)和二阶差分(ΔΔ)
系数含义
| 系数 | 含义 |
|---|---|
| C0 | 整体能量 |
| C1-C13 | 频谱包络特征 |
| Δ MFCC | 动态变化特征 |
| ΔΔ MFCC | 加速度特征 |
MFCC vs 梅尔频谱
选择建议
- • 传统模型(GMM-HMM):使用MFCC,维度低,计算快
- • 深度学习模型:使用梅尔频谱,保留更多信息
- • 端到端模型:可直接使用原始波形
高级特征
随着深度学习的发展,涌现出多种高级音频特征表示。
深度音频特征
wav2vec 2.0
自监督学习的音频表示,在大规模数据上预训练,可迁移到多种下游任务。
HuBERT
隐藏单元BERT,通过聚类发现伪标签进行预训练,在语音识别上表现优异。
Whisper特征
OpenAI Whisper模型的编码器输出,多语言、多任务能力强。
基频特征
F0轨迹
基频随时间的变化,反映音调变化,对韵律分析和情感识别重要。
V/UV标记
浊音/清音标记,区分有基频(元音)和无基频(辅音)的帧。
应用场景
不同音频任务需要不同的特征组合。
| 任务 | 常用特征 |
|---|---|
| 语音识别 | MFCC、梅尔频谱、wav2vec |
| 语音合成 | 梅尔频谱、基频、时长 |
| 音乐分类 | 梅尔频谱、Chroma、频谱对比度 |
| 说话人识别 | i-vector、x-vector、ECAPA |
| 情感识别 | MFCC + 基频 + 能量 |
| 音频分离 | 复数频谱、STFT |
工具库推荐
- • librosa:Python音频分析库,特征提取全
- • torchaudio:PyTorch生态,GPU加速
- • speechbrain:语音处理工具包
- • opensmile:专业音频特征提取工具
- • praat:语音分析经典工具