FIELD OF THE DISCLOSURE
[0001] The disclosure is related to consumer goods and, more particularly, to methods, systems,
products, features, services, and other elements directed to media playback or some
aspect thereof.
BACKGROUND
[0002] Options for accessing and listening to digital audio in an out-loud setting were
limited until in 2003, when SONOS, Inc. filed for one of its first patent applications,
entitled "Method for Synchronizing Audio Playback between Multiple Networked Devices,"
and began offering a media playback system for sale in 2005. The Sonos Wireless HiFi
System enables people to experience music from many sources via one or more networked
playback devices. Through a software control application installed on a smartphone,
tablet, or computer, one can play what he or she wants in any room that has a networked
playback device. Additionally, using the controller, for example, different songs
can be streamed to each room with a playback device, rooms can be grouped together
for synchronous playback, or the same song can be heard in all rooms synchronously.
[0003] Given the ever growing interest in digital media, there continues to be a need to
develop consumer-accessible technologies to further enhance the listening experience.
[0004] US9548053B1 describes a method for detecting inadvertent wake words and audio commands that should
be disregarded.
BRIEF DESCRIPTION OF THE DRAWINGS
[0005] Features, aspects, and advantages of the presently disclosed technology may be better
understood with regard to the following description, appended claims, and accompanying
drawings where:
Figure 1 shows an example media playback system configuration in which certain embodiments
may be practiced;
Figure 2 shows a functional block diagram of an example playback device;
Figure 3 shows a functional block diagram of an example control device;
Figure 4 shows an example controller interface;
Figure 5 shows an example processing system;
Figure 6 shows an example plurality of network devices according to aspects described
herein;
Figure 7 shows a function block diagram of an example network microphone device according
to aspects described herein;
Figure 8 shows an example flow diagram to disable a wake response of one or more NMDs;
Figure 9 show example messages to cause a NMD to disregard a wake word;
Figures 10A, 10B, 10C, 10D illustrate example instructions to cause a NMD to disregard
a wake word;
Figure 11 shows an example flow diagram to disable a wake response of one or more
NMDs;
Figure 12 shows an example flow diagram to disable a wake response of one or more
NMDs; and
Figure 13 shows an example flow diagram to suppress a wake response.
[0006] The drawings are for the purpose of illustrating example embodiments, but it is understood
that the inventions are not limited to the arrangements and instrumentality shown
in the drawings.
DETAILED DESCRIPTION
I. Overview
[0007] Networked microphone devices (NMDs) may be used to control a household using voice
control. A NMD may be or may be part of, for example, a SONOS
® playback device, server, or system capable of receiving voice input via a microphone.
In some examples, the playback device is a SONOS
® playback device. Additionally, a NMD may be or may be part of another device, server,
or system (e.g., an AMAZON
® ECHO
®, APPLE
® IPHONE
®, among other examples) capable of receiving voice inputs via a microphone.
U.S. App. No. 15/438,749 filed on February 21, 2017 and titled, "Voice Control of a Media Playback System," provides examples of voice-enabled
household architectures. Voice control can be beneficial for various devices with
a "smart" home, such as playback devices, wireless illumination devices, thermostats,
door locks, home automation, as well as other examples.
[0008] In some implementations, voice inputs detected by a NMD are sent to a voice service
for processing. A NMD together with a playback device may operate as a microphone/speaker
interface to the voice service. Voice inputs are detected by a microphone of the NMD
and then transmitted to a particular voice service for processing. The voice service
may then return a command or other result of the voice input.
[0009] Utterance of a wake word may invoke a voice service. For instance, in querying the
AMAZON
® voice service, a user might speak the wake word " Alexa" followed by a voice input.
Other examples include "Ok, Google" for querying the GOOGLE
® voice service and "Hey, Siri" for querying the APPLE
® voice service. Other examples of wake words and voice services exist. Upon detecting
a wake word, a NMD may respond by listening, via a microphone, for a voice command
following the wake word. This response is referred to herein as the "wake response"
of a NMD.
[0010] In some circumstances, playback of audio content that includes a wake word may falsely
trigger the wake-response of a NMD. Wake-words for many voice services are pre-existing
words chosen from the vocabulary of an existing language. For instance, several popular
voice services use given names as wake words (e.g., "Alexa" and "Siri"). Accordingly,
in some circumstances, recorded audio content such as a talk show, a film, a television
show, a podcast, an Internet streaming video, among others, may include a wake word
or similar. Playback of such audio content in range of a NMD may falsely trigger the
NMD, which may be undesirable for many reasons including that it may interfere with
enjoyment of the audio content.
[0011] For example, a television may play back a commercial for a given voice service. During
the commercial, an actor or actress might speak the wake word for the voice service,
perhaps to demonstrate how the voice service is invoked. An NMD in the same room as
the television might detect the audio output from the television, and invoke the voice
service when the NMD detects the wake word in the commercial. This may be undesirable.
Moreover, since the commercial may play on many televisions simultaneously, the commercial
may trigger many NMDs at the same time, which may cause an undesirable surge in requests
to the voice service.
[0012] To avoid their commercials causing false triggering, an operator of a voice service
may mark the portion(s) of their commercial that includes a wake word and program
their NMDs to ignore these marked portion(s). For instance, the operator may mix in
a tone or other audio marker into commercials for the voice service and program their
NMDs to ignore wake words that are detected in conjunction with this audio marker.
This implementation may be useful in limited instances, such as commercials for the
voice service, where the operator of the voice service can embed this marker into
the audio content. However, this implementation is not useful with respect to the
vast majority of other audio content over which the operator of the voice service
has no control.
[0013] Example techniques described herein may involve processing audio content to be played
back by a playback device before the audio content is audibly played back by the playback
device, determining whether the audio content includes one or more wake words, and
notifying one or more NMDs to disregard the wake word(s) when they are played back
by the playback device. In this manner, the techniques may help prevent false triggering
of NMDs. Notably, such techniques may be applicable to any recorded audio content
to be played back by a playback device.
[0014] For instance, a playback device may receive audio content for playback. Before playing
the audio content, the playback device stores the audio content in memory (e.g., in
a buffer), and runs a wake word detection algorithm on the audio content. If any wake
words are detected in the audio content, the playback device (which may be a NMD itself)
causes one or more NMDs to disregard these wake words when the playback device ultimately
plays back the audio content.
[0015] As another example, a NMD may receive audio content that has been designated for
playback by a playback device. Before the audio content is played back by the playback
device, the NMD may run a wake word detection algorithm on the audio content. If any
wake words are detected in the audio content, the NMD may cause itself (and possibly
other NMDs in the vicinity) to disregard these wake words when they are ultimately
played back by the playback device.
[0016] An NMD may disregard a wake word using any of a variety of techniques. In some instances,
the NMD may be instructed to not detect the wake word as it is played back by the
playback device, perhaps by instructing the NMD to stop listening for wake words,
by disabling the microphone array of the NMD for a period of time, or by creating
a listening NULL in the direction of the playback device, among other examples. Alternatively,
the NMD may proceed to initially detect the wake word, but be instructed to suppress
its programmed wake response to invoke a voice service in response to detecting the
wake word, perhaps by disregarding wake words during certain periods of time or by
disregarding all recorded audio during certain periods of time.
[0017] When processing the audio content prior to the playback device audibly playing back
that audio content, a processing device (such as a playback device or NMD) can also
determine what sections of the recorded audio content contain the wake words. These
sections can be defined by a time period within the audio content such as a start
and stop time for the wake word
(e.g., a wake word in a podcast starts at 33:52.543 and ends at 33:54.013). When the audio
content is played back, NMDs in the vicinity can be instructed to ignore wake words
during these time periods.
[0018] As another example, the processing device may count the number of wake words in the
audio content (or in a portion of the audio content). For instance, a playback device
that is processing the audio content of a commercial might detect four instances of
a wake word in that commercial. Then, the playback device may instruct NMDs in the
vicinity of the playback device to ignore wake words until they have detected a number
of wake words equal to the count
(e.g., to ignore the next four wake words).
[0019] In other examples, the processing device may dynamically insert an audio tone or
other marker in the recorded audio content to designate wake words detected in the
audio content. Then, when the audio content is played back by the playback device,
a NMD that detects the audio marker in conjunction with the wake word can be instructed
to ignore that instance of the wake word. Multiple NMDs in audible range of the playback
device may each detect the wake word and ignore the wake word in response to detecting
the associated audio marker.
[0020] Example techniques may involve disabling wake response of one or more NMDs. A first
implementation may include receiving, via a network interface, data representing audio
content for playback by the playback device, and before the audio content is played
back by the playback device, detecting, in the audio content, one or more wake words
for one or more voice services. The first implementation may also include causing
one or more networked microphone devices to disable its respective wake response to
the detected one or more wake words during playback of the audio content by the playback
device, where, when enabled, the wake response of a given networked microphone device
to a particular wake word causes the given networked microphone device to listen,
via a microphone, for a voice command following the particular wake word. The first
implementation may further include playing back the audio content via one or more
speakers.
[0021] A second implementation may include receiving, via a network interface, data representing
audio content for playback by a playback device. The second implementation may also
include, before the audio content is played back by the playback device, detecting,
in the audio content, one or more wake words for one or more voice services. The second
implementation may further include disabling a wake response of the networked microphone
device to the detected one or more wake words during playback of the audio content
by the playback device, and while the playback device is playing back the audio content,
detecting the played back audio content via the microphone.
[0022] A third implementation may include receiving, via an interface of the computing system,
audio content for playback by one or more playback devices. The third implementation
may also include before the audio content is played back by the playback device, detecting,
in the audio content, one or more wake words for one or more voice services. The third
implementation may further include causing one or more networked microphone devices
to disable their respective wake responses to the detected one or more wake words
during playback of the audio content by the playback device.
[0023] A fourth implementation may include receiving, via the network interface, an instruction
to disable a wake response of the networked microphone device to one or more wake
words. The fourth implementation may also include detecting, via the microphone, audio
content being played back by one or more playback devices. The fourth implementation
may further include determining that the detected audio content includes one or more
wake words and, in response to the received instruction, disabling the wake response
of the networked microphone device to the one or more wake words in the detected audio
content.
[0024] Each of the these example implementations may be embodied as a method, a device configured
to carry out the implementation, a system of devices configured to carry out the implementation,
or a non-transitory computer-readable medium containing instructions that are executable
by one or more processors to carry out the implementation, among other examples. It
will be understood by one of ordinary skill in the art that this disclosure includes
numerous other embodiments, including combinations of the example features described
herein. Further, any example operation described as being performed by a given device
to illustrate a technique may be performed by any suitable devices, including the
devices described herein. Yet further, any device may cause another device to perform
any of the operations described herein.
[0025] While some examples described herein may refer to functions performed by given actors
such as "users" and/or other entities, it should be understood that this description
is for purposes of explanation only. The claims should not be interpreted to require
action by any such example actor unless explicitly required by the language of the
claims themselves.
II. Example Operating Environment
[0026] Figure 1 illustrates an example configuration of a media playback system 100 in which
one or more embodiments disclosed herein may be practiced or implemented. The media
playback system 100 as shown is associated with an example home environment having
several rooms and spaces, such as for example, a master bedroom, an office, a dining
room, and a living room. As shown in the example of Figure 1, the media playback system
100 includes playback devices 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 112,
and 124, control devices 126 and 128, and a wired or wireless network router 130.
Also present in Figure 1 are NMDs 132 and 134.
[0027] Further discussions relating to the different components of the example media playback
system 100 and how the different components may interact to provide a user with a
media experience may be found in the following sections. While discussions herein
may generally refer to the example media playback system 100, technologies described
herein are not limited to applications within, among other things, the home environment
as shown in Figure 1. For instance, the technologies described herein may be useful
in environments where multi-zone audio may be desired, such as, for example, a commercial
setting like a restaurant, mall or airport, a vehicle like a sports utility vehicle
(SUV), bus or car, a ship or boat, an airplane, and so on.
a. Example Playback Devices
[0028] Figure 2 shows a functional block diagram of an example playback device 200 that
may be configured to be one or more of the playback devices 102-124 of the media playback
system 100 of Figure 1. The playback device 200 may include a processor 202, software
components 204, memory 206, audio processing components 208, audio amplifier(s) 210,
speaker(s) 212, and a network interface 214 including wireless interface(s) 216 and
wired interface(s) 218. In one case, the playback device 200 may not include the speaker(s)
212, but rather a speaker interface for connecting the playback device 200 to external
speakers. In another case, the playback device 200 may include neither the speaker(s)
212 nor the audio amplifier(s) 210, but rather an audio interface for connecting the
playback device 200 to an external audio amplifier or audio-visual receiver.
[0029] In one example, the processor 202 may be a clock-driven computing component configured
to process input data according to instructions stored in the memory 206. The memory
206 may be a tangible computer-readable medium configured to store instructions executable
by the processor 202. For instance, the memory 206 may be data storage that can be
loaded with one or more of the software components 204 executable by the processor
202 to achieve certain functions. In one example, the functions may involve the playback
device 200 retrieving audio data from an audio source or another playback device.
In another example, the functions may involve the playback device 200 sending audio
data to another device or playback device on a network. In yet another example, the
functions may involve pairing of the playback device 200 with one or more playback
devices to create a multi-channel audio environment.
[0030] Certain functions may involve the playback device 200 synchronizing playback of audio
content with one or more other playback devices. During synchronous playback, a listener
will preferably not be able to perceive time-delay differences between playback of
the audio content by the playback device 200 and the one or more other playback devices.
U.S. Patent No. 8,234,395 entitled, "System and method for synchronizing operations among a plurality of independently
clocked digital data processing devices," provides in more detail some examples for
audio playback synchronization among playback devices.
[0031] The memory 206 may further be configured to store data associated with the playback
device 200, such as one or more zones and/or zone groups the playback device 200 is
a part of, audio sources accessible by the playback device 200, or a playback queue
that the playback device 200 (or some other playback device) may be associated with.
The data may be stored as one or more state variables that are periodically updated
and used to describe the state of the playback device 200. The memory 206 may also
include the data associated with the state of the other devices of the media system,
and shared from time to time among the devices so that one or more of the devices
have the most recent data associated with the system. Other embodiments are also possible.
[0032] The audio processing components 208 may include one or more digital-to-analog converters
(DAC), an audio preprocessing component, an audio enhancement component or a digital
signal processor (DSP), and so on. In one embodiment, one or more of the audio processing
components 208 may be a subcomponent of the processor 202. In one example, audio content
may be processed and/or intentionally altered by the audio processing components 208
to produce audio signals. The produced audio signals may then be provided to the audio
amplifier(s) 210 for amplification and playback through speaker(s) 212. Particularly,
the audio amplifier(s) 210 may include devices configured to amplify audio signals
to a level for driving one or more of the speakers 212. The speaker(s) 212 may include
an individual transducer (e.g., a "driver") or a complete speaker system involving
an enclosure with one or more drivers. A particular driver of the speaker(s) 212 may
include, for example, a subwoofer (e.g., for low frequencies), a mid-range driver
(e.g., for middle frequencies), and/or a tweeter (e.g., for high frequencies). In
some cases, each transducer in the one or more speakers 212 may be driven by an individual
corresponding audio amplifier of the audio amplifier(s) 210. In addition to producing
analog signals for playback by the playback device 200, the audio processing components
208 may be configured to process audio content to be sent to one or more other playback
devices for playback.
[0033] Audio content to be processed and/or played back by the playback device 200 may be
received from an external source, such as via an audio line-in input connection (e.g.,
an auto-detecting 3.5mm audio line-in connection) or the network interface 214.
[0034] The network interface 214 may be configured to facilitate a data flow between the
playback device 200 and one or more other devices on a data network. As such, the
playback device 200 may be configured to receive audio content over the data network
from one or more other playback devices in communication with the playback device
200, network devices within a local area network, or audio content sources over a
wide area network such as the Internet. In one example, the audio content and other
signals transmitted and received by the playback device 200 may be transmitted in
the form of digital packet data containing an Internet Protocol (IP)-based source
address and IP-based destination addresses. In such a case, the network interface
214 may be configured to parse the digital packet data such that the data destined
for the playback device 200 is properly received and processed by the playback device
200.
[0035] As shown, the network interface 214 may include wireless interface(s) 216 and wired
interface(s) 218. The wireless interface(s) 216 may provide network interface functions
for the playback device 200 to wirelessly communicate with other devices (e.g., other
playback device(s), speaker(s), receiver(s), network device(s), control device(s)
within a data network the playback device 200 is associated with) in accordance with
a communication protocol
(e.g., any wireless standard including IEEE 802.11a, 802.11b, 802.11g, 802.11n, 802.11ac,
802.15, 4G mobile communication standard, and so on). The wired interface(s) 218 may
provide network interface functions for the playback device 200 to communicate over
a wired connection with other devices in accordance with a communication protocol
(e.g., IEEE 802.3). While the network interface 214 shown in Figure 2 includes both wireless
interface(s) 216 and wired interface(s) 218, the network interface 214 may in some
embodiments include only wireless interface(s) or only wired interface(s).
[0036] In one example, the playback device 200 and one other playback device may be paired
to play two separate audio components of audio content. For instance, playback device
200 may be configured to play a left channel audio component, while the other playback
device may be configured to play a right channel audio component, thereby producing
or enhancing a stereo effect of the audio content. The paired playback devices (also
referred to as "bonded playback devices") may further play audio content in synchrony
with other playback devices.
[0037] In another example, the playback device 200 may be sonically consolidated with one
or more other playback devices to form a single, consolidated playback device. A consolidated
playback device may be configured to process and reproduce sound differently than
an unconsolidated playback device or playback devices that are paired, because a consolidated
playback device may have additional speaker drivers through which audio content may
be rendered. For instance, if the playback device 200 is a playback device designed
to render low frequency range audio content (
i.e. a subwoofer), the playback device 200 may be consolidated with a playback device
designed to render full frequency range audio content. In such a case, the full frequency
range playback device, when consolidated with the low frequency playback device 200,
may be configured to render only the mid and high frequency components of audio content,
while the low frequency range playback device 200 renders the low frequency component
of the audio content. The consolidated playback device may further be paired with
a single playback device or yet another consolidated playback device.
[0038] By way of illustration, SONOS, Inc. presently offers (or has offered) for sale certain
playback devices including a "PLAY:1," "PLAY:3," "PLAY:5," "PLAYBAR," "CONNECT:AMP,"
"CONNECT," and "SUB." Any other past, present, and/or future playback devices may
additionally or alternatively be used to implement the playback devices of example
embodiments disclosed herein. Additionally, it is understood that a playback device
is not limited to the example illustrated in Figure 2 or to the SONOS product offerings.
For example, a playback device may include a wired or wireless headphone. In another
example, a playback device may include or interact with a docking station for personal
mobile media playback devices. In yet another example, a playback device may be integral
to another device or component such as a television, a lighting fixture, or some other
device for indoor or outdoor use.
b. Example Playback Zone Configurations
[0039] Referring back to the media playback system 100 of Figure 1, the environment may
have one or more playback zones, each with one or more playback devices. The media
playback system 100 may be established with one or more playback zones, after which
one or more zones may be added, or removed to arrive at the example configuration
shown in Figure 1. Each zone may be given a name according to a different room or
space such as an office, bathroom, master bedroom, bedroom, kitchen, dining room,
living room, and/or balcony. In one case, a single playback zone may include multiple
rooms or spaces. In another case, a single room or space may include multiple playback
zones.
[0040] As shown in Figure 1, the balcony, dining room, kitchen, bathroom, office, and bedroom
zones each have one playback device, while the living room and master bedroom zones
each have multiple playback devices. In the living room zone, playback devices 104,
106, 108, and 110 may be configured to play audio content in synchrony as individual
playback devices, as one or more bonded playback devices, as one or more consolidated
playback devices, or any combination thereof. Similarly, in the case of the master
bedroom, playback devices 122 and 124 may be configured to play audio content in synchrony
as individual playback devices, as a bonded playback device, or as a consolidated
playback device.
[0041] In one example, one or more playback zones in the environment of Figure 1 may each
be playing different audio content. For instance, the user may be grilling in the
balcony zone and listening to hip hop music being played by the playback device 102
while another user may be preparing food in the kitchen zone and listening to classical
music being played by the playback device 114. In another example, a playback zone
may play the same audio content in synchrony with another playback zone. For instance,
the user may be in the office zone where the playback device 118 is playing the same
rock music that is being playing by playback device 102 in the balcony zone. In such
a case, playback devices 102 and 118 may be playing the rock music in synchrony such
that the user may seamlessly (or at least substantially seamlessly) enjoy the audio
content that is being played out-loud while moving between different playback zones.
Synchronization among playback zones may be achieved in a manner similar to that of
synchronization among playback devices, as described in previously referenced
U.S. Patent No. 8,234,395.
[0042] As suggested above, the zone configurations of the media playback system 100 may
be dynamically modified, and in some embodiments, the media playback system 100 supports
numerous configurations. For instance, if a user physically moves one or more playback
devices to or from a zone, the media playback system 100 may be reconfigured to accommodate
the change(s). For instance, if the user physically moves the playback device 102
from the balcony zone to the office zone, the office zone may now include both the
playback device 118 and the playback device 102. The playback device 102 may be paired
or grouped with the office zone and/or renamed if so desired via a control device
such as the control devices 126 and 128. On the other hand, if the one or more playback
devices are moved to a particular area in the home environment that is not already
a playback zone, a new playback zone may be created for the particular area.
[0043] Further, different playback zones of the media playback system 100 may be dynamically
combined into zone groups or split up into individual playback zones. For instance,
the dining room zone and the kitchen zone 114 may be combined into a zone group for
a dinner party such that playback devices 112 and 114 may render audio content in
synchrony. On the other hand, the living room zone may be split into a television
zone including playback device 104, and a listening zone including playback devices
106, 108, and 110, if the user wishes to listen to music in the living room space
while another user wishes to watch television.
c. Example Control Devices
[0044] Figure 3 shows a functional block diagram of an example control device 300 that may
be configured to be one or both of the control devices 126 and 128 of the media playback
system 100. Control device 300 may also be referred to as a controller 300. As shown,
the control device 300 may include a processor 302, memory 304, a network interface
306, and a user interface 308. In one example, the control device 300 may be a dedicated
controller for the media playback system 100. In another example, the control device
300 may be a network device on which media playback system controller application
software may be installed, such as for example, an iPhone
™, iPad
™ or any other smart phone, tablet or network device
(e.g., a networked computer such as a PC or Mac
™).
[0045] The processor 302 may be configured to perform functions relevant to facilitating
user access, control, and configuration of the media playback system 100. The memory
304 may be configured to store instructions executable by the processor 302 to perform
those functions. The memory 304 may also be configured to store the media playback
system controller application software and other data associated with the media playback
system 100 and the user.
[0046] In one example, the network interface 306 may be based on an industry standard (e.g.,
infrared, radio, wired standards including IEEE 802.3, wireless standards including
IEEE 802.11a, 802.11b, 802.11g, 802.11n, 802.11ac, 802.15, 4G mobile communication
standard, and so on). The network interface 306 may provide a means for the control
device 300 to communicate with other devices in the media playback system 100. In
one example, data and information (e.g., such as a state variable) may be communicated
between control device 300 and other devices via the network interface 306. For instance,
playback zone and zone group configurations in the media playback system 100 may be
received by the control device 300 from a playback device or another network device,
or transmitted by the control device 300 to another playback device or network device
via the network interface 306. In some cases, the other network device may be another
control device.
[0047] Playback device control commands such as volume control and audio playback control
may also be communicated from the control device 300 to a playback device via the
network interface 306. As suggested above, changes to configurations of the media
playback system 100 may also be performed by a user using the control device 300.
The configuration changes may include adding/removing one or more playback devices
to/from a zone, adding/removing one or more zones to/from a zone group, forming a
bonded or consolidated player, separating one or more playback devices from a bonded
or consolidated player, among others. Accordingly, the control device 300 may sometimes
be referred to as a controller, whether the control device 300 is a dedicated controller
or a network device on which media playback system controller application software
is installed.
[0048] The user interface 308 of the control device 300 may be configured to facilitate
user access and control of the media playback system 100, by providing a controller
interface such as the controller interface 400 shown in Figure 4. The controller interface
400 includes a playback control region 410, a playback zone region 420, a playback
status region 430, a playback queue region 440, and an audio content sources region
450. The user interface 400 as shown is just one example of a user interface that
may be provided on a network device such as the control device 300 of Figure 3 (and/or
the control devices 126 and 128 of Figure 1) and accessed by users to control a media
playback system such as the media playback system 100. Other user interfaces of varying
formats, styles, and interactive sequences may alternatively be implemented on one
or more network devices to provide comparable control access to a media playback system.
[0049] The playback control region 410 may include selectable (e.g., by way of touch or
by using a cursor) icons to cause playback devices in a selected playback zone or
zone group to play or pause, fast forward, rewind, skip to next, skip to previous,
enter/exit shuffle mode, enter/exit repeat mode, enter/exit cross fade mode. The playback
control region 410 may also include selectable icons to modify equalization settings,
and playback volume, among other possibilities.
[0050] The playback zone region 420 may include representations of playback zones within
the media playback system 100. In some embodiments, the graphical representations
of playback zones may be selectable to bring up additional selectable icons to manage
or configure the playback zones in the media playback system, such as a creation of
bonded zones, creation of zone groups, separation of zone groups, and renaming of
zone groups, among other possibilities.
[0051] For example, as shown, a "group" icon may be provided within each of the graphical
representations of playback zones. The "group" icon provided within a graphical representation
of a particular zone may be selectable to bring up options to select one or more other
zones in the media playback system to be grouped with the particular zone. Once grouped,
playback devices in the zones that have been grouped with the particular zone will
be configured to play audio content in synchrony with the playback device(s) in the
particular zone. Analogously, a "group" icon may be provided within a graphical representation
of a zone group. In this case, the "group" icon may be selectable to bring up options
to deselect one or more zones in the zone group to be removed from the zone group.
Other interactions and implementations for grouping and ungrouping zones via a user
interface such as the user interface 400 are also possible. The representations of
playback zones in the playback zone region 420 may be dynamically updated as playback
zone or zone group configurations are modified.
[0052] The playback status region 430 may include graphical representations of audio content
that is presently being played, previously played, or scheduled to play next in the
selected playback zone or zone group. The selected playback zone or zone group may
be visually distinguished on the user interface, such as within the playback zone
region 420 and/or the playback status region 430. The graphical representations may
include track title, artist name, album name, album year, track length, and other
relevant information that may be useful for the user to know when controlling the
media playback system via the user interface 400.
[0053] The playback queue region 440 may include graphical representations of audio content
in a playback queue associated with the selected playback zone or zone group. In some
embodiments, each playback zone or zone group may be associated with a playback queue
containing information corresponding to zero or more audio items for playback by the
playback zone or zone group. For instance, each audio item in the playback queue may
comprise a uniform resource identifier (URI), a uniform resource locator (URL) or
some other identifier that may be used by a playback device in the playback zone or
zone group to find and/or retrieve the audio item from a local audio content source
or a networked audio content source, possibly for playback by the playback device.
[0054] In one example, a playlist may be added to a playback queue, in which case information
corresponding to each audio item in the playlist may be added to the playback queue.
In another example, audio items in a playback queue may be saved as a playlist. In
a further example, a playback queue may be empty, or populated but "not in use" when
the playback zone or zone group is playing continuously streaming audio content, such
as Internet radio that may continue to play until otherwise stopped, rather than discrete
audio items that have playback durations. In an alternative embodiment, a playback
queue can include Internet radio and/or other streaming audio content items and be
"in use" when the playback zone or zone group is playing those items. Other examples
are also possible.
[0055] When playback zones or zone groups are "grouped" or "ungrouped," playback queues
associated with the affected playback zones or zone groups may be cleared or re-associated.
For example, if a first playback zone including a first playback queue is grouped
with a second playback zone including a second playback queue, the established zone
group may have an associated playback queue that is initially empty, that contains
audio items from the first playback queue (such as if the second playback zone was
added to the first playback zone), that contains audio items from the second playback
queue (such as if the first playback zone was added to the second playback zone),
or a combination of audio items from both the first and second playback queues. Subsequently,
if the established zone group is ungrouped, the resulting first playback zone may
be re-associated with the previous first playback queue, or be associated with a new
playback queue that is empty or contains audio items from the playback queue associated
with the established zone group before the established zone group was ungrouped. Similarly,
the resulting second playback zone may be re-associated with the previous second playback
queue, or be associated with a new playback queue that is empty, or contains audio
items from the playback queue associated with the established zone group before the
established zone group was ungrouped. Other examples are also possible.
[0056] Referring back to the user interface 400 of Figure 4, the graphical representations
of audio content in the playback queue region 440 may include track titles, artist
names, track lengths, and other relevant information associated with the audio content
in the playback queue. In one example, graphical representations of audio content
may be selectable to bring up additional selectable icons to manage and/or manipulate
the playback queue and/or audio content represented in the playback queue. For instance,
a represented audio content may be removed from the playback queue, moved to a different
position within the playback queue, or selected to be played immediately, or after
any currently playing audio content, among other possibilities. A playback queue associated
with a playback zone or zone group may be stored in a memory on one or more playback
devices in the playback zone or zone group, on a playback device that is not in the
playback zone or zone group, and/or some other designated device. Playback of such
a playback queue may involve one or more playback devices playing back media items
of the queue, perhaps in sequential or random order.
[0057] The audio content sources region 450 may include graphical representations of selectable
audio content sources from which audio content may be retrieved and played by the
selected playback zone or zone group. Discussions pertaining to audio content sources
may be found in the following section.
d. Example Audio Content Sources
[0058] As indicated previously, one or more playback devices in a zone or zone group may
be configured to retrieve for playback audio content (e.g., according to a corresponding
URI or URL for the audio content) from a variety of available audio content sources.
In one example, audio content may be retrieved by a playback device directly from
a corresponding audio content source
(e.g., a line-in connection). In another example, audio content may be provided to a playback
device over a network via one or more other playback devices or network devices.
[0059] Example audio content sources may include a memory of one or more playback devices
in a media playback system such as the media playback system 100 of Figure 1, local
music libraries on one or more network devices (such as a control device, a network-enabled
personal computer, or a networked-attached storage (NAS), for example), streaming
audio services providing audio content via the Internet
(e.g., the cloud), or audio sources connected to the media playback system via a line-in
input connection on a playback device or network devise, among other possibilities.
[0060] In some embodiments, audio content sources may be regularly added or removed from
a media playback system such as the media playback system 100 of Figure 1. In one
example, an indexing of audio items may be performed whenever one or more audio content
sources are added, removed or updated. Indexing of audio items may involve scanning
for identifiable audio items in all folders/directory shared over a network accessible
by playback devices in the media playback system, and generating or updating an audio
content database containing metadata
(e.g., title, artist, album, track length, among others) and other associated information,
such as a URI or URL for each identifiable audio item found. Other examples for managing
and maintaining audio content sources may also be possible.
e. Example Processing System
[0061] Figure 5 shows a functional block diagram of an example processing system 500 that
includes an audio input/output component 502, a wake word detection component 504,
and a notification component 506. In operation, processing system 500 detects wake
words within recorded audio content and provides notifications to NMDs to ignore or
otherwise suppress their programmed wake response to detecting a wake word. Within
various embodiments, processing system 500 may be implemented in a playback device,
a NMD, or a separate processing device, such as a cloud server, among other examples.
In some embodiments, various components of the processing system (and/or functionality
thereof) are distributed among multiple devices.
[0062] In operation, audio input/output component 502 receives, via an input interface,
recorded audio content designated for playback by a playback device. For instance,
a control device (such as control device 126 or 128 of Figure 1) may instruct a playback
device (e.g., any playback device of Figure 1) to play back certain audio content,
perhaps by causing that content to be placed in a playback queue of the playback device
to cause the playback device to retrieve the audio content, by directing an audio
content stream to the playback device, or by directing audio content to the playback
device via an analog or digital line-in interface, among other examples. The audio/input
component 502 of the processing system 500 receives this recorded audio content before
the audio content is played back by the playback device.
[0063] As noted above, in some examples, processing system 500 is implemented within a playback
device. In such embodiments, the playback device 500 already has access to the audio
content necessarily for playback. For instance, the playback device may receive the
audio content from a network source
(e.g., a streaming media service or a mobile device) via a network interface over one or
more types of networks, such as wide area networks (WAN), local area networks (LAN),
and personal area networks (PAN), among other possibilities. Alternatively, the playback
device may receive the audio content via an analog
(e.g., RCA) or digital
(e.g., TosLink
® or HDMI
®) line-in interface.
[0064] In other examples, processing system 500 is implemented within a NMD or other processing
device that is separate from the playback device. In such embodiments, processing
system 500 may receive the audio content via a network interface from the playback
device or from the source of the audio content, among other examples. In another example,
a line-in interface may provide the audio content directly to the NMD or a playback
device may receive the audio content via a line-in interface and relay the content
to the processing system 500 over one or more networks.
[0065] For instance, processing system 500 may have access to the playback queue of the
playback device. As noted above, each audio item in the playback queue may comprise
a uniform resource identifier (URI), a uniform resource locator (URL) or some other
identifier that may be used by a playback device in the playback zone or zone group
to find and/or retrieve the audio item from a local audio content source or a networked
audio content source, possibly for playback by the playback device. The processing
system 500 may similarly use such an identifier to retrieve audio content from a local
audio content source or a networked audio content source, prior to playback by the
playback device.
[0066] In some implementations, the playback queue is stored in data storage of the playback
device. In further implementations, the playback queue is stored on a cloud server.
The playback queue stored on the cloud server
(i.e., a cloud queue) may be an instance or representation of a playback queue stored on
the playback device. The cloud queue may include a playback pointer or other status
information representing the current state of playback on the playback device.
[0067] In some instances, processing system 500 may convert the received audio content into
a format suitable for wake word detection. For instance, if the audio content is provided
to the audio/input component 502 via an analog line-in interface, the processing system
500 may digitize the analog audio (e.g., using a software or hardware-based analog-to-digital
converter). As another example, if the received audio content is received in a digital
form that is unsuitable for analysis, the processing system 500 may transcode the
recording into a suitable format.
[0068] Wake-word detection component 504 analyzes the received audio content to determine
if any wake words are present in the recording. The wake word detection component
504 may analyze the received audio content using a wake word detection algorithm.
Example wake word detection algorithms accept an audio recording as input and provide
an indication of whether a wake word is present in the recording as output.
[0069] In some implementations, the wake word detection component 504 may use the same algorithm
on the recording as utilized by NMDs for detecting wake words in audio recorded via
a microphone. During typical operation, an example NMD constantly records audio and
provides the recorded audio stream into a wake-word detection algorithm, in order
to determine if the recorded audio includes a wake word. Here, instead of providing
audio that was recorded by the microphone of an NMD to the wake word detection algorithm,
the wake word detection component 504 provides the pre-recorded audio content designated
for playback.
[0070] During analysis, the wake word detection component 504 additionally determines where
each wake word occurs in the received audio content. For instance, the wake word detection
component 504 may divide the received audio content into segments of known length.
Then, the wake word detection component 504 can determine where in the recording that
the wake-word occurs by identifying the segment that the wake word was detected. For
example, if each segment is 5 seconds long and the wake word was detected in the fourth
segment, the wake word must be located between 15 and 20 seconds into the recording.
The wake word detection component 504 may record the portions of the audio content
containing a wake word, perhaps using one or more timestamps (e.g., a time stamp indicating
a start time for the wake-word, and perhaps another timestamp indicating a stop time
for that wake word). Such time stamps may define respective time offsets from the
start of an audio recording or from another particular position in the audio recording.
In some instances, the wake word detection component 504 may separate the audio recording
into overlapping segments, to avoid breaking apart a wake word into unrecognizable
portions. Other techniques for determining the location of a wake word within the
audio recording can be utilized as well.
[0071] Within examples, processing system 500 may buffer the received audio content in memory.
For instance, processing system 500 may store the received audio content in a first-in-first-out
buffer
(e.g., a circular buffer). In such implementations, portions of the received audio are stored
in the buffer when they are received, and are removed as they are processed to determine
if the received audio content contains wake words.
[0072] In some instances, the wake word detection component 504 runs multiple wake word
detections algorithms on the received audio content simultaneously (or substantially
simultaneously). As noted above, different voice services (e.g. AMAZON's ALEXA
®, APPLE's SIRI
®, or MICROSOFT's CORTANA
®) each use a different wake word for invoking their respective voice service. To support
multiple services, the wake word detection component 504 may run the received audio
content through the wake word detection algorithm for each supported voice service
in parallel.
[0073] If one or more wake words are detected in the audio content, notification component
506 notifies one or more NMDs (e.g., NMDs 132 and/or 134 of Figure 1). This notification
causes a NMD to disregard the detected wake words when they are played back in the
course of a playback device playing back the audio content that includes the wake
words. For instance, the notification component 506 may send instructions over a network
interface to one or more NMDs to disregard certain wake words or a certain number
of wake words.
[0074] In some instances, the notification component 506 may prevent a NMD from detecting
the wake word as it is played back by the playback device. For instance, the notification
component 506 may instruct the NMD to stop listening for wake words
(e.g., to stop processing recorded audio) for a period of time. Alternatively, the notification
component 506 may instruct the NMD to disable its microphone array temporarily (e.g.,
during the period of time corresponding to when the wake words are expected to be
played by the playback device). As yet another example, the notification component
506 may instruct the NMD to create a listening NULL in the direction of the playback
device using its microphone array, so that the NMD does not detect the wake word.
Other examples are possible as well.
[0075] Alternatively, the NMD may detect the wake word, but the notification component 506
instructs the NMD to suppress its programmed wake response to invoke a voice service
in response to detecting the wake word. For instance, the notification component 506
may instruct the NMD to disregard wake words during certain periods of time or to
disregard all audio during certain periods of time. Other examples are possible as
well.
[0076] When processing the audio content prior to the playback device audibly playing back
that audio content, a processing device (such as a playback device or NMD) can also
determine what sections of the recorded audio content contain the wake words. These
sections can be defined by a time period within the audio content such as a start
and stop time for the wake word
(e.g., a wake word in a podcast starts at 33:52.543 and ends at 33:54.013). When the audio
content is played back, NMDs in the vicinity can be instructed to ignore wake words
during these time periods.
[0077] As another example, the processing system 500 may count the number of wake words
in the audio content (or in a portion of the audio content). For instance, the processing
system 500 might detect three wake words in an example audio content
(e.g., a television show). As noted above, such instances may include any combination of
wake words, including different wake words for different voice services. Then, the
processing system 500 may instruct NMDs in the vicinity to ignore wake words until
they have detected a number of wake words equal to the count
(e.g., to ignore the next three wake words).
[0078] In other examples, processing system 500 may dynamically insert an audio tone or
other marker in the recorded audio content to designate wake words detected in the
audio content. Then, when the audio content is played back by the playback device,
a NMD that detects the audio marker in conjunction with the wake word can be instructed
to ignore that instance of the wake word. If multiple NMDs are in audible range of
the playback device, each NMD that detect a wake word may ignore it in response to
detecting the associated audio marker. In some cases, the audio marker is composed
of audio frequencies that are outside the range of human hearing (e.g., above 20 kHz),
so that the inserted tone is not noticeable by human listeners.
[0079] In some implementations, processing system 500 operates as an intermediary between
a source of audio content and the playback device. For instance, in implementations
where the processing system 500 notifies NMDs using an audio marker, the processing
system modifies the audio content designated for playback by the playback device.
In such implementations, the processing system 500 may receive the audio content from
an audio source
(e.g., via a network or line-in interface), analyze the audio content, and provide the modified
audio content to the playback device for playback, perhaps via a network interface.
[0080] Alternatively, as noted above, processing system 500 is implemented in the playback
device itself. In such instances, after analyzing the audio content, the playback
device may proceed to play back the audio content. Further, as noted above, in some
cases, the playback device may be configured to play back audio content in synchrony
with one or more additional playback devices
(e.g., in a zone group, stereo pair, or surround sound configuration). In such circumstances,
the playback device may provide the (possibly modified) audio content to the one or
more additional playback devices, perhaps via a network interface.
[0081] In further examples, processing system 500 is implemented in a NMD. In such instances,
processing system 500 may cause the NMD itself to ignore the wake words in audio content
when it is played back. Further, the NMD may instruct other NMDs to ignore the wake
word. For instance, NMD 132 may instruct NMD 134 to ignore the wake word. Further,
if a NMD is implemented in a playback device (e.g., playback device 104), the NMD/playback
device may instruct other NMD's (which may themselves be implemented in playback devices)
to ignore the wake words.
f. Example Plurality of Networked Devices
[0082] Figure 6 shows an example plurality of devices 600 that may be configured to provide
an audio playback experience based on voice control. One having ordinary skill in
the art will appreciate that the devices shown in Figure 6 are for illustrative purposes
only, and variations including different and/or additional devices may be possible.
As shown, the plurality of devices 600 includes computing devices 604, 606, and 608;
network microphone devices (NMDs) 612, 614, and 616; playback devices (PBDs) 632,
634, 636, and 638; and a controller device (CR) 622.
[0083] Each of the plurality of devices 600 may be network-capable devices that can establish
communication with one or more other devices in the plurality of devices according
to one or more network protocols, such as NFC, Bluetooth, Ethernet, and IEEE 802.11,
among other examples, over one or more types of networks, such as wide area networks
(WAN), local area networks (LAN), and personal area networks (PAN), among other possibilities.
[0084] As shown, the computing devices 604, 606, and 608 may be part of a cloud network
602. The cloud network 602 may include additional computing devices. In one example,
the computing devices 604, 606, and 608 may be different servers. In another example,
two or more of the computing devices 604, 606, and 608 may be modules of a single
server. Analogously, each of the computing device 604, 606, and 608 may include one
or more modules or servers. For ease of illustration purposes herein, each of the
computing devices 604, 606, and 608 may be configured to perform particular functions
within the cloud network 602. For instance, computing device 608 may be a source of
audio content for a streaming music service.
[0085] As shown, the computing device 604 may be configured to interface with NMDs 612,
614, and 616 via communication path 642. NMDs 612, 614, and 616 may be components
of one or more "Smart Home" systems. In one case, NMDs 612, 614, and 616 may be physically
distributed throughout a household, similar to the distribution of devices shown in
Figure 1. In another case, two or more of the NMDs 612, 614, and 616 may be physically
positioned within relative close proximity of one another. Communication path 642
may comprise one or more types of networks, such as a WAN including the Internet,
LAN, and/or PAN, among other possibilities.
[0086] In one example, one or more of the NMDs 612, 614, and 616 may be devices configured
primarily for audio detection. In another example, one or more of the NMDs 612, 614,
and 616 may be components of devices having various primary utilities. For instance,
as discussed above in connection to Figures 2 and 3, one or more of NMDs 612, 614,
and 616 may be the microphone(s) 220 of playback device 200 or the microphone(s) 310
of network device 300. Further, in some cases, one or more of NMDs 612, 614, and 616
may be the playback device 200 or network device 300. In an example, one or more of
NMDs 612, 614, and/or 616 may include multiple microphones arranged in a microphone
array.
[0087] As shown, the computing device 606 may be configured to interface with CR 622 and
PBDs 632, 634, 636, and 638 via communication path 644. In one example, CR 622 may
be a network device such as the network device 200 of Figure 2. Accordingly, CR 622
may be configured to provide the controller interface 400 of Figure 4. Similarly,
PBDs 632, 634, 636, and 638 may be playback devices such as the playback device 300
of Figure 3. As such, PBDs 632, 634, 636, and 638 may be physically distributed throughout
a household as shown in Figure 1. For illustration purposes, PBDs 636 and 638 may
be part of a bonded zone 630, while PBDs 632 and 634 may be part of their own respective
zones. As described above, the PBDs 632, 634, 636, and 638 may be dynamically bonded,
grouped, unbonded, and ungrouped. Communication path 644 may comprise one or more
types of networks, such as a WAN including the Internet, LAN, and/or PAN, among other
possibilities.
[0088] In one example, as with NMDs 612, 614, and 616, CR 622 and PBDs 632, 634, 636, and
638 may also be components of one or more "Smart Home" systems. In one case, PBDs
632, 634, 636, and 638 may be distributed throughout the same household as the NMDs
612, 614, and 616. Further, as suggested above, one or more of PBDs 632, 634, 636,
and 638 may be one or more of NMDs 612, 614, and 616.
[0089] The NMDs 612, 614, and 616 may be part of a local area network, and the communication
path 642 may include an access point that links the local area network of the NMDs
612, 614, and 616 to the computing device 604 over a WAN (communication path not shown).
Likewise, each of the NMDs 612, 614, and 616 may communicate with each other via such
an access point.
[0090] Similarly, CR 622 and PBDs 632, 634, 636, and 638 may be part of a local area network
and/or a local playback network as discussed in previous sections, and the communication
path 644 may include an access point that links the local area network and/or local
playback network of CR 622 and PBDs 632, 634, 636, and 638 to the computing device
606 over a WAN. As such, each of the CR 622 and PBDs 632, 634, 636, and 638 may also
communicate with each over such an access point.
[0091] In one example, communication paths 642 and 644 may comprise the same access point.
In an example, each of the NMDs 612, 614, and 616, CR 622, and PBDs 632, 634, 636,
and 638 may access the cloud network 602 via the same access point for a household.
[0092] As shown in Figure 6, each of the NMDs 612, 614, and 616, CR 622, and PBDs 632, 634,
636, and 638 may also directly communicate with one or more of the other devices via
communication means 646. Communication means 646 as described herein may involve one
or more forms of communication between the devices, according to one or more network
protocols, over one or more types of networks, and/or may involve communication via
one or more other network devices. For instance, communication means 646 may include
one or more of for example, Bluetooth
™ (IEEE 802.15), NFC, Wireless direct, and/or Proprietary wireless, among other possibilities.
[0093] In one example, CR 622 may communicate with NMD 612 over Bluetooth
™, and communicate with PBD 634 over another local area network. In another example,
NMD 614 may communicate with CR 622 over another local area network, and communicate
with PBD 636 over Bluetooth. In a further example, each of the PBDs 632, 634, 636,
and 638 may communicate with each other according to a spanning tree protocol over
a local playback network, while each communicating with CR 622 over a local area network,
different from the local playback network. Other examples are also possible.
[0094] In some cases, communication means between the NMDs 612, 614, and 616, CR 622, and
PBDs 632, 634, 636, and 638 may change depending on types of communication between
the devices, network conditions, and/or latency demands. For instance, communication
means 646 may be used when NMD 616 is first introduced to the household with the PBDs
632, 634, 636, and 638. In one case, the NMD 616 may transmit identification information
corresponding to the NMD 616 to PBD 638 via NFC, and PBD 638 may in response, transmit
local area network information to NMD 616 via NFC (or some other form of communication).
However, once NMD 616 has been configured within the household, communication means
between NMD 616 and PBD 638 may change. For instance, NMD 616 may subsequently communicate
with PBD 638 via communication path 642, the cloud network 602, and communication
path 644. In another example, the NMDs and PBDs may never communicate via local communications
means 646. In a further example, the NMDs and PBDs may communicate primarily via local
communications means 646. Other examples are also possible.
[0095] In an illustrative example, NMDs 612, 614, and 616 may be configured to receive voice
inputs to control PBDs 632, 634, 636, and 638. The available control commands may
include any media playback system controls previously discussed, such as playback
volume control, playback transport controls, music source selection, and grouping,
among other possibilities. In one instance, NMD 612 may receive a voice input to control
one or more of the PBDs 632, 634, 636, and 638. In response to receiving the voice
input, NMD 612 may transmit via communication path 642, the voice input to computing
device 604 for processing. In one example, the computing device 604 may convert the
voice input to an equivalent text command, and parse the text command to identify
a command. Computing device 604 may then subsequently transmit the text command to
the computing device 606. In another example, the computing device 604 may convert
the voice input to an equivalent text command, and then subsequently transmit the
text command to the computing device 606. The computing device 606 may then parse
the text command to identify one or more playback commands.
[0096] For instance, if the text command is "Play 'Track 1' by 'Artist 1' from 'Streaming
Service 1' in 'Zone 1'," The computing device 606 may identify (i) a URL for "Track
1" by "Artist 1" available from "Streaming Service 1," and (ii) at least one playback
device in "Zone 1." In this example, the URL for "Track 1" by "Artist 1" from "Streaming
Service 1" may be a URL pointing to computing device 608, and "Zone 1" may be the
bonded zone 630. As such, upon identifying the URL and one or both of PBDs 636 and
638, the computing device 606 may transmit via communication path 644 to one or both
of PBDs 636 and 638, the identified URL for playback. One or both of PBDs 636 and
638 may responsively retrieve audio content from the computing device 608 according
to the received URL, and begin playing "Track 1" by "Artist 1" from "Streaming Service
1."
[0097] In yet another example, the computing device 604 may perform some processing to identify
the relevant command or intent of the user and provide information regarding media
content relevant to the voice input to the computing device 606. For example, the
computing device 604 may perform the speech-to-text conversion of the voice input
and analyze the voice input for a command or intent (e.g., play, pause, stop, volume
up, volume down, skip, next, group, ungroup) along with other information about how
to execute the command. The computing device 604 or the computing device 606 may determine
what PBD commands correspond to the command or intent determined by the computing
device 604. The command or intent determined from the voice input and/or other information
related to executing the command may be transmitted from the computing device 604
to the computing device 606. The processing on the computing device 604 may be performed
by an application, a module, add-on software, an integration with the native networked
microphone system software platform, and/or the native networked microphone system
software platform.
[0098] One having ordinary skill in the art will appreciate that the above is just one illustrative
example, and that other implementations are also possible. In one case, operations
performed by one or more of the plurality of devices 600, as described above, may
be performed by one or more other devices in the plurality of device 600. For instance,
the conversion from voice input to the text command may be alternatively, partially,
or wholly performed by another device or devices, such as NMD 612, computing device
606, PBD 636, and/or PBD 638. Analogously, the identification of the URL may be alternatively,
partially, or wholly performed by another device or devices, such as NMD 612, computing
device 604, PBD 636, and/or PBD 638.
f. Example Network Microphone Device
[0099] Figure 7 shows a function block diagram of an example network microphone device 700
that may be configured to be one or more of NMDs 712, 714, and 716 of Figure 7. As
shown, the network microphone device 700 includes a processor 702, memory 704, a microphone
array 706, a network interface 708, a user interface 710, software components 712,
and speaker(s) 714. One having ordinary skill in the art will appreciate that other
network microphone device configurations and arrangements are also possible. For instance,
network microphone devices may alternatively exclude the speaker(s) 714 or have a
single microphone instead of microphone array 706.
[0100] The processor 702 may include one or more processors and/or controllers, which may
take the form of a general or special-purpose processor or controller. For instance,
the processing unit 702 may include microprocessors, microcontrollers, application-specific
integrated circuits, digital signal processors, and the like. The memory 704 may be
data storage that can be loaded with one or more of the software components executable
by the processor 702 to perform those functions. Accordingly, memory 704 may comprise
one or more non-transitory computer-readable storage mediums, examples of which may
include volatile storage mediums such as random access memory, registers, cache, etc.
and non-volatile storage mediums such as read-only memory, a hard-disk drive, a solid-state
drive, flash memory, and/or an optical-storage device, among other possibilities.
[0101] The microphone array 706 may be a plurality of microphones arranged to detect sound
in the environment of the network microphone device 700. Microphone array 706 may
include any type of microphone now known or later developed such as a condenser microphone,
electret condenser microphone, or a dynamic microphone, among other possibilities.
In one example, the microphone array may be arranged to detect audio from one or more
directions relative to the network microphone device. The microphone array 706 may
be sensitive to a portion of a frequency range. In one example, a first subset of
the microphone array 706 may be sensitive to a first frequency range, while a second
subset of the microphone array may be sensitive to a second frequency range. The microphone
array 706 may further be arranged to capture location information of an audio source
(e.g., voice, audible sound) and/or to assist in filtering background noise. Notably,
in some embodiments the microphone array may consist of only a single microphone,
rather than a plurality of microphones.
[0102] The network interface 708 may be configured to facilitate wireless and/or wired communication
between various network devices, such as, in reference to Figure 7, CR 722, PBDs 732-
738, computing device 704-708 in cloud network 702, and other network microphone devices,
among other possibilities. As such, network interface 708 may take any suitable form
for carrying out these functions, examples of which may include an Ethernet interface,
a serial bus interface (e.g., FireWire, USB 2.0, etc.), a chipset and antenna adapted
to facilitate wireless communication, and/or any other interface that provides for
wired and/or wireless communication. In one example, the network interface 708 may
be based on an industry standard (e.g., infrared, radio, wired standards including
IEEE 802.3, wireless standards including IEEE 802.11a, 802.11b, 802.11g, 802.11n,
802.11ac, 802.15, 4G mobile communication standard, and so on).
[0103] The user interface 710 of the network microphone device 700 may be configured to
facilitate user interactions with the network microphone device. In one example, the
user interface 708 may include one or more of physical buttons, graphical interfaces
provided on touch sensitive screen(s) and/or surface(s), among other possibilities,
for a user to directly provide input to the network microphone device 700. The user
interface 710 may further include one or more of lights and the speaker(s) 714 to
provide visual and/or audio feedback to a user. In one example, the network microphone
device 700 may further be configured to playback audio content via the speaker(s)
714.
III. Example Techniques For A Playback Device To Disable A Wake-Response
[0104] As discussed above, embodiments described herein may involve disabling a wake response.
Figure 8 illustrates an example implementation 800 by which a playback device disables
a wake response of one or more NMDs.
a. Receive Data Representing Audio Content For Playback
[0105] At block 802, implementation 802 involves receiving data representing audio content
for playback. For instance, a playback device may receive audio content for playback
by the playback device. Example playback devices include any of playback devices 102,
104, 106, 108, 110, 112, 114, 116, 118, 120, 112, and 124 shown in Figure 1, which
may be implemented as represented by playback device 200 of Figure 2, for instance.
In some implementations, the playback device may include a processing system (e.g.,
processing system 500) and receive the data representing the audio content using an
audio input/output component (such as audio input/output component 502 of Figure 5).
[0106] Example audio content includes one or more audio tracks, a talk show, a film, a television
show, a podcast, an Internet streaming video, among many possible other forms of audio
content. The audio content may include audio content that is accompanied by video
(e.g., an audio track of a video) or audio that is unaccompanied by video.
[0107] The playback device may receive the audio content via an input interface, which may
be a wired or wireless network interface or an analog or digital line-in interface,
among other examples. For instance, the playback device may receive the audio content
from a network source via a network interface over one or more types of networks,
such as wide area networks (WAN), local area networks (LAN), and personal area networks
(PAN), among other possibilities.
[0108] The playback device may receive the data representing the audio content from a local
or remote audio source. For instance, the playback device may receive the audio content
from a local media server or other device on a local area network, from a medium (such
as a CD, DVD, Blu-Ray, flash memory, or hard drive) that is read by the playback device
or by another device in communication with the playback device
(e.g., over a local area network via a network interface), or from data storage on the playback
device itself. The playback device may receive the audio content as an audio content
stream, perhaps from one or more cloud servers. For instance, the playback device
may retrieve an audio content stream from a URL via a network interface. Alternatively,
the playback device may receive the audio content from a line-in interface on the
playback device or on another device in communication with the playback device
(e.g., over a local area network via a network interface).
[0109] In some cases, the playback device may receive audio content in analog format, perhaps
via an analog line-in interface. In such instances, the playback device digitizes
the analog audio
(e.g., using a software or hardware-based analog-to-digital converter) into a format suitable
for processing. Alternatively, a device in communication with the playback device
may receive audio content in analog format, digitize the audio content, and transmit
data representing the audio content to the playback device.
[0110] As noted above, the received audio content is designed for playback by the playback
device. For instance, a control device (such as control device 126 or 128 of Figure
1) may instruct the playback device to play back certain audio content, perhaps by
causing that content to be placed in a playback queue of the playback device. Placing
an audio track or other audio content into such a queue causes the playback device
to retrieve the audio content, perhaps after playback is initiated via a control that
is on the control device or on the playback device itself
(e.g., a Play/Pause button). The playback device may retrieve the audio content from the
local or remote audio source by directing an audio content stream to the playback
device via a network interface or by directing audio content to the playback device
via an analog or digital line-in interface, among other examples.
[0111] Within examples, the playback device may store at least a portion of the received
audio content in memory. For instance, the playback device may buffer received audio
content in a first-in-first-out buffer
(e.g., a circular buffer). In such implementations, portions of the received audio are stored
in the buffer when they are received, and are removed as they are processed which
enables the playback device to determine if the received audio content contains wake
words.
b. Detect, In The Audio Content, One Or More Wake Words
[0112] Referring back to Figure 8, at block 804, implementation 800 involves detecting,
in the audio content, one or more wake-words before the audio content is played back
by the playback device. For instance, the playback device may analyze the received
data representing the audio content to determine if wake words for any voice services
are represented in the audio content, such that when the audio content is played back,
the wake words will be played audibly. As noted above, in some implementations, the
playback device may include a processing system (e.g., processing system 500) and
detect wake words within the audio content using a wake-word detection component (such
as wake-word detection component 504 of Figure 5).
[0113] The playback device may analyze the received audio content using one or more wake
word detection algorithms. Example wake word detection algorithms accept an audio
recording as input and provide an indication of whether a wake word is present in
the recording as output. Many first- and third-party wake word detection algorithms
are known and commercially available. For instance, operators of a voice service may
make their algorithm available for use in third-party devices. Alternatively, an algorithm
may be trained to detect certain wake-words.
[0114] In some implementations, the playback device may use the same or similar algorithm
on the received data representing the audio content as utilized by NMDs for detecting
wake words in audio recorded via a microphone. In such a manner, the playback device
may detect the same or similar wake words in the audio content as a NMD would detect
if the audio content was played back in audible range of the NMDs. However, given
that NMDs typically run wake word detection algorithms on microphone-recorded audio
that was spoken by a wide variety of human voices in varying environmental conditions
(e.g., possibly a noisy household), a wake word algorithm operating on received audio
content without such variability may be even more effective in detecting wake words.
[0115] During analysis, the playback device may determine where each wake word occurs in
the received audio content. After identifying the portions of the audio content that
are determined to include a wake word, the playback device may note these portions
of the audio content using one or more timestamps (e.g., a time stamp indicating a
start time for the wake-word, and perhaps another timestamp indicating a stop time
for that wake word). Ultimately, these time-stamps may be used to disable the wake-response
of one or more NMDs to the wake-words corresponding to each time-stamp.
[0116] In one example, the playback device may divide the received audio content into segments
of known length. Then, the playback device identifies the portion(s) of the audio
content-
i.e., the segments-that include a wake word by identifying the segment(s) in which the
wake word(s) were detected. For example, if each segment is 3 seconds long and the
wake word was detected in the fourth segment, the wake word is located between 9 and
12 seconds into the recording. In some instances, the playback device may separate
the audio recording into overlapping segments, to avoid breaking apart a wake word
into unrecognizable portions (e.g., one section representing "Hey" and another segment
representing "Siri"). Other techniques for determining the location of a wake word
within the audio recording can be utilized as well.
[0117] In some instances, the playback device runs multiple wake word detections algorithms
on the received audio content simultaneously (or substantially simultaneously). As
noted above, different voice services (e.g. AMAZON's ALEXA
®, APPLE's SIRI
®, or MICROSOFT's CORTANA
®) may each use a different wake word for invoking their respective voice service.
Further, some voice services may allow user selection of a preferred wake word or
to configure a custom wake word. To support multiple services (and/or different wake
words), the playback device may run the received audio content through the wake word
detection algorithm for each supported voice service in parallel. For instance, the
playback device may apply, to the audio content before the audio content is played
back by the playback device, a first audio detection algorithm for a first voice service
to detect at least one first wake word for the first voice service and apply, to the
audio content before the audio content is played back by the playback device, a second
audio detection algorithm for a second voice service to detect at least one second
wake word for the second voice service. The playback device may apply additional audio
detection algorithms to the audio content as well, possibly for respective voice services.
c. Cause One Or More NMDs To Disable Its Respective Wake Response To The Detected One
Or More Wake Words During Playback Of The Audio Content
[0118] In Figure 8, at block 806, implementation 800 involves causing one or more networked
microphone devices to disable its respective wake response to the detected one or
more wake-words during playback of the audio content. For instance, the playback device
may cause NMDs that are in audible range of the playback device to disable their respective
wake response to the detected one or more wake-words during playback of the audio
content by the playback device. As noted above, the playback device may implement
a processing system 500 that includes a notification component (e.g., notification
component 506 of Figure 5), and use the notification component to cause the one or
more NMDs to disable its respective wake response to the detected one or more wake-words
during playback of the audio content by the playback device.
[0119] As noted above, the wake response of an NMD refers to its programmed response to
detecting a wake word. When a wake response is enabled, in response to detecting a
wake word, the wake response of an NMD causes the NMD to listen, via a microphone,
for a voice command following the particular wake word. The NMD invokes a voice service
to carry out the voice command. However, when the wake response is disabled, the NMD
might not listen for the voice command and will not invoke the voice service to carry
out the voice command.
[0120] In some implementations, the playback device itself includes an NMD
(e.g., NMD 700 is implemented within the playback device). In such implementations, the
playback device disables the wake response of its own NMD to the detected one or more
wake-words while the playback device is playing back the audio content. For instance,
an instance of processing system 500 implemented in the playback device may notify
the NMD of the one or more wake-words and their corresponding playback times, so as
to cause the NMD to disable the wake response the NMD to the detected one or more
wake-words. For instance, the processing system may notify the NMD by changing a flag
in RAM to disable the wake response, or by messaging the NMD using an internal communications
bus, among other examples. Then, while playing back the audio content, the NMD of
the playback device may record, via a microphone, the audio content being played back
by the playback device, and disable respective wake responses of the NMD to one or
more wake words within the recorded audio content.
[0121] Within example implementations, the playback device may cause all networked microphone
devices within a household to disable their respective wake responses. For instance,
playback device 104 shown in Figure 1 may cause NMDs 132 and 134 to disable their
respective wake responses when playback device 104 plays back audio content containing
one or more wake words. Further, if any of playback devices 102 or 106-124 implement
an NMD, playback device 104 may cause these playback devices to disable their respective
wake responses when playback device 104 plays back audio content containing the one
or more wake words. Yet further, if playback device 104 itself implements an NMD,
or if control device 126 or 128 implement a NMD, playback device 104 may cause these
devices to disable their respective wake responses when playback device 104 plays
back the audio content.
[0122] Alternatively, the playback device may cause a subset of NMDs within a household
to disable their respective wake responses. For instance, the playback device may
cause NMDs within audible range of the playback device to disable their respective
wake responses. Alternatively, the playback device may cause NMDs that have been associated
with the playback device to disable their respective wake responses.
[0123] Audible range may be determined using any suitable technique. In some implementations,
audible range is established based on a playback configuration of the playback device.
For instance, if the playback device is in a synchronous playback configuration with
one or more playback devices, these playback devices may be assumed to be in audible
range of the playback device. Accordingly, if any of these playback devices implement
an NMD, the respective wake-responses of these playback devices are disabled. The
playback device may determine that such NMDs are in audible range of the playback
devices by referring to a configuration of the playback device, which may be stored
in one or more state variables that are synchronized across playback devices in the
household.
[0124] In other examples, audible range is established during a set-up procedure
(e.g. a calibration procedure). During such a set-up procedure, NMDs within the household
may be instructed to listen for an audio signal
(e.g., a tone) that is played back by playback devices in the household. If an NMD can detect
the audio signal via its microphone, that NMD can be assumed to be within audible
range. Playback devices within the household may be instructed to cycle through playback
of the audio signal at different volumes, so as to determine the sets of NMDs that
are in audible range of each playback device at any given volume level. Example calibration
procedures may involve output of a calibration sound, which may also serve as the
audio signal to be detected by NMDs within the household.
[0125] To illustrate, during an example set-up procedure, control device 126 of Figure 1
may instruct playback devices in the Master Bedroom Zone to output an audio signal
(i.e., playback devices 122 and 124). At most volume levels, this output is detected
by NMD 134. However, as the volume level is increased, other NMDs start to detect
the output as well. For instance, and playback device 118 and control device 128 may
each implement an NMD and detect audio signal output at relatively higher volume levels.
As such, via the example set-up procedure, NMD 134 is established as being in audible
range of playback devices 122 and 124 at certain volume range (e.g., 5% - 100%) while
playback device 118 and control device 128 are considered is established as being
in audible range of playback devices 122 and 124 at certain higher volume ranges (e.g.,
volume levels > 80%). This procedure can be repeated for other playback devices and
NMDs within the household.
[0126] In other examples, a NMD may be paired with one or more playback devices based on
a known physical proximity. For instance, referring back to Figure 1, NMD 134 may
be paired with playback device 122 and/or 124 as the NMD for the Master Bedroom zone.
Such pairing may be configured via a user interface on a control device, such as control
device 126 or 128. As another example, NMD 132 may be paired with playback devices
104, 106, 108, 110, 112, and/or 114 on the grounds that NMD 132 is paired with the
Kitchen Zone and the Kitchen zone is known to be in physical proximity to the Dining
Room and/or Living Room zone or on the grounds that the Kitchen zone is formed into
a zone group with the Dining Room or Living Room zone. If a NMD is paired with one
or more playback devices, the NMD may be assumed to be within audible range of these
playback devices.
[0127] Other examples for determining the presence of NMDs that are in proximity to playback
devices of a media playback system are described in: App. No.
15/098,867 filed on April 14, 2016, titled "Default Playback Device Designation;" App. No.
15/098,892 filed on April 14, 2016, titled "Default Playback Devices;" App. No.
15/237, 133, titled "Audio Response Playback;" and App. No.
15/229,855 filed on August 5, 2016, titled "Determining Direction of Networked Microphone Device Relative to Audio Playback
Device."
[0128] As suggested above, in some cases, the playback device is configured to play back
audio in synchrony with one or more additional playback devices, perhaps in a zone
group, stereo pair, or surround sound configuration. Such configurations may extend
the audible range of the playback device, as any NMD in audible range of the playback
device or any of the one or more additional playback devices may falsely trigger in
response to wake words in audio content played back by these playback devices in synchrony.
As such, if the playback device is currently in a synchronous playback configuration
with one or more additional playback devices, the playback device may disable the
respective wake responses of NMDs that are in audible range or otherwise associated
with these additional playback devices.
[0129] In some implementations, the playback device causes the one or more NMDs to disable
its respective wake response to the detected one or more wake words by sending, via
a network interface to the one or more NMDs, instructions that cause the one or more
NMDs to disable their respective wake responses during playback of the received audio
content. As noted above, various devices of a media playback system (e.g., control
devices, playback devices, and NMDs) may be interconnected via a local area network
(e.g., via a local area networked formed by wired or wireless network router 130 of
Figure 1) to permit exchange of instructions and other messaging between the devices
within the household. These devices of a media playback system may each be programmed
to respond to certain instructions from other devices in the system.
[0130] In some examples, such instructions may prevent the one or more NMDs from detecting
the wake word as it is played back by the playback device. For instance, the playback
device may instruct one or more NMDs to stop listening for wake words
(e.g., to stop processing recorded audio) for one or more period of times
(i.e., the periods of time corresponding to when the wake words will be played back by the
playback device, perhaps notated by time-stamps). Alternatively, the playback device
may instruct the one or more NMDs to disable their respective microphones temporarily
(e.g., during the period of times noted above). As yet another example, the playback
device may instruct the one or more NMDs to create a listening NULL in the direction
of the playback device using its microphone array, so that the NMDs do not detect
the wake word. Other examples are possible as well. For instance, shortly before the
playback device plays a portion of the audio content containing a wake-word, the playback
device may send a first message instructing the one or more NMDs to disable wake word
detection. Then, shortly after the playback device plays the portion of the audio
content containing the wake-word, the playback device may send a second message instructing
the one or more NMDs to enable wake word detection.
[0131] To illustrate, Figure 9 depicts example message 900, which a playback device may
send to one or more NMDs to cause the one or more NMDs to disable its respective wake
response to the detected one or more wake words. Message 900 may conform to a specification,
such as the IEEE 802.3 specification (which specifies the structure of an Ethernet
packet and frame). As shown, message 900 includes a preamble 902, which includes a
pattern of alternating bits by which devices on the network (e.g., NMDs, playback
devices, and/or control devices, among others) may synchronize their receiver clocks.
Message 900 also includes a start of frame delimiter (SFD) 904, which marks the end
of the preamble (the first field of an Ethernet packet) and the beginning of the Ethernet
frame portion of the message. Message 900 also includes destination address 906 and
source address 908, which indicate the destination (e.g., a NMD) and the source
(e.g., the playback device). Message 900 further includes a payload 910. The payload 910
includes instructions to cause an NMD
(i.e., the NMD indicated by the destination address 906) to disable its wake response to
one or more wake words. Message 900 further includes a frame check sequence (FCS)
912, which is a cyclic redundancy check values that allows detection of corrupted
data within the frame as received.
[0132] The instructions may be transmitted using two or more Ethernet packets
(e.g., two or more of message 900). For instance, the instructions to one NMD may be divided
across the payloads of two or more instances of messages 900. Further, instructions
to multiple NMDs may each be sent in one or more respective instances of message 900.
Other examples are possible as well.
[0133] By way of example, Figures 10A, 10B, 10C, and 10D illustrate example instructions
1000A, 1000B, 100C, and 100D, which may be transmitted in the payload(s) of one or
more messages to a NMD (e.g., payload 910 of message 900). As shown in Figure 10A,
instructions 1000A includes command 1002A to cause a NMD to disable a wake response
during certain time periods defined by time stamps 1004A, 1006A, 1008A, 1010A. In
some examples, time stamps 1004A and 1006A designate the beginning and end, respectively,
of a time period during which the playback device will play back a portion of the
audio content containing a first wake word. Similarly, time stamps 1008A and 1010A
may designate the beginning and end, respectively, of a time period during which the
playback device will play back a portion of the audio content containing a second
wake word. Instructions 1000A may include further time stamps that define additional
time periods. Alternatively, stamps 1004A, 1006A, 1008A, and 1010A may correspond
toe a playback time for a particular frame of audio, a time corresponding to a system
clock on the sending or receiving device; or a time corresponding to a global clock
that is known to both the NMD and the playback device, among other examples.
[0134] Figure 10B shows instructions 1000B, which include a command 1002B to cause a NMD
to create a listening null in certain directions defined by coordinates 1004B and
1006B. Coordinates 1004B and 1006B indicate the directions of respective playback
devices relative to the NMD. For instance, referring back to Figure 1, an example
instance of instructions 1000B may include coordinates 1004B and 1006B to indicate
the directions of playback devices 122 and 124 relative to NMD 134. In this example,
the coordinates 1004B and 1006B may indicate to NMD 134 that playback device 122 is
0° relative to NMD 134 (
i.e., directly in front of NMD 134) while playback device 122 is 45° to the left relative
to NMD 134. Respective locations of devices within a household relative to one another
may be pre-established by a set-up or configuration procedure.
[0135] Figures 10C and 10D show instructions 1000C and 100D respectively. Instructions 1000C
include a command 1002C to cause the receiving NMD to disable wake word detection.
The playback device may send such instructions shortly before playing back a portion
of the audio content that includes a wake word. Instructions 100D include a command
1002D to cause the receiving NMD to enable wake word detection. The playback device
may send such instructions shortly after playing back the portion of the audio content
that includes the wake word.
[0136] In a further example, the one or more NMDs may detect the wake word, but the playback
device instructs the one or more NMDs to suppress its wake response. For instance,
the playback device may instruct the one or more NMDs to disregard wake words during
certain periods of time or to disregard all audio during certain periods of time.
Other examples are possible as well.
[0137] As another example, the playback device may count the number of wake words in the
audio content (or in a portion of the audio content). For instance, the playback device
might detect three wake words in an example audio content. As noted above, such instances
may include any combination of wake words, including different wake words for different
voice services. Then, the playback device may instruct the one or more NMDs in the
vicinity to ignore wake words until they have detected a number of wake words equal
to the count
(e.g., to ignore the next three wake words).
[0138] Alternatively, the playback device causes the one or more NMDs to disable its respective
wake response to the detected one or more wake words by dynamically modifying the
audio content to incorporate acoustic markers in segments of the audio content. For
instance, the playback device may insert (e.g., mix in) in an audio tone or other
marker in the recorded audio content to designate wake words detected in the audio
content. Then, NMDs can be instructed or pre-programmed to ignore an instance of a
wake word if they detect the audio marker in association with the wake word (e.g.,
shortly before, or concurrently with the wake word). Using such a technique, NMDs
in audible range of the playback device need not be pre-determined or estimated. Rather,
since the acoustic marker(s) are played back with the audio content, NMDs that are
in audible range to detect the audio content (and, as such, may be falsely triggered
by this content) are also in range to detect the acoustic marker(s) and responsively
disable their wake response. If multiple NMDs are in audible range of the playback
device, each NMD that detects a wake word responsively disables its wake response
to the wake word in response to detecting the associated acoustic marker.
d. Play Back The Audio Content
[0139] In Figure 8, at block 808, implementation 800 involves playing back the audio content
via one or more speakers. The playback device plays back the audio content via one
or more audio transducers (e.g., speakers). In some instances, the speakers are co-located
with the playback device in the same housing. Alternatively, the playback device may
provide amplified audio via speaker jacks to one or more separate passive speakers.
As another example, the playback device may play back the audio content by providing
line-level audio to an amplifier, which then in turn provides amplified audio via
speaker jacks to one or more passive speakers.
[0140] As noted above, in some instances, the playback device is configured into a synchronous
playback configuration with one or more additional playback devices. In such instances,
playing back the audio content involves playing back the audio content in synchrony
with the one or more additional playback devices. In some playback configurations
(e.g., stereo pair or surround), each playback device in the playback configuration
plays back a portion of the audio content in synchrony with the other playback devices
in the playback configuration.
[0141] In some implementations, the playback device provides the audio content to one or
more additional playback devices for playback to facilitate synchronous playback of
that audio content with the playback device. In such implementations, the playback
device may operate as a group coordinator for the synchrony group including the playback
device and the one or more additional playback devices. As group coordinator, the
playback device may additionally provide timing information to the one or more additional
playback devices to facilitate the synchrony group scheduling synchronous playback.
The playback device provides the audio content and/or the timing information via a
network interface.
[0142] As noted above, in some cases, the playback device modifies the audio content to
include acoustic markers. In such embodiments, if the playback device is in a synchrony
group, the playback device may provide the modified audio content to other playback
devices in the synchrony group. Each playback device in the synchrony group may then
play back the modified audio content in synchrony with the other playback devices
in the group.
[0143] To illustrate, in one example, playback devices 114 and 122 and 124 are in a zone
group
(i.e., a Kitchen + Master Bedroom zone group) that is configured to play back audio content
in synchrony. After detecting wake words in audio content designated for playback
by the zone group, playback device 114 may modify the audio content to include acoustic
markers to designate the wake words in the audio content. Playback device 114 may
then provide the modified audio content to playback device 122 and/or 124, so as to
facilitate synchronous playback of the modified audio content.
IV. Example Techniques For A NMD To Disable A Wake-Response
[0144] As discussed above, embodiments described herein may involve disabling a wake response.
Figure 11 illustrates an example implementation 1100 by which a NMD disables its wake
response to one or more detected wake words.
a. Receive Data Representing Audio Content For Playback
[0145] At block 1102, implementation 1100 involves receiving data representing recorded
audio content. For instance, NMD may receive audio content for playback by a playback
device. Example NMDs include any of NMDS 132 and 134 shown in Figure 1, which may
be implemented as NMD 700 of Figure 7, for example. Example playback devices include
any of playback devices 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 112, and
124 shown in Figure 1, which may be implemented as represented by playback device
200 of Figure 2, for instance. Further example NMDs may include any of these playback
devices and/or control devices 126 and 128, as such devices may implement an NMD in
addition to their functionality as a playback or control device. The NMD may include
a processing system (e.g., processing system 500) and receive the data representing
the audio content using an audio input/output component (such as audio input/output
component 502 of Figure 5).
[0146] The NMD may receive the audio content via an input interface, which may be a wired
or wireless network interface or an analog or digital line-in interface, among other
examples. For instance, the NMD may receive the audio content from a network source
via a network interface over one or more types of networks, such as WANs, LANs, and
PANs, among other possibilities.
[0147] The NMD may receive the data representing the audio content from a local or remote
audio source. For instance, the NMD may receive the audio content from a local media
server or other device on a local area network, from a medium (such as a CD, DVD,
Blu-Ray, flash memory, or hard drive) that is read by the NMD or by another device
in communication with the NMD
(e.g., a playback device that is connected to the NMD over a local area network via a network
interface), or from data storage on the NMD itself.
[0148] The NMD may receive the audio content as an audio content stream, perhaps from one
or more cloud servers. For instance, the NMD may retrieve an audio content stream
from a URL via a network interface. Alternatively, the NMD may receive the audio content
from a line-in interface on the NMD or on another device in communication with the
NMD
(e.g., a playback device that is connected to the NMD over a local area network via a network
interface).
[0149] In some cases, the NMD may receive audio content in analog format, perhaps via an
analog line-in interface. In such instances, the NMD digitizes the analog audio (e.g.,
using a software or hardware-based analog-to-digital converter) into a format suitable
for processing. Alternatively, a device in communication with the NMD
(e.g., a playback device) may receive audio content in analog format, digitize the audio
content, and transmit data representing the audio content to the playback device.
[0150] As noted above, the received audio content is designed for playback by a playback
device. For instance, a control device (such as control device 126 or 128 of Figure
1) may instruct a playback device to play back certain audio content, perhaps by causing
that content to be placed in a playback queue of the playback device. Placing an audio
track or other audio content into such a queue causes the playback device to retrieve
the audio content, perhaps after playback is initiated via a control on the control
device or on the playback device itself
(e.g., a Play/Pause button). The NMD may have access to this queue
(e.g., the contents of the queue may be shared with the NMD via a LAN or other network).
Given such access, the NMD may retrieve the audio content from the local or remote
audio source by directing an audio content stream to the NMD via a network interface
or by directing audio content to the NMD via an analog or digital line-in interface,
among other examples.
[0151] In some cases, the received audio content is designed for playback by two or more
playback devices. For instance, two or more playback devices may be configured into
a synchrony group
(e.g., a zone group, stereo pair, or surround sound configuration). A particular audio content
may be designated for playback by this synchrony group.
[0152] Within examples, processing system 500 may store at least a portion of the received
audio content in memory. For instance, processing system 500 may buffer received audio
content in a first-in-first-out buffer
(e.g., a circular buffer). In such implementations, portions of the received audio are stored
in the buffer when they are received, and are removed as they are processed to which
enables the playback device to determine if the received audio content contains wake
words.
b. Detect, In The Audio Content, One Or More Wake Words
[0153] In Figure 11, at block 1104, implementation 1100 involves detecting, in the audio
content, one or more wake-words before the audio content is played back by the playback
device. For instance, the NMD may analyze the received data representing the audio
content to determine if wake words for any voice services are represented in the audio
content, such that when the audio content is played back, the wake words will be played
audibly. As noted above, in some implementations, the NMD may include a processing
system (e.g., processing system 500) and detect wake words within the audio content
using a wake-word detection component (such as wake-word detection component 504 of
Figure 5).
[0154] The NMD may analyze the received audio content using one or more wake word detection
algorithms. Example wake word detection algorithms accept an audio recording as input
and provide an indication of whether a wake word is present in the recording as output.
Many first- and third-party wake word detection algorithms are known and commercially
available. For instance, operators of a voice service may make their algorithm available
for use in third-party devices. Alternatively, an algorithm may be trained to detect
certain wake-words.
[0155] In regular operation, a NMD will listen for sound (e.g., human voices) in a household
or other environment via a microphone and run audio recordings of that sound through
a wake word detection algorithm to detect if the sound contained a wake word. In this
process, the NMD may use the same or similar algorithm as used by the NMD for detecting
wake words spoken by human voices. However, instead of the input to the algorithm
being audio recorded via a microphone, the input is audio content for playback by
a playback device. In such a manner, the NMD may detect the same or similar wake words
in the audio content as a NMD would detect if the audio content was played back in
audible range of the NMDs. However, given that NMDs typically run wake word detection
algorithms on microphone-recorded audio that was spoken by a wide variety of human
voices in varying environmental conditions (e.g., possibly a noisy household), a wake
word algorithm operating on received audio content without such variability may be
even more effective in detecting wake words.
[0156] During analysis, the NMD may determine where each wake word occurs in the received
audio content. After identifying the portions of the audio content that are determined
to include a wake word, the NMD may note these portions of the audio content using
one or more timestamps (e.g., a time stamp indicating a start time for the wake-word,
and perhaps another timestamp indicating a stop time for that wake word). Ultimately,
these time-stamps may be used to disable the wake-response of the NMDs to the wake-words
corresponding to each time-stamp.
[0157] In one example, the NMD may divide the received audio content into segments of known
length. Then, the NMD may identify the portion(s) of the audio content-
i.e., the segments-that include a wake word by identifying the segment(s) in which the
wake word(s) were detected. For example, if each segment is 4 seconds long and the
wake word was detected in the sixth segment, the wake word is located between 20 and
24 seconds into the recording. In some instances, the NMD may separate the audio recording
into overlapping segments, to avoid breaking apart a wake word into unrecognizable
portions (e.g., one section representing "Hey" and another segment representing "Alexa").
Other techniques for determining the location of a wake word within the audio recording
can be utilized as well.
[0158] In some instances, the NMD runs multiple wake word detections algorithms on the received
audio content concurrently. As noted above, different voice services (
e.g. AMAZON's ALEXA
®, APPLE's SIRI
®, or MICROSOFT's CORTANA
®) may each use a different wake word for invoking their respective voice service.
Further, each voice service may support multiple wake words and/or custom wake words.
To an effort to support multiple voice services, the NMD may run the received audio
content through the wake word detection algorithm for each supported voice service
in parallel, so as to detect different wake words that might be represented in the
audio content. For instance, the NMD may apply a first audio detection algorithm for
a first voice service to detect at least one first wake word for the first voice service
and apply a second audio detection algorithm for a second voice service to detect
at least one second wake word for the second voice service. Before the audio content
is played back by the playback device, the NMD may apply additional audio detection
algorithms to the audio content as well, possibly for respective voice services.
c. Disable Wake Response To The Detected One Or More Wake Words During Playback Of The
Audio Content
[0159] In Figure 11, at block 1106, implementation 1100 involves disabling a wake response
to the detected one or more wake-words during playback of the audio content. For instance,
the NMD may disable its wake response to the one or more wake-words that were detected
in the audio content when the audio content is played back audibly by the playback
device.
[0160] As noted above, the wake response of an NMD refers to its programmed response to
detecting a wake word. When a wake response is enabled, in response to detecting a
wake word, the wake response of an NMD causes the NMD to listen, via a microphone,
for a voice command following the particular wake word. The NMD invokes a voice service
to carry out the voice command. However, when the wake response is disabled, the NMD
might not listen for the voice command and will not invoke the voice service to carry
out the voice command.
[0161] In some implementations, the NMD disables its wake response by preventing the NMD
from detecting the wake word as it is played back by the playback device. For instance,
the NMD may stop listening for wake words
(e.g., to stop processing recorded audio) for one or more period of times
(i.e., the periods of time corresponding to when the wake words will be played back by the
playback device, perhaps notated by time-stamps). Alternatively, the NMD may disable
its microphone temporarily (e.g., during the period of times noted above). As yet
another example, the NMD may create a listening NULL in the direction of the playback
device using its microphone array, so that the NMD does not detect the wake word.
Other examples are possible as well.
[0162] In further examples, the NMD detects the wake word as it is played back by the playback
device, but suppresses its wake response to that detected wake word. For instance,
the NMD may disregard wake words during periods of time or to disregard all audio
during certain periods of time. Other examples are possible as well.
[0163] As another example, the NMD may count the number of wake words in the audio content
(or in a portion of the audio content). For instance, the NMD might detect three wake
words in an example audio content. As noted above, such instances may include any
combination of wake words, including different wake words for different voice services.
Then, the NMD may then disable its wake response until it detected a number of wake
words equal to the count
(e.g., by ignoring the next three wake words).
[0164] Alternatively, the NMD disable its respective wake response to the detected one or
more wake words by modifying the audio content to incorporate acoustic markers in
segments of the audio content. For instance, the NMD may insert (e.g., mix in) in
an audio tone or other marker in the recorded audio content to designate wake words
detected in the audio content. Then, given that the NMD is programmed to disable its
wake response in response to detecting such an audio marker, the NMD will automatically
suppress the wake response when detecting the wake words in the audio content played
back by the playback device.
[0165] In some examples, the NMD may cause one or more additional networked microphone devices
to disable their respective wake responses to the detected wake word(s) when the wake
word(s) are played back by the playback device. For instance, referring to Figure
1, NMD 132 may cause NMD 134 to disable its wake response. Moreover, any of the playback
devices and/or control devices in the household may implement a NMD, and NMD 132 may
also disable the wake response of any of these playback devices.
[0166] The NMD may disable a particular set of NMDs within a household. In some cases, the
set of NMDs that have their wake responses disabled is based on a zone or zone group
configuration of a media playback system. For instance, if the NMD is associated with
a particular zone,
(e.g., if NMD 132 is associated with the Kitchen zone), the NMD may cause the respective
wake responses of any NMDs that are also associated with that same zone to be disabled.
These NMDs can include various devices that implement NMDs (e.g., playback devices),
as well as dedicated NMDs. Further, if the particular zone that the NMD is associated
with is joined with one or more additional zones in a zone group, the NMD may cause
the respective wake responses of any NMDs that are also associated with the one or
more additional zone to be also disabled. As indicated above, an association may be
created between a NMD and a zone of a media playback system, perhaps to facilitate
co-operation in a specific room of a household
(e.g., a Kitchen zone).
[0167] Alternatively, the particular additional NMDs that have their wake responses disabled
is based on the audible range of the playback device(s) that are playing back the
audio content that includes the wake words. Audible range may be determined using
any suitable technique. In some implementations, audible range is established based
on an association of the NMD with one or more zones, as indicated above. In other
examples, audible range is established during a set-up procedure
(e.g. a calibration procedure), as described above in section III. Audible range established
by zone configurations and/or set-up procedures can be stored as one or more state
variables and shared among devices within a network (e.g., a LAN established by router
130 in the household shown in Figure 1). By having access to such information, the
NMD can determine the set of NMDs that will be in audible range of the playback device(s)
that will be playing back the audio content, and cause the respective wake responses
of these set of NMDs to be disabled.
[0168] To illustrate, in one example, NMD 132 in Figure 1 detects one or more wake-words
in a given audio content designed for playback by playback device 114 in the Kitchen
zone. Accordingly, NMD 132 disables its wake response to these wake words. Since playback
device 114 is also an NMD, NMD 132 disables the wake response of playback device 114.
Moreover, since the Kitchen zone is in a zone group with the Dining Room zone, NMD
132 also disables the wake response of playback device 112, which is also an NMD,
so that when the audio content is played back in the Dining Room zone in synchrony
with the Kitchen zone, the NMD of playback device 112 does not falsely trigger.
[0169] In another example, NMD 134 in Figure 1 detects one or more wake-words in a given
audio content designed for playback by playback devices 122 and 124 in the Master
Bedroom zone. Accordingly, NMD 134 disables its wake response to these wake words.
Since playback device 116 implements an NMD and has been pre-established to be in
audible range of playback devices 122 and 124 at their current volume level, NMD 134
also disables the wake response of playback device 116. NMD 134 is aware that playback
device 116 is in audible range of playback devices 122 and 124 at their current volume
level from one or more state variables shared with NMD 134 via a LAN created by router
130. Such state variables indicate to NMD 134 that status of various aspects of media
playback system 100, such as the current playback configuration of playback devices
122 and 124
(e.g., stereo pair), their current volume level, and which NMDs have been determined to
be within audible range of these playback devices in this playback configuration and
at this volume level.
[0170] The NMD may cause the one or more additional NMDs to disable their respective wake
responses using any suitable technique. The NMD may implement a processing system
500 that includes a notification component (e.g., notification component 506 of Figure
5), and use the notification component to cause a set of one or more NMDs to disable
its respective wake response to the detected one or more wake-words during playback
of the audio content by the playback device.
[0171] In some implementations, the NMD causes the one or more additional NMDs to disable
their respective wake response to the detected one or more wake words by sending,
via a network interface to the one or more NMDs, instructions that cause the one or
more NMDs to disable their respective wake responses during playback of the received
audio content. As noted above, various devices of a media playback system (e.g., control
devices, playback devices, and NMDs) may be interconnected via a local area network
(e.g., via a local area networked formed by wired or wireless network router 130 of
Figure 1) to permit exchange of instructions and other messaging between the devices
within the household. These devices of a media playback system may each be programmed
to respond to certain instructions from other devices in the system. Example messages
and instructions are described above in connection with Figure 9 and 10A, 10B, 10C,
and 10D.
[0172] Alternatively, the NMD causes the one or more NMDs to disable its respective wake
response to the detected one or more wake words by modifying the audio content to
incorporate acoustic markers in segments of the audio content. Using such a technique,
NMDs in audible range of the playback device need not be pre-determined or estimated.
Rather, since the acoustic marker(s) are played back with the audio content, NMDs
that are in audible range to detect the audio content (and, as such, may be falsely
triggered by this content) are also in range to detect the acoustic marker(s) and
responsively disable their wake response. If multiple NMDs are in audible range of
the NMD, each NMD that detects a wake word responsively disables its wake response
to the wake word in response to detecting the associated acoustic marker.
[0173] In some implementations, such as those in which the NMD modifies the audio content,
the NMD provides the audio content to the playback device. In such instances, the
NMD may operate as an intermediary between the source of audio content and the playback
device. Transmitting the audio content to the playback device may cause the playback
device to play back the audio content, as the playback device may be configured to
play back received audio content. The NMD may provide the audio content to the playback
device via any suitable communication interface, such as a network interface. If multiple
playback devices are configured to play back the audio content, the NMD may provide
the audio content to all of the playback devices, or the NMD may transmit the audio
content to a subset of the playback devices
(e.g., a group coordinator) which then distributes the audio content to other playback devices
in the group, perhaps along with timing information to schedule synchronous playback.
[0174] To illustrate, in one example, playback devices 112 and 124 are in a zone group
(i.e., a Kitchen + Dining Room zone group) that is configured to play back audio content
in synchrony. After detecting wake words in audio content designated for playback
by the zone group, NMD 132 may modify the audio content to include acoustic markers
to designate the wake words in the audio content. Playback device 132 may then provide
the modified audio content to playback device 112 and/or 114, so as to facilitate
synchronous playback of the modified audio content.
d. Detect The Played Back Audio Content
[0175] At block 1108, implementation 1100 involves detecting the played back audio content
via a microphone. For instance, while the playback device(s) are playing back the
audio content that includes the one or more detected wake words, the NMD may detect
the played back audio content via a microphone. In a configuration in which the wake
response of the NMD is enabled, detecting the portions of the played back audio content
that include wake words would trigger the wake response of the NMD. However, since
the NMD disabled the wake response for the one or more wake words in the audio content,
the wake response is not triggered.
[0176] In some implementations, a playback device implements the NMD. In such examples,
the playback device may play back the received audio content via one or more speakers.
In some instances, the speakers are co-located with the NMD in the same housing. Alternatively,
the playback device may provide amplified audio via speaker jacks to one or more separate
passive speakers. As another example, the playback device may play back the audio
content by providing line-level audio to an amplifier, which then in turn provides
amplified audio via speaker jacks to one or more passive speakers.
[0177] In some instances, an NMD is configured into a synchronous playback configuration
with one or more additional playback devices. In such instances, playing back the
audio content involves playing back the audio content in synchrony with the one or
more additional playback devices. In some playback configurations (e.g., stereo pair
or surround), each playback device in the playback configuration plays back a portion
of the audio content in synchrony with the other playback devices in the playback
configuration.
[0178] As noted above, in some implementations, the NMD provides the audio content to one
or more playback devices for playback. In some examples, the NMD provides the audio
content to the one or more playback devices to facilitate synchronous playback of
that audio content with the NMD. In such implementations, the NMD may operate as a
group coordinator for the synchrony group including the NMD and the one or more additional
playback devices. As group coordinator, the NMD may additionally provide timing information
to the one or more additional playback devices to facilitate the synchrony group scheduling
synchronous playback. The playback device provides the audio content and/or the timing
information via a network interface.
V. Example Techniques For A Computing System To Disable A Wake-Response
[0179] As discussed above, embodiments described herein may involve disabling a wake response.
Figure 12 illustrates an example implementation 1200 by which a computing system disables
a wake response of one or more NMDs to one or more wake words in audio content. In
various embodiments, the computing system may be a cloud server. Alternatively, the
computing system may be a local processing device
(e.g., a device that is connected to the same LAN as a media playback system). The computing
system may implement a playback device or a NMD
a. Receive Data Representing Recorded Audio Content
[0180] At block 1202, implementation 1200 involves receiving data representing recorded
audio content. For instance, a computing system may receive audio content for playback
by a playback device. Example playback devices include any of playback devices 102,
104, 106, 108, 110, 112, 114, 116, 118, 120, 112, and 124 shown in Figure 1, which
may be implemented as represented by playback device 200 of Figure 2, for instance.
The processing system may include a processing system (e.g., processing system 500)
and receive the data representing the audio content using an audio input/output component
(such as audio input/output component 502 of Figure 5). The computing system may receive
the audio content using any suitable technique, such as the techniques discussed above
in sections II, III and IV.
b. Detect, In The Audio Content, One Or More Wake Words
[0181] In Figure 12, at block 1204, implementation 1200 involves detecting, in the audio
content, one or more wake-words before the audio content is played back by the playback
device. For instance, the computing system may analyze the received data representing
the audio content to determine if wake words for any voice services are represented
in the audio content, such that when the audio content is played back, the wake words
will be played audibly. As noted above, in some implementations, the computing system
may include a processing system (e.g., processing system 500) and detect wake words
within the audio content using a wake-word detection component (such as wake-word
detection component 504 of Figure 5). The computing system may detect the wake-words
using any suitable technique, such as the techniques discussed above in sections II,
III and IV.
c. Cause One Or More NMDs To Disable Its Respective Wake Response To The Detected One
Or More Wake Words During Playback Of The Audio Content
[0182] In Figure 12, at block 1206, implementation 1200 involves causing one or more networked
microphone devices to disable its respective wake response to the detected one or
more wake-words during playback of the audio content. For instance, the computing
system may cause NMDs that are in audible range of the playback device to disable
their respective wake response to the detected one or more wake-words during playback
of the audio content by the playback device. As noted above, the computing system
may implement a processing system 500 that includes a notification component (e.g.,
notification component 506 of Figure 5), and use the notification component to cause
the one or more NMDs to disable its respective wake response to the detected one or
more wake-words during playback of the audio content by the playback device. The computing
system may cause the one or more NMDs to disable its respective wake response to the
detected one or more wake-words during playback of the audio content using any suitable
technique, such as the techniques discussed above in sections II, III and IV.
VI. Example Techniques To Suppress A Wake Response
[0183] As discussed above, embodiments described herein may involve suppressing a wake response.
Figure 13 illustrates an example implementation 1300 by which a NMD disables a wake
response.
a. Receive Instruction To Disable Wake Response Of A NMD To One Or More Wake Words
[0184] At block 1302, implementation 1300 involves receiving an instruction to disable a
wake response of an NMD to one or wake words. For instance, an NMD
(e.g., NMD 132) may receive an instruction from another NMD, a playback device, a computing
system, or any other device. The instruction causes the NMD to disable its wake response
to one or more wake words that are represented in certain audio content that has been
designated for playback by one or more playback devices.
[0185] In some implementations, the received instruction to disable the wake response of
the NMD to one or wake words is implicit. For example, the NMD may be instructed to
not detect the wake word as it is played back by the playback device, perhaps by instructing
the NMD to stop listening for wake words, by disabling the microphone array of the
NMD for a period of time, or by creating a listening NULL in the direction of the
playback device, among other examples. Alternatively, the NMD may detect the wake
word, but be instructed to suppress its programmed wake response to invoke a voice
service in response to detecting the wake word, perhaps by disregarding wake words
during certain periods of time or by disregarding all audio during certain periods
of time. The NMD may be instructed using any suitable instruction, such as those discussed
above in sections II, III and IV.
[0186] Alternatively, the received instruction is implicit. For instance, as described above,
audio content may be modified to include acoustic markers designating wake words.
In such implementations, the received instruction may be in the form of an acoustic
marker. In some cases, the received instruction may be an instruction to disable the
NMD's wake response when an acoustic marker is detected.
b. Detect Audio Content Being Played Back By One Or More Playback Devices
[0187] In Figure 13, at block 1304, implementation 1300 involves detecting audio content
being played back by one or more playback devices. For instance, the NMD may detect
audio content being played back by a single playback device via a microphone. Alternatively,
the NMD may detect audio content being played back by two or more devices
(e.g., in synchrony).
c. Determine That The Detected Audio Content Includes One Or More Wake Words
[0188] In Figure 13, at block 1306, implementation 1300 involves determining that the detected
audio content includes one or more wake words. For instance, the NMD may determine
that the detected audio content includes one or more wake words by running the detected
audio content through one or more wake word detection algorithms. In some instances,
the NMD may run the detected audio content through multiple wake word detection algorithms
(e.g., wake word detection algorithms for different wake words, possibly for different
voice services). Example wake word detection algorithms are described throughout this
disclosure.
d. Disable The Wake Response Of The NMD To The One Or More Wake Words In The Detected
Audio Content
[0189] In Figure 13, at block 1308, implementation 1300 involves disabling the wake response
of the NMD to the one or more wake words in the detected audio content. As noted above,
the wake response of an NMD refers to its programmed response to detecting a wake
word. When a wake response is enabled, in response to detecting a wake word, the wake
response of an NMD causes the NMD to listen, via a microphone, for a voice command
following the particular wake word. The NMD invokes a voice service to carry out the
voice command. However, when the wake response is disabled, the NMD might not listen
for the voice command and will not invoke the voice service to carry out the voice
command.
VII. Conclusion
[0190] The description above discloses, among other things, various example systems, methods,
apparatus, and articles of manufacture including, among other components, firmware
and/or software executed on hardware. It is understood that such examples are merely
illustrative and should not be considered as limiting. For example, it is contemplated
that any or all of the firmware, hardware, and/or software aspects or components can
be embodied exclusively in hardware, exclusively in software, exclusively in firmware,
or in any combination of hardware, software, and/or firmware. Accordingly, the examples
provided are not the only way(s) to implement such systems, methods, apparatus, and/or
articles of manufacture.
[0191] The specification is presented largely in terms of illustrative environments, systems,
procedures, steps, logic blocks, processing, and other symbolic representations that
directly or indirectly resemble the operations of data processing devices coupled
to networks. These process descriptions and representations are typically used by
those skilled in the art to most effectively convey the substance of their work to
others skilled in the art. Numerous specific details are set forth to provide a thorough
understanding of the present disclosure. However, it is understood to those skilled
in the art that certain embodiments of the present disclosure can be practiced without
certain, specific details. In other instances, well known methods, procedures, components,
and circuitry have not been described in detail to avoid unnecessarily obscuring aspects
of the embodiments. Accordingly, the scope of the present disclosure is defined by
the appended claims rather than the forgoing description of embodiments.
[0192] When any of the appended claims are read to cover a purely software and/or firmware
implementation, at least one of the elements in at least one example is hereby expressly
defined to include a tangible, non-transitory medium such as a memory, DVD, CD, Blu-ray,
and so on, storing the software and/or firmware.