Abstract:
A method is disclosed for generating frame voicing decisions for an incoming speech signal having periods of active voice and non-active voice for a speech encoder in a speech communication system. The method first extracts a predetermined set of parameters from the incoming speech signal for each frame and then makes a frame voicing decision of the incoming speech signal for each frame according to a set of difference measures extracted from the predetermined set of parameters. The predetermined set of extracted parameters comprises a description of the spectrum of the incoming speech signal based on line spectral frequencies (&#34;LSF&#34;). Additional parameters may include full band energy, low band energy and zero crossing rate. The way to make a frame voicing decision of the incoming speech signal for each frame according to the set of difference measures is by finding a union of sub-spaces with each sub-space being described by a linear function of at least a pair of parameters from the predetermined set of parameters.

Description:
RELATED APPLICATION 
     The present invention is related to another pending Patent Application, entitled USAGE OF VOICE ACTIVITY DETECTION FOR EFFICIENT CODING OF SPEECH, filed on the same date, with Ser. No. 589,321, and also assigned to the present assignee. The disclosure of the Related Application is incorporated herein by reference. 
     1. Field of Invention 
     The present invention relates to speech coding in communication systems and more particularly to dual-mode speech coding schemes. 
     2. Art Background 
     Modern communication systems rely heavily on digital speech processing in general and digital speech compression in particular. Examples of such communication systems are digital telephony trunks, voice mail, voice annotation, answering machines, digital voice over data links, etc. 
     A speech communication system is typically comprised of an encoder, a communication channel and a decoder. At one end, the speech encoder converts a speech which has been digitized into a bit-stream. The bit-stream is transmitted over the communication channel (which can be a storage medium), and is converted again into a digitized speech by the decoder at the other end. 
     The ratio between the number of bits needed for the representation of the digitized speech and the number of bits in the bit-stream is the compression ratio. A compression ratio of 12 to 16 is achievable while keeping a high quality of reconstructed speech. 
     A considerable portion of the normal speech is comprised of silence, up to an average of 60% during a two-way conversation. During silence, the speech input device, such as a microphone, picks up the environment noise. The noise level and characteristics can vary considerably, from a quite room to a noisy street or a fast moving car. However, most of the noise sources carry less information than the speech and hence a higher compression ratio is achievable during the silence periods. 
     In the following description, speech will be denoted as &#34;active-voice&#34; and silence or background noise will be denoted as &#34;non-active-voice&#34;. 
     The above argument leads to the concept of dual-mode speech coding schemes, which are usually also variable-rate coding schemes. The different modes of the input signal (active-voice or non-active-voice) are determined by a signal classifier, which can operate external to, or within, the speech encoder. A different coding scheme is employed for the non-active-voice signal, using less bits and resulting in an overall higher average compression ratio. The classifier output is binary, and is commonly called &#34;voicing decision.&#34; The classifier is also commonly called Voice Activity Detector (&#34;VAD&#34;). 
     The VAD algorithm operates on frames of digitized speech. The frame duration usually coincided with the frames of the speech coder. For each frame, the VAD is using a set of parameters, extracted from the input speech signal, to make the voicing decision. These parameters usually include energies and spectral parameters. A typical VAD operation is based on the comparison of such set of instantaneous parameters to a set of parameters which represents the background noise characteristics. Since the noise characteristics are unknown beforehand, they are usually modeled as a running average estimates of the energies and the spectral parameters during non-active voice frames. 
     A schematic representation of a speech communication system which employs a VAD for a higher compression rate is depicted in FIG. 1. The input to the speech encoder (110) is the digitized incoming speech signal (105). For each frame of digitized incoming speech signal the VAD (125) provides the voicing decision (140), which is used as a switch (145) between the active-voice encoder (120) and the non-active-voice encoder (115). Either the active-voice bit-stream (135) or the non-active-voice bit-stream (130), together with the voicing decision (140) are transmitted through the communication channel (150). At the speech decoder (155) the voicing decision is used in the switch (160) to select the non-active-voice decoder (165) or the active-voice decoder (170). For each frame, the output of either decoders is used as the reconstructed speech (175). 
     SUMMARY OF THE PRESENT INVENTION 
     A method is disclosed for generating frame voicing decisions for an incoming speech signal having periods of active voice and non-active voice for a speech encoder in a speech communication system. The method first extracts a predetermined set of parameters from the incoming speech signal for each frame and then makes a frame voicing decision of the incoming speech signal for each frame according to a set of difference measures extracted from the predetermined set of parameters. The predetermined set of extracted parameters comprises a description of the spectrum of the incoming speech signal based on line spectral frequencies (&#34;LSF&#34;). Additional parameters may include full band energy, low band energy and zero crossing rate. The way to make a frame voicing decision of the incoming speech signal for each frame according to the set of difference measures is by finding a union of sub-spaces with each sub-space being described by a linear function of at least a pair of parameters from the predetermined set of parameters. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Additional features, objects and advantages of the present invention will become apparent to those skilled in the art from the following description, wherein: 
     FIG. 1 is a schematic representation of a speech communication system using a VAD. 
     FIG. 2 is a process flowchart of the VAD in accordance with the present invention. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     A voice activity detection method and apparatus for a speech communication system is disclosed. In the following description, the present invention is described in terms of functional block diagrams and process flow charts, which are the ordinary means for those skilled in the art of speech coding to communicate among themselves. The present invention is not limited to any specific programming languages, since those skilled in the art can readily determine the most suitable way of implementing the teaching of the present invention. 
     A. General 
     In the preferred embodiment, a Voice Activity Detection (VAD) module is used to generate a voicing decision which switches between an active-voice encoder/decoder and a non-active-voice encoder/decoder. The binary voicing decision is either 1 (TRUE) for the active-voice or 0 (FALSE) for the non-active-voice. 
     The VAD flowchart of operation is given in FIG. 2. The VAD operates on frames of digitized speech. The frames are processed in time order and are consecutively numbered from the beginning of each conversation/recording. 
     At the first block (200), four parametric features are extracted from the input signal. Extraction of the parameters can be shared with the active-voice encoder module (120) and the non-active-voice encoder module (115) for computational efficiency. The parameters are the frame full band energy, the frame low-band energy, a set of spectral parameters called Line Spectral Frequencies (&#34;LSF&#34;) and the frame zero crossing rate. 
     If the frame number is less than N i , an initialization block (205) for the average frame energy takes place, and the voicing decision is forced to 1. 
     If the frame number is equal to N i , the average frame energy is updated at block (215) and an initialization block (220) for the running averages of the background noise characteristics takes place. 
     If the frame number is larger than N i , the average frame energy update block (215) takes place. 
     At the next block (230) a set of difference parameters is calculated. This set is generated as difference measures between the current frame parameters and the running averages of the background noise characteristics. Four difference measures are calculated: 
     a spectral distortion 
     an energy difference 
     a low-band energy difference 
     a zero-crossing difference 
     The initial voicing decision is made at the next block (235), using multi-boundary decision regions in the space of the four difference measures. The active-voice decision is given as the union of the decision regions and the non-active-voice decision is its complementary logical decision. 
     The initial decision does not take into account neighboring past frames, which can help in decision smoothing, considering the stationarity of the speech signal. Energy consideration, together with neighboring past frames decisions, are used in block (240) for decision smoothing. 
     The difference parameters were generated at block (230) as a difference between the current frame parameters and the running averages of the background noise characteristics. These running averages are updated in block (250). Since the running averages are updated only in the presence of background noise, and not in the presence of speech, few energy thresholds are tested at block (245), and an update takes place only if the thresholds are met. 
     B. Parameters Extraction 
     For each frame a set of parameters is extracted from the speech signal. The parameters extraction module can be shared between the VAD (125), the active-voice encoder (120) and the non-active-voice encoder (115). The primary set of parameters is the set of autocorrelation coefficients, which is derived according to ITU-T, Study Group 15 Contribution--Q. 12/15, Draft Recommendation G.729, Jun. 8, 1995, Version 5.0, or DIGITAL SPEECH--Coding for Low Bit Rate Communication Systems by A.M. Kondoz, John Wiley &amp; Son, 1994, England. The set of autocorrelation coefficients will be denoted by {R(i)} i=0   q . 
     1) Line Spectral Frequencies (LSF) 
     A set of linear prediction coefficients is derived from the autocorrelation and a set of {LSF i  } i=1   p  is derived from the set of linear prediction coefficients, as described in ITU-T, Study Group 15 Contribution--Q. 12/15, Draft Recommendation G.729, Jun. 8, 1995, Version 5.0, or DIGITAL SPEECH--Coding for Low Bit Rate Communication Systems by A.M. Kondoz, John Wiley &amp; Son, 1994, England. 
     2) Full Band Energy 
     The full band energy E f  is the logarithm of the normalized first autocorrelation coefficient R(0): 
     
         E.sub.f =10·log.sub.10  1/NR(0)!, 
    
     where N is a predetermined normalization factor. 
     3) Low Band Energy 
     The low band energy E 1  measured on 0 to F l  Hz band, is computed as follows: 
     
         E.sub.1 =10·log.sub.10  1/Nh.sup.t Rh!, 
    
     where h is the impulse response of an FIR filter with cutoff frequency at F l  Hz, R is the Toeplitz autocorrelation matrix with the autocorrelation coefficients on each diagonal, and N is a predetermined normalization factor. 
     4) Zero Crossing Rate 
     Normalized zero-crossing rate ZC for each frame is calculated by: ##EQU1## where {x(i)} is the pre-processed input speech signal and M is a predetermined number. 
     C. Average Energy Initialization And Update 
     The running average for the frame energy is denoted by E. The initial value for E, calculated at block (205), is: ##EQU2## 
     This running average is updated for each frame after the N i  frame, at block (215), using: 
     
         E=α.sub.1 ·E+(1-α.sub.1)·E.sub.f. 
    
     D. Initialization Of The Running Averages Of The Background Noise Characteristics 
     The spectral parameters of the background noise, denoted by {LSF i  } i=1   p  are initialized to the constant values {LSF i   0  } i=1   p . The average of the background noise zero-crossings, denoted by ZC is initialized to the constant value ZC 0 . 
     At block (220), if the frame number is equal to N i , the running averages of the background noise full band energy, denoted by E f , and the background noise low-band energy, denoted by E l , are initialized. The initialization procedure uses the initial value of the running average of the frame energy-E, which can also be modified by this initialization. 
     The initialization procedure is illustrated as follows: ##EQU3## E. Generating The Difference Parameters 
     Four difference measures are generated from the current frame parameters and the running averages of the background noise at block (230). 
     1) The Spectral Distortion ΔS 
     The spectral distortion measure is generated as the sum of squares of the difference between the current frame {LSF i  } i=1   p  vector and the running averages of the background noise {LSF i  } i=1   p  : ##EQU4## 2) The Full-Band Energy Difference ΔE f   
     The full-band energy difference measure is generated as the difference between the current frame energy, E f , and the running average of the background noise energy, E f  : 
     
         ΔE.sub.f =E.sub.f -E.sub.f. 
    
     3) The Low-Band Energy Difference ΔE l   
     The low-band energy difference measure is generated as the difference between the current frame low-band energy, E l , and the running average of the background noise energy, E l  : 
     
         ΔE.sub.l =E.sub.l -E.sub.l. 
    
     4) The Zero-Crossing Difference ΔZC 
     The zero-crossing difference measure is generated as the difference between the current frame zero-crossing rate, ZC, and the running average of the background noise zero-crossing rate, ZC: 
     
         ΔZC=ZC-ZC. 
    
     F. Multi-Boundary Initial Voicing Decision 
     The four difference parameters lie in the four dimensional Euclidean space. Each possible vector of difference parameters defines a point in that space. A predetermined decision region of the four dimensional Euclidean space, bounded by three dimensional hyper-planes, is defined as non-active-voice region, and its complementary is defined as active-voice region. Each of the three dimensional hyper-planes is defining a section of the boundary of that decision region. Moreover, for the simplicity of the design, each hyper-plane is perpendicular to some two axes of the four dimensional Euclidean space. 
     The initial voicing decision, obtained in block (235), is denoted by I VD . For each frame, if the vector of the four difference parameters lies within the non-active-voice region, the initial voicing decision is 0 (&#34;FALSE&#34;). If the vector of the four difference parameters lies within the active-voice region, the initial voicing decision is 1 (&#34;TRUE&#34;). The 14 boundary decisions in the four-dimensional space are defined as follows: 
     1) if ΔS&gt;a 1  ·ΔZC+b 1  then I VD  =1 
     2) if ΔS&gt;a 2  ·ΔZC+b 2  then I VD  =1 
     3) if ΔS&gt;a 3  then I VD  =1 
     4) if ΔE f  &lt;a 4  ·ΔZC+b 4  then I VD  =1 
     5) if ΔE f  &lt;a 5  ·ΔZC+b 5  then I VD  =1 
     6) if ΔE f  &lt;a 6  then I VD  =1 
     7) if ΔE f  &lt;a 7  ·ΔS+b 7  then I VD  =1 
     8) if ΔS&gt;b 8  then I VD  =1 
     9) if ΔE l  &lt;a 9  ·ΔZC+b 9  then I VD  =1 
     10) if ΔE l  &lt;a 10  ·ΔZC+b 10  then I VD  =1 
     11) if ΔE l  &lt;b 11  then I VD  =1 
     12) if ΔE l  &lt;a 12  ·ΔS+b 12  then I VD  =1 
     13) if ΔE l  &gt;a 13  ·ΔE f  +b 13  then I VD  =1 
     14) if ΔE l  &lt;a 14  ·ΔE f  +b 14  then I VD  =1 
     Geometrically, for each frame, the active-voice region is defined as the union of all active-voice sub-spaces, and the non-active-voice region is its complementary region of intersection of all non-active-voice sub-spaces. 
     G. Voicing Decision Smoothing 
     The initial voicing decision is smoothed to reflect the long term stationary nature of the speech signal. The smoothing is done in three stages. The smoothed voicing decision of the frame, the previous frame and frame before the previous frame are denoted by S VD   0 , S VD   -1  and S VD   -2 , respectively. S VD   -1  is initialized to 1, and S VD   -2  is initialized to 1. 
     For start S VD   0  =I VD . The first smoothing stage is: 
     
         if I.sub.VD =0 and S.sub.VD.sup.-1 =1 and E&lt;E.sub.f +T.sub.3 then S.sub.VD.sup.0 =1. 
    
     For the second smoothing stage define one Boolean parameter F VD   -1 . F VD   -1  is initialized to 1. Also define a counter denoted by C e , which is initialized to 0. Denote the energy of the previous frame by E -1 . The second smoothing stage is: ##EQU5## 
     For the third smoothing stage define the counter C s  which is initialized to 0. Also define the Boolean parameter F VD  * which is initialized to 0. 
     The third smoothing stage is: 
     if S VD   0  =0 
     C s  =C s  +1 
     if S VD   0  =1 and C s  &gt;L 1  and E-E≦T 4  * 
     S VD   0  =0 
     C s  =0 
     F VD  *=1 
     if C s  &gt;L 2  and F VD  *=1 
     F VD  *=0 
     if S VD   0  =1 
     C S  =0 
     H. Updating The Running Averages Of The Background Noise Characteristics 
     The running averages of the background noise characteristics are updated at the last stage of the VAD algorithm. At block (245) the following conditions are tested and the updating takes place only if these conditions are met: 
     
         if  E&lt;1/2·(E-E.sub.f)-T.sub.5 ! and (E&lt;T.sub.6) then update. 
    
     If the conditions for update are met, the running averages of the background noise characteristics are updated using first order AR update. A different AR coefficient is used for each parameter. Let β E .sbsb.f be the AR coefficient for the update of E f , β E .sbsb.f be the AR coefficient for the update of E l , β ZC  be the AR coefficient for the update of ZC and β LSF  be the AR coefficient for the update of {LSF i  } i=1   p . The number of frames which were classified as non-active-voice is counted by C n . The coefficients β E .sbsb.f, β E .sbsb.l, β ZC , and β LSF  depend on the value of C n . The AR update is done at block (250) according to: 
     
         E.sub.f =β.sub.E.sbsb.f ·E.sub.f +(1-β.sub.E.sbsb.f)·E.sub.f 
    
     
         E.sub.l =β.sub.E.sbsb.l ·E.sub.l +(1-β.sub.E.sbsb.l)·E.sub.l 
    
     
         ZC=β.sub.ZC ·ZC+(1-β.sub.ZC)·ZC 
    
     
         LSF.sub.i =β.sub.LSF ·LSF.sub.i +(1-β.sub.LSF)·LSF.sub.i i=1, . . . , p 
    
     At the final stage E f  is updated according to: 
     
         if L.sub.3 &lt;C.sub.n and E&lt;E.sub.f +T.sub.7 then E=E.sub.f +T .sub.8. 
    
     Although only a few exemplary embodiments of this invention have been described in detail above, those skilled in the art will readily appreciate that many modifications are possible in the exemplary embodiments without materially departing from the novel teachings and advantages of this invention. Accordingly, all such modifications are intended to be included within the scope of this invention as defined in the following claims. In the claims, means-plus-function clauses are intended to cover the structures described herein as performing the recited function and not only structural equivalents but also equivalent structures. Thus although a nail and a screw may not be structural equivalents in that a nail employs a cylindrical surface to secure wooden parts together, whereas a screw employs a helical surface, in the environment of fastening wooden parts, a nail and a screw may be equivalent structures.