This invention relates, in general, to communication systems, and more particularly, to comfort noise generation in speech communication systems.
To meet the increasing demand for mobile communication services, many modern mobile communication systems increase their capacity by exploiting the fact that during conversation the channel is carrying voice information only 40% to 60% of the time. The rest of the time the channel is only utilized to transmit silence or background noise. In many cases the voice activity in the channel is even lower than 40%. Conventional mobile communication systems, such as discontinuous transmission (DTX), have provided some increase in channel capacity by sending a reduced amount of information during the time there is no voice activity.
Referring to
Referring to
In packet-based communication systems, bandwidth reduction schemes such as those used in DTX or CTX systems with variable-rate codecs may not provide a significant capacity increase. In DTX networks a SID frame, for example, may use up bandwidth that is equivalent to that of a normal speech frame. For CTX systems, the advantage of using variable-rate codecs may not provide a significant bandwidth reduction on packed-based networks. This is due to the fact that the reduced bit-rate frames may utilize similar bandwidth in the packet-based network as a voice-active frame. For example, when an EVRC is used, an eighth rate packet may utilize similar bandwidth as a full rate or half rate packet due to overhead information added to each packet, thus eliminating the capacity increase provided by the variable-rate codec that is obtained on other types of communication channels.
One approach to reducing bandwidth utilization in packet-based networks using the EVRC is to eliminate the transmission of all eighth rate packets. Then, on the decoding side, the missing packets may be treated as frame erasures (FER). However, the FER handling of the EVRC was not designed to handle a long string of erased frames, and thus this technique produces poor quality output when synthesizing the signal presented to the user. Also, since the decoder does not receive any information on the background noise represented by the dropped eighth rate frames, it cannot generate a signal that resembles the original background noise signal at the transmit side.
Thus there is a need to improve the above method to achieve higher quality while reducing network bandwidth utilization.
The accompanying figures, where like reference numerals refer to identical or functionally similar elements throughout the separate views, together with the detailed description below, are incorporated in and form part of the specification, and serve to further illustrate the embodiments and explain various principles and advantages, in accordance with the present invention.
Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present invention.
Before describing in detail embodiments that are in accordance with the present invention, it should be observed that the embodiments reside primarily in combinations of method steps and apparatus components related to generating comfort noise in a speech communication system. Accordingly, the apparatus components and method steps have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the embodiments of the present invention so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein.
In this document, relational terms such as first and second, top and bottom, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms “comprises,” “comprising,” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element proceeded by “comprises . . . a” does not, without more constraints, preclude the existence of additional identical elements in the process, method, article, or apparatus that comprises the element.
In the following, a frame suppression method is described that reduces or eliminates the need to transmit non-voice frames in CTX systems. In contrast to prior art methods, the method described here provides better synthesis of comfort noise and reduced bandwidth utilization especially on packed-based networks.
Referring to
The embodiments of the present invention described herein do not require the packet encoder 310 (transmit side) to send any SID frames, as is done in U.S. Pat. No. 5,870,397, or noise encoding (eighth rate) frames, although they can be used if they are received at the packet decoder 320. In order to reproduce comfort noise, a background noise estimator 325 may be used in these embodiments to process decoded active voice information frames 321 and generate an estimated value of the spectral characteristics 326 (also called the background noise characteristics) of the background noise. These estimated background characteristics 326, are used by a missing packet synthesizer 330 to generate a comfort noise signal 331. A switch 335 is then used to select between the information frames 321 and the comfort noise 331, to generate an output signal 303. The switch is activated by a voice activity detector (not shown in
As described in more detail below, the switch 335 may be considered to be a “soft” switch.
Referring to
wherein Emin is a minimum allowable channel energy, αw(m) is a channel energy smoothing factor (defined below), and fL(i) and fH(i) are i-th elements of respective low and high channel combining tables, which may be the same limits defined for noise suppression for an EVRC as shown below, or other limits determined to be appropriate in another system.
fL={2, 4, 6, 8, 10, 12, 14, 17, 20, 23, 27, 31, 36, 42, 49, 56},
fH={3, 5, 7, 9, 11, 13, 16, 19, 22, 26, 30, 35, 41, 48, 55, 63}. (2)
The channel energy smoothing factor, αw(m), can be varied according to different factors, including the presence of frame errors. For example, the factor can be defined as:
This means that αw(m) assumes a value of zero for the first frame (m=1) and a value of 0.85 times the weight coefficient wα for all subsequent frames. This allows the estimated channel energy to be initialized to the unfiltered channel energy of the first frame, and provides some control over the adaptation via the weight coefficient for all other frames. The weight coefficient can be varied according to:
An estimate of the background noise energy for each channel, Ebgn(m,i), may be obtained and updated according to:
For each value of i, this operation may be performed by one of the background noise estimators 425 as illustrated in
It will be appreciated that when the estimated channel energy for a channel i of frame m is less than the background noise energy estimate of channel i in frame m−1, the background noise energy estimate of channel i of frame m is set to the estimated channel energy for a channel i of frame m.
When the estimated channel energy for a channel i of frame m is greater than the background noise estimate of channel i in frame m−1 by a value that in this example is 12 decibels, the background noise estimate of channel i of frame m is set to the background noise for a channel i of frame m−1, plus a first small increment, which in this example is 0.005 decibels. The value 12 represents a minimum decibel value at which it is highly likely that the channel energy is active voice energy, also identified herein as Evoice. The first small increment is identified herein as Δ1. It will be appreciated that when the frame rate is 50 frames per second, and Ech remains above Evoice in some frequency channels for several seconds, the background noise estimates are raised by 0.25 decibels per second.
When the estimated channel energy for a channel i of frame m is greater than the background noise estimate of channel i in frame m−1 by a value that in this example is less than 12 decibels and is also greater than or equal to the background noise estimate of channel i in frame m−1, the background noise energy estimate of channel i of frame m is set to the background noise energy estimate for a channel i of frame m−1, plus a second small increment, which in this example is 0.01 decibels. The value 12 decibels represents Evoice. The second small increment is identified herein as Δ2. It will be appreciated that when the frame rate is 50 frames per second, and the estimated channel energy remains above Evoice in some frequency channels for several seconds, the background noise energy estimates are raised by 0.5 decibels per second per channel. It will be appreciated that when the estimated channel energy is closer to the background noise energy estimate from the previous frame, the background noise energy estimate is incremented by a larger value, because it is more likely that the channel energy is from background noise. It will be appreciated that for this reason, Δ2 is larger than Δ1 in theses embodiments.
In some embodiments, the values of Evoice, Δ1, and Δ2 may be chosen differently, to accommodate differences in system characteristics. For example, Δ or Δ1 may be designed to be at most 0.5 dB; Δ2 may be designed to be at most 1.0 dB; and Evoice may be less than 50 dB.
Also, more intervals could be used, such that there are a plurality of increments, or that the increment could be computed from a ratio of the difference of the estimate channel energy of channel i of frame m and the background noise estimate of channel i in frame m−1 to a reference value (e.g., 12 decibels). Other functions apparent to one of ordinary skill in the art could be used to generate background characteristics that make good estimates of background audio that exists simultaneously with voice audio.
In some embodiments, the background noise estimators may determine the background characteristics 426, Ebgn (m,i), according to a simpler technique:
The values of background noise energy estimates (background characteristics) provided by this technique may not work as well as those described above, but would still provide some of the benefits of the other embodiments described herein.
Referring to
First, the magnitude of the spectrum of the comfort noise, Xdecmag(m,k), is generated by a spectral component magnitude calculator 505, based on the background noise estimates 426, Ebgn (m,i). This may be accomplished as show in equation (7).
Xdecmag(m,k)=10E
Random spectral component phases are generated by a spectral component random phase generator 510 according to:
φ(k)=cos(2π·ran 0{seed})+j sin(2π·ran 0{seed}) (8)
where ran0 is a uniformly distributed pseudo random number generator spanning [0.0, 1.0). The background noise spectrum is generated by a multiplier 515 as
Xdec(m,k)=Xdecmag(m,k)·φ(k) (9)
and is then converted to the time domain using an inverse DFT 520, producing
where g(n) is a smoothed trapezoidal window defined by
wherein L is a digitized audio frame length, D is a digitized audio frame overlap, and M is a DFT length.
For equation (10), xdec(m−1,n) is the previous frame's output, which can come from the packet decoder 320 or from a generated comfort noise frame when no active voice packet was received. Equation 10 defines how the speech signal Xdec is generated during a period of comfort noise and for one active voice frame after the period of comfort noise, by using overlap-add of the previous and current frame to smooth the audio through the transition of frames. By these equations, the smoothing also occurs during the transitions between successive comfort noise frames, as well as the transitions between comfort noise and active voice, and vice versa. Other conventional overlap functions may be used in some other embodiments. The overlap that results from the use of equations 10 and 11 may be considered to invoke a “soft” form of a switch such as the switch 335 in
Referring to
In some embodiments, the VAD 625 may be replaced by a valid packet detector that causes the switch 605 to be in a first state when valid packets, such as eighth rate packets that convey comfort noise and other packets that convey active voice, are received, and is in a second state when packets are determined to be missing. When the output of the valid packet detector is in the first state, the switch 605 couples the packets received over a communication link 601 to the packet decoder 610 and the output of the packet decoder 610 is coupled to the background noise synthesizer 615. When the output of the valid packet detector is in the second state, the switch 605 couples the output of the packet encoder 620 to the packet decoder 610 and the output of the packet decoder 610 is no longer coupled to the background noise synthesizer 615. Furthermore, the background comfort noise synthesizer 615 may be altered to incorporate an alternative background noise estimation method, for example, as given by
Ebgn(m,i)=βEbgn(m−1 , i)+(1−β)Ech(m,i) (12)
wherein β is a weighting factor having a value in the range from 0 to 1. This equation is used to update the background noise estimate when non-voice frames are received. The update method of this equation may be more aggressive than that provided by equations 5 and 6, which are used when voice frames are received.
It will be appreciated that while the term “background noise” has been used throughout this description, the energy that is present whether or not voice is present may be something other than what is typically considered to be noise, such as music. Also, it will be appreciated that the term “speech” is construed to mean utterances or other audio that is intended to be conveyed to a listener, and could, for example, include music played close to a microphone, in the presence of background noise.
In summary, as illustrated by a flow chart in
Referring to
It will be appreciated that the embodiments described herein provide a method and apparatus that generates comfort noise at a device receiving a speech signal, such as a cellular telephone, without having to transmit any information about the background noise content of the speech signal during those times when only background noise is being captured by a device transmitting the speech signal the receiver. This is valuable inasmuch as it allows the saving of bandwidth relative to conventional methods and means for transmitting and receiving speech signals.
It will be appreciated that embodiments of the invention described herein may be comprised of one or more conventional processors and unique stored program instructions that control the one or more processors to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the embodiments of the invention described herein. The non-processor circuits may include, but are not limited to, a radio receiver, a radio transmitter, signal drivers, clock circuits, power source circuits, and user input devices. As such, these functions may be interpreted as steps of a method to perform comfort noise generation in a speech communication system. Alternatively, some or all functions could be implemented by a state machine that has no stored program instructions, or in one or more application specific integrated circuits (ASICs), in which each function or some combinations of certain of the functions are implemented as custom logic. Of course, a combination of these approaches could be used. Thus, methods and means for these functions have been described herein. In those situations for which functions of the embodiments of the invention can be implemented using a processor and stored program instructions, it will be appreciated that one means for implementing such functions is the media that stores the stored program instructions, be it magnetic storage or a signal conveying a file. Further, it is expected that one of ordinary skill, notwithstanding possibly significant effort and many design choices motivated by, for example, available time, current technology, and economic considerations, when guided by the concepts and principles disclosed herein will be readily capable of generating such stored program instructions and ICs with minimal experimentation.
In the foregoing specification, specific embodiments of the present invention have been described. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the present invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of present invention. The benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential features or elements of any or all the claims. The invention is defined solely by the appended claims including any amendments made during the pendency of this application and all equivalents of those claims as issued.