US 7788092 B2
A speech signal is decoded by a vocoder and the reconstructed speech samples are provided to a decoded frame check unit. The decoded frame check unit examines the energy of the reconstructed speech and compares the energy of the reconstructed speech to a range of acceptable energy values. If the energy is not within the range of energy values, a frame erasure is declared and the decoded frame is prevented from being to the speaker in the telephone. In the exemplary implementation, the speech is reconstructed by a vocoder which includes a postfilter which in turn includes automatic gain control. The automatic gain control element of a post filter includes a means for measuring the energy of the decoded speech data. This measured energy is used by the decoded frame check unit to decide whether to provide the decoded data to the user or to declare a frame erasure. This implementation reduces the amount of additional hardware necessary to implement the present invention.
1. A speech signal receiving system comprising:
means for receiving an encoded speech signal;
means for decoding said encoded speech signal to provide a decoded speech frame;
means for determining an energy value of said decoded speech-signal frame, wherein the energy value is derived from determining the energy of frequency components of said decoded speech frame that are above 3500 Hz; and
means for muting an output of said system if said decoded speech frame is determined to have an energy value that exceeds a predetermined threshold.
2. The receiving system of
3. The receiving system of
4. The receiving system of
5. The receiving system of
6. The receiving system of
7. The receiving system of
8. The receiving system of
9. An electronic device, comprising:
a variable rate decoder configured to decode an encoded speech signal and output a decoded speech frame; and
a decoded frame check unit configured to examine the energy of frequency components over 3500 Hz in the decoded speech frame and determine if the energy from said frequency components is in excess of a predetermined threshold, wherein the frame check unit mutes the output of the decoded speech frame if the energy is in excess of the predetermined threshold.
10. The electronic device of
11. The electronic device of
12. The electronic device of
13. A method of muting a speech frame received in an encoded speech signal, comprising:
decoding an encoded speech signal;
outputting a decoded speech frame from the decoded speech signal;
examining the energy of frequency components above 3500 Hz in the decoded speech frame;
determining if the energy of the frequency components above 3500 Hz in the decoded speech frame is in excess of a predetermined threshold; and
muting the output of the decoded speech frame if the energy is in excess of the predetermined threshold.
14. The method of
15. The method of
16. The method of
17. The method of
18. The method of
The present application is a continuation of U.S. application Ser. No. 09/260,709, filed Mar. 1, 1999; which is a continuation-in-part of U.S. application Ser. No. 08/740,685, filed Nov. 1, 1996; which is a continuation-in-part of U.S. application Ser. No. 08/719,358, issued as U.S. Pat. No. 6,205,130 on Mar. 20, 2001.
I. Field of the Invention
The invention generally relates to digital telephone systems and in particular to techniques for detecting bad data packets.
II. Description of the Related Art
A microphone 11 detects a speech signal which is then sampled and digitized by an analog to digital converter (not shown). A variable rate data source 12 receives the digitized samples of the speech signal and encodes the signal to provide packets of encoded speech of equal frame lengths. Variable rate data source 12 may, for example, convert the digitized samples of the input speech to digitized speech parameters representative of the input voice signal using Linear Predictive Coding (LPC) techniques. In the exemplary embodiment, the variable rate data source is a variable rate vocoder as described in detail in U.S. Pat. No. 5,414,796 which is assigned to the assignee of the present invention and is incorporated by reference herein. Variable rate data source 12 provides variable rate packets of data at four possible frame rates 9600 bps, 4800 bps, 2400 bps and 1200 bps, referred to herein as full, half, quarter, and eighth rates. Packets encoded at full rate contain 172 information bits, samples encoded at half rate contain 80 information bits, samples encoded at quarter rate contain 40 information bits and samples encoded at eighth rate contain 16 information bits. Packet formats are shown in
The packets are encoded and transmitted at different rates to compress the data contained therein based, in part, on the complexity or amount of information represented by the frame. For example, if the input voice signal includes little or no variation, perhaps because the speaker is not speaking, the information bits of the corresponding packet may be compressed and encoded at eighth rate. This compression results in a loss of resolution of the corresponding portion of the voice signal but, given that the corresponding portion of the voice signal contains little or no information, the reduction in signal resolution is not typically noticeable. Alternatively, if the corresponding input voice signal of the packet includes much information, perhaps because the speaker is actively vocalizing, the packet is encoded at full rate and the compression of the input speech is reduced to achieve better voice quality.
This compression and encoding technique is employed to limit, on the average, the amount of signals being transmitted at any one time to thereby allow the overall bandwidth of the transmission system to be utilized more effectively to allow, for example, a greater number of telephone calls to be processed at any one time.
The variable rate packets generated by data source 12 are provided to packetizer 13 which selectively appends cyclic redundancy check (CRC) bits and tail bits. As shown in
The variable rate packets from packetizer 13 are then provided to encoder 14 which encodes the bits of the variable rate packets for error detection and correction purposes. In the exemplary embodiment, encoder 14 is a rate ⅓ convolutional encoder. The convolutionally encoded symbols are then provided to a CDMA spreader 16, an implementation of which is described in detail in U.S. Pat. Nos. 5,103,459 and 4,901,307. CDMA spreader 16 maps eight encoded symbols to a 64 bit Walsh symbol and then spreads the Walsh symbols in accordance with a pseudorandom noise (PN) code.
Repetition generator 17 receives the spread packets. For packets of less than full rate, repetition generator 17 generates duplicates of the symbols in the packets to provide packets of a constant data rate. When the variable rate packet is half rate, then repetition generator 17 introduces a factor of two redundancy, i.e. each spread symbol is repeated twice within the output packet. When the variable rate packet is quarter rate, then repetition generator 17 introduces a factor of four redundancy. When the variable rate packet is eighth rate then repetition generator 17 introduces a factor of eight redundancy.
Repetition generator 17 provides the aforementioned redundancy by dividing the spread data packet into smaller sub-packets referred to as “power control groups”. In the exemplary embodiment, each power control group consists of 6 PN spread Walsh Symbols. The constant rate frame is generated by consecutively repeating each power control group the requisite number of times to fill the frame as described above.
The spread packets are then provided to a data burst randomizer 18 which removes the redundancy from the spread packets in accordance with a pseudorandom process as described in copending U.S. patent application Ser. No. 08/291,231, filed Aug. 16, 1994 assigned to the assignee of the present invention. Data burst randomizer 18 selects one of the spread power control groups for transmission in accordance with a pseudorandom selection process and gates the other redundant copies of that power control group.
The packets are provided by data burst randomizer 18 to finite impulse response (FIR) filter 20, an example of which is described in U.S. patent application Ser. No. 08/194,823, and assigned to the assignee of the present invention. The filtered signal is then provided to digital to analog converter 22 and converted to an analog signal. The analog signal is then provided to transmitter 24 which upconverts and amplifies the signal for transmission through antenna 26.
Depending upon the implementation, no separate frame erasure unit 36 is necessarily required. Rather, CRC unit 34 may be configured merely to not output bad frames to variable rate decoder 40. However, provision of a frame erasure unit facilitates generation of frame erasure signals for forwarding back to the base station to notify the base station of the frame erasure error. The base station may use the framer erasure information to modulate the amount of power employed to transmit signals perhaps as part of a feedback system intended to minimize transmitted power while also minimizing frame errors.
As noted above, by varying the frame rate of packets to thereby compress the information contained therein, the overall bandwidth of the system is utilized more effectively, usually without any noticeable effect on the transmitted signal. However, problems occur occasionally which have a noticeable effect. One such problem occurs if a frame subject to a frame rate detection error or a transmission error nevertheless passes the CRC. In such case, the bad frame is not erased but is processed along with other good frames. The error may or may not be noticeable. For example, if the error is a transmission error wherein only one or two bits of encoded speech are in error, the error may have only an extremely slight and probably unnoticeable effect on the output voice signal. However, if the error is a frame rate detection error, the entire packet will thereby be processed using the incorrect frame rate causing effectively random bits to be input to the decoder likely resulting in a noticeable artifact in the output voice signal. For some systems, it has been found that incorrect frame rate detections occur with a probability of about 0.005% yielding an incorrectly received packet and a corresponding artifact in the output voice signal about every sixteen minutes of conversation time. Although described with respect to a CDMA system using TIA/EIA IS-95-A protocols, similar problems can occur in almost any transmission system employing variable transmission rates and in related systems as well.
It would be desirable to remedy the forgoing problem, and it is to that end that the invention is primarily drawn.
In the present invention, speech is decoded by a vocoder and the reconstructed speech samples are provided to a decoded frame check unit. The decoded frame check unit examines the energy of the decoded speech signal and the rate of the reconstructed speech and compares the energy of the reconstructed speech to a range of acceptable energy values for that rate. If the energy is not within the range of energy values, a frame erasure is declared and the decoded frame is prevented from being provided to the output speaker in the telephone. In the exemplary embodiment, the vocoder is a code excited linear prediction coder. In the present invention when a frame error is detected, the filter parameters of the speech decoder are reinitialized when the decoded frame is determined to be in error to prevent the detected error from corrupting future frames. In an alternative embodiment, the decoded frame check unit, also, examines the high frequency components of the decoded frame's PCM samples and if the energy of the high frequency components are in excess of a threshold, an erasure is declared.
In the exemplary implementation, the speech is reconstructed by a vocoder which includes a postfilter, which in turn includes automatic gain control. The automatic gain control element of a post filter includes a means for measuring the energy of the decoded speech data. This measured energy is used by the decoded frame check unit to decide whether to provide the decoded PCM data to the user or to declare a frame erasure. This implementation reduces the amount of additional hardware necessary to implement the present invention.
In accordance with one aspect of the invention, a signal reception system is provided for use in a mobile telephone system. The signal reception system includes a means for receiving a digitized signal containing speech parameters representative of speech; a means for examining the digitized signal to identify atypical portions of the digitized signal; and a means for eliminating atypical portions of the signal found by the means for examining. The atypical portions are those likely to be erroneous. Depending upon the implementation, the means for examining the digitized signal to identify atypical portions thereof includes a means for comparing the speech parameters of the portions of the digitized signal with predetermined ranges of acceptable speech parameters to identify portions having speech parameters outside of the predetermined ranges. Exemplary types of speech parameters include codebook gain parameters or linear speech predictor (LSP) frequencies.
Hence, a system is provided wherein the actual speech parameters represented by a received digitized speech signal are examined to identify portions of the signal which are atypical and are thereby likely to be erroneous, perhaps as a result of undetected signal transmission errors. For example, if a portion of the received signal is found to have speech parameters representative of very high frequencies not ordinarily found in human speech, the system identifies that portion of the signal as being atypical and eliminates that portion thereby avoiding a potentially annoying transmission error artifact in the speech signal ultimately output to a listener.
In one specific implementation, the foregoing system is provided within a mobile telephone configured to receive signals encoded with TIA/EIA/IS-95-A standards. The signal includes variable rate data packets encoded at potentially different frame rates. Means are provided for detecting the frame rate of each data packet. As noted, an error may occur during detection of the frame rate thereby resulting in the processing of an entire packet using an incorrect frame rate and thus likely resulting in an annoying artifact in the speech signal ultimately provided to the listener. With the invention, such packets are detected and eliminated.
Moreover, principles of the invention may be advantageously employed in other signal reception systems as well. Indeed, principles of the invention may be employed in many system wherein, following otherwise conventional error detection, some amount of redundancy still remains in a received signal. This redundancy can be exploited to allow signals of very low probability to be distinguished from signals of higher probability thereby allowing elimination of the signals having very low probability on the basis that such signals are probably erroneous signals.
The features, objects, and advantages of the present invention will become more apparent from the detailed description set forth below when taken in conjunction with the drawings in which like reference characters identify correspondingly throughout and wherein:
With reference to the remaining figures, exemplary embodiments of the invention will now be described. The exemplary embodiments will primarily be described with reference to block diagrams and flow charts. As to the flowcharts, each block therein represents both a method step and an apparatus element for performing the recited method step. Depending upon the implementation, each apparatus element, or portions thereof, may be configured in hardware, software, firmware or combinations thereof. Also, it should be appreciated that not all components necessary for a complete implementation of a practical system are illustrated or described in detail. Rather, only those components necessary for a thorough understanding of the invention are illustrated and described.
The illustrated components of
The output frames of variable rate decoder 140 are provided to decoded frame check unit 157. In the exemplary embodiment, the rate of the frame is provided to decoded frame check unit 157 by CRC unit 134. Decoded frame check unit 157 examines the energy of the of the frame output by the variable rate decoder 140. In the exemplary embodiment, if the rate of the frame is eighth rate and the energy of the decoded frame exceeds a predetermined threshold then the frame is declared a frame error. In addition, decoded frame check unit 157 sends a signal to variable rate decoder 140 indicating the detection of the error. In response to the signal from decoded check unit 157, variable rate decoder 140 reinitializes and clears the memory of its filters. In response to a declared frame error either the output PCM speech is muted. In alternative embodiments, the output can be set to comfort noise.
In an alternative embodiment, decoded frame check unit 157 performs a DFT or FFT operation on the decoded frame. Decoded frame check unit 157 examines the energy of the frame that has frequency components over 3500 Hz, and if those components have an energy in excess of a predetermined threshold then decoded frame check unit 157 mutes the output and reinitializes the filter memories of variable rate decoder 140.
Speech parameters decoded by variable rate decoder 140 are routed to a speech parameter examining unit 144 which determines whether the decoded speech parameters lie within predetermined acceptable ranges of speech parameters stored within an acceptable speech parameters table 146. Only frames having data parameters within the acceptable ranges specified by table 146 are returned to variable rate decoder 140 and used for generating the digitized speech signal ultimately output via speaker 142. All other frames are routed to frame erasure unit 136.
Thus, speech parameter examining unit 144 compares decoded speech parameters with acceptable ranges to identify frames containing speech parameters that lie outside the acceptable ranges.
Depending upon the implementation, the acceptable ranges of speech parameters may be predetermined based upon the probability of encountering certain speech parameters in typical, transmitted human speech. For example, there is a low probability that transmitted human speech contains extremely low or high frequencies. Hence, the speech parameters may be examined to determine the corresponding frequency and if the frequency is found to be above or below certain predetermined thresholds specified in the acceptable speech range table 146, the system concludes that the speech parameters are incorrect. Of course, there is the possibility that the low probability speech parameters are perfectly correct, resulting in an erroneous frame erasure. Care should be taken to select the acceptable ranges of speech parameters to minimize the likelihood of unnecessary frame erasures. In this regard, acceptable speech parameter ranges may be determined empirically by evaluating the probabilities of encountering various speech parameters in typical speech and in other typical sounds expected to be transmitted including tones, dtmf signals, music, background noise etc. The resulting ranges may be tested against input signals known to be correct to identify the likelihood of unnecessary frame erasures and then adjusted accordingly. For systems capable of transmitting data as well as voice signals, the speech parameter-based frame erasure mechanism is preferably disabled during data transmissions.
Also, the acceptable ranges of speech parameters stored in table 146 may be tailored to the community expected to utilize the mobile telephone. For example, the acceptable ranges may be set differently for mobile telephones employed in communities where English is expected to be spoken as opposed to communities where another language having significantly different speech characteristics, such as Hottentot, is expected to be spoken. Furthermore, adaptive filtering techniques may be employed to vary the ranges with time, perhaps to compensate for an excessive number of packet erasures which likely indicates that the ranges are not optimally set.
In an exemplary implementation, speech is encoded using the aforementioned variable rate encoder of U.S. Pat. No. 5,414,796 at full, half (Rate ½), quarter (Rate ¼) or eighth (Rate ⅛) rates having the CRC bits and encoder tail bits illustrated in
As can be seen, the codebook gain test is applied only to the Rate ¼ packets. This additional test is provided because the probability of receiving an incorrect packet at Rate ¼ is greater than receiving an incorrect packet at Rate ½ or Rate 1. The probability is higher because Rate ¼ has a smaller CRC and because, with the exemplary encoder of U.S. Pat. No. 5,414,796, Rate ¼ is used to code only unvoiced or temporally masked speech. Hence, Rate ¼ packets are subject to stricter testing. No testing is applied to Rate ⅛ packets.
What has been primarily described is a method and apparatus for detecting bad packets occurring because of frame rate detection errors by comparing speech parameters encoded within, or derivable from, the packets against ranges of acceptable parameters. The techniques also apply to detecting errors caused by other factors as well. Also, techniques of the invention are applicable in other signal transmission systems, including those which do not represent data in packets or which do not employ variable rates. In general, principles of the invention are applicable in almost any system wherein some amount of redundancy occurs in a transmitted signal, i.e. wherein a greater number of bits are employed to encode information than is minimally necessary. Typically, in such systems, all possible data patterns are not equally probable. If the possible data patterns are not equally probable then the techniques of the invention may be exploited to distinguish “good” data from “bad” data based on the probability of occurrence. If all data patterns are equally probably no such distinction can typically be made.
An adaptive brightness filter 204 is added to further compensate for the spectral tilt introduced by the formant postfilter. The brightness filter is of the form:
To avoid any large gain excursions resulting from postfiltering, an AGC loop 205 is implemented to scale the speech output so that it has roughly the same energy as the non-postfiltered speech. Gain control is accomplished by dividing the sum of the squares of the 40 filter input samples computed in unfiltered speech energy calculator 212 by the sum of the squares of the 40 filter output samples computed in filtered speech energy calculator 214 to get the inverse filter gain. The square root of this gain factor is then smoothed:
In accordance with one embodiment, an exemplary speech decoder performs the method steps illustrated in the flow chart of
In step 308 the frame rate of the received encoded speech signal is determined in accordance with known frame rate determination methods. In step 310 the energy of the received encoded speech signal is calculated in accordance with known methods such as, e.g., root-mean-square summation. In step 312 a corresponding acceptable range of energy for the calculated frame rate of step 308 is selected. In step 314 the decoder checks whether the calculated energy content of step 310 is within the selected range of energy of step 312. If the calculated energy content is within the selected energy range, the output of a speaker 318 is not muted, in accordance with step 316. If, on the other hand, in step 314, the calculated energy content is not within the selected energy range, the output speech signal is muted, in accordance with step 320.
In step 322 the energy content of the received encoded speech signal (calculated in step 310) is divided by the energy content of the decoded, filtered speech signal (calculated in step 306), yielding a ratio. The square root of the ratio is then calculated. The calculations may be performed in accordance with a number of known digital signal processing (DSP) techniques.
In step 324 the square root of the ratio is multiplied by decoded, filtered speech signal, generating an output speech signal. The output speech signal is passed through a switch 326, which mutes the output speech signal as necessary in accordance with steps 314 and 320. The output speech signal is then provided to the speaker 318, which generates audible output sound for a user.
The previous description of the preferred embodiments is provided to enable any person skilled in the art to make or use the present invention. The various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without the use of the inventive faculty. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.