IP Library Granted Patent US 7,930,176
Granted Patent B2
US 7,930,176 · App. 11/234,291 · Granted Apr 19, 2011

Packet loss concealment for block-independent speech codecs

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,930,176
App. No.
11/234,291
Granted
Apr 19, 2011
Kind
B2
Abstract

A technique for performing frame erasure concealment (FEC) in a speech decoder. One or more non-erased frames of a speech signal are decoded in a block-independent manner. When an erased frame is detected, a short-term predictive filter and a long-term predictive filter are derived based on previously-decoded portions of the speech signal. A periodic waveform component is generated using the short-term predictive filter and the long-term predictive filter. A random waveform component is generated using the short-term predictive filter. A replacement frame is generated for the erased frame. The replacement frame may be generated based on the periodic waveform component, the random waveform component, or a mixture of both.

Claims (78)

1. A method for decoding a speech signal comprising:

decoding one or more non-erased frames of the speech signal;

detecting a first erased frame of the speech signal; and

responsive to detecting the first erased frame:

deriving a filter based on previously-decoded portions of the speech signal, wherein deriving the filter includes determining one or more tap weights of the filter;

calculating a ringing signal segment using the filter; and

generating a replacement frame for the first erased frame, wherein generating the replacement frame includes overlap adding the ringing signal segment to an extrapolated waveform.

2. The method of claim 1 , wherein deriving the filter comprises deriving both a long-term filter and a short-term filter and wherein calculating the ringing signal segment using the filter comprises calculating the ringing signal segment using both the long-term and short-term filters.

3. The method of claim 2 , wherein deriving the long-term filter comprises calculating a long-term filter memory based on previously-decoded portions of the speech signal.

4. The method of claim 3 , wherein calculating the long-term filter memory based on previously-decoded portions of the speech signal comprises inverse short-term filtering a previously-decoded portion of the speech signal.

5. The method of claim 1 , further comprising:

detecting one or more subsequent erased frames of the speech signal, the one or more subsequent erased frames immediately following the first erased frame in time; and

calculating a ringing signal segment for each of the subsequent erased frames using the filter.

6. The method of claim 1 , further comprising:

detecting one or more subsequent erased frames of the speech signal, the one or more subsequent erased frames immediately following the first erased frame in time; and

generating a replacement frame for each of the one or more subsequent erased frames, wherein generating a replacement frame includes overlap adding a continuation of a waveform extrapolation obtained for a previously-decoded frame with a waveform extrapolation obtained for the erased frame.

7. The method of claim 1 , further comprising:

detecting a first non-erased frame of the speech signal subsequent in time to the first erased frame; and

calculating a ringing signal segment for the first non-erased frame using the filter.

8. The method of claim 1 , further comprising:

detecting a first non-erased frame of the speech signal subsequent in time to the first erased frame; and

overlap adding a continuation of a waveform extrapolation obtained for a previously-decoded frame with a portion of the first non-erased frame.

9. The method of claim 8 , wherein overlap adding the continuation of the waveform extrapolation obtained for a previously decoded-frame with the portion of the first non-erased frame includes selecting an overlap add window length.

10. The method of claim 9 , wherein selecting an overlap add window length comprises selecting an overlap add window length based on whether a previously-decoded frame of the speech signal is deemed unvoiced.

11. The method of claim 1 , wherein decoding one or more non-erased frames of the speech signal comprises decoding one or more non-erased frames of the speech signal in a block-independent manner.

12. A method for decoding a speech signal comprising:

decoding one or more non-erased frames of the speech signal;

detecting an erased frame of the speech signal; and

responsive to detecting the erased frame:

deriving a short-term filter based on previously-decoded portions of the speech signal, wherein deriving the short-term filter includes determining one or more tap weights of the short-term filter,

generating a sequence of pseudo-random white noise samples,

filtering the sequence of pseudo-random white noise samples through the short ten filter to generate an extrapolated waveform, and

generating a replacement frame for the erased frame based on the extrapolated waveform.

13. The method of claim 12 , wherein generating a sequence of pseudo-random white noise samples comprises, for each sample to be generated:

calculating a pseudo-random number with a uniform probability distribution function; and

mapping the pseudo-random number to a warped scale.

14. The method of claim 12 , wherein generating a sequence of pseudo-random white noise samples comprises:

sequentially reading samples from an array of pre-calculated white Gaussian noise samples.

15. The method of claim 12 , wherein generating a sequence of pseudo-random white noise samples comprises:

storing N pseudo-random Gaussian white noise samples in a table, wherein N is the smallest prime number that is greater than t, and wherein t denotes the total number of samples to be generated; and

obtaining a sequence of t samples from the table, wherein the n-th sample in the sequence is obtained using an index based on cn modulo N, wherein c is a current number of consecutively erased frames in the speech signal.

16. The method of claim 12 , further comprising:

scaling the sequence of pseudo-random white noise samples before filtering the sequence through the short term filter.

17. The method of claim 16 , wherein scaling the sequence of pseudo-random white noise samples comprises scaling the sequence of pseudo-random white noise samples by a gain measurement corresponding to a short term prediction residual calculated for a previously-decoded non-erased frame of the speech signal.

18. The method of claim 12 , wherein decoding one or more non-erased frames of the speech signal comprises decoding one or more non-erased frames of the speech signal in a block-independent manner.

19. A method for decoding a speech signal, comprising:

decoding one or more non-erased frames of the speech signal;

detecting an erased frame of the speech signal; and

responsive to detecting the erased frame:

deriving a short-term filter and a long-term filter based on previously-decoded portions of the speech signal, wherein deriving the short-term filter and the long-term filter includes determining one or more tap weights of the short-term filter and the long-term filter;

generating a periodic waveform component using the short-term filter and long-term filter;

generating a random waveform component using the short-term filter; and

generating a replacement frame for the erased frame, wherein generating a replacement frame comprises mixing the periodic waveform component and the random waveform component.

20. The method of claim 19 , wherein mixing the periodic waveform component and the random waveform component comprises:

scaling the periodic waveform component and the random waveform component based on the periodicity of a previously-decoded portion of the speech signal; and

adding the scaled periodic waveform component and the scaled random waveform component.

21. The method of claim 20 , wherein scaling the periodic waveform component and the random waveform component based on the periodicity of a previously-decoded portion of the speech signal comprises:

scaling the periodic waveform component by a scaling factor Gp; and

scaling the random waveform component by a scaling factor Gr,

wherein Gr is calculated as a function of the periodicity of a previously-decoded portion of the speech signal and wherein Gp=1−Gr.

22. The method of claim 19 , wherein deriving the long-term filter comprises calculating a long team filter memory based on previously-decoded portions of the speech signal.

23. The method of claim 22 , wherein calculating the long term filter memory based on previously-decoded portions of the speech signal comprises inverse short-term filtering a previously-decoded portion of the speech signal.

24. The method of claim 19 , wherein generating a periodic waveform component using the short-term filter and long-term filter comprises:

calculating a ringing signal segment using the long-term and short-term filters; and

overlap adding the ringing signal segment to an extrapolated waveform.

25. The method of claim 19 , wherein generating a random waveform component using the short-term filter comprises:

generating a sequence of pseudo-random white noise samples; and

filtering the sequence of pseudo-random white noise samples through the short term filter to generate the random waveform component.

26. The method of claim 25 , wherein generating a sequence of pseudo-random white noise samples comprises, for each sample to be generated:

calculating a pseudo-random number with a uniform probability distribution function; and

mapping the pseudo-random number to a warped scale.

27. The method of claim 25 , wherein generating a sequence of pseudo-random white noise samples comprises:

sequentially reading samples from an array of pre-calculated white Gaussian noise samples.

28. The method of claim 25 , wherein generating a sequence of pseudo-random white noise samples comprises:

storing N pseudo-random Gaussian white noise samples in a table, wherein N is the smallest prime number that is greater than t, and wherein t denotes the total number of samples to be generated; and

obtaining a sequence of t samples from the table, wherein the n-th sample in the sequence is obtained using an index based on cn modulo N, wherein c is a current number of consecutively erased frames in the speech signal.

29. The method of claim 25 , further comprising:

scaling the sequence of pseudo-random white noise samples before filtering the sequence through the short term filter.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 47630 FRAME: 344. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 21, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0267 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER TO 9/5/2018 PREVIOUSLY RECORDED AT REEL: 047196 FRAME: 0687. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047630/0344 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047196/0687 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →