Abstract:
What is disclosed is a signal processing system, wherein a method and apparatus identify background noise in a signal containing speech and noise by separating the signal into frames, evaluating energy levels of selected frames, and identifying the frames as noise if certain consistency tests are met, and speech if certain pulsing, monotone, and speech level tests are met, and transition between speech and noise if transition deviation and consistency levels are met.

Description:
FIELD OF THE INVENTION 
     The present invention relates in general to communications systems, and more particularly to methods for detecting and differentiating noise and speech in voice communications systems. 
     BACKGROUND OF THE INVENTION 
     Speech recognition, detection, verification, and noise reduction systems all require the differentiation of noise versus speech in a communication signal. Regardless of which is being evaluated or manipulated, a system needs to &#34;know&#34; which portions of a signal are speech, and which are noise. 
     In a typical system, an input signal is sampled and converted to digital values, called &#34;samples&#34;. These samples are grouped into &#34;frames&#34; whose duration is typically in the range of 10 to 30 milliseconds each. An energy value is then computed for each such frame of the input signal. 
     A typical system is often implemented via a software implementation on a general purpose computer. The system can be implemented to operate on incoming frames of data by classifying each input frame as ambient noise if the frame energy is below an arbitrary energy threshold, or as speech if the frame energy is above the threshold. An alternative would be to analyze the individual frequency components of the signal in relation to a template of noise components looking for &#34;matches&#34; to historic noise patterns. Other variations of the above scheme are also known, and may be implemented. 
     The typical Speech/Noise Detector is initialized by setting the threshold to some pre-set value (usually based on a history of empirically observed energy levels of representative speech and ambient noise). During operation, as certain frames are classified as noise, the threshold can be dynamically adjusted to analyze the incoming frames, thereby creating a better discrimination between speech and noise. 
     A typical state-of-the-art Noise Estimator is then often utilized to form a quantitative estimate of the signal characteristics of the frame (typically described by its frequency components). This noise estimate is also initialized at the beginning of the input signal and then updated continuously during operation as more noise frames are received. If a frame is classified as noise by the Speech/Noise Detector, that frame is used to update the running estimate of noise. Typically, the more recently received frames of noise are given greater weight in the computation of the noise estimate than older, &#34;stale&#34; noise frames. 
     Effectiveness of the overall system is critically dependent on the noise estimate; a poor or inappropriate estimate will result in the system working on noise samples when it &#34;thinks&#34; it&#39;s working on speech samples, and vice-versa. An example of this would be when speech is actually at a low energy (below the threshold) and is wrongly characterized as noise. Alternatively, noise could be at an energy level exceeding the threshold, and wrongly be classified as speech. Further, in a system which looks for patterns matching historic noise samples, the incoming signal could be noise of a different pattern, and misidentified as speech. 
     As a consequence of these problems, speech recognition, detection, verification, and noise suppression results would be degraded. 
     BRIEF DESCRIPTION OF THE INVENTION 
     The foregoing drawbacks are overcome by the present invention. 
     What is disclosed is a method and system of noise/speech differentiation which can be used to provide superior identification of noise and speech, resulting in improvements in speech recognition, detection, verification, or noise reduction. 
     An implementation of the method and system is briefly described as follows: 
     A standard speech/noise detector can be modified such that the detector performs further analysis on incoming signal frames. This analysis would more accurately identify speech versus noise. 
     The detector performs a series of tests on incoming signal frames. These new and innovative tests, or any subset or combination of them, will result in superior classification of incoming signals as either noise or speech. 
     One such innovative test is the Monotone Test. If adjacent frames of a signal exhibit monotonic behavior (uniformly rising or falling energy levels), then the signal is more likely to be speech rather than noise. 
     Another such test is the Pulsing Test. If a high percentage of samples within a frame have values close to the maximum value in the frame, then the frame is said to be &#34;pulsedff&#34;, and is therefore more likely to be speech rather than noise. Of course, similar results could be obtained by evaluating each sample in equivalent alternative ways, such as the square of the value, without deviating from the invention. These alternative evaluations can then be used to identify &#34;pulsing&#34;. 
     Yet another such test is the Transition Deviation Test. This test compares the energy level of the current frame to the previous frame. If the deviation is relatively large, there is a likelihood that the signal is transitioning from speech to noise or vice versa. 
     A further set of three such tests measure consistency of signal energy. Consistent-1 Test compares the energy of the current frame to the previous frame. Consistent-2 Test compares the energy level of the current frame to each of the past frames in the segment (a group of frames that are classified the same; i.e., speech or noise). Consistent-3 Test compares the energy of the current frame to the average of the energy levels of the frames in the segment or that class of noise. 
     Generally, consistency is an indicator of noise, and inconsistency is either an indicator of speech, or of a transition between noise and speech. 
     The final test is the Speech Level Test. This is the only test described in this preferred embodiment which has been previously known and used in the art. When this test is used in conjunction with the above-described new, innovative tests, superior differentiation between speech and noise is obtained. 
     The Speech Level Test, as used historically and as described previously, is the comparison of the absolute value of the energy level of the current frame with a threshold (either an arbitrary threshold or one derived from previous speech classifications). If the energy of the current frame exceeds the threshold, then the frame is classified as speech. Otherwise, it is classified as noise. 
     The present invention instead uses the Speech Level Test in conjunction with the other &#34;new tests&#34;, in order to better classify a signal as being either speech or noise. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 shows a block diagram of an existing noise canceling system. 
     FIG. 2 depicts the workings of the inventive detector while in the Noise State. 
     FIG. 3 depicts the workings of the inventive detector while in the Speech State. 
     FIG. 4 depicts the workings of the inventive detector while in the Noise-like State. 
     FIG. 5 depicts the workings of the inventive detector while in the Transition State. 
     FIG. 6 is a state diagram, depicting the overall decision-making process of the preferred embodiment of the present invention. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     FIG. 1 depicts a typical, real-time noise cancellation system. The audio signal enters analog/digital converter (A/D 10) where the analog signal is digitized. The digitized signal output of A/D 10 is then divided into individual frames within framing 20. The resultant signal frames are then simultaneously inputted into noise canceller 50, speech/noise detector 30, and noise estimator 40. 
     When speech/noise detector 30 determines that a frame is noise, it signals noise estimator 40 that the frame should be input into the noise estimate algorithm. Noise estimator 40 then characterizes the noise in the designated frame, such as by a quantitative estimate of its frequency components. This estimate is then averaged with subsequently received frames of &#34;speechless noise&#34;, typically with a gradually lessening weighting for older frames as more recent frames are received (as the earlier frame estimates become &#34;stale&#34;). In this way, noise estimator 40 continuously calculates an estimate of noise characteristics. 
     Noise estimator 40 continuously inputs its most recent noise estimate into noise canceller 50. Noise canceller 50 then continuously subtracts the estimated noise characteristics from the characteristics of the signal frames received from framing 20, resulting in the output of a noise-reduced signal. 
     Speech/noise detector 30 is often designed such that its energy threshold amount separating speech from noise is continuously updated as actual signal frames are received, so that the threshold can more accurately predict the boundary between speech and non-speech in the actual signal frames being received from framing 20. This is typically accomplished by updating the threshold from input frames classified as noise only, or by updating the threshold from frames identified as either speech or noise. 
     The preferred embodiment of the invention is an improvement on speech/noise detector 30 by employing an arrangement and application of the inventive tests described above. It should be noted, however, that one with ordinary skill in the art could make various arrangements of the tests or subsets of the tests, including the use of alternate parameters in the tests, to achieve accurate discrimination between voice and noise in a communications signal. The tests are advantageously performed as follows: 
     Monotone Test: Within a set of N frames, at least M adjacent frames must display monotonic behavior in energy level; i.e., uniformly falling or rising values (the relative sizes of the steps are not important; rather that they are all rising or all falling). For instance, where N=4, and M=3, there must be at least 3 adjacent frames within the 4 most recently received frames displaying monotonic behavior to be indicative of speech. The reason for this is that noise would not be expected to display monotonicity. 
     Pulsing: Within a frame of 256 samples, the percentage of samples that are within the proximity of the maximum value are measured. If the percentage exceeds a particular threshold, the frame is classified as &#34;pulsed&#34;. For instance, in an advantageous embodiment of this test, the frame average is removed from the absolute value of each sample, and the result is compared to a threshold of 85% of the absolute value of the largest sample in the frame. If the percentage of samples in the frame which exceed this threshold is greater than 1.5%, the frame is classified as &#34;pulsed&#34;. 
     The reason for this test is that speech has a higher probability of being pulsed than stationary noise. Therefore, if noise is at a high energy level, but is not &#34;pulsed&#34;, it will be more accurately classified as noise under the &#34;pulse&#34; test, rather than as speech under the normally employed test of energy level. 
     Transition Deviation Test: This two-frame test compares the energy of the current frame to the previous frame. If the energy deviation is above a pre-selected threshold, the test passes. 
     For instance, an advantageous threshold would be 10 dB. 
     The reason for this test is to determine when the signal is in a &#34;transition state&#34;; that is, when speech is decaying into noise, or speech is beginning following noise. During these transition states, the energy deviation from one frame to the next is usually higher than during steady-state noise or steady-state speech. Separate classification of a signal as being in a &#34;transition state&#34; will keep a device from either wrongly classifying the signal at that point as speech (in order to detect, verify, or recognize it), or as noise (in order to reduce or eliminate it). 
     Consistent-1 Test: This one-frame test compares the energy of the current frame to the previous frame. If the energy deviation is below a threshold, the test passes. Unlike the Transition Deviation test, the threshold is advantageously set at 2 dB for signals above a &#34;low-noise&#34; energy level and 5 dB for signals below that level. In general, the energy level of a frame is calculated as follows: 
     The individual samples, normally represented by integer values, are normalized (divided by the maximum possible sample value). The average value of the (normalized) samples in the frame is then removed from each of the (normalized) samples, for &#34;de-bias&#34;ing purposes. The sum of the squares of the (normalized and debiased) samples in the frame is now calculated, and divided by the number of samples in the frame. The resulting number represents the frame energy level &#34;e&#34;, and a corresponding decibel value relative to an arbitrary reference value &#34;eref&#34; is calculated as 10*log(e/eref). The reference &#34;eref&#34; in this implementation was chosen arbitrarily as 0.03. An example of a &#34;low-noise&#34; energy level could then be set at -30 dB or below, utilizing the above relationship. 
     Consistent-2 Test: This test compares the energy of the current frame to each of the past frames in the segment. If each and every energy deviation is below a predetermined level, the test passes. Since this test is repeatedly applied as new frames are added to the segment, this guarantees that the deviation between any pair of frames in the segment is below the predetermined level. As in the Consistent-1 Test, the energy deviation threshold is 2 dB for signals above a &#34;low-noise&#34; energy level (threshold), and 5 dB for signals below that level. 
     Consistent-3: This test compares the energy of the current frame to the average energy level of the frames in the segment or class. If this deviation is below a deviation threshold, the test passes. The deviation threshold is calculated as follows: 
     The maximum energy deviation of an individual frame in the segment from the segment average is calculated. This is compared to the maximum energy deviation from average in the &#34;noise class&#34; to which this segment belongs, and the larger of the two is chosen. The noise class is determined by a &#34;noise classifier&#34;. 
     Specifically, a maximum deviation value can be computed for the noise class. This is the maximum deviation of energy of any individual noise frame in the class from the class average. This represents the &#34;typical&#34; consistency situation for noise of that class. 
     The current noise segment has a similar deviation quantity calculated. This represents the deviation seen in this particular instance of the associated class (accounting for some minor changes in the present noise from the entire class). 
     The maximum of the above two deviations is used for the Consistent-3 Test with a margin added to the greater deviation of the two, to obtain the final threshold. If the present frame meets this test, then the frame is considered part of the current noise segment, and therefore another instance of the determined class (and the current values would be used to update the historic values characterizing the class). Thus, given a noise segment (or class) whose frames lie within a certain deviation-versus-average (Consistent-3 Test), new frames are expected to have deviations within a certain margin of that deviation. 
     For example, the deviation margin could advantageously be set at 0.3 dB for signal energy above the &#34;low-noise&#34; energy level and 2 dB for signals below that level. 
     It should be noted that the Consistent-3 Test may result in the allowed deviation gradually growing, allowing greater fluctuation, with the segment still being classified in the same noise class. The test is therefor dynamic, and can &#34;learn&#34; (within limits), accommodating local variations in the noise class without breaking out of the Noise State. 
     Speech Level Test: The initial speech level is advantageously set at a default SNR value above the estimated noise level obtained from either a previously detected noise segment or the first incoming frame. After a speech segment is identified, the speech level is calculated from the frames in that speech segment. The speech-level threshold is set at a certain margin below the estimated speech level. 
     For example, the default SNR value is set at 10 dB. The speech threshold margin can be advantageously set at 5 dB, i.e. signals above the speech level minus 5 dB are declared to be in excess of the speech level. 
     The following arrangement of the above-described tests is the preferred method for differentiating between speech and noise of an incoming signal. Referring briefly to FIG. 5, the process identifies and categorizes four &#34;states&#34; (classifications of segments of frames) in order to facilitate the accomplishment of one or more desired tasks (such as speech recognition, detection, verification, or noise reduction). These four states comprise the Speech State (when it is determined that the segment is speech), the Noise State (when it is determined that the segment is noise), the Noise-like State (when it is determined that the segment is probably noise, but more data is required), and Transition State (when the segment is not definitively determined to be either speech or noise). When incoming frames do not appear to be classified the same as the previous frames in a segment, the process categorizes the most recent frames as being in the Transition State, until a more definitive classification into one of the other states can be made. 
     FIG. 2 describes the process when in the Noise State. When a new frame is received at 110, Consistent-3 Test 120 is performed. If it passes the test, another frame is received for analysis at 110. If the Consistent-3 Test fails, Consistent-1 Test 130 is performed. If this test passes, the state changes to the Noise-like State at step 140. If the Consistent-1 Test 130 fails, the Transition State is entered at step 150. 
     Turning to FIG. 3, which describes the process when in the Speech State 200, a new frame is received at 210, followed by the Transition Deviation Test 220. If the test passes, the state changes to the Transition State at 260. If Transition Deviation Test 220 fails, Speech Level Test 230 is performed. If Speech Level Test 230 fails, the state changes to the Transition State at 260. If it passes, Consistent-1 Test 240 is performed. If this test fails, the state remains in the Speech State and a new frame is received at 210. If Consistent-1 Test 240 passes, Monotone Test 250 is performed. If this test passes, the state remains in the Speech State and a new frame is received at 210. If Monotone Test 250 fails, the state changes to the Transition State at 260. 
     In FIG. 4, when the current segment is a Noise-like segment at 300, the next incoming frame is analyzed at 310. The Consistent-2 Test 320 is performed, and if it fails, the Transition State is entered at 370. If Consistent-2 Test 320 passes, Speech Level Test 330 is performed. If this test falls, Noise Frame Count 340 is performed. If Speech Level Test 330 passes, Pulse Test 360 is performed. If this test passes, the Transition State is entered at 370. If Pulse Test 360 fails, Noise Frame Count 340 is performed. If an adequate number (advantageously 3) of adjacent noise frames have been detected in Noise Frame Count 340, the Noise State is entered at 350. Otherwise, the state remains in the Noise-Like State and a new frame is received at 310. 
     In FIG. 5, the current frame (or segment, as the case may be) is determined to be in Transition State 400, and a new frame is received at 410. If this is the first frame (as determined at 420) the next frame is received at 410. If it is not the first frame, Consistent-1 Test 430 is performed. If passed, the Noise-like State at 470 is entered. If not, Speech Level Test 440 is performed. If Speech Level Test 440 fails, another new frame is received at 410. If Speech Level Test 440 passes, Transition Deviation Test 450 is performed. If Transition Deviation Test 450 passes, another new frame is received at 410. If it Transition Deviation Test 450 fails, the Speech State is entered at 460. 
     FIG. 6 is a state-transition diagram summarizing the four states and the various tests which determine when a different state is entered. A state-transition arc is traversed for each incoming frame of data. The present state would be identified to the downstream process (speech recognition, detection, verification, or noise reduction), in order for the appropriate operations to be performed, based on the classification of the signal at that point. 
     For instance, if the Speech State is entered, subsequent frames would be flagged as speech (until another state was entered), whereby the speech could be detected, verified, or recognized. If the Noise State was active, subsequent incoming frames would be classified as noise for possible noise reduction, classification, or elimination.