前言
语音信号处理主要包括语音通信(语音编码),语音合成和语音识别等,前提是对语音信号进行分析。只有将语音信号分析表示成其本质特性的参数,才有可能利用这些参数进行高效的语音通信,才可能建立用于语音合成的语音库,才有可能建立用于识别的模板或知识库。根据分析的参数不同,语音信号分析可分为时域、频域倒谱域等方法。贯穿于语音信号分析全过程的是“短时分析技术”,语音是一个非稳定的过程,具有时变特性,但是在一个较短的时间范围内其特性基本保持不变,即相对稳定,可以看成一个准稳定状态,因此一般分析语音都是进行“短时分析”。将语音分成一小段一小段,每一段称为“一帧(frame)”。语音通常在10ms-30ms保持相对稳定,因而帧长一般取10ms-30ms。
语音信号数字化
语音信号数字化之前,需要先进行防混叠滤波及防工频干扰滤波。防混叠滤波指滤除高于1/2采样频率的信号成分。工频干扰指50Hz的电源干扰。
语音信号的采样和量化
语音信号是随时间变化的一维模拟信号,要用计算机分析就需要先进行采样和量化,将其变成离散的数字信号,在采样过程中,将从连续信号上连续采样的两个相邻点的时间间隔称为采样周期T,周期的倒数为采样率fs,根据采样定理,当采样频率大于信号最高频率的两倍时,采样过程中就不会丢失信息,并且可以用采样后的信号重构原始信号。在进行采样后,信号在时域上是离散的,但是在幅度上依然是连续的,因此需要进行量化,将幅度值离散化,一般有三种量化方式:零记忆量化、分组量化和序列量化。一般量化值使用二进制表示,如果用B个二进制数表示量化值,即量化字长,那么一般将幅度值划分为
    
     
      
       
        
         2
        
        
         B
        
       
      
      
       2^B
      
     
    2B个等分区间,量化误差定义为:
 
     
      
       
        
         e
        
        
         (
        
        
         n
        
        
         )
        
        
         =
        
        
         
          x
         
         
          ^
         
        
        
         (
        
        
         n
        
        
         )
        
        
         −
        
        
         x
        
        
         (
        
        
         n
        
        
         )
        
       
       
         e(n)=\hat{x}(n)-x(n) 
       
      
     e(n)=x^(n)−x(n)
 其中
    
     
      
       
        
         x
        
        
         ^
        
       
       
        (
       
       
        n
       
       
        )
       
      
      
       \hat{x}(n)
      
     
    x^(n)为量化后的采样值,
    
     
      
       
        x
       
       
        (
       
       
        n
       
       
        )
       
      
      
       x(n)
      
     
    x(n)为未量化的采样值。
 用
    
     
      
       
        
         σ
        
        
         x
        
        
         2
        
       
      
      
       \sigma_{x}^{2}
      
     
    σx2表示输入信号序列的方差,
    
     
      
       
        
         σ
        
        
         e
        
        
         2
        
       
      
      
       \sigma_{e}^{2}
      
     
    σe2表示噪音序列的方差,则可以证明量化信噪比SNR(dB)为:
 
     
      
       
        
         
          S
         
         
          N
         
         
          R
         
        
        
         =
        
        
         10
        
        
         lg
        
        
         
        
        
         
          (
         
         
          
           
            σ
           
           
            x
           
           
            2
           
          
          
           
            σ
           
           
            e
           
           
            2
           
          
         
         
          )
         
        
        
         =
        
        
         6.02
        
        
         B
        
        
         +
        
        
         4.77
        
        
         −
        
        
         20
        
        
         log
        
        
         
        
        
         
          (
         
         
          
           
            x
           
           
            max
           
           
            
           
          
          
           
            σ
           
           
            x
           
          
         
         
          )
         
        
       
       
         \mathrm{SNR}=10 \lg \left(\frac{\sigma_{x}^{2}}{\sigma_{e}^{2}}\right)=6.02 B+4.77-20 \log \left(\frac{x_{\max }}{\sigma_{x}}\right) 
       
      
     SNR=10lg(σe2σx2)=6.02B+4.77−20log(σxxmax)
 假设语音信号服从拉普拉斯分布,此时信号幅度超过
    
     
      
       
        4
       
       
        
         σ
        
        
         x
        
       
      
      
       4\sigma_{x}
      
     
    4σx的概率很小,因此可以取
    
     
      
       
        
         x
        
        
         max
        
        
         
        
       
       
        =
       
       
        4
       
       
        
         σ
        
        
         x
        
       
      
      
       x_{\max }=4\sigma_{x}
      
     
    xmax=4σx,此时SNR为:
 
     
      
       
        
         
          S
         
         
          N
         
         
          R
         
        
        
         =
        
        
         6.02
        
        
         B
        
        
         −
        
        
         7.2
        
       
       
         \mathrm{SNR}=6.02 B-7.2 
       
      
     SNR=6.02B−7.2
 表明量化器中每个比特字长对信噪比的贡献大约为6dB,研究表明语音波形的动态范围在55dB,因此量化字长因取10比特以上。
在经过采样和量化后,一般还需对语音信号进行预加重,来提升高频部分,使信号的频谱变得平坦,减少高频损失,具体不在这里详述。
短时加窗处理
经过数字化处理的语音信号是一个时变信号,为了能用传统的方法对语音信号进行分析,假设语音信号在10ms-30ms短时间内是平稳的,为了得到平稳的语音信号需要进行加窗操作。窗函数平滑地在语音信号上滑动,将语音信号分成帧,分帧可以连续,也可以交叠分段,交叠部分称为帧移,一般取窗长的一半。加窗时,不同的窗函数会影响到语音信号分析的结果。
1.窗函数
矩形窗,即
 
     
      
       
        
         w
        
        
         (
        
        
         n
        
        
         )
        
        
         =
        
        
         
          {
         
         
          
           
            
             
              
               1
              
              
               ,
              
             
            
           
           
            
             
              
               0
              
              
               ⩽
              
              
               n
              
              
               ⩽
              
              
               N
              
              
               −
              
              
               1
              
             
            
           
          
          
           
            
             
              
               0
              
              
               ,
              
             
            
           
           
            
             
               其他 
             
            
           
          
         
        
       
       
         w(n)= \begin{cases}1, & 0 \leqslant n \leqslant N-1 \\ 0, & \text { 其他 }\end{cases} 
       
      
     w(n)={1,0,0⩽n⩽N−1 其他 
 汉明窗:
 
     
      
       
        
         w
        
        
         (
        
        
         n
        
        
         )
        
        
         =
        
        
         
          {
         
         
          
           
            
             
              
               0.54
              
              
               −
              
              
               0.46
              
              
               cos
              
              
               
              
              
               [
              
              
               2
              
              
               π
              
              
               n
              
              
               /
              
              
               (
              
              
               N
              
              
               −
              
              
               1
              
              
               )
              
              
               ]
              
              
               ,
              
             
            
           
           
            
             
              
               0
              
              
               ⩽
              
              
               n
              
              
               ⩽
              
              
               N
              
              
               −
              
              
               1
              
             
            
           
          
          
           
            
             
              
               0
              
              
               ,
              
             
            
           
           
            
             
               其他 
             
            
           
          
         
        
       
       
         w(n)= \begin{cases}0.54-0.46 \cos [2 \pi n /(N-1)], & 0 \leqslant n \leqslant N-1 \\ 0, & \text { 其他 }\end{cases} 
       
      
     w(n)={0.54−0.46cos[2πn/(N−1)],0,0⩽n⩽N−1 其他 
汉宁窗:
 
     
      
       
        
         w
        
        
         (
        
        
         n
        
        
         )
        
        
         =
        
        
         
          {
         
         
          
           
            
             
              
               0.5
              
              
               [
              
              
               1
              
              
               −
              
              
               cos
              
              
               
              
              
               (
              
              
               2
              
              
               π
              
              
               n
              
              
               /
              
              
               (
              
              
               N
              
              
               −
              
              
               1
              
              
               )
              
              
               )
              
              
               ]
              
              
               ,
              
             
            
           
           
            
             
              
               0
              
              
               ⩽
              
              
               n
              
              
               ⩽
              
              
               N
              
              
               −
              
              
               1
              
             
            
           
          
          
           
            
             
              
               0
              
              
               ,
              
             
            
           
           
            
             
               其他 
             
            
           
          
         
        
       
       
         w(n)= \begin{cases}0.5[1-\cos(2 \pi n /(N-1))], & 0 \leqslant n \leqslant N-1 \\ 0, & \text { 其他 }\end{cases} 
       
      
     w(n)={0.5[1−cos(2πn/(N−1))],0,0⩽n⩽N−1 其他 
 其中,
    
     
      
       
        N
       
      
      
       N
      
     
    N为窗口长度。
2.窗函数长度
不论什么样的窗,窗的长度对能否反映语音信号的幅度变化起决定性作用。如果N特别大,即等于几个基因周期量级,则窗函数等效于很窄的低通滤波器,此时信号短时信息将缓慢变化,因而就不能充分反应波形的变化细节;反之,N很小,即等于或小于一个基因周期的量级,则信号的能量将按照信号的细微状况而很快的变化,当N太小,滤波器的通带变宽,则不能得到较为平滑的短时信息,因此选择合适的窗口长度很重要。通常在fs=10kHz的情况下,N选择在100-200量级。
语音信号的时域分析
对语音信号分析最自然、最直接的方法是以时间为自变量进行分析,语音信号典型的时域特征包括短时能量、短时平均过零率、短时自相关系数和短时平均幅度差等。
短时能量分析
语音信号的能量随时间变化较为明显,一般清音能量比浊音能量小的多,语音信号的短时能量分析很好的反映幅度变化。对于信号
    
     
      
       
        {
       
       
        x
       
       
        (
       
       
        n
       
       
        )
       
       
        }
       
      
      
       \{x(n)\}
      
     
    {x(n)},短时能量定义为:
     
      
       
        
         
          E
         
         
          n
         
        
        
         =
        
        
         
          ∑
         
         
          
           m
          
          
           =
          
          
           −
          
          
           ∞
          
         
         
          ∞
         
        
        
         [
        
        
         x
        
        
         (
        
        
         m
        
        
         )
        
        
         w
        
        
         (
        
        
         n
        
        
         −
        
        
         m
        
        
         )
        
        
         
          ]
         
         
          2
         
        
        
         =
        
        
         
          ∑
         
         
          
           m
          
          
           =
          
          
           −
          
          
           ∞
          
         
         
          ∞
         
        
        
         
          x
         
         
          2
         
        
        
         (
        
        
         m
        
        
         )
        
        
         h
        
        
         (
        
        
         n
        
        
         −
        
        
         m
        
        
         )
        
        
         =
        
        
         
          x
         
         
          2
         
        
        
         (
        
        
         n
        
        
         )
        
        
         ∗
        
        
         h
        
        
         (
        
        
         n
        
        
         )
        
       
       
         E_{n}=\sum_{m=-\infty}^{\infty}[x(m) w(n-m)]^{2}=\sum_{m=-\infty}^{\infty} x^{2}(m) h(n-m)=x^{2}(n) * h(n) 
       
      
     En=m=−∞∑∞[x(m)w(n−m)]2=m=−∞∑∞x2(m)h(n−m)=x2(n)∗h(n)
 其中,
    
     
      
       
        h
       
       
        (
       
       
        n
       
       
        )
       
       
        =
       
       
        
         w
        
        
         2
        
       
       
        (
       
       
        n
       
       
        )
       
      
      
       h(n) = w^2(n)
      
     
    h(n)=w2(n),
    
     
      
       
        
         E
        
        
         n
        
       
      
      
       E_n
      
     
    En表示在信号的第
    
     
      
       
        n
       
      
      
       n
      
     
    n个点开始加窗函数时的短时能量。可以看出短时能量可以看作语音信号的平方经过一个线性滤波器的输出。
短时能量主要有以下几方面的应用:首先可以利用短时能量区分清音和浊音;其次可以用短时能量对有声段和无声段进行判断进行判定,对声母、韵母分界,以及连字分界等。短时能量由于是对信号进行平方运算,因而认为增加了高低信号间的差异,在一些应用场景不太适合。可以采用短时平均幅度值来表示能量的变化:
 
     
      
       
        
         
          M
         
         
          n
         
        
        
         =
        
        
         
          ∑
         
         
          
           m
          
          
           =
          
          
           −
          
          
           ∞
          
         
         
          ∞
         
        
        
         ∣
        
        
         x
        
        
         (
        
        
         m
        
        
         )
        
        
         ∣
        
        
         w
        
        
         (
        
        
         n
        
        
         −
        
        
         m
        
        
         )
        
        
         =
        
        
         
          ∑
         
         
          
           m
          
          
           =
          
          
           n
          
         
         
          
           n
          
          
           +
          
          
           N
          
          
           −
          
          
           1
          
         
        
        
         
          ∣
         
         
          
           x
          
          
           w
          
         
         
          (
         
         
          m
         
         
          )
         
         
          ∣
         
        
       
       
         M_{n}=\sum_{m=-\infty}^{\infty}|x(m)| w(n-m)=\sum_{m=n}^{n+N-1}\left|x_{w}(m)\right| 
       
      
     Mn=m=−∞∑∞∣x(m)∣w(n−m)=m=n∑n+N−1∣xw(m)∣
短时过零率
短时过零率是指每帧内信号通过零值的次数。对于连续语音信号,可以考察其时域波形通过时间轴的情况。对于离散信号,实质是信号采样点符号变化的次数。如果是正弦信号,它的平均过零率就是信号的频率除以两倍的采样频率,而采样频率是固定的,因此过零率在一定程度上可以反映出频率的信息。语音信号不是简单的正弦序列,所以平均过零率的表示方法就不那么确切。然而短时平均过零率仍然可以在一定程度上反映其频谱性质,可以通过短时平均过零率获得谱特性的一种粗虐估计。短时平均过零率的公式为:
 
     
      
       
        
         
          Z
         
         
          n
         
        
        
         =
        
        
         
          1
         
         
          2
         
        
        
         
          ∑
         
         
          
           m
          
          
           =
          
          
           −
          
          
           ∞
          
         
         
          ∞
         
        
        
         ∣
        
        
         sgn
        
        
         
        
        
         [
        
        
         x
        
        
         (
        
        
         m
        
        
         )
        
        
         ]
        
        
         −
        
        
         sgn
        
        
         
        
        
         [
        
        
         x
        
        
         (
        
        
         m
        
        
         −
        
        
         1
        
        
         )
        
        
         ]
        
        
         ∣
        
        
         w
        
        
         (
        
        
         n
        
        
         −
        
        
         m
        
        
         )
        
       
       
         Z_{n}=\frac{1}{2} \sum_{m=-\infty}^{\infty}|\operatorname{sgn}[x(m)]-\operatorname{sgn}[x(m-1)]| w(n-m) 
       
      
     Zn=21m=−∞∑∞∣sgn[x(m)]−sgn[x(m−1)]∣w(n−m)
 
     
      
       
        
         =
        
        
         
          1
         
         
          2
         
        
        
         
          ∑
         
         
          
           m
          
          
           =
          
          
           n
          
         
         
          
           n
          
          
           −
          
          
           N
          
         
        
        
         
          ∣
         
         
          sgn
         
         
          
         
         
          
           [
          
          
           
            x
           
           
            w
           
          
          
           (
          
          
           m
          
          
           )
          
          
           ]
          
         
         
          −
         
         
          sgn
         
         
          
         
         
          
           [
          
          
           
            x
           
           
            w
           
          
          
           (
          
          
           m
          
          
           −
          
          
           1
          
          
           )
          
          
           ]
          
         
         
          ∣
         
        
       
       
         =\frac{1}{2} \sum_{m=n}^{n-N}\left|\operatorname{sgn}\left[x_{w}(m)\right]-\operatorname{sgn}\left[x_{w}(m-1)\right]\right| 
       
      
     =21m=n∑n−N∣sgn[xw(m)]−sgn[xw(m−1)]∣
 式中,
    
     
      
       
        sgn
       
       
        
       
       
        [
       
       
        ⋅
       
       
        ]
       
      
      
       \operatorname{sgn}[\cdot]
      
     
    sgn[⋅]是符号函数,即
 
     
      
       
        
         sgn
        
        
         
        
        
         [
        
        
         x
        
        
         (
        
        
         n
        
        
         )
        
        
         ]
        
        
         =
        
        
         
          {
         
         
          
           
            
             
              
               1
              
              
               ,
              
             
            
           
           
            
             
              
               x
              
              
               (
              
              
               n
              
              
               )
              
              
               ⩾
              
              
               0
              
             
            
           
          
          
           
            
             
              
               −
              
              
               1
              
              
               ,
              
             
            
           
           
            
             
              
               x
              
              
               (
              
              
               n
              
              
               )
              
              
               <
              
              
               0
              
             
            
           
          
         
        
       
       
         \operatorname{sgn}[x(n)]= \begin{cases}1, & x(n) \geqslant 0 \\ -1, & x(n)<0\end{cases} 
       
      
     sgn[x(n)]={1,−1,x(n)⩾0x(n)<0
 对于浊音一般有较低的过零率,因为浊音主要处于低频阶段,而清音或白噪音有较高的过零率,这样可以用短时过零率初步判断清音和浊音。
另外可以将短时平均过零率和短时能量结合起来判断语音的起止位置,即进行端点检测。
短时平均过零率容易受到低频信号的干扰,可以设立一个门限
    
     
      
       
        T
       
      
      
       T
      
     
    T,将过零率的含义修改为跨过正负门限的次数:
     
      
       
        
         
          
           
            
             
              Z
             
             
              n
             
            
            
             =
            
           
          
         
         
          
           
            
            
             
              1
             
             
              2
             
            
            
             
              ∑
             
             
              
               m
              
              
               =
              
              
               −
              
              
               ∞
              
             
             
              ∞
             
            
            
             {
            
            
             sgn
            
            
             
            
            
             [
            
            
             x
            
            
             (
            
            
             m
            
            
             )
            
            
             −
            
            
             T
            
            
             ]
            
            
             −
            
            
             sgn
            
            
             
            
            
             [
            
            
             x
            
            
             (
            
            
             m
            
            
             −
            
            
             1
            
            
             )
            
            
             −
            
            
             T
            
            
             ]
            
            
             ∣
            
           
          
         
        
        
         
          
           
          
         
         
          
           
            
            
             +
            
            
             ∣
            
            
             sgn
            
            
             
            
            
             [
            
            
             x
            
            
             (
            
            
             m
            
            
             )
            
            
             +
            
            
             T
            
            
             ]
            
            
             −
            
            
             sgn
            
            
             
            
            
             [
            
            
             x
            
            
             (
            
            
             m
            
            
             −
            
            
             1
            
            
             )
            
            
             +
            
            
             T
            
            
             ]
            
            
             ∣
            
            
             }
            
            
             w
            
            
             (
            
            
             n
            
            
             −
            
            
             m
            
            
             )
            
           
          
         
        
       
       
         \begin{aligned} Z_{n}=& \frac{1}{2} \sum_{m=-\infty}^{\infty}\{\operatorname{sgn}[x(m)-T]-\operatorname{sgn}[x(m-1)-T] \mid\\ &+|\operatorname{sgn}[x(m)+T]-\operatorname{sgn}[x(m-1)+T]|\} w(n-m) \end{aligned} 
       
      
     Zn=21m=−∞∑∞{sgn[x(m)−T]−sgn[x(m−1)−T]∣+∣sgn[x(m)+T]−sgn[x(m−1)+T]∣}w(n−m)
 这样计算的短时平均过零率就有一定的抗干扰能力。
短时自相关函数和短时平均幅度差函数
自相关函数
相关函数用于测定两个信号在时域内的相似程度,可以分为互相关函数和自相关函数。互相关函数主要研究两个信号之间的相关性,自相关函数主要用于研究信号本身的同步性、周期性。对于离散的语音数字信号
    
     
      
       
        x
       
       
        (
       
       
        n
       
       
        )
       
      
      
       x(n)
      
     
    x(n),它的自相关函数的定义如下:
 
     
      
       
        
         R
        
        
         (
        
        
         k
        
        
         )
        
        
         =
        
        
         
          ∑
         
         
          
           m
          
          
           =
          
          
           −
          
          
           ∞
          
         
         
          
           +
          
          
           ∞
          
         
        
        
         x
        
        
         (
        
        
         m
        
        
         )
        
        
         x
        
        
         (
        
        
         m
        
        
         +
        
        
         k
        
        
         )
        
       
       
         R(k)=\sum_{m=-\infty}^{+\infty} x(m) x(m+k) 
       
      
     R(k)=m=−∞∑+∞x(m)x(m+k)
 如果信号是随机或周期的,定义为:
 
     
      
       
        
         R
        
        
         (
        
        
         k
        
        
         )
        
        
         =
        
        
         
          
           lim
          
          
           
          
         
         
          
           N
          
          
           →
          
          
           ∞
          
         
        
        
         
          1
         
         
          
           2
          
          
           N
          
          
           +
          
          
           1
          
         
        
        
         
          ∑
         
         
          
           m
          
          
           =
          
          
           −
          
          
           N
          
         
         
          N
         
        
        
         x
        
        
         (
        
        
         m
        
        
         )
        
        
         x
        
        
         (
        
        
         m
        
        
         +
        
        
         k
        
        
         )
        
       
       
         R(k)=\lim _{N \rightarrow \infty} \frac{1}{2 N+1} \sum_{m=-N}^{N} x(m) x(m+k) 
       
      
     R(k)=N→∞lim2N+11m=−N∑Nx(m)x(m+k)
 上面两式表示一个信号与延迟
    
     
      
       
        k
       
      
      
       k
      
     
    k点后的该信号本身的相似程度。它具有如下性质:
 (1) 如果信号
    
     
      
       
        x
       
       
        (
       
       
        n
       
       
        )
       
      
      
       x(n)
      
     
    x(n)具有周期性,那么它的自相关函数也具有周期性,并且周期和信号
    
     
      
       
        x
       
       
        (
       
       
        n
       
       
        )
       
      
      
       x(n)
      
     
    x(n)的周期相同;
 (2) 自相关函数是一个偶函数,即
    
     
      
       
        R
       
       
        (
       
       
        k
       
       
        )
       
       
        =
       
       
        R
       
       
        (
       
       
        −
       
       
        k
       
       
        )
       
      
      
       R(k) = R(-k)
      
     
    R(k)=R(−k);
 (3) 当
    
     
      
       
        k
       
       
        =
       
       
        0
       
      
      
       k=0
      
     
    k=0时,自相关函数具有最大值,即信号与自身相关性最大。
短时自相关函数
短时自相关函数是在自相关函数的基础上将信号加窗获得的,即
 
     
      
       
        
         
          
           
            
             
              R
             
             
              n
             
            
            
             (
            
            
             k
            
            
             )
            
           
          
         
         
          
           
            
            
             =
            
            
             
              ∑
             
             
              
               m
              
              
               =
              
              
               −
              
              
               ∞
              
             
             
              ∞
             
            
            
             x
            
            
             (
            
            
             m
            
            
             )
            
            
             w
            
            
             (
            
            
             n
            
            
             −
            
            
             m
            
            
             )
            
            
             x
            
            
             (
            
            
             m
            
            
             +
            
            
             k
            
            
             )
            
            
             w
            
            
             (
            
            
             n
            
            
             −
            
            
             (
            
            
             m
            
            
             +
            
            
             k
            
            
             )
            
            
             )
            
           
          
         
        
        
         
          
           
          
         
         
          
           
            
            
             =
            
            
             
              ∑
             
             
              
               m
              
              
               =
              
              
               n
              
             
             
              
               n
              
              
               +
              
              
               N
              
              
               −
              
              
               k
              
              
               −
              
              
               1
              
             
            
            
             
              x
             
             
              w
             
            
            
             (
            
            
             m
            
            
             )
            
            
             
              x
             
             
              w
             
            
            
             (
            
            
             m
            
            
             +
            
            
             k
            
            
             )
            
           
          
         
        
       
       
         \begin{aligned} R_{n}(k) &=\sum_{m=-\infty}^{\infty} x(m) w(n-m) x(m+k) w(n-(m+k)) \\ &=\sum_{m=n}^{n+N-k-1} x_{w}(m) x_{w}(m+k) \end{aligned} 
       
      
     Rn(k)=m=−∞∑∞x(m)w(n−m)x(m+k)w(n−(m+k))=m=n∑n+N−k−1xw(m)xw(m+k)
 式中,
    
     
      
       
        n
       
      
      
       n
      
     
    n表示窗函数是从第
    
     
      
       
        n
       
      
      
       n
      
     
    n点开始加入。易证明,
    
     
      
       
        
         R
        
        
         n
        
       
       
        (
       
       
        k
       
       
        )
       
      
      
       R_{n}(k)
      
     
    Rn(k)是偶函数,在
    
     
      
       
        k
       
       
        =
       
       
        0
       
      
      
       k=0
      
     
    k=0时具有最大值,并且
    
     
      
       
        
         R
        
        
         n
        
       
       
        (
       
       
        0
       
       
        )
       
      
      
       R_{n}(0)
      
     
    Rn(0)等于加窗语音信号的能量。如果定义
 
     
      
       
        
         
          h
         
         
          k
         
        
        
         (
        
        
         n
        
        
         )
        
        
         =
        
        
         w
        
        
         (
        
        
         n
        
        
         )
        
        
         w
        
        
         (
        
        
         n
        
        
         −
        
        
         k
        
        
         )
        
       
       
         h_{k}(n)=w(n) w(n-k) 
       
      
     hk(n)=w(n)w(n−k)
 那么短时自相关函数可以改写为:
 
     
      
       
        
         
          R
         
         
          n
         
        
        
         (
        
        
         k
        
        
         )
        
        
         =
        
        
         
          ∑
         
         
          
           m
          
          
           =
          
          
           −
          
          
           ∞
          
         
         
          
           +
          
          
           ∞
          
         
        
        
         x
        
        
         (
        
        
         m
        
        
         )
        
        
         x
        
        
         (
        
        
         m
        
        
         −
        
        
         k
        
        
         )
        
        
         
          h
         
         
          k
         
        
        
         (
        
        
         n
        
        
         −
        
        
         m
        
        
         )
        
       
       
         R_{n}(k)=\sum_{m=-\infty}^{+\infty} x(m) x(m-k) h_{k}(n-m) 
       
      
     Rn(k)=m=−∞∑+∞x(m)x(m−k)hk(n−m)
 改式表明,序列
    
     
      
       
        x
       
       
        (
       
       
        n
       
       
        )
       
       
        x
       
       
        (
       
       
        n
       
       
        −
       
       
        k
       
       
        )
       
      
      
       x(n)x(n-k)
      
     
    x(n)x(n−k)经过一个冲激响应为
    
     
      
       
        
         h
        
        
         k
        
       
       
        (
       
       
        n
       
       
        )
       
      
      
       h_k(n)
      
     
    hk(n)的滤波器后得到自相关函数。
短时平均幅度差函数
短时自相关函数是语音信号时域分析的重要参数,但是计算短时自相关函数需要很大的计算量。为了避免乘法运算,常用短时平均幅度差函数作为特征参数,对于一个周期为
    
     
      
       
        P
       
      
      
       P
      
     
    P的单纯的周期信号做差分,即
 
     
      
       
        
         d
        
        
         (
        
        
         n
        
        
         )
        
        
         =
        
        
         x
        
        
         (
        
        
         n
        
        
         )
        
        
         −
        
        
         x
        
        
         (
        
        
         n
        
        
         −
        
        
         k
        
        
         )
        
       
       
        d(n) = x(n)-x(n-k)
       
      
     d(n)=x(n)−x(n−k)
 在
    
     
      
       
        k
       
       
        =
       
       
        0
       
       
        ,
       
       
        ±
       
       
        P
       
       
        ,
       
       
        ±
       
       
        2
       
       
        P
       
       
        ,
       
       
        .
       
       
        .
       
       
        .
       
      
      
       k=0, \pm P, \pm 2 P, ...
      
     
    k=0,±P,±2P,...时,上式等于零,即当
    
     
      
       
        k
       
      
      
       k
      
     
    k与周期信号吻合时,作为
    
     
      
       
        d
       
       
        (
       
       
        n
       
       
        )
       
      
      
       d(n)
      
     
    d(n)的短时平均幅度值总是很小,因此短时平均幅度差函数定义为:
 
     
      
       
        
         
          γ
         
         
          n
         
        
        
         (
        
        
         k
        
        
         )
        
        
         =
        
        
         
          ∑
         
         
          
           m
          
          
           =
          
          
           n
          
         
         
          
           n
          
          
           +
          
          
           N
          
          
           −
          
          
           k
          
          
           −
          
          
           1
          
         
        
        
         
          ∣
         
         
          
           x
          
          
           w
          
         
         
          (
         
         
          m
         
         
          +
         
         
          k
         
         
          )
         
         
          −
         
         
          
           x
          
          
           w
          
         
         
          (
         
         
          m
         
         
          )
         
         
          ∣
         
        
       
       
         \gamma_{n}(k)=\sum_{m=n}^{n+N-k-1}\left|x_{w}(m+k)-x_{w}(m)\right| 
       
      
     γn(k)=m=n∑n+N−k−1∣xw(m+k)−xw(m)∣
 对于周期性的 
    
     
      
       
        x
       
       
        (
       
       
        n
       
       
        )
       
       
        ,
       
       
        
         γ
        
        
         n
        
       
       
        (
       
       
        k
       
       
        )
       
      
      
       x(n),\gamma_{n}(k)
      
     
    x(n),γn(k) 也呈现周期性。与 
    
     
      
       
        
         R
        
        
         n
        
       
       
        (
       
       
        k
       
       
        )
       
      
      
       R_{n}(k)
      
     
    Rn(k) 相反的是,在周期的各整数倍点上
    
     
      
       
        
         γ
        
        
         n
        
       
       
        (
       
       
        k
       
       
        )
       
      
      
       \gamma_{n}(k)
      
     
    γn(k) 具有的是谷值,而不是峰值。因此在浊音语音的基音周期上,
    
     
      
       
        
         γ
        
        
         n
        
       
       
        (
       
       
        k
       
       
        )
       
      
      
       \gamma_{n}(k)
      
     
    γn(k) 会急速下降, 而在清音语音时不会有明显下降。由此,短时平均幅度也可以用于基音周期的检验,而且计算上比短时自相关方法更为简单。
端点检测和语音分割
利用短时平均幅度参数 M M M和短时平均过零率 Z Z Z可以正确的判断输入语音的起点和终点。首先,根据浊音情况下的短时平均幅度参数的概率密度函数 P ( M ∣ V ) P(M \mid V) P(M∣V) 确定一个阈值参数 M H , M H M_{H},M_{H} MH,MH 值一般定得较高。当一帧输入信号 的短时平均幅度参数超过 M H M_{\mathrm{H}} MH 时,可以判定该帧语音信号不是无声,而有相当大的可能是浊 音。根据 M H M_{\mathrm{H}} MH 可判定输入语音的前后两个点 A 1 \mathrm{A}_{1} A1 和 A 2 \mathrm{A}_{2} A2 。在 A 1 \mathrm{A}_{1} A1 和 A 2 \mathrm{A}_{2} A2 之间的部分肯定是语音段,但语音的精确起点、终点还要在 A 1 A_{1} A1 之前和 A 2 A_{2} A2 之后仔细查找,如下图 所示。

 为此,再设定一个较低的阈值参数 
    
     
      
       
        
         M
        
        
         L
        
       
      
      
       M_{\mathrm{L}}
      
     
    ML,由 
    
     
      
       
        
         A
        
        
         1
        
       
      
      
       \mathrm{A}_{1}
      
     
    A1 点向前找,当短时平均幅度由大到小减至
    
     
      
       
        
         M
        
        
         L
        
       
      
      
       M_L
      
     
    ML 时,可以确定点 
    
     
      
       
        
         B
        
        
         1
        
       
      
      
       B_{1}
      
     
    B1 。类似地, 可以由 
    
     
      
       
        
         A
        
        
         2
        
       
      
      
       A_{2}
      
     
    A2 点向后找,确定 
    
     
      
       
        
         B
        
        
         2
        
       
      
      
       B_{2}
      
     
    B2 点。在 
    
     
      
       
        
         B
        
        
         1
        
       
      
      
       B_{1}
      
     
    B1 和 
    
     
      
       
        
         B
        
        
         2
        
       
      
      
       B_{2}
      
     
    B2之间仍能肯定是语音段。然后由
    
     
      
       
        
         B
        
        
         1
        
       
      
      
       B_{1}
      
     
    B1向前和
    
     
      
       
        
         B
        
        
         2
        
       
      
      
       B_{2}
      
     
    B2向后,利用短时平均过零率进行搜索。根据无声情况下短时平均过零率,设置一个参数
    
     
      
       
        
         Z
        
        
         s
        
       
      
      
       Z_{s}
      
     
    Zs,如果由
    
     
      
       
        
         B
        
        
         1
        
       
      
      
       B_{1}
      
     
    B1 向前搜索,短时平均过零率大于
    
     
      
       
        
         Z
        
        
         s
        
       
      
      
       Z_{s}
      
     
    Zs的 3倍,则认为这些信号仍属于语音段,直到短时平均过零率下降到低于3 倍的
    
     
      
       
        
         Z
        
        
         s
        
       
      
      
       Z_{s}
      
     
    Zs,这时的点 
    
     
      
       
        
         C
        
        
         1
        
       
      
      
       \mathrm{C}_{1}
      
     
    C1就是语音的精确起点。对于终点做类似处理,可以得到确定终点
    
     
      
       
        
         C
        
        
         2
        
       
      
      
       \mathrm{C}_2
      
     
    C2。采用短时平均过零率的原因在于,点
    
     
      
       
        
         B
        
        
         1
        
       
      
      
       \mathrm{B}_{1}
      
     
    B1以前可能是一段清辅音,它的能量相当弱,依靠能量不可能将它们与无声段分开。而对于清辅音来说,它们的过零率明显高于无声段,因而能用这个参数将二者区分开来。
总结
这里主要介绍了语音信号在时域方面的特征分析,并且简单的介绍了不同特征的应用情况,后续有时间将继续更新语音信号在频域方面的特征分析情况。另外本文主要参考清华大学出版社出版的韩纪庆的《语音信号处理》第三版。