Patent Description:
Whether embodied as a stand-alone device or embedded into another device, a far field voice detection device generally listens for a wake-word to be spoken, such as "Alexa" for "Amazon's Echo" and "OK Google" for "Google's Home. " The wake-word is typically followed by a question or a command. The question or command that follows the wake-word is captured by the device and is usually sent over the Internet to a voice recognition service that interprets the question or command and provides a response that is sent back over the Internet to the assistant (and/or to another designated device) for verbal playback (via a speaker that is typically integrated into each device) and/or for causing some commandable action to occur ( such as lighting lights, playing music, etc.).

While such devices generally work for their intended purpose, it is desired to, among other things, provide far field voice detection devices with a noise suppression capability. Exemplary approaches for noise suppression where microphone arrays are used are disclosed in <CIT>, <CIT> and <CIT>.

According to the invention, a method for providing noise suppression capability to a system having a far field voice detection device is disclosed according to claim <NUM>.

A better understanding of the objects, advantages, features, properties and relationships of the hereinafter disclosed system and method for providing a noise suppression capability to far field detections devices will be obtained from the following detailed description and accompanying drawings which set forth illustrative embodiments and which are indicative of the various ways in which the principles of the described systems and methods may be employed.

The features, advantages, and objects of the subject disclosure will become more apparent from the detailed description as set forth below, when taken in conjunction with the drawings in which like referenced characters identify correspondingly throughout, and wherein:.

By way of example only, <FIG> shows a far field voice detection system <NUM> including a far field voice detection device <NUM>. The far field voice detection device <NUM> is set in an exemplary home environment in which the far field voice detection device <NUM> is physically situated in a room of the home <NUM>. The far field voice detection device <NUM> is communicatively coupled to one or more cloud-based services <NUM> over a network <NUM>. The network <NUM> may include a local area network as well as a wide area network.

In the illustrated example, the far field voice detection device <NUM> is depicted as a stand-alone device that is positioned on a table <NUM> within the home <NUM>. In other examples, the far field voice detection device <NUM> may be placed in any number of locations and/or the far field voice detection device <NUM> may be integrated into other devices within the home, such as a television, media streaming device, or the like. Further, more than one far field detection device <NUM> may be positioned in a single room or environment, or one far field detection device <NUM> may be used to accommodate user interactions from more than one room.

Generally, the far field voice detection device <NUM> has at least a plurality of microphones and a speaker to facilitate audio interactions with a user <NUM>. The far field voice detection device <NUM> may additionally include, as needed for any purpose, a keyboard, a keypad, a touch screen, a joystick, control buttons, a display, and/or the like. In certain implementations, a limited set of one or more input elements may be provided. For example, the far field voice detection device <NUM> may include a dedicated button to initiate a configuration process, to power on/off the device, to control output volume levels, etc. Nonetheless, the primary (and potentially only) mode of user interaction with the far field voice detection device <NUM> is through voice input and audible and/or command transmission output.

As noted, the plurality of microphones <NUM> of the far field detection device <NUM> are provided to detect words and sounds uttered from the user <NUM>. Typically, the far field voice detection device <NUM> uses the microphones <NUM> to listen for a predefined wake-word and, after the predefined wake-work is detected, the far field voice detection device <NUM> uses the microphones <NUM> to listen for (and capture) questions and/or commands that are subsequently uttered from the user <NUM>. Generally, the questions and/or commands that are received by the far field voice detection device <NUM> are transmitted over the network <NUM> to the cloud services <NUM> for interpretation and subsequent action.

In <FIG>, the user <NUM> is shown in a room of the home <NUM>. As will be appreciated, the ambient conditions of the room <NUM> (or any other location in which the far field voice detection device <NUM> is located) may introduce other audio signals that form background noise for the far field voice detection device <NUM>. For example, a television <NUM> may emit background audio that includes voices, music, special effects soundtracks, and the like that may obscure the voice utterances being spoken by the user <NUM>. As will be described in greater detail hereinafter, the far field voice detection device <NUM> is provided with a noise suppression capability to address the problems associated with such background noise.

The far field voice detection device <NUM> may be communicatively coupled to the network <NUM> via use of wired technologies (e.g., wires, USB, fiber optic cable, etc.), via use of wireless technologies (e.g., RF, cellular, satellite, Bluetooth, etc.), and/or via use of other connection technologies. The network <NUM> is representative of any type of communication network, including a data and/or voice network, and may be implemented using a wired infrastructure (e.g., cable, CATS, fiber optic cable, etc.), a wireless infrastructure (e.g., RF, cellular, microwave, satellite, Bluetooth, etc.), and/or other connection technologies. The network <NUM> carries data, such as audio data, between the cloud services <NUM> and the far field voice detection device <NUM>.

As known in the art, the cloud services <NUM> generally refer to a network accessible platform implemented as a computing infrastructure of processors, storage, software, data access, and so forth that is maintained and accessible via a network such as the Internet. In the illustrated, example system <NUM>, the cloud services <NUM> include a command response system <NUM> that is implemented by one or more servers, such as servers <NUM>(<NUM>), <NUM>(<NUM>),. The servers <NUM>(<NUM>)-(S) may host any number of applications that can process the user input received from the far field voice detection device <NUM>, and produce a suitable response. These servers <NUM>(<NUM>)-(S) may be arranged in any number of ways, such as server farms, stacks, and the like that are commonly used in data centers. One example implementation of the command response system <NUM> is described below in more detail with reference to <FIG>.

As shown in <FIG>, selected functional components of an example far field voice detection device <NUM> are illustrated. In the illustrated example, the far field voice detection device <NUM> includes a processor <NUM> and memory <NUM>. The memory <NUM> may include computer-readable storage media ("CRSM"), which may be any available physical media accessible by the processor <NUM> to execute instructions stored on the memory. In one basic implementation, CRSM may include random access memory ("RAM") and Flash memory. In other implementations, CRSM may include, but is not limited to, read-only memory ("ROM"), electrically erasable programmable read-only memory ("EEPROM"), or any other medium which can be used to store the desired information and which can be accessed by the processor <NUM>.

Several modules such as instruction, datastores, and so forth may be stored within the memory <NUM> and configured to execute on the processor <NUM>. An operating system module <NUM> is configured to manage hardware and services (e.g., a wireless unit, a USB unit, a Codec unit) within and coupled to the far field voice detection device <NUM>. The far field voice detection device <NUM> may also include a speech recognition module <NUM> to provide some basic speech recognition functionality. In some implementations, this functionality may be limited to specific commands that perform fundamental tasks like waking up the device, configuring the device, cancelling an input, and the like. The amount of speech recognition capabilities implemented on the far field voice detection device <NUM> is an implementation detail, but the architecture described herein supports having some speech recognition at the local far field voice detection device <NUM> together with more expansive speech recognition at the cloud services <NUM>. A configuration module <NUM> may also be provided to assist in an automated initial configuration of the far field voice detection device <NUM> (e.g., to find a wifi connection, to enter login information, to link the far field voice detection device <NUM> to other devices, etc.) to enhance the user's out-of-box experience, as well as reconfigure the device at any time in the future. The far field voice detection device <NUM> will additionally include a noise suppression module <NUM> as noted previously.

In addition to the plurality of microphones <NUM> to receive audio input, such as user voice input, the far field voice detection device <NUM> may have one or more speakers <NUM> to output audio sounds. A codec <NUM> may be coupled to the microphones <NUM> and the speaker <NUM> to encode and/or decode the audio signals as needed. The codec may convert audio data between analog and digital formats. A user may interact with the assistant <NUM> by speaking to it, and the microphones <NUM> capture the user speech. The codec <NUM> encodes the user speech and transfers that audio data to other components. The assistant <NUM> can communicate back to the user by emitting audible statements through the speaker <NUM>. In this manner, the user may interact with the voice controlled assistant simply through speech.

In the illustrated example, the far field voice detection device <NUM> includes a wireless unit <NUM> coupled to an antenna <NUM> to facilitate a wireless connection to a network, e.g., a home router, and an antenna <NUM> to facilitate a wireless connection to one or more other devices in the environment. The wireless unit <NUM> may implement one or more of various wireless technologies, such as wifi, Bluetooth (BLE), RF, and so on. For purposes that will be explained in greater detail hereinafter, the far field voice detection device <NUM> is specifically designed to support RF direction finding functionality via use of the wireless unit <NUM> and antenna <NUM>. To this end, the far field voice detection device <NUM> and/or other devices in communication with the device <NUM> may support Bluetooth (e.g., Bluetooth v <NUM>) and may use an antenna <NUM> that will allow the far field voice detection device <NUM> and/or the other devices to support direction finding functionality such as angle of arrival ("AoA") direction finding functionality and/or angle of departure ("AoD") direction finding functionality. It will be appreciated that devices that are intended to communicate with the far field voice detection device <NUM> may equally be provisioned with any hardware and software needed to support such direction finding functionality.

More particularly, the AoA method is used to determine a position of a RF transmitting device, e.g., a device having a transmitting BLE transceiver. The transmitting device sends packets that are received by the antenna <NUM> which, for use in this instance, would be in the form of a multi-antenna array. The receiving device samples data from the signal packets while switching between each active antenna in the array. By doing so the receiving device detects the phase difference of the signal due to the difference in distance from each antenna in the array to the signal transmitting antenna. The positioning engine then uses the phase difference information to determine the angle from which the signals were received and hence the direction of the transmitting device relative to the receiving device.

In the AoD method, the device with the antenna array sends a signal via each of its antennas. As each signal from the antennas in the array arrives at the receiver's single antenna, it is phase shifted from the previous signal due to the different distance the signal has travelled from the transmitter. The receiving device can then use the data to determine the angle from which the signals were received and thereby the direction of the transmitting device relative to the receiving device.

As additionally illustrated in <FIG>, a USB port <NUM> may further be provided as part of the far field voice detection device <NUM> to facilitate a wired connection to a network or a plug-in network device that communicates with other wireless networks. In addition to the USB port <NUM>, or as an alternative thereto, other forms of wired connections may be employed, such as a broadband connection, an HDMI connection, etc. A power unit <NUM> is further provided to distribute power to the various components on the far field voice detection device <NUM>.

The far field voice detection device <NUM> may also include a command transmission unit <NUM> which command transmission unit <NUM> will operate, in connection with antennas <NUM>, <NUM>, USB port <NUM>, and/or other transmissions devices (such as an IR transmitter, a power line transmitter, etc.), to cause appropriate commands to be issued to one or more target appliances to thereby control functional operations of such target appliances, e.g., to turn on a television, to turn off a light, etc. A far field voice detection device having such control capabilities is described in <CIT>.

<FIG> shows selected functional components of a server architecture implemented by the command response system <NUM> as part of the cloud services <NUM> of <FIG>. The command response system <NUM> includes one or more servers, as represented by servers <NUM>(<NUM>) - (S). The servers collectively comprise processing resources, as represented by processors <NUM>, and memory <NUM>. The memory <NUM> may include volatile and nonvolatile memory, removable and non-removable media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data. Such memory includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, RAID storage systems, or any other medium which can be used to store the desired information and which can be accessed by a computing device.

In the illustrated implementation, a command processing module <NUM> is shown as software components or computer-executable instructions stored in the memory <NUM> and executed by one or more processors <NUM>. The command processing module <NUM> generally includes an optional speech recognition engine <NUM>, a command handler <NUM>, and a response encoder <NUM>. The speech recognition engine <NUM> converts the user command to a text string. In this text form, the user command can be used in search queries, or to reference associated responses, or to direct an operation, or to be processed further using natural language processing techniques, or so forth. In other implementations, the user command may be maintained in audio form, or be interpreted into other data forms.

The user command is passed to a command handler <NUM> in its raw or a converted form, and the handler <NUM> performs essentially any operation that might use the user command as an input. As one example, a text form of the user command may be used as a search query to search one or more databases, such as internal information databases <NUM>(<NUM>)-<NUM>(D) or external third part data providers <NUM>(<NUM>)-<NUM>(E). Alternatively, an audio command may be compared to a command database (e.g., one or more information databases <NUM>(<NUM>)-(D)) to determine whether it matches a pre-defined command. If so, the associated action or response may be retrieved. In yet another example, the handler <NUM> may use a converted text version of the user command as an input to a third party provider (e.g., providers <NUM>(<NUM>)-(E)) for conducting an operation, such as a financial transaction, an online commerce transaction, and the like.

Any one of these many varied operations may produce a response. When a response is produced, the response encoder <NUM> encodes the response for transmission back over the network <NUM> to the far field voice detection device <NUM>. In some implementations, this may involve converting the response to audio data that can be played at the assistant <NUM> for audible output through the speaker to the user or to command data that can be transmitted to a target appliance via use of a transmission protocol recognizable by the target appliance.

As noted above, because the far field voice detection device <NUM> is located in a room, other ambient noise may be introduced into the environment that is unintended for detection by the far field voice detection device <NUM>. The background noise may be human voices, singing, music, movie sound tracks, gaming sound effects, and the like. In the <FIG> illustration, one common source of background noise is the TV <NUM>. Background noise introduced by the TV <NUM> is particularly problematic because the noise includes spoken words from characters that may be picked up by the far field voice detection device <NUM>. In addition to the TV, other devices (e.g., radio, DVC player, computer, etc.) may emit voice or other human sounds, music, sound tracks, game sound effects, and other sounds that might potentially interfere with the user's interaction with the far field voice detection device <NUM>.

To address this interference problem, the far field voice detection device system will execute a process, generally illustrated in <FIG>, which process will provide the far filed voice detection device <NUM> with a noise suppression capability. In this regard, the processes that is illustrated in <FIG>, may be implemented by the architectures described herein, or by other architectures. These processes are illustrated as a collection of blocks in a logical flow graph. Some of the blocks represent operations that can be implemented in hardware, software, or a combination thereof. In the context of software, the blocks represent computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described blocks can be combined in any order or in parallel to implement the processes. It is understood that the following processes may be implemented with other architectures as well.

More particularly, to provide noise suppression, the system may utilize a BLE connection between the far field voice detection device <NUM> and another device, such as a remote control device <NUM>, to determine or at least estimate where a user is relative to the far field voice detection device <NUM>. In this example, it is assumed that the user that is talking to the far field voice detection device <NUM> is holding or otherwise proximate to the remote control. Thus, by having the far field voice detection device <NUM> and/or the remote control device <NUM> use AoA and/or AoD to determine a location of the far filed voice detection device <NUM> relative to remote control device <NUM>, the far field voice detection device <NUM> can determine an incoming angle of any input received by the microphones <NUM> and the system can give priority for voice processing to that input that has a determined incoming angle that most closely matches the angle of the far field voice detection device <NUM> relative to the remote control <NUM> as determined via use of AoA and/or AoD.

In another example, the system may utilize a BLE connection between the far field voice detection device <NUM> and a TV <NUM> (or other known sound generating device) to determine or at least estimate where noise is most likely being generated. Thus, by having the far field voice detection device <NUM> and/or the TV <NUM> use AoA and/or AoD to determine a location of the far field voice detection device <NUM> relative to TV <NUM>, the far field voice detection device <NUM> can determine an incoming angle of any input received by the microphones <NUM> and the system can give less priority to (or ignore) for voice processing that input that has a determined incoming angle that most closely matches the angle of the far field voice detection device <NUM> relative to the TV <NUM> as determined via use of AoA and/or AoD.

It will be appreciated that the determination of the position of the far field voice detection device <NUM> relative to another device for use as described above by the system can be performed in response to the system detecting a wake-word, periodically while the system is awake, in response to far field voice detection device <NUM> being turned on, during the configuration process of the far field voice detection device <NUM>, etc..

In a still further example, in a system having multiple far field voice detection devices <NUM>, the system can select one of the far field voice detection device <NUM> to use when capturing voice input for processing. In this example, the remote control <NUM> is again used as a reference for determining which one of the far field voice detection devices <NUM> to select. To this end, the remote control <NUM> can use AoA processing to identify the one of the far filed voice detections devices <NUM> the remote control <NUM> is pointing towards and the selected device <NUM> can be instructed to be the device that is to capture input for processing by the system.

It will be appreciated that the one of the plurality of far field voice detection devices the remote control device is being pointed at can be determined in response to a detected utterance of a wake-word, in response to a detected interaction with the remote control device (e.g., activation of an input element of the remote control device, etc.), periodically, and the like without limitation.

Claim 1:
A method for providing noise suppression capability to a system having a far field voice detection device, comprising:
using a radio frequency connection between the far field voice detection device and a television to determine a first angular direction from the far field voice detection device to the television; and
using the determined first angular direction to emphasize, during a noise processing of a plurality of sounds received via use of a plurality of microphones of the far field voice detection device, a first one of the plurality of sounds relative to a remainder of the plurality of sounds;
wherein each of the plurality of sounds arrives at the far field voice detection device from a corresponding one of a plurality of angular directions and the first one of the plurality of sounds arrives at the far field voice detection device from a first one of a plurality of angular directions that least closely corresponds to the first angular direction.