最近看STRAIGHT特征提取算法,整理相关文档,也写些自己的理解。先整体,细节有时间再补充。
1.F0提取
STRAIGHT F0的提取主要分为:F0粗定位->F0轨迹平滑->F0精定位。
F0粗定位是指对语音信号进行小波变换,得到小波系数。再将小波系数转换为瞬时频率作为各帧的一组候选F0值。在进行小波变换前,要经过高通滤波器去除信号的直流分量;然后对信号降采样。
F0轨迹平滑指根据计算得到的高频能量比、最小噪声能量、判决门限、跳跃度(帧级别的基音频率与参考频率的误差),在一组候选F0值中寻找最可能的F0平滑曲线。
F0精定位和F0粗定位相似,也会用到瞬时频率。但F0粗定位是用小波变换得到瞬时频率,而F0精定位则是用FFT得到瞬时频率,再根据当前帧的噪声能量和语音能量对瞬时频率进行微调。
2.自适应谱提取
自适应加权谱的提取,其核心算法在于对提取出的功率谱进行一系列的平滑和补偿过程。对输入的语音信号进行:语音信号预处理 -> 功率谱提取 -> 低频噪声补偿 -> 过平滑补偿 -> 无音帧谱的处理,最后得到自适应功率谱。
其中,语音信号预处理包括让语音信号x(n)经过三个六阶butterworth高通滤波器:截止频率分别为70Hz,300Hz,3kHz。滤波得到x1(n),x2(n),x3(n)。算法通过x1(n)求取功率谱,通过x2(n),x3(n)产生无音帧功率谱的加权系数。
在提取当前帧的功率谱时,首先要设计截取帧的数据窗函数,窗函数w1(n)和频率有关,