This application claims priority under 35 U.S.C. §119 or 365 to Great Britain, Application No. 0704622.0, filed Mar. 9, 2007. The entire teachings of the above application are incorporated herein by reference.
This invention relates to a speech coding system and method, particularly but not exclusively for use in a voice over internet protocol communication system.
In a communication system a communication network is provided, which can link together two communication terminals so that the terminals can send information to each other in a call or other communication event. Information may include speech, text, images or video.
Modern communication systems are based on the transmission of digital signals. Analogue information such as speech is input into an analogue to digital converter at the transmitter of one terminal and converted into a digital signal. The digital signal is then encoded and placed in data packets for transmission over a channel to the receiver of a destination terminal.
The encoding of speech signals is performed by a speech coder. The speech coder compresses the speech for transmission as digital information, and a corresponding decoder at the destination terminal decodes the encoded information to produce a decoded speech signal, whereby the combination of the encoder and decoder results in a decoded speech signal at the destination terminal that (from the perception of the user of the destination terminal) closely resembles the original speech.
Many different types of speech coding are known and optimised for different scenarios and applications. For example, some speech coding techniques are implemented particularly for encoding speech for transmission over low bit-rate channels. Low bit-rate speech coders are useful in many applications, such as voice over internet protocol (“VoIP”) systems and mobile/wireless telecommunications.
An example of a low-rate speech coder is a model-based speech coder that produces a sparse signal representation of the original speech. One particular example of such a model-based speech coder is a speech coder that represents the speech signal as a set of sinusoids. A low-rate sinusoidal speech coder can, for example, encode the linear prediction residual of speech frames classified as voiced using only sinusoids. Many other types of low-rate sparse-signal representation speech coders are also known. These types of low-rate coder form a very compact signal representation. However, the sparse representation in the encoded signal does not fully capture the structure of the speech.
A problem with low-rate model-based speech coders, such as the sinusoidal coder, is that the sparse representation tends to result in metallic-sounding artifacts when the signal is transmitted at a low bit-rate. The metallic artifacts can arise due to the incapability of the underlying sparse model to capture the structure of some of the speech sounds given a limited bit-budget.
If the bit-budget (ultimately related to the bandwidth capabilities of the channel) increases, then more information describing the missing parts of the original speech structure can be added to the transmitted information. This additional description alleviates and eventually removes the artifacts, and thus improves the overall quality and naturalness of the decoded speech signal as perceived by the user of the destination terminal. However, this is obviously only possible if the capability to support a higher bit rate exists.
In addition, the decoding system can compress or expand/stretch a speech signal in time, and/or insert or skip whole speech frames in order to compensate for jitter. Jitter is a variation in the packet latency in the received signal. The decoding system can also insert one or more concealment frames into the speech signal, in order to replace one or more frames that have been lost or delayed in the transmission. The stretching of the speech signal and insertion of the concealment frames into the speech signal can, in particular, give rise to metallic artifacts. These problems are, in general, not mitigated by the use of a higher bit rate.
There is therefore a need for a technique to address the aforementioned problems with low-bit rate coders, and coders in general when loss, delay, and/or jitter may occur in the transmission, in order to improve the perceived quality of the signal at the destination.
According to one aspect of the present invention there is provided a system for enhancing a signal regenerated from an encoded audio signal, comprising: a decoder arranged to receive the encoded audio signal and produce a decoded audio signal; a feature extraction means arranged to receive at least one of the decoded and encoded audio signal and extract at least one feature from at least one of the decoded and encoded audio signal; a mapping means arranged to map said at least one feature to an enhancement signal and operable to generate and output said enhancement signal, whereby the enhancement signal has a frequency band that is within the decoded audio signal frequency band; and a mixing means arranged to receive said decoded audio signal and said enhancement signal and mix said enhancement signal with said decoded audio signal.
In one embodiment, the encoded audio signal is an encoded speech signal and the decoded audio signal is a decoded speech signal.
According to another aspect of the present invention there is provided a method of enhancing a signal regenerated from an encoded audio signal, comprising: receiving the encoded audio signal at a terminal; producing a decoded audio signal; extracting at least one feature from at least one of the decoded and encoded audio signal; mapping said at least one feature to an enhancement signal and generating said enhancement signal, whereby said enhancement signal has a frequency band that is within the decoded audio signal frequency band; and mixing said enhancement signal and said decoded audio signal.
For a better understanding of the present invention and to show how the same may be put into effect, reference will now be made, by way of example, to the following drawings in which:
Reference is first made to
The user terminal 104 is running a client 110, provided by the operator of the communication system. The client 110 is a software program executed on a local processor in the user terminal 104. The user terminal 104 is also connected to a handset 112, which comprises a speaker and microphone to enable the user to listen and speak in a voice call in the same manner as with traditional fixed-line telephony. The handset 112 does not necessarily have to be in the form of a traditional telephone handset, but can be in the form of a headphone or earphone with an integrated microphone, or as a separate loudspeaker and microphone independently connected to the user terminal 104. The client 110 comprises the speech encoder/decoder used for encoding speech for transmission over the network 106 and decoding speech received from the network 106.
Calls over the network 106 may be initiated between a caller (e.g. User A 102) and a called user (i.e. the destination—in this case User B 114). In some embodiments, the call set-up is performed using proprietary protocols, and the route over the network 106 between the calling user and called user is determined according to a peer-to-peer paradigm without the use of central servers. However, it will be understood that this is only one example, and other means of communication over network 106 are also possible.
Following the establishment of a call between the caller and called user, speech from User A 102 is received by handset 112 and input to user terminal 104. The client 110, comprising the speech coder, encodes the speech, and this is transmitted over the network 106 via the network interface 108. The encoded speech signals are routed to network interface 116 and user terminal 118. Here, client 120 (which may be similar to client 110 in user terminal 104) uses a speech decoder to decode the signals and reproduce the speech, which can subsequently be heard by user 114 using handset 122.
As mentioned, the communication network 106 may be the internet, and communication may take place using VoIP. However, it should be appreciated that even though the exemplifying communications system shown and described in more detail herein uses the terminology of a VoIP network, embodiments of the present invention can be used in any other suitable communication system that facilitates the transfer of data. For example the present invention may be used in mobile communication networks such as TDMA, CDMA, and WCDMA networks.
In one example, for a low bit-rate transmission of speech (e.g. less than 16 kbps) between User A 102 and User B 114 a model-based speech coder such as a harmonic sinusoidal coder can be used. For example, the speech encoder and decoder in clients 110 and 120 in
Reference is now made to
In general, the system 300 in
More specifically, the system 300 in
The input 302 to the system 300 is the encoded speech signal, which has been received over the network 106. For example, this may have been encoded using a low-rate sinusoidal encoder giving a sparse representation of the original speech signal. Other forms of encoding could also be used in alternative embodiments. The encoded signal 302 is input to a decoder 304, which is arranged to decode the encoded signal. For example, if the encoded signal was encoded using a sinusoidal coder, then the decoder 304 is a sinusoidal decoder. The output of the decoder 304 is a decoded signal 306.
Both the encoded signal 302 and the decoded signal 306 are input to a feature extraction block 308. The feature extraction block 308 is arranged to extract certain features from the decoded signal 306 and/or the encoded signal 302. The features that are extracted are ones that can be advantageously used to synthesise the artificial signal. The features that are extracted include, but are not limited to, at least one of: an energy envelope in time and/or frequency of the decoded signal; formant locations; spectral shape; a fundamental frequency or location of each harmonic in a sinusoidal description; amplitudes and phases of these harmonics; parameters describing a noise model (e.g. by filters or time and/or frequency envelope of the expected noise component); and parameters describing the distribution of perceptual importance of the expected noise component in time and/or frequency. The purpose of extracting such features is to provide information about how to generate the artificial signal to be mixed with the decoded signal. One or more of these features may be extracted by the feature extraction block 308.
The extracted features are output from the feature extraction block 308 and provided to a feature to signal mapping block 310. The function of the feature to signal mapping block 310 is to utilise the extracted features and map them onto a signal that complements and enhances the decoded signal 306. The output of the feature to signal mapping block 310 is referred to as an artificially generated signal 312.
Many types of mapping can be used by the feature to signal mapping block 310. For example, types of mapping operation include, but are not limited to, at least one of: a hidden Markov model (HMM); codebook mapping; a neural network; a Gaussian mixture model; or any other suitable trained statistical mapping to construct sophisticated estimators that better mimic the real speech signal.
Furthermore, the mapping operation can, in some embodiments, be guided by settings and information from the encoder and/or the decoder. The settings and information from the encoder and/or the decoder are provided by a control unit 314. The control unit 314 receives settings and information from the encoder and/or decoder, which can include, but are not limited to, the bit rate of the signal, the classification of a frame (i.e. voiced or transient), or which layers of a layered coding scheme are being transmitted. These settings and information are provided to the control unit 314 at input 316, and output from the control unit 314 to the feature to signal mapping block at 318. The information and settings from the encoder and/or decoder can be used to select a type of mapping to be used by the feature to signal mapping block 310. For example, the feature to signal mapping block 310 can implement several different types of mapping operation, each of which is optimised for a different scenario. The information provided by the control unit 314 allows the feature to signal mapping block 310 to determine which mapping operation is most appropriate to use.
In alternative embodiments, the control unit 314 can be integrated into the feature extraction block 308 and the control information provided directly to the feature to signal mapping block 310 along with the feature information.
The artificially generated signal 312 output from the feature to signal mapping block 310 is provided to a mixing function 320. The mixing function 320 mixes the decoded signal 306 with the artificially generated signal 312 to produce an output signal that has a higher perceptual resemblance to the original speech signal.
The mixing function 320 is controlled by the control unit 314. In particular, the control unit uses the coder settings and information from the encoder and/or decoder (from input 316) to provide control information such as, for example, mixing-weights (in time and frequency) to the mixing function 320 in signal 322. The control unit 314 can also utilise information on the extracted features provided by the feature extraction block 308 in signal 324 when determining the control information for the mixing function 320.
In the simplest case the mixing function 320 can implement a weighted sum of the decoded signal 306 and the artificially generated signal 312. However, in advantageous embodiments the mixing function 320 can utilise filter-banks or other filter structures to control the signal mixing in both time and frequency.
In further advantageous embodiments, the mixing function 320 can be adapted using information from the decoded or the encoded signal, in order to exploit known structures of the original signal. For example, in the case of voiced speech signals and sinusoidal coding, a number of the sinusoids are placed at pitch harmonics, and the noise (i.e. the artificially generated signal 312) can in these cases be mixed in with weight-slopes or filters that taper-off from the peak of each of these harmonics towards the spectral valley between such harmonics. The information about each of the sinusoids is contained in the encoded signal 302, which can be provided to the mixing function 320 as an input as shown in
Furthermore, information from the encoded or decoded signal (302, 306) can be used to avoid the artificially generated signal 312 deteriorating the decoded signal 306 in dimensions along which the decoded signal 306 is already an accurate representation of the original signal. For example, where the decoded signal 306 is obtained as a representation of the original signal on a sparse basis, the artificially generated signal 312 can be mixed primarily in the orthogonal complement to the sparse basis.
In an alternative embodiment, the harmonic filtering and/or the projection to the orthogonal complement can be performed as part of the feature to signal mapping block 310, rather than the mixing function 320.
The output of the mixing function is the artificial mixed signal 326, in which the decoded signal 306 and artificially generated signal 312 have been mixed to produce a signal which has a higher perceived quality than the decoded signal 306. In particular, metallic artifacts are reduced.
The technique described above with reference to
In addition, time and frequency shaped noise models have been used both in the context of speech modelling and in the context of parametric audio coding. However, these applications generally utilise a separate encoding and transmission of time and frequency location of this noise. The technique illustrated in
As mentioned,
The system 400 shown in
The decoded signal 304 is provided to an absolute value function 402, which outputs the absolute value of the decoded signal 304. This is convolved with a Hann window function 404. The result of taking the absolute value and the convolution with the Hann window is a smooth energy-envelope 406 of the decoded signal 306. The combination of the absolute value function 402 and the Hann window 404 perform the function of the feature extraction block 308 of
The smooth energy-envelope 406 of the decoded signal is multiplied with Gaussian random noise to produce a modulated noise signal 408. The Gaussian random noise is produced by a Gaussian noise generator 410, which is connected to a multiplier 412. The multiplier 412 also receives an input from the Hann window 404. The modulated noise signal 408 is then filtered using a high-pass filter 414 to produce a filtered modulated noise signal 416. The combination of the Gaussian noise generator 410, multiplier 412 and high-pass filter 414 perform the function of the feature to signal mapping block 310 described above with reference to
The filtered modulated noise signal 416 is provided to an energy matching and signal mixing block 418. The energy matching and signal mixing block 418 also receives as an input a high-pass filtered signal 420, which is produced by high-pass filter 422 filtering the decoded signal 306. Block 418 matches the energy in the filtered modulated noise signal 416 and high-pass filtered signal 420.
The energy matching and signal mixing block 418 also mixes the filtered modulated noise signal 416 and high-pass filtered signal 420 under the control of control unit 314. In particular, weightings applied to the mixer are controlled by the control unit 314 and are dependent on the bit rate. In preferred embodiments, the control unit 314 monitors the bit rate and adapts the mixing weights such that the effect of the filtered modulated noise signal 416 become less as the rate increases. Preferably, the effect of the filtered modulated noise signal 416 is mainly faded out of the mixing (i.e. the overall effect of the AMS system is minimal) as the rate increases.
The output 424 of the energy matching and signal mixing block 418 is provided to an adder 426. The adder also receives as input a low-pass filtered signal 428 which is produced by filtering the decoded signal 306 with a low-pass filter 430. The output signal 432 of the adder 426 is therefore the sum of the low frequency decoded signal 428 and the high frequency mixed artificially generated signal. Signal 432 is the AMS signal, which has a more noise-like character than the decoded speech signal 306, which increases the perceived naturalness and quality of the speech.
Whereas this invention has been described with reference to an example embodiment in which the perceived quality of a decoded signal has been augmented with an artificially generated signal, it will be understood to those skilled in the art that the invention applies equally to concealment signals, such as those resulting when concealing transmission losses or delays. For example, when one or more data frames are lost or delayed in the channel then a concealment signal is created by the decoder by extrapolation or interpolation from neighbouring frames to replace the lost frames. As the concealment signal is prone to metallic artifacts, features can be extracted from the concealment signal and an artificial signal generated and mixed with the concealment signal to mitigate the metallic artifacts.
Furthermore, the invention also applies to signals in which jitter has been detected, and which have subsequently been stretched or had frames inserted to compensate for the jitter. As the stretched signal or inserted frames are prone to metallic artifacts, features can be extracted from the stretched or inserted signal and an artificial signal generated and mixed with the concealment signal to reduce the effects of the metallic artifacts.
Further, while this invention has been particularly shown and described with reference to preferred embodiments, it will be understood to those skilled in the art that various changes in form and detail may be made without departing from the scope of the invention as defined by the appendant claims.
Number | Date | Country | Kind |
---|---|---|---|
0704622.0 | Mar 2007 | GB | national |
Number | Name | Date | Kind |
---|---|---|---|
5615298 | Chen | Mar 1997 | A |
6029126 | Malvar | Feb 2000 | A |
6058360 | Bergstrom | May 2000 | A |
6098036 | Zinser et al. | Aug 2000 | A |
6240380 | Malvar | May 2001 | B1 |
6275806 | Pertrushin | Aug 2001 | B1 |
6353810 | Petrushin | Mar 2002 | B1 |
6424939 | Herre et al. | Jul 2002 | B1 |
6708145 | Liljeryd et al. | Mar 2004 | B1 |
6812876 | Miller | Nov 2004 | B1 |
7002913 | Huang et al. | Feb 2006 | B2 |
7103539 | Kleijn | Sep 2006 | B2 |
7283955 | Liljeryd et al. | Oct 2007 | B2 |
7359854 | Nilsson et al. | Apr 2008 | B2 |
7562021 | Mehrotra et al. | Jul 2009 | B2 |
7590531 | Khalil et al. | Sep 2009 | B2 |
20010028634 | Huang et al. | Oct 2001 | A1 |
20030074197 | Chen | Apr 2003 | A1 |
20030233234 | Truman et al. | Dec 2003 | A1 |
20040181399 | Gao | Sep 2004 | A1 |
20060069559 | Ariyoshi et al. | Mar 2006 | A1 |
20060129389 | Den Brinker et al. | Jun 2006 | A1 |
20060217975 | Sung et al. | Sep 2006 | A1 |
20060277038 | Vos et al. | Dec 2006 | A1 |
20070106505 | Gerrits et al. | May 2007 | A1 |
20070225971 | Bessette | Sep 2007 | A1 |
20070276661 | Dimkovic et al. | Nov 2007 | A1 |
20080027711 | Rajendran et al. | Jan 2008 | A1 |
20080040122 | Chen et al. | Feb 2008 | A1 |
20080046248 | Chen et al. | Feb 2008 | A1 |
20080167866 | Hetherington et al. | Jul 2008 | A1 |
20080177532 | Greiss et al. | Jul 2008 | A1 |
20090281813 | Gerrits et al. | Nov 2009 | A1 |
20100241437 | Taleb et al. | Sep 2010 | A1 |
Number | Date | Country |
---|---|---|
WO 9738416 | Oct 1997 | WO |
WO 0025303 | May 2000 | WO |
WO 0045379 | Aug 2000 | WO |
WO 2005009019 | Jan 2005 | WO |
Number | Date | Country | |
---|---|---|---|
20080221906 A1 | Sep 2008 | US |