Patent Description:
Many audio systems both detect sound and produce sound in a space, such as automotive audio systems, conference room systems, telephone systems, and others. These systems may include playback transducers, e.g., loudspeakers, and may also include one or more microphones. In various examples, acoustic energy in the space may include audio played by the system, desired signals such as user speech, and audio from other sources, which may include noise. Playback audio from the audio system may be, for example, entertainment audio, audio from a far end participant, or other audio. One or more microphones may pick up any or all of these acoustic signals, and for various applications there may be a benefit to estimating a power spectral density (PSD) of any of the playback audio, noise, or other signal components in the microphone signal.

The publication<NPL> ; discloses techniques based on multi-coherence analysis (residual spectrum) for analysing vibrations of forge hammers.

The patent application <CIT> discloses techniques for noise estimation for an audio adjustment application based on a coherence calculator that determines at least one coherence value between microphone signals generated by at least two microphones that each independently senses acoustic energy in a listening space.

The patent application <CIT> discloses estimating the noise power spectral density based on a moving average estimator and its application for noise reduction and comfort noise generation.

The present invention relates to a method for estimating a power spectral density of a signal component and to a corresponding system, according to the independent claims. Advantageous embodiments are laid out in dependent claims of the appended set of claims.

In some implementations, the technology described herein may provide one or more of the following advantages.

By deriving the power spectral density of a selected portion of an input signal, frequency-specific information (which is directly usable in various applications) about the selected portion can be directly computed without wasting computing resources in determining a time waveform of the selected portion. The technology, which can be implemented based on input signals captured using a single microphone, is scalable with the number of (input) audio sources. Input audio sources that are highly correlated can be handled simply by omitting one or more row reduction steps in the matrix operations described herein. In some cases, this can provide significant improvements over adaptive filtration techniques that often malfunction in the presence of correlated sources.

Two or more of the features described in this disclosure, including those described in this summary section, may be combined to form implementations not specifically described herein.

The technology described in this document is directed to separating a noise signal from a microphone signal that represents captured audio from both an audio system and the noise sources. This can be used, for example, in an automotive audio system that continuously and automatically adjusts the audio reproduction in response to changing noise conditions in a vehicle cabin, to provide a uniform/consistent perceptual audio experience. This can also be used to reduce the noise content of the microphone signal, e.g., for hands-free communication applications, such as by spectral subtraction or postfiltering, and/or for estimating a "comfort noise" to be added to a telephony line when a far end is quiescent (absence of a transmitted signal).

Such audio systems may include a microphone that is typically placed in the vehicle cabin to measure the noise. Such systems may depend on separating the contribution of the system audio from the noise in the microphone signal. This document describes technology directed to removing, from the microphone signal, the contributions from multiple acoustic transducers, or multiple input channels of the audio system, based on estimating coherence between pairs of acoustic transducers and coherence between each acoustic transducer and the microphone signal. The estimations and removals are done iteratively using matrix operations in the frequency domain, which directly generates an estimate of the power spectral density of the time-varying noise. Computing such frequency-specific information directly without first estimating a corresponding time domain estimate of the noise results in savings of computational resources, particular for audio systems where gain adjustments are made separately for different frequency bands. The technology described herein can be implemented using signals captured by a single microphone, and is scalable for increasing number of channels/acoustic transducers in the underlying audio system.

<FIG> is a block diagram of an example system <NUM> for adjusting output audio in a vehicle cabin. The input audio signal <NUM> is first analyzed to determine a current level of the input audio signal <NUM>. This can be done, for example, by a source analysis engine <NUM>. In parallel, a noise analysis engine <NUM> can be configured to analyze the level and profile of the noise present in the vehicle cabin. In some implementations, the noise analysis engine can be configured to make use of multiple inputs such as a microphone signal <NUM> and one or more auxiliary noise input <NUM> including, for example, inputs indicative of the vehicle speed, fan speed settings of the heating, ventilating, and air-conditioning system (HVAC) etc. In some implementations, a loudness analysis engine <NUM> may be deployed to analyze the outputs of the source analysis engine <NUM> and the noise analysis engine <NUM> to compute any gain adjustments needed to maintain a perceived quality of the audio output. In some implementations, the target SNR can be indicative of the quality/level of the input audio <NUM> as perceived within the vehicle cabin in the presence of steady-state noise. The loudness analysis engine can be configured to generate a control signal that controls the gain adjustment circuit <NUM>, which in turn adjusts the gain of the input audio signal <NUM>, possibly separately in different spectral bands to perform adjustments (e.g., tonal adjustments), to generate the output audio signal <NUM>.

The microphone signal <NUM> can include contributions from both the acoustic transducers of the underlying audio system and the noise sources. The technology described herein is directed to separating, from the microphone signal <NUM>, the contributions from the system audio, such that the residual (after removal of the contributions from the system audio) is taken as an estimate of the noise that may be used in further processing steps. <FIG> is a block diagram of an example environment <NUM> in which the technology described herein may be implemented. The environment <NUM> includes multiple acoustic transducers 202a-202n (<NUM>, in general) that generate the system audio. In some implementations, the acoustic transducers <NUM> generate the system audio in multiple channels. In some implementations, instead of audio outputs, the audio input channels can be directly used as inputs to the system. For example, the system audio can include <NUM> channels (e.g., in a stereo configuration), or <NUM> channels (in a <NUM> surround configuration). Other channel configurations are also possible.

In <FIG>, the microphone signal <NUM> (as captured using the microphone <NUM>) is denoted as y(n) where n is the discrete time index. The audio signals radiated from the individual acoustic transducers <NUM> are denoted as xi(n), and the corresponding signal paths between the acoustic transducers <NUM> and the microphone <NUM> are represented as hiy(n). The external noise is represented by the signal w(n). The system of <FIG> can thus be represented as: <MAT> where * represents the linear convolution operation. In the frequency domain, equation (<NUM>) is represented as: <MAT> where the capitalized form of each variable indicates the frequency domain counterpart.

This document describes, computation of an instantaneous measure-e.g., energy level, power spectral density-of the noise signal w(n), given the source signals xi(n) and the microphone signal y(n). The transfer functions hiy(n) are assumed to be varying and unknown. In some implementations, the determination of the instantaneous measure of the noise signal can be made using a microphone signal captured using a single microphone <NUM>, and using the concept of coherence. Multiple coherence calculations can be executed, for example, between each of the multiple input sources and the microphone in determining the instantaneous measure of the noise signal.

For the case of two acoustic transducers only, equation (<NUM>) becomes: <MAT>.

Estimates of the auto-spectra and cross-spectra of the inputs and output signals may be computed and assembled in a cross-spectrum matrix as: <MAT>.

In some implementations, the instantaneous measure of the noise signal can be determined as the auto-spectrum of the cabin noise Gww, which is the residual auto-spectrum of the microphone signal Gyy after content correlated with the inputs x<NUM> and x<NUM> has been removed. This can be represented as Gyy·<NUM>,<NUM>, the auto-spectrum of the microphone signal Gyy conditioned on the inputs x<NUM> and x<NUM>. The general formula for removing the content correlated with one signal a from the cross-spectrum of two signals b and c is given by: <MAT>.

For an auto-spectrum Gbb, the substitution b = c in equation (<NUM>) yields: <MAT> where <MAT> is the coherence between a and b, so that Gbb·a is the fraction of the auto-spectrum of b that is not coherent with a. Removing the content correlated with one signal from all the remaining signals is equivalent to performing one step of Gaussian elimination on the cross-spectrum matrix. If the first row of the cross-spectrum matrix above is multiplied by <MAT>, and the product is subtracted from the second row, the first step of diagonalization yields: <MAT>.

Equation (<NUM>) represents the formula for conditioned cross-spectra being used in in re-writing the elements (<NUM>,<NUM>) and (<NUM>,<NUM>) of the matrix. Continuing with the iterative diagonalization process, multiplication of the first row of the cross-spectrum matrix on the right-hand side of equation (<NUM>) by <MAT> and subtracting the product from the third row yields: <MAT>.

The right-hand side of equation (<NUM>) represents a point in the iterative matrix diagonalization process, where content coherent with the first audio input are removed from the auto and cross-spectra of the other signals, and the <NUM> × <NUM> cross-spectrum matrix in the lower right corner represents the residual auto and cross-spectra conditioned on the first signal. Terms involving the second audio input stand modified to account for the case in which the two audio inputs are not entirely independent but have some correlation (e.g., as is the case for left and right stereo channels). To further reduce the effect of the second audio input from the microphone signal, the matrix diagonalization (e.g., by Gaussian elimination) can be continued on the <NUM> × <NUM> matrix in the lower right corner. This can include multiplying the second row by <MAT> and subtracting the products from the third row: <MAT>.

The last element in the diagonal, Gyy·<NUM>,<NUM> is the auto-spectrum of the microphone signal conditioned on the two audio inputs, which is essentially an estimate of the noise auto-spectrum Gww. Iterative modification of the frequency domain representation of the input signal, as described above, therefore yields an estimate of power spectral density of the noise signal via removal of contributions due to the various acoustic sources.

For systems with more audio input sources such as the acoustic transducers <NUM>, the iterative process described above can be scaled as needed to reduce the effect of content of each audio input one by one from the remaining signals. In some implementations, a subset of the audio inputs may be linearly dependent (e.g., when a stereo pair is up-mixed to more channels, for example, for a <NUM> or <NUM> configuration). In such cases, a diagonal term used in the denominator of a row reduction coefficient (e.g., G<NUM>·<NUM> above) can have a low value (possibly zero in some cases), which in turn can lead to numerical problems. In such circumstances, row reductions using that particular row may be omitted. For example, if <MAT>, that implies that <NUM>% of the power in the original auto-spectrum of the output of the second acoustic transducer has already been accounted for by the operations involving the auto and cross-spectra of the output of the first acoustic transducer. Accordingly, a separate row reduction using the output of the second acoustic transducer may be avoided without significantly affecting the noise estimate.

The scalability aspect of the technology is illustrated with reference to <FIG>, which shows a block diagram of an example system that may be used for implementing the technology described herein. In some implementations, the system includes the noise analysis engine <NUM> described above with reference to <FIG>, wherein the noise analysis engine <NUM> receives as inputs the signals xi(n) driving the corresponding acoustic transducers <NUM>. The noise analysis engine <NUM> also receives as input the microphone signal y(n) as captured by the microphone <NUM>.

In some implementations, the noise analysis engine <NUM> is configured to capture/use time segments of the N system audio sources xi(n), i = <NUM>, <NUM>,. , N, as well as that of y(n) from the microphone <NUM>. In some implementations, the noise analysis engine is configured to apply appropriate windowing to the time segments. The noise analysis engine <NUM> is also configured to compute a frequency domain representation from the time segments of each input. For example, the noise analysis engine <NUM> may compute Fourier transforms of the windowed time segments to get spectra Xi(f) and Y(f). These spectra essentially represent one time-slice of the short-time Fourier transforms (STFT) of the signals. The noise analysis engine <NUM> is further configured to compute the cross-spectral density matrix, for example, by forming products and averaging over several time slices to generate a representation of the following matrix: <MAT> where <MAT>, and Gyy = E{Y*Y}. In some implementations, the operation E{·} can be approximated by applying a single-order low pass filter.

For the iterative process, the noise analysis engine <NUM> is configured to use a matrix diagonalization process (e.g., Gaussian elimination) on rows of the matrix to make the matrix upper triangular as follows: <MAT> where Gii. j! is the auto-spectrum of the signal xi(n) conditioned on all the previous sources xk(n), k = <NUM>, <NUM>,. As discussed above, a row reduction step may be omitted for numerical stability if a particular diagonal term used is small (e.g., less than a threshold).

The last element on the diagonal in the upper triangular matrix Gyy·x is the power spectral density of the microphone signal y(n) conditioned on all the system audio source signals xi(n), i = <NUM>, <NUM>,. , N,, and can be considered to be equivalent to the power spectral density estimate Gww of the cabin noise not due to the known system audio content. The power spectral density is in the form of a frequency vector, and therefore provides frequency specific information about the noise.

The above steps derive the noise estimate corresponding to one particular time segment. The procedure can be repeated for subsequent time segments to provide a running instantaneous measure of the noise. Such instantaneous measures of the noise can be used for further processing, such as in adjusting the gain of an audio system in accordance with the instantaneous noise. In some implementations, such gain adjustments may be performed separately for different frequency bands such as ranges corresponding to bass, mid-range, and treble.

Overall, the technology described herein can be used to mitigate effects of variable noise on the listening experience by adjusting, automatically and dynamically, the music or speech signals played by an audio system in a moving vehicle. In some implementations, the technology can be used to promote a consistent listening experience without typically requiring significant manual intervention. For example, the audio system can include one or more controllers in communication with one or more noise detectors. An example of a noise detector includes a microphone placed in a cabin of the vehicle. The microphone is typically placed at a location near a user's ears, e.g., along a headliner of the passenger cabin. Other examples of noise detectors can include speedometers and/or electronic transducers capable of measuring engine revolutions per minute, which in turn can provide information that is indicative of the level of noise perceived in the passenger cabin. An example of a controller includes, but is not limited to, a processor, e.g., a microprocessor. The audio system can include one or more of the source analysis engine <NUM>, loudness analysis engine <NUM>, noise analysis engine <NUM>, and gain adjustment circuit <NUM>. In some implementations, one or more controllers of the audio system can be used to implement one or more of the above described engines.

<FIG> is a flow chart of an example process <NUM> for estimating a power spectral density of noise in accordance with the technology described herein. In some implementations, the operations of the process <NUM> can be executed, at least in part, by the noise analysis engine <NUM> described above. Operations of the process <NUM> includes receiving an input signal representing audio captured using a microphone, the input signal including a first portion that represents acoustic outputs from one or more audio sources, and a second portion that represents a noise component; (<NUM>). In some implementations, the microphone is disposed inside a vehicle cabin. The first portion can include, for example, the acoustic outputs from the one or more audio sources, as processed by a signal path between the microphone and corresponding acoustic transducers. In some implementations, the first portion represents acoustic outputs from three or more audio sources.

Operations of the process <NUM> can also include iteratively modifying a frequency domain representation of the input signal, such that the modified frequency domain representation represents a portion of the input signal in which effects due to the first portion are substantially reduced (<NUM>). The frequency domain representation can be based on a time segment of the input signal. In some implementations, the frequency domain representation includes, for each frequency bin, values that each represent a level of coherence between acoustic outputs from a pair of two or more audio sources, values that each represent a level of coherence between an acoustic output of a particular audio source of the one or more audio sources and the audio captured using the microphone, and values that each represent the power of the acoustic output for the particular frequency bin, of an individual audio source of the one or more audio sources. In some implementations, the values that each represent a level of coherence between acoustic outputs from a pair of two or more audio sources include one value for every permutation of pairs of two or more audio sources. In some implementations, the values that each represent a level of coherence between an acoustic output of a particular audio source of the one or more audio sources and the audio captured using the microphone include two values for each of the one or more audio sources. In some implementations, the values that each represent the power of the acoustic output for the particular frequency bin, of an individual audio source of the one or more audio sources include one value for each of the one or more audio sources.

According to the claimed invention, the frequency domain representation includes a cross-spectral density matrix computed based on outputs of the one or more audio sources. Iteratively modifying the frequency domain representation includes executing a matrix diagonalization process on the cross-spectral density matrix.

Operations of the process <NUM> also includes determining, from the modified frequency domain representation, an estimate of a power spectral density of the noise (<NUM>), and may include generating a control signal configured to adjust one or more gains of an acoustic transducer corresponding one or more frequency ranges (<NUM>). The control signal being generated can be based on the estimate of the power spectral density of the noise. For example, the one or more gains of the acoustic transducer are adjusted to increase with an increase in the estimate of the power spectral density of the noise, and decrease with a decrease in the estimate of the power spectral density.

In various examples, the method illustrated by blocks <NUM>, <NUM>, and <NUM> of <FIG> may be utilized for a different purpose than generating a control signal (<NUM>).

According to one aspect, the estimated power spectral density of the noise may is applied to postfilter processing for noise reduction. In other examples, the estimated power spectral density of the noise may be subtracted from the total power spectral density of the input signal, which may be a microphone signal, resulting in an estimate of the power spectral density of echo components in the microphone signal. The estimated power spectral density of the echo components, according to a further aspect, is applied to postfilter processing for echo reduction. In general, a power spectral density contributed by any of the input signals, e.g., the source signals xi(n), or the noise signal w(n), may be estimated by the systems, methods, and processes described herein, and used for any of various purposes.

In various examples, Gaussian elimination as described may be performed on a cross power spectral density matrix, e.g., as described with reference to <FIG>, to identify and/or remove a component of any signal that is contributed from any particular reference signal. In principle, in any linear system that has one or multiple inputs and one or multiple outputs, the described multi-coherence method, e.g., cross power spectral density followed by matrix diagonalization (Gaussian elimination), can be applied to estimate the power spectral density of each component's (e.g., input signal's) contribution composing the output signals. In various examples, such may be applied whether the input signals are correlated or uncorrelated.

For example, the input signals may be deemed reference signals, and in various examples, the total power spectral density of an output signal is comprised of the sum of all the cross power spectral densities of the components contributed by the input signals plus the power spectral density of any components not contributed by any of the input signals. Components of an output signal that are not contributed by any of the input signals are, in various examples, "noise" signals.

For example, <FIG> can be considered to illustrate a system having a number of input signals, e.g., the source signals xi(n), and an output signal, e.g., the microphone signal y(n). The output signal includes components that represent contributions from each of the input signals (the source signals xi(n)) and additional component(s) that are not contributed from the input signals, e.g., the noise signal w(n). An estimate of the power spectral density of each of the contributed components and of the additional component may be determined by processing as described in various examples herein, such as processing illustrated and described with reference to <FIG>, sometimes referred to herein as a multi-coherence method, and throughout this disclosure.

In some examples, the output signal, e.g., y(n), may be a superposition of a desired signal and noise. For example, if a microphone is used to pick up audio content in a vehicle cabin or in a room, the desired signal may be the content that is played back by an audio system. The signals that are being played are input signals known to the system and will therefore serve as the reference signals. To reduce the noise level from the microphone signal, the multi-coherence method can be used to estimate the power spectral density of the noise. In some examples, the estimated noise spectrum is spectrally subtracted from the microphone signal spectrum, such that the modified microphone signal will have lower noise.

In some examples, the multi-coherence method may be used for residual echo reduction/suppression. For example, in an echo cancelling system, the multi-coherence method may be used to estimate the residual echo signal spectrum, and then subtracted from the echo canceller output to further reduce the level of residual echo. Such a subtraction may be a spectral subtraction. In such examples, an input (near-end) speech signal (e.g., from a microphone) may be a reference signal and the multi-coherence method may estimate power spectral density of a residual echo (e.g., from the far-end speech signal) through the Gaussian elimination operation process. The residual echo may be reduced in the output of the echo cancelling system by subtracting the echo spectrum from the signal to be transmitted. Various examples may use this method for reducing echo component(s) caused by any audio playback, e.g., far end speech signals and entertainment, navigation, etc., played by the audio system during, e.g., a phone conversation.

According to a further aspect, the above described multi-coherence method is used to estimate an appropriate comfort noise in, e.g., a telephony system. A comfort noise signal is sometimes added to the line to assure a user that the line is still connected even when the system has gone quiescent in the absence of a (desired) signal transmitted from the far end (e.g., the other conversation participant is not speaking). The multi-coherence method is used to estimate the power spectral density and the overall level of the original noise to create a corresponding comfort noise, thus allowing a seamless and transparent transition between the two. In some examples, a known test or training signal may be used as an input signal at the transmitter to provide a reference signal at the receiver.

The term "data processing apparatus" refers to data processing hardware and encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable digital processor, a digital computer, or multiple digital processors or computers. The apparatus can also be or further include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

A computer program, which may also be referred to or described as a program, software, a software application, a module, a software module, a script, or code, can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.

For a system of one or more computers to be "configured to" perform particular operations or actions means that the system has installed on it software, firmware, hardware, or a combination of them that in operation cause the system to perform the operations or actions.

Computer readable media suitable for storing computer program instructions and data include all forms of nonvolatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks.

Control of the various systems described in this specification, or portions of them, can be implemented in a computer program product that includes instructions that are stored on one or more non-transitory machine-readable storage media, and that are executable on one or more processing devices. The systems described in this specification, or portions of them, can be implemented as an apparatus, method, or electronic system that may include one or more processing devices and memory to store executable instructions to perform the operations described in this specification.

While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any claims or on the scope of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular inventions.

Claim 1:
A method for estimating a power spectral density of a signal component, the method comprising:
receiving (<NUM>), at one or more processing devices, an input signal representing audio captured using a microphone (<NUM>), the input signal comprising at least a first portion that represents acoustic outputs from two or more first audio sources (<NUM>) in an environment, and a second portion that represents a noise component; the method being characterised by further comprising:
iteratively modifying (<NUM>), by the one or more processing devices, a frequency domain representation of the input signal, such that the modified frequency domain representation represents a portion of the input signal in which effects due to the first portion are substantially reduced, wherein the frequency domain representation comprises a cross-spectral density matrix computed based on outputs of the first audio sources, and wherein iteratively modifying the frequency domain representation comprises executing a matrix diagonalization process on the cross-spectral density matrix;
determining (<NUM>), from the modified frequency domain representation, an estimate of a power spectral density of the noise; and
at least one of reducing noise or echo in the microphone signal by applying the estimated power spectral density to postfilter processing, or creating a comfort noise by using the estimated power spectral density of the noise and estimating the overall level of the original noise.