语音多维特征(音色、音高、音调)采集与分析识别系统
项目介绍
本系统是一个基于 MATLAB 环境开发的语音信号处理与分析平台。系统旨在通过对原始语音信号进行深度挖掘,提取并识别语音的三大核心物理属性:代表音色的梅尔频率倒谱系数(MFCC)、代表音高的基音频率轨迹、以及代表音调的频率变化趋势。系统集成了从信号采集、预处理到特征提取及模式匹配的完整流程,为语音信号的特征分析提供了一套标准化的实践方案。
功能特性
- 实时语音采集与模拟:支持通过计算机声卡进行实时音频流捕捉(采样率 16000Hz,时长 3 秒)。在无硬件设备时,系统具备自动降级机制,生成合成模拟信号以确保分析流程的完整性。
- 多指标端点检测 (VAD):结合短时能量与过零率 (ZCR) 指标,自动识别并区分语音段与背景噪声段。
- 音色特征提取:计算 13 阶梅尔频率倒谱系数 (MFCC),通过 Mel 滤波器组模拟人耳听觉特性,精确描述发音个体的声道共振特征。
- 音高实时跟踪:通过自相关函数 (ACF) 算法提取人声基音周期,并采用中值滤波算法平滑频率轨迹,覆盖 60Hz 至 400Hz 的人声基音范围。
- 音调量化分析:基于基音频率的变化曲线,通过斜率趋势估计逻辑,将语音自动分类为上升调(如阳平/上声)、下降调(去声)或平调(阴平)。
- 模式匹配识别:实现动态时间规整 (DTW) 算法,通过计算参考模板与待测模式之间的最小累计距离,实现非线性时间缩放下的语音相似度评分。
系统要求
- MATLAB R2016b 或更高版本
- 计算机内置或外置麦克风(用于实时采集)
- 具备基础绘图与信号处理计算能力
实现逻辑分析
1. 信号预处理
系统首先对采集的原始信号进行去直流处理,随后应用预加重滤波器(系数为 0.97)以补偿高频部分的损耗。处理后的信号按照 25ms 帧长、10ms 帧移进行分帧,并加挂 Hamming 窗以减少频谱泄露。
2. 特征计算细节
- MFCC 提取:对每帧信号进行 512 点 FFT 变换取功率谱,通过 26 个 Mel 滤波器组进行能量积分,最后对对数能量进行离散余弦变换 (DCT),保留前 13 阶系数作为音色特征向量。
- 基音检测:在端点检测判定的有效语音段内,利用自相关函数寻找最大峰值对应的延迟位置,从而换算出基音频率 (F0)。非语音段的基音设为 0。
- 音调识别:提取有效基音段的起始与终点频率差异,计算其变化斜率。若斜率绝对值超过预设阈值(1.5),则判定为升调或降调,否则判定为平调。
3. 核心算法实现
- Mel 滤波器组生成:根据采样率在梅尔刻度空间进行等精度插值,并映射回频率坐标系生成三角滤波器矩阵。
- DTW 动态时间规整:
* 构建距离矩阵:计算模板帧与测试帧之间的曼哈顿距离。
* 累计成本计算:采用动态规划递归计算最小累计损耗路径。
* 路径回溯:通过逆向搜索确定最佳对齐路径,以此计算最终的相似度得分。
使用方法
- 启动程序:在 MATLAB 命令行窗口运行系统主函数。
- 执行采集:根据屏幕提示向麦克风说话,录音将持续 3 秒。
- 自动分析:
* 程序将自动完成降噪、分帧及特征计算。
* 控制台会实时打印识别报告,包括音调分类结果、平均基音频率以及 DTW 匹配距离。
- 结果查阅:
* 系统会自动弹出可视化窗口,展示四个维度的图表:时域波形图、MFCC 倒谱图、基音频率轨迹图以及 DTW 规整路径图。
* 通过相似度评分百分比了解当前语音段的内部一致性或识别匹配程度。