US 7389226 B2 Abstract Primary and alternate optimization procedures are used to improve the ITU-T G.723.1 speech coding standard (the “Standard”) by replacing the Hamming window of the Standard with an optimized window, with two windows, or with two windows and an additional performance of an autocorrelation method. When two windows replace the Hamming window, at least one of which is an optimized window, generally the first is used to determine optimized unquantized LP coefficients which are used to define an optimized perceptual weighting filter, and the second is used to determine optimized unquantized LP coefficients which are used to determine optimized synthesis coefficients. Optimized windows created using the primary and alternate optimization procedures and used in the Standard yield improvements in the objective and subjective quality of synthesized speech produced by the Standard. The improved Standard, methods, and window can all be implemented as computer readable software code.
Claims(33) 1. A method for improving a linear predictive analysis procedure for a ITU-T G.723.1 standard, wherein the ITU-T G.723.1 standard comprises a first window for windowing first, second, third and fourth subframes of each frame of a speech signal, comprising:
replacing the first window with a second window, wherein the second window windows the first, second and third subframes of each frame with the second window thereby creating, first, second and third windowed subframes for each frame; and
adding a third window, wherein the third window windows the fourth subframes of each frame with the third window thereby creating a fourth windowed subframe for each frame.
2. The method for improving an ITU-T G.723.1 standard, as claimed in
3. The method for improving an ITU-T G.723.1 standard, as claimed in
4. The method for improving an ITU-T G.723.1 standard, as claimed in
5. The method for improving an ITU-T G.723.1 standard, as claimed in
6. The method for improving an ITU-T G.723.1 standard, as claimed in
7. The method for improving an ITU-T G.723.1 standard, as claimed in
8. The method for improving an ITU-T G.723.1 standard, as claimed in
9. The method for improving an ITU-T G.723.1 standard, as claimed in
10. The method for improving an ITU-T G.723.1 standard, as claimed in
11. The method of improving a linear predictive analysis procedure, as claimed in
12. The method of improving a linear predictive analysis procedure, as claimed in
13. The method of improving a linear predictive analysis procedure, as claimed in
14. The method for improving an ITU-T G.723.1 standard, as claimed in
15. The method of improving a linear predictive analysis procedure, as claimed in
16. A method of improving a linear predictive analysis procedure for an ITU-T G.723.1 standard, wherein the ITU-T G.723.1 standard comprises a first window for windowing first, second, third and fourth subframes of each frame of a speech signal, comprising:
replacing the first window with a second window, wherein the second window windows the first, second, third and fourth subframes of each frame to create a first, second, third and fourth windowed subframe for each frame;
adding a third window, wherein the third window windows the fourth subframe of each frame to create an additional fourth windowed subframe for each frame;
adding an additional performance of an autocorrelation method for each frame, wherein the additional performance of the autocorrelation method uses the additional fourth windowed subframe to create an additional set of unquantized linear predictive coefficients for the fourth subframe; and
using the additional set of unquantized linear predictive coefficients for the fourth subframe to determine a set of synthesis coefficients for each subframe.
17. The method for improving an ITU-T G.723.1 standard, as claimed in
18. The method for improving an ITU-T G.723.1 standard, as claimed in
19. The method for improving an ITU-T G.723.1 standard, as claimed in
20. The method for improving an ITU-T G.723.1 standard, as claimed in
21. The method for improving an ITU-T G.723.1 standard, as claimed in
22. The method for improving an ITU-T G.723.1 standard, as claimed in
23. The method for improving an ITU-T G.723.1 standard, as claimed in
24. The method for improving an ITU-T G.723.1 standard, as claimed in
25. The method for improving an ITU-T G.723.1 standard, as claimed in
26. The method for improving an ITU-T G.723.1 standard, as claimed in
27. The method for improving an ITU-T G.723.1 standard, as claimed in
28. The method for improving an ITU-T G.723.1 standard, as claimed in
29. The method for improving an ITU-T G.723.1 standard, as claimed in
30. A computer readable storage medium storing computer readable data comprising instructions which, when executed by a system, cause the system to generate an optimized window for use with a linear predictive analysis procedure of an ITU-T G.723.1 standard, the optimized window comprising a plurality of sample values stored in a memory which comprise:
0.116678, 0.187803, 0.247690, 0.277898, 0.350155, 0.403122, 0.459569, 0.477158, 0.550173, 0.602804, 0.622396, 0.565438, 0.578363, 0.609173, 0.650848, 0.662152, 0.699226, 0.727282, 0.758316, 0.793326, 0.825134, 0.855233, 0.886145, 0.937144, 0.972893, 1.011895, 1.049858, 1.081863, 1.136440, 1.184239, 1.213611, 1.248354, 1.297161, 1.348743, 1.399985, 1.436935, 1.469402, 1.530092, 1.570877, 1.624311, 1.684477, 1.761751, 1.830493, 1.899967, 1.969700, 2.052247, 2.129914, 2.214113, 2.340677, 2.483695, 2.621665, 2.772540, 2.920029, 3.092630, 3.286933, 3.494883, 3.699867, 3.948207, 4.201077, 4.437648, 4.528047, 4.629731, 4.670350, 4.732200, 4.807459, 4.869654, 4.955823, 5.042287, 5.118107, 5.156739, 5.196275, 5.227170, 5.263733, 5.299689, 5.331259, 5.353726, 5.366344, 5.380354, 5.397437, 5.405898, 5.409608, 5.420908, 5.427468, 5.442414, 5.436848, 5.435011, 5.425997, 5.421427, 5.419302, 5.413182, 5.392979, 5.368519, 5.359407, 5.354677, 5.359883, 5.352392, 5.335619, 5.322016, 5.309566, 5.296920, 5.269704, 5.251029, 5.232569, 5.210761, 5.170894, 5.131525, 5.084129, 5.009702, 4.951736, 4.892913, 4.829910, 4.759048, 4.687846, 4.610099, 4.528398, 4.419788, 4.288011, 4.124828, 3.901250, 3.628421, 3.362433, 3.129397, 3.015737, 2.918085, 2.827448, 2.686114, 2.560415, 2.454908, 2.344123, 2.241013, 2.114635, 2.047803, 1.964048, 1.892729, 1.792203, 1.697485, 1.650110, 1.571169, 1.458792, 1.407726, 1.363763, 1.310565, 1.235393, 1.192798, 1.151590, 1.112173, 1.042805, 0.996241, 0.943765, 0.911775, 0.861747, 0.825462, 0.769422, 0.734885, 0.677630, 0.661209, 0.618541, 0.587957, 0.543497, 0.520713, 0.484823, 0.459620, 0.435362, 0.403478, 0.368413, 0.344200, 0.323539, 0.296270, 0.268920, 0.248246, 0.220681, 0.206877, 0.192833, 0.173539, 0.150747, 0.132167, 0.110015, 0.091688, 0.067250, and 0.032262.
31. A computer readable storage medium storing computer readable data comprising instructions which, when executed by a system, cause the system to generate an optimized window for use with a linear predictive analysis procedure of an ITU-T G.723.1 standard, the optimized window comprising a first plurality of sample values wa stored in a memory, wherein the first plurality of sample values are approximately within a distance d=0.0001 of a window comprising a second plurality of sample values wb stored in a memory, wherein the second plurality of sample values wb comprises:
0.116678, 0.187803, 0.247690, 0.277898, 0.350155, 0.403122, 0.459569, 0.477158, 0.550173, 0.602804, 0.622396, 0.565438, 0.578363, 0.609173, 0.650848, 0.662152, 0.699226, 0.727282, 0.758316, 0.793326, 0.825134, 0.855233, 0.886145, 0.937144, 0.972893, 1.011895, 1.049858, 1.081863, 1.136440, 1.184239, 1.213611, 1.248354, 1.297161, 1.348743, 1.399985, 1.436935, 1.469402, 1.530092, 1.570877, 1.624311, 1.684477, 1.761751, 1.830493, 1.899967, 1.969700, 2.052247, 2.129914, 2.214113, 2.340677, 2.483695, 2.621665, 2.772540, 2.920029, 3.092630, 3.286933, 3.494883, 3.699867, 3.948207, 4.201077, 4.437648, 4.528047, 4.629731, 4.670350, 4.732200, 4.807459, 4.869654, 4.955823, 5.042287, 5.118107, 5.156739, 5.196275, 5.227170, 5.263733, 5.299689, 5.331259, 5.353726, 5.366344, 5.380354, 5.397437, 5.405898, 5.409608, 5.420908, 5.427468, 5.442414, 5.436848, 5.435011, 5.425997, 5.421427, 5.419302, 5.413182, 5.392979, 5.368519, 5.359407, 5.354677, 5.359883, 5.352392, 5.335619, 5.322016, 5.309566, 5.296920, 5.269704, 5.251029, 5.232569, 5.210761, 5.170894, 5.131525, 5.084129, 5.009702, 4.951736, 4.892913, 4.829910, 4.759048, 4.687846, 4.610099, 4.528398, 4.419788, 4.288011, 4.124828, 3.901250, 3.628421, 3.362433, 3.129397, 3.015737, 2.918085, 2.827448, 2.686114, 2.560415, 2.454908, 2.344123, 2.241013, 2.114635, 2.047803, 1.964048, 1.892729, 1.792203, 1.697485, 1.650110, 1.571169, 1.458792, 1.407726, 1.363763, 1.310565, 1.235393, 1.192798, 1.151590, 1.112173, 1.042805, 0.996241, 0.943765, 0.911775, 0.861747, 0.825462, 0.769422, 0.734885, 0.677630, 0.661209, 0.618541, 0.587957, 0.543497, 0.520713, 0.484823, 0.459620, 0.435362, 0.403478, 0.368413, 0.344200, 0.323539, 0.296270, 0.268920, 0.248246, 0.220681, 0.206877, 0.192833, 0.173539, 0.150747, 0.132167, 0.110015, 0.091688, 0.067250, and 0.032262;
wherein the distance d between wa and wb is defined according to a number of samples N, a first index n, a second index k, and according to an equation:
32. A computer readable storage medium storing computer readable data comprising instructions which, when executed by a system, cause the system to generate an alternate optimized window for use with a linear predictive analysis procedure of an ITU-T G.723.1 standard, the alternate optimized window comprising a plurality of sample values ystored in a memory, wherein the plurality of sample values comprises:
0.056150, 0.122093, 0.153056, 0.194804, 0.232918, 0.256735, 0.288945, 0.321137, 0.348886, 0.369576, 0.398987, 0.417789, 0.441931, 0.458774, 0.473394, 0.496449, 0.519846, 0.531719, 0.537380, 0.547242, 0.560622, 0.573669, 0.589379, 0.601614, 0.607865, 0.623282, 0.637267, 0.643013, 0.648370, 0.651969, 0.659885, 0.672638, 0.682769, 0.695845, 0.713788, 0.726714, 0.733964, 0.737232, 0.745326, 0.751638, 0.756986, 0.760639, 0.773152, 0.785181, 0.808572, 0.812042, 0.817217, 0.829137, 0.846258, 0.860442, 0.859832, 0.868616, 0.878803, 0.892221, 0.902228, 0.909677, 0.916959, 0.932141, 0.936339, 0.946345, 0.955946, 0.959545, 0.961508, 0.970389, 0.975104, 0.986054, 0.977306, 0.976722, 0.991886, 0.998282, 0.997183, 0.995679, 0.991806, 0.992466, 0.990864, 0.987734, 0.986736, 0.995052, 0.990209, 0.988615, 0.986234, 0.985936, 0.993675, 0.995970, 0.987970, 0.990797, 0.987486, 0.980312, 0.979255, 0.978351, 0.974572, 0.979379, 0.988165, 0.993288, 0.985317, 0.980782, 0.971883, 0.973339, 0.969808, 0.963645, 0.957974, 0.959252, 0.957285, 0.952720, 0.947759, 0.943038, 0.936762, 0.933639, 0.928044, 0.928150, 0.924647, 0.910499, 0.901902, 0.900863, 0.900764, 0.891760, 0.877730, 0.866695, 0.860050, 0.850889, 0.843083, 0.833563, 0.824455, 0.818162, 0.813551, 0.814092, 0.805367, 0.802510, 0.803210, 0.797523, 0.792023, 0.785907, 0.781184, 0.772191, 0.775102, 0.764332, 0.763737, 0.756556, 0.754807, 0.742855, 0.733913, 0.727639, 0.722874, 0.719140, 0.710869, 0.703657, 0.699092, 0.687752, 0.680553, 0.676326, 0.666102, 0.652782, 0.648256, 0.645045, 0.638322, 0.630853, 0.624358, 0.615732, 0.604071, 0.593158, 0.574702, 0.562575, 0.550668, 0.538416, 0.525374, 0.504568, 0.486167, 0.467762, 0.449641, 0.423078, 0.403092, 0.371439, 0.354919, 0.325713, 0.292780, 0.255803, 0.214365, 0.169719, 0.118185, and 0.056853.
33. A computer readable storage medium storing computer readable data comprising instructions which, when executed by a system, cause the system to generate an alternate optimized window for use with a linear predictive analysis procedure of an ITU-T G.723.1 standard, the alternate optimized window comprising a first plurality of sample values wa stored in a memory, wherein the first plurality of sample values are approximately within a distance d=0.0001 of a window comprising a second plurality of sample values wb stored in a memory, wherein the second plurality of sample values wb comprises:
0.056150, 0.122093, 0.153056, 0.194804, 0.232918, 0.256735, 0.288945, 0.321137, 0.348886, 0.369576, 0.398987, 0.417789, 0.441931, 0.458774, 0.473394, 0.496449, 0.519846, 0.531719, 0.537380, 0.547242, 0.560622, 0.573669, 0.589379, 0.601614, 0.607865, 0.623282, 0.637267, 0.643013, 0.648370, 0.651969, 0.659885, 0.672638, 0.682769, 0.695845, 0.713788, 0.726714, 0.733964, 0.737232, 0.745326, 0.751638, 0.756986, 0.760639, 0.773152, 0.785181, 0.808572, 0.812042, 0.817217, 0.829137, 0.846258, 0.860442, 0.859832, 0.868616, 0.878803, 0.892221, 0.902228, 0.909677, 0.916959, 0.932141, 0.936339, 0.946345, 0.955946, 0.959545, 0.961508, 0.970389, 0.975104, 0.986054, 0.977306, 0.976722, 0.991886, 0.998282, 0.997183, 0.995679, 0.991806, 0.992466, 0.990864, 0.987734, 0.986736, 0.995052, 0.990209, 0.988615, 0.986234, 0.985936, 0.993675, 0.995970, 0.987970, 0.990797, 0.987486, 0.980312, 0.979255, 0.978351, 0.974572, 0.979379, 0.988165, 0.993288, 0.985317, 0.980782, 0.971883, 0.973339, 0.969808, 0.963645, 0.957974, 0.959252, 0.957285, 0.952720, 0.947759, 0.943038, 0.936762, 0.933639, 0.928044, 0.928150, 0.924647, 0.910499, 0.901902, 0.900863, 0.900764, 0.891760, 0.877730, 0.866695, 0.860050, 0.850889, 0.843083, 0.833563, 0.824455, 0.818162, 0.813551, 0.814092, 0.805367, 0.802510, 0.803210, 0.797523, 0.792023, 0.785907, 0.781184, 0.772191, 0.775102, 0.764332, 0.763737, 0.756556, 0.754807, 0.742855, 0.733913, 0.727639, 0.722874, 0.719140, 0.710869, 0.703657, 0.699092, 0.687752, 0.680553, 0.676326, 0.666102, 0.652782, 0.648256, 0.645045, 0.638322, 0.630853, 0.624358, 0.615732, 0.604071, 0.593158, 0.574702, 0.562575, 0.550668, 0.538416, 0.525374, 0.504568, 0.486167, 0.467762, 0.449641, 0.423078, 0.403092, 0.371439, 0.354919, 0.325713, 0.292780, 0.255803, 0.214365, 0.169719, 0.118185, and 0.056853;
wherein the distance d between wa and wb is defined according to a number of samples N, a first index n, a second index k, and according to an equation:
Description The application is a continuation-in-part of the following US patent application entitled “Method and Apparatus for Gradient-Descent Based Window Optimization for Linear Prediction Analysis,” application Ser. No. 10/282,966, filed Oct. 29, 2002 now U.S. Pat. No. 7,231,344, which is incorporated herein by reference. Speech analysis involves obtaining characteristics of a speech signal for use in speech-enabled applications, such as speech synthesis, speech recognition, speaker verification and identification, and enhancement of speech signal quality. Speech analysis is particularly important to speech coding systems. Speech coding refers to the techniques and methodologies for efficient digital representation of speech and is generally divided into two types, waveform coding systems and model-based coding systems. Waveform coding systems are concerned with preserving the waveform of the original speech signal. One example of a waveform coding system is the direct sampling system which directly samples a sound at high bit rates (“direct sampling systems”). Direct sampling systems are typically preferred when quality reproduction is especially important. However, direct sampling systems require a large bandwidth and memory capacity. A more efficient example of waveform coding is pulse code modulation. In contrast, model-based speech coding systems are concerned with analyzing and representing the speech signal as the output of a model for speech production. This model is generally parametric and includes parameters that preserve the perceptual qualities and not necessarily the waveform of the speech signal. Known model-based speech coding systems use a mathematical model of the human speech production mechanism referred to as the source-filter model. The source-filter model models a speech signal as the air flow generated from the lungs (an “excitation signal”), filtered with the resonances in the cavities of the vocal tract, such as the glottis, mouth, tongue, nasal cavities and lips (a “synthesis filter”). The excitation signal acts as an input signal to the filter similarly to the way the lungs produce air flow to the vocal tract. Model-based speech coding systems using the source-filter model generally determine and code the parameters of the source-filter model. These model parameters generally include the parameters of the filter. The model parameters are determined for successive short time intervals or frames (e.g., 10 to 30 ms analysis frames), during which the model parameters are assumed to remain fixed or unchanged. However, it is also assumed that the parameters will change with each successive time interval to produce varying sounds. The parameters of the model are generally determined through analysis of the original speech signal. Because the synthesis filter generally includes a polynomial equation including several coefficients to represent the various shapes of the vocal tract, determining the parameters of the filter generally includes determining the coefficients of the polynomial equation (the “filter coefficients”). Once the synthesis filter coefficients have been obtained, the excitation signal can be determined by filtering the original speech signal with a second filter that is the inverse of the synthesis filter (an “analysis filter”). One method for determining the coefficients of the synthesis filter is through the use of linear predictive analysis (“LPA”) techniques. LPA is a time-domain technique based on the concept that during a successive short time interval or frame “N,” each sample of a speech signal (“speech signal sample” or “s[n]”) is predictable through a linear combination of samples from the past s[n−k] together with the excitation signal u[n]. The speech signal sample s[n] can be expressed by the following equation: The LP coefficients a_{1 }. . . a_{M }are computed by analyzing the actual speech signal s[n]. The LP coefficients are approximated as the coefficients of a filter used to reproduce s[n] (the “synthesis filter”). The synthesis filter uses the same LP coefficients as the analysis filter and produces a synthesized version of the speech signal. The synthesized version of the speech signal may be estimated by a predicted value of the speech signal {tilde over (s)}[n]. {tilde over (s)}[n] is defined according to the formula:
Because s[n] and {tilde over (s)}[n] are not exactly the same, there will be an error associated with the predicted speech signal {tilde over (s)}[n] for each sample n referred to as the prediction error e_{p}[n], which is defined by the equation: One common method for determining the optimum LP coefficients is the autocorrelation method. The basic procedure consists of signal windowing, autocorrelation calculation, and solving the normal equation leading to the optimum LP coefficients. Windowing consists of breaking down the speech signal into frames or intervals that are sufficiently small so that it is reasonable to assume that the optimum LP coefficients will remain constant throughout each frame. During analysis, the optimum LP coefficients are determined for each frame. These frames are known as the analysis intervals or analysis frames. The LP coefficients obtained through analysis are then used for synthesis or prediction inside frames known as synthesis intervals. However, in practice, the analysis and synthesis intervals might not be the same. When windowing is used, assuming for simplicity a rectangular window sequence of unity height including window samples (also referred to as “windows”) w[n], the total prediction error E_{p }in a given frame or interval may be expressed as: Once the speech signal samples s[n] are isolated into frames, the optimum LP coefficients can be found through autocorrelation calculation and solving the normal equation. To minimize the total prediction error, the values chosen for the LP coefficients must cause the derivative of the total prediction error with respect to each LP coefficients to equal or approach zero. Therefore, the partial derivative of the total prediction error is taken with respect to each of the LP coefficients, producing a set of M equations. Fortunately, these equations can be used to relate the minimum total prediction error to an autocorrelation function: Many factors affect the minimum total prediction error including the shape of the window in the time domain. Generally, the window sequences adopted by coding standards have a shape that includes tapered-ends so that the amplitudes are low at the beginning and end of the window sequences with a peak amplitude located in-between. These windows are described by simple formulas and their selection inspired by the application in which they will be used. Generally, known methods for choosing the shape of the window are heuristic. There is no deterministic method for determining the optimum window shape. For example, the speech coding system defined by the ITU-T G.723.1 speech coding standard (the “G.723.1 standard”) uses a Hamming window (“standard Hamming window”) but has no method for determining whether the Hamming window will yield the optimum LP coefficients. The G.723.1 standard is designed to compress toll quality speech (at 8000 samples/second) for applications including the voice-over-internet-protocol (“VoIP”) and the voice component of video conferencing. It is an analysis-by-synthesis dual rate speech coder that uses different quantizing techniques to quantize the excitation signal depending on the data rate (ITU, “Dual Rate Speech Coder for Multimedia Communications Transmitting at 5.2 and 6.2 kbits/-ITU-T Recommendations G.723.1, 1996, which is incorporated herein by reference). A multi-pulse maximum likelihood quantizer (“MLQ”) is used to quantize the excitation signals for the high bit rate of 6.3 kbs and an algebraic-code-excited-linear-predictor (“ACELP”) is used to quantize the excitation signal for the low bit rate of 5.3 kbps. The particular LPA used by the G.723.1 standard (the “LPA process”) is shown in The unquantized LP coefficients are determined by high pass filtering the speech signal 11; setting an index “i” equal to one 12; windowing the i-th subframe of the filtered speech signal 14; determining the unquantized LP coefficients through autocorrelation 18; determining if the index equals 4 20, wherein if the index does not equal four, incrementing the index by one so that i=i+1 22, reperforming steps 14, 18, and repeating steps 20, 22, 14 and 18 until the index does equal 4, when the index does equal four, the unquantized LP coefficients of the fourth subframe are used to determine the quantized or synthesis LP coefficients in steps 24, 26, 28 and 30. High pass filtering the speech signal 11 basically includes removing the DC component of the speech signal. Windowing the i-th subframes of the filtered speech signal 14 basically includes: windowing the filtered speech signal with a 180-sample Hamming window which is centered at each 60-sample subframe. Determining the unquantized LP coefficients using autocorrelation includes performing the autocorrelation calculation; and solving the normal equation using the Levinson-Durbin algorithm, as described previously herein. Steps 24, 26, 28, and 30 determine the synthesis LP coefficients. More specifically, these steps include: transforming the unquantized LP coefficients of the 4-th subframe into LSP coefficients 24; quantizing the LSP coefficients 26; interpolating the quantized LSP coefficients with the quantized LSP coefficients of the fourth subframe of the previous frame to create four sets of interpolated quantized LSP coefficients 28; and transforming the four sets of interpolated quantized LSP coefficients into four sets of quantized LP coefficients 30. Transforming the unquantized LP coefficients of the fourth subframe into LSP coefficients 24 can be accomplished using known techniques. Quantizing the LSP coefficients 26 includes choosing a codeword from a codebook so that the distance between the unquantized LSP coefficients and the quantized LSP coefficients is minimized. Interpolating the quantized LSP coefficients includes interpolating each quantized LSP coefficient with the quantized LSP coefficient from the previous frame to create four sets of interpolated quantized LSP coefficients, one for each subframe. Transforming the four sets of interpolated quantized LSP coefficients into four sets of synthesis LP coefficients 22 may be accomplished using known methods. Each set of synthesis LP coefficients may then be used to create a synthesis filter for each subframe. An improved G.723.1 standard has been created primarily by replacing the window used during the LPA process of the G.723.1 standard with an optimized window. Further improvements to the LPA process can be obtained by adding a second window or by adding a second window and the determination of an additional set of unquantized LP coefficients. The improved G.723.1 standard demonstrates an improvement in subjective quality over the known G.723.1. The standard Hamming window used by the G.723.1 standard can be optimized in two ways. The first way is through the use of a “primary optimization procedure” to produce a first optimized window. The second is through the use of an “alternate optimization procedure” to produce a second optimized window. These window optimization procedures rely on the principle of gradient-descent to find a window sequence that will either minimize the prediction error energy or maximize the segmental prediction gain. Although both optimization procedures involve determining a gradient, the primary optimization procedure uses a Levinson-Durbin based algorithm to determine the gradient while the alternate optimization procedure uses an estimate based on the basic definition of a partial derivative. When the standard Hamming window is replaced by a single optimized window, the optimized window may be created by either the primary or alternate optimization procedure. This optimized window windows the four subframes of the speech signal to create four optimized windowed speech signals. These four windowed optimized speech signals are used to determine optimized unquantized LP coefficients, which are used to define the perceptual weighting filter and to determine the quantized or synthesis LP coefficients. In contrast, when the standard Hamming window is replaced by two windows, the first window is used to window the subframes used to determine the optimized unquantized LP coefficients used to define the perceptual weighting filter and the second window is used to window the subframes used to determine the optimized quantized LP coefficients. The first window may be an optimized window created by either the primary or the alternate optimization procedures. However, the second window may not be an optimized window created using the alternate optimization procedure. In some cases where the standard Hamming window is replaced by two windows, an additional set of unquantized LP coefficients is determined. In these cases, the fourth subframe is windowed twice, once with each window, to produce a windowed fourth subframe and an additional windowed fourth subframe. The windowed fourth subframe is used along with the unquantized LP coefficients for the first, second, and third subframes to define a perceptual weighting filter. The additional windowed fourth subframe is also used to determine unquantized LP coefficients, therefore requiring an additional unquantized LP coefficient determination. The unquantized LP coefficients determined using the windowed fourth subframe are then used to determine the quantized LP coefficients. Also presented herein are windows optimized using the primary and alternate optimization procedures. The efficacy of these optimized windows for use in the G.723.1 standard is demonstrated through test data showing improvements in objective and subjective speech quality both within and outside a training data set. Improved G.723.1 standards, using a variety of window combinations, wherein each contains at least one optimized window, showed an increase in PESQ (perceptual evaluation of speech quality) score over the known G.732.1 standard. Among the improved G.723.1 standards, the one wherein the standard Hamming window was replaced by two windows and included the determination of an additional set of optimized unquantized LP coefficients demonstrated the greatest increase in subjective quality. These optimization procedures, the optimized windows and the methods for optimizing the G.723.1 standard can be implemented as computer readable software code which may be stored on a processor, a memory device or on any other computer readable storage medium. Alternatively, the software code may be encoded in a computer readable electronic or optical signal. Additionally, the optimization procedures, the optimized windows and the methods for optimizing the G.723.1 standard may be implemented in a window optimization device which generally includes a window optimization unit and may also include an interface unit. The optimization unit includes a processor coupled to a memory device. The processor performs the optimization procedures and obtains the relevant information stored on the memory device. The interface unit generally includes an input device and an output device, which both serve to provide communication between the window optimization unit and other devices or people. This disclosure may be better understood with reference to the following figures and detailed description. The components in the figures are not necessarily to scale, emphasis being placed upon illustrating the relevant principles. Moreover, like reference numerals in the figures designate corresponding parts throughout the different views. The shape of the window used during LPA can be optimized through the use of window optimization procedures which rely on gradient-descent based methods (“gradient-descent based window optimization procedures” or hereinafter “optimization procedures”). Window optimization may be achieved fairly precisely through the use of a primary optimization procedure, or less precisely through the use of an alternate optimization procedure. The primary optimization and the alternate optimization procedures are both based on finding the window sequence that will either minimize the prediction error energy (“PEEN”) or maximize the prediction gain (“PG”). Additionally, although both the primary optimization procedure and the alternate optimization procedure involve determining a gradient, the primary optimization procedure uses a Levinson-Durbin based algorithm to determine the gradient while the alternate optimization procedure uses the basic definition of a partial derivative to estimate the gradient. Improvements in the LPA procedure obtained by using the window optimization procedures are demonstrated by experimental data that compares the time-averaged PEEN (the “prediction-error power” or “PEP”) and the time-averaged PG (the “segmental prediction gain” or “SPG”) obtained using window segments that were not optimized at all to the PEP and SPG obtained using window segments that were optimized using the optimization procedures. The optimization procedures optimize the shape of the window sequence used during LPA by minimizing the PEEN or maximizing PG. The PG at the synthesis interval nε[n_{1}, n_{2}] is defined by the following equation: Because the PEEN can be considered a function of the N samples of the window, the gradient of J with respect to the window sequence can be determined from the partial derivatives of J with respect to each window sample: Both the primary and alternate optimization procedures obtain the optimum window sequence by using LPA to analyze a set of speech signals and using the principle of gradient-descent. The set of speech signals {s_{k}[n], k=0, 1, . . . , N_{t}−1} used is known as the training data set which has size N_{t}, and where each s_{k}[n] is a speech signal which is represented as an array containing speech samples. Generally, the primary and alternate optimization procedures include an initialization procedure, a gradient-descent procedure and a stop procedure. During the initialization procedure, an initial window sequence w_{m }is chosen and the PEP of the whole training set is computed, the results of which are denoted as PEP_{0}. PEP_{0 }is computed using the initialization routine of a Levinson-Durbin algorithm. The initial window sequence includes a number of window samples, each denoted by w[n] and can be chosen arbitrarily. During the gradient-descent procedure, the gradient of the PEEN is determined and the window sequence is updated. The gradient of the PEEN is determined with respect to the window sequence w_{m}, using the recursion routine of the Levinson-Durbin algorithm, and the speech signal s_{k }for all speech signals (k←0 to N_{t}−1). The window sequence is updated as a function of the window sequence and a window update increment. The window update increment is generally defined prior to executing the optimization procedure. The stop procedure includes determining if the threshold has been met. The threshold is also generally defined prior to using the optimization procedure and represents an amount of acceptable error. The value chosen to define the threshold is based on the desired accuracy. The threshold is met when the PEP for the whole training set PEP_{m}, determined using window sequence w_{m }for the whole training set, has not decreased substantially with respect to the prior PEP, denoted as PEP_{m−1 }(if M=0 the PEP_{m−1}=0). Whether PEP_{m }has decreased substantially with respect to PEP_{m−1}, is determined by subtracting PEP_{m }from PEP_{m−1 }and comparing the resulting difference to the threshold. If the resulting difference is greater than the threshold, the gradient-descent procedure (including updating the window sequence so that m←m+1) and the stop procedure are repeated until the difference is equal to or less than the threshold. The performance of the optimization procedure for each window sequence, up to and including reaching the threshold, is know as one epoch. In the following description, the subscript m denoting the window sequence to which each equation relates is omitted in places where the omission improves clarity. The primary window optimization procedure is shown in During the initialization procedure 41, an initial window sequence is assumed 42 and the gradient of the PEEN is determined with respect to the initial window (the “initial PEEN”). Generally, the initial window sequence w_{o }is defined as a rectangular window sequence but may be defined as any window sequence, such as a sequence with tapered ends. The step of determining the gradient of the initial PEEN 44 is shown in more detail in Determining the initial autocorrelation values R[0] with respect to each window sample 184 includes determining the initial autocorrelation values as a function of the window sequence and the speech signal as defined by equation (9) for I=0. Once R[0] is determined, J_{o }is determined as a function of R[0], wherein J_{o}=R[0]. The partial derivative of R[0] is then determined in step 186 from known values of the partial derivatives of R[I] which are defined by the following equation:
Referring now to The step of determining the LP coefficients and the partial derivatives of the LP coefficients 64 is shown in more detail in After I is incremented in step 90, the I-order autocorrelation values are determined using equation (9) for each window sample (denoted in equation (9) by the index variable k). Then in step 92, the partial derivatives of the I-order autocorrelation values are determined from the known values defined in equation (13). The step of determining the LP coefficients a_{i }and the partial derivatives of the LP coefficients with respect to each window sample The reflection coefficients and the partial derivatives of reflection coefficients with respect to each window sample are determined in step 100 from equations:
Referring now to
Then, in step 68, the partial derivative of PEEN with respect to each window sample is determined by deriving the derivative of PEEN from the definition of PEEN given in equation (11) and solving for
Referring now to As applied to speech coding, linear prediction has evolved into a rather complex scheme where multiple transformation steps among the LP coefficients are common; some of these steps include bandwidth expansion, white noise correction, spectral smoothing, conversion to line spectral frequency, and interpolation. Under these and other circumstances, it is not feasible to find the gradient using the primary optimization procedure. Therefore, numerical method such as the alternate optimization procedure can be used. The alternate optimization procedure is shown in The gradient-descent procedure 125 includes updating the window sequence 126, determining a new prediction error energy 128, and estimating the gradient of the new prediction error energy 130. The window sequence is updated as a function of the perturbation Δw to create a perturbed window sequence w′[n] defined by the equation:
The prediction error energy is then determined for the perturbed window sequence (the “new prediction error energy”) in step 128. The new prediction error energy is determined as a function of the speech signal and the perturbed window sequence using an autocorrelation method. The autocorrelation method includes relating the new prediction error energy to the autocorrelation values of the speech signal which has been windowed by the perturbed window sequence to obtain a “perturbed autocorrelation values.” The perturbed autocorrelation values are defined by the equation: Estimating the gradient of the new PEEN in step 130 includes determining the partial derivatives of the PEEN with respect to each window sample ∂J/∂w[n_{o}]. These partial derivatives are estimated using an estimation based on the basic definition of a partial derivative. Assuming that a function f(x) is differentiable: The stop procedure includes determining whether a threshold is met 132, and if the threshold is not met, repeating steps 126 through 132 until the threshold is met. Once the partial derivatives of ∂J/∂w[n_{o}] are determined, it is determined whether a threshold has been met. This includes comparing the derivatives of the PEEN obtained for the current window sequence w_{m}[n_{o}] with those of the previous window sequence w_{m−1}[n_{o}]. If the difference between w_{m}[n_{o}] and w_{m−1}[n_{o}] is greater than a previously-defined threshold, the threshold has not been met and the gradient-descent procedure 125 and the stop procedure 27 are repeated until the difference between w_{m}[n_{o}] and w_{m−1}[n_{o}] is less than or equal to the threshold. Implementations and embodiments of the primary and secondary alternate gradient-descent based window optimization algorithms include computer readable software code. These algorithms may be implemented together or independently. Such code may be stored on a processor, a memory device or on any other computer readable storage medium. Alternatively, the software code may be encoded in a computer readable electronic or optical signal. The code may be object code or any other code describing or controlling the functionality described herein. The computer readable storage medium may be a magnetic storage disk such as a floppy disk, an optical disk such as a CD-ROM, semiconductor memory or any other physical object storing program code or associated data. Several experiments were performed to observe the effectiveness of the primary optimization procedure. All experiments share the same training data set which was created using 54 files from the TIMIT database (see J. Garofolo et al, DARPA TIMIT, Acoustic-Phonetic Continuous Speech Corpus CD-ROM, National Institute of Standards and Technology, 1993.) (downsampled to 8 kHz), and with a total duration of approximately three minutes. To evaluate the capability of the optimized window to work for signals outside the training data set, a testing data set was formed using 6 files not included in the training data set with a total duration of roughly 8.4 second. The prediction order M was always set equal to ten. In the first experiment, the primary optimization procedure was applied to initial window sequences having window lengths N of 120, 140, 160, 200, 240, and 300 samples. The total number of training epochs m was defined as 100, and the step size parameter was defined as μ=10^{−9}. The initial window was rectangular for all cases. In addition, the analysis interval was made equal to the synthesis interval and equal to the window length of the window sequence. A second experiment was performed to determine the effects of the position of the synthesis interval. In this experiment a 240-sample analysis interval with reference coordinate nε[0, 239] was used. Five different synthesis intervals were considered, including, I_{1}=[0, 59], I_{2}=[60, 119], I_{3}=[120, 179], I_{4}=[180, 239], and I_{5}=[240, 259]. The first four synthesis intervals are located inside the analysis interval, while the last synthesis interval is located outside the analysis interval. The initial window sequence was a 240-sample rectangular window, and the optimization was performed for 1000 epochs with a step size of μ=10^{−9}. The primary and alternate optimization procedures can be used to optimize the window used in LPA process of the G.723.1 standard to create an improved G.723.1 standard. As previously discussed and illustrated in To improve the G.723.1 standard, its LPA procedure is improved by replacing the single standard Hamming window with one or two windows. When the standard Hamming window is replaced by a single optimized window, the single optimized window windows all the subframes of the speech signal, producing first, second, third and fourth windowed subframes. All these windowed subframes are used to determine optimized unquantized LP coefficients which are used to define an optimized perceptual weighting filter. However, only the optimized unquantized LP coefficients of the fourth subframe are used to determine optimized quantized LP coefficients (also referred to as “optimized synthesis coefficients”) which define an optimized synthesis filter. When the standard Hamming window is replaced by two windows, one or both of the windows may be optimized. Generally, the first window will be used to determine the optimized unquantized LP coefficients used to define the perceptual weighting filter and the second window will be used to determine the optimized unquantized LP coefficients used to determine the quantized LP coefficients. In some embodiments, the first window, which may or may not be optimized, windows the first, second and third subframes, while the second window, which may or may not be optimized, windows the third subframe. All four windowed subframes are used to determine the unquantized LP coefficients used to define the perceptual weighting filter. However, only the fourth windowed subframe is used for determining the quantized LP coefficients. In other embodiments, the first window windows all four subframes producing first, second, third and fourth windowed subframes. The second windows the fourth subframe a second time producing an additional fourth windowed subframe. In these embodiments, the first, second, third and fourth subframes are used to determine the unquantized LP coefficients used to define the perceptual weighting filter. The additional fourth windowed subframe, created by the second window, is used in an additional autocorrelation calculation, to determine the unquantized LP coefficients used to determine the quantized LP coefficients. The embodiments that include replacing the standard Hamming window with two windows are shown in Determining which optimization procedure should be used to create an optimized window depends on how the optimized window will be used, because the primary optimization procedure is only appropriate for creating windows that will be used for relatively simple calculations. Determining the LP coefficients involves computationally simple calculations. However, determining the quantized LP coefficients involves relatively complex calculations such as LSP transformation and interpolation. Therefore, the primary optimization procedure and the alternate optimization procedure can be used to optimize a window for instances where the optimized window will be the only window used or the first window used in determining unquantized LP coefficients. However, the alternate optimization procedure cannot be used to optimize a window if the resulting optimized window will be used to generate unquantized LP coefficients used to determine the quantized LP coefficients. Therefore, in the G.723.1 standard, if the Hamming window is replaced by a single optimized window, the single optimized window may be created using either the primary or alternate optimization procedures. Likewise, if the Hamming window is replace by two windows, the first window can be an optimized window determined by either optimization procedure. However, the second window can only be an optimized window created using the alternate optimization procedure. Improving the G.723.1 standard by replacing the standard Hamming window with a single optimized window can be easily implemented and results in a process similar to that of the known G.723.1 standard, as shown in Determining the optimized quantized LP coefficients generally follows the same procedure as shown in Although, in the embodiment 300 shown in Another embodiment of an improved G.723.1 standard is shown in High pass filtering the speech signal 372 generally includes removing the DC component of the speech signal to create a filtered speech signal as it did in the embodiment shown in The optimized first window may be created using either the primary or alternate optimization procedures. If the optimized first window was created using the primary optimization procedure, the second window can be either a Hamming window or an optimized second window created using the alternate optimization procedure. Alternatively, if the optimized first window was created using the alternate optimization procedure, the second window can be a Hamming window. The optimized first window is used to window the first, second and third filtered subframes of the frames of the speech signal in step 378 to create first, second and third windowed subframes. The second window is used to window the fourth subframe of the speech signal in step 380 to create a fourth windowed subframe. The first, second, third and fourth windowed subframes are then used to determine the optimized unquantized LP coefficients for each subframe as described herein in step 384. In the manner described previously herein in connection with the embodiment replacing the standard Hamming window with a single optimized window, each subframe of each frame is subjected to steps 378 and 384 in series or, alternately, to steps 380 and 384 in series. This is accomplished by initially setting an index “i” equal to one in step 374 to represent the first subframe in a given frame, and increasing the index by one in step 388 after it has been determined that the index does not equal four in step 386, indicating the end of a frame. Alternately, all the subframes in a given frame may first be windowed by the appropriate window and then used to determine the optimized LP coefficients for each subframe in the window. When the index equals four, the optimized quantized LP coefficients are determined using the unquantized LP coefficients of the fourth subframe as generally embodied by steps 390, 392, 394 and 396. Steps 390, 392, 394 and 396 are generally equivalent to the following steps in Another embodiment of an improved G.723.1 standard is shown in High pass filtering the speech signal 332 generally includes removing the DC component of the speech signal to create a filtered speech signal as it did in the embodiments shown in Similar to the embodiments 300 and 370 shown in When the index equals four, the G.723.1 standard determines the optimized quantized LP coefficients. Determining the optimized quantized LP coefficients is generally embodied by steps 350, 352, 354 and 356 and generally equivalent to the following steps in Optimized windows have been developed using the primary and alternate optimization procedures and are shown in
Regardless of whether the optimized window was created using the primary or the alternate optimization procedure, any window with samples that are approximately within a distance d=0.0001 of the optimized window (either w1 or w2) will yield comparable results and thus will also be considered an optimized window. However, even more optimal results will be produced if a window with samples that is approximately within a distance d=0.00001 of the optimized window (either w1 or w2) are used. For the purpose of determining which windows yield comparable results, the distance between two windows d(wa,wb) is defined according to the following equation: To assess the improvement in subjective quality achieved by replacing the Hamming window used by the known G.723.1 standard with an optimized window created with either the primary or alternate optimization procedures, the PESQ scores for a variety of speech coding systems using a variety of window combinations were determined. PESQ scores are a measure of subjective quality that are set forth in the recent ITU-T P.862 perceptual evaluation of speech quality (PESQ) standard (as described in ITU, “Perceptual Evaluation of Speech Quality (PESQ), An Objective Method for End-to-End Speech Quality Assessment of Narrow-Band Telephone Networks and Speech Codecs—ITU-T Recommendation P.862,” Pre-publication, 2001; and Opticom, OPERA: “Your Digital Ear!—User Manual, Version 3.0, 2001”). Five speech coding systems were implemented for comparison, with the differences among them being the particular LPA used, specifically, the windows used and number of times a determination of unquantized LP coefficients was made. The speech coding systems included: Coder 1: The G.723.1 standard according to the standard specifications, wherein only one set of unquantized LP coefficients are calculated using a Hamming window; Coder 2: The G.723.1 speech coding system modified so that two sets of unquantized LP coefficients were calculated, wherein the first set of unquantized LP coefficients were calculated for all four subframes with w1 (the optimized window created using the primary optimization procedure), and the second set of unquantized LP coefficients were calculated for the last subframe only using a Hamming window; Coder 3: The G.723.1 speech coding system modified so that two sets of unquantized LP coefficients were calculated, wherein the first set of unquantized LP coefficients were calculated for all four subframes with a Hamming window and the second set of unquantized LP coefficients were calculated for the last subframe only with w2 (the optimized window created using the alternate optimization procedure); Coder 4: The G.723.1 speech coding system modified so that two sets of unquantized LP coefficients were calculated, wherein the first set of unquantized LP coefficients were calculated for all four subframes with w1, and the second set of unquantized LP coefficients were calculated for the last subframe only with w2; and Coder 5: The G.723.1 speech coding system modified so that two sets of unquantized LP coefficients were calculated, wherein the first set of unquantized LP coefficients were calculated for the first three subframes with w1 and for the last subframe with w2, and the second set of unquantized LP coefficients were calculated for the last subframe only with w2. To evaluate the capability of the optimized windows to work for signals outside the training data set, a testing data set was formed using 6 files which were not included in the training data set which made the total duration of the testing data set approximately 8.4 seconds. The table shown in The table shown in The window optimization algorithms may be implemented in a window optimization device as shown in The interface unit 204 generally includes an input device 214 and an output device 216. The output device 216 is any type of visual, manual, audio, electronic or electromagnetic device capable of communicating information from a processor or memory to a person or other processor or memory. Examples of display devices include, but are not limited to, monitors, speakers, liquid crystal displays, networks, buses, and interfaces. The input device 14 is any type of visual, manual, mechanical, audio, electronic, or electromagnetic device capable of communicating information from a person or processor or memory to a processor or memory. Examples of input devices include keyboards, microphones, voice recognition systems, trackballs, mice, networks, buses, and interfaces. Alternatively, the input and output devices 214 and 216, respectively, may be included in a single device such as a touch screen, computer, processor or memory coupled to the processor via a network. The speech signal may be communicated to the memory device 216 from the input device 214 through the processor 220. Additionally, the optimized window may be communicated from the processor 220 to the display device 212. Although the methods and apparatuses disclosed herein have been described in terms of specific embodiments and applications, persons skilled in the art can, in light of this teaching, generate additional embodiments without exceeding the scope or departing from the spirit of the claimed invention. Patent Citations
Non-Patent Citations
Referenced by
Classifications
Legal Events
Rotate |