Page 105 - 201806
P. 105

第 37 卷 第 6 期               武正平等: 改进的正交匹配追踪的语音增强算法                                           935


                                                               得到一个过完备字典,将该 DCT 字典作为 K-SVD
             1 引言
                                                               算法训练的初始字典;第二步,用K-SVD 和改进后
                 在实际的通信中,语音信号常常会受到来自背                          的 OMP 算法训练干净语音得到干净语音的过完备
                                                               字典;第三步,用纯净语音的过完备字典和设置有能
             景环境、传输介质、通讯设备内部等各类噪声的干
             扰  [1] 。语音增强是去除噪声污染和抑制噪声干扰                        量阈值的 OMP 算法训练得到含噪语音的稀疏系数
             的有效办法,主要目的是从含噪语音中提取出原始                            矩阵;第四步,用第二步的过完备字典与第三步的稀
             干净的语音信号,提高语音的可懂度,改善语音质                            疏矩阵得到增强后的语音。实验结果表明此算法在
             量  [2] 。近些年来,稀疏编码或稀疏表示的语音增强                       背景去噪方面优于传统K-SVD语音增强算法,改进
             算法引起了学者们的极大关注。信号稀疏表示概念                            后的 OMP 算法与原算法相比,运算速度也得到了
             最早来源于 Mallat 等     [3]  在 1993 年提出的匹配追踪           大幅度的提高。
             (Matching pursuit, MP) 算法。稀疏表示是从一个
                                                               2 传统K-SVD算法与OMP算法的基本
             过完备字典中选择少量原子以线性组合的形式来
                                                                  理论
             表示一个信号的全部或大部分信息                [4] 。“稀疏性”的
             定义为只有很少的几个非零元素或只有很少的几                             2.1  传统K-SVD算法的基本理论
             个远大于零的元素。要求系数是稀疏的意思是对于                                K-SVD算法是一种字典更新算法,一般由稀疏
             一组输入向量,只想有尽可能少的几个系数远大于                            编码与字典更新两部分组成。
             零,其余系数都为零。选择具有稀疏性的分量来表                                稀疏编码:固定字典 D,利用公式 (1) 的目标
             示语音信号,是因为绝大多数的语音信号可以被表                            函数,采用追踪算法找到原信号的最优稀疏矩阵。
             示成少量基本元素的叠加。此后,在 MP 算法的基                          本文采用的追踪算法为传统 OMP 算法。假设,含

             础上又有学者提出了 OMP 等改进算法                [5] 。K-奇异      噪语音为 Y ,D 为字典矩阵,X 代表稀疏系数,则
             值分解 (K-singular value decomposition, K-SVD)       K-SVD算法的目标函数为
             算法是由 Aharon 等     [6]  在 2006 年提出来的,是一种
                                                                                  2
                                                                   min{∥Y − DX∥ } s.t. ∀ i , ∥x i ∥ 6 T,  (1)
             非常经典的字典训练算法。由于这些稀疏算法的提                                D,X            F              0
             出,许多学者进行了基于稀疏编码的语音增强算法                            式 (1) 中,|| • || F 为 Frobenius 范数,|| • || 为 0 范数,
                                                                                                   0
             的研究。吕乾坤等        [7]  提出用稀疏约束的概率潜分量                x i 为第 i 个样本在字典 D 上分解后得到的稀疏系
             分析(Probabilistic latent component analysis with   数,T 为稀疏度。
             sparsity constraints, SPLCA)和最大期望算法在实                 字典更新:字典是按列进行更新的,字典的列也
             验训练阶段分别得到语音和噪声两种字典,在增强                            称为字典的原子。通过奇异值分解 (Singular value
             阶段再利用 SPLCA 和谱掩蔽方法得到增强后的语                         decomposition, SVD) 算法依序循环地更新字典每
             音。黄玲等     [8]  提出一种基于 Sparse K-SVD 学习字            个原子和该原子对应的稀疏矩阵。字典更新流程
             典的语音增强算法,使用双重稀疏的字典训练方法,                           如下:
             可进一步改善语音质量,并大幅度提高了算法的计                                            
      k       
 2



                                                                           2
             算效率。李轶南等        [9]  提出了一种改进的稀疏字典学                 ∥Y − DX∥ =     
 Y −  ∑  d j X T
                                                                                             k

                                                                           F

             习的语音增强算法,将噪声分类为结构化噪声和非                                            
     j=1      
 F
                                                                               
                         
 2
             结构化噪声两部分,分别对这两部分噪声进行去噪。                                           
(               )
                                                                               
       ∑      k
                                                                             =  
  Y −    d j X   − d k X  k
             茅正冲等     [10]  和周小星等   [11]  均基于压缩感知技术                            
              T         T
                                                                               
       j̸=k
             提出改进的语音增强算法。                                                                                 F
                                                                               
            
 2
                                                                             =  
 E k − d k X  k 
  ,     (2)
                 虽然 OMP 算法是经典的稀疏算法,但用在语                                                   T  F
             音增强时,其增强效果并不好,又因其算法运算速度                           其中,E k 是去掉 d k 后信号集 Y 的分解误差。假设
             与其他追踪算法相比较慢。故本文提出了一种基于                            字典的前 k − 1 列是已更新不变的,更新第 k 列,对
                                                                                                    T
             改进的OMP算法的语音增强算法。第一步,利用离                           E k 进行 SVD 分解得到 d k ,E k = U∆V ,令矩阵
             散余弦变换(Discrete cosine transform, DCT)算法           U 的第一列作为字典第 k 列更新后的 d k ,同时令
   100   101   102   103   104   105   106   107   108   109   110