Patent Description:
Nowadays voice communication systems, such as mobile phones, cellular phones, smartphones, and personal digital assistants (PDAs), have become ubiquitous. The voice communication systems are used in almost every kind of environments and situations, for example, at workplaces, at markets, at homes, while driving a vehicle, while walking, and so on. Some of the environments may be noisy at times; in other words, may have a high level of ambient noise. Usually, to suppress the ambient noise in such noisy environments, different noise cancellation techniques are employed in the voice communication systems.

Examples of such known techniques are shown in "<NPL>, in <CIT>, in "Processor SDK RTOS Audio Pre-Processing - Texas Instruments wiki" or in "improvement of acoustic localization using a short time spectral attenuation with a novel suppression rule" by Daniele Salvati et al from the <NUM>th international conference on audio effects (DAFX-<NUM>), pages <NUM> to <NUM>.

The voice communication systems with a single microphone does not work effectively because the microphone captures various acoustic signals that may be originating from different sound sources. These acoustic signals include an acoustic signal of interest (hereinafter referred to as a primary acoustic signal) as well as ambient noise. For example, when distance between a speaker and the microphone is more, more ambient acoustic signals may be captured by the microphone. Therefore, existing voice communication systems, such as mobile systems, that employ single microphone, when used in environments having high levels of ambient noise, does not offer a pleasant communication experience.

As a result, to suppress the ambient acoustic signals from the primary acoustic signal, various noise cancellation techniques are implemented in the voice communication systems. Conventional techniques for noise cancellation typically involve subtracting the ambient noise from the acoustic signals captured by the microphone to suppress the noise. However, the conventional techniques are unable to determine which is the primary acoustic signal in the acoustic signals captured by the microphone. The lack such determination renders the conventional techniques ineffective in separating the acoustic signal of interest from the ambient noise.

In order to separately identify the primary acoustic signal from amongst the multiple acoustic signals, the conventional techniques necessitate that each sound source be associated with a different microphone. However, if the number of sound sources exceed the number of microphones, the conventional techniques do not provide a desired quality of the acoustic signal. Moreover, employing separate microphones to capture the acoustic signals coming from separate sound sources may not be feasible, especially when there are multiple sound sources. Besides, even with separate microphones, the conventional techniques are unable to process such an acoustic signal which is composed of multiple sounds.

Approaches for identifying a primary acoustic signal from a plurality of acoustic signals, are described herein.

The present subject matter describes a voice communication system and a method for identifying a primary signal from a plurality of acoustic signals As claimed in the appended set of claims.

Accordingly, the present invention identifies sound source for each of the plurality of acoustic signals even in absence of separate microphones for each acoustic signal. This provides an ease of implementation of the present subject matter in various voice communication systems. Further, the two-stage noise cancellation enhances the quality of the primary acoustic signal. In addition, the two-stage cross-correlation facilitates in accurately identifying a location of the sound source.

The present invention is further described with reference to the accompanying figures. Wherever possible, the same reference numerals are used in the figures and the following description to refer to the same or similar parts. It should be noted that the description and figures merely illustrate principles of the present subject matter. It is thus understood that various arrangements may be devised that, although not explicitly described or shown herein, encompass the principles of the present subject matter within the scope of the appended set of claims.

<FIG> illustrates a block diagram of a voice communication system <NUM> (hereinafter referred to as system <NUM>), according to an example implementation of the present subject matter. The system <NUM> may be implemented as a communication device, such as a mobile phone, a cellular phone, a tablet, a smartphone, a Personal Digital Assistant, and the like. In one implementation, the system <NUM> includes a processor(s) <NUM>, interface(s) <NUM>, and memory <NUM> coupled to the processor(s) <NUM>. The processor(s) <NUM> may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any systems that manipulate signals based on operational instructions. Among other capabilities, the processor(s) <NUM> may be configured to fetch and execute computer-readable instructions stored in the memory <NUM>.

The memory <NUM> may include any computer-readable medium known in the art including, for example, volatile memory, such as static random access memory (SRAM), and dynamic random access memory (DRAM), and/or non-volatile memory, such as read only memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes.

Further, the interface(s) <NUM> may include a variety of software and hardware interfaces, for example, interfaces for peripheral system(s), such as a product board, a mouse, an external memory, and a printer. Additionally, the interface(s) <NUM> may enable the system <NUM> to communicate with other systems, such as web servers and external repositories.

The system <NUM> also includes engine(s) <NUM> and data <NUM>. The engine(s) <NUM> include, for example, an audio engine <NUM>, a mapping engine <NUM>, a control engine <NUM>, and other engine(s) <NUM>. The other engine(s) <NUM> may include programs or coded instructions that supplement applications or functions performed by the system <NUM>. The data <NUM> may include acoustic data <NUM>, location data <NUM>, and other data <NUM>. Further, the other data <NUM>, amongst other things, may serve as a repository for storing data, which is processed, received, or generated as a result of the execution of one or more modules in the engine(s) <NUM>.

Although the data <NUM> is shown internal to the system <NUM>, the data <NUM> can also be implemented external to the system <NUM>, where the data <NUM> may be stored within a database communicatively coupled to the system <NUM>.

Further, the system <NUM> may include one or more location sensors, such as location sensors <NUM>. The location sensors <NUM> facilitate in identifying a position of a speaker. The location sensors <NUM> also facilitate in assessment of phase of the acoustic signals and a time of arrival of the acoustic signals. In an example, the location sensors <NUM> may be placed as widely in the system <NUM> as possible, for enabling accurate determination of the phase and time of arrival of the acoustic signals.

The system <NUM> may also include microphones <NUM> for capturing a plurality of acoustic signals. In an example, the microphones <NUM> may include a primary microphone <NUM>-<NUM> and a secondary microphone <NUM>-<NUM>. The primary microphone <NUM>-<NUM> is configured to mainly capture acoustic signals pertaining to a user of the system <NUM>, hereinafter referred to as a primary speaker. The acoustic signals captured by the secondary microphone <NUM>-<NUM> may be considered as the ambient noise.

The location sensors <NUM> may be placed at such a place in the system <NUM> so as to enable identifying a location of different sound sources in an accurate manner. For example, the location sensors <NUM> may be situated adjacent to the microphones <NUM>. In another example, the location sensors <NUM> may surround the microphones <NUM>.

In an example, the system <NUM> may be configured to identify the primary acoustic signal from a plurality of acoustic signals based on two-stage noise cancellation and two-stage cross-correlation. Based on the identification of the primary acoustic signal, the system <NUM> may provide automatic muting capability to the user. In an implementation, the audio engine <NUM> may receive the plurality of acoustic signals that may be captured by the microphones <NUM>. In an example, the plurality of acoustic signals may include a primary acoustic signal and ambient noise. The primary acoustic signal may be understood as the voice of a user of the system <NUM>. In an example, the primary microphone <NUM>-<NUM> may be configured to capture the primary acoustic signal along with other acoustic signals. In case, where the system <NUM> is used by one individual for making a call, that individual may be referred to as the primary speaker. The acoustic signals captured by the secondary microphone <NUM>-<NUM> may be considered to be the ambient noise.

In cases where more than one individuals are using the system <NUM> for making a call, such as a conference call, an individual speaking first may be considered as the primary speaker and the acoustic signals received from other individuals as well as from the surroundings may be considered as the ambient noise.

Once the plurality of acoustic signals is received by the audio engine <NUM>, the audio engine <NUM> may filter the plurality of acoustic signals based on an amplitude associated with the plurality of acoustic signals. In an example, during the filtering, the audio engine <NUM> may remove all acoustic signals that may have an amplitude below a pre-defined threshold value. For example, acoustic signals received from a distant sound source may have a low amplitude and may not be audible. The audio engine <NUM> may accordingly filter out such acoustic signals from the plurality of acoustic signals.

In an example, the audio engine <NUM> may employ a three-level amplitude filter which may be adaptive to the amplitude of the primary speaker's voice. In case of the three-level amplitude filtration, the audio engine <NUM> may define three thresholds, for example, a low threshold, a medium threshold, and a high threshold. Thereafter, the audio engine <NUM> may determine an amplitude of the acoustic signals. Based on the amplitude of the acoustic signals, the audio engine <NUM> may filter out certain acoustic signals from the plurality of acoustic signals. For example, if the amplitude of the acoustic signals coming from the primary microphone is about the high threshold, then the audio engine <NUM> may update a flag count quickly to allow the voice of a speaker. If the amplitude is in the mid threshold, the audio engine <NUM> may update the flag count at a bit faster speed and if the amplitude is in the low threshold, the audio engine <NUM> may update the flag count at a fastest speed. The flag is employed to keep a track of when to allow the acoustic signals coming from the primary speaker.

After filtering out some of the acoustic signals, the audio engine <NUM> may cancel the ambient noise from the plurality of acoustic signals. In an example, the audio engine <NUM> may subtract the ambient noise from the acoustic signals captured by the primary microphone <NUM>-<NUM> to obtain a first set of acoustic signals. In the present example, the audio engine <NUM> may employ an Algebraic Aggregator technique for cancelling the noise from the primary acoustic signal. In an example, the Algebraic Aggregator technique uses a signed sum of the audio signals where the ambient noise signal is given a negative sign and the primary acoustic signal is given a positive sign. In an example, the primary acoustic signal is considered to be the acoustic signal coming from the primary microphone <NUM>-<NUM> and is accordingly given a positive sign.

This signed sum of amplitude with a weight factor is used to generate a noise dampened acoustic signals. The first set of acoustic signals may then be processed by the audio engine <NUM> to determine a number of acoustic signals and a number of sound sources pertaining to the first set of acoustic signals. In an example, a sound source may be indicative of an originating point of an acoustic signal. For instance, the primary speaker may be considered as a sound source. Likewise, a media player, a loudspeaker, other individuals may also be considered as a sound source.

In order to determine the number of sound sources and the number of acoustic signals, the audio engine <NUM> may apply cross-correlation based localization on the first set of acoustic signals. In an example, the audio engine <NUM> employs temporal cross-correlation to identify the direction of the sound sources. As a result of the localization, the audio engine <NUM> may obtain a direction of various sound sources. In an example, the audio engine <NUM> may obtain X, Y, Z coordinates of each of the sound sources. The coordinates of the sound sources may facilitate in identifying the sound source of the primary acoustic signal. For instance, the sound source that may be nearest to the system <NUM> may be considered as relating to the primary acoustic signal. The audio engine <NUM> may store the data pertaining to the first set of acoustic signals, such as the number of acoustic signals and the number of sound sources as the acoustic data <NUM>.

When the number of sound sources and the number of acoustic signals is retrieved by the audio engine <NUM>, the system <NUM> determines which acoustic signal corresponds to which sound source. In order to relate the sound sources and the acoustic signals, the mapping engine <NUM> may separate each of the first set of acoustic signals. In an example, the mapping engine <NUM> may employ an Independent Component Analysis (ICA) technique for separating each acoustic signal from the first set of acoustic signals. The ICA technique facilitates in separation of independent acoustic signals that are linearly mixed.

After separation, the mapping engine <NUM> may suppress noise from each of the first set of acoustic signals to obtain a noise free set of acoustic signals. It may be noted that each acoustic signal from amongst the first set of acoustic signals undergoes noise cancellation for a second time. This facilitates in obtaining acoustic signals with enhanced quality. Further, when the quality of acoustic signals is enhanced, the sound source corresponding to each acoustic signal can be identified with accuracy. In an example, the mapping engine <NUM> may employ the algebraic aggregator technique for suppressing the noise from each separated acoustic signal. As mentioned above, the noise free set of acoustic signals may be understood as a set of acoustic signals with enhanced quality. The second stage of noise cancellation eliminates the remnant effects of different sound sources in each of the separated acoustic signal.

In an implementation, the mapping engine <NUM> may identify a primary acoustic signal from amongst the noise free set of acoustic signals by mapping each noise free acoustic signal to a corresponding sound source. To do so, the mapping engine <NUM> may geometrically separate the sound sources by performing a cross-correlation based localization. Based on the localization, the mapping engine <NUM> may identify and correspond which noise free acoustic signal belong to which sound source. In an example, the mapping engine <NUM> may correspond the primary acoustic signal to the primary speaker.

The voice communication system as described so far enables in identifying different sound sources even with two microphones. The voice communication system further separates those acoustic signals which are composed of multiple sounds. Further, the two-stage noise cancellation facilitates in eliminating remnant effects of other sources in each acoustic signal. In addition, geometrically separating the sound sources using two-stage cross correlation facilitates in accurately identifying the sound source associated with each acoustic signal.

In an example, the system <NUM> may be coupled to a database (not shown) through a network. The database may be directly connected to the system <NUM>. In an implementation, the database may store information, such as noise free set of acoustic signals, different sources pertaining to different acoustic signals, and the like. The information stored in the database may be employed for carrying out further analysis, such as identifying an identity of a speaker, time of use of the system <NUM>, frequency of use, location of use, and the like. In an example, the analysis of the information pertaining to the acoustic signals may be utilized for security authentication and communicating with banking systems, consumer electronic devices, connected and/or autonomous vehicle, personal/Artificial Intelligence assistants, and the like. In an example, in case of banking systems, the information may be used for logging into banking, making payments, adding or removing new payees using voice authentication.

In another embodiment, the system <NUM> facilitates in identifying the primary speaker based on a position and sound characteristics pertaining to each acoustic signal. In the present embodiment, the audio engine <NUM> may be configured to identify a position and direction of the sound sources. For example, in case of an audio call, the audio engine <NUM> may identify the position and direction of the sound sources participating in the call. Examples of the sound sources may include, but are not limited to, an individual, a vehicle, and other ambient sources.

As described earlier, the audio engine <NUM> may receive the plurality of acoustic signals from the microphones <NUM>. In an implementation, the audio engine <NUM> may analyze the acoustic signals to identify the primary speaker from other sound sources. For example, the audio engine <NUM> may identify the primary speaker based on a distance between a sound source and the system <NUM> and an amplitude of the acoustic signals received. Further, the audio engine <NUM> may store information pertaining to the location of the sound sources as the location data <NUM>. Details pertaining to determination of position and location of the sound sources by the audio engine <NUM> will be explained in conjunction with <FIG>.

In an implementation, the system <NUM> may be configured to perform a speech to text conversion of the primary acoustic signal as identified above. In an example, the system <NUM> may employ different conversion techniques for converting the speech into text. The text may then be stored in the system <NUM> in data <NUM>. In an example, the system <NUM> may identify voices of multiple primary speakers when the speakers are using <NUM> primary microphones. Further, the system <NUM> may parallelly convert speech or voice signals from multiple speakers into text.

In an implementation, the primary acoustic signal as identified by the system <NUM> may be utilized for providing an automatic muting functionality during an audio call. To do so, the control engine <NUM> receives the noise free acoustic signals as an input from the mapping engine <NUM> and processes the noise free acoustic signals to identify sound characteristics associated with each of the acoustic signals. In the present implementation, the control engine <NUM> may perform a spectral analysis on the noise free acoustic signals to distinguish voice signals from the ambient noise. In an example, the sound characteristics may include, but are not limited to, a pitch of the acoustic signals, a frequency of the acoustic signals, a time of arrival of the acoustic signals, a phase of the acoustic signals, and an amplitude of the acoustic signals.

Based on the sound characteristics and the position of the sound sources, the control engine <NUM> may determine when is the primary speaker speaking during a call. In an example, the acoustic signals captured by the primary microphone <NUM>-<NUM> may be considered to be coming from the primary speaker. As described above, a direction of the acoustic signals as well as an amplitude thereof may be used to determine when the primary speaker is speaking. For instance, when the acoustic signals have an amplitude of about <NUM>-<NUM> ADC values, it is considered that the primary speaker is speaking.

For example, the control engine <NUM> may activate or de-activate the automatic call muting functionality based on detection or non-detection of a voice signal from the system <NUM>. For example, the control engine <NUM> may automatically unmute the communication device to provide audio signals to the call when the primary speaker is speaking. Further, the control engine <NUM> may automatically mute the communication device of the primary speaker to block audio signals when the primary speaker is not speaking. Details pertaining to automatic muting by the control engine <NUM> will be explained in conjunction with <FIG>.

In an implementation, a user may select whether or not the automatic call muting functionality is to be activated in the system <NUM>. In an example, the user may activate or deactivate the call muting functionality by either pressing a key in the communication device or through an application or voice setting in the communication device. In addition, the system <NUM> facilitates the user to select when to activate the automatic call muting functionality. In the present implementation, the control engine <NUM> may enable the user to activate or deactivate the automatic call muting functionality. In one example, the user may choose to have the automatic call muting functionality activated by default for every communication. In another example, the user may choose to activate the automatic call muting functionality for selected communications, such as while answering a call or after answering the call.

Furthermore, the processor <NUM> of the system <NUM> may utilize a voice recognition engine (not shown) to manage calls by defining specific voice commands. For example, the user may define certain voice commands to handle the calls when the incoming calls are received from a particular name, a particular number, a particular time, and so on. The voice commands facilitate the user to accept, reject, ignore, or end a call. In an example, the voice commands may be sent to a communication device, via a Bluetooth® audio link of the communication device.

The automatic call muting functionality as provided by the present subject matter facilitates in removing any unwanted sound during an audio call, such as a conference call. The mapping of the acoustic signals with the sound sources facilitates in accurate identification of a particular speaker and thus muting remaining communication systems.

In an implementation, the automatic call muting functionality may be employed in vehicles, such as a car, a jeep, a bike, a motorcycle, and the like. For capturing clear voice signals and to provide ease in communication in cars, the microphones <NUM>, especially the primary microphone <NUM>-<NUM> may be mounted within a rearview mirror of a vehicle. In another example, the microphones <NUM> may be mounted near a driver's head to enable clearly capturing voice signals from the speakers. In case of two-wheelers, such as a motorcycle, the microphones <NUM> may be mounted within a helmet of a rider. In an example, the primary microphone <NUM>-<NUM> may be positioned near a rider's mouth and the secondary microphone <NUM>-<NUM> may be positioned in other parts of the helmet. In the present scenario, the driver or rider may be considered as the primary speaker.

Accordingly, the microphones <NUM> may be configured to capture the acoustic signals coming from the direction of the driver. The audio engine <NUM> may thereafter suppress ambient noise from the acoustic signals and filter the acoustic signals to reject the voice coming from other directions. In an example, the audio engine <NUM> may filter the plurality of acoustic signals based on an amplitude associated with the plurality of acoustic signals. As a result, the audio engine <NUM> rejects noises coming from other sources, such as a car horn or vehicular engine noise. Thereafter, the mapping engine <NUM> may further suppress noise from the filtered acoustic signals.

<FIG> illustrates a block diagram <NUM> of a voice communication system <NUM> (hereinafter referred to as system <NUM>) for identifying a position and sound characteristics of a speaker <NUM>, according to an example implementation of the present subject matter. The system <NUM> may be implemented as a communication device <NUM>, such as a mobile phone, a tablet, a smartphone, a Personal Digital Assistant (PDA), and the like.

In an implementation, the communication device <NUM> may include at least one audio sensor <NUM>. The audio sensor <NUM> may be configured to sense the sounds generated near the communication device <NUM>, during the audio call. The audio sensor <NUM> may input the acoustic signals to the audio engine <NUM>. In an example, the audio sensor <NUM> may not only capture sounds pertaining to individuals, but also other sounds that may help in identifying a direction, range, and nature of sounds in relation to the communication device <NUM>.

In an example, based on the input received, the audio engine <NUM> may determine whether or not the acoustic signals from the audio sensor <NUM> are to be provided as a contribution to an ongoing audio call. To do so, the audio engine <NUM> may first deduce a position of a plurality of speakers <NUM>-<NUM>, <NUM>-<NUM>,. <NUM>-N, collectively referred to as speakers <NUM> and individually referred to as a speaker <NUM>. In order to deduce the position of the speakers <NUM>, the audio engine <NUM> may use at least one of a time of arrival of sound from the speaker <NUM>, a phase of sound received from the speaker <NUM>, or a loudness of sound received from the speaker <NUM>.

Based on the above parameters, the audio engine <NUM> may measure a distance (D) and an angle (A) of each speaker <NUM> (or other sound source) from the audio sensor <NUM>. The audio engine <NUM> computes the distance along a longitudinal axis normal to a lateral axis of the audio sensor <NUM> of the communication device <NUM>. Further, the audio engine <NUM> determines the angle formed between the longitudinal axis passing through the respective individual speaker and a straight line joining the respective individual speaker with the audio sensor <NUM>.

In an example, the distance and angle is determined based on time delay of arrival of the acoustic signals. In an implementation, the time delay may be calculated by the audio engine <NUM>. In an example, the distance and angle may be used for automatic muting to distinguish ranges and direction of the speaker <NUM> from the communication device <NUM>.

In an implementation, the audio engine <NUM> further identifies various characteristics associated with acoustic signals being received from the speakers <NUM>. In an example, the audio engine <NUM> may perform analysis of the acoustic signals, such as a coder and decoder (CODEC) analysis. The CODEC analysis involves identifying features specific to a voice of the primary speaker. To do so, the audio engine <NUM> may localize the acoustic signals to perform voice recognition, pitch and frequency detector. For example, as the human voice falls into a frequency band of <NUM> to <NUM>. The audio engine <NUM> may involve such parameters during the CODEC analysis, to filter out unwanted noises based on frequency. In an example, the primary speaker may also be identified based on pitch, amplitude and frequency of a particular speaker's voice.

The CODEC analysis may be performed in a manner employed in most mobile telephones, for example, to transmit digital signals and receive audio signal, to determine voice click repetition rate and vocoder filter settings, and the like. In an example, the audio engine <NUM> may employ some or all of the above measures to determine position and sound characteristics of the speakers <NUM>.

In an example, based on the position and sound characteristics of the speakers <NUM> as identified by the audio engine <NUM>, the mapping engine <NUM> may identify the primary speaker. In the present example, the primary speaker may be understood as the speaker who is near to the system <NUM> and whose voice is captured by the primary microphone <NUM>-<NUM>.

Reference is now made to <FIG> that illustrates another block diagram <NUM> of a voice communication system <NUM>, according to an example implementation of the present subject matter. The block diagram <NUM> depicts those elements of the system <NUM> that facilitate in detection of different sound sources and automatic muting of a call. In an implementation, the audio engine <NUM> may include a time phase detector <NUM>, a position calculator <NUM>, and a sound analyzer <NUM>. Further, the control engine <NUM> may include a switching control logic <NUM> and an ON/OFF gate <NUM>. In operation, the time phase detector <NUM> may receive input from the location sensor(s) <NUM>. In an example, the time phase detector <NUM> may also receive input from the microphones <NUM>. Based on the input, the time phase detector <NUM> may compute a time of arrival of the acoustic signals to the system <NUM> and a phase of different acoustic signals. In an example, the time of arrival of the acoustic signals and the phase of the acoustic signals may be computed based on temporal cross-correlation.

An output of the time and phase detector <NUM> is provided as an input to the position calculator <NUM>. Based on the time and phase provided by the time and phase detector <NUM>, the position calculator <NUM> may identify locations of each sound source or speaker <NUM>. In an example, the position calculator <NUM> may perform cross-correlation based localization to identify the locations of each sound source or speaker <NUM>. In an example, a default position for a speaker <NUM> may be considered to be immediately front of the primary microphone <NUM>-<NUM>. Once the position of different sound sources is identified, the audio engine <NUM> may identify sound characteristics of different sound sources or speakers <NUM>.

In this respect, output from the microphones <NUM> is provided to the sound analyzer <NUM>. The sound analyzer <NUM> is configured to analyze the acoustic signals to identify the sound characteristics of the sound sources or the speakers <NUM>. In an example, the analysis performed by the sound analyzer <NUM> may include, but is not limited to, a spectral analysis and a sound CODEC (coder and decoder) analysis. In an example, the spectral analysis is performed using Fast Fourier Transform.

Thereafter, the output from the audio engine <NUM> is fed to the control engine <NUM>. In other words, the outputs of the position calculator <NUM> and of the sound analyzer <NUM> are provided as an input to the switching control logic <NUM>. The switching control logic <NUM>, in turn is configured to drive the ON/OFF gate <NUM>. For example, when the ON/OFF gate <NUM> is open, the input from the microphones <NUM> is provided to drive a communication device, such as the communication device <NUM> in a normal way. On the other hand, when the ON/OFF gate <NUM> is closed, input from the microphones <NUM> is blocked from delivery and the communication device <NUM> is muted.

In an implementation, the communication device <NUM> delivers a dynamic mute signal <NUM> to the switching control logic <NUM> to control whether or not dynamic muting is employed. In an example, dynamic muting indicates that the control engine <NUM> determines when the speaker is speaking or not. Based on the determining, the control engine <NUM> may provide the automatic call muting functionality. In case of dynamic muting, a selected speaker from amongst the speakers <NUM> is allowed to provide an un-muted input. If the dynamic mute signal <NUM> is not in an active state, the ON/OFF gate <NUM> is permanently open and all sounds from the speakers <NUM> may be found on the communication device <NUM>.

In an example, if the dynamic mute signal <NUM> is in an active state, the ON/OFF gate <NUM> is open or closed depending upon the location and sound characteristics of the speaker <NUM>. Further, sounds coming from selected speakers <NUM> is received as an input of the communication device <NUM>.

In an implementation, the control engine <NUM> facilitates in selecting a particular speaker <NUM> from amongst the plurality of speakers <NUM>. This may allow in selecting different speakers during an audio call. For example, a speaker selection signal <NUM> may be provided to the switching control logic <NUM> to select a particular speaker <NUM> when that speaker <NUM> is speaking. In an example, the control engine <NUM> may geometrically separate different sound sources by using temporal cross-correlation.

In an implementation, the control engine <NUM> may select the speaker <NUM> solely on the basis of the positions of the sound sources. In this case, output of the position calculator <NUM> may be taken into consideration and the output of the sound analyzer <NUM> may be ignored. In an alternative implementation, the control engine <NUM> may select the speaker <NUM> wholly based on the sound characteristics of the speaker <NUM> and the position of the speaker <NUM> may be ignored. Accordingly, a speaker <NUM> may speak on the communication device <NUM> irrespective of the location of the speaker <NUM>.

It is to be noted that the description of <FIG> has been provided as functions that may be performed by a programmable processor operable associated with the voice communication system <NUM>. However, it will be evident that to a person skilled in the art that the description of <FIG> may be implemented as a piece of hardware, without departing from the scope of the present subject matter.

<FIG> and <FIG> illustrate methods <NUM> and <NUM> for identifying a primary acoustic signal from amongst a plurality of acoustic signals and for implementing an automatic muting functionality in a voice communication system <NUM>, respectively, according to example implementations of the present subject matter. The order in which the methods <NUM> and <NUM> are described is not intended to be construed as a limitation, and some of the described method blocks can be combined in a different order to implement the methods <NUM> and <NUM>, or an alternative method. Additionally, individual blocks may be deleted from the methods <NUM> and <NUM> without departing from the subject matter described herein. Furthermore, the methods <NUM> and <NUM> may be implemented in any suitable hardware, firmware, computer-readable instructions, or combination thereof.

At block <NUM>, the method <NUM> may include receiving a plurality of acoustic signals associated with a plurality of sound sources. The plurality of acoustic signals may include a primary acoustic signal and ambient noise. In an implementation, the audio engine <NUM> may receive the plurality of acoustic signals. In an example, the plurality of acoustic signals is received from the microphones <NUM>, such as the primary microphone <NUM>-<NUM> and the secondary microphone <NUM>-<NUM>.

At block <NUM>, the method <NUM> may include suppressing the ambient noise from the plurality of acoustic signals to obtain a first set of acoustic signals. In an implementation, the audio engine <NUM> may suppress the ambient noise from the plurality of acoustic signals. In an example, the audio engine <NUM> may employ an algebric aggregator technique to suppress the noise from the plurality of acoustic signals.

At block <NUM>, the method <NUM> may include determining a number of acoustic signals and a number of sources pertaining to the first set of acoustic signals. A sound source may be understood as an origin of an acoustic signal. In an implementation, the audio engine <NUM> may determine the number of acoustic signals and the number of source by performing source localization.

At block <NUM>, the method <NUM> may include separating each of the acoustic signal from the first set of acoustic signals. In an implementation, the mapping engine <NUM> may separate each of the acoustic signal from the first set of acoustic signals. In an example, separating the acoustic signals may include identifying a number of sources of the acoustic signals and location coordinates of the sources of the acoustic signals. The mapping engine <NUM> may employ an Independent Component Analysis (ICA) technique to separate the acoustic signals.

At block <NUM>, the method <NUM> may include performing noise cancellation on each of the separated acoustic signal to obtain noise free acoustic signals. In an implementation, the mapping engine <NUM> may perform noise cancellation on each of the separated acoustic signal.

Further, at block <NUM>, the method <NUM> may include mapping each noise free acoustic signal to respective source of sound to identify the primary acoustic signal. In an implementation, the mapping engine <NUM> may map each of the noise free acoustic signal to respective source of sound. In an example, the mapping may include cross-correlating each of the separated acoustic signal with a corresponding source.

In an example, the separated acoustic signals may be stored in a database that may be located within the voice communication system <NUM> or may be on a Cloud server. The separated acoustic signals may be utilized later for performing analysis regarding identifying an identity of different speakers, time of use of the voice communication system <NUM>, and the like. The analysis of the acoustic signals may be employed in security authentication and communicating with banking systems, such as logging into banking, making payments, and adding or removing new payees using voice authentication.

Referring now to <FIG>, at block <NUM>, the method <NUM> may include receiving instructions to start a call. In an example, the instructions for starting a call may be understood as pressing of a telephone number by a user of the system <NUM>. In an implementation, the audio engine <NUM> may receive instructions to start the call, such as an audio call. It is to be understood, the audio call may be a conference call or a regular phone call.

At block <NUM>, the method <NUM> may include determining whether or not there are multiple speakers in the call. In an implementation, the audio engine <NUM> may determine the number of speakers in the call. If there are multiple speakers, the method <NUM> moves to block <NUM>. If there is a single speaker, the method <NUM> moves to block <NUM>.

At block <NUM>, the method <NUM> includes proceeding with the call with a single speaker. In an example, the single speaker may be considered as a primary speaker. In an implementation, the audio engine <NUM> may identify the single speaker as the primary speaker.

At block <NUM>, the method <NUM> includes determining whether the call is over or not. If the call is over, the method <NUM> goes to block <NUM> to receive instructions for another call. If the call is not yet over, the method <NUM> goes back to block <NUM>. In an implementation, the audio engine <NUM> may be configured to monitor whether or not the call is over.

Further, at block <NUM>, the method <NUM> may include obtaining a position and sound characteristics associated with the multiple speakers. In an implementation, the audio engine <NUM> may obtain the position and sound characteristics associated with the multiple speakers.

At block <NUM>, the method <NUM> may include selecting the primary speaker from the multiple speakers based on the position and sound characteristics. In an implementation, the mapping engine <NUM> may select the primary speaker based on the position and sound characteristics of the multiple speakers.

At block <NUM>, the method <NUM> may include determining whether the automatic call muting functionality is activated or not. In an implementation, the control engine <NUM> may determine whether a user of the system <NUM> has activated the automatic call muting functionality or not. In an example, if the user wishes to activate the automatic muting functionality, the user may press a specific key combination of the system <NUM>. In another example, the user may activate the automatic muting functionality by an application on the communication device. If the automatic muting functionality is activated, the method <NUM> may proceed to block <NUM>. On the other hand, if the automatic muting functionality is not activated, the method <NUM> may go to block <NUM>.

At block <NUM>, the method <NUM> may include automatically muting the system <NUM> to block audio signals to the call, such as a conference call, when the primary speaker is not speaking and un-muting the system <NUM>, to provide audio signals to the call when the primary speaker is speaking. In an implementation, the control engine <NUM> may automatically mute or un-mute the system <NUM>.

Claim 1:
A voice communication system (<NUM>) comprising:
an audio engine (<NUM>) configured to:
cancel ambient noise from a plurality of acoustic signals, to obtain a first set of acoustic signals, the plurality of acoustic signals comprising a primary acoustic signal and the ambient noise;
perform a cross-correlation based localization on the first set of acoustic signals to determine a number of acoustic signals in the first set of acoustic signals and a number of geometric locations of sound sources associated with the first set of acoustic signals, wherein performing the cross-correlation based localization comprises employing a temporal cross-correlation for identifying a direction of each sound source from an audio sensor (<NUM>) of the voice communication system (<NUM>); and
upon determination of the number of acoustic signals and the number of geometric locations, a mapping engine (<NUM>) configured to:
separate each acoustic signal from the first set of acoustic signals;
perform noise cancellation to suppress noise from each separated acoustic signals to obtain a noise free set of acoustic signals;
map each noise free acoustic signal of the noise free set of acoustic signals to a corresponding sound source using the cross-correlation based localization; and
based on the mapping, identify the primary acoustic signal from amongst the noise free set of acoustic signals.