Apparatus and method for improved containment of adaptive codebooks in ACELP-type containment employing improved pitch lag estimation - Patents.com

JP7631393B2Active Publication Date: 2025-02-18FRAUNHOFER GESELLSCHAFT ZUR FORDERUNG DER ANGEWANDTEN FORSCHUNG EV
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2023040193
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2014-05-05
Filing Date
2023-03-15
Publication Date
2025-02-18
Estimated Expiration
2034-06-16

Smart Images

  • Figure 0007631393000167
    Figure 0007631393000167
  • Figure 0007631393000168
    Figure 0007631393000168
  • Figure 0007631393000169
    Figure 0007631393000169
Patent Text Reader

Abstract

An apparatus for determining estimated pitch lag for improved containment is provided. An apparatus for determining an estimated pitch lag includes an input interface (110) for receiving a plurality of original pitch lag values ​​and a pitch lag estimator (120) for estimating an estimated pitch lag. The pitch lag estimator (120) estimates the estimated pitch lag based on the plurality of original pitch lag values ​​and a plurality of information values, and assigns one information value from the plurality of information values ​​to each of the plurality of original pitch lag values.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to audio signal processing, in particular speech processing, and more particularly to an apparatus and method for improved concealment of adaptive codebooks in ACELP type concealment (ACELP (Algebraic Code Excited Linear Prediction)). [Background technology]

[0002] Audio signal processing is becoming more and more important. In the field of audio signal processing, containment techniques play an important role. If a frame is lost or corrupted, the lost information from the lost or corrupted frame needs to be replaced. In speech signal processing, pitch information is very important, especially when considering ACELP or ACELP-type speech codecs. Pitch prediction and pulse resynchronization techniques are required.

[0003] Regarding pitch reconstruction, various pitch extrapolation techniques exist in the prior art.

[0004] One of these techniques is the repetition technique: most of the predecessor codecs apply a simple repetition containment approach, which means repeating the last correctly received pitch period before the packet loss until a good frame arrives and new pitch information can be decoded from the bitstream, or they apply a pitch stability logic by selecting the pitch value received some time before the packet loss. Codecs which follow an iterative approach are for example G.719 (see 3GP12a, 6.2.3.1], 3GP12b, 6.2.3.4.2) and AMR-WB+ (ACELP and TCX20 (ACELP-based) containment), (see 3GP09) (AMR=Adaptive Multi-Rate, AMR-WB=Adaptive Multi-Rate-Wideband).

[0005] Another pitch reconstruction technique in the prior art is the generation of pitch from the time domain. For some codecs, the pitch is necessary for containment but is not embedded in the bitstream. Therefore, to calculate the pitch period, the pitch is calculated based on the time domain signal of the previous frame and then kept constant during containment. Codecs that follow this approach are for example G.722, see in particular G.722 Annex 3 (see Non-Patent Document 5 [ITU06a, III.6.6 and III.6.7]) and G.722 Annex 4 (see Non-Patent Document 7 [ITU07, IV.6.1.2.5]).

[0006] Other pitch reconstruction techniques in the prior art rely on extrapolation. Some background codecs implement specific algorithms that apply a pitch extrapolation approach and change the pitch accordingly during packet loss to the extrapolated pitch estimate. These approaches are described in more detail below with reference to G.718 and G.729.1.

[0007] First, consider G.718 (see non-patent document 8 [ITU08a]). An estimation of the future pitch is performed by extrapolation to support the glottal pulse resynchronization module. This information about possible future pitch values ​​is used to synchronize the glottal pulse of the encapsulated excitation.

[0008] Pitch extrapolation is performed only if the last good frame is not "silent". The pitch extrapolation in G.718 is based on the assumption that the encoder has a smooth pitch contour. The extrapolation is done by subtracting the pitch lag d of the last 7 subframes before the erasure. [i] fr This is carried out based on the following:

[0009] In G.718, a history update of the floating pitch value is performed every time a frame is correctly received. For this purpose, the pitch value is updated only if the core mode is other than "silent". In case of a lost frame, the difference between the floating pitch lags d [i] dfr is calculated by the following formula:

[0010]

number

[0011] In formula (1), d [-1] fr denotes the pitch lag of the last (i.e., fourth) subframe of the previous frame, and d [-2] fr denotes the pitch lag of the third subframe of the previous frame, and so on.

[0012] According to G.718, the difference d [i] fr The sum is calculated as follows:

[0013]

number

[0014] Value Δ [i] dfr can be positive or negative, so Δ [i] dfr are summed and the location of the first reversal is indicated by a parameter stored in memory.

[0015] Parameter f corr is obtained by the following formula:

[0016]

number

[0017] where d max = 231 is the maximum expected pitch lag.

[0018] In G.718, the position i showing the maximum absolute difference max is obtained by the following definition:

[0019]

number

[0020] The ratio for this maximum difference is calculated as follows:

[0021]

number

[0022] If this ratio is 5 or more, the pitch of the 4th subframe of the last correctly received frame is used for all subframes to be sealed. If this ratio is 5 or more, this means that the algorithm is not reliable enough to extrapolate this pitch and no glottal pulse resynchronization is performed.

[0023] r max If f is less than 5, further processing is performed to obtain the best possible extrapolation. Three different methods are used to extrapolate the future pitch. To select between the possible pitch extrapolation algorithms, a deviation parameter f cоrr2 This is done by calculating the factor f cоrr , and the position of maximum pitch change i max However, first the average floating pitch difference is modified to remove pitch differences that are too large from the average.

[0024] f cоrr <0.98, i max If = 3, the average fractional pitch difference / Δ dfr is determined by the following formula:

[0025]

number

[0026] f corr ≥ 0.98 or i max If ≠ 3, average fractional pitch difference / Δ dfr is calculated as follows:

[0027]

number

[0028] And the maximum floating pitch difference is replaced by this new average value.

[0029]

number

[0030] With this new average of the floating pitch difference, the normalized deviation f cоrr2 is calculated as follows:

[0031]

number

[0032] Here, I sf is 4 in the first case and 6 in the second case.

[0033] Depending on this new parameter, a choice is made between three methods for extrapolating the future pitch.

[0034] Δ [i] dfr changes sign more than twice (indicating a high pitch change), the first sign reversal is in the last good frame (for i<3), and f cоrr2 >0.945, extrapolated pitch d ext (The extrapolated pitch is T ext (also referred to as the "times-resolved time") is calculated as follows:

[0035]

number

[0036] 0.945 <f cоrr2 <0.99 and Δ i dfr If f changes sign more than once, a weighted average of the fractional pitch differences is taken to extrapolate the pitch. The weighting of the average difference f W is the normalized deviation f cоrr2 and the location of the first sign reversal is defined as:

[0037]

number

[0038] The parameter i in this equation mem is Δ i dfr depends on the location of the first sign reversal of i, so if the first sign reversal occurred between the last two subframes of the past frame, then i mem = 0, and if the first sign reversal occurred between the second and third subframes of the past frame, then i mem = 1, and so on. If the first sign reversal occurs near the end of the last frame, this means that the pitch change was less stable immediately before the lost frame. Therefore, the weighting factor applied to the average will be close to 0, and the extrapolated pitch d ext will be close to the pitch of the fourth subframe of the last good frame.

[0039]

number

[0040] Otherwise, the pitch evolution is considered stable and the extrapolated pitch d ext is determined as follows:

[0041]

number

[0042] After this processing, the pitch lag is limited to the range of 34 to 231 (these values ​​represent the minimum and maximum allowable pitch lag).

[0043] To give another example of extrapolation based on pitch reconstruction techniques, consider now G.729.1 (see Non-Patent Document 6 [ITU06b]).

[0044] G.729.1 features a pitch extrapolation approach (see patent document 1 [Gaо]) in the absence of decodable forward error concealment information (such as phase information), which occurs for example when two consecutive frames are lost (one superframe consists of four frames that can be either ACELP or TCX20), and there are also possible TCX40 or TCX80 frames and almost all combinations thereof.

[0045] Whenever one or more frames are lost in a voiced region, the previous pitch information is used to reconstruct the currently lost frame. The accuracy of the current estimated pitch can directly affect the phase alignment of the original signal and is crucial for the reconstruction quality of the current lost frame and frames received after the lost frame. It is believed that using several past pitch lags rather than simply copying the previous pitch lags results in a statistically better pitch estimate. In the G.729.1 coder, pitch extrapolation for FEC (FEC = Forward Error Correction) consists of a linear extrapolation based on the past five pitch values. The past five pitch values ​​are P(i) (i = 0, 1, 2, 3, 4), where P(4) is the most recent pitch value. The extrapolation model is specified as follows:

[0046]

number

[0047] The extrapolated pitch value for the first subframe in the lost frame is defined as:

[0048]

number

[0049] To determine the coefficients a and b, we minimize the error E, which is defined as:

[0050]

number

[0051] By setting it as follows,

[0052]

number

[0053] a and b will be as follows:

[0054]

number

[0055] In the following, we describe a prior art frame erasure concealment concept for the AMR-WB codec as presented in [MCZ11], which is based on pitch and gain linear prediction. The paper proposes a linear pitch interpolation / extrapolation approach based on the Minimum Mean Square Error Criterion in case of frame loss.

[0056] According to this frame erasure containment concept, at the decoder, if the type of the last valid frame before the erased frame (past frame) is the same as the type of the earliest frame after the erased frame (future frame), a pitch P(i) is defined, i=-N,-N+1,...,0,1,...,N+4,N+5, where N is the number of past and future subframes of the erased frame. P(1), P(2), P(3), P(4) are the four pitches of the four subframes in the erased frame, P(0), (-1),...P(-N) are the pitches of the past subframes, and P(5), P(6),...,P(N+5) are the pitches of the future subframes. A linear prediction model P'(i)=a+b·i is employed. P'(1), P'(2), P'(3), P'(4), for i=1, 2, 3, 4, are the predicted pitches for the erased frames. Taking into account the MMS criterion (MMS=Minimum Mean Square), an interpolation approach is used to generate the values ​​of the two predicted coefficients a and b. According to this approach, the error E is defined as follows:

[0057]

number

[0058] The coefficients a and b can then be obtained by calculating:

[0059]

number

[0060] The pitch lag for the last four subframes of the erased frame can be calculated as follows:

[0061]

number

[0062] It can be seen that the best results are obtained with N=4, which means that 5 subframes from the past and 5 subframes from the future are used for interpolation.

[0063] However, if the type of the past frame is different from the type of the future frame, for example, the past frame is voiced and the future frame is unvoiced, then only the voiced pitch of the past or future frames is used to predict the pitch of the erased frame using the extrapolation approach described above.

[0064] Consider now prior art pulse resynchronisation, with particular reference to G.718 and G.729.1.An approach for pulse resynchronisation is described in US Pat. No. 5,399,321 ([VJGS12]).

[0065] First, constructing the periodic part of the excitation will be described.

[0066] To conceal an erased frame following a correctly received frame other than "silent", the periodic portion of the excitation is constructed by repeating the last low-pass filtered pitch period of the previous frame.

[0067] The construction of the periodic portion is done by using a simple copy of a low-pass filtered segment of the excitation signal from the end of the previous frame. The pitch period length is rounded to the nearest integer.

[0068]

number

[0069] The length of the last pitch period is T p Then, the length of the copied segment is T r can be defined, for example, as follows:

[0070]

number

[0071] The periodic portion consists of one frame and one additional subframe.

[0072] For example, if there are M subframes in a frame, the length of the subframe is L_subfr=L / M, where L is the length of the frame, and L frame Also shown as (L=L frame ).

[0073] FIG. 3 shows a structured periodic portion of an audio signal.

[0074] T[0] is the location of the first maximum pulse in the constructed periodic portion of the excitation. The positions of the other pulses are given by

[0075]

number

[0076] This corresponds to the following formula:

[0077]

number

[0078] After construction of the periodic portion of the excitation, glottal pulse resynchronization is performed to correct for the difference between the estimated target position of the last pulse in the lost frame (P) and its actual position (T[k]) in the constructed periodic portion of the excitation.

[0079] The pitch lag evolution is extrapolated based on the pitch lag of the last seven subframes before the lost frame. The evolved pitch lag in each subframe is:

[0080]

number

[0081] where

[0082]

number

[0083] And T ext (d ext Also called d ext is the extrapolated pitch described above.

[0084] Constant pitch (T c The difference, denoted d, between the sum of the total number of samples in a pitch cycle of p[i] and the sum of the total number of samples in a pitch cycle of the evolving pitch p[i] is found within the frame length. There is no mention in the literature of how to find d.

[0085] In the source code of G.718 (see non-patent document 8 [ITU08a]), d is found using the following algorithm (where M is the number of subframes in a frame): TIFF0007631393000028.tif4492

[0086] The number of pulses in the periodic portion consisting of the frame length range plus the first pulse in the future frame is N. There is no mention in the literature of how to find N.

[0087] In the source code of G.718 (see non-patent document [ITU08a]), N can be found as follows:

[0088]

number

[0089] The position of the last pulse T[n] in the constructed periodic portion of the excitation belonging to the lost frame is determined by the following equation:

[0090]

number

[0091] The estimated final pulse position P is

[0092]

number

[0093] It is.

[0094] The actual position T[k] of the last pulse position is the position of the pulse in the constructed periodic portion of the excitation that is closest to the estimated target position P (including the first pulse after the current frame in the search).

[0095]

number

[0096] Glottal pulse resynchronization is performed by adding or removing samples in the minimum energy region of the full pitch cycle. The number of samples to add or remove is determined by the difference:

[0097]

number

[0098] The minimum energy region is determined using a sliding 5-sample window. The minimum energy position is set to the center of the window where the energy is the smallest. The search is performed between two pitch pulses from T[i]+Tc / 8 to T[i+1]-Tc / 4. N min = n-1 minimum energy regions exist.

[0099] N min If = 1, there is only one minimum energy region and a diff sample is inserted or deleted at that position.

[0100] N min For >1, the samples that are initially added or removed are fewer, and increase towards the end of the frame. The number of samples removed or added between pulses T[i] and T[i + 1] is found according to the following recurrence relation.

[0101]

Number

[0102] If R[i] < R[i - 1], the values of R[i] and R[i - 1] are exchanged.

Prior Art Documents

Patent Documents

[0103]

Patent Document 1

Patent Document 2

Non-Patent Documents

[0104]

Non-Patent Document 1

[0105] It is an object of the present invention to provide an improved concept for audio signal processing, in particular to provide an improved concept for voice processing, and more particularly to provide an improved containment concept.

[0106] The object of the present invention is solved by an apparatus according to claim 1, a method according to claim 15 and a computer program according to claim 16.

[0107] An apparatus for determining an estimated pitch lag is provided, the apparatus including an input interface for receiving a plurality of original pitch lag values ​​and a pitch lag estimator for estimating an estimated pitch lag, the pitch lag estimator configured to estimate the estimated pitch lag based on a plurality of original pitch lag values ​​and a plurality of information values, and for each original pitch lag value of the plurality of original pitch lag values, one information value of the plurality of information values ​​is assigned to the original pitch lag value.

[0108] According to an embodiment, the pitch lag estimator may be configured to estimate the estimated pitch lag, e.g. based on a plurality of original pitch lag values ​​and a plurality of pitch gain values ​​as a plurality of information values, and for each original pitch lag value of the plurality of original pitch lag values, one pitch gain value of the plurality of pitch gain values ​​is assigned to said original pitch lag value.

[0109] In a particular embodiment, each of the multiple pitch gain values ​​may be, for example, an adaptive codebook gain.

[0110] In one embodiment, the pitch lag estimator may be configured to estimate the estimated pitch lag, for example, by minimizing an error function.

[0111] According to an embodiment, the pitch lag estimator may be configured to determine two parameters a, b to estimate the estimated pitch lag, for example by minimizing the following error function:

[0112]

number

[0113] where a is a real number, b is a real number, k is an integer number k≧2, P(i) is the i-th original pitch lag value, and g p (i) is the i-th pitch gain value assigned to the i-th pitch lag value P(i).

[0114] In one embodiment, the pitch lag estimator may be configured to estimate the estimated pitch lag, for example by determining two parameters a, b by minimizing the following error function:

[0115]

number

[0116] where a is a real number, b is a real number, P(i) is the i-th original pitch lag value, and g p (i) is the i-th pitch gain value assigned to the i-th pitch lag value P(i).

[0117] According to an embodiment, the pitch lag estimator may be configured to determine an estimated pitch lag p, for example according to p=a·i+b.

[0118] In an embodiment, the pitch lag estimator may be configured to estimate the estimated pitch lag, for example based on a plurality of original pitch lag values ​​and a plurality of time values ​​as a plurality of information values, and for each original pitch lag value of the plurality of original pitch lag values, one time value of the plurality of time values ​​is assigned to the original pitch lag value.

[0119] According to an embodiment, the pitch lag estimator may be configured to estimate the estimated pitch lag, for example by minimizing an error function.

[0120] In one embodiment, the pitch lag estimator may be configured to estimate the estimated pitch lag, for example by determining two parameters a, b by minimizing the following error function:

[0121]

number

[0122] where a is a real number, b is a real number, k is an integer number k≧2, and p(i) is the i-th original pitch lag value, and time passed (i) is the i-th time value assigned to the i-th pitch lag value P(i).

[0123] According to an embodiment, the pitch lag estimator may be configured to estimate the estimated pitch lag, for example by determining two parameters a, b by minimizing the following error function:

[0124]

number

[0125] where a is a real number, b is a real number, p(i) is the i-th original pitch lag value, and time passed (i) is the i-th time value assigned to the i-th pitch lag value P(i).

[0126] In one embodiment, the pitch lag estimator is configured to determine an estimated pitch lag p according to p=a·i+b.

[0127] Also provided is a method for determining an estimated pitch lag, the method comprising the steps of:

[0128] Steps that receive multiple original pitch lag values A step of estimating an estimated pitch lag.

[0129] The step of estimating the estimated pitch lag is performed based on a plurality of original pitch lag values ​​and a plurality of information values, and for each original pitch lag value of the plurality of original pitch lag values, one information value of the plurality of information values ​​is assigned to the original pitch lag value.

[0130] Furthermore, a computer program is provided for implementing the above method when executed on a computer or signal processor.

[0131] Also provided is an apparatus for reconstructing a frame including an audio signal as a reconstructed frame, the reconstructed frame being related to one or more available frames, the one or more available frames being one or more of the one or more preceding frames of the reconstructed frame and the one or more succeeding frames of the reconstructed frame, the one or more available frames including one or more pitch cycles as the one or more available pitch cycles. The apparatus includes a determination unit for determining a sample number difference indicative of a difference between a number of samples of one of the one or more available pitch cycles and a number of samples of a first pitch cycle to be reconstructed. The apparatus also includes a frame reconstructor for reconstructing the reconstructed frame by reconstructing the first pitch cycle to be reconstructed as the first reconstructed pitch cycle depending on the sample number difference and the one of the one or more available pitch cycles. The frame reconstructor is configured to reconstruct the reconstructed frame such that the reconstructed frame includes the first reconstructed pitch cycle completely or partially, the reconstructed frame includes the second reconstructed pitch cycle completely or partially, and the number of samples of the first reconstructed pitch cycle is different from the number of samples of the second reconstructed pitch cycle.

[0132] According to an embodiment, the determiner is for example adapted to determine a difference in number of samples for each of the plurality of pitch cycles to be reconstructed, whereby the difference in number of samples for each of the pitch cycles indicates a difference between a number of samples of said one of the one or more available pitch cycles and a number of samples of said pitch cycle to be reconstructed. The frame reconstructor may be configured for example to reconstruct each pitch cycle of the plurality of pitch cycles to be reconstructed depending on the difference in number of samples of said pitch cycle to be reconstructed and said one of the one or more available pitch cycles to reconstruct a reconstructed frame.

[0133] In an embodiment, the frame reconstructor may be configured, for example, to generate the intermediate frame based on the one of the one or more available pitch cycles. The frame reconstructor may be configured, for example, to modify the intermediate frame to obtain the reconstructed frame.

[0134] According to an embodiment, the determination unit may be configured to, for example, determine a frame difference value (d;s) indicating how many samples to remove from or add to the intermediate frame. Also, the frame reconstructor may be configured to, for example, remove a first sample from the intermediate frame to obtain a reconstructed frame if the frame difference value indicates that a first sample is to be removed from the frame. Furthermore, the frame reconstructor may be configured to, for example, add a second sample to the intermediate frame to obtain a reconstructed frame if the frame difference value (d;s) indicates that a second sample is to be added to the frame.

[0135] In one embodiment, the frame reconstructor may be configured, for example, to remove a first sample from the intermediate frame if the frame difference value indicates that a first sample should be removed from the frame, such that the number of first samples removed from the intermediate frame is indicated by the frame difference value, and the frame reconstructor may be configured, for example, to add a second sample to the intermediate frame if the frame difference value indicates that a second sample should be added to the frame, such that the number of second samples added to the intermediate frame is indicated by the frame difference value.

[0136] According to an embodiment, the determination unit may for example be configured to determine the frame difference number s such that the following equation is true:

[0137]

number

[0138] where L represents the number of samples in the reconstructed frame, M represents the number of subframes in the reconstructed frame, and T r denote the rounded pitch period length of said one of the one or more available pitch cycles, and p[i] denotes the pitch period length of the reconstructed pitch cycle of the ith subframe of the reconstructed frame.

[0139] In an embodiment, the frame reconstructor may be adapted to generate the intermediate frame, for example, depending on the one of the one or more available pitch cycles. The frame reconstructor may be adapted to generate the intermediate frame, for example, such that the intermediate frame includes a first partial intermediate pitch cycle, one or more further intermediate pitch cycles, and a second partial intermediate pitch cycle. The first partial intermediate pitch cycle may be adapted to depend on one or more samples of the one of the one or more available pitch cycles, each of the one or more further intermediate pitch cycles depending on all of the samples of the one of the one or more available pitch cycles, and the second partial intermediate pitch cycle may be adapted to depend on one or more samples of the one of the one or more available pitch cycles. The determiner may be configured to determine, for example, a start difference number indicating how many samples to remove or add from the first partial intermediate pitch cycle, and the frame reconstructor is configured to remove one or more first samples from the first partial intermediate pitch cycle or add one or more first samples to the first partial intermediate pitch cycle depending on the start difference number. Furthermore, the determiner may be configured to determine for each of the further intermediate pitch cycles a pitch cycle difference number representing, for example, a number of samples to remove from or add to said one of the further intermediate pitch cycles. And the frame reconstructor may be configured to, for example, remove one or more second samples from said one of the further intermediate pitch cycles or add one or more second samples to said one of the further intermediate pitch cycles depending on the pitch cycle difference number. Furthermore, the determiner may be configured to determine, for example, an end difference number representing a number of samples to remove from or add to the second partial intermediate pitch cycle, and the frame reconstructor is configured to remove one or more third samples from or add one or more third samples to the second partial intermediate pitch cycle depending on the end difference number.

[0140] According to an embodiment, the frame reconstructor may be configured to generate the intermediate frame, for example, depending on said one of the one or more available pitch cycles. Also, the determiner may be adapted to determine, for example, one or more low-energy signal portions of the speech signal included by the intermediate frame, each of the one or more low-energy signal portions being a first signal portion of the speech signal in the intermediate frame, the energy of the speech signal being lower than the energy in a second signal portion of the speech signal included by the intermediate frame. Furthermore, the frame reconstructor may be configured to, for example, remove one or more samples from one or more of the one or more low-energy signal portions of the speech signal or add one or more samples to one or more of the one or more low-energy signal portions of the speech signal to obtain the reconstructed frame.

[0141] In a particular embodiment, the frame reconstructor can be configured, for example, to generate an intermediate frame, whereby the intermediate frame includes one or more reconstructed pitch cycles, each of the one or more reconstructed pitch cycles depending on said one of the one or more available pitch cycles. Also, the determiner can be configured, for example, to determine a number of samples to remove from each of the one or more reconstructed pitch cycles. Furthermore, the determiner can be configured, for example, to determine each of the one or more low energy signal portions such that, for each of the one or more low energy signal portions, the number of samples of the low energy signal portion depends on the number of samples to be removed from one of the one or more reconstructed pitch cycles, the low energy signal portion being located within said one of the one or more reconstructed pitch cycles.

[0142] In an embodiment, the determiner may be configured, for example, to determine positions of one or more pulses of the audio signal of a frame to be reconstructed as the reconstructed frame, and the frame reconstructor may be configured, for example, to reconstruct the reconstructed frame depending on the positions of the one or more pulses of the audio signal.

[0143] According to one embodiment, the determination unit may be configured, for example, to determine a position of two or more pulses of an audio signal of a frame to be reconstructed as a reconstructed frame, where T[0] is the position of one of the two or more pulses of the audio signal of the frame to be reconstructed as the reconstructed frame, and the determination unit is configured to determine a position (T[i]) of a further pulse of the two or more pulses of the audio signal according to the following formula:

[0144]

number

[0145] Here, T r denotes the rounded length of one of the one or more available pitch cycles, and i is an integer.

[0146] According to an embodiment, the determining unit may be configured to determine an index k of the last pulse of the audio signal of a frame to be reconstructed as the reconstructed frame, for example according to the following formula:

[0147]

number

[0148] where L denotes the number of samples in the reconstructed frame, s denotes the frame difference value, T[0] denotes the position of the pulse of the speech signal in the frame that should be reconstructed as a different reconstructed frame from the last pulse of the speech signal, and T r denotes the rounded length of one of the one or more available pitch cycles.

[0149] In an embodiment, the determiner may be configured to, for example, reconstruct the frames to be reconstructed as reconstructed frames by determining a parameter δ, where δ is defined by the following equation:

[0150]

number

[0151] Here, the frame to be reconstructed as the reconstructed frame includes M subframes, and T p denotes the length of one of the one or more available pitch cycles, and T ext indicates the length of one of the to-be-reconstructed pitch cycles of the frame to be reconstructed as the reconstructed frame.

[0152] According to an embodiment, the determination unit determines the rounded length T of one of the one or more available pitch cycles based on, for example, the following formula: r The device may be configured to reconstruct the reconstruction frame by determining:

[0153]

number

[0154] Here, T p indicates the length of said one of the one or more available pitch cycles.

[0155] In an embodiment, the decision unit may be configured to reconstruct the reconstruction frame, for example by applying the following formula:

[0156]

number

[0157] Here, T p denotes the length of one of the one or more available pitch cycles, and T r indicates a rounded length of the one of the one or more available pitch cycles, the frame to be reconstructed as a reconstructed frame includes M subframes, the frame to be reconstructed as a reconstructed frame includes L samples, and δ is a real number representing the difference between the number of samples of the one of the one or more available pitch cycles and the number of samples of the one or more pitch cycles to be reconstructed.

[0158] There is also provided a method for reconstructing a frame including an audio signal as a reconstructed frame, the reconstructed frame being associated with one or more available frames, the one or more available frames being one or more of one or more preceding frames of the reconstructed frame and one or more succeeding frames of the reconstructed frame, the one or more available frames including one or more pitch cycles as the one or more available pitch cycles, the method comprising the steps of:

[0159] A sample number difference (Δ ) indicating the difference between the number of samples of one of the one or more available pitch cycles and the number of samples of the first pitch cycle to be reconstructed. p 0;Δ i ;Δ p k+1 ) step.

[0160] Difference in number of samples (Δ p 0;Δ i ;Δ p k+1 ) and a step of reconstructing a reconstructed frame by reconstructing a first pitch cycle to be reconstructed as a first reconstructed pitch cycle based on the sample of the one of the one or more available pitch cycles.

[0161] A reconstruction of the reconstructed frame is performed such that the reconstructed frame includes, completely or partially, a first reconstructed pitch cycle, the reconstructed frame includes, completely or partially, a second reconstructed pitch cycle, and a number of samples of the first reconstructed pitch cycle differs from a number of samples of the second reconstructed pitch cycle.

[0162] Furthermore, a computer program is provided for implementing the above method when executed on a computer or signal processor.

[0163] There is also provided a system for reconstructing a frame containing a speech signal, the system comprising an apparatus for determining an estimated pitch lag according to one of the above and below described embodiments and an apparatus for reconstructing the frame, the apparatus for reconstructing the frame being configured to reconstruct the frame depending on the estimated pitch lag, the estimated pitch lag being the pitch lag of the speech signal.

[0164] In an embodiment, the reconstructed frame is, for example, associated with one or more available frames, the one or more available frames being one or more of the one or more preceding frames of the reconstructed frame and the one or more following frames of the reconstructed frame, and the one or more available frames include one or more pitch cycles as the one or more available pitch cycles. The apparatus for reconstructing a frame may, for example, be an apparatus for reconstructing a frame according to one of the embodiments described above or below.

[0165] The present invention is based on the observation that the prior art has major drawbacks. Both G.718 (see Non-Patent Document 8 [ITU08a]) and G.729.1 (see Non-Patent Document 6 [ITU06b]) use pitch extrapolation in case of frame loss. This is necessary because, when a frame is lost, the pitch lag is also lost. According to G.718 and G.729.1, the pitch is extrapolated by taking into account the pitch evolution between the last two frames. However, the pitch lag reconstructed by G.718 and G.729.1 is not very accurate, e.g. often resulting in a reconstructed pitch lag that is significantly different from the actual pitch lag.

[0166] Embodiments of the present invention provide a more accurate pitch lag reconstruction, and to this end, in contrast to G.718 and G.729.1, some embodiments take into account information regarding the reliability of the pitch information.

[0167] In the prior art, the pitch information on which the extrapolation is based includes the last 8 correctly received pitch lags, for which the coding mode was different from "unvoiced". However, in the prior art, the voicing characteristics indicated by low pitch gains (corresponding to low prediction gains) may be very weak. In the prior art, if the extrapolation is based on pitch lags with different pitch gains, the extrapolation may not produce reasonable results or may not work at all, again reverting to the simple pitch lag repetition approach.

[0168] The embodiments are based on the observation that these drawbacks of the prior art are due to the fact that, at the encoder side, in order to maximize the coding gain of the adaptive codebook, the pitch lag is selected with respect to maximizing the pitch gain, but when the speech characteristics are weak, the pitch lag may not accurately represent the fundamental frequency because noise in the speech signal makes the pitch lag estimation inaccurate.

[0169] Thus, according to an embodiment, during containment, the application of pitch lag extrapolation is weighted depending on the reliability of the previously received lag used for this extrapolation.

[0170] According to some embodiments, the past adaptive codebook gain (pitch gain) may be taken as a measure of reliability.

[0171] According to some other embodiments of the invention, a weighting of how far back the pitch lag was received is used as a measure of reliability, for example more recent lags are given a higher weighting and later received lags are given a lower weighting.

[0172] According to embodiments, a concept of weighted pitch prediction is provided. In contrast to the prior art, the pitch prediction provided by embodiments of the present invention uses a reliability measure for each underlying pitch lag, making the prediction result more valid and stable. In particular, the pitch gain can be used as a reliability indicator. Alternatively or additionally, according to some embodiments, for example, the time elapsed since the correct receipt of a pitch lag can be used as an indicator.

[0173] Regarding pulse resynchronization, the present invention is based on the observation that one of the drawbacks of the prior art for glottal pulse resynchronization is that the pitch extrapolation does not take into account the number of pulses (pitch cycles) that should be constructed in the enclosed frame.

[0174] According to the prior art, pitch extrapolation is performed such that changes in pitch are predicted only at subframe boundaries.

[0175] According to an embodiment, pitch variations that are different from consecutive pitch variations can be taken into account when performing glottal pulse resynchronization.

[0176] The embodiments of the present invention are based on the observation that G.718 and G.729.1 have the following drawbacks:

[0177] First, the prior art assumes that there is an integer number of pitch cycles in a frame when calculating d. Since d defines the location of the last pulse in the containment frame, if a non-integer number of pitch cycles are present in the frame, the location of the last pulse will not be accurate. This is illustrated in Figures 6 and 7. Figure 6 shows the speech signal before sample removal. Figure 7 shows the speech signal after sample removal. Furthermore, the algorithm employed by the prior art to calculate d is inefficient.

[0178] Also, the prior art calculation requires the number of pulses N in the constructed periodic portion of the excitation, which unnecessarily increases the computational complexity.

[0179] Furthermore, in the prior art, the calculation of the number of pulses N in the structured periodic portion of the excitation does not take into account the location of the first pulse.

[0180] The signals presented in Figs. 4 and 5 have a length of T c , and have the same pitch period.

[0181] FIG. 4 shows a speech signal with three pulses in a frame.

[0182] In contrast, FIG. 5 shows a speech signal with only two pulses in a frame.

[0183] These examples shown in Figures 4 and 5 show that the number of pulses depends on the position of the first pulse.

[0184] Also, according to the prior art, even if N is defined to include the first pulse in the subsequent frame, it is checked whether T[N-1], the location of the Nth pulse in the constructed periodic portion of the excitation, is within the frame length.

[0185] Moreover, according to the prior art, no samples are added or removed before the first pulse and after the last pulse. An embodiment of the present invention is based on the observation that this leads to the drawback that a sudden change in the length of the first full pitch cycle can occur, which in turn leads to the drawback that the length of the pitch cycle after the last pulse can be larger than the length of the last full pitch cycle before the last pulse, even when the pitch lag is decreasing (see Figures 6 and 7).

[0186] The embodiment is based on the observation that pulses T[k]=P-diff and T[n]=Pd are not equal if:

[0187] d>[T c / 2]. In this case, diff=T c-d and the number of samples removed is diff instead of d.

[0188] · If T[k] is in a future frame and moves into the current frame for the first time except for d samples.

[0189] If T[n] moves to a future frame after adding -d samples (d<0).

[0190] This leads to incorrect positions of the pulses in the enclosed frame.

[0191] The embodiment is also based on the observation that in the prior art, the maximum value of d is limited to the minimum allowed value of the encoded pitch lag, a constraint that limits the occurrence of other problems, but also limits the possible changes in pitch and limits pulse resynchronization.

[0192] Furthermore, the embodiment is based on the observation that in the prior art, the periodic portion is constructed using integer pitch lags, and this creates a frequency shift of harmonics and a large degradation in the containment of the sound signal at a constant pitch, which can be seen in Figure 8, which shows a time-frequency representation of a speech signal that is resynchronized when using rounded pitch lags.

[0193] The embodiment is also based on the observation that most of the problems of the prior art occur in situations such as those shown in the examples of Figures 6 and 7, where d samples are removed. Here, we consider that there is no constraint on the maximum value of d in order to visualize the problem more easily. The problem also occurs when d has a limit but is not so clearly visualized. Instead of a continuously increasing pitch, it is also possible that the pitch increases suddenly, followed by an abrupt decrease. The embodiment is based on the observation that this occurs due to the fact that samples are not removed before and after the last pulse, and indirectly due to not taking into account that the pulse T[2] moves in the frame after the removal of d samples. In this example, an error in the calculation of N also occurs.

[0194] According to the embodiments, an improved pulse resynchronization concept is provided. The embodiments provide improved containment of mono signals including speech, which is advantageous compared to existing techniques described in standards G.718 (see 3GPP TS 811.1002 (ITU08a)) and G.729.1 (see 3GPP TS 611.1002 (ITU06b)). The present embodiments are suitable for both constant pitch and pitch-varying signals.

[0195] Among other things, three techniques are provided according to the embodiment.

[0196] According to a first technique provided by an embodiment, in contrast to G.718 and G.729.1, a search concept for pulses is provided which takes into account the location of the first pulse in the calculation of the number of pulses in a constructed periodic portion, denoted N.

[0197] According to a second technique provided by another embodiment, in contrast to G.718 and G.729.1, an algorithm for searching for a pulse is provided which does not require the number of pulses in the constructed periodic portion, denoted N, but takes into account the location of the first pulse and directly calculates the last pulse index in the containment frame, denoted k.

[0198] Another embodiment provides a third technique that does not require a pulse search and is less complex than the previous techniques by combining the construction of periodic portions with the removal or addition of samples.

[0199] Additionally or alternatively, some embodiments provide the following modifications to the above techniques as well as those of G.718 and G.729.1.

[0200] The fractional part of the pitch lag can be used, for example, to construct the periodic part for a signal of constant pitch.

[0201] An offset of the expected location of the last pulse in the containment frame may be calculated, for example, for non-integer number of pitch cycles within the frame.

[0202] For example, you can add or remove samples before the first pulse and after the last pulse.

[0203] For example, you can add or remove samples even if you only have one pulse.

[0204] The number of samples to remove or add can be varied linearly, for example according to an expected linear change in pitch.

[0205] Hereinafter, embodiments of the present invention will be described in more detail with reference to the drawings. [Brief description of the drawings]

[0206] [Figure 1] FIG. 1 illustrates an apparatus for determining an estimated pitch lag according to an embodiment. [Figure 2A] FIG. 2A illustrates an apparatus for reconstructing a frame including an audio signal as a reconstructed frame according to an embodiment. [Figure 2B] FIG. 2B is a diagram showing an audio signal including a number of pulses. [Figure 2C] FIG. 2C illustrates a system for reconstructing frames containing an audio signal according to an embodiment. [Diagram 3] FIG. 3 shows a diagram of structured periodic portions of an audio signal. [Figure 4] FIG. 4 shows a speech signal having three pulses in a frame. [Diagram 5] FIG. 5 shows an audio signal having two pulses in a frame. [Figure 6] FIG. 6 shows an audio signal before removal of samples. [Figure 7] FIG. 7 shows the audio signal of FIG. 6 after removal of the samples. [Figure 8] FIG. 8 shows a time-frequency representation of an audio signal that has been resynchronized using a rounded pitch lag. [Figure 9] FIG. 9 illustrates a time-frequency representation of an audio signal that has been resynchronized using a non-rounded pitch lag with a fractional part. [Figure 10] FIG. 10 is a diagram showing a pitch lag diagram in which the pitch lag is reconstructed by employing the concept of the base technology. [Figure 11] FIG. 11 illustrates a pitch lag diagram in which the pitch lag is reconstructed according to an embodiment. [Figure 12] FIG. 12 shows an audio signal before removing samples. [Figure 13] FIG. 13 illustrates the audio signal of FIG. 12 additionally showing Δ0 through Δ3. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0207] 1 shows an apparatus for determining an estimated pitch lag according to an embodiment. The apparatus includes an input interface 110 for receiving a plurality of original pitch lag values ​​and a pitch lag estimator 120 for estimating an estimated pitch lag. The pitch lag estimator 120 is configured to estimate the estimated pitch lag based on a plurality of original pitch lag values ​​and a plurality of information values, and for each original pitch lag value of the plurality of original pitch lag values, one information value of the plurality of information values ​​is assigned to the original pitch lag value.

[0208] According to an embodiment, pitch lag estimator 120 may be configured to estimate the estimated pitch lag, for example, based on a plurality of original pitch lag values ​​and a plurality of pitch gain values ​​as a plurality of information values, where for each original pitch lag value of the plurality of original pitch lag values, one pitch gain value of the plurality of pitch gain values ​​is assigned to said original pitch lag value.

[0209] In particular embodiments, each of the multiple pitch gain values ​​may be, for example, an adaptive codebook gain.

[0210] In one embodiment, pitch lag estimator 120 may be configured to estimate the estimated pitch lag, for example, by minimizing an error function.

[0211] According to an embodiment, pitch lag estimator 120 may be configured to estimate the estimated pitch lag by, for example, minimizing the following error function to determine two parameters a, b:

[0212]

number

[0213] where a is a real number, b is a real number, k is an integer number k≧2, P(i) is the i-th original pitch lag value, and g p (i) is the i-th pitch gain value assigned to the i-th pitch lag value P(i).

[0214] In one embodiment, the pitch lag estimator 120 may be configured to estimate the estimated pitch lag, for example, by minimizing the following error function to determine two parameters a, b:

[0215]

number

[0216] where a is a real number, b is a real number, P(i) is the i-th original pitch lag value, and g p (i) is the i-th pitch gain value assigned to the i-th pitch lag value P(i).

[0217] According to an embodiment, pitch lag estimator 120 may be configured to determine an estimated pitch lag p according to, for example, p=a·i+b.

[0218] In an embodiment, the pitch lag estimator 120 may be configured to estimate the estimated pitch lag, for example, based on a plurality of original pitch lag values ​​and a plurality of time values ​​as a plurality of information values, and for each original pitch lag value among the plurality of original pitch lag values, one time value among the plurality of time values ​​is assigned to the original pitch lag value.

[0219] According to an embodiment, pitch lag estimator 120 may be configured to estimate the estimated pitch lag, for example, by minimizing an error function.

[0220] In one embodiment, the pitch lag estimator 120 may be configured to estimate the estimated pitch lag, for example, by minimizing the following error function to determine two parameters a, b:

[0221]

number

[0222] where a is a real number, b is a real number, k is an integer number k≧2, and P(i) is the i-th original pitch lag value, and time passed (i) is the i-th time value assigned to the i-th pitch lag value P(i).

[0223] According to an embodiment, the pitch lag estimator 120 may be configured to estimate the estimated pitch lag, for example, by minimizing the following error function to determine two parameters a, b:

[0224]

number

[0225] where a is a real number, b is a real number, P(i) is the i-th original pitch lag value, and time passed(i) is the i-th time value assigned to the i-th pitch lag value P(i).

[0226] In one embodiment, pitch lag estimator 120 is configured to determine an estimated pitch lag p according to p=a·i+b.

[0227] In the following, an embodiment for performing weighted pitch prediction is described with reference to equations (20) to (24b).

[0228] First, weighted pitch prediction embodiments employing pitch gain weighting will be described with reference to equations (20) to (22c). Some of these embodiments weight the pitch lag with the pitch gain to perform pitch prediction in order to overcome the shortcomings of the prior art.

[0229] In some embodiments, the pitch gain is the adaptive codebook gain g p (See non-patent document 10 [ITU12], in particular chapter 3.7.3, and more precisely equation (43)). In G.729, the adaptive codebook gain is determined according to:

[0230]

number

[0231] where x(n) is the target signal and y(n) is obtained by convolving v(n) with h(n) as follows:

[0232]

number

[0233] where v(n) is the adaptive codebook vector, y(n) is the filtered adaptive codebook vector, and h(n) is the impulse response of the weighted synthesis filter defined in G.729 (see Non-Patent Document 10 [ITU12]).

[0234] Similarly, in some embodiments, the pitch gain is determined by the adaptive codebook gain g p (See non-patent document 8 [ITU08a], in particular chapter 6.8.4.1.4.1, and more specifically equation (170)). In G.718, the adaptive codebook gain is determined as follows:

[0235]

number

[0236] where x(n) is the target signal and y k (n) is the past filtered excitation at delay k.

[0237] For example, for the definition, y k See [ITU08a], chapter 6.8.4.1.4.1, equation (171) for how (n) can be defined.

[0238] Similarly, in some embodiments, the pitch gain is determined by the adaptive codebook gain g p (see Non-Patent Document 3 [3GP12b]) is possible, and the adaptive codebook gain g p is defined as follows:

[0239]

number

[0240] where y(n) is the filtered adaptive codebook vector.

[0241] In some embodiments, the pitch lag may be weighted, for example, with a pitch gain before making the pitch prediction.

[0242] For this purpose, according to one embodiment, a second buffer of length 8 may be introduced, for example, holding the pitch gain taken on the same subframe as the pitch lag. In one embodiment, the buffer may be updated using exactly the same rules as for the pitch lag update. One possible implementation is to update both buffers (holding pitch lag and pitch gain for the last 8 subframes) at the end of each frame, regardless of whether that frame is error-free or error-prone.

[0243] Two different prediction strategies are known from the prior art, which can be enhanced to use weighted pitch prediction.

[0244] Some embodiments provide a significant inventive improvement over the prediction strategy of the G.718 standard. In G.718, in the case of a packet loss, the buffers can be multiplied together element-wise to weight the pitch lag with a high factor if the associated pitch gain is high, and with a low factor if the associated pitch gain is low. Pitch prediction is then performed as usual, according to G.718 (for more details on G.718, see 3GPP [ITU08a, section 7.11.1.3]).

[0245] Some embodiments provide a significant inventive improvement over the prediction strategy of the G.729.1 standard: the algorithm used in G.729.1 to predict pitch (see 3GPP [ITU06b] for details on G.729.1) is modified according to embodiments to use weighted prediction.

[0246] According to some embodiments, the goal is to minimize the following error function:

[0247]

number

[0248] where g p Let (i) hold the pitch gain from the past subframe, and P(i) hold the corresponding pitch lag.

[0249] In the formula (20) of the present invention, g p (i) represents the weighting factor. In the above example, each g p (i) represents the pitch gain from one of the past subframes.

[0250] Below are described equations according to an embodiment, which describe how to generate factors a and b that can be used to predict the pitch lag by a+i·b, where i is the subframe number of the subframe to be predicted.

[0251] For example, to obtain the first predicted subframe based on predictions for the last five subframes P(0), . . . , P(4), the predicted pitch value P(5) may be considered as follows:

[0252]

number

[0253] To generate the coefficients a and b, for example, an error function can be generated (derived) and set to zero.

[0254]

number

[0255] The prior art does not disclose employing the weighting of the present invention provided by the embodiment. In particular, the prior art does not disclose the weighting factor g p (i) has not been adopted.

[0256] Thus, the weighting factor g p In the prior art that does not employ (i), one would generate an error function and set the derivative of the error function to zero, which would result in the following:

[0257]

number

[0258] (Non-Patent Document 6 [ITU06b, see 7.6.5]).

[0259] In contrast, the weighted prediction approach of the embodiment, e.g., weighting factor g p Using the weighted prediction approach of equation (20) in (i), a and b become:

[0260]

number

[0261] According to certain embodiments, A, C, D; E, F, G, H, I, J and K may have the following values, for example:

[0262]

number

[0263] 10 and 11 show the superior performance of the proposed pitch extrapolation.

[0264] Here, Fig. 10 shows a pitch lag diagram when the pitch lag is reconstructed by adopting the concept of the base technology, whereas Fig. 11 shows a pitch lag diagram when the pitch lag is reconstructed according to the embodiment.

[0265] In particular, FIG. 10 shows the performance of prior art standards G.718 and G729.1, and FIG. 11 shows the performance of the concept provided by the embodiment.

[0266] The horizontal axis represents the subframe number. The solid line 1010 represents the encoder pitch lag that is embedded in the bitstream and is lost in the area of ​​the grey segment 1030. The left vertical axis represents the pitch lag axis. The right vertical axis represents the pitch gain axis. The solid line 1010 represents the pitch lag, and the dashed lines 1021, 1022, 1023 represent the pitch gain.

[0267] The grey rectangle 1030 indicates a frame loss. Due to the frame loss that occurred in the area of ​​the grey segment 1030, information about the pitch lag and pitch gain in this area is not available at the decoder side and needs to be reconstructed.

[0268] In Figure 10, the pitch lag that is contained using the G.718 standard is indicated by dashed-dotted portion 1011. The pitch lag that is contained using the G.729.1 standard is indicated by solid portion 1012. It can be clearly seen that the use of the provided pitch prediction (Figure 11, solid portion 1013) essentially accommodates the lost encoder pitch lag and is advantageous over the G.718 and G729.1 techniques.

[0269] In the following, an embodiment employing weighting dependent on elapsed time will be described with reference to equations (23a) to (24b).

[0270] To overcome the shortcomings of the prior art, some embodiments apply a time weighting to the pitch lag before performing pitch prediction. The application of the time weighting may be performed by minimizing the following error function:

[0271]

number

[0272] Here, time passed (i) represents the inverse of the amount of time that has elapsed since correctly receiving a pitch lag, and P(i) holds the corresponding pitch lag.

[0273] Some embodiments may, for example, give higher weight to more recent lags and lower weight to earlier received lags.

[0274] According to some embodiments, equation (21a) can then be employed to generate a and b.

[0275] To obtain the first predicted subframe, in some embodiments, a prediction may be made based on, for example, the last five subframes P(0), ...P(4). Then, for example, a predicted pitch value P(5) may be obtained as follows:

[0276]

number

[0277] For example, if you have the following:

[0278]

number

[0279] (time weighting according to subframe delay), which can be considered as follows:

[0280]

number

[0281] In the following, embodiments are described that provide pulse resynchronization.

[0282] 2a shows an apparatus for reconstructing a frame including an audio signal as a reconstructed frame according to an embodiment, the reconstructed frame being related to one or more available frames, the one or more available frames being at least one of one or more preceding frames of the reconstructed frame and one or more succeeding frames of the reconstructed frame, the one or more available frames including one or more pitch cycles as the one or more available pitch cycles.

[0283] The apparatus further comprises a sample number difference (ΔP) indicating a difference between a number of samples of one of the one or more available pitch cycles and a number of samples of the first pitch cycle to be reconstructed. p 0;Δ i ;Δ p k+1 ) determining unit 210 for determining

[0284] In addition, the device is designed to detect the difference in the number of samples (Δ p 0;Δ i ;Δ p k+1 ) and a frame reconstructor for reconstructing a reconstructed frame by reconstructing a first pitch cycle to be reconstructed as a first reconstructed pitch cycle based on the sample of the one of the one or more available pitch cycles.

[0285] The frame reconstructor 220 is configured to reconstruct a reconstructed frame such that the reconstructed frame includes a first reconstructed pitch cycle, either fully or partially, and the reconstructed frame includes a second reconstructed pitch cycle, either fully or partially, and a number of samples of the first reconstructed pitch cycle is different from a number of samples of the second reconstructed pitch cycle.

[0286] The reconstruction of a pitch cycle is performed by reconstructing some or all of the samples of the pitch cycle to be reconstructed. If the pitch cycle to be reconstructed is completely contained in a lost frame, for example, it may be necessary to reconstruct all of the samples of the pitch cycle. If some of the samples of the pitch cycle are available, such as if the pitch cycle to be reconstructed is only partially contained by the lost frame and is contained in another frame, it may be sufficient to reconstruct the samples of the pitch cycle contained by the lost frame in order to reconstruct the pitch cycle.

[0287] Figure 2b illustrates the functionality of the device of figure 2a. Figure 2b illustrates, in particular, an audio signal 222 comprising pulses 211, 212, 213, 214, 215, 216 and 217.

[0288] A first portion of the audio signal 222 is encompassed by frame n-1. A second portion of the audio signal 222 is encompassed by frame n. A third portion of the audio signal 222 is encompassed by frame n+1.

[0289] In Figure 2b, frame n-1 precedes frame n and frame n+1 follows frame n, which means that frame n-1 contains a portion of the audio signal that occurs earlier in time than the portion of the audio signal of frame n, and frame n+1 contains a portion of the audio signal that occurs later in time than the portion of the audio signal of frame n.

[0290] In the example of FIG. 2b, assume that frame n is lost or corrupted, so only the frame preceding frame n (the “previous frame”) and the frame following frame n (the “following frame”) are available (the “available frames”).

[0291] For example, a pitch cycle can be defined as follows: a pitch cycle begins in the speech signal with one of pulses 211, 212, 213, etc., and ends with the immediately following pulse. For example, pulses 211 and 212 define pitch cycle 201. Pulses 212 and 213 define pitch cycle 202. Pulses 213 and 214 define pitch cycle 203, and so on.

[0292] Other definitions of the pitch cycle known to those skilled in the art that employ other starting and ending points for the pitch cycle may alternatively be considered.

[0293] In the example of Figure 2b, frame n is not available or has been corrupted at the receiver. Thus, the receiver knows about pulses 211 and 212 and pitch cycle 201 of frame n-1. In addition, the receiver knows about pulses 216 and 217 and pitch cycle 206 of frame n+1. However, it needs to reconstruct frame n, which includes pulses 213, 214, and 215, completely includes pitch cycles 203 and 204, and partially includes pitch cycles 204 and 205.

[0294] According to some embodiments, frame n may be reconstructed relying on samples of one or more pitch cycles ("available pitch cycles") of available frames (e.g., previous frame n-1 or subsequent frame n+1). For example, samples of pitch cycle 201 of frame n-1 may be repeatedly copied periodically to reconstruct samples of a lost or corrupted frame. By repeatedly copying samples of a pitch cycle, the pitch cycle itself is copied, e.g., for pitch cycle c, we have:

[0295]

number

[0296] In an embodiment, samples from the end of frame n-1 are copied. The length of the copied portion of the n-1th frame is equal (or nearly equal) to the length of the pitch cycle 201. However, samples from both 201 and 202 are used for copying. This needs to be considered especially carefully if there is only one pulse in the n-1th frame.

[0297] In some embodiments, the copied samples are modified.

[0298] The invention is also based on the observation that if the size of the pitch cycle (pitch cycles 202, 203, 204 and 205) contained (completely or partially) by the lost frame (n) differs from the size of the available pitch cycle (here pitch cycle 201) that was copied, then the cyclically repeated copying of pitch cycle samples will result in pulses 213, 214 and 215 of the lost frame n being shifted to wrong positions.

[0299] For example, in FIG. 2b, the difference between pitch cycle 201 and pitch cycle 202 is denoted as Δ1, the difference between pitch cycle 201 and pitch cycle 203 is denoted as Δ2, the difference between pitch cycle 201 and pitch cycle 204 is denoted as Δ3, and the difference between pitch cycle 201 and pitch cycle 205 is denoted as Δ4.

[0300] 2b, it can be seen that pitch cycle 201 in frame n-1 is significantly larger than pitch cycle 206. Also, pitch cycles 202, 203, 204, and 205, which are contained (partially or completely) in frame n, are each smaller than pitch cycle 201 and larger than pitch cycle 206. Furthermore, pitch cycles closer to larger pitch cycle 201 (e.g., pitch cycle 202) are larger than pitch cycles closer to smaller pitch cycle 206 (e.g., pitch cycle 205).

[0301] Based on these findings of the invention, according to an embodiment, the frame reconstructor 220 is configured to reconstruct the reconstructed frame such that the number of samples of the first reconstructed pitch cycle differs from the number of samples of the second reconstructed pitch cycle that are partially or completely included in the reconstructed frame.

[0302] For example, according to some embodiments, the reconstruction of a frame relies on a difference in a number of samples indicating the difference between the number of samples of one of one or more available pitch cycles (e.g., pitch cycle 201) and the number of samples of the first pitch cycle to be reconstructed (e.g., pitch cycles 202, 203, 204, 205, etc.).

[0303] For example, according to one embodiment, samples of pitch cycle 201 may be copied repeatedly, eg, periodically.

[0304] The difference in the number of samples then indicates how many samples to remove from, or how many samples to add to, the cyclically repeated copy corresponding to the first pitch cycle to be reconstructed.

[0305] In FIG. 2b, each sample number indicates how many samples to remove from the periodically repeated copy. However, in other examples, the sample number may indicate how many samples to add to the periodically repeated copy. For example, in some embodiments, a sample may be added by adding a zero amplitude sample to the corresponding pitch cycle. In other embodiments, a sample may be added to a pitch cycle, for example, by copying another sample of the pitch cycle, for example, by copying a sample adjacent to the position of the sample to be added.

[0306] While the above describes an embodiment in which samples of the pitch cycle of a frame preceding a lost or corrupted frame are copied repeatedly in a cyclical fashion, in other embodiments samples of the pitch cycle of a frame following a lost or corrupted frame are copied repeatedly in a cyclical fashion to reconstruct the lost frame, and the same principles described above and below apply equally well.

[0307] Such a sample count difference may be determined for each pitch cycle to be reconstructed, and the sample count difference for each pitch cycle then indicates how many samples to remove from or add to the periodically repeated copy corresponding to the corresponding pitch cycle to be reconstructed.

[0308] According to an embodiment, the determiner 210 may be configured, for example, to determine a difference in number of samples for each of the plurality of pitch cycles to be reconstructed, such that the difference in number of samples for each of the pitch cycles indicates a difference between a number of samples of said one of one or more available pitch cycles and a number of samples of said pitch cycle to be reconstructed. The frame reconstructor 220 may be configured, for example, to reconstruct each pitch cycle of the plurality of pitch cycles to be reconstructed depending on the difference in number of samples of said pitch cycle to be reconstructed and said one of one or more available pitch cycles in order to reconstruct a reconstructed frame.

[0309] In an embodiment, the frame reconstructor 220 may be configured, for example, to generate the intermediate frame based on the one of the one or more available pitch cycles. The frame reconstructor 220 may be configured, for example, to modify the intermediate frame to obtain the reconstructed frame.

[0310] According to an embodiment, the determination unit 210 may be configured to determine, for example, a frame difference value (d;s) indicating how many samples to remove from or add to the intermediate frame. Also, the frame reconstructor 220 may be configured to, for example, remove a first sample from the intermediate frame to obtain a reconstructed frame if the frame difference value indicates that a first sample is to be removed from the frame. Furthermore, the frame reconstructor 220 may be configured to, for example, add a second sample to the intermediate frame to obtain a reconstructed frame if the frame difference value (d;s) indicates that a second sample is to be added to the frame.

[0311] In one embodiment, the frame reconstructor 220 can be configured to, for example, remove a first sample from the intermediate frame if the frame difference value indicates that a first sample should be removed from the intermediate frame, such that the number of first samples removed from the intermediate frame is indicated by the frame difference value, and can be configured to, for example, add a second sample to the intermediate frame if the frame difference value indicates that a second sample should be added to the frame, such that the number of second samples added to the intermediate frame is indicated by the frame difference value.

[0312] According to an embodiment, the determining unit 210 may be configured to determine the frame difference number s, for example, such that the following equation is true:

[0313]

number

[0314] where L represents the number of samples in the reconstructed frame, M represents the number of subframes in the reconstructed frame, and T rdenote the rounded pitch period length of said one of the one or more available pitch cycles, and p[i] denotes the pitch period length of the reconstructed pitch cycle of the ith subframe of the reconstructed frame.

[0315] In an embodiment, the frame reconstructor 220 may be adapted to generate the intermediate frame, for example, based on the one of the one or more available pitch cycles. The frame reconstructor 220 may also be adapted to generate the intermediate frame, for example, such that the intermediate frame includes a first partial intermediate pitch cycle, one or more further intermediate pitch cycles, and a second partial intermediate pitch cycle. Furthermore, the first partial intermediate pitch cycle may for example be based on one or more samples of the one of the one or more available pitch cycles, each of the one or more further intermediate pitch cycles being based on all of the samples of the one of the one or more available pitch cycles, and the second partial intermediate pitch cycle being based on one or more samples of the one or more available pitch cycles. Also, the determination unit 210 may be configured to, for example, determine a start difference number indicating how many samples to remove or add from the first partial intermediate pitch cycle, and the frame reconstructor 220 may be configured to remove one or more first samples from the first partial intermediate pitch cycle or add one or more first samples to the first partial intermediate pitch cycle depending on the start difference number. Furthermore, the determination unit 210 may be configured to, for example, determine a pitch cycle difference number for each further intermediate pitch cycle indicating how many samples to remove or add from said one of the further intermediate pitch cycles. Also, the frame reconstructor 220 may be configured to, for example, remove one or more second samples from said one of the further intermediate pitch cycles or add one or more second samples to said one of the further intermediate pitch cycles depending on the pitch cycle difference number. Further, the determination unit 210 can be configured, for example, to determine an end difference number representing how many samples to remove or add from the second partial intermediate pitch cycle, and the frame reconstruction unit 220 is configured to remove one or more third samples from the second partial intermediate pitch cycle or add one or more third samples to the second partial intermediate pitch cycle based on the end difference number.

[0316] According to an embodiment, the frame reconstructor 220 may be configured to generate the intermediate frame, for example, depending on the one of the one or more available pitch cycles. The determiner 210 may also be configured to determine, for example, one or more low-energy signal portions of the speech signal included by the intermediate frame, each of the one or more low-energy signal portions being a first signal portion of the speech signal in the intermediate frame, the energy of the speech signal being lower than the energy in a second signal portion of the speech signal included by the intermediate frame. Furthermore, the frame reconstructor 220 may be configured to, for example, remove one or more samples from one or more of the one or more low-energy signal portions of the speech signal or add one or more samples to one or more of the one or more low-energy signal portions of the speech signal to obtain the reconstructed frame.

[0317] In a particular embodiment, the frame reconstructor 220 can be configured to generate an intermediate frame, for example, whereby the intermediate frame includes one or more reconstructed pitch cycles, each of the one or more reconstructed pitch cycles depending on said one of the one or more available pitch cycles. Also, the determiner 210 can be configured to determine, for example, a number of samples to remove from each of the one or more reconstructed pitch cycles. Furthermore, the determiner 210 can be configured to determine, for example, each of the one or more low energy signal portions, such that for each of the one or more low energy signal portions, a number of samples of the low energy signal portion depends on a number of samples to be removed from one of the one or more reconstructed pitch cycles, the low energy signal portion being located within said one of the one or more reconstructed pitch cycles.

[0318] In an embodiment, the determiner 210 may be configured to, for example, determine a position of one or more pulses of the audio signal of a frame to be reconstructed as the reconstructed frame, and the frame reconstructor 220 may be configured to, for example, reconstruct the reconstructed frame depending on the position of one or more pulses of the audio signal.

[0319] According to one embodiment, the determination unit 210 may be configured, for example, to determine the position of two or more pulses of an audio signal of a frame to be reconstructed as a reconstructed frame, where T[0] is the position of one of the two or more pulses of the audio signal of the frame to be reconstructed as the reconstructed frame, and the determination unit 210 is configured to determine the position of a further pulse (T[i]) of the two or more pulses of the audio signal according to the following formula:

[0320]

number

[0321] Here, T r denotes the rounded length of one of the one or more available pitch cycles, and i is an integer.

[0322] According to an embodiment, the determining unit 210 may be configured to determine an index k of the last pulse of the audio signal of a frame to be reconstructed as a reconstructed frame, for example according to the following formula:

[0323]

number

[0324] where L denotes the number of samples in the reconstructed frame, s denotes the frame difference value, T[0] denotes the position of the pulse of the speech signal in the frame to be reconstructed as the reconstructed frame, which is different from the last pulse of the speech signal, and T r denotes the rounded length of one of the one or more available pitch cycles.

[0325] In an embodiment, the determination unit 210 may be configured to, for example, reconstruct the frames to be reconstructed as reconstructed frames by determining a parameter δ, where δ is defined by the following equation:

[0326]

number

[0327] Here, the frame to be reconstructed as the reconstructed frame includes M subframes, and T p denotes the length of one of the one or more available pitch cycles, and T ext indicates the length of one of the to-be-reconstructed pitch cycles of the frame to be reconstructed as the reconstructed frame.

[0328] According to an embodiment, the determination unit 210 determines the rounded length T of one of the one or more available pitch cycles based on, for example, the following formula: r The device may be configured to reconstruct the reconstruction frame by determining:

[0329]

number

[0330] Here, T p indicates the length of said one of the one or more available pitch cycles.

[0331] In an embodiment, the decision unit 210 may be configured to reconstruct the reconstructed frame, for example by applying the following formula:

[0332]

number

[0333] Here, T p denotes the length of one of the one or more available pitch cycles, and T rindicates a rounded length of the one of the one or more available pitch cycles, the frame to be reconstructed as a reconstructed frame includes M subframes, the frame to be reconstructed as a reconstructed frame includes L samples, and δ is a real number representing the difference between the number of samples of the one of the one or more available pitch cycles and the number of samples of the one or more pitch cycles to be reconstructed.

[0334] The embodiments will now be described in more detail.

[0335] In the following, a first group of pulse resynchronization embodiments will be described with reference to equations (25) to (63).

[0336] In these embodiments, if there is no change in pitch, the last pitch lag is used without rounding and keeps its fractional part. The periodic portion is constructed using a fractional pitch and interpolation, e.g., as in [MTTA90]. This significantly improves the containment of constant pitch sounds or voiced signals, since it reduces the frequency shift of harmonics compared to using rounded pitch lags.

[0337] This effect is illustrated by Figures 8 and 9, where a signal representing a pitch lag with frame loss is contained using rounded and non-rounded fractional pitch lags, respectively, where Figure 8 shows a time-frequency representation of a resynchronized speech signal using a rounded pitch lag, and in contrast, Figure 9 shows a time-frequency representation of a resynchronized speech signal using a non-rounded pitch lag with a fractional part.

[0338] Using fractional parts of the pitch would increase the computational complexity, but since there is no need for glottal pulse resynchronization this should not impact the worst case computational complexity.

[0339] If there is no predicted pitch change, then the processing described below need not be performed.

[0340] When a change in pitch is expected, the embodiment described with reference to equations (25) to (63) may be used to achieve a constant pitch (T c ) and the sum of the total number of samples in a pitch cycle with the evolved pitch p[i].

[0341] In the following, T c is defined as in equation (15a). That is, T c =round(last_pitch).

[0342] According to an embodiment, the difference d can be determined using a faster and more accurate algorithm, as described below (Fast Algorithm Approach for Determining d).

[0343] Such an algorithm may be based, for example, on the following principles:

[0344] In each subframe i, (length T c For each pitch cycle, T c -p[i] Samples need to be removed (or T c - If p[i]<0, then p[i]-T c must be added).

[0345] Each subframe has (L_subfr) / T c There is a pitch cycle.

[0346] Therefore, each subframe (T c -p[i]), (L_subfr) / T c The sample needs to be removed. TIFF0007631393000070.tif68154

[0347] According to some other embodiments, rounding is performed. For an integer pitch, where M is the number of subframes in a frame, d is defined as:

[0348]

number

[0349] According to an embodiment, an algorithm is provided for calculating d accordingly. TIFF0007631393000072.tif28135

[0350] In another embodiment, the last line of the algorithm is replaced with the following:

[0351] d=(short)floor(L_frame-ftmp*(float)L_subfr / T c +0.5); According to an embodiment, the last pulse T[n] is found according to the following formula:

[0352]

number

[0353] According to one embodiment, a formula for calculating N is adopted. This formula is obtained from equation (26) according to:

[0354]

number

[0355] And the last pulse has index N-1.

[0356] According to this formula, N can be calculated for the example shown in FIG.

[0357] In the following, a concept is described that does not involve an explicit search for the last pulse, but takes into account the position of the pulse, which does not require N as the last pulse index in the constructed periodic portion.

[0358] The position of the actual last pulse (T[k]) in the constructed periodic portion of the excitation determines the number of full pitch cycles k, over which samples are removed (or added).

[0359] 12 shows the position T[2] of the last pulse before removing d samples. For the embodiment described with reference to equations (25) to (63), reference numeral 1210 denotes d.

[0360] In the example of FIG. 12, the index of the last pulse k is 2 and there are two full pitch cycles from which samples should be removed.

[0361] After removing d samples from a signal of length L_frame+d, there are no samples from the original signal beyond L_frame+d samples, so T[k] is within L_frame+d samples, and thus k is determined by:

[0362]

number

[0363] From equations (17) and (28), we obtain:

[0364]

number

[0365] That is, as follows.

[0366]

number

[0367] From equation (30), we get:

[0368]

number

[0369] For example, in a codec using frames of 20 ms or more, if the lowest fundamental frequency of the speech is, say, 40 Hz or more, there will often be one or more pulses in the enclosed frame other than "silence".

[0370] In the following, the case of two or more pulses (k≧1) will be described with reference to equations (32) to (46).

[0371] At each full i-th pitch cycle between pulses, Δ i Assume that a sample is removed, where Δ i is defined as follows:

[0372]

number

[0373] where a is the unknown variable that needs to be expressed in terms of known variables.

[0374] Assume that Δ0 samples are removed before the first pulse, where Δ0 is defined as:

[0375]

number

[0376] Δ k+1 Assume that the sample is removed after the last pulse, where Δ k+1 is defined as follows:

[0377]

number

[0378] The last two assumptions are consistent with equation (32), which takes into account the lengths of the partial initial and final pitch cycles.

[0379] Δ i Each of the values ​​is the difference in the number of samples. Also, Δ0 is the difference in the number of samples. Furthermore, Δ k+1 is the difference in the number of samples.

[0380] Figure 13 is a diagram of the audio signal of Figure 12 with the addition of Δ0 to Δ3. The number of samples to be removed in each pitch cycle is shown diagrammatically, with k=2 in the example of Figure 13. For the embodiment described with reference to equations (25) to (63), reference numeral 1210 denotes d.

[0381] The total number of samples to be removed, d, is given by Δ i Related to.

[0382]

number

[0383] From the formulas (32) to (35), d can be calculated as follows:

[0384]

number

[0385] Equation (36) is equivalent to the following equation:

[0386]

number

[0387] Assume that the last full pitch cycle in the enclosed frame has a length of p[M-1], that is,

[0388]

number

[0389] From equations (32) and (38), we get:

[0390]

number

[0391] Moreover, from equations (37) and (39),

[0392]

number

[0393] Equation (40) is equivalent to the following equation:

[0394]

number

[0395] From equations (17) and (41), we get:

[0396]

number

[0397] Equation (42) is equivalent to the following equation:

[0398]

number

[0399] Furthermore, from equation (43),

[0400]

number

[0401] Equation (44) is equivalent to the following equation:

[0402]

number

[0403] Furthermore, equation (45) is equivalent to the following equation:

[0404]

number

[0405] According to an embodiment, the number of samples to remove or add before the first pulse and / or during the pulses and / or after the last pulse is now calculated based on equations (32) to (34), (39) and (46).

[0406] In an embodiment, samples are removed or added in the regions of minimum energy.

[0407] According to an embodiment, the number of removed samples may be rounded, for example, using the following:

[0408]

number

[0409] In the following, the case of one pulse (k=0) will be described with reference to equations (47) to (55).

[0410] If there is only one pulse in the enclosed frame, then Δ0 samples before that pulse will be removed.

[0411]

number

[0412] where Δ and a are unknown variables that need to be expressed in known variables. Δ1 samples will be removed after this pulse. Here,

[0413]

number

[0414] It is.

[0415] Then the total number of samples to be removed is given by:

[0416]

number

[0417] From equations (47) to (49), we get the following.

[0418]

number

[0419] Equation (50) is equivalent to the following equation:

[0420]

number

[0421] The ratio of pitch cycles before the pulse to pitch cycles after the pulse is assumed to be the same as the ratio of pitch lag in the last subframe to the first subframe in the previously received frame.

[0422]

number

[0423] From equation (52), we get:

[0424]

number

[0425] Moreover, from equations (51) and (53),

[0426]

number

[0427] Equation (54) is equivalent to the following equation:

[0428]

number

[0429] There are [Δ-a] samples to remove or add in the region of minimum energy before the pulse, and d-[Δ-a] samples after the pulse.

[0430] In the following, a simplified concept according to an embodiment, which does not require a search for the (location of) the pulse, is described with reference to equations (56) to (63).

[0431] Let t[i] denote the length of the i-th pitch cycle. After removing d samples from the signal, we obtain k full pitch cycles and one partial (up to full) pitch cycle. Thus:

[0432]

number

[0433] A pitch cycle of length t[i] is reduced to length T C Since the total number of removed samples is d, taken from pitch cycles, we get:

[0434]

number

[0435] Therefore, the result is as follows:

[0436]

number

[0437] It will also be as follows:

[0438]

number

[0439] According to an embodiment, a linear change in pitch lag may be assumed.

[0440]

number

[0441] In an embodiment, (k+1)Δ samples are removed in the kth pitch cycle.

[0442] According to an embodiment, in the portion of the kth pitch cycle that remains in the frame after removing the sample,

[0443]

number

[0444] samples are removed.

[0445] Therefore, the total number of samples removed is:

[0446]

number

[0447] Equation (60) is equivalent to the following equation:

[0448]

number

[0449] Furthermore, equation (61) is equivalent to the following equation:

[0450]

number

[0451] Furthermore, equation (62) is equivalent to the following equation:

[0452]

number

[0453] According to an embodiment, (i+1)Δ samples are removed at the position of minimum energy. Since the search for the minimum energy position is performed in a circular buffer holding one pitch cycle, it is not necessary to know the location of the pulse.

[0454] If the minimum energy position is after the first pulse, and the samples before the first pulse are not removed, the pitch lag will be (T c +Δ), T c、 T c , (T c -Δ), (T c A situation may arise where the delay elapses as Δ−2Δ (two pitch cycles in the last received frame and three pitch cycles in the encapsulated frame). Thus, a discontinuity may exist. A similar discontinuity may occur after the last pulse, but not at the same time as it occurs before the first pulse.

[0455] On the other hand, the closer the pulse is to the beginning of the enclosed frame, the more likely it is that the minimum energy region will occur after the first pulse. cIt is more likely to become larger. To reduce the possibility of discontinuity in pitch changes, weighting is used to favor the smallest region closer to the start or end of the pitch cycle.

[0456] According to an embodiment, an implementation example of the provided concept is described, which realizes one or all of the following method steps.

[0457] 1. Search for the minimum energy region in parallel, and store the T samples that have been low-pass filtered from the end of the last received frame in the temporary buffer B. The temporary buffer can be considered as a circular buffer during the search for the minimum energy region (this may mean that the minimum energy region can be composed of several samples from the start of the pitch cycle and several samples from the end). The minimum energy region may be, for example, the minimum location for a sliding window of samples of length [(k + 1)Δ]. For example, weighting can be used to favor the minimum region closer to the start of the pitch cycle. c 2. Skip [Δ] samples of the minimum energy region and copy the samples from the temporary buffer B to the frame. Thus, a pitch cycle of length t[0] is created. Set δ0 = Δ - [Δ].

[0458] 3. For the i-th pitch cycle (0 < i < k), skip [Δ] + [δ] samples of the minimum energy region and copy the samples from the (i - 1)-th pitch cycle. Set δ = δ - [δ] + Δ - [Δ]. Repeat this step k - 1 times.

[0459] 3. For the i-th pitch cycle (0 < i < k), skip [Δ] + [δ i-1 samples of the minimum energy region and copy the samples from the (i - 1)-th pitch cycle. δ i =δ i-1 -[δ i-1 +Δ-[Δ].

[0460] 4. For the kth pitch cycle, search for a new minimum region in the (k-1)th pitch cycle, using weighting that favors minimum regions closer to the end of the pitch cycle. Then skip the following number of samples in the region of minimum energy and copy the samples from the (k-1)th pitch cycle:

[0461]

number

[0462] If samples need to be added, an equivalent procedure can be used by taking into account that d<0 and Δ<0 and adding a total of |d| samples, i.e. (k+1)|Δ| samples are added in the kth cycle at the position of minimum energy.

[0463] In any case, since an approximated pitch cycle length is used, fractional pitches can be used at the subframe level to generate d above in relation to the "Fast Algorithmic Approach for Determining d".

[0464] In the following, a second group of pulse resynchronization embodiments is described with reference to equations (64) to (113). These embodiments of the first group adopt the definition of equation (15b).

[0465]

number

[0466] Here, the length of the last pitch period is T p and the length of the copied segment is T r It is.

[0467] Where certain parameters used by the second group of pulse resynchronization embodiments are not specified below, embodiments of the present invention may adopt the definitions given for these parameters with respect to the first group of pulse resynchronization embodiments defined above (see equations (25) through (63)).

[0468] Some of equations (64) through (113) of the second group of pulse resynchronization embodiments may redefine some of the parameters already used with respect to the first group of pulse resynchronization embodiments, in which case the redefined definitions given apply to the second pulse resynchronization embodiment.

[0469] As mentioned above, according to some embodiments, the periodic portion may be configured for, for example, one frame and one additional subframe, where the frame length is L=L frame It is shown as:

[0470] For example, if a frame has M subframes, the length of a subframe is L_subfr=L / M.

[0471] As above, T[0] is the location of the first largest pulse in the constructed periodic portion of the excitation. The positions of the other pulses are given by

[0472]

number

[0473] According to an embodiment, depending on the construction of the periodic portion of the excitation, for example after construction of the periodic portion of the excitation, glottal pulse resynchronization is performed to correct the difference between the estimated target position of the last pulse of the lost frame (P) and its actual position (T[k]) in the constructed periodic portion of the excitation.

[0474] The estimated target position of the last pulse in the lost frame (P) can be indirectly determined, for example, by estimating the pitch lag evolution. The pitch lag evolution is, for example, extrapolated based on the pitch lags of the last seven subframes before the lost frame. The evolved pitch lag in each subframe is:

[0475]

number

[0476] where:

[0477]

number

[0478] And T ext where T is the extrapolated pitch and i is the subframe index. Pitch extrapolation can be done, for example, using weighted linear fitting or methods from G.718 or G.729.1 or other methods for pitch interpolation that consider, for example, one or more pitches from future frames. Pitch extrapolation can also be non-linear. In an embodiment, T ext is T in the above. ext can be determined in the same way that

[0479] The sum of the total number of samples in a pitch cycle with the evolution pitch (p[i]) and the constant pitch (T p ) in a pitch cycle.

[0480] According to an embodiment, T ext >T p If , s samples need to be added to the frame, and T ext <T pThen, −s samples need to be removed from the frame. After adding or removing |s| samples, the last pulse in the enclosed frame will be at the estimated target position (P).

[0481] T ext =T p Then there is no need to add or remove samples within a frame.

[0482] According to some embodiments, glottal pulse resynchronization is performed by adding or removing samples in the minimum energy regions of every pitch cycle.

[0483] In the following, the calculation of the parameter s according to an embodiment will be explained with reference to equations (66) to (69).

[0484] According to some embodiments, the difference s may be calculated, for example, based on the following principles:

[0485] In each subframe i, (length T r For each pitch cycle p[i]-T r samples need to be added (p[i]-T r >0) (otherwise p[i]-T r < 0, T r -p[i] samples must be removed).

[0486] Each subframe has (L_subfr) / T r =L / (MT r ) pitch cycle.

[0487] Therefore, in the i-th subframe, (p[i]-T r )L / (MT r ) samples need to be removed.

[0488] Thus, according to equation (64), depending on the embodiment, s may be calculated, for example, according to equation (66).

[0489]

number

[0490] Equation (66) is equivalent to the following equation:

[0491]

number

[0492] Here, equation (67) is equivalent to the following equation:

[0493]

number

[0494] Equation (68) is equivalent to the following equation:

[0495]

number

[0496] In addition, T ext >T p If s is positive, a sample needs to be added, and T ext <T p If ,s is negative and samples need to be removed. Therefore, the number of samples to be removed or added can be denoted as |s|.

[0497] In the following, the calculation of the index of the last pulse according to an embodiment will be explained with reference to equations (70) to (73).

[0498] The actual last pulse position (T[k]) in the constructed periodic portion of the excitation determines the number k of full pitch cycles over which samples are removed (or added).

[0499] FIG. 12 shows the audio signal before removing the sample.

[0500] In the example shown in FIG. 12, the index of the last pulse k is 2, and there are two full pitch cycles from which the sample should be removed. For the embodiment described with reference to equations (64) to (113), reference numeral 1210 indicates |s|.

[0501] After removing |s| samples from a signal of length L - s (where L = L_frame) or adding |s| samples to a signal of length L - s, there are no samples from the original signal exceeding L - s samples. Note that when samples are added, s is positive, and when samples are removed, s is negative. Therefore, if samples are added, L - s < L, and if samples are removed, L - s > L. Therefore, T[k] must be within the range of L - s samples, and k is determined as follows.

[0502]

Number

[0503] From equations (15b) and (70), it becomes as follows.

[0504]

Number

[0505] That is, it is as follows.

[0506]

Number

[0507] According to an embodiment, k can be determined as follows, for example, based on equation (72).

[0508]

Number

[0509] For example, in codecs employing frames of 20 ms or greater and a minimum fundamental frequency of speech of 40 Hz or greater, there will often be one or more pulses in the frame that are not "silent" and are contained elsewhere.

[0510] In the following, the calculation of the number of samples to be removed in the minimum region according to an embodiment will be described with reference to equations (74) to (99).

[0511] For example, Δ i We can assume that we remove (or add) samples, where Δ i is defined as follows:

[0512]

number

[0513] where a is an unknown variable that may be expressed, for example, in terms of known variables.

[0514] Also, for example, before the first pulse, Δ p We can assume that we remove (or add) 0 samples, where Δ p 0 is defined as follows:

[0515]

number

[0516] Furthermore, for example, after the last pulse, Δ p k+1 We can assume that we remove (or add) samples, where Δ p k+1 is defined as follows:

[0517]

number

[0518] The last two assumptions are consistent with equation (74), which takes into account the lengths of the partial initial and final pitch cycles.

[0519] The number of samples removed (or added) in each pitch cycle is shown diagrammatically in the example of Fig. 13, where k = 2. Fig. 13 shows a diagram of the samples removed in each pitch cycle. For the embodiment described with reference to equations (64) to (113), reference numeral 1210 denotes |s|.

[0520] The total number of samples to be removed (or added) is given by Δ i Related to.

[0521]

number

[0522] From equations (74) to (77), the following is obtained.

[0523]

number

[0524] Equation (78) is equivalent to the following equation:

[0525]

number

[0526] Furthermore, equation (79) is equivalent to the following equation:

[0527]

number

[0528] Furthermore, equation (80) is equivalent to the following equation:

[0529]

number

[0530] Also, taking into account equation (16b), equation (81) is equivalent to the following equation:

[0531]

number

[0532] According to an embodiment, it may be assumed that the number of samples to remove (or add) in a complete pitch cycle after the last pulse is given by the following equation:

[0533]

number

[0534] From equations (74) and (83), we get:

[0535]

number

[0536] From equations (82) and (84), we get:

[0537]

number

[0538] Equation (85) is equivalent to the following equation:

[0539]

number

[0540] Furthermore, equation (86) is equivalent to the following equation:

[0541]

number

[0542] Furthermore, equation (87) is equivalent to the following equation:

[0543]

number

[0544] From equation (16b) and equation (88), we obtain:

[0545]

number

[0546] Equation (89) is equivalent to the following equation:

[0547]

number

[0548] Furthermore, equation (90) is equivalent to the following equation:

[0549]

number

[0550] Furthermore, equation (91) is equivalent to the following equation:

[0551]

number

[0552] Furthermore, equation (92) is equivalent to the following equation:

[0553]

number

[0554] From equation (93), we get:

[0555]

number

[0556] Thus, for example, based on equation (94), according to an embodiment:

[0557] the number of samples to be removed and / or added before the first pulse is calculated, and / or The number of samples to be removed and / or added between pulses is calculated and / or The number of samples to be removed and / or added after the last pulse is calculated.

[0558] According to some embodiments, samples may be removed or added, for example, in regions of minimum energy.

[0559] From equations (85) and (94), we get:

[0560]

number

[0561] Equation (95) is equivalent to the following equation:

[0562]

number

[0563] Moreover, from equations (84) and (94),

[0564]

number

[0565] Equation (97) is equivalent to the following equation:

[0566]

number

[0567] According to one embodiment, the number of samples to be removed after the last pulse can be calculated based on equation (97) according to the following formula:

[0568]

number

[0569] According to the embodiment, Δ p 0, Δ i and Δ p k+1 is positive, and the sign of s determines whether a sample is added or removed.

[0570] For complexity reasons, in some embodiments it is desirable to add or remove an integer number of samples, and in such embodiments, Δ p 0, Δ i and Δ p k+1 may be rounded, for example. In other embodiments, other concepts, for example using waveform interpolation, may alternatively or additionally be used to avoid rounding, but at the expense of increased complexity.

[0571] In the following, an algorithm for pulse resynchronization according to an embodiment will be described with reference to equations (100) to (113).

[0572] According to an embodiment, the input parameters of such an algorithm are, for example:

[0573] L Frame length M Number of subframes T p The pitch cycle length of the end of the last received frame T ext Pitch cycle length at the end of the enclosed frame src_exc The input excitation signal created by copying the low-pass filtered last pitch cycle of the excitation signal from the end of the last received frame as described above. dst_exc The output excitation signal created from src_exc using the algorithm described herein for pulse resynchronization.

[0574] According to an embodiment, such an algorithm may include one or more or all of the following steps:

[0575] Calculate the pitch change per subframe based on equation (65).

[0576]

number

[0577] Calculate the rounded starting pitch based on equation (15b).

[0578]

number

[0579] Calculate the number of samples to be added (or removed if negative) based on equation (69).

[0580]

number

[0581] The first T in the constructed periodic part of the excitation src_exc r Among the samples, find the location of the first largest pulse T[0].

[0582] Get the index of the last pulse in the resynchronized frame dst_exc according to equation (73).

[0583]

number

[0584] Calculate a-Δ of samples to be added or removed between successive cycles based on equation (94).

[0585]

number

[0586] Calculate the number of samples to add or remove before the first pulse based on equation (96).

[0587]

number

[0588] · The number of samples to be added or removed before the first pulse is rounded and the fractional part is kept in memory.

[0589]

number

[0590] For each region between two pulses, calculate the number of samples to add or remove based on equation (98).

[0591]

number

[0592] Rounding the number of samples to be added or removed between two pulses, taking into account the fractional part of the remainder from the previous rounding.

[0593]

number

[0594] For some i, the added F gives Δ ’ i >Δ ’ i-1 If so, these values ​​are Δ ’ i and Δ ’ i-1 Exchange for.

[0595] Calculate the number of samples to be added or removed after the last pulse based on equation (99).

[0596]

number

[0597] Then calculate the maximum number of samples to be added or removed between the minimum energy regions.

[0598]

number

[0599] Length Δ ’ max The minimum energy segment P between the first two pulses in src_exc of min Find the location of [1]. For all consecutive minimum energy segments between two pulses, calculate the position using the following formula:

[0600]

number

[0601] P min [1]>T r Then, P min[0]=P min [1]-T r Calculate the location of the minimum energy segment before the first pulse in src_exc using ’ The minimum energy segment P before the first pulse in src_exc with 0 min Find the location of [0]. P min [1]+kT r <L-sならば、P min [k+1]=P min [1]+kT r Calculate the location of the minimum energy segment after the last pulse in src_exc using k+1 The minimum energy segment P after the last pulse in src_exc min Find the location of [k+1].

[0602] If there is only one pulse in the contained excitation signal dst_exc, i.e., k=0, then P min Restrict the search in [1] to Ls. In that case, P min [1] refers to the location of the minimum energy segment after the last pulse in src_exc.

[0603] If s>0, then location P min [i] (0≦i≦k+1), the signal src_exc has Δ' i add samples and store them in dst_exc, otherwise if s<0, store them in location P min [i](0≦i≦k+1) Δ' i samples are removed from the signal src_exc and stored in dst_ext. There are k+2 regions where samples are added or removed.

[0604] Fig. 2c shows a system for reconstructing a frame containing an audio signal according to an embodiment. The system comprises an apparatus 100 for determining an estimated pitch lag and an apparatus 200 for reconstructing a frame according to one of the above embodiments, the apparatus for reconstructing a frame being configured to reconstruct the frame depending on the estimated pitch lag. The estimated pitch lag is the pitch lag of the audio signal.

[0605] In an embodiment, the reconstructed frame may be associated with, for example, one or more available frames, which may be one or more of the one or more preceding frames of the reconstructed frame and one or more subsequent frames of the reconstructed frame, and the one or more available frames may include one or more pitch cycles as the one or more available pitch cycles. The apparatus 200 for reconstructing a frame may be, for example, an apparatus for reconstructing a frame according to one of the above embodiments.

[0606] Although some aspects have been described in the context of an apparatus, it will be apparent that these aspects also represent a description of a corresponding method, in which case a block or apparatus corresponds to a method step or a feature of a method step. Similarly, aspects described in the context of a method step also represent a description of a corresponding block or item or feature of a corresponding apparatus.

[0607] The decomposed signal of the invention may be stored in a digital storage medium or transmitted over a transmission medium such as a wireless transmission medium or a wired transmission medium such as the Internet.

[0608] Depending on the particular implementation requirements, embodiments of the invention can be implemented in hardware or software using digital storage media such as floppy disks, DVDs, CDs, ROMs, PROMs, EPROMs, EEPROMs or flash memories that store electronically readable control signals that cooperate (or can cooperate) with a programmable computer system to perform the respective methods.

[0609] Some embodiments according to the invention include a non-transitory data carrier having electronically readable control signals capable of cooperating with a programmable computer system to carry out one of the methods described herein.

[0610] Generally, embodiments of the present invention can be realized as a computer program product having program code which operates to perform one of the methods when the computer program product is run on a computer. The program code can for example be stored on a machine readable carrier.

[0611] Other embodiments comprise the computer program for performing one of the methods described herein, stored on a machine readable carrier.

[0612] In other words, an embodiment of the inventive method is, therefore, a computer program having a program code for performing one of the methods described herein, when the computer program runs on a computer.

[0613] A further embodiment of the inventive method is, therefore, a data carrier (or digital storage medium or computer readable medium) having recorded thereon the computer program for performing one of the methods described herein.

[0614] A further embodiment of the inventive method is therefore a data stream or a sequence of signals representing the computer program for performing one of the methods described herein. The data stream or the sequence of signals may be adapted to be transmitted via a data communication connection, such as via the Internet, for example.

[0615] Other embodiments comprise a processing means, for example a computer, or a programmable logic device configured to or adapted to perform one of the methods described herein.

[0616] Another embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.

[0617] In some embodiments, a programmable logic device (such as a field programmable gate array) may be used to perform some or all of the functions of the methods described herein. In some embodiments, a field programmable gate array may cooperate with a microprocessor to perform one of the methods described herein. In general, the methods are preferably performed by some hardware apparatus.

[0618] The above embodiments merely illustrate the principles of the present invention. It will be apparent to those skilled in the art that variations and modifications to the arrangements and details described herein will become apparent to those skilled in the art. It is therefore intended to be limited only by the scope of the claims and not by the specific details presented in the description and illustration of the embodiments herein.

Claims

1. 1. An apparatus for determining an estimated pitch lag, comprising: an input interface (110) for receiving a plurality of original pitch lag values; a pitch lag estimator (120) for estimating an estimated pitch lag; a pitch lag estimator (120) configured to estimate an estimated pitch lag based on a plurality of original pitch lag values ​​and a plurality of information values; for each original pitch lag value of a plurality of original pitch lag values, an information value of a plurality of information values ​​is assigned to the original pitch lag value; a pitch lag estimator (120) configured to estimate an estimated pitch lag based on a plurality of original pitch lag values ​​and a plurality of pitch gain values ​​as a plurality of information values; for each original pitch lag value of a plurality of original pitch lag values, a pitch gain value of a plurality of pitch gain values ​​is assigned to the original pitch lag value; An apparatus, wherein the pitch lag estimator (120) is configured to estimate an estimated pitch lag by minimizing an error function.

2. 2. The apparatus of claim 1, wherein each of the plurality of pitch gain values ​​is an adaptive codebook gain.

3. a pitch lag estimator configured to determine two parameters a, b to estimate an estimated pitch lag by minimizing the following error function: [Number 160] where a is a real number, b is a real number, k is an integer number k≧2, P(i) is the i-th original pitch lag value, and g p 3. The apparatus of claim 1 or 2, wherein (i) is the i-th pitch gain value assigned to the i-th pitch lag value P(i).

4. a pitch lag estimator configured to determine two parameters a, b to estimate an estimated pitch lag by minimizing the following error function: [Number 161] where a is a real number, b is a real number, P(i) is the i-th original pitch lag value, and g p 4. The apparatus of claim 3, wherein (i) is the i-th pitch gain value assigned to the i-th pitch lag value P(i).

5. 1. A system for reconstructing frames containing an audio signal, comprising: An apparatus for determining an estimated pitch lag as claimed in claim 1; and an apparatus for reconstructing a frame, the apparatus for reconstructing the frame being configured to reconstruct the frame based on the estimated pitch lag; The system wherein the estimated pitch lag is the pitch lag of the speech signal.

6. the reconstructed frame is associated with one or more available frames, the one or more available frames being one or more of one or more preceding frames of the reconstructed frame and one or more succeeding frames of the reconstructed frame; The one or more available frames include one or more pitch cycles as the one or more available pitch cycles, and An apparatus for reconstructing a frame, A sample number difference (Δ ) indicating the difference between the number of samples of one of the one or more available pitch cycles and the number of samples of the first pitch cycle to be reconstructed. p 0 ;Δ i ;Δ p k+1 a determination unit (210) for determining The difference in the number of samples (Δ p 0 ;Δ i ;Δ p k+1 ) and a frame reconstruction unit (220) for reconstructing a reconstructed frame by reconstructing a first pitch cycle to be reconstructed as a first reconstructed pitch cycle based on the sample of the one of the one or more available pitch cycles, a frame reconstructor (220) configured to reconstruct the reconstructed frame such that the reconstructed frame includes a first reconstructed pitch cycle entirely or partially, the reconstructed frame includes a second reconstructed pitch cycle entirely or partially, and a number of samples of the first reconstructed pitch cycle is different from a number of samples of the second reconstructed pitch cycle; A determining unit (210) determines the difference in the number of samples (Δ p 0 ;Δ i ;Δ p k+1 6. The system for reconstructing a frame according to claim 5, configured to determine

7. 1. A method for determining an estimated pitch lag, comprising: receiving a plurality of original pitch lag values; and estimating an estimated pitch lag. The step of estimating the estimated pitch lag is performed based on a plurality of original pitch lag values ​​and a plurality of information values, and for each original pitch lag value of the plurality of original pitch lag values, one information value of the plurality of information values ​​is assigned to the original pitch lag value; the step of estimating the estimated pitch lag is performed based on a plurality of original pitch lag values ​​and a plurality of pitch gain values ​​as a plurality of information values; for each original pitch lag value of a plurality of original pitch lag values, a pitch gain value of a plurality of pitch gain values ​​is assigned to the original pitch lag value; A method wherein the step of estimating the estimated pitch lag is performed by minimizing an error function.

8. A computer program for implementing the method according to claim 7 when the computer program is run on a computer or signal processor.

Citation Information

Patent Citations

  • Pitch prediction for packet loss concealment

    EP2002427B1

  • Pitch prediction for packet loss concealment

    US20070219788A1

  • Estimating a pitch lag

    US20120072209A1

  • Method and device for efficient frame erasure concealment in speech codecs

    US8255207B2