Method for estimating background noise and background noise estimator
By using the residual energy characteristics related to the order of the linear prediction model, pauses in the audio signal and update the background noise estimation, the problem of difficulty in background noise estimation under low SNR is solved, and the performance of VAD and the efficiency of DTX mode is improved.
Patent Information
- Application Number
- CN202110082923.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2014-07-29
- Filing Date
- 2015-07-01
- Publication Date
- 2025-02-18
- Estimated Expiration
- 2035-07-01
AI Technical Summary
In the case of low signal-to-noise ratio (SNR), especially when the background noise is non-quiescent or similar to the active signal characteristics, accurate estimation of background noise becomes very difficult, resulting in a degradation of sound activity detector (VAD) performance.
Pauses in the audio signal are detected by utilizing residual energy characteristics associated with different linear prediction model orders and the background noise estimate is updated based on these characteristics. A specific method includes calculating a linear predictive gain, such as a quotient between order 0 to order 2 and order 2 to order 16, to determine whether the audio signal segment contains pauses, thereby updating the background noise estimate.
This method significantly improves the accuracy of background noise estimation in the SNR range of 10dB to 20dB, helps VAD to more accurately determine whether the audio signal contains active speech or music, reduces unnecessary encoding of background noise, and improves DTX mode efficiency.
Smart Images

Figure CN112927725B_ABST
Abstract
Description
[0001] This application is a divisional application of a Chinese patent application filed on July 1, 2015, with application number 201580040591.8 and entitled “Method for estimating background noise and background noise estimator”. Technical Field
[0002] Embodiments of the present invention relate to audio signal processing, and in particular to estimation of background noise, for example to support voice activity determination. Background Art
[0003] In communication systems utilizing discontinuous transmission (DTX), it is important to find a balance between efficiency and not degrading quality. In such systems, an activity detector is used to indicate active signals (such as speech or music) to be actively encoded and segments with background signals, which can be replaced by comfort noise generated on the receiver side. If the activity detector is too effective in detecting inactivity, it will introduce clipping in the active signal, which is then perceived as subjectively degraded in quality when the clipped active segments are replaced by comfort noise. At the same time, if the activity detector is not effective enough and classifies the background noise segments as active, and then actively encodes the background noise instead of entering DTX mode with comfort noise, the efficiency of DTX is reduced. In most cases, the clipping problem is considered to be more serious.
[0004] Figure 1 An overview block diagram of a generalized sound activity detector (SAD) or voice activity detector (VAD) is shown, which takes an audio signal as input and produces an activity decision as output. The input signal is divided into data frames, i.e., audio signal segments of, for example, 5-30 ms (depending on the implementation), and one activity decision is produced for each frame as output.
[0005] Depend on Figure 1 The main detector shown in the figure makes a main decision "prim". The main decision is basically just a comparison of the features of the current frame with the background features estimated based on the previous input frame. The difference between the features of the current frame and the background features that is greater than the threshold results in an active main decision. The delay (hangover) addition block is used to expand the main decision based on the past main decision to form a final decision: "flag". The reason for using delays is mainly to reduce / remove the risk of clipping in the middle and back end of the active burst. As shown in the figure, the operation controller can adjust the threshold of the main detector and the length of the delay addition according to the characteristics of the input signal. The background noise in the input signal is estimated using a background estimator block. In this article, background noise can also be referred to as "background" or "background features".
[0006] The estimation of background characteristics can be done according to two fundamentally different principles: by using Figure 1The main decision shown by the dashed line in FIG (ie, using decision or decision metric feedback), or by using some other characteristics of the input signal (ie, not using decision feedback). A combination of these two strategies can also be used.
[0007] An example of a codec that uses decision feedback for background estimation is AMR-NB (Adaptive Multi-Rate Narrowband), and an example of a codec that does not use decision feedback is EVRC (Enhanced Variable Rate CODEC) and G.718.
[0008] A variety of different signal features or characteristics can be used, but one common feature used in VAD is the frequency characteristics of the input signal. Due to its low complexity and reliable operation at low SRN, a commonly used type of frequency characteristic is the subband frame energy. It is therefore assumed that the input signal is divided into different frequency subbands and the background level is estimated for each subband. In this way, one of the background noise features is a vector with energy values for each subband, which are values that characterize the background noise in the input signal in the frequency domain.
[0009] In order to achieve the tracking of background noise, the actual background noise estimate update can be performed in at least three different ways. One way is to use automatic regression (AR) processing for each frequency bin to process the update. Examples of such codecs are AMR-NB and G.718. Basically, for this type of update, the step size of the update is proportional to the difference between the observed current input and the current background estimate. Another way is to use multiplication scaling of the current estimate, with the limitation that the estimate cannot be greater than the current input or less than the minimum value. This means that the estimate increases with each frame until it is higher than the current input. In this case, the current input is used as an estimate. EVRC is an example of a codec that uses this technique to update the background estimate of the VAD function. It should be noted that EVRC uses different background estimates for VAD and noise suppression. It should be noted that VAD can be used in other scenarios besides DTX. For example, in a variable rate codec (such as EVRC), VAD can be used as part of the rate determination function.
[0010] A third way is to use the so-called minimum technique, where the estimate is the minimum value during a sliding time window of previous frames. This essentially gives a minimum estimate that is scaled using a compensation factor to reach or approximate the average estimate for stationary noise.
[0011] In high SNR situations (where the signal level of the active signal is much higher than the background signal), it is easy to make a decision whether the input audio signal is active or inactive. However, in low SNR situations, and especially when the background is non-stationary or even similar to the active signal in its characteristics, it is very difficult to separate the active and inactive signals.
[0012] The performance of VAD depends on the ability of the background noise estimator to track the background characteristics, especially when it encounters a non-stationary background. Through better tracking, VAD can be made more efficient without increasing the risk of speech clipping.
[0013] Although correlation is an important feature for detecting speech (mainly the voiced part of speech), there are also noise signals that show high correlation. In these cases, the noise with correlation will prevent the update of the background noise estimate. The result is high activity because both speech and background noise are encoded as active content. Although energy-based pause detection can be used to reduce this problem for high SNR (about>20dB), this is unreliable for SNR ranges from 20dB to 10dB or possibly to 5dB. In this range, the solution described in this article is different. Summary of the invention
[0014] It is desirable to achieve an improved estimate of background noise in an audio signal. Here, "improved" may mean making a more correct judgment as to whether an audio signal includes active speech or music, and thus more often estimating (e.g., updating a previous estimate) background noise in audio signal segments that do not actually have active content (e.g., speech and / or music). Herein, an improved method for generating a background noise estimate is provided, which may enable, for example, a sound activity detector to make a more appropriate judgment.
[0015] For background noise estimation in audio signals, it is important to be able to find reliable features to identify the characteristics of the background noise signal when the input signal comprises an unknown mixture of active and background signals, wherein the active signal may include speech and / or music.
[0016] The inventors have realized that features related to residual energy for different linear prediction model orders can be used to detect pauses in audio signals. These residual energies can be extracted, for example, from linear prediction analysis, which is common in speech codecs. The features can be filtered and combined to produce a set of features or parameters that can be used to detect background noise, which makes the solution suitable for use in noise estimation. The solution described herein is particularly effective for conditions when the SNR is in the range of 10dB to 20dB.
[0017] Another feature provided herein is a measure of spectral proximity to background, which can be performed, for example, by using frequency domain subband energies such as used in subband SAD.The spectral proximity measure can also be used to make a decision whether the audio signal includes a pause.
[0018] According to a first aspect, a method for background noise estimation is provided. The method comprises obtaining at least one parameter associated with an audio signal segment (e.g., a frame or a portion of a frame) based on: a first linear prediction gain, calculated as: for the audio signal segment, the quotient between the residual signal from the 0th order linear prediction and the residual signal from the 2nd order linear prediction; and a second linear prediction gain, calculated as: for the audio signal segment, the quotient between the residual signal from the 2nd order linear prediction and the residual signal from the 16th order linear prediction. The method also comprises: determining whether the audio signal segment includes a pause based at least on the obtained at least one parameter; and, when the audio signal segment includes a pause, updating the background noise estimation based on the audio signal segment.
[0019] According to the second scheme, a background noise estimator is provided. The background noise estimator is configured to obtain at least one parameter associated with an audio signal segment based on: a first linear prediction gain, calculated as: for the audio signal segment, the quotient between the residual signal from the 0th order linear prediction and the residual signal from the 2nd order linear prediction; and a second linear prediction gain, calculated as: for the audio signal segment, the quotient between the residual signal from the 2nd order linear prediction and the residual signal from the 16th order linear prediction. The background noise estimator is also configured to determine whether the audio signal segment includes a pause based at least on the at least one parameter; and when the audio signal segment includes a pause, update the background noise estimate based on the audio signal segment.
[0020] According to a third aspect, there is provided a SAD comprising a background noise estimator according to the second aspect.
[0021] According to a fourth aspect, there is provided a codec comprising a background noise estimator according to the second aspect.
[0022] According to a fifth aspect, there is provided a communication device comprising the background noise estimator according to the second aspect.
[0023] According to a sixth aspect, there is provided a network node comprising the background noise estimator according to the second aspect.
[0024] According to a seventh aspect, there is provided a computer program comprising instructions which, when executed on at least one processor, cause the at least one processor to perform the method according to the first aspect.
[0025] According to an eighth aspect, there is provided a carrier comprising the computer program according to the seventh aspect. BRIEF DESCRIPTION OF THE DRAWINGS
[0026] The above or other purposes, features and advantages of the technology disclosed herein will be apparent from the following more detailed description of the embodiments shown in the accompanying drawings, which are not necessarily drawn to scale, but rather focus on illustrating the principles of the technology disclosed herein.
[0027] Figure 1 is a block diagram illustrating an activity detector and latency determination logic.
[0028] Figure 2 is a flow chart illustrating a method for estimating background noise according to an example embodiment.
[0029] Figure 3 is a block diagram illustrating computation of features related to residual energy for linear predictions of order 0 and 2, according to an exemplary embodiment.
[0030] Figure 4 is a block diagram illustrating computation of features related to residual energy for linear predictions of order 2 and 16 according to an exemplary embodiment.
[0031] Figure 5 is a block diagram illustrating computation of features related to spectral proximity measurements according to an exemplary embodiment.
[0032] Figure 6 is a block diagram showing a sub-band energy background estimator.
[0033] Figure 7 is a flow chart showing the background update decision logic from the solution described in Appendix A.
[0034] Figure 8-Figure 10 is a diagram showing the behavior of the different parameters presented herein when calculated for an audio signal comprising two speech bursts.
[0035] Figure 11a-Figure 11c and Figure 12-13 is a block diagram illustrating different implementations of a background noise estimator according to example embodiments.
[0036] Fig.14 is a flow chart illustrating an exemplary embodiment of a method for background noise estimation according to the techniques proposed herein.
[0037] Fig.15 is a block diagram schematically illustrating an implementation of a background estimator according to an exemplary embodiment. DETAILED DESCRIPTION
[0038] The present invention relates to estimating background noise in an audio signal. Figure 1 In the generalized activity detector shown in , the function of estimating background noise is performed by a block represented as "background estimator". Some embodiments related to this solution can be found in the solutions of previously disclosed WO2011 / 049514, WO2011 / 049515 (which are incorporated herein by reference) and in Appendix A (Appendix A). The solution disclosed herein will be compared with the implementation of these previously disclosed solutions. Even though the solutions disclosed in WO2011 / 049514, WO2011 / 049515 and Appendix A are excellent solutions, the solution presented herein still has advantages over these solutions. For example, the solution presented herein is more competent for its tracking of background noise.
[0039] The performance of VAD depends on the ability of the background noise estimator to track the background characteristics, especially when it encounters a non-stationary background. Through better tracking, VAD can be made more efficient without increasing the risk of speech clipping.
[0040] A problem with current noise estimation methods is that in order to achieve good tracking of background noise in low SNR, a reliable pause detector is required. For input with only speech, the fact that the syllable rate or the person cannot keep talking can be used to find pauses in speech. This scheme can involve "relaxing" the need for pause detection after a sufficient time without background update, so that pauses in speech are more likely to be detected. This allows responding to sudden changes in noise characteristics or levels. Some examples of this noise recovery logic are: 1) Since speech utterances contain segments with high correlation, it is usually safe to assume that there are pauses in speech after a sufficient number of frames without correlation. 2) When the signal-to-noise ratio SNR>0, the speech energy is higher than the background noise, so if the frame energy is close to the minimum energy for a long time (e.g., 1-5 seconds), it is assumed that this is also safe in speech pauses. Although previous techniques work well for input with only speech, they are not enough when music is considered to be an active input. In music, there may be long segments with low correlation, but it is still music. Furthermore, the dynamics of energy in music can also trigger false pause detections, which may lead to unwanted erroneous updates of the background noise estimate.
[0041] Ideally, the inverse function of the activity detector (or what will be called a "pause occurrence detector") would be needed to control the noise estimate. This would ensure that the updating of the background noise characteristics is only done when there is no active signal in the current frame. However, as mentioned above, it is not easy to determine whether an audio signal segment includes an active signal.
[0042] Traditionally, when the active signal is known to be a speech signal, the activity detector is called a voice activity detector (VAD). When the input signal may include music, the term VAD for the activity detector is also often used. However, in modern codecs, when music is also to be detected as an active signal, it is also common to refer to the activity detector as a sound activity detector (SAD).
[0043] Figure 1 The background estimator shown in utilizes feedback and / or delay block from main detector to locate inactive audio signal segment.When developing technology as described herein, it is desirable to remove or at least reduce the dependency on this feedback.For background estimation disclosed herein, therefore the inventor has recognized that when only an unknown mixed input signal with active signal and background signal is available, it is important to be able to find reliable features to identify background signal characteristics.The inventor has also recognized that it cannot be assumed that the input signal starts with a noise segment, or even that the input signal is a speech mixed with noise, because the active signal may be music.
[0044] One scenario is that even though the current frame may have the same energy level as the current noise estimate, the frequency characteristics may be sufficiently different that it is undesirable to use the current frame to perform an update of the noise estimate. The introduced proximity feature dependent background noise update can be used to prevent updating in these cases.
[0045] Furthermore, during initialization, it is desirable to allow noise estimation to start as quickly as possible while avoiding false positives, since this could potentially result in clipping from the SAD if active content is used for background noise updates. Using an initialization-specific version of the proximity feature during initialization can at least partially address this problem.
[0046] The solution described herein relates to a method for background noise estimation, and in particular to a method for detecting pauses in an audio signal that performs well in difficult SNR situations. Figure 2-5 Describe the solution.
[0047] In the field of speech coding, the spectral shape of the input signal is usually analyzed using so-called linear prediction. The analysis is usually performed twice per frame and the results are then interpolated for increased temporal accuracy so that a filter can be generated for each 5 ms block of the input signal.
[0048] Linear prediction is a mathematical operation in which the future value of a discrete time signal is estimated as a linear function of the previous samples. In digital signal processing, linear prediction is often referred to as linear predictive coding (LPC), and can therefore be considered a subset of filter theory. In the linear prediction of a speech encoder, a linear prediction filter A(z) is applied to an input speech signal. A(z) is an all-zero filter that, when applied to an input signal, removes redundancy from the input signal that can be modeled using the filter A(z). Therefore, when the filter successfully models one or some aspects of the input signal, the output signal of the filter has lower energy than the input signal. The output signal is represented as "residual", "residual energy" or "residual signal". This linear prediction filter (alternatively represented as a residual filter) can have different model orders, and the different model orders have different numbers of filter coefficients. For example, in order to properly model speech, a linear prediction filter with a model order of 16 may be required. Therefore, in a speech encoder, a linear prediction filter A(z) with a model order of 16 may be used.
[0049] The inventors have recognized that features associated with linear prediction can be used to detect pauses in an audio signal over a range of SNRs from 20 dB down to 10 dB or possibly down to 5 dB. According to an embodiment of the solution described herein, a relationship between residual energies for different model orders of the audio signal is used to detect pauses in the audio signal. The relationship used is the quotient between the residual energies of the lower model order and the higher model order. The quotient between the residual energies can be referred to as a "linear prediction gain" because it is an indicator of how much signal energy a linear prediction filter can model or remove between one model order and another model order.
[0050] The residual energy will depend on the model order M of the linear prediction filter A(z). A common method for calculating the filter coefficients of a linear prediction filter is the Levinson-Durbin algorithm. The algorithm is recursive and will also produce residual energies of lower model orders as a "by-product" in the process of creating a prediction filter A(z) of order M. This fact can be exploited according to embodiments of the present invention.
[0051] Figure 2An exemplary general method for estimating background noise in an audio signal is shown. The method may be performed by a background noise estimator. The method comprises obtaining 201 at least one parameter associated with an audio signal segment (e.g., a frame or a portion of a frame) based on: a first linear prediction gain calculated as: for the audio signal segment, a quotient between a residual signal from a 0th order linear prediction and a residual signal from a 2nd order linear prediction; and a second linear prediction gain calculated as: for the audio signal segment, a quotient between a residual signal from a 2nd order linear prediction and a residual signal from a 16th order linear prediction.
[0052] The method further comprises: determining 202 whether the audio signal segment comprises a pause, i.e., an absence of active content such as speech and music, at least based on the obtained at least one parameter; and, when the audio signal segment comprises a pause, updating the background noise estimate based on the audio signal segment. That is, the method comprises: updating the background noise estimate when a pause is detected in the audio signal segment at least based on the obtained at least one parameter.
[0053] The linear prediction gain may be described as a first linear prediction gain associated with linear prediction from order 0 to order 2 of the audio signal segment; and a second linear prediction gain associated with linear prediction from order 2 to order 16 of the audio signal segment. Furthermore, the obtaining of at least one parameter may alternatively be described as determining, calculating, deriving or creating. Residual energy associated with linear prediction of model orders 0, 2 and 16 may be obtained, received or retrieved (i.e. provided in some way) from a portion of the encoder at which linear prediction is performed as part of a conventional encoding process. Thereby, the computational complexity of the solution described herein may be reduced compared to when residual energy needs to be derived (particularly for estimating background noise).
[0054] At least one parameter obtained based on the linear prediction feature can provide a level independent analysis of the input signal, which improves the decision on whether to perform background noise updating. This solution is particularly useful in the SNR range of 10 to 20 dB, in which energy-based SAD has limited performance due to the normal dynamic range of speech signals.
[0055] In this article, the variables E(0), ..., E(m), ..., E(M) represent the residual energy for model orders 0 to M for M+1 filters Am(z). Note that E(0) is exactly the input energy. The audio signal analysis according to the solution described in this article provides several new features or parameters by analyzing the following linear prediction gains: the linear prediction gain calculated as the quotient between the residual signal from the 0th order linear prediction and the residual signal from the 2nd order linear prediction, and the linear prediction gain calculated as the quotient between the residual signal from the 2nd order linear prediction and the residual signal from the 16th order linear prediction. That is, the linear prediction gain for the linear prediction from the 0th order linear prediction to the 2nd order linear prediction is the same as the residual energy E(0) (for the 0th model order) divided by the residual energy E(2) (for the 2nd model order). Correspondingly, the linear prediction gain for the linear prediction from the 2nd order linear prediction to the 16th order linear prediction is the same as the residual energy E(2) (for the second model order) divided by the residual energy E(16) (for the 16th model order). Examples of parameters and determining parameters based on prediction gain will be described in more detail further below.At least one parameter obtained according to the general embodiment described above may form part of a decision criterion for evaluating whether to update the background noise estimate.
[0056] To improve the long-term stability of the at least one parameter or feature, a restricted version of the prediction gain may be calculated. That is, obtaining the at least one parameter may include restricting the linear prediction gain associated with linear prediction from 0th order to 2nd order and from 2nd order to 16th order to values within a predefined interval. For example, as indicated, for example, in the following equations 1 and 6, the linear prediction gain may be restricted to values between 0 and 8.
[0057] Obtaining at least one parameter may further comprise creating at least one long term estimate of each of the first linear prediction gain and the second linear prediction gain, for example by means of low pass filtering. Such at least one long term estimate will then also be based on a corresponding linear prediction gain associated with at least one prior audio signal segment. More than one long term estimate may be created, wherein for example the first and second long term estimates associated with the linear prediction gains react differently to changes in the audio signal. For example, the first long term estimate may react faster to changes than the second long term estimate. Such a first long term estimate may alternatively be denoted as a short term estimate.
[0058] Obtaining at least one parameter may also include determining a difference between one of the linear prediction gains associated with the audio signal segment and a long-term estimate of the linear prediction gain, such as the absolute difference Gd_0_2 described below (Equation 3). Alternatively or in addition, a difference between two long-term estimates may be determined, such as in the following equation 9. The term "determining" may alternatively be interchanged with calculating, creating or deriving.
[0059] Obtaining at least one parameter may include, as described above, low-pass filtering of a linear prediction gain, thereby deriving a long-term estimate, some of which may alternatively be expressed as short-term estimates, depending on how many segments are considered in the estimate. The filter coefficient of at least one low-pass filter may depend on a relationship between a linear prediction gain associated (e.g., only) with the current signal segment and an average value (expressed as, for example, a long-term average value) or a long-term estimate of a corresponding prediction gain obtained based on a plurality of previous audio signal segments. This may be performed to create, for example, a further long-term estimate of the prediction gain. The low-pass filtering may be performed in two or more steps, each of which may produce a parameter or estimate for making a decision related to the presence of a pause in the audio signal segment. For example, different long-term estimates (e.g., G1_0_2 (Equation 2) and Gad_0_2 (Equation 4) and / or G1_2_16 (Equation 7), G2_2_16 (Equation 8), and Gad_2_16 described below) that reflect changes in the audio signal in different ways may be analyzed or compared to detect a pause in the current audio signal segment.
[0060] Determining 202 whether an audio signal segment includes a pause can also be based on a spectral proximity measurement associated with the audio signal segment. The spectral proximity measurement will indicate how close the "per band" energy level of the currently processed audio signal segment is to the "per band" energy level of the current background noise estimate (e.g., an initial value or estimate as a result of a previous update performed before the current audio signal segment is analyzed). Examples of determining or deriving spectral proximity measurements are given below in equations 12 and 13. Spectral proximity measurements can be used to prevent noise updates based on low energy frames that have frequency characteristics that are significantly different from the current background estimate. For example, the average energy on the frequency band may be equally low for the current signal segment and the current background noise estimate, but the spectral proximity measurement will reveal whether the energy is distributed differently on the frequency band. This difference in energy distribution can indicate that the current signal segment (e.g., frame) may be low-level active content, and an update of the background noise estimate based on the frame may, for example, prevent detection of future frames with similar content. Since the sub-band SNR is most sensitive to energy increases, using even low-level active content can result in a large update of the background estimate if that particular frequency range is not present in the background noise (e.g., the high frequency portion of speech compared to low frequency vehicle noise.) After such an update, it will be more difficult to detect speech.
[0061] As described above, the spectral proximity measure may be derived, obtained or calculated based on a set of frequency bands (alternatively expressed as subbands) for the currently analyzed audio signal segment and an energy estimate of the current background noise corresponding to the frequency set. This will also be further exemplified and described in more detail below and in Figure 5 Shown in.
[0062] As described above, a spectral proximity measure can be derived, obtained or calculated by comparing the current per-band energy level of the currently processed audio signal segment with the per-band energy level of the current background noise estimate. However, at the beginning (i.e., during the first cycle or the first number of frames when the analysis of the audio signal begins), there may be no reliable background noise estimate, for example because a reliable update of the background noise estimate has not yet been performed. Therefore, an initialization period can be applied to determine the spectral proximity value. During such an initialization period, the per-band energy level of the current audio signal segment will be compared with an initial background estimate instead, which can be, for example, a configurable constant value. In the example further below, the initial background noise estimate is set to the example value E min =0.0035. After the initialization period, the process can switch to normal operation and compare the current per-band energy level of the currently processed audio signal segment with the per-band energy level of the current background noise estimate. The length of the initialization period can be configured, for example, based on simulations or tests, which indicates the time it takes before, for example, a reliable and / or satisfactory background noise estimate is provided. In the example used below, the comparison with the initial background noise estimate (rather than with a "true" estimate derived based on the current audio signal) is performed during the first 150 frames.
[0063] The at least one parameter may be a parameter exemplified in the following code (denoted as NEW_POS_BG) and / or one or more of the multiple parameters further described below, resulting in forming a criterion or a component in a criterion for stall detection. In other words, the at least one parameter or feature obtained based on the linear prediction gain 201 may be one or more of the parameters described below, may include one or more of the parameters described below, and / or may be based on one or more of the parameters described below.
[0064] Characteristics or parameters related to residual energies E(0) and E(2)
[0065] Figure 3 FIG. 1 is a block diagram showing an overview of deriving features or parameters related to E(0) and E(2) according to an exemplary embodiment. Figure 3 As can be seen in , the prediction gain is first calculated as E(0) / E(2). The restricted version of the prediction gain is calculated as
[0066] G_0_2 = max(0, min(8, E(0) / E(2))) (Equation 1)
[0067] Where E(0) represents the energy of the input signal and E(2) is the residual energy after 2nd order linear prediction. The expression in equation 1 limits the prediction gain to an interval between 0 and 8. Under normal circumstances the prediction gain should be greater than zero, but anomalies may occur, for example, for values close to zero, and therefore the "greater than zero" limit (0<) may be useful. The reason for limiting the prediction gain to a maximum value of 8 is that for the purposes of the solution described herein, it is sufficient to know that the prediction gain is approximately 8 or greater than 8 (which indicates a significant linear prediction gain). It should be noted that when there is no difference between the residual energy between two different model orders, the linear prediction gain will be 1, indicating that the filter with a higher model order is not more successful in modeling the audio signal than the filter with a lower model order. In addition, if the prediction gain G_0_2 takes too large a value in the expression below, there may be a risk regarding the stability of the derived parameters. It should be noted that 8 is only an example value selected for a specific embodiment. The parameter G_0_2 can alternatively be expressed as, for example, epsP_0_2 or
[0068] The constrained prediction gain is then filtered in two steps to create a long-term estimate of the gain. The first low-pass filtering and hence the derivation of the first long-term feature or parameter is performed as follows:
[0069] G1_0_2=0.85G1_0_2+0.15G_0_2, (Equation 2)
[0070] where the second "G1_0_2" in the expression should be read as the value from the previous audio signal segment. Once there is a segment of input with only background, this parameter will typically be 0 or 8, depending on the type of background noise in the input. The parameter G1_0_2 may alternatively be expressed as, for example, epsP_0_2_lp or Another feature or parameter may then be created or calculated using the difference between the first long-term feature G1_0_2 and the frame-by-frame constrained prediction gain G_0_2 according to the following equation:
[0071] Gd_0_2 = abs(G1_0_2 - G_0_2) (Equation 3)
[0072] This will give an indication of the prediction gain of the current frame compared to the long term estimate of the prediction gain. The parameter Gd_0_2 may alternatively be expressed as, for example, epsP_0_2_ad or g ad_0_2 .exist Figure 4 In , the difference is used to create a second long-term estimate or feature Gad_0_2. This is done using a filter that applies different filter coefficients depending on whether the long-term difference is above or below the average difference of the current estimate according to the following equation:
[0073] Gad_0_2 = (1 - a)Gad_0_2 + aGd_0_2 (Equation 4)
[0074] where, if Gd_0_2 < Gad_0_2, then a = 0.1 otherwise a = 0.2
[0075] where the second "Gad_0_2" in the expression should be read as the value from the previous audio signal segment.
[0076] The parameter Gad_0_2 can alternatively be expressed as, for example, Glp_0_2, epsP_0_2_ad_lp or To prevent occasional high frame differences from being filtered out, another parameter can be derived, which is not shown in the figure. That is, the second long-term feature Gad_0_2 can be combined with the frame difference to prevent such filtering. This parameter can be derived as follows by taking the maximum value of the frame version Gd_0_2 and the long-term version Gad_0_2 of the prediction gain feature:
[0077] Gmax_0_2 = max(Gad_0_2, Gd_0_2) (Equation 5)
[0078] The parameter Gmax_0_2 can alternatively be expressed as epsP_0_2_ad_lp_max or g max_0_2 .
[0079] Characteristics or parameters related to residual energies E(2) and E(16)
[0080] Figure 4 An overview block diagram showing the derivation of features or parameters related to E(2) and E(16) according to an exemplary embodiment. As can be seen from Figure 4 it, the prediction gain is first calculated as E(2) / E(16). Features or parameters created using the difference or relationship between the second-order residual energy and the sixteenth-order residual energy are derived slightly differently from the features or parameters described above regarding the relationship between the zero-order and second-order residual energies.
[0081] Here, the limited prediction gain is also calculated as:
[0082] G_2_16 = max(0, min(8, E(2) / E(16))) (Equation 6)
[0083] where E(2) represents the residual energy after second-order linear prediction, and E(16) represents the residual energy after sixteenth-order linear prediction. The parameter G_2_16 can alternatively be expressed as, for example, epsP_2_16 or g LP_2_16 . Then this limited prediction gain is used to create two long-term estimates of the gain: in one long-term estimate, regardless of whether the long-term estimate is to be increased or not, the filter coefficients are different, as follows:
[0084] G1_2_16 = (1 - a)G1_2_16 + aG_2_16 (Equation 7)
[0085] Where, if G_2_16 > G1_2_16, then a = 0.2, otherwise a = 0.03
[0086] The parameter G1_2_16 can alternatively be expressed as, for example, epsP_2_16_lp or
[0087] The second long-term estimate uses a constant filtering coefficient according to the following equation:
[0088] G2_2_16 = (1 - b)G2_2_16 + bG_2_16, where b = 0.02 (Equation 8)
[0089] The parameter G2_2_16 can alternatively be expressed as, for example, epsP_2_16_lp2 or
[0090] For most types of background signals, both G1_2_16 and G2_2_16 will be close to 0, but they have different responses to content that requires 16th-order linear prediction, which is typically for speech and other active content. The first long-term estimate G1_2_16 will generally be higher than the second long-term estimate G2_2_16. The difference between the long-term features is measured according to the following equation:
[0091] Gd_2_16 = G1_2_16 - G2_2_16 (Equation 9)
[0092] The parameter Gd_2_16 can alternatively be expressed as epsP_2_16_dlp, or g ad_2_16 。
[0093] Gd_2_16 can then be used as the input to a filter that creates a third long-term feature according to the following equation:
[0094] Gad_2_16 = (1 - c)Gad_2_16 + cGd_2_16 (Equation 10)
[0095] Where, if Gd_2_16 < Gad_2_16, then c = 0.02, otherwise c = 0.05
[0096] The filter applies different filtering coefficients according to whether the third long-term signal is increasing. The parameter Gad_2_16 can alternatively be expressed as, for example, epsP_2_16_dlp_lp2 or Here, the long-term signal Gad_2_16 can be combined with the filter input signal Gd_2_16 to prevent the filter from masking occasional high inputs for the current frame. Thus, the final parameter is the maximum value in the long-term version of the frame or segment and the feature
[0097] Gmax_2_16=max(Gad_2_16,Gd_2_16) (Equation 11)
[0098] The parameter Gmax_2_16 may alternatively be expressed as, for example, epsP_2_16_dlp_max or g max_0_2 .
[0099] Spectral proximity / difference measurements
[0100] The spectral proximity feature uses a frequency analysis of the current input frame or segment, where subband energies are calculated and compared to subband background estimates. The spectral proximity parameter or feature can be used in combination with the above-mentioned parameters related to linear prediction gain, for example to ensure that the current segment or frame is relatively close to or at least not too far away from a previous background estimate.
[0101] Figure 5 A block diagram of the calculation of the spectral proximity or difference measure is shown. During an initialization period, e.g., in the first 150 frames, a comparison is made with a constant corresponding to an initial background estimate. After initialization, normal operation is entered and a comparison is made with the background estimate. Note that although the spectral analysis produces subband energies for 20 subbands, the calculation of nonstaB here uses only subbands i=2, ... 16 because it is primarily in these bands where the speech energy is located. Here nonstaB reflects non-stationarity.
[0102] Therefore, during initialization, nonstaB is calculated using Emin (here Emin is set to Emin=0.0035):
[0103] nonstaB = sum(abs(log(Ecb(i)+1)-log(Emin+1))) (Equation 12)
[0104] Here, the sum is taken over i=2...16.
[0105] This is done to reduce the impact of decision errors in the background noise estimate during initialization. After the initialization period, the current background noise estimate for the corresponding subband is calculated according to the following formula:
[0106] nonstaB=sum(abs(log(Ecb(i)+1)-log(Ncb(i)+1))) (Equation 13)
[0107] Here, the sum is taken over i=2...16.
[0108] Adding a constant of 1 to each subband energy before the logarithm reduces the sensitivity to spectral differences in low energy frames. The parameter nonstaB may alternatively be denoted, for example, as non_staB or nonstat B .
[0109] Figure 6 A block diagram illustrating an exemplary embodiment of a background estimator is shown in . Figure 6 The embodiment in includes a block for input framing 601, which divides the input audio signal into frames or segments of appropriate length (e.g., 5-30 milliseconds). The embodiment also includes a block for feature extraction 602, which calculates features (also represented as parameters in this article) for each frame or segment of the input signal. The embodiment also includes a block for updating decision logic 603, which is used to determine whether the background estimate can be updated based on the signal in the current frame (i.e., whether the signal segment does not have active content such as speech and music). The embodiment also includes a background updater 604, which is used to update the background noise estimate when the update decision logic indicates that it is appropriate to update the background noise estimate. In the illustrated embodiment, the background noise estimate can be derived for each subband (i.e., for multiple frequency bands).
[0110] The solution described herein can be used to improve the previous solution for background noise estimation as described in Appendix A of this paper and document WO2011 / 049514. Below, the solution described herein will be described in the context of the above solution. A code example from a code implementation of an embodiment of a background noise estimator will be given.
[0111] Below, actual implementation details are described for an embodiment of the present invention in a G.718-based encoder. The implementation uses many of the energy features described in the solutions in Appendix A and WO2011 / 049514, which are incorporated herein by reference. Reference is made to Appendix A and WO2011 / 049514 for further details beyond those presented below.
[0112] The following energy characteristics are defined in WO2011 / 049514:
[0113] Etot;
[0114] Etot_l_lp;
[0115] Etot_v_h;
[0116] totalNoise;
[0117] sign_dyn_lp;
[0118] The following correlation characteristics are defined in WO2011 / 049514:
[0119] aEn;
[0120] harm_cor_cnt
[0121] act_pred
[0122] cor_est
[0123] The following characteristics are defined in the solution given in Appendix A:
[0124]
[0125] In the attached Figure 7 The noise update logic from the solution presented in Appendix A is shown in . The improvements to the noise estimator of Appendix A that are relevant to the solution described herein primarily relate to the following parts: part 701 where features are calculated; part 702 where pause determinations are made based on different parameters; and part 703 where different actions are taken based on whether a pause is detected. In addition, these improvements may have an impact on the update 704 of the background noise estimate, which may be updated, for example, when a pause is detected based on the new features that may not have been detected before the solution described herein was introduced. In the exemplary implementation described here, the new features introduced herein are calculated as follows, starting with non_staB, which is calculated using the same method as above and Figure 6 The subband energy enr[i] of the current frame corresponding to Ecb(i) in the above and Figure 6 The first part of the first code segment below relates to a specific initial process of the first 150 frames of the audio signal before deriving a suitable background estimate.
[0126]
[0127]
[0128] The following code snippet shows how to calculate the new feature of linear prediction residual energy (ie for linear prediction gain). Here, the residual energy is named epsP[m] (referring to E(m) used previously).
[0129]
[0130]
[0131] The following code shows the creation of the combined metric, thresholds and flags used for the actual update decision (ie determining whether to update the background noise estimate). At least some of the parameters related to linear prediction gain and / or spectral proximity are indicated in bold text.
[0132]
[0133]
[0134] Since it is important that no update of the background noise estimate is performed when the current frame or segment includes active content, several conditions are evaluated to determine whether an update is made. The main decision step in the noise update logic is whether to update, and this is formed by evaluating the following underlined logical expressions. The new parameter NEW_POS_BG (new with respect to the solution in Appendix A and WO2011 / 049514) is a pause detector and is obtained based on the linear prediction gain of the linear prediction filter from the 0th order to the 2nd order model and from the 2nd order to the 16th order model, and tn_ini is obtained based on features related to spectral proximity. Below is the decision logic using the new features according to an exemplary embodiment.
[0135]
[0136]
[0137]
[0138] As mentioned earlier, features from linear prediction provide a level-independent analysis of the input signal that improves the judgment of background noise updates, which is particularly useful in the SNR range of 10 to 20 dB where energy-based SAD has limited performance due to the normal dynamic range of speech signals.
[0139] The background proximity feature also improves the background noise estimate because it can be used for both initialization and normal operation. During initialization, it can allow for (lower level) background noise with primarily low frequency content (which is common for car noise). In addition, these features can be used to prevent noise updates using low energy frames (which have large differences in frequency characteristics compared to the current background estimate), which indicates that the current frame may be low level active content, and the update can prevent detection of future frames with similar content.
[0140] Figure 8-10 It shows how each parameter or metric performs for speech against a background of 10dB SNR car noise. Figure 8-10 In , each dot “·” represents the frame energy. Figure 8 and Figure 9a-c, the energies have been divided by 10 to be more comparable with features based on G_0_2 and G_2_16. These figures correspond to an audio signal comprising two utterances, with the approximate locations of the first utterance being in frames 1310-1420, and for the second utterance in frames 1500-1610.
[0141] Figure 8 The frame energy ( / 10) for 10dB SNR speech in the case of car noise is shown (dots, "·") as well as features G_0_2 (circles, "○") and Gmax_0_2 (plus signs, "+"). Note that during car noise, G_0_2 is 8 because there is some correlation in the signal that can be modeled using linear prediction with a model order of 2. During speech, feature Gmax_0_2 becomes over 1.5 (in this case) and drops to 0 after a speech burst. In a specific implementation of the decision logic, G max_0_2 needs to be below 0.1 to allow noise updates using this feature.
[0142] Figure 9a Frame energy ( / 10) (dots, “·”) and features G_2_16 (circles, “○”), G1_2_16 (crosses, “x”), G2_2_16 (plus signs, “+”) are shown. Figure 9b Frame energy ( / 10) (dots, “·”) and features G_2_16 (circles, “○”), Gd_2_16 (crosses, “x”), and Gad_2_16 (plus signs, “+”) are shown. Fig.9c Frame energy ( / 10) (dots, “·”) and features G_2_16 (circles, “○”) and Gmax_2_16 (plus signs, “+”) are shown. Figure 9a The plots shown in -c are also related to 10dB SNR speech in the case of car noise. For ease of viewing each parameter, the features are shown in three plots. Note that during car noise (i.e., external speech), G_2_16 (circled "○") is just above 1, indicating that for this type of noise, the gain from the higher model order is lower. During speech, feature Gmax_2_16 (plus sign, Fig.9c ) increases, and then begins to fall back to 0. In a particular implementation of the decision logic, the feature Gmax_2_16 must also become below 0.1 to allow the noise to update. In this particular audio signal sample, this does not happen.
[0143] Fig.10The frame energy (dot, "·") (not divided by 10 this time) and the feature nonstaB (plus sign, "+") for 10dB SNR speech in the case of car noise are shown. During the segments with only noise, the feature nonstaB is in the range 0-10, and for speech it becomes larger (because the frequency characteristics are different for speech). However, it should be noted that even during speech, there are frames where the feature nonstaB falls within the range 0-10. For these frames, there may be the possibility to do a background noise update and thus better track the background noise.
[0144] The solution disclosed herein also relates to a background noise estimator implemented in hardware and / or software.
[0145] Background noise estimator, Figures 11a-11c
[0146] exist Fig.11a An exemplary embodiment of a background noise estimator is shown in a general manner in FIG. A background noise estimator is referred to as a module or entity configured to estimate background noise in an audio signal, the audio signal including speech and / or music. The background noise estimator 1100 is configured to perform the same as described above, for example with reference to FIG. Figure 2 and Figure 7 At least one method corresponding to the described method. The background noise estimator 1100 is associated with the same technical features, purposes and advantages as the aforementioned method embodiments. In order to avoid unnecessary repetition, the background noise estimator will be briefly described.
[0147] The background noise estimator may be implemented and / or described as follows.
[0148] The background noise estimator 1100 is configured to estimate the background noise of the audio signal. The background noise estimator 1100 includes a processing circuit or processing device 1101 and a communication interface 1102. The processing circuit 1101 is configured to enable the background noise estimator 1100 to obtain (e.g., determine or calculate) at least one parameter (e.g., NEW_POS_BG) based on the following items: a first linear prediction gain, calculated as: for the audio signal segment, the quotient between the residual signal from the 0th order linear prediction and the residual signal from the 2nd order linear prediction; and a second linear prediction gain, calculated as: for the audio signal segment, the quotient between the residual signal from the 2nd order linear prediction and the residual signal from the 16th order linear prediction.
[0149] The processing circuit 1101 is further configured to cause the background noise estimator to determine whether the audio signal segment includes a pause, i.e., no active content such as speech and music, based at least on the obtained at least one parameter. The processing circuit 1101 is further configured to cause the background noise estimator to update the background noise estimate based on the audio signal segment when the audio signal segment includes a pause.
[0150] The communication interface 1102, which may also be represented as, for example, an input / output (I / O) interface, includes an interface for sending data to and receiving data from other entities or modules. For example, a residual signal associated with linear prediction model orders 0, 2, and 16 may be obtained (e.g., received via an I / O interface from an audio signal encoder performing linear prediction coding).
[0151] like Fig.11b As shown in , the processing circuit 1101 may include a processing device, such as a processor 1103 (e.g., a CPU) and a memory 1104 for storing or holding instructions. The memory will then include instructions, such as in the form of a computer program 1105, which, when executed by the processing device 1103, causes the background noise estimator 1100 to perform the above-mentioned actions.
[0152] exist Fig.11c An alternative implementation of the processing circuit 1101 is shown in . The processing circuit here includes an obtaining or determining unit or module 1106, which is configured to cause the background noise estimator 1100 to obtain (e.g., determine or calculate) at least one parameter (e.g., NEW_POS_BG) based on the following: a first linear prediction gain, calculated as: for the audio signal segment, the quotient between the residual signal from the 0th order linear prediction and the residual signal from the 2nd order linear prediction; and a second linear prediction gain, calculated as: for the audio signal segment, the quotient between the residual signal from the 2nd order linear prediction and the residual signal from the 16th order linear prediction. The processing circuit also includes a determining unit or module 1107, which is configured to cause the background noise estimator 1100 to determine whether the audio signal segment includes a pause, i.e., there is no active content such as speech and music, based on at least one parameter obtained; the processing circuit 1101 also includes an updating unit 1108, which is configured to cause the background noise estimator to update the background noise estimate based on the audio signal segment when the audio signal segment includes a pause.
[0153] The processing circuit 1101 may include further units, such as a filtering unit or module, which is configured to cause the background noise estimator to low-pass filter the linear prediction gain, thereby creating one or more long-term estimates of the linear prediction gain. The action of low-pass filtering may be performed in other ways, such as by the determination unit or module 1107.
[0154] Embodiments of the background noise estimator described above may be configured for use with the various method embodiments described herein, such as limiting and low-pass filtering the linear prediction gain; determining the difference between the linear prediction gain and the long-term estimate and between the long-term estimates; and / or obtaining and using spectral proximity measurements, etc.
[0155] The background noise estimator 1100 may be assumed to include additional functionality for performing background noise estimation (such as the functionality illustrated in Appendix A).
[0156] Fig.12 A background noise estimator 1200 according to an example embodiment is shown. The background estimator 1200 comprises, for example, an input unit for receiving residual energies of model orders 0, 2 and 16. The background estimator further comprises a processor and a memory containing instructions executable by the processor such that the background estimator is operative to perform a method according to the embodiments described herein.
[0157] Therefore, if Fig.13 As shown, the background estimator may include an input / output unit 1301, a calculator 1302 for calculating the first two feature sets from the residual energies of model orders 0, 2 and 16, and an analyzer 1303 for calculating spectral proximity features.
[0158] Background noise estimator as described above can be included in VAD or SAD, encoder and / or decoder (i.e. codec), and / or included in equipment (e.g. communication equipment).Communication equipment can be user equipment (UE), in the form of mobile phone, video camera, recorder, tablet computer, desktop computer, laptop computer, TV set-top box or home server / home gateway / home access point / home router.In some embodiments, communication equipment can be a communication network device suitable for the encoding and / or transcoding of audio signal.The example of such communication network device is server, such as media server, application server, gateway and radio base station.Communication equipment can also be suitable for being arranged in (i.e. being embedded in) ships, unmanned aircraft, aircraft and road vehicles such as cars, buses or trains such as ships.Such embedded devices usually belong to vehicle information equipment unit or vehicle infotainment system.
[0159] The steps, functions, processes, modules, units and / or blocks described herein may be implemented in hardware using any conventional techniques, for example using discrete circuit or integrated circuit technology, including both general purpose electronic circuits and application specific circuits.
[0160] Specific examples include one or more appropriately configured digital signal processors and other known electronic circuits, such as interconnected discrete logic gates, or application specific integrated circuits (ASICs) for performing specific functions.
[0161] Alternatively, at least some of the above steps, functions, processes, modules, units and / or boxes may be implemented in software, such as a computer program executed by a suitable processing circuit including one or more processing units. Before and / or during use of the computer program in the network node, the software may be carried by a carrier such as an electronic signal, an optical signal, a radio signal or a computer-readable storage medium.
[0162] When executed by one or more processors, the flowcharts (one or more) presented herein may be considered as computer flowcharts (one or more). The corresponding apparatus may be defined as a set of functional modules, where each step performed by the processor corresponds to a functional module. In this case, the functional modules are implemented as computer programs running on the processor.
[0163] Examples of processing circuits include, but are not limited to, one or more microprocessors, one or more digital signal processors (DSPs), one or more central processing units (CPUs), and / or any suitable programmable logic circuits, such as one or more field programmable gate arrays (FPGAs) or one or more programmable logic controllers (PLCs). That is, the units or modules in the arrangements in the above-mentioned different nodes may be implemented as a combination of analog or digital circuits, and / or one or more processors configured by software and / or firmware stored in a memory. One or more of these processors and other digital hardware may be included in a single application-specific integrated circuit (ASIC), or several processors and various digital hardware may be distributed over several separate components, whether individually packaged or assembled as a system on a chip (SoC).
[0164] It should also be understood that the general processing capabilities of any common device or unit implementing the proposed technology can be reused.Existing software can also be reused, for example, by reprogramming the existing software or by adding new software components.
[0165] The above embodiments are presented as examples only, and it should be understood that the technology presented is not limited thereto. It will be appreciated by those skilled in the art that various modifications, combinations and changes may be made to the embodiments without departing from the scope of the invention. In particular, in other technically feasible configurations, the schemes of different parts in different embodiments may be combined.
[0166] When the words "include" or "including..." are used, they should be understood as non-limiting, ie meaning "including at least".
[0167] It should be noted that, in some alternative embodiments, the function / action marked in the frame may not occur in the order marked in the flow chart. For example, depending on the function / action involved, the two frames shown in succession can actually be performed simultaneously in essence, or the frame can sometimes be performed in the opposite order. In addition, the function of a given module in a flow chart and / or a block diagram can be separated into the function of two or more frames of a plurality of frames and / or a flow chart and / or the block diagram can be integrated at least in part. Finally, without departing from the scope of the present invention, other blocks can be added / inserted between the blocks shown, and / or blocks / operations can be omitted.
[0168] It should be understood that the selection of interaction units and the naming of the units in this disclosure are for illustrative purposes only, and that a node suitable for executing any of the above methods may be configured in a number of alternative ways to be able to perform the suggested processing actions.
[0169] It should also be noted that the units described in this disclosure should be regarded as logical entities and not necessarily separate physical entities.
[0170] Unless expressly stated otherwise, reference to an element in the singular is not intended to mean "one and only one," but rather "one or more." All structural and functional equivalents to the elements of the above-described preferred embodiment that are known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the present claims. In addition, it is not necessary for a device or method to address every problem sought to be solved by the technology disclosed herein, for it to be included herein.
[0171] In some examples herein, detailed descriptions of well-known devices, circuits, and methods are omitted so as not to obscure the description of the disclosed technology with unnecessary detail. All statements herein listing principles, aspects, and embodiments of the disclosed technology, as well as specific examples thereof, are intended to include structural and functional equivalents thereof. Furthermore, regardless of structure, it is intended that such equivalents include both currently known equivalents and equivalents developed in the future, such as developed units that perform the same function.
[0172] Appendix A
[0173] References to the accompanying drawings hereinafter are to Fig.14 and Fig.15 .
[0174] Fig.14Flowchart showing an exemplary embodiment of a method for background noise estimation according to the technology proposed herein. The method is intended to be performed by a background noise estimator (which may be part of a SAD). The background noise estimator and the SAD may also be included in an audio encoder, and then in a wireless device or a network node. For the described background noise estimator, there is no restriction on adjusting the noise estimate downward. For each frame, whether the frame is background or active content, if the new value is lower than the current value it directly uses, a possible new subband noise estimate is calculated because it is most likely from a background frame. The following noise estimation logic is the second step, in which it is determined whether the subband noise estimate can be increased and how much it can be increased if it can be increased, and the increase is based on the possible new subband noise estimate calculated previously. Basically, this logic results in the current frame being determined to be a background frame, and if it is uncertain, a smaller increase than the original estimated can be allowed.
[0175] Fig.14 The method shown includes: when the energy level of the audio signal segment is greater than (1402:1) a threshold value of a long-term minimum energy level lt_min, or when the energy level of the audio signal segment is less than (1402:2) a threshold value of lt_min, but no pause is detected in the audio signal segment (1404:1):
[0176] - When the audio signal segment is determined (1403:2) to include music, and the current background noise estimate exceeds a minimum value (in Fig.14 When (1405:1), the current background noise estimate is reduced (1406).
[0177] By performing the above operations and providing the background noise estimate to the SAD, the SAD is enabled to perform more adequate voice activity detection and also to recover from erroneous background noise estimate updates.
[0178] The energy level of the audio signal segment used in the above method may alternatively be referred to as, for example, current frame energy (Etot), or as energy of the signal segment or frame, which may be calculated by summing the subband energies of the current signal segment.
[0179] Another energy feature used in the above method (i.e., the long-term minimum energy level lt_min) is an estimate that is determined by multiple prior audio signal segments or frames. lt_min can alternatively be represented as, for example, Etot_l_lp. A basic way to derive lt_min is to use the minimum value of the history of the current frame energy over several past frames. If the value calculated as: "current frame energy - long-term minimum estimate" is below a threshold (represented as, for example, THR1), then the current frame energy is considered here to be close to or near the long-term minimum energy. That is, when (Etot - lt_min) < THR1, the current frame energy (Etot) can be determined (1402) to be near the long-term minimum energy lt_min. Depending on the implementation, the case when (Etot - lt_min) = THR1 can be referred to as determination 1402:1 or 1402:2. Fig.14 In it, serial number 1402:1 indicates the determination that the current frame energy is not near lt_min, while serial number 1402:2 indicates the determination that the current frame energy is near lt_min. Fig.14 Other serial numbers of the form XXX:Y in it indicate corresponding determinations. The feature lt_min will be further described below.
[0180] The minimum value that the current background noise estimate has to exceed in order to be reduced can be assumed to be zero or a small positive value. For example, as will be explained in the code below, the current total energy of the background estimate (which can be represented as "totalNoise" and determined as, for example, 10*log10∑backr[i]) needs to exceed the minimum value of zero for reduction in the subsequent discussion. Alternatively or additionally, each entry in the vector backr[i] containing the sub-band background estimate can be compared with the minimum value E_MIN to perform the reduction. In the code example below, E_MIN is a small positive value.
[0181] It should be noted that according to a preferred embodiment of the solution proposed herein, the determination of whether the energy level of an audio signal segment is greater than a threshold (which is higher than lt_min) is based only on information derived from the input audio signal, i.e., it is not based on feedback from the voice activity detector determination.
[0182] The determination 1404 of whether the current frame includes a pause can be performed in different ways based on one or more criteria. The pause criterion can also be referred to as a pause detector. A single pause detector or a combination of different pause detectors can be applied. In the case of a combination of pause detectors, each pause detector can be used to detect pauses under different conditions. An indicator that the current frame may include a pause or inactivity is that the correlation feature of the frame is low, and multiple prior frames also have low correlation features. If the current energy is close to the long-term minimum energy and a pause is detected, the background noise can be updated according to the current input, as Fig.14 In addition to the energy level of the audio signal segment being less than a threshold value above lt_min, a pause may be considered to be detected in the following case: it has been determined that a predetermined number of consecutive preceding audio signal segments do not include an active signal and / or the dynamics of the audio signal exceeds a threshold value. This is also shown in the code example below.
[0183] The reduction (1406) of the background noise estimate enables handling of situations where the background noise estimate becomes "too high" (i.e., correlates to the true background noise). This can also be expressed as the background noise estimate deviating from the actual background noise. An overly high background noise estimate may lead to an inappropriate determination of the SAD, wherein the current signal segment is determined to be inactive even though it includes active speech or music. The reason why the background noise estimate becomes too high is due to erroneous or undesired background noise updates, for example in music, wherein the noise estimate mistakes the music for background and allows the noise estimate to increase. The disclosed method allows the erroneously updated background noise estimate to be adjusted, for example, when a subsequent frame of the input signal is determined to include music. This adjustment is performed by a forced reduction of the background noise estimate, wherein the noise estimate is reduced, even if the current input signal segment energy is higher than the current background noise estimate, for example in a subband. It should be noted that the logic for background noise estimation described above is used to control the increase of background subband energy. When the current frame subband energy is lower than the background noise estimate, the subband energy is always allowed to be reduced. This function is not implemented in Fig.14 . This decrease usually has a fixed setting for the step size. However, according to the above method, the background noise estimate should only be allowed to increase in association with the decision logic. When a pause is detected, the energy and correlation characteristics can also be used to decide (1407) how large the adjustment step size of the background estimate increase should be before the actual background noise update is performed.
[0184] As mentioned before, some music segments may be difficult to separate from background noise because they resemble noise. Therefore, the noise update logic may accidentally allow increased subband energy estimates even if the input signal is an active signal. This can cause problems because the noise estimates may become higher than they should be.
[0185] In prior art background noise estimators, subband energy estimates can only be reduced if the input subband energy is below the current noise estimate. However, since some music segments may be difficult to separate from background noise because they resemble noise, the inventors have recognized the need for a recovery strategy for music. In the embodiments described herein, such recovery may be performed by forcing a reduction in the noise estimate when the input signal returns to music-like characteristics. That is, when the energy and pause logic described above prevents (1402:1, 1404:1) the noise estimate from increasing, it is tested (1403) whether the input is suspected to be music, and if so (1403:2), the subband energy is reduced (1406) by small amounts on a frame-by-frame basis until the noise estimate reaches a minimum level (1405:2).
[0186] The background estimator as described above may be included or implemented in a VAD or SAD and / or an encoder and / or a decoder, wherein the encoder and / or the decoder may be implemented in a user device such as a mobile phone, a laptop computer, a tablet computer, etc. The background estimator may also be included in a network node such as a media gateway, for example as part of a codec.
[0187] Fig.15 1 is a block diagram schematically illustrating an implementation of a background estimator according to an exemplary embodiment. The input framing block 151 first divides the input signal into frames of appropriate length (e.g., 5-30 milliseconds). For each frame, the feature extractor 152 calculates at least the following features from the input: 1) The feature extractor analyzes the frame in the frequency domain and calculates the energy for a set of subbands. The subband is the same subband to be used for background estimation. 2) The feature extractor also analyzes the frame in the time domain and calculates correlation (expressed as, for example, cor_est and / or lt_cor_est), which is used to determine whether the frame includes active content. 3) The feature extractor also uses the current frame total energy (e.g., expressed as Etot) to update the features of the energy history of the current and earlier input frames, such as the long-term minimum energy lt_min. The correlation and energy features are then fed to the update judgment logic block 153.
[0188] Here, the judgment logic according to the solution disclosed in this article is implemented in the update judgment logic block 153, wherein the correlation and energy features are used to judge whether the current frame energy is close to the long-term minimum energy; judge whether the current frame is part of a pause (inactive signal); and judge whether the current frame is part of music. The solution according to the embodiment described in this article involves how to use these features and judgments to update the background noise estimate in a robust manner.
[0189] In the following, implementation details of an embodiment of the solution disclosed herein will be described. The implementation details below are from an embodiment in a G.718-based encoder. This embodiment uses some features described in WO2011 / 049514 and WO2011 / 049515.
[0190] The following features are defined in the modified G.718 described in WO2011 / 049514:
[0191] Etot; Total energy of the current input frame
[0192] Etot_l tracks the minimum energy envelope
[0193] Etot_l_lp; Smoothed version of the minimum energy envelope Etot_l
[0194] totalNoise; The current total energy of the background estimate
[0195] bckr[i]; vector with subband background estimates;
[0196] tmpN[i]; precomputed potential new background estimate
[0197] aEn; Background detector (counter) using multiple features
[0198] harm_cor_cnt Counts frames starting from the last frame with a correlation or harmonic event.
[0199] act_pred Activity prediction based only on input frame features
[0200] Cor[i] is a vector of correlation estimates, where i=0 is the end of the current frame,
[0201] i=1 is the beginning of the current frame, i=2 is the end of the previous frame
[0202] The following features are defined in the modified G.718 described in WO2011 / 049515:
[0203] Etot_h tracks the maximum energy envelope
[0204] sign_dyn_lp; Dynamic characteristics of the smoothed input signal
[0205] The feature Etot_v_h is also defined in WO2011 / 049514, but in the present embodiment it is modified and is now implemented as follows:
[0206]
[0207] Etot_v measures the absolute energy change between frames, i.e., the absolute value of the instantaneous energy change between frames. In the above example, when the difference between the last frame energy and the current frame energy is less than 7 units, the energy change between these two frames is determined to be "low". This is used as an indicator that the current frame (and the previous frame) may be part of a pause (i.e., only background noise). However, this low change can also be found in the middle of a burst of speech, for example. The variable Etot_last is the energy level of the previous frame.
[0208] The steps described above in code can be executed as Fig.14 2011 / 049514, i.e., part of action 201. In the WO2011 / 049514 implementation, a VAD flag is used to determine whether the current audio signal segment includes background noise. The inventors recognize that reliance on feedback information may be problematic. In the solution disclosed herein, determining whether to update the background noise estimate does not rely on a VAD (or SAD) judgment.
[0209] Furthermore, in the solution disclosed herein, the following features which are not part of the implementation of WO2011 / 049514 may be calculated / updated as part of the same step, i.e. Fig.14 The calculation / updating correlation and energy steps shown in . These features are also used by the decision logic to determine whether to update the background estimate.
[0210] In order to achieve more accurate background noise estimation, multiple features are defined below. For example, new features cor_est and It_cor_est about correlation are defined. The feature cor_est is an estimate of the correlation in the current frame, and cor_est is also used to generate It_cor_est, which is a smoothed long-term estimate of the correlation.
[0211] cor_est=(cor[0]+cor[1]+cor[2]) / 3.0f;
[0212] st->lt_cor_est=0.01f*cor_est+0.99f*st->lt_cor_est;
[0213] As described above, cor[i] is a vector including correlation estimates, cor[0] represents the end of the current frame, cor[1] represents the beginning of the current frame, and cor[2] represents the end of the previous frame.
[0214] In addition, a new feature It_tn_track is calculated, which gives a long-term estimate of how often the background estimate is close to the energy of the current frame. When the current frame is close enough to the current background estimate, it is registered as a condition that signals (1 / 0) whether it is close to the background. This signal is used to form the long-term measurement It_tn_track.
[0215] st->lt_tn_track=0.03f*(Etot-st->totalNoise<10)+0.97f*st->lt_tn_track;
[0216] In this example, when the current frame energy is close to the background noise estimate, 0.03 is added, otherwise, the only remaining term is 0.97 times the previous value. In this example, "close" is defined as the difference between the current frame energy Etot and the background noise estimate totalNoise is less than 10 units. Other definitions of "close" are also possible.
[0217] Furthermore, the difference between the current frame energy Etot and the current background estimate totalNoise is used to determine a feature lt_tn_dist giving a long term estimate of the distance. A similar feature lt_Ellp_dist is created for the distance between the long term minimum energy Etot_l_lp and the current frame energy Etot.
[0218] st->lt_tn_dist=0.03f*(Etot-st->totalNoise)+0.97f*st->lt_tn_dist;
[0219] st->lt_Ellp_dist=0.03f*(Etot-st->Etot_l_lp)+0.97f*st->lt_Ellp_dist;
[0220] The feature harm_cor_cnt introduced above is used to count the number of frames starting from the last frame with a correlation or harmonic event (i.e. starting from a frame that meets a certain criterion related to activity). That is, when the condition harm_cor_cnt == 0, this means that the current frame is most likely an active frame because it shows a correlation or harmonic event. This is used to form a long-term smoothed estimate lt_haco_ev of the frequency of occurrence of such events. In this case, the update is asymmetric, that is, different time constants are used in the case of increasing or decreasing the estimate, as described below.
[0221]
[0222] The low value of the feature It_tn_track introduced above indicates that for some frames, the input frame energy is not close to the background energy. This is because It_tn_track decreases for each frame if the current frame energy is not close to the background energy estimate. It_tn_track is only increased when the current frame energy is close to the background energy estimate, as shown above. In order to get a better estimate of how long this "no tracking" (i.e., frame energy is far from the background estimate) lasts, a counter low_tn_track_cnt for the number of frames where there is no tracking is formed as:
[0223]
[0224] In the above example, "low" is defined as being below a value of 0.05. This should be considered an exemplary value, which may be chosen differently.
[0225] For Fig.14 In the step "Forming Pauses and Music Judgments" shown in FIG. 1 , the following three code expressions are used to form pause detection (also represented as background detection). In other embodiments and implementations, other criteria may also be added for pause detection. The correlation and energy features are used to form the actual music judgment in the code.
[0226] 1: bg_bgd = Etot<Etot_l_lp+0.6f*st-> Etot_v_h;
[0227] bg_bgd will become "1" or "true" when Etot is close to the background noise estimate. bg_bgd is used as a mask for other background detectors. That is, if bg_bgd is not "true", the following background detectors 2 and 3 do not need to be evaluated. Etot_v_h is the noise variation estimate, which can alternatively be expressed as N var Etot_v_h is obtained from the input total energy (in the logarithmic domain) using Etot_v, where Etot_v measures the absolute energy change between frames. It should be noted that the feature Etot_v_h is constrained to increase the maximum value by only a small constant value (e.g., 0.2 for each frame). Etot_l_lp is a smoothed version of the minimum energy envelope Etot_l.
[0228] 2: aE_bgd=st->aEn==0;
[0229] When aEn is zero, aE_bgd becomes "1" or "true". aEn is a counter that increments when an active signal is determined to be present in the current frame and decrements when it is determined that the current frame does not include an active signal. aEn may not increment beyond a certain number (e.g., 6) and does not decrease to less than zero. After multiple (e.g., 6) consecutive frames, in the absence of an active signal, aEn will be equal to zero. 3:
[0231] sd1_bgd=(st->sign_dyn_lp>15)&&(Etot-st->Etot_l_lp) <st->Etot_v_h&&st->harm_cor_cnt>20;
[0232] sd1_bgd will be "1" or "true" if three different things are true: the signal dynamics sign_dyn_lp is high, more than 15 in this example; the current frame energy is close to the background estimate; and: a certain number of frames have passed without correlation or harmonic events, 20 frames in this example.
[0233] The function of bg_bgd is to detect the sign that the energy of the current frame is close to the long-term minimum energy. The latter two (aE_bgd and sd1_bgd) represent pause or background detection under different conditions. aE_bgd is the most commonly used detector of the two, while sd1_bgd mainly detects speech pauses in high SNR.
[0234] The new decision logic according to an embodiment of the technology disclosed in this article is constructed in the code below. The decision logic includes a mask condition bg_bgd and two pause detectors aE_bgd and sd1_bgd. There may also be a third pause detector that evaluates long-term statistics on the performance of totalNoise tracking the minimum energy estimate. The condition evaluated when the first line is true is the decision logic about how large the step size updt_step should be, and the actual noise update is to assign the value to "st->bckr[i]=-". It should be noted that tmpN[i] is the potential new noise level calculated previously according to the scheme described in WO2011 / 049514. The decision logic below follows Fig.14 Part 1409, which is partially indicated in association with the code below
[0235]
[0236]
[0237]
[0238] The code segment in the last code block starting with " / * If in music... * / contains a forced reduction of the background estimate, which is used in the event that the current input is suspected to be music. This is judged to be a function of: poor tracking of the background noise over a longer period compared to the minimum energy estimate, and, frequent occurrences of harmonic or related events, and, the last condition "totalNoise>0" is a check that the current total energy of the background estimate is greater than zero, which means that the background estimate can be considered for reduction. In addition, it is determined whether "bckr[i]>2*E_MIN", where E_MIN is a small positive value. This is to check each entry in the vector including the subband background estimate, so that the entry needs to exceed E_MIN to be reduced (multiplied by 0.98 in this example). These checks are performed to avoid reducing the background estimate to a value that is too small.
[0239] The embodiments improve the background noise estimation, which enables SAD / VAD to implement an efficient DTX scheme with better performance and avoids the degradation of speech quality or music due to clipping.
[0240] By removing the decision feedback described in WO2011 / 049514 from Etot_v_h, the noise estimate and SAD can be better separated. This is beneficial because if / when the SAD function / tuning changes, the noise estimate does not change. That is, the determination of the background noise estimate becomes independent of the function of the SAD. In addition, the tuning of the noise estimation logic also becomes simpler because it is not affected by the secondary effects from the SAD when the background estimate changes.
Claims
1. A method for updating a background noise estimate of an audio signal, the method comprising: - obtaining (201) at least one parameter associated with an input audio signal segment based on: a first linear prediction gain calculated as the quotient between, for the audio signal segment, a residual signal energy from a first linear prediction and a residual signal energy from a second linear prediction, the second linear prediction being from a higher order than the first linear prediction; as well as a second linear prediction gain calculated as the quotient between, for the audio signal segment, a residual signal energy from the second linear prediction and a residual signal energy from a third linear prediction, the third linear prediction being from a higher order than the second linear prediction; - determining (202) whether the audio signal segment comprises a pause, based at least on the at least one parameter; as well as: If the audio signal segment is determined to include a pause: - Updating (203) a background noise estimate based on the audio signal segment.
2. The method according to claim 1, wherein: Obtaining the at least one parameter comprises: - limiting the first linear prediction gain and the second linear prediction gain to take values within a predefined interval.
3. The method according to claim 1 or 2, wherein: Obtaining the at least one parameter comprises: - creating at least one long term estimate of each of the first linear prediction gain and the second linear prediction gain, wherein the long term estimate is further based on a corresponding linear prediction gain associated with at least one previous audio signal segment.
4. The method according to any one of claims 1 to 3, wherein: Obtaining the at least one parameter comprises: - determining a difference between one of the linear prediction gains associated with the audio signal segment and a long term estimate of the linear prediction gain.
5. The method according to any one of claims 1 to 4, wherein: Obtaining the at least one parameter comprises: A difference between two long term estimates associated with one of the linear prediction gains is determined.
6. The method according to any one of claims 1 to 5, wherein: Obtaining the at least one parameter includes low pass filtering the first linear prediction gain and the second linear prediction gain.
7. The method according to claim 6, wherein: The filter coefficients of at least one low pass filter depend on a relationship between a linear prediction gain associated with the audio signal segment and an average of corresponding linear prediction gains obtained based on a plurality of previous audio signal segments.
8. A method according to any one of the preceding claims, wherein: Determining whether the audio signal segment includes a pause is also based on a spectral proximity measure associated with the audio signal segment.
9. The method according to claim 8, further comprising: The spectral proximity measure is obtained based on a set of frequency bands for the audio signal segment and an energy of a background noise estimate corresponding to the set of frequency bands.
10. The method according to claim 9, wherein: During the initialization period, the initial value E is used min as the background noise estimate based on which the spectral proximity measure is obtained.
11. An apparatus (1100) for updating a background noise estimate of an audio signal, the audio signal comprising a plurality of audio signal segments, the apparatus being configured to: - obtaining at least one parameter based on: a first linear prediction gain calculated as the quotient between, for the audio signal segment, a residual signal energy from a first linear prediction and a residual signal energy from a second linear prediction, the second linear prediction being from a higher order than the first linear prediction; as well as a second linear prediction gain calculated as the quotient between, for the audio signal segment, a residual signal energy from the second linear prediction and a residual signal energy from a third linear prediction, the third linear prediction being from a higher order than the second linear prediction; - determining, based at least on the at least one parameter, whether the audio signal segment comprises a pause; and If the audio signal segment is determined to include a pause: - Updating a background noise estimate based on said audio signal segment.
12. The apparatus according to claim 11, wherein the apparatus is further configured to perform the method according to any one of claims 2-10.
13. An audio codec comprising the apparatus according to claim 11 or 12.
14. A communication device comprising the apparatus according to claim 11 or 12.
Citation Information
Patent Citations
Method and background estimator for voice activity detection
WO2011049514A1
Method and voice activity detector for a speech encoder
WO2011049515A1
Method and background estimator for voice activity detection
CN102667927A
Method and apparatus for suppressing noise in communication system
CN1168204A