合成语音质量客观评价系统 README
项目介绍
本项目是一个基于 MATLAB 开发的合成语音质量客观评价系统。系统通过数学模型和信号处理算法,定量分析合成语音相对于原始语音的失真程度、清晰度及还原度。该方案整合了时域、频域及统计学维度的多种评估指标,旨在为语音合成(TTS)、语音编码及修复算法提供科学、自动化的质量监测手段,减少人工主观测评的成本。
功能特性
- 信号模拟与重构:内置语音信号模拟发生器,可产生包含基频与谐波的参考信号,并模拟常见的处理失真(如低通滤波、加性噪声、增益缩放)。
- 多维质量指标计算:支持信噪比(SNR)、倒谱距离(CD)及均方根误差(RMSE)等核心指标的自动化计算。
- 统计特征提取:自动分析语音序列的均值、标准差,从统计分布角度衡量信号的一致性。
- 时频特性分析:利用短时傅里叶变换(STFT)生成动态语谱图,直观展示信号在频率随时间演变过程中的细节损耗。
- 综合评价可视化:系统通过波形图、语谱图、倒谱分布图、评估报告表及三维维度雷达图,全方位呈现质量评估结果。
使用方法
- 环境准备:确保 MATLAB 环境已安装并配置好。
- 运行系统:在 MATLAB 命令窗口中直接运行主程序脚本。
- 过程监测:程序将自动生成包含参考信号与合成信号的对比序列,并执行预处理与特征分析。
- 查看结果:
- 命令行:查看实时输出的 SNR、CD 和 RMSE 数值报告。
- 图形界面:界面将弹出多维度可视化展板,对比时域波形差异、语谱图分布细节以及各项指标评分。
系统要求
- 软件版本:MATLAB R2020b 或更高版本(以支持内置 stft 函数,低版本可参考内置辅助函数实现)。
- 必备工具箱:信号处理工具箱(Signal Processing Toolbox)。
- 硬件环境:标准 PC 硬件配置即可平稳运行,处理速度取决于信号时长。
核心功能与实现逻辑分析
#### 1. 信号预处理模块
程序首先对原始信号和合成信号执行预加重处理。通过一个一阶高通滤波器(系数为 0.97)提升高频分量,补偿语音信号在合成过程中可能出现的频谱倾斜,使后续的谱分析更加准确。
#### 2. 时域统计分析
系统实现了基础的统计学评价逻辑:
- 均方根误差(RMSE):直接度量样点级的偏离程度,反映信号幅度的一致性。
- 幅值统计:通过计算均值和标准差,监测合成语音在动态范围和直流偏移上的变化。
#### 3. 信噪比(SNR)计算
该功能通过计算原始参考信号的功率与残差(原始信号与合成信号之差)功率的比值,并转化为分贝(dB)单位。它能够客观反映合成过程中引入的加性噪声水平。
#### 4. 倒谱距离(CD)分析
这是系统评估频谱包络失真的核心功能,其实现逻辑如下:
- 分帧与加窗:利用汉明窗对信号进行分帧处理,确保频谱分析的平滑性。
- 倒谱系数提取:对每一帧执行快速傅里叶变换(FFT),取模后进行对数运算,再通过逆快速傅里叶变换(IFFT)得到倒谱序列。
- 距离度量:提取前 12 阶低频倒谱系数(排除第 0 阶能量项),计算参考帧与合成帧之间的欧氏距离。
- 最终结果:取所有帧的平均值,作为表征语音动态特征还原度的主要指标。
#### 4. 时频域细节对比
系统调用短时傅里叶变换(STFT)算法,将一维时域信号转化为二维时频分布。通过对数功率谱展示语谱图,能够清晰发现合成信号在特定频带(如高频截断)或特定时间点上的能量丢失情况。
#### 6. 综合评分与可视化逻辑
为了使评价结果直观化,系统实现了以下逻辑:
- 归一化评分:将 SNR、CD 和 RMSE 指标映射至 0-5 分的评价体系中。
- 雷达图呈现:通过极坐标绘图展示系统在不同维度上的性能表现,便于一眼识别合成系统中存在的特定薄弱环节(如抗噪性能差或频谱失真严重)。
关键算法细节
- 倒谱计算公式:利用 10/ln(10) 为系数,将欧氏距离转换为 dB 量级,使其更符合人类听觉的感知特性。
- 帧参数配置:系统默认采用 512 点帧长和 256 点帧移,能够平衡时间分辨率与频率分辨率的需求。
- 健壮性:通过 eps 常数处理对数运算中的零值问题,防止计算溢出。