音频特征

音频特征提取是AI音频处理的核心环节,决定了模型对音频的理解能力和下游任务的性能。

预计阅读时间:45分钟·难度:中级

特征概述

音频特征是从原始音频信号中提取的有意义信息,用于表征音频的各种属性。

特征分类

  • 时域特征:直接从波形提取,如能量、过零率
  • 频域特征:从频谱提取,如频谱质心、带宽
  • 时频特征:结合时域和频域,如梅尔频谱
  • 深度特征:神经网络自动学习,如wav2vec特征

特征设计原则

相关性

特征应与目标任务高度相关,去除冗余信息。

鲁棒性

对噪声、信道变化等干扰具有稳定性。

可计算性

特征提取效率高,适合实时应用。

时域特征

时域特征直接从音频波形中提取,计算简单但包含丰富的信息。

特征计算方式应用
能量/功率信号平方和端点检测、音量控制
过零率穿过零点的次数浊音/清音分类
自相关信号与延迟版的相似度基频检测
幅度包络信号幅度变化曲线节奏分析

过零率详解

过零率反映信号频率特性,计算公式:

ZCR = Σ |sign(x[n]) - sign(x[n-1])| / 2N

清音(如/s/)的过零率通常高于浊音(如/a/),可用于语音端点检测。

能量特征

短时能量

在短时间窗口内计算能量,用于检测语音活动。

RMS能量

均方根能量,更稳定的响度估计。

频域特征

频域特征通过傅里叶变换获得,包含更丰富的音频信息。

特征说明应用
频谱质心频谱"重心",反映明亮度音色分类
频谱带宽频谱分散程度音色分析
频谱对比度峰值与谷值差异音乐分类
频谱滚降点85%能量处的频率音频分类
频谱平坦度频谱平坦程度噪声/音乐区分

频谱质心

频谱质心反映频谱的"重心"位置,是音色明亮度的指标:

Centroid = Σ(f·X(f)) / ΣX(f)

高质心表示明亮音色,低质心表示暗淡音色。

频谱对比度

频谱对比度捕捉频谱中峰值和谷值的差异,对音乐分类很有用。

将频谱分成多个子带,计算每个子带中峰值和谷值的差值, 形成对比度特征向量。这对区分不同乐器和音乐风格很有效。

短时傅里叶变换

STFT是时频分析的基础,将信号分解为时间和频率的二维表示。

基本原理

  1. 1. 分帧:将信号分成重叠的短帧(通常25ms,步长10ms)
  2. 2. 加窗:对每帧应用窗函数(如汉明窗)
  3. 3. FFT:对每帧计算快速傅里叶变换
  4. 4. 堆叠:将所有帧的频谱堆叠形成时频图

参数选择

帧长

通常25ms,平衡频率分辨率和时间分辨率。帧越长频率分辨率越高,时间分辨率越低。

帧移

通常10ms,帧移越小特征越密集,但计算量增大。

窗函数

汉明窗最常用,汉宁窗旁瓣更低,Blackman窗主瓣更宽。

时频不确定性

时间分辨率和频率分辨率不可兼得:Δt·Δf ≥ 1/(4π)。 这是STFT的基本限制,小波变换通过多分辨率分析部分解决此问题。

梅尔频谱

梅尔频谱模拟人耳对频率的感知,是深度学习音频模型的标准输入。

梅尔尺度

梅尔尺度是非线性频率刻度,低频分辨率高、高频分辨率低,符合人耳感知特性:

mel = 2595 · log₁₀(1 + f/700)

计算流程

  1. 1. 预加重:补偿高频衰减,y[n] = x[n] - α·x[n-1]
  2. 2. 分帧加窗:分割短时信号
  3. 3. FFT变换:获取幅度谱
  4. 4. 梅尔滤波器组:应用三角滤波器到梅尔刻度
  5. 5. 对数运算:log(scale),模拟人耳感知

梅尔滤波器组

三角滤波器

在梅尔刻度上均匀分布三角滤波器,低频滤波器窄,高频滤波器宽。

滤波器数量

通常40或80个,更多的滤波器提供更细的频率分辨率。

为什么用梅尔频谱?

  • • 符合人耳感知,对下游任务更有效
  • • 压缩表示,减少模型输入维度
  • • 去除相位信息,降低复杂度
  • • 深度学习模型的标准输入格式

MFCC特征

梅尔频率倒谱系数(MFCC)是语音识别的经典特征,至今仍广泛使用。

计算流程

  1. 1. 计算梅尔频谱(上述流程)
  2. 2. DCT变换:离散余弦变换,压缩表示
  3. 3. 取低阶系数:通常取前13个系数
  4. 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:语音分析经典工具
----