基于LPCC线性预测倒谱系数的语音特征提取系统
项目介绍
本项目是一个在MATLAB环境下实现的语音特征提取系统,专注于提取语音信号的线性预测倒谱系数(LPCC)。LPCC是语音识别、说话人辨识及语音合成等领域的关键前端特征,能够有效地表征人体声道的传递函数特性。系统通过全套的数字信号处理流程,将原始时域语音波形转换为具有高鉴别力、去相关性强且具备抗噪性能的特征矩阵,为后续的机器学习或深度学习模型提供标准化的输入。
功能特性
- 全流程自动化分析:系统涵盖了从原始音频读取、预处理到核心特征提取及最终可视化的完整链路。
- 自适应信号获取:内置模拟语音生成机制。当外部音频文件缺失时,系统能够自动合成包含多频率正弦波与白噪声的测试信号,确保算法的演示连续性。
- 鲁棒性预处理:集成了高通滤波器(预加重)和非平稳信号处理技术(分帧与加窗),显著提升了高频频谱的分辨率。
- 高效求解算法:采用自相关分析配合杜宾(Durbin)递归算法求解线性预测系数,极大降低了计算复杂度。
- 多维特征展示:提供时域信号、能量包络、倒谱热图及三维特征分布图,全方位直观展示特征的有效性。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 工具箱依赖:基本系统工具箱(MATLAB内置函数如filter、audioread等)。
- 硬件要求:标准桌面计算机,建议内存4GB以上。
使用方法
- 将准备好的音频文件放入项目根目录,并在脚本的参数设置区域修改输入文件名,或者直接运行脚本以观察模拟信号的处理效果。
- 在MATLAB中运行主程序。
- 观察命令行窗口输出的采样率、总帧数及特征矩阵预览。
- 查阅生成的图形窗口,分析语音信号在时域和倒谱域的演变规律。
核心实现逻辑与算法分析
系统通过以下逻辑步骤实现LPCC特征的提取:
1. 参数配置与信号归一化
系统首先定义了关键的声学参数,包括12阶LPC分析和16阶LPCC映射。通过归一化处理,将语音幅值限制在[-1, 1]区间,消除了音量差异对特征提取的影响。
2. 信号预处理阶段
- 预加重:应用传递函数为 $H(z) = 1 - 0.97z^{-1}$ 的高通滤波器。此步骤旨在补偿语音信号在辐射过程中的高频衰减,使频谱变得平坦,便于后续共振峰提取。
- 分帧与加窗:采用25ms帧长和10ms帧移。每一帧信号均乘以Hamming窗,公式为 $W(n) = 0.54 - 0.46 cos(2pi n / (N-1))$,有效减少了分帧引起的频谱泄露,增强了信号的短时平稳性。
3. 线性预测分析(LPC)核心
- 能量计算:实时计算每一帧的能量包络,用于辅助判断语音的时间动力学特性。
- 自相关分析:对每一帧窗后信号计算0到p阶的自相关函数 $R(k)$。
- 杜宾(Durbin)递归:核心算法部分。通过递归求解由自相关方程组成的Toeplitz矩阵方程组,计算出反射系数。利用前一阶的预测误差能量逐步推导出当前阶的LPC系数,实现了高效的声道参数建模。
4. 倒谱变换(LPCC提取)
系统利用递归公式将时域建模得到的LPC系数 $a(n)$ 转换为倒谱域的LPCC系数 $c(n)$:
- 第一阶段(n ≤ p):利用 $a(n)$ 和之前计算出的 $c(n-k)$ 进行线性组合,初次构建倒谱特征。
- 第二阶段(p < n ≤ Q):在预测阶数之外,利用已生成的倒谱系数持续递归,提取更深层的倒谱信息。
这种转换使得LPCC能够更好地分离声门源激励与声道特性,且各阶系数之间的相关性极低。
5. 结果可视化与数据分析
- 时域视图:同步展示原始波形与插值后的标准化能量包络。
- 倒谱热图:通过Colorbar展示LPCC随时间(帧)变化的强度分布,清晰呈现语词发音过程中的频谱演变。
- 三维分布:利用空间曲面图展示特征向量的整体起伏,反映了特征在不同阶数上的区分度。