1. Technical Field
This invention relates generally to the field of speech processing systems, and more specifically, to the detection and isolation of a speech signal in a noisy sound environment.
2. Related Art
A sound is a vibration transmitted through any elastic material, solid, liquid, or gas. One type of common sound is human speech. When transmitting speech signals in a noisy environment, the signal is often masked by background noise. A sound may be characterized by frequency. Frequency is defined as the number of complete cycles of a periodic process occurring over a unit of time. A signal may be plotted against an x-axis representing time and a y-axis representing amplitude. A typical signal may rise from its origin to a positive peak and then fall to a negative peak. The signal may then return to its initial amplitude, thereby completing a first period. The period of a sinusoidal signal is the interval over which the signal is repeated.
Frequency is generally measured in Hertz (Hz). A typical human ear can detect sounds in the frequency range of 20-20,000 Hz. A sound may consist of many frequencies. The amplitude of a multifrequency sound is the sum of the amplitudes of the constituent frequencies at each time sample. Two or more frequencies may be related to one another by virtue of a harmonic relationship. A first frequency is a harmonic of a second frequency if the first frequency is a whole number multiple of the second frequency.
Multi-frequency sounds are characterized according to the frequency patterns which comprise them. Generally, noise will fall off a frequency plot at a certain angle. This frequency pattern is named “pink noise.” Pink noise is comprised of high intensity low frequency signals. As the frequency increases, the intensity of the sound diminishes. “Brown noise” is similar to “pink noise,” but exhibits a faster fall off. Brown noise may be found in automobile sounds, e.g., a low frequency rumbling, which tends to come from body panels. Sound that exhibits equal energy at all frequencies is called “white noise.”
A sound may also be characterized by its intensity, which is typically measured in decibels (dB). A decibel is a logarithmic unit of sound intensity, or ten times the logarithm of the ratio of the sound intensity to some reference intensity. For human hearing, the decibel scale is defined from zero (dB) for the average least perceptible sound to about one-hundred-and-thirty 130 (dB) for the average pain level.
The human voice is generated in the glottis. The glottis is the opening between the vocal cords at the upper part of the larynx. The sound of the human voice is created by the expiration of air through the vibrating vocal cords. The frequency of the vibration of the glottis characterizes these sounds. Most voices fall in the range of 70-400 Hz. A typical man speaks in a frequency range of about 80-150 Hz. Women generally speak in the range of 125-400 Hz.
Human speech consists of consonants and vowels. Consonants, such as “TH” and “F” are characterized by white noise. The frequency spectrum of these sounds is similar to that of a table fan. The consonant “S” is characterized by broad-band noise, usually beginning at around 3000 Hz and extending up to about 10,000 Hz. The consonants, “T”, “B”, and “P”, are called “plosives” and are also characterized by broad-band noise, but which differ from “S” by the abrupt rise in time. Vowels also produce a unique frequency spectrum. The spectrum of a vowel is characterized by formant frequencies. A formant may be comprised of any of several resonance bands that are unique to the vowel sound.
A major problem in speech detection and recording is the isolation of speech signals from the background noise. The background noise can interfere with and degrade the speech signal. In a noisy environment, many of the frequency components of the speech signal may be partially, or even entirely, masked by the frequencies of the background noise. As such, a need exists for a speech signal isolation system that can isolate and reconstruct a speech signal in the presence of background noise.
This invention discloses a speech signal isolation system that is capable of isolating and reconstructing a speech signal transmitted in an environment in which frequency components of the speech signal are masked by background noise. In one example of the invention, a noisy speech signal is analyzed by a neural network, which is operable to create a clean speech signal from a noisy speech signal. The neural network is trained to isolate a speech signal from against background noise.
Other systems, methods, features and advantages of the invention will be, or will become, apparent to one with skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description, be within the scope of the invention, and be protected by the following claims.
The invention can be better understood with reference to the following drawings and description. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention. Moreover, in the figures, like referenced numerals designate corresponding parts throughout the different views.
The present invention relates to a system and method for isolating a signal from background noise. The system and method are especially well adapted for recovering speech signals from audio signals generated in noisy environments. However, the invention is in no way limited to voice signals and may be applied to any signal obscured by noise.
In
A speech signal isolation system 10 is shown in
Vowel or speech signal 200 is characterized both by its constituent frequencies and the intensity of each frequency bands. Speech signal 200 is plotted against frequency (Hz) axis 202 and intensity (dB) axis 204. The frequency plot is generally comprised of an arbitrary number of discrete bins or bands. Frequency bank 206 indicates that 256 frequency bands (256 Bins) have been taken of speech signal 200. The selection of the number of signal bands is a methodology well known to those of skill in the art and a band length of 256 is used for illustration purposes only, as other band lengths may be used as well. The substantially horizontal line 208 represents the intensity of the background noise in the environment in which speech signal 200 was obtained. In general, speech signal 200 must be detected against this background of environmental noise. Speech signal 200 is easily detected in intensity ranges above the noise 208. However, speech signal 200 must be extracted from the background noise at intensity levels below the noise level. Furthermore, at intensity levels at or near the noise level 208 it can become difficult to distinguish speech from noise 208.
Referring once again to
A major problem in speech detection is the isolation of the speech signal 200 from background noise. In a noisy environment, many of the frequency components of the speech signal 200 may be partially or even entirely masked by the frequencies of noise. This phenomenon is clearly illustrated in
As referred to herein, a neural network is a computer architecture modeled loosely on the human brain's interconnected system of neurons. Neural networks imitate the brain's ability to distinguish patterns. In use, neural networks extract relationships that underlie data that are input to the network. A neural network may be trained to recognize these relationships much as a child or animal is taught a task. A neural network learns through a trial and error methodology. With each repetition of a lesson, the performance of the neural network improves.
Each neuron may have an activation within a range of values. This range may be for example, from 0 to 1. The input to input neurons 404 may be determined by the application, or set by the network's environment. An input to the hidden neurons 408 may be the state of the input neurons 404 multiplied or adjusted by the weight factors of connections 414. An input to the output neurons 412 may be the state of input neurons 408 multiplied or adjusted by the weight factors of connections 416. The activation of a respective hidden or output neuron 412 may be the result of applying a “squashing or sigmoid” function to the sum of the inputs to that node. The squashing function may be a nonlinear function that limits the input sum to a value within a range. Again, the range may be from 0 to 1.
The neural network “learns” when examples (with known results) are presented to it. The weighting factors are adjusted with each repetition to bring the output closer to the correct result. After training, in practice, the state of each input neuron 404 is assigned by the application or set by the network's environment. The input of the input neurons 404 may be propagated to each hidden neuron 408 through weighted connections 414. The resultant state of hidden neurons 408 may then be propagated to each output neuron 412. The resultant state of each output neuron 412 is the network's solution to the pattern presented to input layer 402.
At step 502, a transform from the time domain to the frequency domain is performed. This transform may be a Fast Fourier Transform (FFT), but may also be a DFT, DCT, filter bank, or any other method that estimates the power of a speech signal across frequencies. The FFT is a technique for expressing a waveform as a weighted sum of sines and cosines. The FFT is an algorithm for computing the Fourier Transform of a set of discrete data values. Given a finite set of data points, for example a periodic sampling taken from a voice signal, the FFT may express the data in terms of its component frequencies. As set forth below, it may also solve the essentially identical inverse problem of reconstructing a time domain signal from the frequency data.
As further illustrated, at step 504 background noise contained in the speech signal is estimated. The background noise may be estimated by any known means. An average may be computed, for example, from periods of silence, or where no speech is detected. The average may be continuously adjusted depending on the ratio of the signal at each frequency to the estimate of the noise, where the average is updated more quickly in frequencies with low ratios of signal to noise. Or a neural network itself may be used to estimate the noise.
The speech signal generated at step 502 and the noise estimate generated at 504 are then compressed at step 506. In one example, a “Mel frequency scale” algorithm may be used to compress the speech signal. Speech tends to have greater structure in the lower frequencies than at higher, so a non-linear compression tends to evenly distribute frequency information across the compressed bins.
Information in speech attenuates in a logarithmic fashion. At the higher frequencies, only “S” or “T” sounds are found; so very little information needs to be maintained. The Mel frequency scale optimizes compression to preserve vocal information: linear at lower frequencies; logarithmic at higher frequencies. The Mel frequency scale may be related to the actual frequency (f) by the following equation:
mel(f)=2595 log(1+f/700)
where f is measured in Hertz (Hz). The resultant values of the signal compression may then be stored in a “Mel frequency bank.” The Mel frequency bank is a filter bank created by setting the center frequencies to equally spaced Mel values. The result of this compression is a smooth signal highlighting the informational content of the voice signal, as well as a compressed noise signal.
The Mel scale represents the psychoacoustic ratio scale of pitch. Other compression scales may also be used, such as log base 2 frequency scaling, or the Bark or ERB (Equivalent Rectangular Bandwidth) scale. These latter two are empirical scales based on the psychoacoustic phenomenon of Critical Bands.
Prior to compression, the speech signal from 502 may also be smoothed. This smoothing may reduce the impact of the variability from high pitch harmonics on the smoothness of the compressed signal. Smoothing may be accomplished by using LPC, or spectral averaging, or interpolation.
At step 508, the speech signal is extracted from the background noise by assigning the compressed signal as input to the neural network component 18 of the signal processing unit 16. The extracted signal represents an estimate of the original speech signal in the absence of any background noise. At step 510 the extracted signal created by step 508 is blended with the compressed signal created at step 506. The blending process preserves as much of the original compressed speech signal (from step 506) as possible, while relying on the extracted speech estimate only as needed. Referring back to
The remaining blocks outline the steps that can be performed on the compressed reconstructed speech signal. The steps performed on time reconstructed speech signal will vary depend on the application in which the speech signal is used. For example, the reconstructed speech signal may be directly converted into a form compatible with an automatic speech recognition system. Step 520 shows a Mel Frequency Cepstral Coefficient (MFCC) transform. The output of step 520 may be input directly into a speech recognition system. Alternatively, the compressed reconstructed speech signal generated in step 510 may be transformed directly back into a time series or audible speech signal by performing an inverse frequency domain—time-series transform on the compressed reconstructed signal at step 516. This results in a time series signal having significantly reduced or completely eliminated background noise. In yet another alternative, the compressed reconstructed speech signal may be decompressed at step 512. Harmonics may be added back into the signal at step 514 and the signal may be blended again. This time with the original uncompressed speech signal and the blended signal transformed back into a time-series speech signal or the signal may be transformed back into a time-series signal immediately after the harmonics are added, without additional blending. In either case the result is an improved time series speech signal having most if not all background noise removed.
The speech signal whether it be the output from the first blending step 510, the second blending step 522, or after additional harmonics are added at step 514, may be transformed back into the time domain at 516 using the inverse of the time-to-frequency transform used at 502.
Speech signal 600 contains many frequency spikes 610. These frequency spikes 610 may be caused by harmonics within speech signal 600. The existence of these frequency spikes 610 masks the true speech signal and complicates the speech isolation process. These frequency spikes 610 may be eliminated by a smoothing process. The smoothing process may consist of interpolating a signal between the harmonics in the speech signal 600. In those areas of speech signal 600 where harmonic information is sparse, an interpolating algorithm averages the interpolated value over the remaining signal. Interpolated signal 612 is the result of this smoothing process.
Although not specifically illustrated, the number of input neurons 808 in input layer 802 may correspond to the number of bands in frequency bank 702. The number of output neurons 812 may also equal the number of bands in frequency bank 702. The number of hidden neurons 810 in hidden layer 804 may be a number between 10 and 80. The state of input neurons 808 is determined by the intensity values in frequency bank 702. In practice, neural network 800 takes a noisy speech signal such as 700 as input and produces a clean speech signal such as 708 as output.
The number of neurons 912 in speech signal input layer 908 may correspond to the number of bands in frequency bank 702. Similarly, the number of neurons 914 in mask signal input layer 910 may correspond to the number of bands in frequency bank 702. The number of output neurons 918 may also be equal to the number of bands in frequency bank 702. The number of hidden neurons 916 in hidden layer 904 may be a number between 10 and 80. The state of input neurons 912 and input neurons 914 are determined by the intensity values in frequency bank 702.
In practice, neural network 900 takes a noisy speech signal such as 700 as an input and produces a noise reduced speech signal such as 708 as an output. Mask input layer 910 either directly or indirectly provides information about the quality of the speech signal from 506, or as represented by 700. That is, in one example of the invention, mask input layer 910 takes as input compressed noise estimate 706.
In another example of the invention, a binary mask may be computed from a comparison of the noise estimate 706 and the compressed noisy signal 700. At each compressed frequency band of 702, the mask may be set to 1 when the intensity difference between 700 and 706 exceeds a threshold, such as 3 dB, else it is set to 0. The mask may represent an indication of whether the frequency band carries reliable or useful information to indicate speech. The function of 506 may be to reconstruct only those portions of 700 that are indicated by the mask to be 0, or masked by noise 706.
In yet another example of the invention, the mask is not binary, but the difference between 700 and 706. Thus, this “fuzzy” mask indicates to the neural network a confidence of reliability. Areas where 700 meets 706 will be set to 0, as in the binary mask, areas where 700 is very close to 706 will have some small value, indicating low reliability or confidence, and areas where 700 greatly exceeds 706 will indicate good speech signal quality.
Neural networks may learn associations in time as well as across frequency. This may be important for speech because the physical mechanics of the mouth, larynx, vocal tract impose limits on how fast one sound can be made after another. Thus, sounds from one time frame to the next tend to be correlated, and a neural network that can learn these correlations may outperform one that does not.
The intensity value of an hidden or output unit may be determined by the sum of the products of the intensity of each input neuron to which it is connected and the weight of the connection between them. A nonlinear function is used to reduce the range of the activation of a hidden or output neuron, This nonlinear function may be any of a sigmoidal function, logistic or hyperbolic function, or a line with absolute limits. These functions are well known to those of ordinary skill in the art.
The neural networks may be trained on a clean multi-participant speech signal in which real or simulated noise has been added.
While various embodiments of the invention have been described, it will be apparent to those of ordinary skill in the art that many more embodiments and implementations are possible within the scope of the invention. Accordingly, the invention is not to be restricted except in light of the attached claims and their equivalents.
This application claims the benefit of U.S. Provisional Patent Application Ser. No. 60/555,582 filed Mar. 23, 2004.
Number | Date | Country | |
---|---|---|---|
60555582 | Mar 2004 | US |