Patent Description:
Within the sound recording and broadcast industries the audible phenomenon of 'sibilance' is well known and generally considered to be undesirable. Consequently, measures are routinely taken in the recording and broadcast studio to reduce the degree of sibilance as a proportion of the overall voice level.

Sibilance is the unpleasant tonal harshness that accompanies certain 'fricative' consonants (eg s, t or z) produced by the human voice. The term 'fricative' describes those sounds which are created by forcing air through a narrow channel, such as those created by the gap between lip, tongue or teeth or between adjacent teeth. The resultant turbulent airflow is called frication. Whilst sibilance is a common feature of speech or singing it can often be significantly exaggerated by the close proximity of a microphone to the vocal source, which is typically the case in a recording or broadcast environment.

It is known to employ physical techniques to remove sibilance. Typically this is through the use of a microphone 'windshield' or 'pop guard'. Such measures are not always adequate and they may lead to adversely affecting the captured sound, such as increasing the relative level of background noise, or attenuating certain frequency ranges.

It is also known to employ electronic measures to remove sibilance. Such sibilance removal devices (de-essers) share a common approach and rely on the relatively high frequency energy content of sibilant voice as the distinguishing characteristic. However, if the voice happens to be particularly rich in high frequency harmonics then it is possible that non-sibilant sound will be erroneously removed.

<CIT>) discloses a method of sibilance detection and mitigation. In the method, a predetermined spectrum feature is extracted from a voice signal, the predetermined spectrum feature representing a distribution of signal energy over a voice frequency band. Sibilance is then identified based on the predetermined spectrum feature. Excessive sibilance is further identified from the identified sibilance based on a level of the identified sibilance. Then the voice signal is processed by decreasing a level of the excessive sibilance so as to suppress the excessive sibilance. Corresponding system and computer program products are described as well.

<CIT>) discloses a method and apparatus for masking wind noise. Wind and other noise is suppressed in a signal by adaptively changing characteristics of a filter. The filter characteristics are changed in response to the noise content of the signal over time using a history of noise content. Filter characteristics are changed according to a plurality of reference filters, the characteristics of which are chosen to optimally attenuate or amplify signals in a range of frequencies.

The present invention seeks to overcome the problems of the prior art.

Accordingly, in a first aspect, the present invention provides a method according to claim <NUM>.

The method according to the invention enables the accurate identification and attenuation of sibilance from an audio signal stream, even when the content of the audio signal stream is rich in high frequency harmonics.

Preferably steps (c)(i) to (c)(iii) are repeatedly performed whilst the input stream is provided to the input port of the filter block.

Preferably the step of calculating the entropy of at least a portion of the audio signal stream comprises the steps of.

Preferably the at least a portion of the audio signal stream comprises the portion of the audio signal stream within a time window, extending backwards in time from the most recent element of the audio signal stream.

Preferably M = <NUM>N, where N is an integer greater than <NUM>.

Alternatively the step of calculating the entropy of at least a portion of the audio signal stream comprises the steps of.

where M is equal to the number of bands,.

Preferably the Fourier transform is a discrete Fourier transform.

The unwanted signal portion comprises sibilance.

The unwanted signal portion may comprise breathing noise or wind noise.

In a further aspect of the invention there is provided an apparatus according to claim <NUM>.

Preferably the entropy calculator comprises a Discrete Wavelet Transform block adapted to perform a discrete wavelet transform of the at least a portion of the audio signal stream; and,.

Alternatively the entropy calculator comprises a filter bank adapted to divide the at least a portion of the audio signal stream into a plurality of filtered audio streams, each in a different band a; and, a summation block adapted to receive the output of the filter bank and calculate the entropy of the at least a portion of the audio signal stream from the formula <MAT>.

Alternatively the entropy calculator comprises a Fourier transform block adapted to perform a Fourier transform of the at least a portion of the audio signal stream; and.

Preferably at least a portion of the entropy calculator is implemented as microprocessor.

Preferably at least a portion of the entropy calculator is implemented as FPGA.

The present invention will now be described by way of example only and not in any limitative sense with reference to the accompanying drawings in which.

Shown in <FIG>, in schematic form, is an apparatus <NUM> for processing an audio signal stream to attenuate an unwanted signal portion. The apparatus <NUM> comprises an audio signal stream source <NUM>, in this case a microphone <NUM>. The microphone <NUM> provides the audio signal stream to the input port <NUM> of a filter block <NUM>. The audio signal stream passes through the filter block <NUM> to an output port <NUM>. The filter block <NUM> has an inactive state. In the inactive state the audio signal stream passes through the filter block <NUM> from the input port <NUM> to the output port <NUM> unaltered. The filter block <NUM> also has an active state. In the active state the audio signal stream is filtered to attenuate the unwanted signal portion as it passes from the input port <NUM> to the output port <NUM>. The filter block <NUM> is described in more detail with reference to <FIG>.

The apparatus <NUM> further comprises an entropy calculator <NUM>. The microphone <NUM> further provides the audio signal stream to the entropy calculator <NUM>. The entropy calculator <NUM> calculates the entropy of a portion of the audio signal stream. Typically this portion is the portion of the audio signal stream in a time window from the most recent element of the stream provided to the entropy calculator <NUM> backwards in time by the width T of the time window.

The apparatus <NUM> further comprises a comparator <NUM>. The comparator <NUM> receives the calculated entropy from the entropy calculator <NUM> and compares it to a stored threshold value <NUM>. If the calculated entropy is less than the threshold value <NUM> then it is assumed that the portion of the audio signal stream does not contain an unwanted signal portion. Accordingly, the comparator <NUM> provides an inactivation signal to the filter block <NUM> which sets the filter block <NUM> in the inactive state, If the calculated entropy is larger than the threshold value <NUM> then it is assumed that the portion of the audio signal stream contains an unwanted signal portion to be removed. The comparator <NUM> sends an activation signal to the filter block <NUM> so setting the filter block <NUM> in the active state. In this state the filter block <NUM> filters the audio signal stream passing through it, attenuating the unwanted signal portion.

An example of a typical audio signal stream is an audio signal stream comprising speech or singing. The unwanted signal portion is sibilance. The invention is not so limited however. The unwanted signal portion could for example be the sound of breathing, wind noise or any other noise having a high degree of entropy.

Shown in <FIG> is an embodiment of a filter block <NUM> of an apparatus <NUM> according to the invention. The filter block <NUM> comprises an input port <NUM> and an output port <NUM>. Connected to the output port <NUM> is the output <NUM> of a cross fader <NUM>. A first input <NUM> of the cross fader <NUM> is connected to a first signal path <NUM> which is connected to the input port <NUM> of the filter block <NUM>. A second input <NUM> of the cross fader <NUM> is connected to a second signal path <NUM> which is also connected to the input port <NUM> of the filter block <NUM>. A filter <NUM> is arranged in the second signal path <NUM>, The output of the comparator <NUM> is connected to the cross fader <NUM> to control the cross fader <NUM>.

If the comparator <NUM> sends an inactive signal to the cross fader <NUM> than the cross fader <NUM> switches to a first position in which the first input <NUM> of the cross fader <NUM> is connected to the output <NUM> of the cross fader <NUM>. The audio signal stream therefore passes from the filter block input port <NUM>, along the first signal path <NUM>, through the cross fader <NUM> to the output port <NUM> of the filter block <NUM>. The audio signal stream is unamended as it passes through the filter block <NUM>.

If the comparator <NUM> sends an active signal to the cross fader <NUM> then the cross fader <NUM> switches to a second position in which the second input <NUM> of the cross fader <NUM> is connected to the output <NUM> of the cross fader <NUM>. This is the position shown in <FIG>. The audio signal stream passes from the filter block input <NUM>, along the second filter path <NUM> through the filter <NUM> and then the cross fader <NUM> to the output <NUM> of the filter block <NUM>, The audio signal stream is filtered as it passes through the filter <NUM>, attenuating the unwanted signal portion.

A wide variety of filters <NUM> are known in the art which have a frequency dependent response suitable for attenuating an unwanted signal portion in an audio signal stream. The filter <NUM> can bean analogue filter or more typically is a digital filter.

Shown in <FIG> is the embodiment of the apparatus <NUM> according to the invention of <FIG> shown in more detail, The audio signal stream from the microphone <NUM> passes through an analogue to digital converter <NUM> which converts the audio signal stream into a series of elements <NUM>. The elements <NUM> are passed into a rolling buffer <NUM> which stores the elements <NUM> from the most recent back in time by a time T. As a new element <NUM> is added to the buffer <NUM> the oldest element <NUM> is removed. Such buffers <NUM> are well known. The buffer <NUM> therefore holds the most recent portion of the audio signal stream of width T in time.

The entropy calculator <NUM> comprises a Discrete Wavelet Transform (DWT) block <NUM>. The DWT block <NUM> receives all of the elements <NUM> in the buffer <NUM> and performs a discrete wavelet transform on them. The theory of the discrete wavelet transform is known and so will not be explained in detail.

Briefly, the portion of the audio signal stream contained within the buffer is x[t). The DWT block produces a series of arrays of wavelet coefficients xs[k] where s is the scale and k is the wavelet translation factor. In this embodiment there are M scales where M = <NUM>N where N is an integer greater than <NUM>.

For a fixed scale s the wavelet coefficient power for that scale is the sum of the square of the wavelet coefficients for that scale.

The series of arrays of wavelet coefficients xs[k] is passed from the DWT block <NUM> to a summation block <NUM>. The summation block calculates the entropy of the portion of the audio signal stream held in the buffer <NUM> according to the formula <MAT>.

WS(s) is wavelet coefficient power for a particular scale as a proportion of all scales.

The entropy calculated by the summation block <NUM> is passed to the comparator <NUM> as previously described.

Each time a new element <NUM> is added to the buffer <NUM> (and the oldest element <NUM> removed) the process is repeated with the entropy being recalculated and passed to the comparator <NUM> which sets the state of the filter block <NUM>.

<FIG> shows a 'logical' representation of the entropy calculator <NUM>. In practice the entropy calculator <NUM> is implemented as a microprocessor <NUM> which is programmed to perform the necessary steps to calculate the entropy.

In an alternative embodiment of the invention the entropy calculator <NUM> is implemented as dedicated hardware such as an FPGA. <FIG> shows a dedicated implementation of the entropy calculator <NUM> as a FPGA.

As is known in the field of the discrete wavelet transform, a discrete wavelet transform can be performed by passing x[t] through a filter bank. The filter bank comprises a plurality of DWT stages. Each DWT stage comprises a high pass filter and low pass filter. By appropriate choice of high and low pass filters and frequency bands the detail coefficients obtained from a high pass filter in a particular band correspond to the wavelet coefficients at a particular scale s.

Turning now to <FIG>, the DWT block <NUM> comprises a plurality of DWT stages <NUM>. The applied signal x[t] is decomposed by the multiple DINT stages <NUM> with each successive stage <NUM> sub dividing the spectrum of the applied signal by a factor of two, thus doubling the number of frequency bands. Each DWT stage <NUM> also reduces the sample rate of the applied signal by a factor of two,.

The outputs of the DWT stages <NUM> are then passed to the summation block <NUM>. In the summation block <NUM> the power in each sub band is averaged following a log<NUM>() operation over a specified analysis period in the 'Mean Log Squared' blocks <NUM>. The log<NUM>() operation is performed primarily to economise on memory requirements for the necessary moving average filter. It acts to compress <NUM> bit data to <NUM> bits, thus consuming a quarter of the memory to represent the same dynamic range,.

The same 'Mean Log Squared'' operation is applied also to the input signal prior to the DWT stages <NUM>. In this case however the sample length of the moving average filter is increased proportionately such that the analysis period its output represents is equal to those of the processed sub bands (which have been downsampled by the successive DWT stages).

Following the 'MeanLog Squared' operations, the resultant averaged log power signals are processed by the 'Log Prod' blocks <NUM>. Which perform the following operation - <MAT> where A and B are log power averaged DWT decomposed sub bands and Z is the log power averaged input.

Since all of these are log power quantities and Z is the log of the total power, then (A-Z) and (B-Z) represent the log power of the A and B sub band inputs as a proportion of the total power. By raising <NUM> to the power of (A-Z) and (B-Z) produces the base <NUM> antilogarithm of these values. Multiplying them by their resultant antilogarithm produces one term of the summation equation for entropy as set out above. The summation of these two terms and further summation with the outputs of all other Log Prod blocks by the adder chain <NUM> which follows produces, with appropriate scaling, the eentropy calculated by the equation above.

Approaches to entropy calculation other than the discrete wavelet transform are possible. Shown in <FIG> is a further embodiment of the apparatus <NUM> according to the invention, This is similar to that of <FIG> except the DWT block is replaced by a Fourier transform block <NUM>, in this case a discrete Fourier transform block <NUM>. The Fourier transform block <NUM> performs a discrete Fourier transform on the portion of the audio signal stream in the buffer <NUM> decomposing it into a plurality of frequency domain components each centred around a different frequency. Each component has an amplitude ar: The output from the discrete Fourier transform block <NUM> is an array x[af]. The square of the amplitude is a measure of the power at frequency domain component f. C(f) is the component power for a particular frequency domain Fourier component as a proportion of the component power of all frequency domain Fourier components. In this embodiment there are M resolved frequency domain components.

The output from the Fourier transform block <NUM> is passed to the summation block <NUM> which calculates the entropy of the portion of the audio signal stream in the buffer from the formula - <MAT>.

In this embodiment the discrete Fourier transform block <NUM> and summation block <NUM> are implemented as a microprocessor <NUM> programmed to take the necessary steps to calculate the entropy. In an alternative embodiment one or both of these blocks <NUM>,<NUM> are implemented are dedicated components such as FPGAs.

Shown in <FIG> is a further embodiment of an apparatus <NUM> according to the invention. In this embodiment the entropy calculator <NUM> comprises a filter bank connected to a summation block <NUM>. The filter bank comprises M filters <NUM> which divide the portion of the audio input stream in the buffer <NUM> into M filtered audio streams, each in a different frequency band B, In this embodiment the bands <NUM> do not overlap. The outputs from the filters <NUM> are passed to the summation block <NUM> which calculates the entropy in the portion of the audio signal stream accord i ng to the formula - <MAT> where W<NUM> is the power in each frequency band as a proportion of the total for all bands.

Claim 1:
A method of processing an audio signal stream comprising voice to attenuate an unwanted signal portion, the unwanted signal portion comprising sibilance, the method comprising the steps of
(a) providing a filter block (<NUM>) having an input port (<NUM>) and an output port (<NUM>) the filter block (<NUM>) having an inactive state in which audio signals of the audio signal stream pass from the input port (<NUM>) to the output port (<NUM>) without being filtered and an active state in which signals are filtered to attenuate the unwanted signal portion as the audio signals pass from the input port (<NUM>) to the output port (<NUM>);
(b) providing the audio signal stream to the input port (<NUM>) of the filter (<NUM>); and,
(c) whilst the audio signal stream is being provided to the input port (<NUM>) of the filter (<NUM>) -
(i) calculating the entropy of at least a portion of the audio signal stream;
(ii) comparing the calculated entropy to a threshold value (<NUM>); and,
(iii) setting the state of the filter block (<NUM>) to be either active or inactive depending on the comparison between the calculated entropy and the threshold value (<NUM>);
wherein the filter block (<NUM>) is set to be active when the calculated entropy exceeds the threshold value (<NUM>) and set to be inactive when the calculated entropy is less than the threshold value.