Patent Publication Number: US-11049496-B2

Title: Audio pipeline for simultaneous keyword spotting, transcription, and real time communications

Description:
BACKGROUND 
     The popularity of computing devices with user interfaces using voice recognition has exploded in recent years as the technology to recognize a human user&#39;s voice and understand commands has become more sophisticated. Computing devices with voice recognition systems use audio capture devices (such as a microphone) to capture speech of a user. The captured speech is then processed by the computing device to recognize one or more commands in the speech. These commands are then translated into computerized tasks. Example tasks may include ordering products from an online store, scheduling appointments in a computerized calendar application, searching the Internet, and the like. Some example user interfaces employing voice recognition include software-based personal assistants such as CORTANA® from MICROSOFT®, SIRI® from APPLE®, ALEXA® from AMAZON®, or the GOOGLE ASSISTANT® from GOOGLE®. Another example voice recognition technology is voice dictation where a user talks into a microphone and the computing device translates the captured audio into editable text in a word processing program. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       In the drawings, which are not necessarily drawn to scale, like numerals may describe similar components in different views. Like numerals having different letter suffixes may represent different instances of similar components. The drawings illustrate generally, by way of example, but not by way of limitation, various embodiments discussed in the present document. 
         FIG. 1  illustrates a schematic of an example system including components to prevent unintended activation of a voice activated device according to some examples of the present disclosure. 
         FIG. 2  illustrates a block diagram of a keyword detector according to some examples of the present disclosure. 
         FIG. 3  illustrates a flowchart of a method of preventing unintended voice activation according to some examples of the present disclosure. 
         FIG. 4  illustrates a flowchart of a method of determining whether to activate voice command processing is shown according to some examples of the present disclosure. 
         FIG. 5  is a block diagram illustrating an example of a machine upon which one or more embodiments may be implemented. 
     
    
    
     DETAILED DESCRIPTION 
     When utilizing voice recognition applications, a user speaks into a microphone or other sound capture device that is communicatively coupled to the computing device. Other sounds in the room, including sounds being played by the computing device itself, such as music, video, or audio from a communication event may be picked up by the microphone. To prevent these noises from unintentionally activating the voice control features of the computing device, the voice command functions are typically only activated upon detection of one or more activation keywords. For example, the CORTANA® computerized personal assistant is activated by the keywords “Hey Cortana,” being detected in the input audio. The audio following the keywords is then interpreted by CORTANA® as a command. 
     Despite the use of activation keywords to guard against unintended activations, this is not always enough to prevent unintended activations. For example, if a first user is conducting an online meeting and a second user that is a remote participant wishes to activate their own computerized personal assistant, the second user may speak the activation keywords intending to activate only their personal computer assistant. If the second user does not mute themselves in the online meeting before speaking the activation keywords, the activation keywords may be played through the first user&#39;s speakers and may be picked up by the first user&#39;s microphone. This may unintentionally activate the first user&#39;s computerized personal assistant. This may lead to unintended actions being taken that are not in accordance with the wishes of the first user. In some cases, this may be prevented using echo cancellers. Echo cancellers may not be practical in all situations as they reduce sound quality and tend to make detection of the activation keywords and the following commands more difficult. 
     Aside from inadvertent activations, researchers have found innovative ways to hide activation commands in music that cause computerized personal assistants to execute unintended commands. In some cases, these commands are inaudible to the human ear. Researchers have surreptitiously made these computerized personal assistants dial phone numbers, open websites, order products, and execute other commands. This presents a serious security risk as well as an inconvenience to the user to cancel unintended commands. 
     Disclosed in some examples, are methods, systems, and machine-readable mediums for preventing unintended activation of voice command processing of a voice activated device. In some examples, a first audio signal generated or received by the computing device and a second audio signal from an audio input device (e.g., a microphone) coupled to the computing device are both submitted to a keyword detector. The first audio signal may be a signal from a media player such as a music player, video player, and the like; a communications application such as an online meeting application or a Voice over Internet Protocol (VoIP) application; a video game; or other applications that generate audio. The first audio signal may be an audio signal that is to be output by an output device such as a speaker communicatively coupled to the computing device). The second audio signal may be input from a microphone or other audio capture device. Both audio signals are input to a keyword detector to check for the presence of activation keywords. 
     If the activation keyword(s) are detected in the second audio signal but not the first audio signal the voice command processing of the device is activated as this is likely a command from the user and not feedback from the loudspeaker. If the activation keyword(s) are detected in the first audio signal but not the second audio signal, the voice command processing functions are not activated (e.g., voice activation may be inhibited). Where the activation keyword(s) are detected in the first signal but not the second signal, the computing device may determine that echo cancellation is on and has suppressed the feedback. The computing device may utilize the determination that echo cancellation is active to adjust one or more digital signal processing (DSP) settings of one or more applications to enhance sound quality to compensate for the echo cancellation. If the activation keyword(s) are not detected in either signals, then the voice command processing may not be activated. 
     If the activation keyword(s) are detected in both audio signals, in some examples, the voice command processing of the device may not be activated (e.g., voice activation is inhibited) as the keywords in the input may be caused by either feedback of the first audio signal into the microphone or by simultaneous speaking of the activation keywords by both the local user and the remote user. In some examples, the latter case may be considered rare and so may be ignored (e.g., the voice command processing may not be activated, and the user may have to speak the activation keywords again). In other examples, the system may handle simultaneous (or near simultaneous) activation keyword utterances by utilizing received metadata about the first audio signal. For example, if the first audio signal is received from a remote participant in an online communication session, the remote computing device may send the results of keyword detection performed locally on that device as metadata along with the audio signal. That is, the remote participant&#39;s computing device is also checking for the activation keywords in the audio signal input to the audio input device and includes those results in the audio sent to the remote participants. In this example, the metadata may include the keyword(s) detected and the timestamp at which the keyword was detected. This will allow the system to differentiate between activation keywords detected in a first audio signal and activation keywords detected in a second audio signal by comparing the timestamps at which the keywords were detected in the first signal and compare that to when the keywords were detected in the second signal. Typical feedback loops would have a characteristic delay window. If the keywords were detected in the first audio signal and the second audio signal at the same time, or outside the characteristic delay window, then the voice command processing may be activated, otherwise the voice command processing may not be activated. 
     In addition, the metadata may include the keywords that were detected. For example, if the activation keywords detected in the first audio signal and the second audio signal were different—for example, if the local user and remote user use different computerized assistants—then the voice command processing may be activated. In further examples, the metadata may also include voice characteristic information for the detected activation keywords. The voice characteristic information may be used by the local device to determine if the voice characteristics of the keywords detected in the second audio signal are the same or different than the audio characteristics detected in the keywords in the first audio signal. If the voice characteristics are the same, then it is more likely that the keywords detected in the second audio signal are feedback from the first and thus the voice command processing may not be activated. If the voice characteristics are different, then it is more likely that both the local user and remote user were attempting to activate the voice command processing on their respectively devices at the same time. 
     As noted previously, previous solutions to the problem of unintentional activation of a voice activated devices by output audio signals have utilized an echo canceller. In some instances, this echo cancellation is undesirable as it may lower sound quality and it may lower keyword detection accuracy. The present invention thus solves the problem of unintended activation of a voice activated computing device without affecting the accuracy of the keyword detection as well as command recognition (e.g., recognizing the command coming after the keyword detection). This problem is solved by intelligently activating the voice activation functions based upon which of the output and input signals contain the keywords. This solution does not rely upon modifications to the input audio signal and so there is no loss of fidelity and consequential drop in keyword detection accuracy as there are with echo cancellers. Furthermore, the present solution uses a dual pipeline for each audio signal that allows the keyword detection to prevent the addition of any latencies that may be introduced by the keyword detector and ultimately the voice command processing. 
       FIG. 1  shows a schematic of an example system  100  including components to prevent unintended activation of a voice activated device according to some examples of the present disclosure. A computing device may execute one or more components such as audio input/output applications  105 , a duplicator  119 , a duplicator  129 , a keyword detector  131 , an activation filter  143 , and a voice command processor  149 . In some examples, one or more of the keyword detector  131 , activation filter  143 , and/or the voice command processor  149  may be a network-based service that may be communicatively reachable by the computing device via a computer network. The voice command processor  149  may execute one or more voice activated functions, for example by transcribing the second audio signal  127  and then executing an appropriate command based upon the transcribed audio signal. Voice activated functions may be associated with one or more different applications, such as a computerized personal assistant. Example voice activated functions include searching the Internet, searching for files, requesting information, setting calendar dates and reminders, ordering products, translating speech into a word processing document, activating hardware of the device, activating programs on the device, and the like. 
     The computing device may include or be communicatively coupled to speaker  115  and microphone  125 . A first audio signal  117  may be generated and/or received from a variety of audio input/output applications  105  that may execute on the computing device. In one example audio input and output application may include a communication application  107 . Communication application  107  may provide for online meetings, voice communications (such as Voice over Internet Protocol (VOIP) communications) and the like. Example communications applications may include MICROSOFT TEAMS®, MICROSOFT SKYPE®, MICROSOFT SKYPE FOR BUSINESS®, AMAZON CHIME®, GOOGLE VOICE®, ZOOM®, BAIDU®, and the like. 
     Audio input/output applications  105  may also include media applications  109  which may play or edit audio, video, or the like. Example media applications may include WINDOWS MEDIA PLAYER®, VLC MEDIA PLAYER®, and the like. Media applications  109  may also include web browsers that may play media content, such as MICROSOFT EDGE®, GOOGLE CHROME®, APPLE SAFARI® and the like. Audio input/output applications  105  may also include other applications  111  that may include any other application that plays, records, or utilizes audio or video content. Examples may include video games, productivity applications, presentation applications, and the like. The first audio signal  117  may be audio output from the audio input/output applications  105 . For example, online meeting content, which may include voice content received from one or more remote participants. 
     First audio signal  117  may be duplicated by duplicator  119 . One copy of the audio signal may be sent to an output device audio pipeline that may be ultimately output to an output device such as a speaker  115 . Another copy may be sent to a voice command pipeline that may comprise a keyword detector  131 , activation filter  143  and voice command processor  149 . Similarly, a user  121  may speak into a microphone  125  (or other audio capture device) that captures the audio to produce a second audio signal  127 . Second audio signal  127  may also duplicated using a duplicator  129 . Duplicator  119  and  129  may be the same or a different duplicator. One copy of the duplicated second audio signal  127  may be sent as input to an application pipeline, such as a pipeline for one or more of the audio input/output applications. For example, as audio for an online meeting of a communication application  107 . The other copy of the duplicated second audio signal may be sent to the voice command processing pipeline starting with the keyword detector  131 . 
     Duplicators  119  and  129  may be used to avoid any latency that may be introduced by the keyword detector  131  in processing the audio signals and to provide for the ability to process the audio signals differently to optimize each copy for specific uses. For example, audio for real time communications may be processed in a manner that is more geared toward human intelligibility. However, the processing done to achieve this goal may compromise the detectability of the speech for the voice command processor  149 . By using two pipelines for the first audio signal, the system may process one copy of the audio signal for human intelligibility and one copy for speech recognition. 
     Keyword detector  131  may sample the first audio signal  117  and second audio signal  127  over a defined period of time (e.g., a number of seconds, milliseconds, microseconds, or the like) to parse the audio signals for recognized speech and determine whether any speech contains activation keywords. Keyword detector  131  may output an indication of whether the activation keywords were detected in the audio signals. In some examples, the keyword detector  131  may also output the indication whether the second audio signal  127  contained activation keywords as second audio signal metadata  160  to the audio input/output applications  105  which may send the indication as metadata to other computing devices (which may use this metadata as metadata  155  is used as described below). In some examples, the metadata may include the actual activation keywords detected, timestamps of when the keywords are detected, and/or voice characteristics. 
     Activation filter  143  may utilize the indications output by the keyword detector  131 , and in some examples, the first audio signal metadata  155  (provided by a remote computing device with the first audio signal  117 ), to determine whether the voice command processor  149  should be activated. For example, activation filter  143  may employ the method shown in  FIG. 4 . Activation filter  143  may send an activation signal and second audio signal  127  to the voice command processor  149  if the activation filter  143  determines that the voice command processor should be activated based upon the indications of whether the activation keyword(s) were present in both the first audio signal  117  and second audio signal  127 . 
     Once activated, the voice command processor  149  may transcribe the audio signal, and based upon the transcription, execute one or more voice commands on the computing device to perform various functions based upon the voice commands. In some examples, the voice command processor utilizes a same or similar functionality as the keyword detector in determining a content of speech of the second audio signal  127  (e.g., in determining the user&#39;s spoken command after the activation keywords in the second audio signal  127 ). For example, the audio coming after “Hey Cortana” represents the requested command. In other examples, the keyword detector  131  may be a specialized component for detecting keywords that may be less processor intensive and faster to prevent any performance degradation from running a full voice recognition module (such as may be implemented by the voice command processor). 
     The example of  FIG. 1  used duplicators  119  and  129  to both avoid any latency that may be introduced by the keyword detector  131  in processing the audio signals and also to provide for the ability to process the audio signals so as to optimize them for each specific use. In other examples, the duplicators may not be used, and the streams may be processed by the keyword detector  131  prior to being output to the speaker  115  (or other output device) and prior to submission to the audio input/output applications  105 . Additionally, the example of  FIG. 1  shows two audio signals—first audio signal  117  and second audio signal  127 —one audio signal that is to be output from an output device and one audio signal that is received from an audio capture device as input, respectively. It will be appreciated by one of ordinary skill in the art that multiple input and output audio signals may be processed using the disclosed techniques to prevent unintended voice activation. The components of  FIG. 1 , including the keyword detector  131 , activation filter  143 , voice command processor  149 , duplicator  129  and  119  may be implemented in software, hardware, or a combination of software and hardware. 
       FIG. 2  shows a block diagram of a keyword detector  231  according to some examples of the present disclosure. Keyword detector  231  may be implemented in hardware, software, or a combination of hardware and software. Keyword detector  231  may be an example of keyword detector  131 . Keyword detector  231  may include an acoustic processor  210  that may process an audio signal  205  (which may be first audio signal  117  and second audio signal  127  from  FIG. 1 ) to optimize the audio signal  205  for use in the keyword detection processor  215 . For example, the acoustic processor  210  may adjust one or more audio properties such as gain, balance, equalizer levels, and the like to optimize the audio signal. In some examples, the acoustic processor  210  may calculate one or more features of the audio signal  205 , such as a mel-frequency cepstrum coefficients (MFCC) which may be used by the keyword detection processor  215 . 
     Keyword detection processor  215  is configured to detect one or more activation keywords in the processed audio signal. In some examples, the keyword detection processor utilizes a machine-learned keyword model  235 . For example, the keyword detection processor  215  may be a convolutional neural network that utilizes mel-frequency cepstrum coefficients (calculated by the acoustic processor  210 ) to detect one or more activation keywords. The keyword model  235  may represent one or more weights and/or parameters of the model that is then used by the keyword detection processor  215  to implement the model. The keyword model  235  may be trained in an offline manner using supervised or unsupervised machine learning approaches using training data. For supervised approaches the training data may be labeled as including or not including activation keywords. The output of the keyword detection processor  215  may be a keyword indicator  225  of whether the activation keywords were detected in the audio signal  205 . In some examples, the keyword detector may also output metadata such as the timestamp of when the activation keywords were detected, voice characteristics of the speaker, and the like. 
       FIG. 3  illustrates a flowchart of a method  300  of preventing unintended voice activation according to some examples of the present disclosure. At operation  310  a first audio signal is identified. The first audio signal may be one or more audio signals received or produced by the computing device. The first audio signal may be audio received by a communications application, generated by a media player application, or the like. This audio signal is submitted to the keyword detector at operation  314 . The keyword detector (e.g., keyword detector  131  and  231 ) may output a first indication as to whether one or more activation keywords are present in the first audio signal. Simultaneously, or sequentially to the submission of the first audio signal to the keyword detector, a second audio signal is identified at operation  312  and submitted to the keyword detector at operation  316  to produce a second indication as to whether one or more activation keywords are present in the first audio signal. The second audio signal may be one or more input audio signals from one or more audio capture devices. In some examples, multiple instances of the keyword detector may be used in parallel, or the signals may be fed to a single instance of the keyword detector in serial. 
     At operation  318 , the system determines whether to activate the voice command processing via voice activation based upon the first and second indications. Voice command processing is the processing that takes place to recognize a command in audio and to execute the command. In some examples, if the second indication indicates that the keywords were present, and the first indication indicates that the keywords were not present, then the voice command processing is activated. For example, a computerized personal assistant is activated and will respond to commands uttered after the keywords. 
     If the second indication indicates that the keywords were present and the first indication indications that the keywords were present, then in some examples, the voice command processing is not activated as it signals that the output audio was captured through the sound capture device. In other examples, as noted above, metadata sent from a remote computing device may be utilized to determine whether to activate the voice command processing. For example, if the metadata indicates that no activation keywords were detected in the audio sent from the remote computing device, then the voice command processing may be activated. If the metadata indicates that activation keywords were detected in the audio sent from the remote computing device, then voice command processing may be activated if the timestamp indicates that the keywords occurred outside a characteristic feedback window. In some examples, rather than submit both audio signals (e.g., the first audio signal  117  and second audio signal  127  in  FIG. 1 ) locally, only the second audio signal  127  may be submitted locally and the results of the remote keyword detector (sent as meta data with the first audio signal  117 ) may be used in place of the keyword detector&#39;s  131  analysis of first audio signal  117 . 
     If the second indication indicates that the keywords were not present and the first indication indicates that the keywords were present, then the voice command processing is not activated. This scenario is also an indicator that the input device is employing echo cancellation. Knowing that the input device is employing echo cancellation allows the computing device to adjust digital signal processing (DSP) settings to improve keyword detection performance as well as overall sound quality as well as allow one or more of the applications to turn off its own echo canceller. For example, communication applications typically have their own echo cancellation algorithms (since they cannot rely on those algorithms being present in the system). Applying a second echo canceller in tandem (e.g., one on the system and the other in the application) degrades quality. By knowing if echo cancellation is already active, the application can turn off its own echo canceller—or prevent it from being activated. If the second indication indicates that the keywords were not present and the first indication indicates that the keywords were not present, then the voice command processing is not activated. 
     At operation  320 , the voice command processing may be selectively activated based upon the determination. If it is determined that the voice command processing is to be activated, then at operation  320  the voice command processing is activated. If the it is determined that the voice command processing is not to be activated, then at operation  320  the voice command processing is not activated. 
     Turning now to  FIG. 4 , a flowchart of a method of performing operation  318  is shown according to some examples of the present disclosure. At operation  410  if the second indication does not indicate the presence of the one or more activation keywords, then the determination is made at operation  450  not to activate the voice command processing. If the second indication indicates the presence of the activation keywords, then at operation  420  it is determined if the first indication indicates the presence of the activation keywords. If the first indication indicates the presence of the activation keywords, then at operation  450 , the voice command processing functions are not activated. If the first indication indicates that the activation keywords are not present, then the voice command processing functions are activated at operation  440 . As noted previously, in some examples if both the first and second indications indicates that keywords were detected, the metadata sent from the remote communication device may be utilized to make a determination of whether to activate the voice command processing. 
       FIG. 5  illustrates a block diagram of an example machine  500  upon which any one or more of the techniques (e.g., methodologies) discussed herein may perform. In alternative embodiments, the machine  500  may operate as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine  500  may operate in the capacity of a server machine, a client machine, or both in server-client network environments. In an example, the machine  500  may act as a peer machine in peer-to-peer (P2P) (or other distributed) network environment. The machine  500  may be a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a mobile telephone, a smart phone, a web appliance, a network router, switch or bridge, or any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine. Machine  500  may be a computing device that may implement the systems of  FIGS. 1 and 2  and perform the methods of  FIGS. 3 and 4 . Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein, such as cloud computing, software as a service (SaaS), other computer cluster configurations. 
     Examples, as described herein, may include, or may operate on, logic or a number of components, modules, or mechanisms. Modules are tangible entities (e.g., hardware) capable of performing specified operations and may be configured or arranged in a certain manner. In an example, circuits may be arranged (e.g., internally or with respect to external entities such as other circuits) in a specified manner as a module. In an example, the whole or part of one or more computer systems (e.g., a standalone, client or server computer system) or one or more hardware processors may be configured by firmware or software (e.g., instructions, an application portion, or an application) as a module that operates to perform specified operations. In an example, the software may reside on a machine readable medium. In an example, the software, when executed by the underlying hardware of the module, causes the hardware to perform the specified operations. 
     Accordingly, the term “module” is understood to encompass a tangible entity, be that an entity that is physically constructed, specifically configured (e.g., hardwired), or temporarily (e.g., transitorily) configured (e.g., programmed) to operate in a specified manner or to perform part or all of any operation described herein. Considering examples in which modules are temporarily configured, each of the modules need not be instantiated at any one moment in time. For example, where the modules comprise a general-purpose hardware processor configured using software, the general-purpose hardware processor may be configured as respective different modules at different times. Software may accordingly configure a hardware processor, for example, to constitute a particular module at one instance of time and to constitute a different module at a different instance of time. 
     Machine (e.g., computer system)  500  may include a hardware processor  502  (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a hardware processor core, or any combination thereof), a main memory  504  and a static memory  506 , some or all of which may communicate with each other via an interlink (e.g., bus)  508 . The machine  500  may further include a display unit  510 , an alphanumeric input device  512  (e.g., a keyboard), and a user interface (UI) navigation device  514  (e.g., a mouse). In an example, the display unit  510 , input device  512  and UI navigation device  514  may be a touch screen display. The machine  500  may additionally include a storage device (e.g., drive unit)  516 , a signal generation device  518  (e.g., a speaker), a network interface device  520 , and one or more sensors  521 , such as a global positioning system (GPS) sensor, compass, accelerometer, or other sensor. The machine  500  may include an output controller  528 , such as a serial (e.g., universal serial bus (USB), parallel, or other wired or wireless (e.g., infrared (IR), near field communication (NFC), etc.) connection to communicate or control one or more peripheral devices (e.g., a printer, card reader, etc.). 
     The storage device  516  may include a machine readable medium  522  on which is stored one or more sets of data structures or instructions  524  (e.g., software) embodying or utilized by any one or more of the techniques or functions described herein. The instructions  524  may also reside, completely or at least partially, within the main memory  504 , within static memory  506 , or within the hardware processor  502  during execution thereof by the machine  500 . In an example, one or any combination of the hardware processor  502 , the main memory  504 , the static memory  506 , or the storage device  516  may constitute machine readable media. 
     While the machine readable medium  522  is illustrated as a single medium, the term “machine readable medium” may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) configured to store the one or more instructions  524 . 
     The term “machine readable medium” may include any medium that is capable of storing, encoding, or carrying instructions for execution by the machine  500  and that cause the machine  500  to perform any one or more of the techniques of the present disclosure, or that is capable of storing, encoding or carrying data structures used by or associated with such instructions. Non-limiting machine readable medium examples may include solid-state memories, and optical and magnetic media. Specific examples of machine readable media may include: non-volatile memory, such as semiconductor memory devices (e.g., Electrically Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM)) and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; Random Access Memory (RAM); Solid State Drives (SSD); and CD-ROM and DVD-ROM disks. In some examples, machine readable media may include non-transitory machine readable media. In some examples, machine readable media may include machine readable media that is not a transitory propagating signal. 
     The instructions  524  may further be transmitted or received over a communications network  526  using a transmission medium via the network interface device  520 . The Machine  500  may communicate with one or more other machines utilizing any one of a number of transfer protocols (e.g., frame relay, internet protocol (IP), transmission control protocol (TCP), user datagram protocol (UDP), hypertext transfer protocol (HTTP), etc.). Example communication networks may include a local area network (LAN), a wide area network (WAN), a packet data network (e.g., the Internet), mobile telephone networks (e.g., cellular networks), Plain Old Telephone (POTS) networks, and wireless data networks (e.g., Institute of Electrical and Electronics Engineers (IEEE) 802.11 family of standards known as Wi-Fi®, IEEE 802.16 family of standards known as WiMax®), IEEE 802.15.4 family of standards, a Long Term Evolution (LTE) family of standards, a Universal Mobile Telecommunications System (UMTS) family of standards, peer-to-peer (P2P) networks, among others. In an example, the network interface device  520  may include one or more physical jacks (e.g., Ethernet, coaxial, or phone jacks) or one or more antennas to connect to the communications network  526 . In an example, the network interface device  520  may include a plurality of antennas to wirelessly communicate using at least one of single-input multiple-output (SIMO), multiple-input multiple-output (MIMO), or multiple-input single-output (MISO) techniques. In some examples, the network interface device  520  may wirelessly communicate using Multiple User MIMO techniques. 
     OTHER NOTES AND EXAMPLES 
     Example 1 is a method for verifying an intent of a user to activate voice command processing of a device, the method comprising: using one or more processors of a computing device: submitting a first audio signal to a keyword detector, the keyword detector producing a first indication of whether one or more words designed to activate the voice command processing are present in the first audio signal; submitting a second audio signal, received from an audio capture device communicatively coupled to the computing device, to the keyword detector producing a second indication of whether the one or more words designed to activate the voice command processing is present in the second audio signal; determining whether to activate the voice command processing based upon both the first and second indications of whether the one or more words are present; and selectively activating the voice command processing of the device based upon the determination. 
     In Example 2, the subject matter of Example 1 includes, wherein the first audio signal is audio from a communications application that originated from one or more remote participants. 
     In Example 3, the subject matter of Examples 1-2 includes, wherein the first audio signal is copied and wherein a first copy is submitted to the keyword detector and the second copy is caused to be played through an output device communicatively coupled to the computing device. 
     In Example 4, the subject matter of Examples 1-3 includes, wherein determining whether to activate the voice command processing based upon both the first and second indications comprises: activating the voice command processing when the first indication indicates that the one or more words were not present and the second indication indicates that the one or more words were present. 
     In Example 5, the subject matter of Examples 1-4 includes, wherein determining whether to activate the voice command processing based upon both the first and second indications comprises: refraining from activating the voice command processing when the first indication and the second indication both indicate that the one or more words were present. 
     In Example 6, the subject matter of Examples 1-5 includes, wherein determining whether to activate the voice command processing based upon both the first and second indications comprises: refraining from activating the voice command processing when the first indication indicates that the one or more words were present and the second indication indicates that the one or more words were not present. 
     In Example 7, the subject matter of Example 6 includes, determining, based upon the first indication indicating that the one or more words were present and the second indication indicating that the one or more words were not present, that an echo canceller is active; and responsive to determining that the echo canceller is active, adjusting a digital signal processing setting of a communications application to compensate for the echo canceller. 
     In Example 8, the subject matter of Examples 1-7 includes, wherein the first audio signal is sent to an output device communicatively coupled to the one or more processors and the second audio signal is received from an input device communicatively coupled to the one or more processors. 
     Example 9 is a computing device that verifies an intent of a user to activate voice command processing of the computing device, the computing device comprising: a processor; a memory comprising instructions, which when executed by the processor, causes the processor to perform operations comprising: submitting a first audio signal to a keyword detector, the keyword detector producing a first indication of whether one or more words designed to activate the voice command processing are present in the first audio signal; submitting a second audio signal, received from an audio capture device communicatively coupled to the computing device, to the keyword detector producing a second indication of whether the one or more words designed to activate the voice command processing is present in the second audio signal; determining whether to activate the voice command processing based upon both the first and second indications of whether the one or more words are present; and selectively activating the voice command processing of the computing device based upon the determination. 
     In Example 10, the subject matter of Example 9 includes, wherein the first audio signal is audio from a communications application that originated from one or more remote participants. 
     In Example 11, the subject matter of Examples 9-10 includes, wherein the operations further comprise copying the first audio signal and submitting a first copy to the keyword detector and a second copy is caused to be played through an output device communicatively coupled to the computing device. 
     In Example 12, the subject matter of Examples 9-11 includes, wherein the operations of determining whether to activate the voice command processing based upon both the first and second indications comprises: activating the computing device when the first indication indicates that the one or more words were not present and the second indication indicates that the one or more words were present. 
     In Example 13, the subject matter of Examples 9-12 includes, wherein the operations of determining whether to activate the voice command processing based upon both the first and second indications comprises: refraining from activating the voice command processing when the first indication and the second indication both indicate that the one or more words were present. 
     In Example 14, the subject matter of Examples 9-13 includes, wherein the operations of determining whether to activate the voice command processing based upon both the first and second indications comprises: refraining from activating the voice command processing when the first indication indicates that the one or more words were present and the second indication indicates that the one or more words were not present. 
     In Example 15, the subject matter of Example 14 includes, wherein the operations further comprise: determining, based upon the first indication indicating that the one or more words were present and the second indication indicating that the one or more words were not present, that an echo canceller is active; and responsive to determining that the echo canceller is active, adjusting a digital signal processing setting of a communications application to compensate for the echo canceller. 
     In Example 16, the subject matter of Examples 9-15 includes, wherein the operations further comprise sending the first audio signal to an output device communicatively coupled to the computing device and receiving the second audio signal from an input device communicatively coupled to the one or more processors. 
     Example 17 is a machine-readable medium comprising instructions for verifying an intent of a user to activate voice command processing of a machine, the instructions, when executed by a machine, cause the machine to perform operations comprising: submitting a first audio signal to a keyword detector, the keyword detector producing a first indication of whether one or more words designed to activate the voice command processing are present in the first audio signal; submitting a second audio signal, received from an audio capture device communicatively coupled to the computing device, to the keyword detector producing a second indication of whether the one or more words designed to activate the voice command processing is present in the second audio signal; determining whether to activate the voice command processing based upon both the first and second indications of whether the one or more words are present; and selectively activating the voice command processing of the machine based upon the determination. 
     In Example 18, the subject matter of Example 17 includes, wherein the first audio signal is audio from a communications application that originated from one or more remote participants. 
     In Example 19, the subject matter of Examples 17-18 includes, wherein the operations further comprise copying the first audio signal and submitting a first copy to the keyword detector and a second copy is caused to be played through an output device communicatively coupled to the machine. 
     In Example 20, the subject matter of Examples 17-19 includes, wherein the operations of determining whether to activate the voice command processing based upon both the first and second indications comprises: activating the voice command processing when the first indication indicates that the one or more words were not present and the second indication indicates that the one or more words were present. 
     In Example 21, the subject matter of Examples 17-20 includes, wherein the operations of determining whether to activate the voice command processing based upon both the first and second indications comprises: refraining from activating the voice command processing when the first indication and the second indication both indicate that the one or more words were present. 
     In Example 22, the subject matter of Examples 17-21 includes, wherein the operations of determining whether to activate the voice command processing based upon both the first and second indications comprises: refraining from activating the voice command processing when the first indication indicates that the one or more words were present and the second indication indicates that the one or more words were not present. 
     In Example 23, the subject matter of Example 22 includes, wherein the operations further comprise: determining, based upon the first indication indicating that the one or more words were present and the second indication indicating that the one or more words were not present, that an echo canceller is active; and responsive to determining that the echo canceller is active, adjusting a digital signal processing setting of a communications application to compensate for the echo canceller. 
     In Example 24, the subject matter of Examples 17-23 includes, wherein the operations further comprise sending the first audio signal to an output device communicatively coupled to the machine and receiving the second audio signal from an input device communicatively coupled to the machine. 
     Example 25 is a computing device that verifies an intent of a user to activate voice command processing of the computing device, the computing device comprising: means for submitting a first audio signal to a keyword detector, the keyword detector producing a first indication of whether one or more words designed to activate the voice command processing are present in the first audio signal; means for submitting a second audio signal, received from an audio capture device communicatively coupled to the computing device, to the keyword detector producing a second indication of whether the one or more words designed to activate the voice command processing is present in the second audio signal; means for determining whether to activate the voice command processing based upon both the first and second indications of whether the one or more words are present; and means for selectively activating the voice command processing of the device based upon the determination. 
     In Example 26, the subject matter of Example 25 includes, wherein the first audio signal is audio from a communications application that originated from one or more remote participants. 
     In Example 27, the subject matter of Examples 25-26 includes, wherein the first audio signal is copied and wherein a first copy is submitted to the keyword detector and the second copy is caused to be played through an output device communicatively coupled to the computing device. 
     In Example 28, the subject matter of Examples 25-27 includes, wherein the means for determining whether to activate the voice command processing based upon both the first and second indications comprises: means for activating the voice command processing when the first indication indicates that the one or more words were not present and the second indication indicates that the one or more words were present. 
     In Example 29, the subject matter of Examples 25-28 includes, wherein the means for determining whether to activate the voice command processing based upon both the first and second indications comprises: means for refraining from activating the voice command processing when the first indication and the second indication both indicate that the one or more words were present. 
     In Example 30, the subject matter of Examples 25-29 includes, wherein the means for determining whether to activate the voice command processing based upon both the first and second indications comprises: means for refraining from activating the voice command processing when the first indication indicates that the one or more words were present and the second indication indicates that the one or more words were not present. 
     In Example 31, the subject matter of Example 30 includes, means for determining, based upon the first indication indicating that the one or more words were present and the second indication indicating that the one or more words were not present, that an echo canceller is active; and responsive to determining that the echo canceller is active, means for adjusting a digital signal processing setting of a communications application to compensate for the echo canceller. 
     In Example 32, the subject matter of Examples 25-31 includes, wherein the first audio signal is sent to an output device communicatively coupled to the one or more processors and the second audio signal is received from an input device communicatively coupled to the one or more processors. 
     Example 33 is at least one machine-readable medium including instructions that, when executed by processing circuitry, cause the processing circuitry to perform operations to implement of any of Examples 1-32. 
     Example 34 is an apparatus comprising means to implement of any of Examples 1-32. 
     Example 35 is a system to implement of any of Examples 1-32. 
     Example 36 is a method to implement of any of Examples 1-32.