本发明属于语音信号分析与处理领域,提出一套完整的基于改进的经验小波变换的基频检测算法。
背景技术:
语音信号具有非平稳非线性的特征,研究非平稳信号常用方法有窗口傅里叶变换,连续小波变换,经验模态分解(emd)等。语音信号基频检测常用的方法分为基于帧的检测与基于事件的检测两类。基于帧的检测通过计算一段语音信号的平均周期来确定基频。假设语音信号在某一段内为平稳信号,且存在两个基音周期以上的采样点。这种方法的缺点是:在基频变化较快的情况下实现很困难,无法实现对高音调以及低音调语音同时适用的情况,另外如果语音存在较大噪声,得到的结果精度不高。
技术实现要素:
本发明的目的在于提供一种准确度高、鲁棒性好、时间分辨率高的基于改进的经验小波变换的基频检测方法。
实现本发明目的的技术解决方案为:一种基于改进的经验小波变换的基频检测方法,步骤如下:
步骤1,对语音信号s(t)进行预处理:计算语音信号s(t)的短时能量和过零率,采用双门限法进行声韵分割,并把分割后的信号通过50~1500hz的带通滤波器进行滤波,得到预处理之后的语音信号
步骤2,采用改进的经验小波变换法对预处理之后的语音信号
步骤3,根据各个模式函数,选取语音信号
步骤4,采用希尔伯特变换,求解主模式
步骤5,使用矩形窗函数对步骤4所得瞬时基频值做平滑处理完成基频检测。
进一步地,步骤2所述采用改进的经验小波变换法对预处理之后的语音信号
(2.1)对预处理之后的语音信号
(2.2)对语音信号频谱进行top-hat变换,检测出频谱包络;
(2.3)采用局部极小极大值的方法对频谱包络进行峰值检测,将每两个谷值之间存在一个峰值的区域划分出来,得到了原始语音信号s(t)的频谱划分方案;
(2.4)对步骤(2.3)所划分的各个频谱片段构造经验小波基函数,等效于构建滤波器组;
(2.5)根据步骤(2.4)构造的经验小波基函数对相应频谱段进行经验小波分解,最终得到各个模式函数。
进一步地,步骤3所述选取语音信号
(3.1)选取峰值能量超过最大峰值一半能量作为预选主模式;
(3.2)在(3.1)的基础上,选取频率值最为接近零频的模式作为最终的输出结果即主模式
本发明与现有技术相比,其显著优点为:(1)有效地解决了原始经验小波变换方法在处理频谱较复杂的信号出现的频谱“过切分”现象;(2)在语音信号的基频检测中,充分结合了经验模式分解和小波变换自适应强的优势,结果具有较高的时间分辨率和准确度。
附图说明
图1为本发明的基于改进的经验小波变换的基频检测方法流程图。。
图2为本发明的基于top-hat变换的经验小波变换改进算法流程图。
图3为本发明的原始语音信号波形图。
图4为本发明的语音信号预处理后的时域图。
图5为本发明的语音信号频谱图。
图6为本发明的语音信号top-hat变换结果图。
图7为本发明的语音信号频谱划分图。
图8为本发明的语音信号模式分解图。
图9为本发明的语音信号基频包络图。
具体实施方式
本发明基于改进的经验小波变换的基频检测方法,主要是针对原始的经验小波变换方法在处理具有复杂频谱的信号时,进行频谱划分的过程中,出现的频谱“过切分”问题,提出了基于形态滤波的的改进方法,该方法借鉴了数学形态学中形态滤波器的概念,使用top-hat变换对信号的复杂频谱进行处理,滤去了精细的频谱结构,将各个谱峰彼此分离,准确地提取信号的频谱包络,结合图1,具体步骤如下:
步骤1,对语音信号s(t)进行预处理:计算语音信号s(t)的短时能量和过零率,采用双门限法进行声韵分割,并把分割后的信号通过50~1500hz的带通滤波器进行滤波,得到预处理之后的语音信号
步骤2,采用改进的经验小波变换法对预处理之后的语音信号
(2.1)对预处理之后的语音信号
(2.2)对语音信号频谱进行top-hat变换,检测出频谱包络;
(2.3)采用局部极小极大值的方法对频谱包络进行峰值检测,将每两个谷值之间存在一个峰值的区域划分出来,得到了原始语音信号s(t)的频谱划分方案;
(2.4)对步骤(2.3)所划分的各个频谱片段构造经验小波基函数,等效于构建滤波器组;
(2.5)根据步骤(2.4)构造的经验小波基函数对相应频谱段进行经验小波分解,最终得到各个模式函数。
步骤3,根据各个模式函数,选取语音信号
(3.1)选取峰值能量超过最大峰值一半能量作为预选主模式;
(3.2)在(3.1)的基础上,选取频率值最为接近零频的模式作为最终的输出结果即主模式
步骤4,采用希尔伯特变换,求解主模式
步骤5,使用矩形窗函数对步骤4所得瞬时基频值做平滑处理完成基频检测。
改进后的经验小波变换方法被应用在语音信号的基频检测上,下面结合附图及具体 实施例对本发明作进一步详细描述。
实施例1
1、以测试信号“基jī”为例,其时域波形图如图3所示,通过计算短时能量和过零率,利用双门限检测对信号进行声韵分割,把分割后的信号通过50hz~1500hz的滤波器,结果如图4所示;
2、对信号进行傅里叶变换,可以获得频谱,结果如图5所示;
3、对信号的频谱进行top-hat变换,检测出频谱的包络,结果如图6所示;
4、采用局部极小极大值的方法对频谱包络进行峰值检测,将每两个谷值之间存在一个峰值的区域划分出来,得到了原始信号的的频谱划分方案,结果如图7所示;
5、对各个频谱片段构造经验小波基函数,等效于构建滤波器组,进行经验小波分解,最终得到各个模式函数,结果如图8所示;
6、采用希尔伯特变换对分解得到的模式进行瞬时基频的求解,结果如图9所示。
本发明与传统的基频检测算法相比,具有高准确度,较好的鲁棒性以及高时间分辨率的特点。