2 基于小波包分解和Volterra自适应模型的语音识别
2.1 语音时间序列相空间重构
混沌时间序列的分析、确定和预测在相空间中进行,因此语音时间序列的相空间重构是分析混沌特性的第一步[3-4],根据Takens定理,延迟坐标嵌入方法表示如下:
式中,M是相空间中的点数,M =L-(m-1)τ;L是时间序列的结束;τ是延迟时间;m是嵌入维数。
2.2 小波包变换
小波包变换是传统小波变换的扩展。小波变换只能进一步分解信号的低频部分,无法解决高频部分的要求[5]。小波包变换可以分解低频信号和高频信号,这意味着小波包分解可提供比小波分解更准确的频率分辨率。
根据小波的多分辨率分析,缩放函数φ(t)与小波函数ϕ(t)之间的关系是相互的。二维方程定义如下:
式中,h(k)和g(k)是一对共轭正交镜滤波器,g (k )=(-1)k h(1-k )。信号通过小波包法被分解为低频信号和高频信号,小波包分解算法如下:
式中,p 是节点号; j是分解级别。在第j-th级分解系数的基础上,通过式(3)和式(4)中的小波包系数递推公式得到第( j+1)-th级分解系数。类似地,所有级别系数都可以通过式(3)和式(4)获得。以上第j-th级所有子带的频率范围为
其中fs是采样频率。
近似小波包分解仍然是更原始的信号频谱信息。图1是语音信号“blue sky”三重db4小波包分解系数的重构子带信号。在“y”是原始语音信号的情况下,“y1~y8”是小波包系数的八个子带。
图1 语音信号“blue sky”,三重db4小波包分解系数图
Fig.1 Speech signal"blue sky", triple db4 wavelet packet decomposition coefficient diagram
2.3 Volterra自适应模型的提取特征
Volterra 函数序列通常可以描述响应和记忆函数的非线性行为,它可以以任意精度逼近任意连续函数。对于非线性系统,基于Volterra的自适应预测滤波方法可以反馈滤波器参数的迭代调整,从而实现最优滤波器[6-10]。Volterra系列的表现形式如下:
非线性动态系统输入表示为X (n)=[x(n), x(n-1),…, x(n-N+1)] ,输出表示为Y ( n )=x ( n+1)。Volterra 膨胀的非线性动力系统表示如下:
式中, h1 , h2 ,…, h p是Volterra系列的核函数,它是系统的隐函数,反映了语音信号的宏观;p是滤波器长度。根据语音时间序列的特点,为了减少计算量,通常选择二阶Volterra自适应预测模型来截断,表达式如下:
通过Volterra系列扩展的混沌时间序列,该案例是m项二阶Volterra滤波器截止( m是混沌时间序列的最小嵌入维数)。通过状态扩展,系统总数为M =1+m+m(m-1)/2 ,滤波器系数向量和输入向量分别如下:
由于 Volterra 自适应滤波器系数可以通过线性自适应FIR 滤波器算法直接确定,因此式(7)可以表示为:
本文采用LMS自适应算法,它具有良好的稳定性和简单的结构,并且易于实施,它广泛用于自适应控制和信号处理领域。自适应滤波算法由以下两个过程组成:
(1)滤波过程:计算滤波器输出对输入的响应,并比较实际输出和所需输出,以获得估计误差。
(2)适应过程:根据滤波过程得到的估计误差调整滤波器参数。
上述两个过程形成具有反馈的环结构。首先,使用横向滤波器完成单输入滤波处理。然后,通过自适应控制算法更新和调整横向滤波器抽头权重。
抽头输入向量U (n)为x(n), x(n-1),…, x(n-m+1) ,抽头权重向量 ω(n) 为0ω(n), 1ω(n),…ωm-1 (n)。使用LMS自适应算法计算权重向量,该值表示估计值。主过滤器结构如图2所示。
图2 自适应滤波器控制算法的框图
Fig.2 Block diagram of the adaptive filter control algorithm
预期响应d (n)和抽头输入向量U (n)在滤波过程中同时进行。在上述过程中,实际输出由具有给定输入的滤波器产生;实际输出y(n)显示为:
确定估计误差e(n)为预期响应d (n)与实际输出y(n)之差,即
LMS自适应滤波过程使用最小准则的均方值来调整权重向量,表达式如下:
LMS自适应算法的权重调整过程如下:
(1)使用给定的输入U (n)得到滤波器的输出如下:
(2)计算预期响应d (n)和实际输出y(n)得到估计误差e(n)为:
(3)计算绩效指标的功能如下:
(4)根据性能指标函数、估计误差,自适应调整抽头权重向量如下:
式中,μ是正常数的收敛因子,它用于调整自适应迭代步骤。参数μ决定收敛速度,大步长会使算法变得不稳定;如果μ太小,则会带来额外的错误。
语音信号“blue sky”由3级和6级小波包分解,所有子带信号分别用于 AR 模型和Volterra模型实验。这里我们从3级小波包中选择一个子带信号,两种比较方法的预测结果如图3和图4所示。我们从6级小波包中选择一个子带信号进行预测,两种比较方法的结果显示在图5和图6中(为了清楚地显示,这些图仅显示70个预测值)。
图3 具有3级小波包分解的混沌语音信号的Volterra自适应预测和线性预测
Fig.3 Volterra adaptive prediction and linear prediction of chaotic speech signals with 3-level wavelet packet decomposition
图4 具有3级小波包分解的混沌语音信号的Volterra自适应预测和线性预测误差
Fig.4 Volterra adaptive prediction and linear prediction error of chaotic speech signals with 3-level wavelet packet decomposition
图5 具有6级小波包分解的混沌语音信号的Volterra自适应预测和线性预测
Fig.5 Volterra adaptive prediction and linear prediction of chaotic speech signals with 6-order wavelet packet decomposition
具有3级小波包的Volterra自适应预测误差为0.102,AR模型预测为0.2144。具有6级小波包的Volterra自适应预测误差为0.0612, AR模型预测误差为0.1744。使用传统线性预测方法实现差异预测值的对比效果比前者差。这些结果表明使用语音信号预测模型的非线性系统效果更好。
图6 具有6级小波包分解的混沌语音信号的Volterra自适应预测和线性预测误差
Fig.6 Volterra adaptive prediction and linear prediction error of chaotic speech signals with 6-order wavelet packet decomposition