Abstract:
A method, device and computer program product for processing audio signals, the method including determining beamformer filter coefficients to be applied to the audio signals; applying the beamformer filter coefficients to the audio signals; outputting the filtered audio signals from an audio output comprising a plurality of speakers coupled with the device; and receiving at a microphone coupled with the device, the filtered audio signals output from the audio output. The filter coefficients are determined such that the filtered audio signals are suppressed when received at the microphone.

Description:
RELATED APPLICATION 
     This application claims priority under 35 U.S.C. §119 or 365 to Great Britain Application No. GB 1121147.1, filed Dec. 8, 2011. The entire teachings of the above application are incorporated herein by reference. 
     TECHNICAL FIELD 
     This invention relates to processing audio signals, for example during a communication session. 
     BACKGROUND 
     Communication systems allow users to communicate with each other over a network. The network may be, for example, the internet or the Public Switched Telephone Network (PSTN). Audio signals can be transmitted between nodes of the network, to thereby allow users to transmit and receive audio data (such as speech data) to each other in a communication session over the communication system. 
     A device may have audio output means such as speakers for outputting audio signals to the user. The audio signals that are output from the speakers may be received over the network from the user(s) during the call. The speakers may also be used to output audio signals from other audio sources. For example, the device may be a TV in which case the speakers will also output TV audio signals. 
     The device may also have audio input means such as a microphone that can be used to receive audio signals, such as speech from a user. The user may enter into a communication session with another user, such as a private call (with just two users in the call) or a conference call (with more than two users in the call). The user&#39;s speech is received at the microphone, processed and is then transmitted over a network to the other user(s) in the call. 
     Acoustic echo occurs when the audio signals that are output from a speaker are picked up by a microphone. Techniques to solve this problem are known as acoustic echo cancellation (AEC) methods. Very high amplification in the echo path is a source of severe AEC problems on hands-free devices including TVs. The spectrum of audio signals received at the microphone may be dominated by certain narrow parts where the echo path has a high gain, also known as a resonating frequency. If the echo cancellers on both sides have leakage it gives rise to a phenomenon known as feedback, or howling. When calling a device with similar characteristics feedback can easily occur as both sides will amplify the most in the same part of the spectrum. This can be a severe problem and will interfere with the communication and in some cases render the call useless. 
     In order to reduce the problems of acoustic echo, microphones are often placed as far away as possible from the speakers. For example a microphone may be placed in the middle of the speakers, or in a corner of the device. This changes the echo path for the better but there will remain frequencies which have high echo path gain causing disturbance during a call. 
     The use of stereo microphones and microphone arrays in which a plurality of microphones operate as a single device are becoming more common. These enable the use of extracted spatial information in addition to what can be achieved in a single microphone. When using such devices one approach to suppress echo is to apply a beamformer at the microphone. Microphone beamforming is the process of trying to focus the signals received by the microphone array by applying signal processing to enhance sounds coming from one or more desired directions. This may be achieved by estimating the angle (and the distance) from which wanted signals are received at the microphone array. This so-called Direction of Arrival (“DOA”) information can be determined or set prior to the beamforming process. In alternative situations it can be advantageous to adapt the desired direction of arrival to changing conditions, and so it may be advantageous to perform the estimation of the desired direction of arrival in real-time as the beamformer is used. Adaptive beamformers apply a number of weights (or “beamformer coefficients”) to the received audio signals. These weights can be adapted to take into account the DOA information to process the audio signals received by the plurality of microphones to form a “beam” whereby a high gain is applied to desired audio signals received by the microphones from a desired location (i.e. a desired direction and distance) and a low gain is applied in the directions to any other (e.g. interfering) signal sources. 
     While the microphone beamformer will attempt to suppress the echo coming from unwanted directions, the number of microphones as well as the shape and the size of the microphone array will limit the effect of the beamformer, and as a result the unwanted echo audio signals are suppressed, but remain audible. 
     SUMMARY 
     Beamforming can also be applied for signals output from speakers—known as playout beamforming. Playout beamforming uses constructive interference to output or “playout” audio signals from a plurality of speakers such that the amplitude of the audio signals varies with position across a room. For some locations in the room the audio signals have a low amplitude due to the lack of constructive interference, or due to destructive interference. The inventor has realized that playout beamforming can also be used to improve echo cancellation. 
     In many user devices, for example TVs, a microphone is often placed in between a speaker arrangement. As a result the physical phenomenon of constructive interference will double the magnitude of the echo relative to the near-end speech, as the signal from each speaker will be in-phase for all frequencies when arriving at the microphone. 
     The inventor has realized that destructive interference can be exploited to significantly reduce the speaker echo that is received at a microphone. 
     According to a first aspect of the invention there is provided a method of processing audio signals at a device, the method comprising: determining beamformer filter coefficients to be applied to the audio signals; applying the beamformer filter coefficients to the audio signals; outputting the filtered audio signals from an audio output comprising a plurality of speakers coupled with the device; and receiving at a microphone coupled with the device, the filtered audio signals output from the audio output, wherein the filter coefficients are determined such that the filtered audio signals are suppressed when received at the microphone. 
     Preferably, the method further comprises determining location information which defines a location of the microphone relative to the speakers and using the location information to determine the beamformer filter coefficients. The location information may include an angle and a distance of the microphone relative to the speakers. 
     The step of determining location information may comprise determining the time delay for each of the filtered audio signals, output from respective speakers, to arrive at the microphone. 
     The location information may be determined in real time as the filtered audio signals are outputted from the audio output. Alternatively, the location information may be determined by retrieving known location information from storage at the device. 
     Preferably, the beamformer filter coefficients define respective filters for application to the audio signals. The respective filters may be determined such that the filtered audio signals are in opposite phase relative to each other at the microphone at a certain frequency. 
     Preferably, the beamformer filter coefficients define a frequency dependent phase shift that is to be applied to the audio signals. 
     In one embodiment, the audio signals which are to be filtered are received at the device on a single channel. In another embodiment, the audio signals which are to be filtered are received at the device on one or more independent channels. 
     According to a second aspect of the invention there is provided a device for processing audio signals, the device comprising: a beamformer for determining filter coefficients to be applied to the audio signals, and for applying the filter coefficients to the audio signals; and an audio output comprising a plurality of speakers for outputting the filtered audio signals, said filtered audio signals received at a microphone coupled with the device, wherein the filter coefficients are determined such that the filtered audio signals are suppressed when received at the microphone. 
     Preferably, the device comprises means for determining location information which defines a location of the microphone relative to the speakers. 
     In one embodiment, the beamformer is adaptive and configured to use location information that is determined in real time as the filtered audio signals are output from the audio output means. 
     Preferably, the microphone is integrated into the device or the microphone is coupled to the device via a wired or wireless connection. 
     The device may be one of: a television; a mobile phone; a personal digital assistant; a personal computer; or a tablet computer. 
     According to a third aspect of the invention there is provided a computer program product for processing audio signals, the computer program product being embodied on a non-transient computer-readable medium and configured so as when executed on a processor of a device to perform the method described above. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       For a better understanding of the present invention and to show how the same may be put into effect, reference will now be made, by way of example, to the following drawings in which: 
         FIG. 1  shows a communication system according to a preferred embodiment; 
         FIG. 2  shows a schematic view of a device according to a preferred embodiment; 
         FIG. 3   a  shows a schematic view of a speaker module according to a preferred embodiment; 
         FIG. 3   b  shows an example environment of the device. 
     
    
    
     DETAILED DESCRIPTION 
     In the following embodiments of the invention, a technique is described in which audio signals output from a speaker arrangement are attenuated in the direction of a microphone by exploiting destructive interference to increase robustness to howling and high echo path gains. 
     Reference is first made to  FIG. 1 , which illustrates a communication system  100  of a preferred embodiment. A first user of the communication system (User A  102 ) operates a device  104 . The device  104  may be, for example a mobile phone, a television, a personal digital assistant (“PDA”), a personal computer (“PC”) (including, for example, Windows™, Mac OS™ and Linux™ PCs), a tablet computer, a gaming device or other embedded device able to communicate over the communication system  100 . 
     The device  104  comprises a central processing unit (CPU)  108  which may be configured to execute an application such as a communication client application for communicating over the communication system  100 . The communication client application allows the user device  104  to engage in calls and other communication sessions (e.g. instant messaging communication sessions) over the communication system  100 . The user device  104  can communicate over the communication system  100  via a network  106 , which may be, for example, the Internet or the Public Switched Telephone Network (PSTN). The user device  104  can transmit data to, and receive data from, the network  106  over the link  110 . 
       FIG. 1  also shows a remote node with which the user device  104  can communicate with over the communication system  100 . In the example shown in  FIG. 1 , the remote node is a second user device  114  which is usable by a second user  112  and which comprises a CPU  116  which can execute an application (e.g. a communication client) in order to communicate over the communication network  106  in the same way that the user device  104  communicates over the communications network  106  in the communication system  100 . The device  114  may be, for example a mobile phone, a television, a personal digital assistant (“PDA”), a personal computer (“PC”) (including, for example, Windows™, Mac OS™ and Linux™ PCs), a tablet computer, a gaming device or other embedded device able to communicate over the communication system  100 . The device  114  can transmit data to, and receive data from, the network  106  over the link  118 . Therefore User A  102  and User B  112  can communicate with each other over the communications network  106 . 
       FIG. 2  illustrates a schematic view of the user terminal  104  on which the client is executed. The device  104  comprises a CPU  108 , to which is connected a display  204  such as a screen. The display  204  may comprise a touch screen for inputting data to the CPU  108 . An output audio device  206  (e.g. a speaker module) is connected to the CPU  108 . An input audio device such as microphone  208  is connected to the CPU  108 . The microphone  208  may be integrated into the user terminal  104 , or the microphone  208  may be connected to the user terminal  104  via a wired connection, or the microphone  208  may communicate with the user terminal  104  via a wireless connection (not shown in  FIG. 2 ). In one example, the user terminal  104  is a television and the microphone  208  is integrated into a remote control which communicates wirelessly with the television. The CPU  108  is connected to a network interface  226  for communication with the network  106 . The CPU  108  may also be connected to other input devices such as keyboard  214  and a pointing device such as a mouse  212 . 
     The speaker module  206  will now be described in more detail below with reference to  FIG. 3   a.    
     The speaker module  206  receives audio signals  302  from CPU  108 . The audio signals  302  may be received at the device  104  in a number of different ways. For example, the audio signals  302  may be received at device  104  over the network  106  via the network interface  226 . Alternatively, the audio signals  302  may originate from television signals broadcast via any suitable means such as a satellite repeater stations, wireless terrestrial repeater stations or cable; and received by a television receiver unit (not shown in  FIG. 2 ) of the device  104 . Alternatively, the audio signals  302  may originate from a peripheral device connected to the device  104  using an interface (not shown in  FIG. 2 ). For example the user device may be connected to and configured to receive audio signals from a media appliance such as a games console or video playback device (e.g. a video disc player or a personal video recorder). 
     The audio signals  302  are supplied to a beamformer  304  for processing. The beamformer  304  processes the audio signals  302  before outputting an audio signal on respective speakers  310 , 312 . Whilst two speakers have been shown in  FIG. 3  for simplicity it will be appreciated that more than two speakers may be used to output the audio signals. 
     The audio signals  302  may be monophonic (often referred to as “mono”) such that they are mixed together and routed on a single channel. In this scenario each of the speakers  310 , 312  would each output a version of the same mono audio signal. 
     Alternatively, the audio signals  302  may be stereophonic (often referred to as “stereo”) such that they are routed on two or more independent channels. In this scenario, the audio on each channel is output using respective speakers  310 , 312 . Thus different audio signals are output from speakers  310 , 312  which may vary in amplitude and may have a varying phase relationship with each other. 
     The beamformer  304  is configured to receive location information (φ) which defines the location of microphone  208  relative to the speakers  310 , 312 . The location information φ defines the angle (and the distance) of the microphone  208  relative to the speakers  310 , 312 . It will be appreciated that if the microphone  208  and speakers  310 , 312  are integrated into the device  104  this information will be known and can be stored in memory  210  for retrieval by the beamformer  304 . 
     It will be appreciated by persons skilled in the art that when the microphone  208  and/or speakers  310 , 312  are not integrated into the device i.e. they are positioned by a user, the location information φ can be determined in a number of ways. 
     In order to determine the location information, the time taken (i.e. the time delay) for an audio signal output from each speaker  310 , 312  to arrive at the microphone  208  needs to be known. To determine this time delay, it is possible to play out an audible sound from each speaker in turn and measure the time delay. This can be quite intrusive for the user of the user terminal, and instead small changes could be made to the audio signal output from the speakers during a call, that would not be highly audible, but would provide valuable information for determining the delay from each speaker to the microphone  208 . Band-stop filters can be configured to selectively filter the audio signals prior to being output from respective speakers. Thus, the band-stop filters can be applied during a call, from all but one loudspeaker, and the time it takes for the audio signal output from the loudspeaker without the band stop filter applied, in the particular frequency region where audio signals are attenuated by the speakers that have a band stop filter applied, to arrive at the microphone  208 , is an estimate of the time delay for the loudspeaker without the band stop filter applied. 
     Another approach would be to use a slowly adapting algorithm that controls the signals that are output from the respective loudspeakers such the variance (or “power”) of the echo is minimized at the microphone under certain constraints of not distorting too much the signal that is played out. 
     During processing the beamformer  304  determines filter coefficients that will suppress the audio signals output from speakers  310 , 312  in the direction of the microphone  208  using the location information φ. That is, the beamformer  304  determines filter coefficients that should be applied to one, or both, of the audio signals before being output via the respective speakers  310 , 312 . 
     The beamformer  304  then filters the audio signals  302  in accordance with the determined filter coefficients. The beamformer  304  filters one or more of the audio signals  302  by using a filter block. Each speaker has an associated filter block; this is shown in  FIG. 3   a  where filter blocks  306 , 308  are associated with respective speakers  310 , 312 . Whilst the beamformer  304  and filterblocks  306 , 308  are represented in  FIG. 3   a  as hardware devices, the beamformer  304  and filter blocks  306 , 308  could be implemented in software that is stored in memory  210  and executed on CPU  108 . 
     By applying filters to one or more of the audio signals  302 , the phase relationship between the filtered output audio signals can be modified to create a pattern of constructive and destructive interference. That is, the determined beamformer filter coefficients are used such that speakers  310 , 312  output filtered audio signals that will constructively interfere in certain directions and destructively interfere in other directions. In particular the beamformer  304  applies filter coefficients that result in the filtered audio signals destructively interfering with each other at the microphone  208 . In this way the filtered audio signals are suppressed when they are received by the microphone  208 . For example, the beamformer  304  may apply filter coefficients that results in the filtered audio signals output from speakers  310 , 312  being in opposite phase to each other (i.e. 180 degrees out of phase) such that the audio signals destructively interfere with each other in the direction of microphone  208 . 
     Taking the arrangement in  FIG. 3   b  as an example, the environment  300  comprises device  104  and user  102 . In  FIG. 3   b  whilst microphone  208  and speakers  310 , 312  have been shown as external devices connected to the user terminal  104  it will be appreciated that microphone  208  and speaker  206  may be integrated into the device  104 . 
     As shown in  FIG. 3   b , user  102  is shown as a source of near-end speech that arrives at the microphone  208  from a principal direction d 1 . Whilst a single user is shown in  FIG. 3   b  for simplicity, it will be appreciated that any number of sources of near-end speech may be present in the environment  300 . 
     Whilst the near-end speech is received at the microphone  208  from a principal direction d 1 , echo signals e 1  and e 2  may also be received at the microphone  208  from the speakers  310 , 312 . 
     To ensure destructive interference of the echo signals e 1  and e 2  at the microphone  208  a frequency dependent phase shift is required to be applied by the filter blocks  306 , 308 . That is, a low frequency component of the audio signal  302  will be delayed by a greater amount of time than a high frequency component of the audio signal  302  in order to achieve destructive interference of the frequency components of the audio signal at the microphone  208 . In practice full destructive interference may not be fully achievable due to asymmetrical reflections, for example, from the walls in a room. 
     As described above, the beamformer  304  in speaker module  206  determines filter coefficients that will suppress the audio signals output from speakers  310 , 312  in the direction of the microphone  208  using the location information φ. That is, the beamformer  304  applies maximum attenuation in the direction of the microphone  208  by using filter coefficients that causes the audio signals to destructively interfere in the direction of the microphone  208 . 
     The destructive interference will theoretically completely cancel audio signals output from speakers  310 , 312  with frequency content that arrives in opposite phase at the microphone  208  for all paths of the echo if the device  104  is setup in a perfectly symmetrical environment  300  and the speakers  310 , 312  are arranged perfectly symmetrical with respect to the microphone  208 . 
     It will be appreciated that under normal environmental conditions this criteria may not be satisfied due to the size of the room and location of speakers  310 , 312  relative to the microphone  208 . However under normal conditions the destructive interference will substantially cancel audio signals output from speakers  310 , 312  with frequency content that arrives in opposite phase at the microphone  208  for the direct path of the echo. 
     The filter blocks  306 , 308  may, in certain special cases, simply apply a time delay, when for example the only requirement is to achieve maximum suppression at a resonating frequency, and preserve the waveform from each speaker, except from the introduction of the time delay. This is computationally inexpensive and reduces the highest echo path gain. 
     This can be achieved for a certain dominating frequency of a mono signal, when the microphone is located equidistant between a pair of speakers, by delaying the output from one speaker by exactly half the time period at that dominating frequency. This can be achieved by using filter block  306  to apply a time delay to the signal e 1  output from speaker  310  such that it is in opposite phase with signal e 2  output from speaker  312  at the dominating frequency. Alternatively, it will be appreciated that the same effect can be achieved by using filter block  308  to apply a time delay to the signal e 2  output from speaker  312  such that it is out of phase with signal e 1  at the dominating frequency. 
     It will be appreciated that when only two speakers are used a delay can be applied to only one of the audio signals that are output such that one output audio signal is delayed relative to the other. That is, N−1 delay blocks would be needed if we have N speakers. When more than two speakers are used, having a delay block associated with each speaker enables an appropriate delay to be applied to more than one output audio signal. 
     When the audio signals  302  comprise two or more independent channels of a stereo signal, the filter blocks associated with each speaker apply an appropriate time delay such that the audio signals output from each of the speakers destructively interfere at the microphone  208 . 
     When more than two speakers are used, the delay applied by the filter coefficients in the beamformer filter blocks is adjusted accordingly such that the audio signals output from each of the speakers destructively interfere at the microphone  208 . 
     In one embodiment of the invention, the beamformer  304  may be an adaptive beamformer such that estimation of the location of microphone  208  is performed in real-time as the beamformer  304  is used. This is particularly advantageous when the microphone  208  is not in a fixed location relative to the speakers  310 , 312 . For example, when multiple participants are involved in a call and a microphone placed upon a desk is moved around on the desk when each of the participants wishes to speak. In these situations, the location information (Φ) is determined in real time and thus, the beamformer is able to maintain suppression of the filtered audio signals at the microphone  208 . 
     It should be understood that the block and flow diagrams may include more or fewer elements, be arranged differently, or be represented differently. It should be understood that implementation may dictate the block and flow diagrams and the number of block and flow diagrams illustrating the execution of embodiments of the invention. It should be understood that elements of the block and flow diagrams described above may be implemented in software, hardware, or firmware. In addition, the elements of the block and flow diagrams described above may be combined or divided in any manner in software, hardware, or firmware. If implemented in software, the software may be written in any language that can support the embodiments disclosed herein. The software may be stored on any form of non-transitory computer readable medium, such as random access memory (RAM), read only memory (ROM), compact disk read only memory (CD-ROM), flash memory, hard drive, and so forth. In operation, a general purpose or application specific processor loads and executes the software in a manner well understood in the art. 
     While this invention has been particularly shown and described with reference to preferred embodiments, it will be understood to those skilled in the art that various changes in form and detail may be made without departing from the scope of the invention as defined by the appendant claims.