This disclosure relates generally to techniques for processing audio signals, including techniques for isolating voice data, removing noise from audio signals, or otherwise enhancing the audio signals prior to outputting the audio signals. Apparatuses and systems for processing audio signals are also disclosed.
A variety of audio devices, including state of the art mobile telephones, include a primary microphone that is positioned and oriented to receive audio from an intended source, and a reference microphone that is positioned and oriented to receive background noise while receiving little or no audio from the intended source. In many usage scenarios, the reference microphone provides an indicator of the amount of noise that is likely to be present in a primary channel of an audio signal obtained by the primary microphone. In particular, the relative spectral power levels, for a given frequency band, between the primary and reference channel may indicate whether that frequency band is dominated by noise or by signal in the primary channel. The primary channel audio in that frequency band may then be selectively suppressed or enhanced accordingly.
It is the case, however, that the probability of speech (respectively, noise) dominance in the primary channel, considered as a function of the unmodified relative spectral power levels between the primary and reference channels, may vary by frequency bin and may not be stationary over time. Thus the use of a raw power ratios, fixed thresholds, and/or fixed rescaling factors in interchannel comparison-based filtering may well result in undesirable speech suppression and/or noise amplification in the primary channel audio.
Accordingly, improvements are sought in estimating the differences in noise-dominant/speech-dominant power levels between input channels, and in suppressing noise and enhancing speech presence in the primary input channel.
One aspect of the invention features, in some embodiments, a method for transforming an audio signal. The method includes obtaining a primary channel of an audio signal with a primary microphone of an audio device; obtaining a reference channel of the audio signal with a reference microphone of the audio device; estimating a spectral magnitude of the primary channel of the audio signal for a plurality of frequency bins; and estimating a spectral magnitude of the reference channel of the audio signal for a plurality of frequency bins. The method further includes transforming one or more of the spectral magnitudes for one or more frequency bins by applying at least one of a fractional linear transformation and a higher order rational functional transformation; and further transforming one or more of the spectral magnitudes for one or more frequency bins. The further transformation can include one or more of: renormalizing one or more of the spectral magnitudes; exponentiating one or more of the spectral magnitudes; temporal smoothing of one or more of the spectral magnitudes; frequency smoothing of one or more of the spectral magnitudes; VAD-based smoothing of one or more of the spectral magnitudes; psychoacoustic smoothing of one or more of the spectral magnitudes; combining an estimate of a phase difference with one or more of the transformed spectral magnitudes; and combining a VAD-estimate with one or more of the transformed spectral magnitudes.
In some embodiments, the method includes updating at least one of the fractional linear transformation and the higher order rational functional transformation per bin based on augmentative inputs.
In some embodiments, the method includes combining at least one of an a priori SNR estimate and an a posteriori SNR estimate with one or more of the transformed spectral magnitudes.
In some embodiments, the method includes combining signal power level difference (SPLD) data with one or more of the transformed spectral magnitudes.
In some embodiments, the method includes calculating a corrected spectral magnitude of the reference channel based on a noise magnitude estimate and a noise power level difference (NPLD). In some embodiments, the method includes calculating a corrected spectral magnitude of the primary channel based on the noise magnitude estimate and the NPLD.
In some embodiments, the method includes at least one of replacing one or more of the spectral magnitudes by weighted averages taken across neighboring frequency bins within a frame and replacing one or more of the spectral magnitudes by weighted averages taken across corresponding frequency bins from previous frames.
Another aspect of the invention features, in some embodiments, a method for adjusting a degree of filtering applied to an audio signal. The method includes obtaining a primary channel of an audio signal with a primary microphone of an audio device; obtaining a reference channel of the audio signal with a reference microphone of the audio device; estimating a spectral magnitude of the primary channel of the audio signal; and estimating a spectral magnitude of the reference channel of the audio signal. The method further includes modeling a probability density function (PDF) of a fast Fourier transform (FFT) coefficient of the primary channel of the audio signal; modeling a probability density function (PDF) of a fast Fourier transform (FFT) coefficient of the reference channel of the audio signal; maximizing at least one of a single channel PDF and a joint channel PDF to provide a discriminative relevance difference (DRD) between a noise magnitude estimate of the reference channel and a noise magnitude estimate of the primary channel; and determining which of the spectral magnitudes is greater for a given frequency. The method further includes emphasizing the primary channel when the spectral magnitude of the primary channel is stronger than the spectral magnitude of the reference channel; deemphasizing the primary channel when the spectral magnitude of the reference channel is stronger than the spectral magnitude of the primary channel; and wherein the emphasizing and deemphasizing include computing a multiplicative rescaling factor and applying the multiplicative rescaling factor to a gain computed in a prior stage of a speech enhancement filter chain when there is a prior stage, and directly applying a gain when there is no prior stage.
In some embodiments, the multiplicative rescaling factor is used as a gain.
In some embodiments, the method includes including an augmentative input with each spectral frame of at least one of the primary and reference audio channels.
In some embodiments, the augmentative input includes estimates of an a priori SNR and an a posteriori SNR in each bin of the spectral frame for the primary channel. In some embodiments, the augmentative input includes estimates of the per-bin NPLD between corresponding bins of the spectral frames for the primary channel and the reference channel. In some embodiments, the augmentative input includes estimates of the per-bin SPLD between corresponding bins of the spectral frames for the primary channel and reference channel. In some embodiments, the augmentative input includes estimates of a per frame phase difference between the primary channel and the reference channel.
Another aspect of the invention features, in some embodiments, an audio device, including a primary microphone for receiving an audio signal and for communicating a primary channel of the audio signal; a reference microphone for receiving the audio signal from a different perspective than the primary microphone and for communicating a reference channel of the audio signal; and at least one processing element for processing the audio signal to filter and or clarify the audio signal, the at least one processing element being configured to execute a program for effecting any of the methods described herein.
A more complete understanding of the present invention may be derived by referring to the detailed description when considered in connection with the Figures, and
The following description is of exemplary embodiments of the invention only, and is not intended to limit the scope, applicability or configuration of the invention. Rather, the following description is intended to provide a convenient illustration for implementing various embodiments of the invention. As will become apparent, various changes may be made in the function and arrangement of the elements described in these embodiments without departing from the scope of the invention as set forth herein. Thus, the detailed description herein is presented for purposes of illustration only and not of limitation.
Reference in the specification to “one embodiment” or “an embodiment” is intended to indicate that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least an embodiment of the invention. The appearances of the phrase “in one embodiment” or “an embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
The present invention extends to methods, systems, and computer program products for analyzing digital data. The digital data analyzed may be, for example, in the form of digital audio files, digital video files, real time audio streams, and real time video. streams, and the like. The present invention identifies patterns in a source of digital data and uses the identified patterns to analyze, classify, and filter the digital data, e.g., to isolate or enhance voice data. Particular embodiments of the present invention relate to digital audio. Embodiments are designed to perform non-destructive audio isolation and separation from any audio source.
The purpose of the Adaptive Interchannel Discriminative Rescaling (AIDR) filter is to adjust the degree of filtering of the spectral representation of the input from the primary microphone, which is presumed to contain more power from the desired signal than power from noise, based on the relevance-adjusted relative power levels of the primary and reference spectra, Y1 and Y2, respectively. The input from the reference microphone is presumed to contain more relevance-adjusted power from confounding noise than from the desired signal.
If it is detected that the secondary microphone input tends to contain more speech than the primary microphone input (e.g. the user is holding the phone in a reversed orientation), then the expectation regarding the relative magnitudes of Y1 and Y2 will also be reversed. Then in the following description, the roles of Y1 and Y2, etc., are simply interchanged, with the exception that the gain modifications may continue to be applied to Y1.
The logic of the AIDR filter, roughly speaking, is that for a given frequency, when the reference input is stronger than the primary input, then the corresponding spectral magnitude in the primary input represents more noise than signal and should be suppressed (or at least not accentuated). When the relative strengths of the reference and primary input are reversed, the corresponding spectral magnitude in the primary input represents more signal than noise and should be accentuated (or at least not suppressed).
However, accurately determining whether a given spectral component of the primary input is in fact “stronger” than its counterpart in the reference channel, in a manner relevant for noise suppression/speech enhancement contexts, typically requires one or both of the primary and reference spectral inputs be algorithmically transformed to a suitable form. Following transformation, filtering and noise suppression is effected via discriminative rescaling of the spectral components of the primary input channel. This suppression/enhancement is typically achieved by computing a multiplicative rescaling factor to be applied to gains computed in prior stages of a speech enhancement filter chain, although the rescaling factors may also be used as gains themselves with appropriate choice of parameters.
A diagrammatic overview of the multistage estimation and discrimination process of the AIDR filter is presented in
If the AIDR filter is incorporated into a speech enhancement filter chain following other processing components, augmentative inputs carrying additional information may accompany each spectral frame. Particular example inputs of interest (used in different filter variants) include
The necessary inputs Yi are combined into a single vector for use in discriminative rescaling (stage 2), as will be described shortly. An expanded diagram of the input transformation and combination process of the AIDR filter is presented in
Prototypical transformations (“Stage 1 Preprocessing”) include
where wk=(1, 2, 1) is a vector of frequency bin weights. The subscript k is included for w to acknowledge the possibility that the weighting vector for the local average could be different for different frequencies, e.g. narrower for low frequencies, broader for high frequencies. The weighting vector need not be symmetric about the k-th (central) bin. For instance, it may be skewed to weight more heavily bins above (in both bin index and corresponding frequency) the central bin. This may be useful during voiced speech to place emphasis on bins near the fundamental frequency and its higher harmonics.
Note that any and/or all of the above stages may be combined, or some stages may be omitted, with their respective parameters adjusted according to application (e.g. mel-scale reweighting used for automatic speech recognition but not mobile telephony).
The final output of the input transformation stage for frame index m is designated as u(m). Note that u(m) is a vector having the same length K as Yi, and u(k,m) indicates the component of u associated with the k-th discrete frequency component of the m-th spectral frame. The computation of u(m) requires the modified necessary inputs
In its simplest implementation, the per-bin action of f on
Without loss of generality, larger values of u(k,m) may be presumed to indicate that in the kth frequency bin there is more power from the desired signal than from the confounding noise at time index m.
More generally, the numerator and denominator of fk may instead involve higher order rational expressions in
Furthermore, any piecewise smooth transformation may be represented within any desired order of accuracy with this general representation (Chisholm approximant). In addition, the transformation parameters (Ak, Bk, Ck, Dk, or Ai,k, Cj,k in these example) may vary by frequency bin. For example, it can be useful to use different parameters for bins in lower versus higher frequency bands in cases where the expected noise power characteristics are different in lower versus higher frequencies.
In practice, the parameters of fk are not fixed but rather are updated from frame to frame based on augmentative inputs, e.g.
B
k
=B
k(αNPLD(k,m),ξ(k,m),η(k,m),S1(m),Δφ(m)), (1)
D
k
=D
k(αNPLD(k,m),S1(m),Δφ(m)) (2)
or
A
i,k
=A
i,k(αNPLD(k,m),ξ(k,m),η(k,m),S1(m),Δφ(m)), (3)
C
j,k
=C
j,k(αNPLD(k,m),S1(m),Δφ(m)) (4)
and so forth.
The adjustments to the raw inputs Y1(k,m), Y2(k,m) effect a per-bin transformation of raw spectral power estimates to quantities more relevant to the purpose of discriminating which components of the input Y1(k,m) are predominantly relevant to the desired signal. The transformations may act, for example, to rescale relative peaks and troughs in the primary and/or reference spectra, to smooth (or sharpen) spectral transients, and/or to correct for differences in orientation or spatial separation between the primary and reference microphones. As such factors may change over time, the relevant parameters of the transformation are typically updated once per frame while the AIDR filter is active.
The aim of the second stage is to filter noise components from the primary signal by reducing those Y1(k,m) magnitudes which are estimated to contain more noise than desired speech. The output of stage 1, u(m), serves as this estimate. If we take the output of stage 2 to be a vector of multiplicative gains for each frequency component of Y1(m), then the kth gain should be small (close to 0) when u(k,m) indicates a very low SNR and large (near 1, e.g. if gains are restricted to be non-constructive) if u(k,m) indicates a very high SNR. For the intermediate cases, it is desirable for there to be a gradual transition between these extremes.
Phrased generally, in the second step of the filter, the vector u is converted piecewise-smoothly into a vector w in such fashion that small values uk are mapped to small values wk and large values uk are mapped to larger non-negative values wk. Here k indicates frequency bin index. This transformation is achieved via the vector-valued function g:N→N giving g(u)=w. Element-wise, g is described by non-negative piecewise smooth functions gk:→. It may well be the case that 0≦wk≦Bk, for some finite Bk, but g need neither be bounded nor non-negative. Each gk should, however, be finite and non-negative over the plausible range of inputs uk.
A prototypical example of g features the simple sigmoid function
in each coordinate.
The generalized logistic function is more flexible:
The parameter αk sets the minimum value for wk. It is typically chosen to be a small positive value, e.g. 0.1, to avoid total suppression of Y(k,m).
The parameter βk is the primary determinant of the maximum value for wk, and it is generally set to 1, so that high SNR components are not modified by the filter. For some applications, however, βk may be made slightly larger than 1. When the AIDR is used as a post-processing component in a larger filtering algorithm, for example, and prior filtering stages tend to attenuate the primary signal (either globally or in particular frequency bands), then βk>1 may act to restore some speech components that were previously suppressed.
The output of gk in the transitional, intermediate range of u(k,m) values is determined by parameters δk, vk, and μk which control the degree, abscissa, and ordinate of maximum slope.
Initial values of these parameters are determined by examining the distribution of u(k,m) values for a variety of speakers under a wide range of noise conditions and comparing the u(k,m) values to the relative power levels of noise and speech. These distributions may vary substantially with mixing SNR and noise type; there is less variation between speakers. There are also clear differences between (psychoacoustic/frequency) bands. Examples of probability distributions for noise vs. speech power levels within various frequency bands are shown in
The empirical curves thus obtained are well-matched by the generalized logistic functions. The generalized logistic function provides the best fits, though the simple sigmoid is often adequate.
For convenience, ū(k,m) may be substituted for u(k,m) in the (generalized) logistic function of Stage 2. This has the effect of concentrating values that may range over several orders of magnitude into a much smaller interval. The same end result may be achieved without resort to taking logarithms of the function input, however, by rescaling and algebraic recombination of parameter values using logarithms.
Parameter values in Stage 2 may adjust on a “decision-directed basis” within fixed limits.
The vector w may be used either as a standalone vector of multiplicative gains to be applied to the spectral magnitudes of the primary input, or it may be used a scaling and/or shifting factor for gains computed in prior filtering stages.
When used a standalone filter, the AIDR filter provides basic noise suppression using the modified relative levels of spectral powers as an ad hoc estimate of a priori SNR and the sigmoidal function as a gain function.
Embodiments of the present invention may also extend to computer program products for analyzing digital data. Such computer program products may be intended for executing computer-executable instructions upon computer processors in order to perform methods for analyzing digital data. Such computer program products may comprise computer-readable media which have computer-executable instructions encoded thereon wherein the computer-executable instructions, when executed upon suitable processors within suitable computer environments, perform methods of analyzing digital data as further described herein.
Embodiments of the present invention may comprise or utilize a special purpose or general-purpose computer including computer hardware, such as, for example, one or more computer processors and data storage or system memory, as discussed in greater detail below. Embodiments within the scope of the present invention also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer system. Computer-readable media that store computer-executable instructions are computer storage media. Computer-readable media that carry computer-executable instructions are transmission media. Thus, by way of example, and not limitation, embodiments of the invention can comprise at least two distinctly different kinds of computer-readable media: computer storage media and transmission media.
Computer storage media includes RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other physical medium which can be used to store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer.
A “network” is defined as one or more data links that enable the transport of electronic data between computer systems and/or modules and/or other electronic devices. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer properly views the connection as a transmission medium. Transmission media can include a network and/or data links which can be used to carry or transmit desired program code means in the form of computer-executable instructions and/or data structures which can be received or accessed by a general purpose or special purpose computer. Combinations of the above should also be included within the scope of computer-readable media.
Further, upon reaching various computer system components, program code means in the form of computer-executable instructions or data structures can be transferred automatically from transmission media to computer storage media (or vice versa). For example, computer-executable instructions or data structures received over a network or data link can be buffered in RAM within a network interface module (e.g., a “NIC”), and then eventually transferred to computer system RAM and/or to less volatile computer storage media at a computer system. Thus, it should be understood that computer storage media can be included in computer system components that also (or possibly primarily) make use of transmission media.
Computer-executable instructions comprise, for example, instructions and data which, when executed at a processor, cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. The computer executable instructions may be, for example, binaries which may be executed directly upon a processor, intermediate format instructions such as assembly language, or even higher level source code which may require compilation by a compiler targeted toward a particular machine or processor. Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the described features or acts described above. Rather, the described features and acts are disclosed as example forms of implementing the claims.
Those skilled in the art will appreciate that the invention may be practiced in network computing environments with many types of computer system configurations, including, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, pagers, routers, switches, and the like. The invention may also be practiced in distributed system environments where local and remote computer systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks. In a distributed system environment, program modules may be located in both local and remote memory storage devices.
With reference to
Communication channels 608 are examples of transmission media. Transmission media typically embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information-delivery media. By way of example, and not limitation, transmission media include wired media, such as wired networks and direct-wired connections, and wireless media such as acoustic, radio, infrared, and other wireless media. The term “computer-readable media” as used herein includes both computer storage media and transmission media.
Embodiments within the scope of the present invention also include computer-readable media for carrying or having computer-executable instructions or data structures stored thereon. Such physical computer-readable media, termed “computer storage media,” can be any available physical media that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, such computer-readable media can comprise physical storage and/or memory media such as RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other physical medium which can be used to store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer.
Computer systems may be connected to one another over (or are part of) a network, such as, for example, a Local Area Network (“LAN”), a Wide Area Network (“WAN”), a Wireless Wide Area Network (“WWAN”), and even the Internet 110. Accordingly, each of the depicted computer systems as well as any other connected computer systems and their components, can create message related data and exchange message related data (e.g., Internet Protocol (“IP”) datagrams and other higher layer protocols that utilize IP datagrams, such as, Transmission Control Protocol (“TCP”), Hypertext Transfer Protocol (“HTTP”), Simple Mail Transfer Protocol (“SMTP”), etc.) over the network.
Other aspects, as well as features and advantages of various aspects, of the disclosed subject matter should be apparent to those of ordinary skill in the art through consideration of the disclosure provided above, the accompanying drawings and the appended claims.
Although the foregoing disclosure provides many specifics, these should not be construed as limiting the scope of any of the ensuing claims. Other embodiments may be devised which do not depart from the scopes of the claims. Features from different embodiments may be employed in combination.
Finally, while the present invention has been described above with reference to various exemplary embodiments, many changes, combinations and modifications may be made to the embodiments without departing from the scope of the present invention. For example, while the present invention has been described for use in speech detection, aspects of the invention may be readily applied to other audio, video, data detection schemes. Further, the various elements, components, and/or processes may be implemented in alternative ways. These alternatives can be suitably selected depending upon the particular application or in consideration of any number of factors associated with the implementation or operation of the methods or system. In addition, the techniques described herein may be extended or modified for use with other types of applications and systems. These and other changes or modifications are intended to be included within the scope of the present invention.
This patent application claims priority to U.S. provisional application Ser. No. 62/078,844 filed Nov. 12, 2014 and titled “Adaptive Interchannel Discriminative Rescaling Filter,” which is incorporated herein in its entirety by reference.
Number | Date | Country | |
---|---|---|---|
62078844 | Nov 2014 | US |