The present disclosure relates generally to signal processing. More specifically, the present disclosure relates to suppressing ambient noise using multiple audio signals recorded using electro-transducers such as microphones.
Communication technologies continue to advance in many areas. As these technologies advance, users have more flexibility in the ways they may communicate with one another. For telephone calls, users may engage in direct two-way calls or conference calls. In addition, headsets or speakerphones may be used to enable hands-free operation. Calls may take place using standard telephones, cellular telephones, computing devices, etc.
This increased flexibility enabled by advancing communication technologies also makes it possible for users to make calls from many different kinds of environments. In some environments, various conditions may arise that can affect the call. One condition is ambient noise.
Ambient noise may degrade transmitted audio quality. In particular, it may degrade transmitted speech quality. Hence, benefits may be realized by providing improved methods and apparatus for suppressing ambient noise.
a is a block diagram illustrating some aspects of one possible configuration of a system including ambient noise suppression;
b is a block diagram illustrating some aspects of another possible configuration of a system including ambient noise suppression;
a is a block diagram illustrating some aspects of one possible configuration of a beamformer;
b is a block diagram illustrating some aspects of another possible configuration of a beamformer;
c is a block diagram illustrating some aspects of another possible configuration of a beamformer;
a is a block diagram illustrating some aspects of one possible configuration of a noise reference refiner;
b is a block diagram illustrating some aspects of another possible configuration of a noise reference refiner;
a is a more detailed block diagram illustrating some aspects of one possible configuration of a system including ambient noise suppression;
b is a more detailed block diagram illustrating some aspects of another possible configuration of a system including ambient noise suppression;
c illustrates an alternative configuration of a system including ambient noise suppression;
d illustrates another alternative configuration of a system including ambient noise suppression;
a is a flow diagram illustrating one example of a method for suppressing ambient noise;
b is a flow diagram illustrating means-plus-function blocks corresponding to the method shown in
a is a block diagram illustrating some aspects of one possible configuration of a system including ambient noise suppression;
b is a block diagram illustrating some aspects of another possible configuration of a system including ambient noise suppression;
c is a block diagram illustrating some aspects of another possible configuration of a system including ambient noise suppression;
a is a block diagram illustrating some aspects of one possible configuration of a calibrator;
b is a block diagram illustrating some aspects of another possible configuration of a calibrator;
c is a block diagram illustrating some aspects of another possible configuration of a calibrator;
a is a block diagram illustrating some aspects of one possible configuration of a noise reference calibrator;
b is a block diagram illustrating some aspects of another possible configuration of a noise reference calibrator;
c is a block diagram illustrating some aspects of another possible configuration of a noise reference calibrator;
a illustrates means-plus-function blocks corresponding to the method of
A method for suppressing ambient noise using multiple audio signals is disclosed. The method may include providing at least two audio signals by at least two electro-acoustic transducers. The at least two audio signals may include desired audio and ambient noise. The method may also include performing beamforming on the at least two audio signals in order to obtain a desired audio reference signal that is separate from a noise reference signal. The method may also include refining the noise reference signal by removing residual desired audio from the noise reference signal, thereby obtaining a refined noise reference signal.
An apparatus for suppressing ambient noise using multiple audio signals is disclosed. The apparatus may include at least two electro-acoustic transducers that provide at least two audio signals comprising desired audio and ambient noise. The apparatus may also include a beamformer that performs beamforming on the at least two audio signals in order to obtain a desired audio reference signal that is separate from a noise reference signal. The apparatus may also include a noise reference refiner that refines the noise reference signal by removing residual desired audio from the noise reference signal, thereby obtaining a refined noise reference signal.
An apparatus for suppressing ambient noise using multiple audio signals is disclosed. The apparatus may include means for providing at least two audio signals by at least two electro-acoustic transducers. The at least two audio signals comprise desired audio and ambient noise. The apparatus may also include means for performing beamforming on the at least two audio signals in order to obtain a desired audio reference signal that is separate from a noise reference signal. The apparatus may further include means for refining the noise reference signal by removing residual desired audio from the noise reference signal, thereby obtaining a refined noise reference signal.
A computer-program product for suppressing ambient noise using multiple audio signals is disclosed. The computer-program product may include a computer-readable medium having instructions thereon. The instructions may include code for providing at least two audio signals by at least two electro-acoustic transducers. The at least two audio signals may include desired audio and ambient noise. The instructions may also include code for performing beamforming on the at least two audio signals in order to obtain a desired audio reference signal that is separate from a noise reference signal. The instructions may also include code for refining the noise reference signal by removing residual desired audio from the noise reference signal, thereby obtaining a refined noise reference signal.
Mobile communication devices increasingly employ multiple microphones to improve transmitted voice quality in noisy scenarios. Multiple microphones may provide the capability to discriminate between desired voice and background noise and thus help improve the voice quality by suppressing background noise in the audio signal. Discrimination of voice from noise may be particularly difficult if the microphones are placed close to each other on the same side of the device. Methods and apparatus are presented for separating desired voice from noise in these scenarios.
Voice quality is a major concern in mobile communication systems. Voice quality is highly affected by the presence of ambient noise during the usage of a mobile communication device. One solution for improving voice quality during noisy scenarios may be to equip the mobile device with multiple microphones and use sophisticated signal processing techniques to separate the desired voice from ambient noise. Particularly, mobile devices may employ two microphones for suppressing the background noise and improving voice quality. The two microphones may often be placed relatively far apart. For example, one microphone may be placed on the front side of the device and another microphone may be placed on the back side of the device, in order to exploit the diversity of acoustic reception and provide for better discrimination of desired voice and background noise. However, for the ease of manufacturability and consumer usage, it may be beneficial to place the two microphones close to each other on the same side of the device. Many of the commonly available signal processing solutions are incapable of handling this closely spaced microphone configuration and do not provide good discrimination of desired voice and ambient noise. Hence, new methods and apparatus for improving the voice quality of a mobile communication device employing multiple microphones are disclosed. The proposed approach may be applicable to a wide variety of closely spaced microphone configurations (typically less than 5 cm). However, it is not limited to any particular value of microphone spacing.
Two closely spaced microphones on a mobile device may be exploited to improve the quality of transmitted voice. In particular, beamforming techniques may be used to discriminate desired audio (e.g., speech) from ambient noise and improve the audio quality by suppressing ambient noise. Beamforming may separate the desired audio from ambient noise by forming a beam towards the desired speaker. It may also separate ambient noise from the desired audio by forming a null beam in the direction of the desired audio. The beamformer output may or may not be post-processed in order to further improve the quality of the audio output.
a is a block diagram illustrating some aspects of one possible configuration of a system 200a including ambient noise suppression. The system 200a may include a beamformer 214 and/or a noise reference refiner 220a. The system 200a may be configured to receive digital audio signals 212a, 212b. The digital audio signals 212a, 212b may or may not have matching or similar energy levels. The digital audio signals 212a, 212b, may be signals from two audio sources (e.g., the microphones 110a, 110b in the device 102 shown in
The digital audio signals 212a, 212b, may have matching or similar signal characteristics. For example, both signals 212a, 212b may include a desired audio signal (e.g., speech 106). The digital audio signals 212a, 212b may also include ambient noise 108.
The digital audio signals 212a, 212b may be received by a beamformer 214. One of the digital audio signals 212a may also be routed to a noise reference refiner 220a. The beamformer 214 may generate a desired audio reference signal 216 (e.g., a voice/speech reference signal). The beamformer 214 may generate a noise reference signal 218. The noise reference signal 218 may contain residual desired audio. The noise reference refiner 220a may reduce or effectively eliminate the residual desired audio from the noise reference signal 218 in order to generate a refined noise reference signal 222a. The noise reference refiner 220a may utilize one of the digital audio signals 212a to generate a refined noise reference signal 222a. The desired audio reference signal 216 and the refined noise reference signal 222a may be utilized to improve desired audio output. For example, the refined noise reference signal 222a may be filtered and subtracted from the desired audio reference signal 216 in order to reduce noise in the desired audio. The refined noise reference signal 222a and the desired audio reference signal 216 may also be further processed to reduce noise in the desired audio.
b is another block diagram illustrating some aspects of another possible configuration of a system 200b including ambient noise suppression. The system 200b may include digital audio signals 212a, 212b, a beamformer 214, a desired audio reference signal 216, a noise reference signal 218, a noise reference refiner 220b, and a refined noise reference signal 222b. As the noise reference signal 218 may include residual desired audio, the noise reference refiner 220b may reduce or effectively eliminate residual desired audio from the noise reference signal 218. The noise reference refiner 220b may utilize both digital audio signals 212a, 212b in addition to the noise reference signal 218 in order to generate a refined noise reference signal 222b. The refined noise reference signal 222b and the desired audio reference signal 216 may be utilized in order to improve the desired audio.
a is a block diagram illustrating some aspects of one possible configuration of a beamformer 314a. The primary purpose of the beamformer 314a may be to process digital audio signals 312a, 312b and generate a desired audio reference signal 316a and a noise reference signal 318a. The noise reference signal 318a may be generated by forming a null beam towards the desired audio source (e.g., the user) and suppressing the desired audio (e.g., the speech 106) from the digital audio signals 312a, 312b. The desired audio reference signal 316a may be generated by forming a beam towards the desired audio source and suppressing ambient noise 108 coming from other directions. The beamforming process may be performed through fixed beamforming and/or adaptive beamforming.
The beamformer 314a may be configured to receive the digital audio signals 312a, 312b. The digital audio signals 312a, 312b may or may not be calibrated such that their energy levels are matched or similar. The digital audio signals 312a, 312b may be designated zc1(n) and zc2(n) respectively, where n is the digital audio sample number. A simple form of fixed beamforming may be referred to as “broadside” beamforming. The desired audio reference signal 316a may be designated zb1(n). For fixed “broadside” beamforming, the desired audio reference signal 316a may be given by equation (1):
zb1(n)=zc1(n)+zc2(n) (1)
The noise reference signal 318a may be designated zb2(n). The noise reference signal 318a may be given by equation (2):
zb2(n)=zc1(n)−zc2(n) (2)
In accordance with broadside beamforming, it is assumed that the desired audio source is equidistant to the two microphones (e.g., microphones 110a, 110b). If the desired audio source is closer to one microphone than the other, the desired audio signal captured by one microphone will suffer a time delay compared to the desired audio signal captured by the other microphone. In this case, the performance of the fixed beamformer can be improved by compensating for the time delay difference between the two microphone signals. Hence, the beamformer 314a may include a delay compensation filter 324. The desired audio reference signal 316a and the noise reference signal 318a may be expressed in equations (3) and (4), respectively.
zb1(n)=zc1(n)+zc2(n−τ) (3)
zb2(n)=zc1(n)−zc2(n−τ) (4)
Here, τ may denote the time delay between the digital audio signals 312a, 312b captured by the two microphones and may take either positive or negative values. The time delay difference between the two microphone signals may be calculated using any of the methods of time delay computation known in the art. The accuracy of time delay estimation methods may be improved by computing the time delay estimates only during desired audio activity periods.
The time delay τ may also take fractional values if the microphones are very closely spaced (e.g., less than 4 cm). In this case, fractional time delay estimation techniques may be used to calculate τ. Fractional time delay compensation may be performed using a sinc filtering method. In this method, the calibrated microphone signal is convolved with a delayed sinc signal to perform fractional time delay compensation as shown in equation (5):
zc2(n−τ)=zc2(n)*sinc(n−τ) (5)
A simple procedure for computing fractional time delay may involve searching for the value τ that maximizes the cross-correlation between the first digital audio signal 312a (e.g., zc1(n)) and the time delay compensated second digital audio signal 312b (e.g., zc2(n)) as shown in equation (6):
Here, the digital audio signals 312a, 312b may be segmented into frames where N is the number of samples per frame and k is the frame number. The cross-correlation between the digital audio signals 312a, 312b (e.g., zc1(n) and zc2(n)) may be computed for a variety of values of τ. The time delay value for τ may be computed by finding the value of τ that maximizes the cross-correlation. This procedure may provide good results when the Signal-to-Noise Ratio (SNR) of the digital audio signals 312a, 312b is high.
b is a block diagram illustrating some aspects of another possible configuration of a beamformer 314b. The fixed beamforming procedure (as shown in
The adaptive filter weights w1(i) may be adapted using any standard adaptive filtering algorithm such as Least Mean Squared (LMS) or Normalized LMS (NLMS), etc. The desired audio reference signal 316b (e.g., zb1(n)) and the noise reference signal 318b (e.g., zb2(n)) may be expressed as shown in equations (9) and (10):
zb1(n)=zc1(n)+zw2(n) (9)
zb2(n)=zc1(n)−zw2(n) (10)
The adaptive beamforming procedure shown in
c is a block diagram illustrating some aspects of another possible configuration of a beamformer 314c. The beamformer 314c may be applied only for the generation of a noise reference signal 318c and the first digital audio signal 312a may be simply used as the desired audio reference signal 316c (e.g., zb1(n)=zc1(n)). In certain scenarios, this method may prevent possible desired audio quality degradation such as reverberation effects caused by the beamformer 314c.
a is a block diagram illustrating some aspects of one possible configuration of a noise reference refiner 420a. The noise reference signal 418 generated by the beamformer (e.g., beamformers 214, 314a-c) may still contain some residual desired audio and this may cause quality degradation at the output of the overall system. The purpose of the noise reference refiner 420a may be to remove further residual desired audio from the noise reference signal 418 (e.g., zb2(n)).
Typically, if the microphones are not located very close to each other, the residual desired audio may have dominant high-frequency content. Thus, noise reference refining may be performed by removing high-frequency residual desired audio from the noise reference signal 418. An adaptive filter 434 may be used for removing residual desired audio from the noise reference signal 418. The first digital audio signal 412a (e.g., zc1(n)) may be (optionally) provided to a high-pass filter 430. In some cases, the high-pass filter 430 may be optional. An IIR or FIR filter (e.g. hHPF(n)) with a 1500-2000 Hz cutoff frequency may be used for high-pass filtering the first digital audio signal 412a. The high-pass filter 430 may be utilized to aid in removing only the high-frequency residual desired audio from the noise reference signal 418. The high-pass-filtered first digital audio signal 432a may be designated zi(n). The adaptive filter output 436a may be designated zwr(n). The adaptive filter weights (e.g., wr(n)) may be updated using any method known in the art such as LMS, NLMS, etc. The refined noise reference signal 422a may be designated zbr(n). The noise reference refiner 420a may be configured to implement a noise reference refining process as expressed in equations (11), (12), and (13):
b is a block diagram illustrating some aspects of another possible configuration of a noise reference refiner 420b. In this configuration, the difference between digital audio signals 412a, 412b (e.g. zc1(n), zc2(n)) may be input into the optional high pass filter 430. The output 432b of the high-pass filter 430 may be designated zi(n). The output 436b of the adaptive filter 434 may be designated zwr(n). The refined noise reference signal 422b may be designated zbr(n). The noise reference refiner 420b may be configured to implement a noise reference refining process as expressed in equations (14), (15), and (16):
a is a more detailed block diagram illustrating some aspects of one possible configuration of a system 500a including ambient noise suppression. A beamformer 514 (including an adaptive filter 526) and a noise reference refiner 520a (including a high-pass filter 530 and an adaptive filter 534) may receive digital audio signals 512a, 512b and output a desired audio reference signal 516 and a refined noise reference signal 522a. In some cases, the high-pass filter 530 may be optional.
b is a more detailed block diagram illustrating some aspects of another possible configuration of a system 500b including ambient noise suppression. A beamformer 514 (including an adaptive filter 526) and a noise reference refiner 520b (including a high-pass filter 530 and an adaptive filter 534) may receive digital audio signals 512a, 512b and output a desired audio reference signal 516 and a refined noise reference signal 522b. In this configuration, the noise reference refiner 520b may input the difference between the first digital audio signal 512a and the second digital audio signal 512b into the optional high pass filter 530.
c illustrates an alternative configuration of a system 500c including ambient noise suppression. The system 500c of
d illustrates another alternative configuration of a system 500d including ambient noise suppression. The system 500d of
a is a flow diagram illustrating one example of a method 600a for suppressing ambient noise. Digital audio from multiple sources is beamformed 638a. The digital audio from multiple sources may or may not have matching or similar energy levels. The digital audio from multiple sources may have matching or similar signal characteristics. For example, the digital audio from each source may include a dominant speech 106 and ambient noise 108. A desired audio reference signal (e.g., desired audio reference signal 216) and a noise reference signal (e.g., noise reference signal 218) may be generated via beamforming 638a. The noise reference signal may contain residual desired audio. The residual desired audio may be reduced or effectively eliminated from the noise reference signal by refining 640a the noise reference signal. The method 600a shown may be an ongoing process.
The method 600a described in
a is a block diagram illustrating some aspects of one possible configuration of a system 700a including ambient noise suppression. A system 700a including ambient noise suppression may include transducers (e.g., microphones) 710a, 710b, Analog-to-Digital Converters (ADCs) 744a, 744b, a calibrator 748, a first beamformer 714, a noise reference refiner 720, a noise reference calibrator 750, a second beamformer 754, and post processing components 760.
The transducers 710a, 710b may capture sound information and convert it to analog signals 742a, 742b. The transducers 710a, 710b may include any device or devices used for converting sound information into electrical (or other) signals. For example, they may be electro-acoustic transducers such as microphones. The ADCs 744a, 744b, may convert the analog signals 742a, 742b, captured by the transducers 710a, 710b into uncalibrated digital audio signals 746a, 746b. The ADCs 744a, 744b may sample analog signals at a sampling frequency fs.
The two uncalibrated digital audio signals 746a, 746b may be calibrated by the calibrator 748 in order to compensate for differences in microphone sensitivities and for differences in near-field speech levels. The calibrated digital audio signals 712a, 712b, may be processed by the first beamformer 714 to provide a desired audio reference signal 716 and a noise reference signal 718. The first beamformer 714 may be a fixed beamformer or an adaptive beamformer. The noise reference refiner 720 may refine the noise reference signal 718 to further remove residual desired audio.
The refined noise reference signal 722 may also be calibrated by the noise reference calibrator 750 in order to compensate for attenuation effects caused by the first beamformer 714. The desired audio reference signal 716 and the calibrated noise reference signal 752 may be processed by the second beamformer 754 to produce the second desired audio signal 756 and the second noise reference signal 758. The second desired audio signal 756 and the second noise reference signal 758 may optionally undergo post processing 760 to remove more residual noise from the second desired audio reference signal 756. The desired audio output signal 762 and the noise reference output signal 764 may be transmitted, output via a speaker, processed further, or otherwise utilized.
b is a block diagram illustrating some aspects of another possible configuration of a system 700b including ambient noise suppression. A processor 766 may execute instructions and/or perform operations in order to implement the calibrator 748, first beamformer 714, noise reference refiner 720, noise reference calibrator 750, second beamformer 754, and/or post processing 760.
c is a block diagram illustrating some aspects of another possible configuration of a system 700c including ambient noise suppression. A processor 766a may execute instructions and/or perform operations in order to implement the calibrator 748 and first beamformer 714. Another processor 766b may execute instructions and/or perform operations in order to implement the noise reference refiner 720 and noise reference calibrator 750. Another processor 766c may execute instructions and/or perform operations in order to implement the second beamformer 754 and post processing 760. Individual processors may be arranged to handle each block individually or any combination of blocks.
a is a block diagram illustrating some aspects of one possible configuration of a calibrator 848a. The calibrator 848a may serve two purposes: to compensate for any difference in microphone sensitivities, and to compensate for the near-field desired audio level difference in the uncalibrated digital audio signals 846a, 846b. Microphone sensitivity measures the strength of voltage generated by a microphone for a given input pressure of the incident acoustic field. If two microphones have different sensitivities, they will produce different voltage levels for the same input pressure. This difference may be compensated before performing beamforming. A second factor that may be considered is the near-field effect. Since the user holding the mobile device may be in close proximity to the two microphones, any change in handset orientation may result in significant differences between signal levels captured by the two microphones. Compensation of this signal level difference may aid the first-stage beamformer in generating a better noise reference signal.
The differences in microphone sensitivity and audio level (due to the near-field effect) may be compensated by computing a set of calibration factors (which may also be referred to as scaling factors) and applying them to one or more uncalibrated digital audio signals 846a, 846b.
The calibration block 868a may compute a calibration factor and apply it to one of the uncalibrated digital audio signals 846a, 846b so that the signal level in the second digital audio signal 812b is close to that of the first digital audio signal 812a.
A variety of methods may be used for computing the appropriate calibration factor. One approach for computing the calibration factor may be to compute the single tap Wiener filter coefficient and use it as the calibration factor for the second uncalibrated digital audio signal 846b. The single tap Wiener filter coefficient may be computed by calculating the cross-correlation between the two uncalibrated digital audio signals 846a, 846b, and the energy of the second uncalibrated digital audio signal 846b. The two uncalibrated digital audio signals 846a, 846b may be designated z1(n) and z2(n) where n denotes the time instant or sample number. The uncalibrated digital audio signals 846a, 846b may be segmented into frames (or blocks) of length N. For each frame k, the block cross-correlation {circumflex over (R)}12(k) and block energy estimate {circumflex over (P)}22(k) may be calculated as shown in equations (17) and (18):
The block cross-correlation {circumflex over (R)}12(k) and block energy estimate {circumflex over (P)}22(k) may be optionally smoothed using an exponential averaging method for minimizing the variance of the estimates as shown in equations (19) and (20):
λ1 and λ2 are averaging constants that may take values between 0 and 1. The higher the values of λ1 and λ2 are, the smoother the averaging process(es) will be, and the lower the variance of the estimates will be. Typically, values in the range: 0.9-0.99 have been found to give good results.
The calibration factor ĉ2(k) for the second uncalibrated digital audio signal 846b may be found by computing the ratio of the block cross-correlation estimate and the block energy estimate as shown in equation (21):
The calibration factor ĉ2(k) may be optionally smoothed in order to minimize abrupt variations, as shown in equation (22). The smoothing constant may be chosen in the range: 0.7-0.9.
c2(k)=β2c2(k−1)+(1−β2)ĉ2(k) (22)
The estimate of the calibration factor may be improved by computing and updating the calibration factor only during desired audio activity periods. Any method of Voice Activity Detection (VAD) known in the art may be used for this purpose.
The calibration factor may alternatively be estimated using a maximum searching method. In this method, the block energy estimates {circumflex over (P)}11(k) and {circumflex over (P)}22(k) of the two uncalibrated digital audio signals 846a, 846b may be searched for desired audio energy maxima and the ratio of the two maxima may be used for computing the calibration factor. The block energy estimates {circumflex over (P)}11(k) and {circumflex over (P)}22(k) may be computed as shown in equations (23) and (24):
The block energy estimates {circumflex over (P)}11(k) and {circumflex over (P)}22(k) may be optionally smoothed as shown in equations (25) and (26):
λ3 and λ2 are averaging constants that may take values between 0 and 1. The higher the values of λ3 and λ2 are, the smoother the averaging process(es) will be, and the lower the variance of the estimates will be. Typically, values in the range: 0.7-0.8 have been found to give good results. The desired audio maxima of the two uncalibrated digital audio signals 846a, 846b (e.g., {circumflex over (Q)}1(m) and {circumflex over (Q)}2 (M) where m is the multiple frame index number) may be computed by searching for the maximum of the block energy estimates over several frames, say K consecutive frames as shown in equations (27) and (28):
{circumflex over (Q)}1(m)=max{
{circumflex over (Q)}2(m)=max{
The maxima values may optionally be smoothed to obtain smoother estimates as shown in equations (29) and (30):
λ4 and λ5 are averaging constants that may take values between 0 and 1. The higher the values of λ4 and λ5 are, the smoother the averaging process(es) will be, and the lower the variance of the estimates will be. Typically, the values of averaging constants are chosen in the range: 0.5-0.7. The calibration factor for the second uncalibrated digital audio signal 846b may be estimated by computing the square root of the ratio of the two uncalibrated digital audio signals 846a, 846b as shown in equation (31):
The calibration factor ĉ2(m) may optionally be smoothed as shown in equation (32):
c2(m)=β3c2(m−1)+(1−β3)ĉ2(m) (32)
β3 is an averaging constant that may take values between 0 and 1. The higher the value of β3 is, the smoother the averaging process will be, and the lower the variance of the estimates will be. This smoothing process may minimize abrupt variation in the calibration factor for the second uncalibrated digital audio signal 846b. The calibration factor, as calculated by the calibration block 868a, may be used to multiply the second uncalibrated digital audio signal 846b. This process may result in scaling the second uncalibrated digital audio signal 846b such that the desired audio energy levels in the digital audio signals 812a, 812b are balanced before beamforming.
b is a block diagram illustrating some aspects of another possible configuration of a calibrator 848b. In this configuration, the inverse of the calibration factor (as calculated by the calibration block 868b) may be applied to the first uncalibrated digital audio signal 846a. This process may result in scaling the first uncalibrated digital audio signal 846a such that the desired audio energy levels in the digital audio signals 812a, 812b are balanced before beamforming.
c is a block diagram illustrating some aspects of another possible configuration of a calibrator 848c. In this configuration, two calibration factors that will balance the desired audio energy levels in the digital audio signals 812a, 812b may be calculated by the calibration block 868c. These two calibration factors may be applied to the uncalibrated digital audio signals 846a, 846b.
Once the uncalibrated digital audio signals 846a, 846b are calibrated, the first digital audio signal 812a and the second digital audio signal 812b may be beamformed and/or refined as discussed above.
a is a block diagram illustrating some aspects of one possible configuration of a noise reference calibrator 950a. The noise reference signal 922, which may be generated by the first beamformer 714, may suffer from an attenuation problem. The strength of noise in the refined noise reference signal 922 may be much smaller compared to the strength of noise in the desired audio reference signal 916. The refined noise reference signal 922 may be calibrated (e.g., scaled) by the calibration block 972a before performing secondary beamforming.
The calibration factor for the noise reference calibration may be computed using noise floor estimates. The calibration block 972a may compute noise floor estimates for the desired audio reference signal 916 and the refined noise reference signal 922. The calibration block 972a may accordingly compute a calibration factor and apply it to the refined noise reference signal 922.
The block energy estimates of the desired audio reference signal (e.g., zb1(n)) and the refined noise reference signal (e.g., zbr(n)) may be designated Pb1(k) and Pbr(k), respectively, where k is the frame index.
The noise floor estimates of the block energies (e.g., {circumflex over (Q)}b1(m) and {circumflex over (Q)}br(m) where m is the frame index) may be computed by searching for a minimum value over a set of frames (e.g., K frames) as expressed in equations (33) and (34):
{circumflex over (Q)}b1(m)=min{Pb1((m−1)k),Pb1((m−1)k−1), . . . ,Pb1((m−1)k−K+1)} (33)
{circumflex over (Q)}br(m)=min{Pbr((m−1)k),Pbr((m−1)k−1), . . . ,Pbr((m−1)k−K+1)} (34)
The noise floor estimates (e.g. {circumflex over (Q)}b1(m) and {circumflex over (Q)}br(m)) may optionally be smoothed (e.g., the smoothed noise floor estimates may be designated
λ6 and λ7 are averaging constants that may take values between 0 and 1. The higher the values of λ6 and λ7 are, the smoother the averaging process(es) will be, and the lower the variance of the estimates will be. The averaging constants are typically chosen in the range: 0.7-0.8. The refined noise reference 922 calibration factor may be designated ĉnr(m) and may be computed as expressed in equation (37):
The estimated calibration factor (e.g., ĉnr(m)) may be optionally smoothed (e.g., resulting in cnr(m)) to minimize discontinuities in the calibrated noise reference signal 952 as expressed in equation (38):
cnr(m)=β4cnr(m−1)+(1−β4)ĉnr(m) (38)
β4 is an averaging constant that may take values between 0 and 1. The higher the value of β4 is, the smoother the averaging process will be, and the lower the variance of the estimates will be. Typically, the averaging constant is chosen in the range: 0.7-0.8. The calibrated noise reference signal 952 may be designated znf(n).
b is a block diagram illustrating some aspects of another possible configuration of a noise reference calibrator 950b. The refined noise reference signal 922 may be divided into two (or more) sub-bands and a separate calibration factor may be computed by the calibration block 972b and applied for each sub-band. The low and high-frequency components of the refined noise reference signal 922 may benefit from having different calibration values.
If the refined noise reference signal 922 is divided into two sub-bands, as shown in
The calibration block 972b may compute noise floor estimates for the desired audio reference signal 916 and the sub-bands of the refined noise reference signal 922. The calibration block 972b may accordingly compute calibration factors and apply them to the sub-bands of the refined noise reference signal 922. The block energy estimates of the desired audio reference signal (e.g., zb1(n)) and the sub-bands of the refined noise reference signal (e.g., zbr(n)) may be designated Pb1(k), PnLPF(k), and PnHPF(k) respectively, where k is the frame index. The noise floor estimates of the block energies (e.g., {circumflex over (Q)}b1(m), {circumflex over (Q)}nLPF(m), and {circumflex over (Q)}nHPF(m) where m is the frame index) may be computed by searching for a minimum value over a set of frames (e.g., K frames) as expressed in equations (39), (40), and (41):
{circumflex over (Q)}b1(m)=min{Pb1((m−1)k),Pb1((m−1)k−1), . . . ,Pb1((m−1)k−K+1)} (39)
{circumflex over (Q)}nLPF(m)=min{PnLPF((m−1)k),PnLPF((m−1)k−1), . . . ,PnLPF((m−1)k−K+1)} (40)
{circumflex over (Q)}nHPF(m)=min{PnHPF((m−1)k),PnHPF((m−1)k−1), . . . ,PnHPF((m−1)k−K+1)} (41)
The noise floor estimates (e.g., {circumflex over (Q)}b1(m), {circumflex over (Q)}nLPF(m), and {circumflex over (Q)}nHPF(m)) may optionally be smoothed (e.g., the smoothed noise floor estimates may be designated
λ8 and λ9 are averaging constants that may take values between 0 and 1. The higher the values of λ8 and λ9 are, the smoother the averaging process(es) will be, and the lower the variance of the estimates will be. Typically, averaging constants in the range: 0.5-0.8 may be used. The refined noise reference 922 calibration factors may be designated ĉ1LPF(m) and ĉ1HPF(m) and may be computed as expressed in equations (45) and (46):
The estimated calibration factors may be optionally smoothed (e.g., resulting in c1LPF(m) and c1HPF(m)) to minimize discontinuities in the calibrated noise reference signal 952b as expressed in equations (47) and (48):
c1LPF(m)=β5c1LPF(m−1)+(1−β5)ĉ1LPF(m) (47)
c1HPF(m)=β6c1HPF(m−1)+(1−β6)ĉ1HPF(m) (48)
β5 and β6 are averaging constants that may take values between 0 and 1. The higher the values of β5 and β6 are, the smoother the averaging process will be, and the lower the variance of the estimates will be. Typically, averaging constants in the range: 0.7-0.8 may be used. The calibrated noise reference signal 952b may be the summation of the two scaled sub-bands of the refined noise reference signal 922 and may be designated znf(n).
c is a block diagram illustrating some aspects of another possible configuration of a noise reference calibrator 950c. The refined noise reference signal 922 and the desired audio reference signal 916 may be divided into two sub-bands and a separate calibration factor may be computed by the calibration block 972c and applied for each sub-band. The low and high-frequency components of the refined noise reference signal 922 may benefit from different calibration values.
The desired audio reference signal 916 may be divided and filtered by a low-pass filter 976b and a high-pass filter 978b. The refined noise reference signal 922 may be divided and filtered by a low-pass filter 976a and a high-pass filter 978a. The calibration block 972c may compute noise floor estimates for the sub-bands of the desired audio reference signal 916 and the sub-bands of the refined noise reference signal 922. The calibration block 972c may accordingly compute calibration factors and apply them to the sub-bands of the refined noise reference signal 922. The block energy estimates of the sub-bands of the desired audio reference signal (e.g., zb1(n)) and the sub-bands of the refined noise reference signal (e.g., zbr(n)) may be designated PLPF(k), PHPF(k), PnLPF(k), and PnHPF(k) respectively, where k is the frame index. The noise floor estimates of the block energies (e.g., {circumflex over (Q)}LPF(m), {circumflex over (Q)}HPF(m), {circumflex over (Q)}nLPF(m), and {circumflex over (Q)}nHPF(m) where m is the frame index) may be computed by searching for a minimum value over a set of frames (e.g. K frames) as expressed in equations (49), (50), (51), and (52):
{circumflex over (Q)}LPF(m)=min{PLPF((m−1)k),PLPF((m−1)k−1), . . . ,PLPF((m−1)k−K+1)} (49)
{circumflex over (Q)}HPF(m)=min{PHPF((m−1)k),PHPF((m−1)k−1), . . . ,PHPF((m−1)k−K+1)} (50)
{circumflex over (Q)}nLPF(m)=min{PnLPF((m−1)k),PnLPF((m−1)k−1), . . . ,PnLPF((m−1)k−K+1)} (51)
{circumflex over (Q)}nHPF(m)=min{PnHPF((m−1)k),PnHPF((m−1)k−1), . . . ,PnHPF((m−1)k−K+1)} (52)
The noise floor estimates (e.g., {circumflex over (Q)}LPF(m), {circumflex over (Q)}HPF(m), {circumflex over (Q)}nLPF(m), and {circumflex over (Q)}nHPF(m)) may optionally be smoothed (e.g., the smoothed noise floor estimates may be designated
λ10 and λ11 are averaging constants that may take values between 0 and 1. The higher the values of λ10 and λ11 are, the smoother the averaging process(es) will be, and the lower the variance of the estimates will be. The averaging constants may be chosen in the range: 0.5-0.8. The refined noise reference 922 calibration factors may be designated ĉ2LPF(m) and ĉ2HPF(m) and may be computed as expressed in equations (57) and (58):
The estimated calibration factors may be optionally smoothed (e.g., resulting in c2LPF(m) and c2HPF(m)) to minimize discontinuities in the calibrated noise reference signal 952 as expressed in equations (59) and (60):
c2LPF(m)=β7c2LPF(m−1)+(1−β7)ĉ2LPF(m) (59)
c2HPF(m)=β8c2HPF(m−1)+(1−β8)ĉ2HPF(m) (60)
β7 and β8 are averaging constants that may take values between 0 and 1. The higher the values of β7 and β8 are, the smoother the averaging process will be, and the lower the variance of the estimates will be. Typically, values in the range: 0.7-0.8 may be used. The calibrated noise reference signal 952 may be the summation of the two scaled sub-bands of the refined noise reference signal 922 and may be designated znf(n).
The primary purpose of secondary beamforming may be to utilize the calibrated refined noise reference signal 1052 and remove more noise from the desired audio reference signal 1016. The input to the adaptive filter 1084 may be chosen to be the calibrated refined noise reference signal 1052. The input signal may be optionally low-pass filtered by the LPF 1080 in order to prevent the beamformer 1054 from aggressively suppressing high-frequency content in the desired audio reference signal 1016. Low-pass filtering the input may help ensure that the second desired audio signal 1056 of the beamformer 1054 does not sound muffled. An Infinite Impulse Response (IIR) or Finite Impulse Response (FIR) filter with a 2800-3500 Hz cut-off frequency for an 8 KHz sampling rate fs may be used for low-pass filtering the calibrated refined noise reference signal 1052. The cut-off frequency may be doubled if the sampling rate fs is doubled.
The calibrated refined noise reference signal 1052 may be designated znf(n). The LPF 1080 may be designated hLPF(n). The low-pass filtered, calibrated, refined noise reference signal 1082 may be designated zj(n). The output 1086 of the adaptive filter 1084 may be designated zw2(n). The adaptive filter weights may be designated w2(i), and may be updated using any adaptive filtering technique known in the art (e.g., LMS, NLMS, etc.). The desired audio reference signal 1016 may be designated zb1(n). The second desired audio signal 1056 may be designated zsf(n). The beamformer 1054 may be configured to implement a beamforming process as expressed in equations (61), (62), and (63):
Although not shown in
Desired audio signals (which may include speech 106) as well as ambient noise (e.g., the ambient noise 108) may be received 1288 via multiple transducers (e.g., microphones 110a, 110b). These transducers may be closely spaced on the communication device. These analog audio signals may be converted 1289 to digital audio signals (e.g., digital audio signals 746a, 746b).
The digital audio signals may be calibrated 1290, such that the desired audio energy is balanced between the signals. Beamforming may then be performed 1291 on the signals, which may produce at least one desired audio reference signal (e.g., desired audio reference signal 716) and at least one noise reference signal (e.g., noise reference signal 718). The noise reference signal(s) may be refined 1292 by removing more desired audio from the noise reference signal(s). The noise reference signal(s) may then be calibrated 1293, such that the energy of the noise in the noise reference signal(s) is balanced with the noise in the desired audio reference signal(s). Additional beamforming may be performed 1294 to remove additional noise from the desired audio reference signal. Post processing may also be performed 1295.
The method 1200 described in
Reference is now made to
The communication device 1302 includes a processor 1370. The processor 1370 may be a general purpose single- or multi-chip microprocessor (e.g., an ARM), a special purpose microprocessor (e.g., a digital signal processor (DSP)), a microcontroller, a programmable gate array, etc. The processor 1370 may be referred to as a central processing unit (CPU). Although just a single processor 1370 is shown in the communication device 1302 of
The communication device 1302 also includes memory 1372. The memory 1372 may be any electronic component capable of storing electronic information. The memory 1372 may be embodied as random access memory (RAM), read only memory (ROM), magnetic disk storage media, optical storage media, flash memory devices in RAM, on-board memory included with the processor, EPROM memory, EEPROM memory, registers, and so forth, including combinations thereof.
Data 1374 and instructions 1376 may be stored in the memory 1372. The instructions 1376 may be executable by the processor 1370 to implement the methods disclosed herein. Executing the instructions 1376 may involve the use of the data 1374 that is stored in the memory 1372.
The communication device 1302 may also include multiple microphones 1310a, 1310b, 1310n. The microphones 1310a, 1310b, 1310n may receive audio signals that include speech and ambient noise, as discussed above. The communication device 1302 may also include a speaker 1390 for outputting audio signals.
The communication device 1302 may also include a transmitter 1378 and a receiver 1380 to allow wireless transmission and reception of signals between the communication device 1302 and a remote location. The transmitter 1378 and receiver 1380 may be collectively referred to as a transceiver 1382. An antenna 1384 may be electrically coupled to the transceiver 1382. The communication device 1302 may also include (not shown) multiple transmitters, multiple receivers, multiple transceivers and/or multiple antenna.
The various components of the communication device 1302 may be coupled together by one or more buses, which may include a power bus, a control signal bus, a status signal bus, a data bus, etc. For the sake of clarity, the various buses are illustrated in
In the above description, reference numbers have sometimes been used in connection with various terms. Where a term is used in connection with a reference number, this is meant to refer to a specific element that is shown in one or more of the Figures. Where a term is used without a reference number, this is meant to refer generally to the term without limitation to any particular Figure.
The term “determining” encompasses a wide variety of actions and, therefore, “determining” can include calculating, computing, processing, deriving, investigating, looking up (e.g., looking up in a table, a database or another data structure), ascertaining and the like. Also, “determining” can include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory) and the like. Also, “determining” can include resolving, selecting, choosing, establishing and the like.
The phrase “based on” does not mean “based only on,” unless expressly specified otherwise. In other words, the phrase “based on” describes both “based only on” and “based at least on.”
The term “processor” should be interpreted broadly to encompass a general purpose processor, a central processing unit (CPU), a microprocessor, a digital signal processor (DSP), a controller, a microcontroller, a state machine, and so forth. Under some circumstances, a “processor” may refer to an application specific integrated circuit (ASIC), a programmable logic device (PLD), a field programmable gate array (FPGA), etc. The term “processor” may refer to a combination of processing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The term “memory” should be interpreted broadly to encompass any electronic component capable of storing electronic information. The term memory may refer to various types of processor-readable media such as random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), programmable read-only memory (PROM), erasable programmable read only memory (EPROM), electrically erasable PROM (EEPROM), flash memory, magnetic or optical data storage, registers, etc. Memory is said to be in electronic communication with a processor if the processor can read information from and/or write information to the memory. Memory that is integral to a processor is in electronic communication with the processor.
The terms “instructions” and “code” should be interpreted broadly to include any type of computer-readable statement(s). For example, the terms “instructions” and “code” may refer to one or more programs, routines, sub-routines, functions, procedures, etc. “Instructions” and “code” may comprise a single computer-readable statement or many computer-readable statements. The terms “instructions” and “code” may be used interchangeably herein.
The functions described herein may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored as one or more instructions on a computer-readable medium. The term “computer-readable medium” refers to any available medium that can be accessed by a computer. By way of example, and not limitation, a computer-readable medium may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray® disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers.
Software or instructions may also be transmitted over a transmission medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of transmission medium.
The methods disclosed herein comprise one or more steps or actions for achieving the described method. The method steps and/or actions may be interchanged with one another without departing from the scope of the claims. In other words, unless a specific order of steps or actions is required for proper operation of the method that is being described, the order and/or use of specific steps and/or actions may be modified without departing from the scope of the claims.
Further, it should be appreciated that modules and/or other appropriate means for performing the methods and techniques described herein, such as those illustrated by
It is to be understood that the claims are not limited to the precise configuration and components illustrated above. Various modifications, changes and variations may be made in the arrangement, operation and details of the systems, methods, and apparatus described herein without departing from the scope of the claims.
This application is related to and claims priority from U.S. Provisional Patent Application Ser. No. 61/037,453, filed Mar. 18, 2008, for “Wind Gush Detection Using Multiple Microphones,” with inventors Dinesh Ramakrishnan and Song Wang, which is incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
5511128 | Lindemann | Apr 1996 | A |
6002776 | Bhadkamkar et al. | Dec 1999 | A |
6154552 | Koroljow et al. | Nov 2000 | A |
6594367 | Marash et al. | Jul 2003 | B1 |
7099821 | Visser et al. | Aug 2006 | B2 |
7130429 | Dalgaard et al. | Oct 2006 | B1 |
7366662 | Visser et al. | Apr 2008 | B2 |
7587054 | Elko et al. | Sep 2009 | B2 |
8068619 | Zhang et al. | Nov 2011 | B2 |
8103023 | Merks | Jan 2012 | B2 |
8184816 | Ramakrishnan et al. | May 2012 | B2 |
8379875 | Hamalainen | Feb 2013 | B2 |
20020048376 | Ukita | Apr 2002 | A1 |
20030027600 | Krasny et al. | Feb 2003 | A1 |
20030147538 | Elko | Aug 2003 | A1 |
20030161485 | Smith | Aug 2003 | A1 |
20040008850 | Gustavsson | Jan 2004 | A1 |
20040161120 | Petersen et al. | Aug 2004 | A1 |
20050047611 | Mao | Mar 2005 | A1 |
20050123149 | Elko et al. | Jun 2005 | A1 |
20050141731 | Hamalainen | Jun 2005 | A1 |
20050147258 | Myllyla et al. | Jul 2005 | A1 |
20050149320 | Kajala et al. | Jul 2005 | A1 |
20050195988 | Tashev et al. | Sep 2005 | A1 |
20060120540 | Luo | Jun 2006 | A1 |
20060153360 | Kellermann et al. | Jul 2006 | A1 |
20060222184 | Buck et al. | Oct 2006 | A1 |
20060269080 | Oxford et al. | Nov 2006 | A1 |
20070047743 | Taenzer et al. | Mar 2007 | A1 |
20070076898 | Sarroukh et al. | Apr 2007 | A1 |
20070088544 | Acero et al. | Apr 2007 | A1 |
20070274534 | Lockhart et al. | Nov 2007 | A1 |
20080192955 | Merks | Aug 2008 | A1 |
20080317259 | Zhang et al. | Dec 2008 | A1 |
20090089053 | Wang et al. | Apr 2009 | A1 |
20090190774 | Wang et al. | Jul 2009 | A1 |
20090238377 | Ramakrishnan et al. | Sep 2009 | A1 |
20090240495 | Ramakrishnan et al. | Sep 2009 | A1 |
20090304203 | Haykin et al. | Dec 2009 | A1 |
Number | Date | Country |
---|---|---|
10207490 | Aug 1998 | JP |
11052977 | Feb 1999 | JP |
11231900 | Aug 1999 | JP |
2005195955 | Jul 2005 | JP |
2008219458 | Sep 2008 | JP |
289477 | Oct 1996 | TW |
589802 | Jun 2004 | TW |
1244819 | Dec 2005 | TW |
200828264 | Jul 2008 | TW |
WO2004008804 | Jan 2004 | WO |
2007028250 | Mar 2007 | WO |
2007144147 | Dec 2007 | WO |
WO2008037925 | Apr 2008 | WO |
WO2008101198 | Aug 2008 | WO |
Entry |
---|
Peng, et al. “Asymmetric Crosstalk-Resistant Adaptive Noise Canceller and Its Application in Beamforming.” Circuits and Systems, 1992. ISCAS '92. Proceedings., 1992 IEEE International Symposium on, vol. 2, pp. 513-516. May 1992. |
Cohen I et al: “Two-channel signal detection and speech enhancement based on the transient beam-to-reference ratio ” Proceedings of International Conference on Acoustics, Speech and Signal Processing (ICASSP'03) Apr. 6-10, 2003 Hong Kong, China; [IEEE International Conference on Acoustics, Speech, and Signal Processing ( ICASSP ), 2003 IEEE International Conference, vol. 5, Apr. 6, 2003, pp. V—233-V—236, XP010639251. |
Fa-Long Luo and Arye Nehorai,“Recent developments in signal processing for digital hearing aids,” IEEE Signal Processing Magazine, pp. 103-106, Sep. 2006. |
International Search Report—PCT/US2009/065761, International Search Authority—European Patent Office—Mar. 5, 2010. |
Michael R. Shust, “Active removal of wind noise from outdoor microphones using local velocity measurements,” PhD dissertation, Michigan Technological University, Jul. 1998. |
Written Opinion—PCT/US2009/065761—ISA/EPO—Mar. 5, 2010. |
Taiwan Search Report—TW098140186—TIPO—Jun. 12, 2013. |
Number | Date | Country | |
---|---|---|---|
20090240495 A1 | Sep 2009 | US |
Number | Date | Country | |
---|---|---|---|
61037453 | Mar 2008 | US |