Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
VOICE CONTROL OF A MEDIA PLAYBACK SYSTEM
Document Type and Number:
WIPO Patent Application WO/2017/147081
Kind Code:
A1
Abstract:
A voice input comprising a command word, one or more media variable instances, and one or more zone variable instances is received. A media playback system command corresponding to the command word is determined. Media content corresponding to the one or more media variable instances is identified. The media playback system may execute the media playback system command on the media content based on the one or more zone variable instances.

Inventors:
JARVIS SIMON (US)
MILLINGTON NICHOLAS A J (US)
CORBIN KEITH (US)
PLAGGE MARK (US)
KADRI ROMI (US)
BUTTS CHRISTOPHER (US)
CHEN YEAN-NIAN WILLY (US)
Application Number:
PCT/US2017/018739
Publication Date:
August 31, 2017
Filing Date:
February 21, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SONOS INC (US)
International Classes:
H04R3/00; G11B27/00; H04R3/12
Foreign References:
JP2010141748A2010-06-24
JP2004354721A2004-12-16
JP2014137590A2014-07-28
US20090005893A12009-01-01
JP2004347943A2004-12-09
JP2013037148A2013-02-21
JP2014071138A2014-04-21
Other References:
JACOB SIEGAL, HOW TO START USING GOOGLE APP VOICE COMMANDS TO MAKE YOUR LIFE EASIER, Retrieved from the Internet
See also references of EP 3420737A4
Attorney, Agent or Firm:
PATEL, Neilesh (US)
Download PDF:
Claims:
CLAIMS

We Claim:

1. A method for a computing device, the method comprising:

receiving a voice input comprising:

a command word,

one or more media variable instances, and

one or more zone variable instances;

determining a media playback system command corresponding to the command word; identifying media content corresponding to the one or more media variable instances; and causing the media playback system to execute the media playback system command on the media content based on the one or more zone variable instances.

2. The method of claim 1, further comprising:

before determining that the media playback system command corresponds to the command word, determining that the voice input corresponds to music control,

wherein the media playback system command corresponding to the command word is determined based on available commands corresponding to music control.

3. The method of claim 1 or 2, further comprising:

determining one or more media items from the identified media content; and

transmitting an identifier indicating a network storage location of the one or more media items.

4. The method of any preceding claim, further comprising:

identifying the command word in the voice input based on the command word being in a first position;

identifying the one or more media variable instances in the voice input based on the one or more media variable instances being a second position; and

identifying the one or more zone variable instances in the voice input based on the one or more zone variable instances being in a third position.

5. The method of any preceding claim, wherein determining the media playback system command corresponding to the command word comprises: determining an intent corresponding to the command word; and

determining the media playback system command corresponding to the intent.

6. The method of any preceding claim, wherein the one or more zone variable instances of the received voice input indicate one or more zones of a media playback system, the one or more zones comprising one or more playback devices.

7. The method of any preceding claim, wherein causing the media playback system to execute the media playback system command on the media content comprises:

transmitting, from the computing device to the media playback system, a message comprising command information identifying:

the media playback system command,

media information identifying media content corresponding to the one or more media variable instances, and

one or more zone identifiers corresponding to the one or more zone variable instances.

8. The method of any preceding claim, wherein the received one or more media variable instances comprises an indication of media content, the method further comprising:

identifying at least one content type based on the received indication;

determining at least one music service from a plurality of music services that supports the at least one content type;

based on the at least one music service supporting the at least one content type, causing the at least one music service to transmit audio content associated with the content type.

9. The method of claim 8, wherein the indication for content is received via a network microphone device.

10. The method of claim 8 or 9, wherein determining the at least one music service comprises at least one of:

determining a confidence metric corresponding to the at least one music service from the plurality of music services; and

determining the at least one music service comprises determining whether a confidence level condition is satisfied.

11. The method of claim 10, wherein the confidence metric is based on at least one of:

a history of accesses to a music service of the plurality of music services; and

a particular location of use of the particular music services.

12. The method of one of claims 8 to 11, further comprising:

receiving a second indication for content;

identifying at least one content type based on the received indication; and

when it is determined that no one music services of the plurality of music services supports the at least one content type, causing an error state to be triggered.

13. The method of one of claims 8 to 12, wherein the content type is selected from the group consisting of Artist, Genre, Song, Album, and Radio Station.

14. The method of any preceding claim, wherein determining the at least one music service comprises accessing a look-up table containing entries for the available content for the plurality of streaming services.

15. The method of any preceding claim, further comprising querying only music services with which the user has registered from the plurality of music services.

16. The method of any preceding claim, further comprising, after identifying the content type;

asking the user one or more questions to further specify the content type indicated in the initial indication for content;

receiving a further user input indicating a more specific content type; and

determining the one or more music services based on the more specific content type.

17. The method of any preceding claim, further comprising:

determining whether the voice input was received from a registered user of the media playback system; and

when it is determined that the voice command was received from a registered user, determining the media playback system command further based on information in a user profile for the registered user.

18. The method of claim 17, wherein the media playback system command instructs the media playback system to obtain the media content from a preferred media source of the registered user.

19. The method of claim 17 or 18, wherein the media playback system command comprises instructions to:

configure the media playback system with one or more of the registered user's preferred playback settings; and

cause the media playback system to play the media content via media playback system with the registered user's preferred playback settings.

20. The method of claim 19, wherein the registered user's preferred playback settings comprise one or more of:

a preferred playback volume and

a preferred audio equalization setting.

21. The method of claim one of claims 17 to 20, further comprising:

receiving a second voice input instructing the media playback system to modify a playback setting, and

determining a media playback system command instructing the media playback system to modify the playback setting for one or more media playback devices of the media playback system.

22. The method of one of claims 17 to 21, further comprising:

if the voice command was not received from a registered user, determining whether the voice command was received from a guest user; and

if the voice command was received from a guest user:

assigning a restriction setting for the guest user;

configuring an instruction for the media playback system based on content from the voice command and the assigned restriction setting for the guest user; and

sending the instruction to the media playback system.

23. The method of one of claims 17 to 22, further comprising sending the media playback system command to one or more playback devices of the media playback system; wherein the media playback system command causes the media playback system to play the media content via one or more media playback devices of the media playback system.

24. The method of any preceding claim, further comprising:

obtaining acoustics of an environment in which a playback device is located;

identifying a network microphone device in an environment of the playback device;

providing the acoustics to the network microphone device; and

applying, by the network microphone device, the acoustics to a voice input received by the network microphone device.

25. The method of claim 24, wherein the acoustics of the environment are obtained in a calibration phase in which:

one or more playback devices output one or more tones,

the microphone of the network device receives the tones output by the one or more playback devices; and

the received tones are analyzed to determine the acoustics of the environment.

26. The method of claim 24 or 25, further comprising:

providing audio content being played back in the environment by the playback device to the network microphone device;

applying, by the microphone device, the provided audio content to the voice input received by the network microphone device.

27. The method of one of claims 24 to 26, wherein the identified network microphone device is at least one of:

bonded to the playback device; and

in a same zone as the playback device.

28. The method of one of claims 24 to 27 wherein the playback device that sends the acoustics to the microphone device is the playback device of a plurality of playback devices in the media playback system that is closest to the microphone device.

29. The method of one of claims 24 to 28, further comprising: receiving, from the network microphone device, an indication of direction of the voice input; and

adjusting directionality of audio content played by the playback device based on the received indication of direction of the voice input.

30. The method of one of claims 24 to 29, wherein causing the network microphone device to apply the acoustics to voice input received by the network microphone device comprises causing the playback device to apply a filter based on the acoustics to the received voice input.

31. The method of one of claims 24 to 30, wherein providing the acoustics to the microphone device comprises one of:

sending the acoustics to the microphone device as a message; and

providing the microphone device access to the acoustics.

32. A tangible, non-transitory computer-readable medium storing instructions, that when executed by one or more processors of a computing device, cause the computing device to perform the method of any preceding claim.

33. A computing device, comprising:

one or more processors;

memory storing instructions that when executed by the one or more processors cause the computing device to perform the method of one of claims 1 to 32.

Description:
Voice Control of a Media Playback System

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of priority under PCT Article 8 to (i) U.S. Non- Provisional Patent Application No. 15/223,218, filed on July 29, 2016, and entitled "Voice Control of a Media Playback System", (ii) U.S. Non-Provisional Patent Application No. 15/098,718, filed on April 14, 2016, and entitled "Music Service Selection", (iii) U.S. Non-Provisional Patent Application No. 15/098,805, filed on April 14, 2016, and entitled "Room-Corrected Voice Detection", (iv) U.S. Non-Provisional Patent Application No. 15/131,776, filed on April 18, 2016, and entitled "Action based on User ID", (v) U.S. Provisional Application No. 62/312,350, filed on March 23, 2016, and entitled "Voice Control of a Media Playback System", (vi) U.S. Provisional Application No. 62/298,418, filed on February 22, 2016, and entitled "Audio Response Playback", (vii) U.S. Provisional Application No. 62/298,425, filed on February 22, 2016, and entitled "Music Service Selection", (vii) U.S. Provisional Application No. 62/298,350, filed on February 22, 2016, and entitled "Metadata Exchange Involving a Networked Playback System and a Networked Microphone System", (viii) U.S. Provisional Application No. 62/298,388, filed on February 22, 2016, and entitled "Handling of Loss of Pairing Between Networked Devices," (ix) U.S. Provisional Application No. 62/298,410, filed on February 22, 2016, and entitled "Default Playback Device(s)", (x) U.S. Provisional Application No. 62/298,433, filed on February 22, 2016, and entitled "Room-Corrected Voice Detection", (xi) U.S. Provisional Application No. 62/298,439, filed on February 22, 2016, and entitled "Content Mixing", and (xii) U.S. Provisional Application No. 62/298,393, filed on February 22, 2016, and entitled "Action Based on User ID." The contents of each of these applications are incorporated herein by reference in their entirety.

FIELD OF THE DISCLOSURE

[1] 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

[2] 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.

[3] 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.

BRIEF DESCRIPTION OF THE DRAWINGS

[4] 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:

[5] Figure 1 shows an example media playback system configuration in which certain embodiments may be practiced;

[6] Figure 2 shows a functional block diagram of an example playback device according to aspects described herein;

[7] Figure 3 shows a functional block diagram of an example control device according to aspects described herein;

[8] Figure 4 shows an example controller interface according to aspects described herein;

[9] Figure 5 shows an example plurality of network devices according to aspects described herein;

[10] Figure 6 shows a function block diagram of an example network microphone device according to aspects described herein;

[11] Figure 7 is an example flow diagram related to providing acoustics of an environment to a network microphone device;

[12] Figure 8 is another example flow diagram related to providing acoustics of an environment to a network microphone device;

[13] Figure 9 is an example flow diagram related to interpreting voice input received by the network microphone device;

[14] Figure 10 is an example flow diagram related to determining acoustics of an

environment;

[15] Figure 11 is another example flow diagram related to applying directionality to audio content played by a playback device; [16] Figure 12 shows a flow diagram of an example method of music control according to aspects described herein;

[17] Figures 13A-13D show example user interfaces of a configuration process according to aspects described herein;

[18] Figure 14 shows an example method according to some embodiments;

[19] Figure 15 shows another example method according to some embodiments;

[20] Figure 16 is an example flow diagram related to identifying a streaming music service via a network microphone device; and

[21] Figure 17 is another example flow diagram related to identifying a streaming music service via a network microphone device.

[22] 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

[23] In general, a voice command may be a command to control any of the media playback system controls discussed herein. For example, a voice command may be a command for the media playback system to play media content via one or more playback devices of the media playback system. In another example, the voice command may be a command to modify a playback setting for one or more media playback devices of the media playback system. Playback settings may include, for example, playback volume, playback transport controls, music source selection, and grouping, among other possibilities.

[24] In one aspect, examples described herein relate to providing to a network microphone device (NMD) acoustics of an environment in which the NMD operates. The NMD may use the acoustics of the environment in interpreting voice commands received by the NMD.

[25] The NMD may be a device which receives voice input, e.g., speech, via a microphone array and performs a function based on voice input. For example, the NMD may receive a voice command and interpret the voice command that is received. Then, the NMD may perform a function based on the voice command. Specifically, the NMD may receive a voice command "Play 'Track by 'Artist from ' Streaming Service ", determine that the voice input is a command to play audio content, and then facilitate playing the requested 'Track of audio by 'Artist from 'Streaming Service . Other arrangements are also possible.

[26] The environment in which the NMD operates may have certain acoustics. The acoustics define how sound travels within the environment. The acoustics of an environment may be determined in many ways. As one example, a playback device with a speaker and microphone may output test tones via the speaker, receive the test tones via the microphone, and analyze the received test tones to determine the acoustics of the environment. In another example, another network device (such as a control device, a first playback device, or even the NMD itself) may include a microphone that receives test tones from the speaker of a second playback device, and analyzes the received test tones to determine the acoustics of the environment. The test tones may be audio sounds at different frequencies. These acoustics may be stored on a playback device or on a computing device in a communication network for use by the playback device in the playback of audio content.

[27] In some examples, the acoustics may be inferred based on known characteristics of the environment such as a size of the room, height of the ceiling of a room, and furniture in the room.

A database may store acoustics for rooms with different characteristics. The acoustics stored in the database may have been determined based on a previous analysis of the room with the particular characteristics. A user may input the characteristics of the room and the database may output the acoustics of the environment. The acoustics may also be stored for use by the playback device on the playback device itself or also in the database.

[28] U.S. Non-Provisional Patent Nos. 14/481,511, entitled "Playback Device Calibration", 14/216,306, entitled "Audio Settings Based on Environment", 14/805,140, entitled "Hybrid Test Tone for Space-Averaged Rom Audio Calibration Using a Moving Microphone", and 14/825,961, entitled "Multi-Channel Pairing in Media System", and U.S. Patent No. 9,106, 192, entitled "System and Method for Device Playback Calibration" also describe various examples for calibration of playback devices, the contents of which are each herein incorporated by reference in their entirety.

[29] The NMD may typically process voice input via a microphone response. The microphone response is an indication of sensitivity of the microphone with respect to frequency. In embodiments, the NMD may also use the acoustics of the environment to process the voice input to correct for distortions in the voice input. This way the voice input can be better interpreted.

[30] The playback device may provide the acoustics of the environment to the NMD. As a media playback system may have a plurality of playback devices, the playback device that provides the acoustics may be that which is closest to the NMD. As another example, the playback device that provides the acoustics may be that which is a same zone. In some instances, a playback device may be bonded (grouped or paired) with the NMD. The bond may indicate that the playback device and the NMD are in close proximity to each other, such as in a same room or zone, and/or playing content in synchrony. When the NMD is bonded with a playback device, the NMD may be arranged to receive the acoustics of the environment from the bonded playback device. Moreover, if the NMD is moved and bonded to another playback device, the other playback device it is bonded to may provide new acoustics for the environment which the NMD is in.

[31] The NMD may use the acoustics of the environment in which it is in to improve its operation. For example, the NMD may define a filter based on the acoustics. The NMD may apply the filter to the voice input received by the network microphone device to correct for the acoustics of the environment, e.g., spectral, spatial, and temporal distortions in the voice input. This way the voice input can be better interpreted.

[32] In many situations, the NMD may be placed in proximity to a media playback system. The media playback system may include a plurality of playback devices that play back audio content. These playback devices may be distributed in various locations within a home, and these locations may be referred to as zones such as a bedroom or living room of the home. As a result, the NMD may need to interpret voice input in the presence of audio content such as music also being played back by the media playback system.

[33] In some situations, the playback device may provide to the NMD an indication of the content being played back such that the NMD may apply not only the filter to the voice input to correct for the acoustics of the environment but also use the audio content being played back to better isolate the voice input.

[34] Additionally, or alternatively, the NMD may be capable of determining directionality of the voice input. The directionality may define a direction from which the voice input comes from. This directionality may be provided to the media playback system. The media playback system includes a plurality of speakers. The media playback system may use this directionality to adjust the audio output of the plurality of speakers. For example, the media playback system may direct the audio sound produced from one or more playback devices also in the direction of where the voice input comes from. This may be where a listener is located. Other arrangements are also possible.

[35] In another aspect, some examples described herein involve controlling a media playback system via voice input. Some examples provided herein may involve a method. The method may include receiving a voice input that includes a command word and one or more media variable instances and determining that the voice input corresponds to music control. The method may further involve determining a command that corresponds to the command word and processing the voice input to identify a media playback system command corresponding to the intent. The voice input may be processed to identify media content related to the one or more music variable instances, and one or more media items of the media content may be determined. The media playback system may be caused to execute the command on the one or more media items.

[36] In other examples, a non-transitory computer-readable medium is provided. The non- transitory computer readable medium has stored thereon instructions executable by a computing device to cause the computing device to perform functions. The functions include receiving a voice input that includes a command word and one or more media variable instances and determining that the voice input corresponds to music control. The functions may further involve determining a command that corresponds to the command word and processing the voice input to identify a media playback system command corresponding to the intent. The voice input may be processed to identify media content related to the one or more music variable instances, and one or more media items of the media content may be determined. The media playback system may be caused to execute the command on the one or more media items. [37] In further examples, a system is provided. The system includes a processor and a memory. The memory has stored thereon instructions executable by the apparatus to cause the system to perform functions. The functions include receiving a voice input that includes a command word and one or more media variable instances and determining that the voice input corresponds to music control. The functions may further involve determining a command that corresponds to the command word and processing the voice input to identify a media playback system command corresponding to the intent. The voice input may be processed to identify media content related to the one or more music variable instances, and one or more media items of the media content may be determined. The media playback system may be caused to execute the command on the one or more media items.

[38] In yet another aspect, examples described herein include a media playback system (or perhaps one or more components thereof) receiving a voice command and determining an appropriate action for the media playback system to execute based on user identification.

[39] Listening to media content out loud can be a social activity that involves family, friends, and guests. Media content may include, for instance, talk radio, books, audio from television, music stored on a local drive, music from media sources (e.g. Pandora® Radio, Spotify®, Slacker®, Radio, Google Play™, iTunes Radio), and other audible material. In a household, for example, people may play music out loud at parties and other social gatherings. In such an environment, people may wish to play the music in one listening zone or multiple listening zones simultaneously, such that the music in each listening zone may be synchronized, without audible echoes or glitches. Such an experience may be further enriched when people can use voice commands to control an audio playback device or system. For example, a person may wish to change the audio content, playlist, or listening zone, add a music track to a playlist or playback queue, or change a playback setting (e.g. play, pause, next track, previous track, playback volume, and EQ settings, among others).

[40] Listening to media content out loud can also be an individual experience. For example, an individual may play music out loud for themselves in the morning before work, during a workout, in the evening during dinner, or at other times throughout the day at home or at work. For these individual experiences, the individual may choose to limit the playback of audio content to a single listening zone or area. Such an experience may be further enriched when an individual can use a voice command to choose a listening zone, audio content, and playback settings, among other settings.

[41] Identifying the person trying to execute the voice command can also be an important element of the experience. It may be desirable to execute a voice command based on who the person is and what the person wants the media playback device or system to do. By way of illustration, at a party or a social gathering in a household, the host or household owner may want to prevent certain guests from using a voice command to change the audio content, listening zone, or playback settings. In some cases, the host or household owner may want to allow certain guests to use voice commands to change the audio content, listening zone, or playback settings, while preventing other guests from making such changes. User identification based on user profiles or voice configuration settings can help distinguish a household owner's voice from a guest's voice.

[42] In another example, user identification can be used to distinguish an adult's voice from a child' s voice. In some cases, the household owner may want to prevent a child from using a voice command to listen to audio content inappropriate for the child. In other cases, a household owner may want to prevent a child from changing the listening zone, or playback settings. For example, the household owner may want to listen to audio content at a certain volume and prevent a child from changing the volume of the audio content. User identification may help set parental control settings or restriction settings that would prevent a child from accessing certain content or changing the listening zone, or playback settings. For example, user identification based on user profiles or voice configuration settings may help determine who the child is, what the child is allowed to listen to, or what settings the child is allowed to change.

[43] In yet another example, user identification may be used to prevent unintentional voice commands. For example, the household owner may want to prevent audio from the television or any other audio content from unintentionally triggering a voice command. Many other examples, similar and different from the above, are described herein and illustrate different types of actions based on voice recognition.

[44] Some embodiments described herein include a media playback system (or perhaps one or more components thereof) receiving a voice command and determining an appropriate action for the media playback system to execute based on user identification.

[45] In an example configuration, the media playback system includes one or more media playback devices alone or in combination with a computing device, such as a media playback system server. In another example configuration, the media playback system may include or communicate with a networked microphone system server and one or more NMDs. In yet another example configuration, the media playback system server and/or the networked microphone system server may be cloud-based server systems. Any one or a combination of these devices and/or servers may receive a voice command for the media playback system.

[46] In example operations, one or more functions may be performed by the networked microphone system individually or in combination with the media playback system. For instance, receiving a voice command may include the networked microphone system receiving a voice command via one or more NMDs, and transmitting the voice command to the media playback system for further processing. The media playback system may then convert the voice command to an equivalent text command, and parse the text command to identify a command. In another instance, the networked microphone system may convert the voice command to an equivalent text command and transmit the text command to the media playback system to parse the text command and identify a command.

[47] A voice command may be a command to control any of the media playback system controls discussed herein. For example, in some embodiments, the voice command may be a command for the media playback system to play media content via one or more playback devices of the media playback system. In some embodiments, the voice command may be a command to modify a playback setting for one or more media playback devices of the media playback system. Playback settings may include, for example, playback volume, playback transport controls, music source selection, and grouping, among other possibilities.

[48] After receiving a voice command, the computing device of the media playback system may determine whether the voice command was received from a registered user of the media playback system. For example, the media playback system may be registered to a particular user or one or more users in a household. The computing device of the media playback system may be configured to associate the voice command to a registered user based on user profiles stored in the computing device. The registered user may have a user profile created and stored in the computing device. The user profile may contain information specific to the user. For instance, the user profile may contain information about the user's age, location, preferred playback settings, preferred playlists, preferred audio content, access restrictions set on the user, and information identifying the user's voice, among other possibilities.

[49] The computing device of the media playback system may be configured to associate the voice command to a user based on voice configuration settings set by a user. For instance, the media playback system may ask a user to provide voice inputs or a series of voice inputs. The computing device of the media playback system may then process the voice inputs, associate the voice inputs to the user, and store the information so that the media playback system can recognize voice commands from the user.

[50] In some examples, the computing device of the media playback system may be configured to determine a confidence level associated with a voice command, which may further help determine that the voice command was received from a registered user. A confidence level may be determined based on user history, location, individually or in combination with any other information generally found in a user profile.

[51] In response to determining that the voice command was received from a registered user, the computing device of the media playback system may configure an instruction for the media playback system. The instruction may be based on content from the voice command and information in a user profile for the registered user. Additionally or alternatively, the instruction may be based on content from the voice command and voice configuration settings stored on the computing device.

[52] As described in examples herein, voice commands may include various content. In one example, the content from the voice command may include a command for one or more playback devices to play media content. In some instances, based on the command for one or more playback devices to play media content and information in a user profile for the registered user, the computing device of the media playback system may configure an instruction to cause one or more playback devices to obtain media content from a preferred media source (e.g., music streaming service) of a registered user. The computing device may then configure an instruction to cause the media playback system to play the media content via one or more playback devices of the media playback system. In further instances, based on the command for the one or more playback devices to play media content and information in a user profile for the registered user, the computing device may include instructions to (i) configure the one or more playback devices with one or more of the registered user's preferred playback settings and (ii) cause the one or more playback devices to play the media content via the media playback system with the registered user' s preferred playback settings.

[53] In another example, the content from the voice command may include a command for one or more playback devices to play media content but may not identify a particular listening zone or playback zone of the media playback system. Based on the content from the voice command and information in a user profile for the registered user, the computing device may configure an instruction to cause one or more playback devices to play the media content via one or more media playback devices within the particular playback zone of the media playback system.

[54] In yet another example, the content from the voice command may include a command for the media playback system to modify a playback setting. Based on the content from the voice command and information in a user profile for the registered user, the computing device may configure an instruction to cause the media playback system to modify the playback setting for one or more playback devices of the media playback system. [55] Further examples may involve the media playback system determining an order of preference to resolve conflicting voice commands received from different users. For example, the media playback system may assign an order of preference in which voice commands received from registered guests have a higher priority than nonregistered guests. Conflicting voice commands may include, for example, a voice command received from a user to play a song and a subsequent voice command received from another user to stop playing the song. Many other examples, similar and different from the above, are described herein.

[56] In another example, the media playback system may take actions based on receiving a wakeup word or wakeup phrase, associated with a registered user or a registered guest user. A wakeup word or wakeup phrase (e.g., "Hey Sonos") may be used to trigger a time period during which the system will accept additional commands from a user based on the wakeup word received. For example, a host or authorized guest may send a voice command to add songs to a play queue (e.g., "Hey Sonos, let's queue up songs"), which may open a time period (e.g., 5 minutes) for the host or authorized guest to send additional voice commands to add specific songs to a play queue. Many other examples, similar and different from the above, are described herein.

[57] After configuring an instruction or set of instructions for the media playback system, some embodiments of the computing device may send the instruction or set of instructions to one or more playback devices of the media playback system.

[58] In still another example, the computing device of the media playback system may determine whether the voice command was received from a child. The computing device may be configured to distinguish between an adult and a child based on information in a user profile or a guest profile. In particular, the computing device may distinguish between an adult and a child based on the tone or frequency of the user's voice.

[59] In response to determining that the voice command was received from a child, one or more playback devices may be prevented from playing given media content that may be inappropriate for the child. In some cases, the computing device and/or one or more playback devices may be prevented from modifying a playback setting based on the content of a child's voice command.

[60] In yet another example, actions may be based on determining whether a voice command was received from a guest user instead of a registered user of the media playback system. In one example, a registered user may have created a guest profile for the guest user. The guest profile may include any information included in a user profile. In another example, the computing device of the media playback system may determine that a voice command was not received from a registered user, and may then ask the registered user if the voice command came from a guest of the registered user.

[61] In response to determining that the voice command was received from a guest user, the computing device of the media playback system may (1) assign a restriction setting for the guest user, (2) configure an instruction for one or more playback devices based on content from the voice command and the assigned restriction setting for the guest user, and (3) send the instruction to one or more playback devices. A restriction setting may be any setting that limits the control of the media playback system.

[62] In a further aspect, examples described herein relate to identifying and accessing suitable streaming services (e.g. streaming audio tracks) based on commands.

[63] Streaming services may be identified and accessed based upon voice commands provided by the NMD. For instance, the NMD may receive a voice command "play Pandora® 70' s rock radio," determine that the speech is a command play a specific station from a specific streaming service, and then facilitate the playback of the station from that service. In other implementations, the selection of streaming service may be based upon commands input (e.g. textual input) via a user interface of a controller device. Other types of commands are also possible.

[64] In another example, the commands may not explicitly specify which streaming service a user desires to be accessed. For example, a user may issue more generic commands such as "play Queen" or "play 70' s rock." In such an instance, existing systems are limited in their ability to distinguish what content type a user desires to be played (i.e. the artist or the album Queen, a 70' s rock radio station or a "best of album.) Additionally, such systems are unable to match a user's intended content type to the content type capabilities of the various streaming services (i.e. which services are capable of playing radio station, artists, albums.)

[65] Given the ever increasing amount of content and number of streaming services available there is a need for a system that is capable of intelligently selecting the desired streaming service that matches the content type to provide to the user based upon the user command.

[66] In an example, selection of the streaming services may be accomplished by a network configuration including a plurality of network capable devices. The network configuration may include NMDs, playback devices, computing devices and/or controller devices (e.g. tablet, smartphone) receiving, processing, and analyzing commands. The configuration may further involve retrieving and/or requesting audio content from one or more music content servers based on the processing and analysis of the received commands. The audio content may then be obtained by an NMD, a controller device, and/or any number of playback devices to provide an audio playback experience based on the commands. The network configuration may take other forms as well.

[67] In another example, selection may be based on a number of criteria, individually or in combination. In one case, the selection of a streaming service may be dependent on the content type (e.g. song, genre, radio station) indicated by the command and whether a particular streaming service supports the indicated content type. In such a case, content type logic may be utilized to correlate the command or portions of the command to content types. The content type(s) identified via the logic may then be mapped to a streaming services having the available content types. Analysis of content types indicated via a command may be performed in various other ways.

[68] In yet another example, the selection of a streaming service may be based in part on user history which may take into account a user's streaming service preferences. The user preferences may be based on a per zone basis, content type most played, among various other. Additionally, various forms of "external" data may be incorporated, including but not limited to, geographic, demographic, and weather type data. Other types of selection influencing criteria may exist.

[69] In addition to selecting a streaming service, the processing of the user command may cause alternate indications to be output. In such examples, the system may output a suggestion of a streaming service capable of playing a content type indicated by a command. In another example, the system may output an indication that "the content is unavailable." Such indications may be output at an NMD, controller, or at one or more playback devices via the network microphone device or controller.

[70] The various selection criteria may serve as inputs of an algorithm to determine confidence metrics for various streaming services. A confidence metric may be an indication whether a particular streaming service is what the user may desire to listen to. For example, the confidence level may be a probability value or percentage (e.g. 1-100) assigned to streaming services. In one example, the streaming service with the highest confidence metric may be provided for streaming. In another instance, an error state may be triggered if the highest calculated confidence metric does not exceed a threshold confidence value or if the top N confidence levels are within a specified range of one another. In such a case, an error state may cause the network microphone device to (1) output an indication that "the content is unavailable," (2) ask the user to repeat/further specify the command, (3) cause audio to be played by a preferred partner or default service, among other possibilities. The confidence metric may be used in a variety of many other manners.

[71] 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 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. It will be understood by one of ordinary skill in the art that this disclosure includes numerous other embodiments.

II. Example Operating Environment

[72] Figure 1 shows 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- 124, control devices 126 and 128, and a wired or wireless network router 130.

[73] 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

[74] 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, a network interface 214 including wireless interface(s) 216 and wired interface(s) 218, and microphone(s) 220. 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 audiovisual receiver.

[75] 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.

[76] 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," which is hereby incorporated by reference, provides in more detail some examples for audio playback synchronization among playback devices.

[77] 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.

[78] 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.

[79] 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.

[80] 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.

[81] 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.1 1a, 802.1 1b, 802.1 lg, 802.1 1η, 802.1 lac, 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).

[82] The microphone(s) 220 may be arranged to detect sound in the environment of the playback device 200. For instance, the microphone(s) may be mounted on an exterior wall of a housing of the playback device. The microphone(s) may be any type of microphone now known or later developed such as a condenser microphone, electret condenser microphone, or a dynamic microphone. The microphone(s) may be sensitive to a portion of the frequency range of the speaker(s) 220. One or more of the speaker(s) 220 may operate in reverse as the microphone(s) 220. In some aspects, the playback device 200 might not have microphone(s) 220.

[83] 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.

[84] 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.

[85] 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

[86] 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.

[87] 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.

[88] 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.

[89] 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.

[90] 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 1 14 may be combined into a zone group for a dinner party such that playback devices 1 12 and 1 14 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 1 10, if the user wishes to listen to music in the living room space while another user wishes to watch television,

c. Example Control Devices

[91] 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. As shown, the control device 300 may include a processor 302, memory 304, a network interface 306, a user interface 308, microphone(s) 310, and software components 312. 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™).

[92] 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 data storage that can be loaded with one or more of the software components 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.

[93] 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.1 1a,

802.1 1b, 802.1 lg, 802.1 1η, 802.1 lac, 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.

[94] 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.

[95] Control device 300 may include microphone(s) 310. Microphone(s) 310 may be arranged to detect sound in the environment of the control device 300. Microphone(s) 310 may be any type of microphone now known or later developed such as a condenser microphone, electret condenser microphone, or a dynamic microphone. The microphone(s) may be sensitive to a portion of a frequency range. Two or more microphones 310 may be arranged to capture location information of an audio source (e.g., voice, audible sound) and/or to assist in filtering background noise.

[96] 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.

[97] 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. [98] 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.

[99] 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.

[100] 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.

[101] 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. [102] 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.

[103] 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.

[104] 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.

[105] 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

[106] 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.

[107] 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.

[108] 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.

[109] The above discussions relating to playback devices, controller devices, playback zone configurations, and media content sources provide only some examples of operating environments within which functions and methods described below may be implemented. Other operating environments and configurations of media playback systems, playback devices, and network devices not explicitly described herein may also be applicable and suitable for implementation of the functions and methods.

e. Example Plurality of Networked Devices

[110] Figure 5 shows an example plurality of devices 500 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 5 are for illustrative purposes only, and variations including different and/or additional devices may be possible. As shown, the plurality of devices 500 includes computing devices 504, 506, and 508; network microphone devices (NMDs) 512, 514, and 516; playback devices (PBDs) 532, 534, 536, and 538; and a controller device (CR) 522. [Ill] Each of the plurality of devices 500 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.1 1, 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.

[112] As shown, the computing devices 504, 506, and 508 may be part of a cloud network 502. The cloud network 502 may include additional computing devices. In one example, the computing devices 504, 506, and 508 may be different servers. In another example, two or more of the computing devices 504, 506, and 508 may be modules of a single server. Analogously, each of the computing device 504, 506, and 508 may include one or more modules or servers. For ease of illustration purposes herein, each of the computing devices 504, 506, and 508 may be configured to perform particular functions within the cloud network 502. For instance, computing device 508 may be a source of audio content for a streaming music service.

[113] As shown, the computing device 504 may be configured to interface with NMDs 512, 514, and 516 via communication path 542. NMDs 512, 514, and 516 may be components of one or more "Smart Home" systems. In one case, NMDs 512, 514, and 516 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 512, 514, and 516 may be physically positioned within relative close proximity of one another. Communication path 542 may comprise one or more types of networks, such as a WAN including the Internet, LAN, and/or PAN, among other possibilities.

[114] In one example, one or more of the NMDs 512, 514, and 516 may be devices configured primarily for audio detection. In another example, one or more of the NMDs 512, 514, and 516 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 512, 514, and 516 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 512, 514, and 516 may be the playback device 200 or network device 300. In an example, one or more of NMDs 512, 514, and/or 516 may include multiple microphones arranged in a microphone array.

[115] As shown, the computing device 506 may be configured to interface with CR 522 and PBDs 532, 534, 536, and 538 via communication path 544. In one example, CR 522 may be a network device such as the network device 200 of Figure 2. Accordingly, CR 522 may be configured to provide the controller interface 400 of Figure 4. Similarly, PBDs 532, 534, 536, and 538 may be playback devices such as the playback device 300 of Figure 3. As such, PBDs 532, 534, 536, and 538 may be physically distributed throughout a household as shown in Figure 1. For illustration purposes, PBDs 536 and 538 may be part of a bonded zone 530, while PBDs 532 and 534 may be part of their own respective zones. As described above, the PBDs 532, 534, 536, and 538 may be dynamically bonded, grouped, unbonded, and ungrouped. Communication path 544 may comprise one or more types of networks, such as a WAN including the Internet, LAN, and/or PAN, among other possibilities.

[116] In one example, as with NMDs 512, 514, and 516, CR522 and PBDs 532, 534, 536, and 538 may also be components of one or more "Smart Home" systems. In one case, PBDs 532, 534, 536, and 538 may be distributed throughout the same household as the NMDs 512, 514, and 516. Further, as suggested above, one or more of PBDs 532, 534, 536, and 538 may be one or more of NMDs 512, 514, and 516.

[117] The NMDs 512, 514, and 516 may be part of a local area network, and the communication path 542 may include an access point that links the local area network of the NMDs 512, 514, and 516 to the computing device 504 over a WAN (communication path not shown). Likewise, each of the NMDs 512, 514, and 516 may communicate with each other via such an access point.

[118] Similarly, CR 522 and PBDs 532, 534, 536, and 538 may be part of a local area network and/or a local playback network as discussed in previous sections, and the communication path 544 may include an access point that links the local area network and/or local playback network of CR 522 and PBDs 532, 534, 536, and 538 to the computing device 506 over a WAN. As such, each of the CR 522 and PBDs 532, 534, 536, and 538 may also communicate with each over such an access point.

[119] In one example, communication paths 542 and 544 may comprise the same access point.

In an example, each of the NMDs 512, 514, and 516, CR 522, and PBDs 532, 534, 536, and 538 may access the cloud network 502 via the same access point for a household.

[120] As shown in Figure 5, each of the NMDs 512, 514, and 516, CR 522, and PBDs 532, 534,

536, and 538 may also directly communicate with one or more of the other devices via communication means 546. Communication means 546 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 546 may include one or more of for example, Bluetooth™ (IEEE 802.15), NFC, Wireless direct, and/or Proprietary wireless, among other possibilities.

[121] In one example, CR 522 may communicate with NMD 512 over Bluetooth™, and communicate with PBD 534 over another local area network. In another example, NMD 514 may communicate with CR 522 over another local area network, and communicate with PBD 536 over Bluetooth. In a further example, each of the PBDs 532, 534, 536, and 538 may communicate with each other according to a spanning tree protocol over a local playback network, while each communicating with CR 522 over a local area network, different from the local playback network. Other examples are also possible.

[122] In some cases, communication means between the NMDs 512, 514, and 516, CR 522, and PBDs 532, 534, 536, and 538 may change depending on types of communication between the devices, network conditions, and/or latency demands. For instance, communication means 546 may be used when NMD 516 is first introduced to the household with the PBDs 532, 534, 536, and 538. In one case, the NMD 516 may transmit identification information corresponding to the NMD 516 to PBD 538 via NFC, and PBD 538 may in response, transmit local area network information to NMD 516 via NFC (or some other form of communication). However, once NMD 516 has been configured within the household, communication means between NMD 516 and PBD 538 may change. For instance, NMD 516 may subsequently communicate with PBD 538 via communication path 542, the cloud network 502, and communication path 544. In another example, the NMDs and PBDs may never communicate via local communications means 546. In a further example, the NMDs and PBDs may communicate primarily via local communications means 546. Other examples are also possible.

[123] In an illustrative example, NMDs 512, 514, and 516 may be configured to receive voice inputs to control PBDs 532, 534, 536, and 538. 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 512 may receive a voice input to control one or more of the PBDs 532, 534, 536, and 538. In response to receiving the voice input, NMD 512 may transmit via communication path 542, the voice input to computing device 504 for processing. In one example, the computing device

504 may convert the voice input to an equivalent text command, and parse the text command to identify a command. Computing device 504 may then subsequently transmit the text command to the computing device 506. In another example, the computing device 504 may convert the voice input to an equivalent text command, and then subsequently transmit the text command to the computing device 506. The computing device 506 may then parse the text command to identify one or more playback commands.

[124] For instance, if the text command is "Play 'Track by 'Artist from ' Streaming Service 1 ' in 'Zone 1 '," The computing device 506 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 508, and "Zone 1" may be the bonded zone 530. As such, upon identifying the URL and one or both of PBDs 536 and 538, the computing device 506 may transmit via communication path 544 to one or both of PBDs 536 and 538, the identified URL for playback. One or both of PBDs 536 and 538 may responsively retrieve audio content from the computing device 508 according to the received URL, and begin playing "Track 1" by "Artist 1" from "Streaming Service 1."

[125] In yet another example, the computing device 504 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 506. For example, the computing device 504 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 504 or the computing device 506 may determine what PBD commands correspond to the command or intent determined by the computing device 504. 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 504 to the computing device 506. The processing on the computing device 504 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.

[126] 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 500, as described above, may be performed by one or more other devices in the plurality of device 500. 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 512, computing device 506, PBD 536, and/or PBD 538. Analogously, the identification of the URL may be alternatively, partially, or wholly performed by another device or devices, such as NMD 512, computing device 504, PBD 536, and/or PBD 538.

f. Example Network Microphone Device

[127] Figure 6 shows a function block diagram of an example network microphone device 600 that may be configured to be one or more of NMDs 512, 514, and 516 of Figure 5. As shown, the network microphone device 600 includes a processor 602, memory 604, a microphone array 606, a network interface 608, a user interface 610, software components 612, and speaker(s) 614. 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) 614 or have a single microphone instead of microphone array 606.

[128] The processor 602 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 602 may include microprocessors, microcontrollers, application-specific integrated circuits, digital signal processors, and the like. The memory 604 may be data storage that can be loaded with one or more of the software components executable by the processor 602 to perform those functions. Accordingly, memory 604 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.

[129] The microphone array 606 may be a plurality of microphones arranged to detect sound in the environment of the network microphone device 600. Microphone array 606 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 606 may be sensitive to a portion of a frequency range. In one example, a first subset of the microphone array 606 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 606 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.

[130] The network interface 608 may be configured to facilitate wireless and/or wired communication between various network devices, such as, in reference to Figure 5, CR 522, PBDs 532- 538, computing device 504-508 in cloud network 502, and other network microphone devices, among other possibilities. As such, network interface 608 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 608 may be based on an industry standard (e.g., infrared, radio, wired standards including IEEE 802.3, wireless standards including IEEE 802.1 1a, 802.1 lb, 802. l lg, 802.1 1η, 802.1 1ac, 802.15, 4G mobile communication standard, and so on).

[131] The user interface 610 of the network microphone device 600 may be configured to facilitate user interactions with the network microphone device. In one example, the user interface 608 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 600. The user interface 610 may further include one or more of lights and the speaker(s) 614 to provide visual and/or audio feedback to a user. In one example, the network microphone device 600 may further be configured to playback audio content via the speaker(s) 614.

III. Example Systems, Apparatus, and Methods for Room Corrected Voice Detection

[132] In many situations, the network microphone device may be placed in proximity to a playback device. For instance, the playback device may be placed in the same room as a network microphone device.

[133] Examples described herein involve providing to an NMD acoustics of an environment in which the NMD operates. The environment may be a room of a home, such as a bedroom or living room. The acoustics of the environment may define how sound travels in the room. The acoustics of the environment may be used by the NMD in order to interpret voice input spoken to the NMD. In many situations, a network microphone device (NMD) may be placed in proximity to a playback device. For instance, the playback device may be placed in the same room as a NMD.

[134] The acoustics are typically defined by surfaces in the environment. For example, hard surfaces in a room may reflect sound. On the other hand, soft surfaces may absorb sound. The presence and arrangement of these different types of surfaces in the environment will affect the acoustics of the room and the ability of the NMD to interpret the voice input.

[135] The NMD may need to accurately recover voice input spoken in view of these acoustics. Additionally, in some instance, audio content may be simultaneously played back by the playback device at the same time that the NMD receives a voice input. The knowledge of the acoustics of the environment and/or content playback may be used by the NMD to interpret the voice input. [136] Figures 7-11 present embodiments that can be implemented within the disclosed operating environment

[137] Figure 7 is flow chart of functions that may be performed to improve interpretation of voice input received by the NMD. In some examples, one or more of these functions described may be performed by a playback device. In other example, computing device such as 504-508 may also perform one or more of these functions in conjunction with the playback device or instead of the playback device. The computing device may be associated with a playback device and perform processing associated with the playback device.

[138] At 702, acoustics of an environment may be obtained. The acoustics may be associated with an environment in which in a playback device is operating. The acoustics may have been determined in a variety of ways. For example, a playback system may have already determined the acoustics of the environment through some calibration phase. A playback device of a media playback system may have a microphone and speaker. The speaker may output one or more tones and one or more speakers may receive the tone using a respective microphone. The tone may be one or more frequencies of audio. Each of the playback devices may output tones. Based on the tones received by the plurality of playback devices, the acoustics of the environment can be determined. In another example, another network device (such as a control device, first playback device, or even the NMD itself) may include a microphone that receives test tones output by the speaker of a second playback device. The other network device may analyze the received test tones to determine the acoustics of the environment, rather than or in addition to a playback device. Other arrangements are also possible.

[139] The acoustics may be defined by a spectral response, spatial response, and a temporal response of the tones. The spectral response may be an analysis of sound energy received at a microphone. The spatial response may be an analysis of a direction of the sound energy received at the microphone. The temporal response may be an analysis of reverberations of sound energy received at the microphone. The playback system may analyze these responses and perhaps also accounting for the direction from where the tones are received to determine the acoustics of the environment. An indication of this acoustic characteristic may be stored on a playback device and/or one or more of the computing devices 504-508.

[140] In another example, the acoustics may be predefined based on known characteristics of the environment such as size of the room, height of the ceiling of a room, and furniture in the room. A database maintained by one or more of the computing device 504-508 may store acoustics for rooms with different types of characteristics. The acoustics stored on the computing device may have been determined based on a previous analysis of the room with the particular characteristics. A user may input the characteristics of the room on the controller device of the media playback system and the controller device may access this database to determine the acoustics of the room. These acoustics may be then provided to the playback device located in the environment or stored on the computing device.

[141] As an example, the acoustics may indicate that a room has a hard surface on a left side, a soft surface on the right side and be a rectangular shape. In essence, the acoustics may characterize the room from an acoustical perspective.

[142] The media playback system may include a plurality of playback devices. Each of the playback devices may have acoustics of the environment in which the playback device operates. At 704, one or more NMDs may be identified. The one or more NMDs may be in a same environment. In some examples, the playback device which sends the acoustics to the NMD may be the playback device that is closest to the NMD. In other examples, the playback device which sends the acoustics to the NMD may be the playback device that is in a same zone as the NMD. The proximity may be indicated during some calibration process during setup of the playback device and/or NMD. For example, the NMD may send an indication of its presence to the playback device. This presence may be indicated by a state variable in the playback device. The playback device may access this state variable to identify the NMD. Similarly, the NMD may have a similar state variable that identifies presence of the playback device.

[143] In other examples, a playback device of the media playback system may be bonded (paired or grouped) with the NMD. The bond may also indicate that the playback device and the NMD are in close proximity to each other, such as in a same room or zone, or playing audio content in synchrony. The bonding between a playback device and NMD may be similar in some respects to how playback devices may be bonded. This bonding may be reflected in the state variable stored by the playback device. When the NMD is bonded with a playback device, the playback device may be arranged to identify NMD. Moreover, if the NMD is moved and bonded to another playback device, the state variable in the other playback device may be updated to reflect the bonding with the NMD. Similarly, the NMD may update its state variable to reflect presence of the new playback device.

[144] In some examples, the bonded playback device and NMD may use various networking techniques to reduce the latency between themselves. For example, a local rather than WAN network connection (LAN or Bluetooth) may be used for communication. As another example, communications might revert to a different frequency range in the local network, e.g., switch from a "typical" 2.4Ghz communication to a 5Ghz communication while the playback device is bonded to the NMD. As yet another example, communications might switch to a reserved channel on either the 2.4 or 5Ghz spectrum or other network traffic may be reduced when the playback device and NMD is bonded, e.g., the playback device might stop serving as a relay node for other network traffic. Other arrangements are also possible.

[145] At 706, the acoustics may be provided to cause the acoustics to be applied to voice input. In one embodiment, the acoustics may be sent as a message from the playback device over one or more of the communication network 546 to the NMD. In other embodiments, the playback device may cause the acoustics on a computing device to be sent to the NMD via communication link 542. In still other embodiments the acoustics may be on a computing device associated with the playback device and the playback device may cause the computing device associated with the NMD to have access to the acoustics. Other arrangements are also possible.

[146] In some embodiments, the playback device might not need to provide the acoustics to the NMD. Instead, the NMD may be able to retrieve the acoustics from the computing device, itself. The NMD may provide an indication of the playback device in proximity to it (bonded, paired, or otherwise) and the computing device may provide the acoustics for the environment. Other arrangements are also possible.

[147] The NMD may typically process voice input via a microphone response. The microphone response is an indication of sensitivity of the microphone with respect to frequency.

[148] In embodiments, the NMD may apply acoustics to the voice input that it receives to correct for distortions in the voice input. This way the NMD may be able to better interpret the voice input. The NMD may apply this acoustics itself and/or offload processing to the computing device in which case the processing on the NMD may be cloud-based.

[149] The NMD may define a filter based on the acoustics in applying the acoustics to the voice input. The filter may include the spectral, spatial, and temporal responses of the environment. The NMD may apply the filter to the voice input received by the NMD to correct for distortion prior to interpreting the voice input. The filter may be determined based on the following derivation:

Xa(w) x P(w) x h(w) x m(w) = Ya(w)

Where Xa is a calibration tone, P is a speaker response of the playback device, h is a room response (e.g., acoustics of the room), m is a microphone response, and Ya is a processed response which may be the received tone corresponding to the tone sent during a calibration process. The symbol x represents a convolution function in a frequency domain. As Xa, P, m, and Ya are known, the room response (e.g., filter) may be calculated as:

h _1 (w) : Xa(w) x P(w) x m(w) = Ya(w) x h _1 (w)

Then, if a voice input Yb is received, the room response h (e.g., filter) may be applied to determine the voice input Xb as: Xb(w) = Yb(w) x h ' V) x P _1 (w) x rn ' V)

[150] In some embodiments, the playback system may determine the acoustics of the environment periodically to account for changes in the environment. In this case, one or more playback devices may perform the operations 702-706 periodically such that the NMD may apply current acoustics to the received voice input to properly interpret it.

[151] Figure 8 is another flow chart of functions that may be performed improve recovery of voice input by the NMD. In some examples, one or more of these functions described may be performed by a playback device. In other example, computing device such as 504-508 may also perform one or more of these functions in conjunction with the playback device or instead of the playback device. The computing device may be associated with a playback device and perform processing associated with the playback device.

[152] At 802, acoustics of the environment may be obtained, at 804, an NMD may be identified, and at 806, acoustics may be provided. The acoustics may be provided to an NMD and/or computing device associated with the NMD.

[153] In some situations, the NMD may be operating in an environment where the media playback system is also playing back audio content. The NMD may receive voice input while the audio content is also being played.

[154] At 808, audio content may be provided. The audio content may be provided to the NMD and/or computing device associated with the NMD. The content may be, for instance, a stream of the music being played by the playback device. A playback device may provide the audio content to the NMD which is proximate to the NMD, in a same zone as the NMD, or that which may be bonded (or grouped) to the NMD. In some embodiments, the content may be provided to the NMD by way of the computing device, for instance, when processing by the NMD is cloud- based. In yet other embodiments, the content may be provided to the computing device associated with the NMD by way of the computing device associated with the playback device, for instance, when processing by the NMD and/or playback device is cloud-based.

[155] At 808, the acoustics (and optionally audio content) may be applied to the voice input. For example, the NMD (or computing device associated with the NMD) may apply a filter to voice input received by the NMD to interpret the voice input. For example, the NMD (or computing device associated with the NMD may use the audio content being played back along with the voice input to as to better isolate the voice input. For purposes of interpreting the voice input, the audio content being played by the playback device may be effectively noise. In this regard, the audio content may be subtracted out from the received voice input so as to better isolate the received voice input. [156] Figure 9 is a flow chart of functions performed by the NMD and/or associated computing device in interpreting voice input. At 902, an indication of the acoustics of the environment may be obtained. At 904, the audio content being played by a playback device may also be optionally received. The playback device may be in a same zone, in the presence of the NMD, or bonded to the NMD. At 906, voice input may be received, e.g., by the NMD. The voice input may be a voice command. The NMD might know it has received voice input through some button press on the NMD or command word in the voice input indicative of it being a voice input. At 908, one or more of a filters and/or the audio content being played by the playback device may be applied/used to interpret the received voice input.

[157] Figure 10 is a flow chart of functions to enable the NMD to determine the acoustics of an environment rather than this being provided by the playback device, for instance. The functions may be performed by the playback device and/or computing devices associated with the playback device.

[158] The NMD may send an indication for one or more playback devices to play a tone. The playback devices that the NMD sends the indication to may include those playback devices in proximity to the NMD and/or those playback devices that are bonded (or grouped) to the NMD or in the same zone.

[159] At 1002, an indication may be received to play an audio tone. The indication may be received from the NMD or computing device associated with the NMD. In response, at 1004, an audio tone may be output by the playback device. The NMD may receive the tone using the microphone array 606. The microphone array 606 may provide an indication of a magnitude of the tone. Additionally, the microphone array 606 may provide an indication of a direction of the tone. The direction may be determined based on receiving tones from a plurality of playback devices. Based on receiving tones from a plurality of playback devices, the NMD and/or associated computing device may then determine the acoustics of the environment. This way the NMD may not need to obtain this acoustics from a playback device.

[160] The microphone array 606 may enable the NMD to determine a direction from where voice input is coming from. This direction could be used by a playback device to improve playback of audio content. For example, the media playback system may direct the audio sound produced from one or more playback devices in the same direction from where voice input comes from. This may be where a listener is located. Other arrangements are also possible.

[161] Figure 11 is a flow chart of functions performed by the playback device and/or associated computing device associated with using directionality determined via the NMD. [162] At 1102, an indication of a direction may be received. This may be received from the NMD and/or associated computing device. The direction may indicate where the NMD received voice input and therefore where a user may be located in the environment. The playback device may have a plurality of speakers whose output may be controlled to affect directionality of audio content played back by the playback device. At 1104, the playback device may use this directionality to adjust audio output of the plurality of speakers. The audio output may be playback of music content. The playback device may adjust phase of the audio signals output by the speakers to produce directionality in the audio output in accordance with the directionality indicated by the NMD. In this regard, the audio content might be directed to the user and therefore improve the listening audio experience. Additionally, or alternatively, the playback device might also adjust a magnitude of the audio output (e.g., volume). The NMD in some instances might also produce audio output. The audio output may be a voice response to the voice input or some type of other sound such as a beep or tone. Still additionally, or alternatively, the directionality may be used by the playback system to identify a playback device that might be suited for outputting this audio output instead of or in addition to the NMD. For example, the identified playback device might be directly in front of a listener, making it easier for the listener to hear the audio output. Other arrangements are also possible.

IV. Example Systems, Apparatus, and Methods for Voice Control of a Media Playback System

[163] Examples described herein may involve controlling a media playback system. In particular, Figure 12 shows an example flow diagram 1200 of a method for playing an audio response. Method 1200 presents an embodiment of a method that can be implemented within an operating environment involving, for example, the media playback system 100 of Figure 1, one or more of the playback device 200 of Figure 2, one or more of the control device 300 of Figure 3, and one or more of the plurality of devices in system 500 of Figure 5. Method 1200 may involve transmitting and receiving information between a networked microphone system and the media playback system via various communication paths as described herein and/or using a metadata exchange channel as described in Application No. 62/298,350 filed February 22, 2016 and entitled "Metadata exchange involving a networked playback system and a networked microphone system." This application is hereby incorporated by reference in its entirety. Method 1200 may include one or more operations, functions, or actions.

[164] In some examples, one or more of NMDs 512, 514, 516 may be connected to one or more networks or communication paths 542, 546. An NMD may be configured to integrate or interface with a media playback system (e.g., computing device 506, CR522, PBDs 532, 534, 536, 538). The NMDs may be included in a networked microphone system (e.g., MDs 512, 514, 516, 504).

[165] At block 1202, to configure a NMD to interface or associate a NMD with a media playback system, a user may select on, for example, a control device (e.g., CR 522) to launch an application associated with the NMD or networked microphone system or the media playback system at block 1202. The application may be an application to control features or settings of the networked microphone system and/or the media playback system. The networked microphone system may have one or more specialized add-on features available to provide added or enhanced functionality to the networked microphone system.

[166] At block 1204, available add-on features for the networked microphone system may be displayed for the user to select. An example user interface 1300 is shown in Figure 13 A displaying available add-on features. The NMD may have one or more available add-on features 1302, 1304, 1306. Feature 1302 may be a music control feature which can, for example, control playback of the media playback system. At block 1206, the control device may receive user input to add the music control feature or skill to the NMD. For example, the user may select to add the music control feature 1302 by selecting feature 1302. The music control feature 1302 may be an application adding music control functionality or skills to the networked microphone system for the user. Upon selecting to add the music control feature 1302, the display may change to show user interface 1308 to prompt for account information from the user.

[167] At block 1208, a control device may receive account information for the music control feature via user interface 1308 and input fields 1310 and 1312. The account information may be of an account that a user has with a media playback system and/or a music service. The account information may include a username and password of the account. The username may be entered in field 1310, and the password may be inputted in field 1312. The user may select a button such as a submit button 1314 to submit the username and password for authentication with the media playback system (e.g., computing device 506) and/or music service (e.g., computing device 508). The account information may be transmitted via any of communication paths 542, 544, 546 and/or the metadata exchange channel for authentication at computing device 504, computing device 506, and/or computing device 508. Once authenticated, user information associated with the account may be transmitted from the media playback system to the networked microphone system. The user information may be custom names (e.g., custom zone names, custom playlist names, custom song names, custom album names, custom artist names, etc.), household identifier(s) associated with the user information, PBD identifier(s), and/or zone identifier(s). A custom name may be any name that is provided by the user. For example, a media playback system may provide a list of common zone names for the user to select from when naming a zone and/or give the user the option to type in a name of the zone. An interface of control device 300 may display the list of common zone names and/or display a field in which a user can enter a custom zone name via input (e.g., voice, text) received by the control device 300. Custom name information may be transmitted or shared with any device in system 500.

[168] At block 1210, a default zone (e.g., one or more playback devices) or default zones (e.g., at least two playback devices in different zones, group of at least two zones) may be determined for the NMD. The default zone or playback device(s) may be determined as described in Application No. 62/298,410 filed on February 22, 2016 and entitled "Default Playback Device(s)." This application is hereby incorporated by reference in its entirety.

[169] In some aspects, the user may specify the default zone during the initial configuration or setup. User interface 1316 shown in Figure 13C illustrates an example user interface which enables a user to select a default playback zone to associate with the NMD. User interface 1316 may display a listing of available playback zones 1318. The displayed names of available playback zones may include custom names associated with the user account entered at block 1208. For example, the listing of available playback zones 1318 may include the "Living Room" and "Kitchen" and the custom zone name of "Nick's Room." The displayed listings may be selectable to enable a user to specify the default zone(s) for playback of voice responses and/or music in response to commands received by the NMD or other control device. Figure 13C shows the example of the user selecting the kitchen as the default zone. The user may select a button 1320 such as a submit button to confirm selection of and submit the selection of the default zone. A confirmation screen 1322 shown in Figure 13D may be displayed to confirm to the user that the setup process is complete, and the user may select a button 1326 to dismiss the confirmation screen 1322.

[170] At block 1212, user-specific playback information may be sent to the networked microphone system from, for example, the media playback system. The user-specific information may be custom playback information such as custom zone names, custom playlists, and/or custom playlist names. In some aspects, the user-specific information and/or user account may be associated with a household identifier (HHI). The user-specific playback information may be transmitted from the media playback system (e.g., computing device 506, CR 522, PBD 532, PBD 534, PBD 536, and/or PBD 538) to the networked microphone system (e.g., computing device 504, NMD 512, NMD 514, and/or NMD 516), for example, via the metadata exchange channel and/or any other communication path between the media playback system and the networked microphone system. [171] Computing device 504 may store the custom playback information as dynamic variables which may be variables that can be dynamically associated with different variable types. For example, "Nick's Room" may be a custom zone name and may be stored as a dynamic variable that is associated with a zone variable type. As another example, "Nick's Faves" may be a custom playlist with a custom name created by the user. The name "Nick's Faves" may be stored as a dynamic variable and associated with a playlist variable type. In this manner, the networked microphone system may be aware of and can identify in the voice input custom information associated with the user.

[172] The dynamic variables may be stored in a table or other data structure and dynamically associated with different variable types. For example, each dynamic variable may be associated with one or more variable types. The dynamic variables may be stored with identifiers associated with the user account. For example, the custom zone name of "Nick's Room" may be associated with a zone identifier of the media playback system and/or the identifier(s) of the PBD(s) in the "Nick's Room" zone. As another example, the custom zone name of "Nick's Room" may be stored with a zone identifier tag and/or the identifier(s) of the PBD(s) in the "Nick's Room" zone may be stored with a tag to the "Nick's Room" zone. The dynamic variables may be continuously, periodically, or aperiodically updated to include new custom names added or removed by the user or associated with the user's account. A custom name may be any name supplied by the user which may or might not already exist in a database.

[173] In some examples, each dynamic variable may be stored or associated with an identifier which may be used to identify the dynamic variable in a media playback system command. For example, the zone name "Nick's Room" may be stored with a zone identifier specific to the media playback system and when a command requests an action to be performed on the playback devices in "Nick's Room" the zone identifier for "Nick's Room" may be supplied in addition to or instead of "Nick's Room" with the media playback system command.

[174] At block 1214, a user can provide voice input by speaking a command or request which may be received by a NMD. The networked microphone system can convert the voice input from speech to text and parse the words to determine the syntax of the voice input. The spoken command may have a particular syntax which the networked microphone system can recognize as being in the area or domain of music playback control. For example, the user may say "play The Beatles in the Kitchen and Nick's Room." The networked microphone system may recognize the word "play" as a command which corresponds to an intent or directly as an intent that is associated with music playback and may identify the spoken command as in the area or domain of music playback control at block 1216. [175] In another examples, the presence or inclusion of one or more media variable instances and/or one or more zone variable instances may indicate that the command word "play" corresponds to the "play" intent. The networked microphone system may determine that "The Beatles" corresponds to a media variable instance by searching a music catalog which may include music metadata and determining that, for example, an artist is named "The Beatles." The networked microphone system may determine that "Kitchen" and/or "Nick's Room" correspond to zone names based on common zone names and/or dynamic variables associated with a zone variable type. The combination of the command word "play" with the media variable "The Beatles" and/or "Nick's Room" may enable the networked microphone system to determine that the voice input corresponds to the music control intent of playing requested music.

[176] Because the spoken command is identified as being in the area or domain of music playback control, the networked microphone system may prioritize search results for music content related to "The Beatles" who are known artists and deprioritize or exclude search results for music content related to the homophone "the beetles" which might not be associated with any known artists. In other words, in response to identifying that the voice input is in the music domain, the set of words or vocabulary used for the speech-to-text recognition may be changed to be specific to the music domain which may include words not normally found in a dictionary and/or may be in a dictionary or a word in a language different from the spoken language.

[177] For example, the set of words or vocabulary used for the speech-to-text recognition may be updated to include metadata information of media items (e.g., artist name, track name, album name, song name) in response to determining that the voice input is in the music domain. In some aspects, the voice input may include dictation of letters and/or symbols, for example, for custom names (e.g., zone, playlist), media variables, and/or names of artists, albums, and/or tracks. As another example, word(s) in the resulting text from the speech-to-text conversion may be changed to use media specific words prior to processing the music control command. The speech-to-text conversion for media variable instances may be use words found in music metadata, media catalogs, and/or custom or local media identifiers (e.g., playlist names, track names, album names, artist names etc.) in addition to or instead of standard words used by the networked microphone system. Similarly, the speech-to-text conversion for the zone variable may use custom zone names.

[178] At block 1218, the voice input containing a music control command may be processed. The networked microphone system may have various predefined syntaxes that may be associated with a user's intent (e.g., play, pause, adding to queue, grouping, other transport controls, controls available via the control device 300). Each intent may correspond to one or more media playback system commands which may or might not be the same as or similar to the intent. For instance, an intent of moving music playback from a first zone to a second zone may correspond to a media playback system command to move a now playing media item and/or the playback queue from the first zone to the second zone. In another example, the intent of moving music may correspond to a playback queue copy command for the media playback system to copy the playback queue of the first zone to the playback queue of the second zone and/or copy the state variable of the first zone to the state variable of the second zone.

[179] As yet another example, the intent of moving music may correspond to two media playback system commands. The two commands may be to group the second zone with the first zone and then to remove the first zone from the group to in effect transfer the state of the first zone to the second zone.

[180] A media playback system command may include an application program interface (API) which is called in response to determining that an intent corresponds to the media playback system command. The networked microphone system and/or the media playback system may have a defined mapping or correspondence between the intent of a user and a media playback system command.

[181] In some examples, the media playback system command may be executed on data stored in a computing device (e.g., computing device, 504, computing device 506, computing device 508) in cloud network 502. For example, an intent to add media item(s) (e.g., track(s), album(s), playlist(s)) to another playlist or playback queue may be added to a playlist or playback queue stored in cloud network 502. Playback queues stored on PBDs 532, 534, 536, 538 may be updated in response to the change in the playlist or playback queue stored in cloud network 502 so that the portion of the playback queue matches a portion or entirety of the playlist or playback queue in cloud network 502.

[182] Certain words, syntaxes, and/or phrases may be associated with the same intent. For example, including the command word "play," "listen," or "hear" in a voice input may correspond to the user's intent that the media playback system play back media content. Each intent may have different types of predefined variables or slots on which to perform an action specified by the command or intent. The variables or slots may be in predefined locations or positions of various phrases. For example, the "play" command syntax may have a media variable for media that the user would like played back and may further have a location or zone variable for a location or zone in which the user would like the associated playback devices to playback the media content. In the example of the spoken command of "play The Beatles in the Kitchen," the instance of the media or music variable may be "The Beatles" and the instance of the zone variable may be the "Kitchen."

The networked microphone system and/or media playback system may process the media variable separately and/or differently than the zone variable in identifying relevant objects which correspond to the media variable instance and/or the zone variable instance.

[183] Another example of a syntax or phrase that may be associated with the "play" intent may be the syntax "Let me hear [media variable] [zone variable]." One example of this syntax may be "Let me hear Paul Simon in Emily's Room" where "Let me hear" may be associated with the "play" intent, "Paul Simon" may be an instance of the media variable, and "Emily's Room" may be an instance of the zone variable. The networked microphone system may parse the voice input and determine which of the syntaxes stored in the networked microphone system matches the voice input to identify the intent for the voice input. The syntaxes may be stored in any of the devices in the networked microphone system.

[184] Yet another example of a syntax or phrase for the "play" intent or command may be the syntax "I want to listen to [media variable] in [zone variable]." The word "listen" or clause "I want to listen" may be associated with the "play" intent. Other syntaxes for the "play" intent are possible.

[185] Another example command or intent may be related to adding media content to a queue which may be stored in the media playback system (e.g., in the PBD(s), the computing device 506, and/or CR 522). An example add-to-queue syntax may be "add [media variable] to queue in [zone variable]." Similar to other aspects described herein, the zone variable may be optional, and the system may determine the zone to which the command applies based on various techniques or methods (e.g., use the default zone, use the last-used zone, based on user presence information, use the zone actively playing media). The selected media content corresponding to the media variable may be added to the queue in the zone.

[186] As yet another example command or intent may be a play next command which may cause a selected media content to be added to the top of a queue to be played next in a zone. An example syntax for this command may be to "play [media variable] next." Similar to other aspects described herein, the zone variable may be optional.

[187] Another example of a command or intent may be a move or transfer command which may move or transfer currently playing music and/or the playback queue of a zone from one zone to another. For example, a user may speak the voice input of "Move music to [zone variable]" where the command word "move" or "transfer" may correspond to an intent to move playback state to another zone.

[188] The commands and intents described herein are examples and other intents or commands are possible. For example, each of the controls available via control device 300 for controlling the media playback system as described herein may have corresponding intents available to be used to control the system. For instance, the name of the control command may correspond to an intent. If the control command involves one or more media items, the syntax for the command may include one or more media variables. If the control command involves one or more zones, the syntax for the command may include one or more zone variables. Other variables to be used with the different intents are also possible.

[189] Examples of controls available via control device 300 for controlling the media playback system may include transport control commands. These commands or intents may be relevant to a media item which is currently being played such as transport commands (e.g., stop, pause, skip, rewind, fast forward, back, volume, etc.) or commands related to saving or adding the currently played media item to another playback queue or playlist. The syntax for intents or actions to be taken on a media item that is now playing may be simpler and may correspond to the names of the transport control. For example, the voice input for an intent to pause music playback may be the voice input "pause."

[190] Different types of variables may be used in the different command syntaxes. For the media variable, the media variable may be a variable or slot in the syntax where the user is likely to specify via voice input media content that the user would like to hear or play. The media variable can be a variety of music related features or characteristics (e.g., types of media variables) including, but not limited to, album name, artist name, song name, playlist name, custom playlist name, genre (e.g., pop, classical, country, rock, R&B, etc.), mood (e.g., romantic, workout, productive), music tempo (e.g., upbeat, slow), radio station name, composer's name, musical era (e.g., baroque, romantic, classical, 20th Century), time period (e.g., 80's, 90's), playlist creator's name, ranking (e.g., best, Top 40) and/or other music identifying feature. The music variable may have a custom name that may be a custom playlist name created by the user of the user account and/or other custom name (e.g., custom song name, custom album name, custom artist name).

[191] For the zone variable, the zone variable may be a variable or slot in the syntax where the user is likely to specify via voice input a location or zone in which to perform the requested action or the intent (e.g., play the requested music). A user may or might not include a zone instance in the voice input. In the event, the user does not specify a zone, for example, by simply saying "play some Beatles," the networked microphone system and/or media playback system may determine to "play some Beatles" in a default zone and/or other zone(s) based on other input (e.g., user presence information, context information, location information). The zone variable may include dynamic variables for custom zone names provided by the user. As another example, a custom zone name may be for example "Nick's Room" or "3rd Floor Conference Room." [192] In some examples, the syntax may include a media service variable for a media service or application or other media-related service, product or application (e.g., media playback system) to execute the voice input. The system may identify a default playback system or zone(s) for all media related content or associate different playback systems or zone(s) with different services. For example, a user may say "play on Spotify Josh Groban in the bedroom." The system (e.g., networked microphone system and/or media playback system) may recognize "Spotify" as an instance of the media service variable, "Josh Groban" as an instance of a music variable, and "bedroom" as an instance of a zone variable. The system may search for media content related to "Josh Groban" as discussed herein within the media catalog of the media service Spotify®.

[193] Some types of variables may be scalar in that the scalar variables may be formed into a vector or set which contains more than one instance of the same variable. A vector of a scalar variable may have the format or syntax when spoken by the user of "[first scalar variable] and [second scalar variable]," "[first scalar variable], [second scalar variable], and [third scalar variable]," or "[first scalar variable] [second scalar variable] [third scalar variable] " For example, a zone variable may be a scalar variable, and the user may specify that media content be played in more than one "Kitchen, Living Room, and Dining Room." In some aspects, a vector or a predefined set of scalar variables may be given a name. A predefined vector named, for example, "downstairs" may be associated with all of the zones which are downstairs in a home environment. In the example environment shown in Figure 1, "downstairs" may be the "Living Room," "Dining Room," "Office," "Master Bedroom," "Bedroom," and "Bathroom" zones. The control device 300 can show a list of zones, and a user can select from the list of zones those zones to associate with the name or label "downstairs."

[194] In some examples, the media variable may be a scalar variable. More than one of the same type of music variable may be spoken in a single command phrase, and each media variable instance may be processed for corresponding media items independently of the other media variable instance(s) or in combination with the other media variable instance(s). For example, the voice input may be "Let's listen to music from The Beatles and the Beach Boys" which may correspond to the syntax "Let's listen to music from [first media variable] and [second media variable]." In one aspect, first media variable instance of "The Beatles" may be processed independently of "the Beach Boys." In independently processing "The Beatles" from "the Beach Boys," "The Beatles" may be processed for any media items related to the Beatles, and "the Beach Boys" may be processed for any media items related to "the Beach Boys" as will be described in more detail with respect to block 1218. In another aspect, the first media variable instance of "The Beatles" and the second media variable instance of "the Beach Boys" may be processed as a combination where the system may process for media items related to both "The Beatles" and "the Beach Boys" (e.g., songs on which The Beatles and the Beach Boys perform and/or are listed as artists).

[195] Networked microphone system and/or media playback system may associate a vector or set of zone variable instances with a grouping command. For example, the networked microphone system and/or media playback system may recognize the scalar variable syntax for the room variable and determine that this syntax corresponds to a media playback system command of grouping the specified instances of the zone variable. As an example, the user may specify to play media content in the "Living Room, Kitchen, and Nick's Room." The system 500 (e.g., networked microphone system and/or media playback system) may recognize "Nick's Room" as a zone variable based on location or placement of where "Nick's Room" is spoken in the phrase and search the table storing dynamic variables for custom zone names corresponding to "Nick's Room." The searching may be performed by the computing device 504 and/or computing device 506, and the custom zone name and/or identifier may be transmitted between the computing device 504 and computing device 506 based on the search of the table. The transmission may be via the metadata exchange channel and/or any other communication path between the computing device 504 and computing device 506.

[196] Another example of a syntax which may be recognized as a grouping command by the media playback system may be to "add [zone variable]" or "also play in [zone variable]." For example, the networked microphone system may recognize the word "add" or the phrase "also play" as corresponding to a grouping intent or command. The system may determine the intent solely based on the voice input including the command word of "add" or "also play" in the command word position of the syntax or based on the voice input including the command word and a zone variable instance. This type of grouping may be based on context such as the context of which zones the music is already playing in. The media playback system may send this information to the networked microphone system via any communication path and/or the metadata exchange channel. In some aspects, the media playback system may receive the information and understand to also play the music currently being played in one or more zones in the specified zone and/or to include the specified zone in an existing group.

[197] In some examples, the music variable can be a scalar variable. For example, the user can specify to "play Backstreet Boys music from the 90' s." "Backstreet Boys" may be the name of an artist and "the 90' s" may be a time period for the music. Another example may be "play American Pie by Madonna" where "American Pie" may be a track name and "Madonna" may be an artist's name. [198] The music variable may be processed by searching a music database for information related to the specific music variable. The database may be a database of music at computing device 504, computing device 506, and/or computing device 508. For example, the user may speak "play American Pie." The networked microphone system may search computing device 504 for any music information related to "American Pie." The computing device 504 may return the results of, for example, an artist who has an album named the same as the music variable, the album name which matches or is similar to the music variable, a track named the music variable, a radio station of the music variable, a playlist named the music variable, a streaming service provider identifier of content related to the music variable and/or the raw speech-to-text conversion results. Using the example of "American Pie," the search results may return the artist "Don McLean," the album(s) named "American Pie," track(s) named "American Pie," radio station(s) named "American Pie" (e.g., identifier for Pandora radio station for "American Pie"), a music service (e.g., streaming music service such as Spotify® or Pandora®) track identifier for the track "American Pie" (e.g, Spotify® track identifier for "American Pie", URI, and/or URL) and/or the raw speech-to-text result of "American Pie." The networked microphone system may provide the set of results from the database search to the media playback system. The results may be provided via the metadata exchange channel and/or any other communication path established between the networked microphone system and the media playback system.

[199] In some examples, the spoken command may specify the specific media content (e.g., song, artist) or set of media content (e.g., album) to play such as "play the American Pie album" in which case the search results may return the album named "American Pie" and identifiers of music services for the album named "American Pie."

[200] As another example, the user may speak the command "play foofoo" where the music variable is "foofoo." "Foofoo" might not correspond to any musical features or characteristics, and as a result, the database might not have any artist, album and/or track which corresponds to the music variable "foofoo." In this example, the returned result may only be the result of the speech- to-text conversion of "foofoo." The speech-to-text conversion or raw text may be used to search custom names (e.g., custom album name, custom song name, custom artist name). The raw text may be used to search for content stored on a device (e.g., CR 522) or on a network-enabled storage device (e.g., network attached storage (NAS) device). The network-enabled storage device may be able to communicate with the media playback system and/or networked microphone system via communication paths 542, 544, 546. In some instances, custom content may be stored by the user on computing device 508. The contents in the network-enabled storage device may be indexed on any device in system 500 and may be searchable based on the raw text. [201] As yet another example, the user may speak the command "play Beatles." Outside of a musical context "Beatles" may be interpreted to correspond to "beetles" because these words are homophones. Since the spoken command may be identified as in the area of music control in block 716, the networked microphone system may aware that in the spoken command "play Beatles" "Beatles" likely corresponds to the artist or other musical content named "Beatles." The search of the database may produce the results of the artist The Beatles, artist identifiers for The Beatles for different streaming services, an identifier for a recommended playlist based on the artist The Beatles and/or the raw results of the speech-to-text conversion of the utterance "Beatles."

[202] As another example, the voice input spoken by the user may be "play Jazz." The system 500 may identify "Jazz" as a genre based on a search of a database storing a listing of genres. The system may search for relevant media content which corresponds to the genre of jazz. The search results may, for example, be identifiers for the genre "Jazz" in databases of various music services and/or playlist name(s) or identifier(s) of playlist(s) which correspond to the genre "Jazz."

[203] In some examples, the voice input may include two commands or phrases which are spoken in sequence. The networked microphone system may recognize that the two commands that are spoken in sequence may be related. The first command may contain a first variable type and the second command may contain a subset of the first variable type. For example, the user may provide the voice input "play some classical music" followed by "play something romantic." There may be a pause between the two commands. The system 500 may have eras of classical music associated with a classical instance of the music variable. The system 500 may recognize that "romantic" refers to the romantic era of classical music and may process the command as being a command to play something from the romantic era rather than to play something of a romantic mood. As another example, the user may speak "play some *NSync" followed by a short pause and then "play No Strings Attached." The system 500 may recognize that "No Strings Attached" is an album by the artist *NSync and may play this album rather than an album named "No Strings Attached" by another artist.

[204] In some examples, the command may include a system name variable for the name of a media playback system. The media playback system may be associated with a name such as the name of the media playback system manufacturer (e.g., SONOS®), a custom name, and/or other name. The voice input may include the name of the system to identify a specific system associated with the user account on which to execute the command or intent. In some instances, the presence of a media playback system name variable in the spoken command may be used in block 1216 to automatically identify the voice input as being in the area of music control. [205] At block 1220, the media playback system may execute the spoken music control command by executing each of the parsed commands and variable(s). The media playback system may receive the search results from the networked microphone system and/or one or more media playback system commands. The media playback system commands and/or media information (e.g., search results) may be received by the media playback system in one or more messages from the networked microphone system. Based on the search results, the media playback system (e.g., computing device 506, control device 522, and/or playback device 532, 534, 536, 538) may decide what media content to play or queue for playback in response to the spoken command. Various techniques may be used to determine what to play in response to the spoken command when search results in addition to the raw text-to-speech conversion is received.

[206] In some aspects, the media playback system may weight the different results based on a variety of data points and/or preferences. For example, the weighting of the different results may be based on any of popularity, user playback history, music services associated with the user account, music services available to the media playback system, music stored on storage devices associated with the media playback system and/or user preferences. As an example, songs by different artists may have the same name. If the search result returns songs with the same name by different artists, the song that is more popular may be weighted more and/or selected. The popularity of a song may be determined based on a variety of sources such as user play count, radio play count, music chart ranking, copies sold, and/or other available data. As another example, the media items which have been recently played by the user may be weighted more heavily.

[207] In some examples, the user may indicate for a media variable a preference order for media items to select. For example, the user may indicate that custom playlists are most preferred followed by a radio station, curated playlist, track, album, artist. The system may give more weight to media variable types that are higher in priority based on the user's preferences. The user's preferences may be stored in a user profile and/or otherwise associated with the user's account such that the user's preferences may be transmitted to the networked microphone system and/or media playback system. Some media variable types may be given equal priority or weighting.

[208] In some examples, a default prioritization may be used if the user has not provided user preferences. The system may use any combination of priorities for the different media variable types. For example, the system may prioritize media content corresponding to an album followed by artist and track ahead of the results corresponding to the raw text.

[209] As another example, the media variable instance may be the name of an artist, and the artist may correspond to a playlist and a radio station. For media variable instances, playing of the radio station may be preferred over the playlist. [210] As yet another example, the media playback system may filter out results associated with a music service to which the user and/or the media playback system does not have access. After filtering out inaccessible results, the media playback system may select the media content to play based various methods or techniques described herein.

[211] The selection methods described herein are illustrative, and other examples of methods or techniques for selecting media item(s) to play in response to a "play" command may be used.

[212] In response to selecting the content to play in response to receiving a "play" command or intent, the media playback system may use the identifiers and/or other identifying information provided from the search results to identify a source for the content. The identifiers may be a network address or link where the corresponding content can be retrieved by the media playback system such as a network storage location or uniform resource locator (URL) and/or metadata (e.g., artist name, album name, track number, radio station name, playlist name, media service name, etc.).

[213] In some examples, the command or intent may be a transport command (e.g., pause, play after pause, skip, back, rewind, fast forward). As discussed above, the system 500 may determine a media playback system command which corresponds to the command or intent and execute the corresponding media playback system command. The networked microphone system can cause the media playback system to execute the command by transmitting a message to the media playback system including command information identifying the command corresponding to the intent (e.g., play, pause, etc.) and relevant objects of the command (e.g., variables such as zone name, zone identifier, group identifier, media identifier etc.). For example, the transport command may include an instance of a zone variable (e.g., Nick's Room, Kitchen, or other identifier for the zone) for the zone in which the command is to be executed.

[214] In response to causing an action on the PBD(s) based on the voice input, the media playback system may update and/or store the state information relating to the actions performed by the PBD(s). For example, the PBD(s) may update the state variable to indicate the state of the zone such as that the zone or specific playback device(s) are currently playing a particular media item and/or a particular media item was added to the queue stored on the PBD(s). The state variable may be accessed by any device in system 500 in order to enable seamless playback and/or control from various devices in the system 500.

[215] While the methods and systems have been described herein with respect to media content

(e.g., music content, video content), the methods and systems described herein may be applied to a variety of content which may have associated audio that can be played by a media playback system. For example, pre-recorded sounds which might not be part of a music catalog may be played in response to a voice input. One example is the voice input "what does a nightingale sound like?". The networked microphone system's response to this voice input might not be music content with an identifier and may instead be a short audio clip. The media playback system may receive information associated with playing back the short audio clip (e.g., storage address, link, URL, file) and a media playback system command to play the short audio clip. Other examples are possible including podcasts, news clips, notification sounds, alarms, etc.

V. Example Systems, Apparatus, and Methods for Actions Based on User

Identification

[216] Examples described herein include a media playback system (or perhaps one or more components thereof) receiving a voice command and determining an appropriate action for the media playback system to execute based on user identification (or at least based on the user who spoke the voice command). In some examples, the media playback system may include one or more of PBDs 532, 534, 536, and 538 and computing device 506 (which is configured as a media playback system server). In some embodiments, the media playback system may include or communicate with a networked microphone system that includes one or more of MDs 512, 514, and 516 and computing device 504 (which is configured as a networked microphone system server).

[217] Generally, it should be understood that one or more functions described herein may be performed by the networked microphone system individually or in combination with the media playback system. It should be further understood that one or more functions performed by the computing device 506 may be performed by CR 522 and/or one or more of PBDs 532, 534, 536, and 538 of the media playback system.

[218] As noted above, examples of voice commands include commands to control any of the media playback system controls discussed previously. For example, the voice command may be a command for the media playback system to play media content via one or more playback devices of the media playback system. In another example, the voice command may be a command to trigger a time period or window in which to receive additional voice commands associated with the initial voice command. In yet another example, the voice command may be a command to modify a playback setting for one or more media playback devices of the media playback system. Playback settings may include, for example, playback volume, playback transport controls, music source selection, and grouping, among other possibilities.

[219] Examples of media content include, talk radio, books, audio from television, music stored on a local drive, or music from media sources, among others. Examples of media sources include

Pandora® Radio, Spotify®, Slacker®, Radio, Google Play™, and iTunes Radio, among others. [220] Examples of user identification include identifying a user as a registered user, a guest user, a child, or an unknown user.

[221] Example registered users include one or more users linked or associated with the media playback system by a user profile, and/or voice configuration settings, among other possibilities. Example user profiles may include information about a user's age, location, preferred playback settings, preferred playlists, preferred audio content, access restrictions set on the user, and information identifying the user's voice, user history, among other possibilities. Example information identifying the user's voice includes the tone or frequency of a user's voice, age, gender, and user history, among other information. Example voice configuration settings may include settings that ask a user to provide voice inputs or a series of voice inputs for the media playback system to recognize and associate the user with.

[222] Example guest users include one or more users linked or associated with the media playback system by a registered user's user profile, or a guest profile created by a registered user or a guest user with the registered user's permission. Example guest profiles may include any type of information included in a user profile.

[223] In some examples, a guest with his or her own media playback system in his or her own house may have a user profile associated with his or her own media playback system stored in computing device 506. When the guest arrives at the host's home and tries to use voice commands to control the host's media playback system, the computing device 506 connected to the host's playback system may be able to access user profile settings of the guest, including but not limited to (i) music services that the guest has user accounts with, (ii) the guest's playlists, (iii) whether the host has granted the guest access to control the host's media playback system, and/or (iv) perhaps other user information in the guest's user profile.

[224] A child user may be identified by, for example, information in a user profile if the child is one of the registered users of the media playback system, information in a guest profile, and/or the tone or frequency of the user's voice.

[225] In some examples, receiving a voice command includes the media playback system receiving a voice command via one or more of PBDs 532, 534, 536, and 538 and/or computing device 506 (which is configured as a media playback system server). The computing device 506 may convert the voice command to an equivalent text command, and parse the text command to identify a command.

[226] In further examples, one or more functions may be performed by the networked microphone system individually or in combination with the media playback system. For instance, receiving a voice command includes the networked microphone system receiving a voice command via one or more of MDs 512, 514, or 516, and transmitting the voice command to the computing device 506 and/or one or more of PBDs 532, 534, 536, and 538 for further processing. The computing device 506 may convert the voice command to an equivalent text command, and parse the text command to identify a command. In some instances, the networked microphone system may convert the voice command to an equivalent text command and transmit the text command to the computing device 506 and/or one or more of PBDs 532, 534, 536, and 538 to parse the text command and identify a command.

[227] After receiving a voice command, the computing device 506 and/or one or more of PBDs 532, 534, 536, and 538 may determine whether the voice command was received from a registered user of the media playback system. In some examples, determining whether the voice command was received from a registered user may include the computing device 506 and/or one or more of PBDs 532, 534, 536, and 538 determining whether there is a user profile stored on the media playback system that is associated with the voice command. For instance, the computing device 506 and/or one or more of PBDs 532, 534, 536, and 538 may try to match the voice command to information identifying a user's voice that may be included in a user profile stored on the media playback system. The networked microphone system individually or in combination with the media playback system may determine whether the voice command was received from a registered user of the media playback system by communicating with computing device 506.

[228] In further examples, determining whether the voice command was received from a registered user may include the computing device 506 and/or one or more of PBDs 532, 534, 536, and 538 determining whether the voice command matches the voice inputs in the media playback system's voice configuration settings. For instance, a user may have previously configured the media playback system to recognize the user's voice by providing a voice input or a series of voice inputs for the media playback system to recognize and associate the user with. The voice input or series of voice inputs may be stored on the computing device 506 and/or one or more of PBDs 532, 534, 536, and 538. In some embodiments, the voice input or series of voice inputs may be stored on the networked microphone system.

[229] In still a further example, determining whether the voice command was received from a registered user may include the computing device 506, CR 522, and/or one or more of PBDs 532,

534, 536, and 538, individually or in combination, determining a confidence level associated with a voice command received. A confidence level may be determined based on user history, location, individually or in combination with any other information generally found in a user profile.

[230] For instance, the media playback system, may receive a first voice command from a registered user in the kitchen and determine a confidence level based on the voice command received. The media playback system may receive the first voice command from any one or more of NMDs 512-513, CR 522, and PBDs 532-538. Further, the media playback system may receive the same voice command from the registered user in another room in the user's house and determine a confidence level based on the voice command received. The media playback system may receive the second voice command from any one or more of NMDs 512-513, CR 522, and PBDs 532-538. The media playback system may then determine a new confidence level based on the received commands from different computing devices (e.g., CR 522), NMDs, and/or PBDs throughout the user's house. In turn, the media playback system may have a greater confidence level that the voice command was received from a registered user.

[231] In another instance, the media playback system may receive a voice command from a registered user and determine a confidence level based on user history. In operation, the media playback system may receive the voice command from any one or more of NMDs 512-513, CR 522, and PBDs 532-538. After receiving the voice command, computing device 506, CR 522, and/or one or more of PBDs 532, 534, 536, and 538, individually or in combination, may determine a higher confidence level if the voice command received includes an artist, playlist, genre, or any other information found in a user profile that is typically associated with the registered user. For example, if a registered user typically listens to songs by Michael Jackson, the media playback system may have a greater confidence level that a voice command to play "Thriller" by Michael Jackson was received from a registered user. Many other examples, similar and different from the above, are possible.

[232] In further instances, the media playback system may build a confidence level based on a registered user's pattern of voice commands found in a user's profile. For example, the media playback system may receive a voice command from a registered user to play a particular song by Britney Spears, and determine a confidence level based on the received voice command. Every time the media playback system receives the same voice command or similar voice command, such as a command to play another song by Britney Spears, the media playback system may build a higher confidence level and thus, may have a greater confidence level that the voice command was received from a registered user.

[233] Generally, as mentioned previously, it should be understood that one or more functions described herein may be performed by the networked microphone system individually or in combination with the media playback system. It should be further understood that one or more functions performed by the computing device 506 may be performed by CR 522 and/or one or more of PBDs 532, 534, 536, and 538 of the media playback system and/or perhaps one or more of NMDs 512, 514, and 516. [234] In some examples, determining a confidence level includes the media playback system determining a confidence level via computing device 506 (which is configured as a media playback system server), CR 522, and/or one or more of PBDs 532, 534, 536, and 538, individually or in combination with one another. For instance, CR 522, and/or one or more of PBDs 532, 534, 536, and 538 may (i) determine a confidence level associated with a received voice command, (ii) determine that the voice command was received from a registered user based on the determined confidence level, and (iii) send an instruction to computing device 506 (which is configured as a media playback system server) to execute the voice command. In another instance, CR 522, and/or one or more of PBDs 532, 534, 536, and 538 may (i) determine a confidence level associated with a received voice command, and (ii) send data associated with the confidence level to computing device 506 for further processing. Computing device 506 may then (i) determine that the voice command was received from a registered user based on the determined confidence level, and (ii) send an instruction to execute the voice command to CR 522, and/or one or more of PBDs 532, 534, 536, and 538.

[235] In further examples, determining a confidence level includes the media playback system determining a confidence level individually or in combination with the networked microphone system. For instance, the media playback system may receive a voice command via CR 522 and/or one or more of PBDs 532, 534, 536, and 538 of the media playback system and/or perhaps one or more of MDs 512, 514, and 516. In response to the received voice command, the media playback system may send data associated with a confidence level to one or more of NMDs 512, 514, or 516. The networked microphone may then (i) determine a confidence level associated with the received data, and (ii) execute a command or send an instruction to the media playback system to execute a command. In response to determining that the voice command was received from a registered user, the computing device 506 may configure an instruction for one or more PBDs of the media playback system. The instruction may be based on content from the voice command and information in a user profile for the registered user. Additionally or alternatively, the instruction may be based on content from the voice command and voice configuration settings stored on the computing device 506, one or more of PBDs 532, 534, 536, and 538, or the networked microphone system.

[236] In some examples, the content from the voice command may include a command for one or more PBDs of the media playback system to play media content. In some embodiments, based on the command for the media playback system to play media content and information in a user profile for the registered user, computing device 506 may configure an instruction or a set of instructions to cause one or more of PBDs to obtain media content from a preferred media source of a registered user.

[237] In another example, based on the command for the media playback system to play media content and information in a user profile for the registered user, computing device 506 may configure an instruction to cause the media playback system to play the media content via one or more PBDs of the media playback system. For instance, the computing device 506 may include an instruction to (i) configure the media playback system with one or more of the registered user's preferred playback settings and (ii) cause one or more PBDs to play the media content with the registered user's preferred playback settings.

[238] Preferred playback settings may be preferred playback settings stored in a registered user's user profile. Additionally or alternatively, preferred playback settings may be based on user history stored in a registered user's user profile. User history may include commonly used or previously used playback settings by the user to play media content.

[239] In yet another example, the content from the voice command may include a command for the media playback system to play media content but may not identify a particular playback zone of the media playback system. Based on the content and information in a user profile for the registered user, such as user history, the computing device 506 may (i) configure an instruction to cause the media playback system to play the media content via one or more PBDs within the particular playback zone of the media playback system and (ii) implement the configured instruction to play the media content via the one or more PBDs.

[240] In still another example, the content from the voice command may include a command for the media playback system to modify a playback setting. Based on the command for the media playback system to modify a playback setting and information in a user profile for the registered user, the computing device 506 may (i) configure an instruction to cause the media playback system to modify the playback setting for one or more PBDs of the media playback system and

(ii) implement the configured instruction to modify the playback setting via the one or more PBDs.

[241] Further examples may include the media playback system determining whether the voice command was received from a child. For instance, the computing device 506 may distinguish between an adult and a child based on information in a user profile if the child is one of the registered users of the media playback system. In another instance, the computing device 506 may distinguish between an adult and a child based on the tone or frequency of the user's voice.

[242] In further instances, determining whether the voice command was received from a child may include the computing device 506, CR 522, and/or one or more of PBDs 532, 534, 536, and

538 (individually or in combination) determining a confidence level associated with a voice command received. As described above, a confidence level may be determined based on user history, location, individually or in combination with any other information generally found in a user profile.

[243] In example operations, the media playback system may receive a voice command from an NMD or PBD located in a particular room where a child is likely to be (e.g., child's bedroom, playroom, basement, etc). Because the voice command was received from a device (an NMD or PBD) located in a room where a child is likely to be, the media playback system may have a greater confidence level that the voice command was received from a child.

[244] In another example, the media playback system, may receive a voice command for a particular type of content, and based on the type of content, determine a higher confidence level that the voice command was received from a child. For instance, if the media playback system receives a voice command to play the soundtrack of a cartoon show or movie, the media playback system may have a greater confidence level that the voice command was received from a child. Many other examples, similar and different from the above, are possible.

[245] In response to determining that the voice command was received from a child, some examples may include one or more PBDs being prevented from playing given media that may be inappropriate for the child. In some instances, the computing device 506 and/or one or more PBDs may be prevented from modifying a playback setting based on the content of a child's voice command. For example, the computing device 506 and/or one or more PBDs may disregard a child's voice command to increase the volume of one or more PBDs.

[246] In some cases, the media playback device may take actions based on determining whether a voice command was from a guest user instead of a registered user of the media playback system. For example, computing device 506 may have stored a previously created guest profile that may be associated with a particular guest. In another example, the computing device 506 may determine that a voice command was not received from a registered user, and may then ask the registered user if the voice command came from a guest. The registered user may then have the option to prevent the computing device 506 and/or one or more PBDs from executing all or part of the contents of the voice command.

[247] In still another example, determining whether the voice command was received from a guest user may include the computing device 506, CR 522, and/or one or more of PBDs 532, 534, 536, and 538 (individually or in combination) determining a confidence level associated with a voice command received. As described above, a confidence level may be determined based on user history, location, individually or in combination with any other information generally found in a user profile. [248] In response to determining that the voice command was received from a guest user, the computing device 506 may (1) assign a restriction setting for the guest user, (2) configure an instruction for one or more PBDs based on content from the voice command and the assigned restriction setting for the guest user, and (3) send the instruction to one or more PBDs for execution. In some example, assigning a restriction setting for a guest user may include the computing device 506 matching the voice command to a particular guest profile stored on the computing device 506 and/or one or more PBDs. The guest profile may include restriction settings, and information regarding the voice of the particular guest user, such as frequency or tone of the guest's voice, among other information described previously. A restriction setting may be any setting that limits the control of the media playback system.

[249] Further examples include the media playback system determining an order of preference to resolve conflicting voice commands received from different users. A conflicting voice command may be, for example, a voice command received from a user to play a song and a subsequent voice command received from another user to stop playing the song. Other examples are possible, such as a voice command received from a user to increase the volume of one or more PBDs 532, 534, 536, and 538, and a subsequent voice command received from another user to decrease the volume.

[250] In particular, the media playback system (via one or more of MDs 512-516, CR 522, PBDs 532-538, and/or computing device 506) may receive a voice command from a registered user or host to play a song in a playback zone. Subsequently, the media playback system may receive a conflicting voice command from a nonregistered user or guest to stop playing the song in the playback zone. To resolve this conflict, the media playback system may apply an order of preference in which voice commands received from a registered user have a higher priority than a nonregistered user or guest.

[251] In another example, the media playback system may assign an order of preference in which voice commands received from registered guests have a higher priority than nonregistered guests. In some instances, voice commands received from one registered guest may have a higher priority than another registered guest. Additionally or alternatively, voice commands received from an adult may have a higher priority than a child.

[252] In yet another example, controller-issued commands (e.g., commands issued by CR 522 or another computing device configured to control the media playback system) received by the media playback system may have a lower priority than a registered user, but may have a higher priority than a nonregistered user or guest. In some instances, some registered guests may have a higher priority than controller-issued commands. Other examples of determining and assigning an order of preference are possible.

[253] Additionally, the media playback system may take actions based on receiving a wakeup word or wakeup phrase that is associated with a registered user. A wakeup word or phrase may include a specific word or phrase (e.g., "Hey, Sonos") stored in a registered user's profile. In some instances, different users may configure the media playback system for different wakeup words or phrases. In other instances, the media playback system may be configured with the same wakeup word or phrase for all (or any) users.

[254] In some examples, a registered user may have a universal wakeup word or phrase that triggers a time period or window for the media playback system to receive additional voice commands associated with the wakeup word or phrase from the registered user, a guest, and/or a nonregistered user. For example, a registered user or host may send a voice command to add songs to a play queue (e.g., "Hey Sonos, let' s queue up songs"), which may open a time period or window (e.g., five minutes) during which the registered user can send additional voice commands to add specific songs to the play queue (e.g., "Add Thriller by Michael Jackson"). In another example, a registered user or host may send a voice command (e.g., "Hey Sonos, open control for my house system") that authorizes all guests in a house to send voice commands to add songs to a play queue, play songs, or change the volume, among other functions for a user-defined or default time period or window, or for a specific period of time (e.g., "Hey Sonos, open control for my house system for the next 4 hours" or "Hey Sonos, open control for my house system from now until Saturday at 2pm"). In some instances, a registered user or host may send a voice command (e.g., "Hey Sonos, restrict control for my living room to authorized guests") that authorizes only some of the guests to send voice commands for a time period or window to control one or more PBDs 532, 534, 536, and 538 and/or computing device 506 in a playback zone.

[255] In another example, a registered user may have a different wakeup word or phrase for different voice commands that triggers a time period or window for the media playback system to receive additional voice commands associated with the wakeup word or phrase. For example, a registered user or host may have a user-specific wakeup word or phrase to send a voice command to add songs to a play queue (e.g., "Hey Sonos, let's queue up songs" "Yo, Sonos, queue songs," "Alpha song queue," etc), and may have a different user-specific wake up word or phrase to authorize guests in a house to control the media playback device (e.g., "Hey Sonos, open access," "It's party time," etc).

[256] In still another example, a registered user or host may have a user-specific or universal wakeup word or phrase to send a voice command to authorize certain guests in a house to have restricted control of the media playback system for a time period or window. U.S. Patent Pub. No. 2013/0346859 entitled, "Systems, Methods, Apparatus, and Articles of Manufacture to Provide a Crowd-Sourced Playlist with Guest Access," which is hereby incorporated by reference in its entirety, provides in more detail some examples for restricted control of the media playback system.

[257] In a further example, a registered user or host may have a user-specific or universal wakeup word or phrase to send a voice command to authorize registered guests in a house to have open control or restricted control of the media playback back system for a time period or window, while preventing nonregistered guests from having control. In some instances, a registered user or host may have a user-specific or universal wakeup word or phrase to send a voice command to authorize adults in a house to have open control or restricted control of the media playback system for a time period or window, while preventing children from having control. Many other examples, similar and different from the above, are possible.

[258] In some instances, a registered user or host may specify the time period or window for the media playback system to receive additional voice commands. For example, a registered user or host may send a voice command (e.g., Hey, Sonos, open control for my house system for one hour") that authorizes guests to send additional voice commands to control the media playback system for the specified time period (e.g., one hour). Many other examples, similar and different from the above, are possible.

[259] In further instances, a registered user or host may close or key off the time period or window for receiving additional voice commands associated with the initial wakeup word or phrase. For example, if a registered user or host speaks a voice command with a wake up word or phrase that opens a time period or window to receive additional voice commands for an hour, the registered user or host may send another voice command (e.g., "Hey Sonos, queue songs complete") to key off the one hour time period or window before the one hour time period expires. Many other examples, similar and different from the above, are possible.

[260] Still further, examples may involve the media playback system taking actions based on receiving a wakeup word or wakeup phrase from a registered guest user. A registered guest user may have wakeup words or phrases stored in a guest profile. In response to determining that a wakeup word or wakeup phrase was received from a guest user, the media playback system may (i) determine whether there is a restriction setting associated with the guest user, (ii) configure an instruction for one or more PBDs based on the wakeup word or phrase and the assigned restriction setting for the guest user, and (iii) send the instruction to one or more PBDs for execution (e.g., to open a time period or window to receive additional voice commands associated with the wake up word command).

[261] In some instances, the media playback system may refrain from taking actions based on receiving a wakeup word or phrase from a registered guest user if, for example, the media playback system has already received a voice command with a wakeup word or phrase from a registered user or host, and the time period or window to receive additional commands has not expired.

[262] In further instances, the media playback system may take actions based on receiving a wakeup word or wakeup phrase from a registered guest user and subsequently close or key off the time period or window for receiving additional voice commands if the media playback device subsequently receives a voice command from a registered user or host. In some embodiments, the registered guest may close or key off the time period or window before it expires. In other embodiments, an adult may close or key off the time period or window before it expires if the registered guest is a child. Many other examples, similar and different from the above, are possible.

[263] After configuring an instruction for the media playback system, some examples may include the instruction being sent to one or more PBDs of the media playback system to execute the instructions. In some examples, the media playback system may send the instruction to computing device 506. In other examples, the media playback system may send the instruction to the networked microphone system.

[264] Method 1400 shown in Figure 14 presents an embodiment of a method that can be implemented within an operating environment including or involving, for example, the media playback system 100 of Figure 1, one or more playback devices 200 of Figure 2, one or more control devices 300 of Figure 3, the user interface of Figure 4, and/or the configuration shown in Figure 5. Method 1400 may include one or more operations, functions, or actions as illustrated by one or more of blocks 1402-1406.

[265] Method 1400 begins at block 1402, which includes receiving a voice command for a media playback system. In some embodiments, receiving a voice command includes the media playback system receiving a voice command via one or more of PBDs 532, 534, 536, and 538 and/or computing device 506 (which is configured as a media playback system server). In one example, the computing device 506 may convert the voice command to an equivalent text command, and parse the text command to identify a command.

[266] In one example, one or more functions may be performed by the networked microphone system individually or in combination with the media playback system. In some embodiments, receiving a voice command includes the networked microphone system receiving a voice command via one or more of MDs 512, 514, or 516, and transmitting the voice command to computing device 506 and/or one or more of PBDs 532, 534, 536, and 538 for further processing. In another example, computing device 506 and/or one or more of PBDs 532, 534, 536, and 538 may convert the voice command to an equivalent text command, and parse the text command to identify a command. In a further example, the networked microphone system may convert the voice command to an equivalent text command and transmit the text command to computing device 506 and/or one or more of PBDs 532, 534, 536, and 538 to parse the text command and identify a command.

[267] Next, method 1400 advances to block 1404, which includes determining whether the voice command was received from a registered user of the media playback system. In some examples, determining whether the voice command was received from a registered user may include computing device 506 determining whether there is a user profile stored on the media playback system that is associated with the voice command. For instance, computing device 506 may try to match the voice command to information identifying a user's voice in a user profile.

[268] In another example, determining whether the voice command was received from a registered user may include determining whether the voice command matches the voice inputs stored in the media playback system's voice configuration settings. For instance, a user may have previously configured the media playback system to recognize the user's voice by providing a voice input or a series of voice inputs for the media playback system to recognize and associate the user with. Voice configuration settings may be stored on the computing device 506 and/or one or more of PBDs 532, 534, 536, and 538. Alternatively, the computing device 506 may communicate with the networked microphone system to store the voice configuration settings.

[269] In still another example, determining whether the voice command was received from a registered user may include determining a confidence level associated with a voice command received. The confidence level may be a confidence level associated with the person who spoke the command, e.g., a confidence level that the command was received from a registered user generally, a confidence level that the command was received from a specific registered user, a confidence level that the command was received from someone other than a registered user, a confidence level that the command was received from a registered guest, a confidence level that the command was received from a child, and/or a confidence level that the command was received from a particular child. The confidence level may also be a confidence level associated with the content of the request, e.g., a confidence level that the request was a request to play "AC/DC" rather than, for example, "Hayseed Dixie," which are two very different bands with very similar sounding names. The confidence level may be determined based on user history, location, individually or in combination with any other information generally found in a user profile. In operation, determination of the confidence level may be performed by any one or more of CR 522, PBDs 532-538, MDs 512-516, and/or computing devices 504-508, individually or in combination.

[270] In example operations, the media playback system may receive a voice command from a registered user in the kitchen and determine a confidence level based on the voice command received. The media playback device may receive the voice command from any one or more of CR 522, NMDs 512-516, and/or PBDs 532-538. Next, the media playback system may receive the same voice command from the registered user in another room in the user's house and determines a confidence level based on the voice command received. The media playback system may then determine a new confidence level based on the received commands from different devices in different rooms throughout the user's house, based at least in part on the room where the voice command was received. In turn, the media playback system may have a greater confidence level that the voice command was received from a registered user.

[271] In another example, the media playback system may receive a voice command from a registered user and determine a confidence level based on user history. In particular, the media playback system may determine a higher confidence level if the voice command received includes an artist, playlist, genre, or any other information found in a user profile that is typically associated with the registered user. For example, if a registered user typically listens to songs by Michael Jackson, the media playback system may have a greater confidence level that the voice command to "Play Thriller" was received from a registered user. Likewise, if the registered user typically listens to songs by Michael Jackson or songs from the 1980's in general, the media playback system may have a greater confidence level that the voice command to "Play Thriller" is a command to play the song "Thriller" by the artist Michael Jackson rather than the song "Thriller" by the band Fall Out Boy . Many other examples, similar and different from the above, are possible.

[272] In still another example, the media playback system may build a confidence level based on a registered user' s pattern of voice commands found in a user' s profile. For example, the media playback system may receive a voice command from a registered user to play a particular song by Britney Spears, and determine a confidence level based on the received voice command. Every time the media playback system receives the same voice command or similar voice command, such as a command to play another song by Britney Spears, the media playback system may build a higher confidence level and may have a greater confidence level that the voice command was received from that registered user. [273] Finally, method 1400 advances to block 1406, which includes in response to determining that the voice command was received from a registered user, configuring an instruction for the media playback system based on content from the voice command and information in a user profile for the registered user.

[274] In some examples, the content from the voice command may include a command for one or more PBDs of the media playback system to play media content. In some instances, based on the command for one or more PBDs to play media content and information in a user profile for the registered user, the computing device 506 may configure an instruction to cause the media playback system to obtain media or audio content from a preferred media source of a registered user.

[275] In further instances, based on the command for the media playback system to play media content and information in a user profile for the registered user, the media playback system may configure an instruction to cause the media playback system to play the media content via one or more PBDs of the media playback system. In particular, the computing device 506 may include instructions to (i) configure the media playback system with one or more of the registered user's preferred playback settings and (ii) cause one or more PBDs of the media playback system to play the media content with the registered user's preferred playback settings. Preferred playback settings may be preferred playback settings stored in a registered user's user profile. Additionally or alternatively, preferred playback settings may be based on user history stored in a registered user's user profile. User history may include commonly used or previously used playback settings by the user to play media content.

[276] In some cases, the content from the voice command may include a command for one or more PBDs of the media playback system to play media content but may not identify a particular listening zone or playback zone of the media playback system. Based on this content and information in a user profile for the registered user, such as user history, computing device 506 may configure an instruction or a set of instructions to cause the media playback system to play the media content via one or more media playback devices within the particular playback zone of the media playback system.

[277] In another case, the content from the voice command may include a command for the media playback system to modify a playback setting. Based on the command for the media playback system to modify a playback setting and information in a user profile for the registered user, computing device 506 may (i) configure an instruction or a set of instructions to cause the media playback system to modify the playback setting for one or more PBDs of the media playback system, and (ii) implement the configured instruction or set of instructions to modify the playback setting via the one or more PBDs.

[278] Further examples may involve the media playback system determining whether the voice command was received from a child. For example, the computing device 506 may distinguish between an adult and a child based on information in a user profile if the child is one of the registered users of the media playback system. In another example, the computing device 506 may distinguish between an adult and a child based on the tone or frequency of the user's voice.

[279] In still another example, determining whether the voice command was received from a child may include determining a confidence level associated with a received voice command. As described above, a confidence level may be determined based on user history, location, individually or in combination with any other information generally found in a user profile.

[280] In some instances, the media playback system may receive a voice command via a device (e.g., any of NMDs 512-516 or PBDs 532-538) in a particular room where a child is likely to be (e.g., child's bedroom, playroom, basement, etc). Because the command was received from a device located in a room where a child is likely to be, the media playback system may have a greater confidence level that the voice command was received from a child.

[281] In further instances, the media playback system may receive a voice command and determine a confidence level that the command was received from a child based on the content of the voice command. For example, if the media playback system receives a voice command to play a soundtrack of a cartoon show or movie, the media playback system may have a greater confidence level that the voice command was received from a child. Many other examples, similar and different from the above, are possible.

[282] In response to determining that the voice command was received from a child, some examples may involve one or more PBDs of the media playback system being prevented from playing given media that may be inappropriate for the child. Some example may involve the computing device 506 and/or one or more PBDs being prevented from modifying a playback setting based on the content of a child's voice command. For example, the computing device 506 may disregard a child's voice command to increase the volume of one or more PBDs.

[283] Additionally, further examples may involve actions based on determining whether a voice command was received from a guest user instead of a registered user of the media playback system. In some instances, computing device 506 may have stored a previously created guest profile that may be associated with a particular guest. In further instances, computing device 506 may determine that a voice command was not received from a registered user, and may then ask the registered user if the voice command came from a guest. [284] Furthermore, determining whether the voice command was received from a guest user may include the media playback system determining a confidence level associated with a voice command received. As described above, a confidence level may be determined based on user history, location, individually or in combination with any other information generally found in a user profile.

[285] In response to determining that the voice command was received from a guest user, computing device 506 may (1) assign a restriction setting for the guest user, (2) configure an instruction for one or more PBDs based on content from the voice command and the assigned restriction setting for the guest user, and (3) send the instruction to one or more PBDs for execution. In some embodiments, assigning a restriction setting for a guest user may include computing device 506 matching the voice command to a particular guest profile stored on the computing device 506.

[286] Still further, examples may involve the media playback system applying an order of preference to resolve conflicting voice commands received from different users. Conflicting voice commands may be, for example, a voice command received from a user to play a song and a subsequent voice command received from another user to stop playing the song. Other examples are possible, such as a voice command received from a user to increase the volume of one or more playback devices (e.g., PBDs 532, 534, 536, and 538) and a subsequent voice command received from another user to decrease the volume. In particular, the media playback system may receive a voice command from a registered user or host to play a song in a playback zone. Subsequently, the media playback system may receive a conflicting voice command from a nonregistered user or guest to stop playing the song in the playback zone. To resolve this conflict, the media playback system may apply an order of preference in which voice commands received from a registered user have a higher priority than voice commands from a nonregistered user or guest.

[287] In some example, the media playback system may assign an order of preference in which voice commands received from registered guests have a higher priority than voice commands received from nonregistered guests. In one instance, voice commands received from one registered guest may have a higher priority than another registered guest. In another instance, voice commands received from an adult may have a higher priority than a child.

[288] In further instances, controller-issued commands received by the media playback system (e.g., commands received from CR 522 or other computing devices configured to control the media playback system, or perhaps commands received from computing device 506) may have a lower priority than a registered user, but may have a higher priority than a nonregistered user or guest. In some embodiments, some registered guest may have a higher priority than controller-issued commands. Other examples of determining and assigning an order of preference are possible.

[289] After configuring an instruction for the media playback system, some embodiments may send the instruction to one or more PBDs of the media playback system to execute the instructions. In some embodiments, the computing device 506 may send the instruction to the networked microphone system.

[290] Method 1500 shown in Figure 15 presents an embodiment of a method that can be implemented within an operating environment including or involving, for example, the media playback system 100 of Figure 1, one or more playback devices 200 of Figure 2, one or more control devices 300 of Figure 3, the user interface of Figure 4, and/or the configuration shown in Figure 5. Method 1500 may include one or more operations, functions, or actions as illustrated by one or more of blocks 1502-1506.

[291] Method 1500 begins at block 1502, which includes receiving a wakeup word or wakeup phrase associated with a voice command for a media playback system. A wakeup word or phrase, as described above, may be a specific word or phrase (e.g., "Hey, Sonos") stored in a user profile. In some embodiments, the media playback system, may receive a universal wakeup word or phrase (e..g., "Hey Sonos") associated with a voice command of a registered user. Additionally or alternatively, the media playback system may receive a universal wakeup word or phrase associated with a voice command of a registered guest user. In some instances, the media playback system may be configured for different registered users to have different wake up words or phrases.

[292] In particular, a registered user may have a different, user-specific wakeup word or phrase for different voice commands. For example, the media playback system may receive a wakeup word or phrase to add songs to a play queue (e.g., "Hey Sonos, let's queue up songs" "Yo, Sonos, queue songs," "Alpha song queue," etc), and may receive a different user-specific wake up word or phrase to authorize guests in a house to control the media playback device (e.g., "Hey Sonos, open access," "It's party time," etc).

[293] Next, method 1500 advances to block 1504, which includes determining whether the wakeup word associated with the voice command was received from a registered user of the media playback system. In some embodiments, determining whether the wakeup word associated with a voice command was received from a registered user may be similar to determining whether a voice command was received from a registered user described in block 1404 for method 1400.

[294] Finally, method 1500 advances to block 1506, which includes in response to determining that the wakeup word associated with the voice command was received from a registered user, configuring an instruction for the media playback system based on the received wakeup word, content from the voice command, and information in a user profile for the registered user.

[295] In some examples, the instruction for the media playback system may include an instruction to open a time period or window for the media playback system to receive additional voice commands associated with the received wakeup word from the registered user, a guest, and/or a nonregistered user. For instance, in response to determining that the wakeup word to add songs to a play queue was received from a registered user, the media playback system may open a time period (e.g., five minutes) for the registered user to send additional voice commands to add specific songs to the play queue (e.g., "Add Thriller by Michael Jackson").

[296] In another example, in response to determining that the wakeup word to authorize all guests to control the media playback system was received from a registered user, the media playback system may open a time period (e.g., one hour) to allow all guests in a house to send voice commands to add songs to a play queue, play songs, or change the volume, among other functions for a user-defined or default time period or window.

[297] Next, method 1500 advances to block 1506, which includes in response to determining that the wakeup word was received from a registered user, determining whether the wakeup word is associated with a restriction setting based on the received wakeup word or phrase, content from the voice command, and information in a user profile for the registered user.

[298] In some examples, the media playback system may configure an instruction based on restriction settings in a user profile for the registered user or registered guest user. A wakeup word received from a registered user may be associated with restriction settings for certain guests. For instance, a registered user or host may send a voice command (e.g., "Hey Sonos, restrict control for my living room to authorized guests") that authorizes registered guests to send additional voice commands for a time period or window to control one or more PBDs 532, 534, 536, and 538 and/or computing device 506 in a playback zone, while preventing nonregistered guests from sending additional voice commands. In another instance, the wake up word received may be associated with restriction settings for a child. Many other examples, similar and different from the above, are possible, including but not limited to the examples described elsewhere herein.

[299] In further examples, a wakeup word received from a registered user may be associated with restriction settings that allow certain guests to have restricted control of the media playback system for a time period or window. U.S. Patent Pub. No. 2013/0346859 entitled, "Systems, Methods, Apparatus, and Articles of Manufacture to Provide a Crowd-Sourced Playlist with Guest Access," which is hereby incorporated by reference in its entirety, provides in more detail some examples for restricted control of the media playback system. [300] In response to determining that a wakeup word or wakeup phrase was received from a guest user, the media playback system may (i) determine whether there is a restriction setting associated with the guest user, (ii) configure an instruction for one or more PBDs based on the wakeup word or phrase and the assigned restriction setting for the guest user, and (iii) send the instruction to one or more PBDs for execution (e.g., to open a time period or window to receive additional voice commands associated with the wake up word command).

[301] In some examples, the media playback device, via the one or more PBDs 532, 534, 536, and 538 and/or computing device 506, may refrain from taking actions based on receiving a wakeup word or phrase from a registered guest user if, for example, the media playback system has already received a voice command with a wakeup word or phrase from a registered user or host, and the time period or window to receive additional commands has not expired.

[302] After configuring an instruction for the media playback system, some examples may involve sending commands to one or more PBDs of the media playback system to execute the instruction. In some examples, the computing device 506 may send the commands or set of commands to one or more PBDs of the media playback system.

[303] In some instances, after configuring an instruction for the media playback system to execute, a registered user or host may close or key off the time period or window for receiving additional voice commands associated with the instruction. For example, if a registered user or host sends a voice command with a wake up word or phrase that opens a time period or window to receive additional voice commands for an hour, the registered user or host may send another voice command (e.g., "Hey Sonos, queue songs complete") to key off the one hour time period or window before the one hour time period expires. Many other examples, similar and different from the above, are possible.

[304] Further examples may involve the media playback system taking actions based on receiving a wakeup word or wakeup phrase from a registered guest user and subsequently close or key off the time period or window for receiving additional voice commands if the media playback device subsequently receives a voice command from a registered user or host. In some embodiments, the registered guest may close or key off the time period or window before it expires. In other embodiments, an adult may close or key off the time period or window before it expires if the registered guest is a child. Many other examples, similar and different from the above, are possible.

VI. Example Systems, Apparatus, and Methods for Music Service Selection

[305] Examples described herein relate to identifying and accessing suitable streaming services

(e.g. streaming audio tracks) based on commands. [306] Methods 1600 and 1700 shown in Figures 16 and 17 present embodiments of methods that can be implemented within an operating environment involving, for example, the media playback system 100 of Figure 1, one or more of the playback device 200 of Figure 2, and one or more of the control device 300 of Figure 3. Methods 1600 and 1700 may include one or more operations, functions, or actions as illustrated by one or more of blocks 1602-1614 and 1702-1708.

[307] Figure 16 is an example flow diagram related to a process for identifying a music service for streaming. At 1602, NMDs 512-516 or CR 522 may receive an indication of a command which may indicate audio content to be provided for playback from a streaming service. In some instances, a command received by NMDs 512-516 may take the form of a voice command, whereas a command received by CR 522 may be a textual command input on a user interface.

[308] Typically, the received command may include information relating to one or more audio content types. In some cases, the command may include the name of an artist, song, album, or genre (i.e. "play Led Zeppelin," "play 70's rock".) Additionally, the command may include prefix and/or suffix type information (e.g. "best of... ," "...radio," "...playlist") that may be further indicative of content type. For example, a command "play Led Zeppelin radio" may indicate a user's desire to listen to a specific artist's music in a radio format. The received command may include various other forms of information indicative of content type as well.

[309] The received indication of a command at 1602 may be processed in various ways. In one implementation, the processing of a command may be accomplished via cloud network 502. In such a case, a voice command received by NMDs 512-516 may cause the voice input to be transmitted via communication network 546 to one or more of computing device 504-508 for processing. The cloud computing device may convert the voice input to an equivalent text command and parse the text command to identify the command. In another configuration the cloud computing device may only convert the voice input to an equivalent text format and send the equivalent text to a second computing device for parsing and command identification. In other instances, the NMDs 512-516 may convert the voice input to text prior to transmission via communication network 546 or both convert a voice input to text and perform the parsing to identify the command. In the case of CR 522 receiving a textual command, the text input may be transmitted via communication network 546 to one of computing devices 504-508 for parsing and command identification. In another instance, CR 522 may perform the parsing of the text input to identify the command.

[310] In another implementation, the processing of a command may be accomplished locally over a local network. In such a case, a voice command received by NMDs 512-516 may cause the voice input to be transmitted via a local network to one or more local computing devices for processing. The local computing device may convert the voice input to an equivalent text command and parse the text command to identify the command. In another configuration local computing device may only convert the voice input to equivalent text format and send the the equivalent text format to a second local computing device for parsing and command identification. In other instances, the MDs 512-16 may convert the voice input to text prior to transmission via the local network or both convert a voice input to text and perform the parsing to identify the command. In the case of CR 522 receiving a textual command, the text input may be transmitted via the local network to a local computing device for parsing and command identification. In another instance, CR 522 may perform the parsing of the text input to identify the command. Other configurations for processing a command may exist.

[311] At 1604, a computing device may identify a content type indicated by the command. The identification of content type may be accomplished via cloud network 502 or locally over a local network.

[312] In one implementation a computing device may use content type logic to correlate the commands or portions of the commands to content type(s). Using the aforementioned example of "Play Led Zeppelin radio," a computing device may identify the content type as "Artist/Radio Station." In another example, the command "Play Electronic Dance Music" may cause the content type to be identified as "Genre." Similar identifications may be made for the various other content types. The identification of content type may be accomplished for instance through inputting a keyword of the command such as "Dance Music" and the database may map the keyword to an indication for content type such as the Genre. The database may reside on the computing device or on the network microphone device in some examples.

[313] If it is determined that no content type is identified at 1608 the method may proceed directly to 1614. A content type may be unidentifiable for a number of reasons including user input error, poor speech input quality, background noise, or simply no such content type is known. For example, the content type of a command indicating an obscure artist name may be unable to be identified.

[314] At 1614, an indication may be output by a computing device and transmitted via the communication network 546 to any or all of NMDs 512-516, PBDs 532-538, or CR 522 indicating that "the content is unavailable". The indication that no content is available may then be presented audibly or visually to a user. For example, the NMDs and PBDs may output audible indications, whereas the CR may be capable of outputting both audible and visual indications. The indication sent may, additionally or alternatively, cause a suggestion to be output to a user instructing he or she to re-input the command. For instance, the suggestion might be for the user to specify some additional identifying characteristic so as to assist in identifying the content type.

[315] However, if it is determined at 1606 that a content type has been identified the method may proceed to 1608 to identify a streaming service that is able to play the content type identified at 1604. Generally, particular streaming services may vary significantly from other streaming services not only in what audio content they provide but also in how they present the content. For instance, each streaming service may possess relatively exclusive rights to stream the music content of certain artists or albums. In another instance, some streaming services, such as Pandora® , may only stream in radio station format, whereas others like Spotify® may be capable of streaming music on demand by artist, song, album, or radio station. In view of this fact, it is apparent that not all streaming services may be capable of streaming a content type identified at 704.

[316] In one instance, a computing device may identify a suitable streaming service by comparing metadata of the identified content type to a look-up table(s) that may contain entries for the content available and in what format the content is capable of being provisioned for various streaming services. In some cases, the computing device may direct the query to the entire universe of streaming services available. In other cases, the computing device may only query a sub-set of available streaming services. Such a sub-set may be chosen by the computing device based on a number of factors alone or in combination including streaming services a user is registered with, the amount of days since a user has last used a streaming service, streaming service popularity, user settings, among others. For example, if a user has only registered with Pandora® , Spotify®, and Deezer®, the computing device may only query those streaming services to determine which are suitable.

[317] Such look-up table(s) may be stored in memory on a computing device or at an external location such as the computing device or at the music service. Given that the various look-up tables may be distributed amongst a variety of music services, a computing device may query each music service simultaneously or sequentially in order to find a match. Other manners of identifying a suitable streaming service are possible.

[318] In one implementation the identification of a streaming service at 1608 may further involve determining a currently available playback capacity of a streaming service that a user is registered with. Generally, some streaming services may limit the number of active streams available for a registered account at any given time. For example, Spotify® may only allow a single active stream per a registered account. In one instance, a computing device may determine the currently available playback capacity by querying the services a user is registered with for a usage status (i.e. how many active streams) and then comparing the usage status to capacity restriction data (i.e. Spotify = 1 active stream only). In another example, the streaming services may output a binary value in response to the query to indicate whether or not a stream is available. The available playback capacity may be determined in other ways.

[319] In this implementation, the computing device at 1608 may identify a registered service as supporting the content type indicated by the command and further determine the registered service does not have a stream available. For example, if a user and their spouse both share a Spotify® account and music is being streamed to the spouse's smartphone device at the gym when the user issues the command "Play Eye of the Tiger," the computing device may identify Spotify® as being able to play the song and also that a stream is unavailable. Such a case may cause the computing device to identify another streaming service capable of supporting the content type, such as Apple Music®

[320] In another instance, the computing device may be unable identify another streaming service that may support the content type. This may occur for example, if a user requests content exclusively provided by a single streaming service, the computing device only considers sub-set of streaming services, among other examples. In such an instance, the computing device may cause a currently active stream to be "stolen" for use in providing the content corresponding to the command. Using the aforementioned, example if no other streaming service is capable of supporting "Eye of the Tiger," the stream to spouse at the gym may be cancelled and provided to the user.

[321] In one instance, on the occurrence that an available streaming service is identified at 1610 as capable of supporting the identified content type, the process may proceed to 1614 to cause any combination of PBDs 532-538 to playback the audio content. The music service may be accessed, in one instance through querying the service API for content and causing the content to be streamed. The audio content may be streamed directly from computing device 508 or from various other computing devices associated with streaming music services directly to PBDs 532-538 upon a request from either PBDs 532-538 or computing devices 504-506. Other ways of initiating and causing the playback of streaming media content also exist.

[322] In another instance, if a streaming service identified at 710 is not presently available (i.e. application not installed, user not registered) a computing device may cause, at 714, the output of an indication pertaining to a suggestive course of action to enable the music service to used. The indication may be sent any combination of MDs 512-516, PBDs 532-538, or CR 522 and may cause an audible and/or visual suggestion indicating the identified music service capable of supporting the content type and/or present instructions on how to sign up for, download, or otherwise utilize the music service.

[323] Figure 17 is another example flow diagram related to an example process for identifying a streaming music service in blocks 1610 and 1612 of Figure 16. At 1702 a computing devices may cause a confidence metrics or metrics to be determined for streaming service(s) based at least in part on the content type identified by the command. In general, a confidence metric may be a numerical or percentage value (e.g. 1-100) calculated for a streaming service or services. Such confidence metric(s) may reflect the likelihood that a selection of a particular music service for providing streaming audio will result in providing the user with the content he or she desires. For example, a streaming service assigned a confidence metric of 80 may be more suitable for content provision than a streaming service with a confidence metric of 45, where a higher number indicates a higher confidence level of suitability.

[324] The calculated confidence metrics for streaming services may be based on a number criterion such as content type, playback capacity, usage history, external data, among others. Such criteria may be constituted by various data types and may be retrieved from various sources such as the NMDs, CRs, PBDs, computing devices, music services, and various external sources. The data may be aggregated and stored in a central location such as a database associated with computing devices 504 or 506 or in a distributed fashion.

[325] In one instance, the confidence metric may take into account a streaming service's suitability to support the content type indicated by a command. Determining suitability of various streaming services to provide a content type may involve mapping metadata relating to an identified content type to a look-up table or querying the tables of the various music services and assigning a value to the number of fields that match. As an example, a command that specifies "play Jackson 5 playlist" may have the content type "Artist/playlist." In such a case, the look-up table(s) of two streaming services such as Pandora® and Spotify® may both contain references to Jackson 5 in an artist field. However, only Spotify® may contain a playlist field identifying Jackson 5, as Pandora® does not support the content type playlist. In such a case, Pandora® may be afforded content type value of 2 and Spotify® a value of 1.

[326] Additionally, or alternatively, strength of field matching may be employed. Using the aforementioned example and assuming that the Spotify® service does not contain an artist field corresponding to Jackson 5 but have artist entry for Michael Jackson, who may be identified by a computing device utilizing music metadata as having been a former member of Jackson 5. In such, a case the Spotify® service may not be given a value of 0 for the artist field, but rather the service may be afforded an adjusted value less than 1. Other forms of determining streaming service content type suitability value are possible.

[327] In another instance, the confidence metrics may be calculated in part on various forms of historical usage data. The various historical data types may be retrieved from various sources such as the NMDs, CRs, PBDs, computing devices, music services, and various external sources. The data may be aggregated and stored in a central location such as a database associated with computing devices 504 or 506 or in a distributed fashion.

[328] For example, the usage data may indicate how frequently a user accesses a given streaming service. As another example, the usage data may include time based data to identify the service a user normally uses at various times of the day, days of the week, and months of the year. For example, a user may prefer to listen to iHeartRadio® in the morning and to Tidal® in the evenings. As another example, in a multi-zone environment such usage data may indicate user preferences regarding streaming services on a per zone basis. For example, if a user typically accesses Spotify® 90% of the time in a bathroom zone and Deezer® 80% of the time in a living area zone the confidence metrics corresponding to Spotify® and Deezer® may vary significantly depending on which zone the user intends to stream audio to. In such, a case if the user desired to listen to music in the bathroom, Spotify® would be the much better choice. Various other types of historical usage data may exist as well.

[329] Additionally, the confidence metrics may be determined in part based on various "external" data types. Such data may include macro type data that may take into account geographic location or demographic data, among other possibilities. For example, such macro data may indicate that a particular streaming service is not available or is unpopular in certain regions of the world or sub-regions of a country, which may result in a lower confidence metric. In such a case, the confidence metric for that streaming service may vary dependent on the geographic location. Types of "external" data may further include weather data, which may be taken into account, for example a user's preference to listen to Spotify® on the patio on cool, dry summer evenings. Additionally, calendar data may be considered to identify holidays and the music service typically streamed on those days. Other forms of external data may exist.

[330] Furthermore, it is possible to combine the various criteria to determine a confidence metric for a given streaming service. For instance, a user may prefer to use Pandora® to listen to a wide variety of classical music in the living room but may exclusively use Apple Music® to listen to full albums of their favorite artist in the bedroom. In such a case, content type(s) (genre, artist) may be combined with a user history relating to location of use of particular music services to determine a confidence metric for a particular music service. Numerous other combinations may exist.

[331] A computer implemented algorithm may map the criterion described above to a confidence metric for streaming service. For instance, one or more criterion may be mapped into a table which outputs the confidence metric. In some embodiments, the algorithm may involve weighting of various criteria such as content types, usage history, and/or "external data." The algorithm may assign different weights to the various criteria based on relative importance. For example, a user preference may be deemed more influential and afforded more weight than demographic data. The weighting of inputs may be defined by the system, by user settings, or adjustable dynamically based on user feedback. Each of weighted inputs may be input into a table, for example, for mapping to confidence metrics which are then combined to form an aggregated confidence metric for a music service as a whole.

[332] At 1704 either computing device 504 or 506 may determine whether a given streaming service satisfies a confidence condition. The confidence condition may be satisfied in a number of ways. In one instance, the confidence condition may be satisfied if the confidence metric for a given streaming service exceeds a confidence level threshold, which may be a default system setting or adjustable by a user. For example, if three confidence metrics are calculated as Servicel=85, Service2=83, Service3=25 with the threshold confidence level being 80, may cause Servicel to be output for streaming or suggested to a user at 1706 (as discussed above in reference to 1614).

[333] In another instance, the confidence condition may only be satisfied upon (1) a streaming service with a calculated confidence metric above the threshold confidence level and (2) the two highest calculated confidence metrics are not within a threshold range of one another. For example, if the confidence level range were 3 in the case mentioned directly above the confidence condition would not be satisfied due to confidence metrics of Servicel and Service2. The confidence condition may additionally or alternatively incorporate various other rules.

[334] At 1708 an error state may be triggered by either computing device 504 or 506 if the confidence condition is found not to be satisfied at 1708. An error state may trigger certain events to be caused, such as outputting an indication that the content is unavailable, as discussed in reference to 1616. In another instance, a triggered error state may cause content to be streamed via a default streaming service or a preferred partner service. In yet another instance, the error state may cause a computing device to output an indication to one or all of NMDs 512-516, PBDs 532-538, or CR 522 to cause an audible or visual presentation of an instruction or query directed at obtaining more information in relation to the already received command. [335] In one instance, a user may be instructed to provide an additional content type such as artist or album. For example, if an initial command were "Play radio station" a user may be instructed "Please provide genre."

[336] In another instance, a user may be asked a question or series of questions that may help further tune the initial command and thereby the confidence metrics for the various streaming services. For example, if an initial command were directed to the broad genre of "Electronic," the user may be asked whether they prefer certain sub-genres such as "Drum and Bass" or "Trance." Additionally or alternatively, the user may be asked questioned unrelated to music such as "What are you doing?" or "How do you feel?" to infer what sub-genre a user may want to listen to. For example, if the user answered "Reading" and/or "Relaxed" to the aforementioned questions it may be inferred that the user is interested in the sub-genre Trance. Various other examples of queries are possible.

[337] The user responses to the instructions or questions may take the form of speech input which may be received by an NMD or a textual input via a graphical interface of a CR. The user responses may cause process 1600 to repeat which may result in the confidence condition being satisfied or an additional error state being triggered.

VII. Further Example Features

[338] (Feature 1) A method for a playback system comprising at least one playback device and a network device comprising a microphone device, the method comprising: obtaining acoustics of an environment in which a playback device is located; identifying a network microphone device in an environment of the playback device; providing the acoustics to the network microphone device; and applying, by the network microphone device, the acoustics to a voice input received by the network microphone device.

[339] (Feature 2) The method of feature 1, further comprising:

providing audio content being played back in the environment by the playback device to the network microphone device; applying, by the microphone device, the provided audio content to the voice input received by the network microphone device.

[340] (Feature 3) The method of feature 1 or 2, wherein the identified network microphone device is at least one of: bonded to the playback device; and in a same zone as the playback device.

[341] (Feature 4) The method of any preceding feature, wherein the playback device that sends the acoustics to the microphone device is the playback device of a plurality of playback devices in the media playback system that is closest to the microphone device. [342] (Feature 5) The method of any preceding feature, further comprising: receiving, from the network microphone device, an indication of direction of the voice input; and adjusting directionality of audio content played by the playback device based on the received indication of direction of the voice input.

[343] (Feature 6) The method of any preceding feature, wherein causing the network microphone device to apply the acoustics to voice input received by the network microphone device comprises causing the playback device to apply a filter based on the acoustics to the received voice input.

[344] (Feature 7) The method of any preceding feature, wherein the acoustics of the environment are obtained in a calibration phase in which: one or more playback devices output one or more tones, the microphone of the network device receives the tones output by the one or more playback devices; and the received tones are analyzed to determine the acoustics of the environment.

[345] (Feature 8) The method of any preceding feature, wherein providing the acoustics to the microphone device comprises one of: sending the acoustics to the microphone device as a message; and providing the microphone device access to the acoustics.

[346] (Feature 9) A computer readable storage medium including instructions for execution by a processor, the instructions, when executed, cause the processor to implement a method according to any preceding feature.

[347] (Feature 10) A media playback system comprising at least one playback device and a network device comprising a microphone device, the media playback system configured to perform the method of any preceding feature.

[348] (Feature 11) A method for a computing device, the method comprising: receiving a voice input comprising: a command word, one or more media variable instances, and one or more zone variable instances; determining a media playback system command corresponding to the command word; identifying media content corresponding to the one or more media variable instances; and causing the media playback system to execute the media playback system command on the media content based on the one or more zone variable instances.

[349] (Feature 12) The method of feature 11, further comprising: before determining that the media playback system command corresponds to the command word, determining that the voice input corresponds to music control, wherein the media playback system command corresponding to the command word is determined based on available commands corresponding to music control. [350] (Feature 13) The method of feature 11 or 12, further comprising: determining one or more media items from the identified media content; and transmitting an identifier indicating a network storage location of the one or more media items.

[351] (Feature 14) The method of any preceding features 11 to 13, further comprising: identifying the command word in the voice input based on the command word being in a first position; identifying the one or more media variable instances in the voice input based on the one or more media variable instances being a second position; and identifying the one or more zone variable instances in the voice input based on the one or more zone variable instances being in a third position.

[352] (Feature 15) The method of any preceding features 11 to 14, wherein determining the media playback system command corresponding to the command word comprises: determining an intent corresponding to the command word; and determining the media playback system command corresponding to the intent.

[353] (Feature 16) The method of any preceding features 11 to 15, wherein the one or more zone variable instances of the received voice input indicate one or more zones of a media playback system, the one or more zones comprising one or more playback devices.

[354] (Feature 17) The method of any preceding features 11 to 16, wherein causing the media playback system to execute the media playback system command on the media content comprises: transmitting, from the computing device to the media playback system, a message comprising command information identifying: the media playback system command, media information identifying media content corresponding to the one or more media variable instances, and one or more zone identifiers corresponding to the one or more zone variable instances.

[355] (Feature 18) A tangible, non-transitory computer-readable medium storing instructions, that when executed by one or more processors of a computing device, cause the computing device to perform the method of any preceding features 11 to 17.

[356] (Feature 19) A computing device, comprising: one or more processors; memory storing instructions that when executed by the one or more processors cause the computing device to perform the method of one of features 11 to 17.

[357] (Feature 20) A method comprising: receiving a voice command for a media playback system; determining whether the voice command was received from a registered user of the media playback system; and if the voice command was received from a registered user, configuring an instruction for the media playback system based on content from the voice command and information in a user profile for the registered user. [358] (Feature 21) The method of feature 20, further comprising sending the instruction to one or more playback devices of the media playback system.

[359] (Feature 23) The method of feature 21 or 22, wherein the voice command is a command for the media playback system to play media content.

[360] (Feature 24) The method of feature 23, wherein the configured instruction instructs the media playback system to obtain the media content from a preferred media source of the registered user.

[361] (Feature 25) The method of feature 23, wherein the configured instruction causes the media playback system to play the media content via one or more media playback devices of the media playback system.

[362] (Feature 26) The method of feature 23, wherein the configured instruction comprises instructions to: configure the media playback system with one or more of the registered user's preferred playback settings; and cause the media playback system to play the media content via media playback system with the registered user's preferred playback settings.

[363] (Feature 27) The method of feature 26, wherein the registered user's preferred playback settings comprise one or more of: a preferred playback volume and a preferred audio equalization setting.

[364] (Feature 28) The method of feature 21 or 22, wherein: the voice command is a command for the media playback system to modify a playback setting, and the configured instruction causes the media playback system to modify the playback setting for one or more media playback devices of the media playback system.

[365] (Feature 29) The method of any preceding features 20 to 28, further comprising: if the voice command was not received from a registered user, determining whether the voice command was received from a guest user; and if the voice command was received from a guest user: assigning a restriction setting for the guest user; configuring an instruction for the media playback system based on content from the voice command and the assigned restriction setting for the guest user; and sending the instruction to the media playback system.

[366] (Feature 30) The method of any preceding features 20 to 29, wherein the media playback system comprises a playback network and one or more playback devices.

[367] (Feature 31) The method of any preceding features 20 to 30, further comprising, if the voice command was not received from a registered user, disregarding the voice command.

[368] (Feature 32) Tangible, non-transitory computer-readable media having instructions encoded thereon, wherein the instructions, when executed by one or more processors, cause a computing device to perform a method according to any preceding features 20 to 31. [369] (Feature 33) A media playback system comprising: one or more processors; and tangible, non-transitory computer-readable media according to feature 32.

[370] (Feature 34) A method comprising: receiving an indication for content; identifying at least one content type based on the received indication; determining at least one music service from a plurality of music services that supports the at least one content type; based on the at least one music service supporting the at least one content type, causing the at least one music service to transmit audio content associated with the content type.

[371] (Feature 35) The method of feature 34, wherein the indication for content is received via a network microphone device.

[372] (Feature 36) The method of feature 34 or 35, wherein determining the at least one music service comprises determining a confidence metric corresponding to the at least one music service from the plurality of music service.

[373] (Feature 37) The method of feature 34 or 35, wherein determining the at least one music service comprises determining whether a confidence level condition is satisfied.

[374] (Feature 38) The method of feature 37, wherein the confidence metric is based on a history of accesses to a music service of the plurality of music services.

[375] (Feature 39) The method of feature 38, wherein the confidence metric is further based on a particular location of use of the particular music services.

[376] (Feature 40) The method of any preceding features 34 to 39, further comprising:

receiving a second indication for content; identifying at least one content type based on the received indication; determining that no one music services of the plurality of music services supports the at least one content type; and causing an error state to be triggered.

[377] (Feature 41) The method of any preceding features 34 to 40, wherein the content type is selected from the group consisting of Artist, Genre, Song, Album, and Radio Station.

[378] (Feature 42) The method of any preceding features 34 to 41, wherein determining the at least one music service comprises accessing a look-up table containing entries for the available content for the plurality of streaming services.

[379] (Feature 43) The method of any preceding features 34 to 42, further comprising querying only music services with which the user has registered from the plurality of music services.

[380] (Feature 44) The method of any preceding features 34 to 43, further comprising, after identifying the content type; asking the user one or more questions to further specify the content type indicated in the initial indication for content; receiving a further user input indicating a more specific content type; and determining the one or more music services based on the more specific content type.

[381] (Feature 45) A network device comprising: a network interface configured to communicate with a plurality of networked devices over a network; a processor comprising instruction, which when executed, cause the processor to perform a method according to any preceding features 34 to 44.

[382] (Feature 46) A computer readable storage medium including instruction for execution by a processor, the instructions, when executed cause the processor to implement a method according to one of features 34 to 44.

VIII. Conclusion

[383] 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.

[384] Methods and the other process disclosed herein may include one or more operations, functions, or actions. Although blocks are illustrated in sequential order, these blocks may also be performed in parallel, and/or in a different order than those described herein. Also, the various blocks may be combined into fewer blocks, divided into additional blocks, and/or removed based upon the desired implementation.

[385] In addition, for the methods and other processes and methods disclosed herein, the flowchart shows functionality and operation of one possible implementation of present embodiments. In this regard, each block may represent a module, a segment, or a portion of program code, which includes one or more instructions executable by a processor for implementing specific logical functions or steps in the process. The program code may be stored on any type of computer readable medium, for example, such as a storage device including a disk or hard drive. The computer readable medium may include non-transitory computer readable medium, for example, such as computer-readable media that stores data for short periods of time like register memory, processor cache and Random Access Memory (RAM). The computer readable medium may also include non-transitory media, such as secondary or persistent long term storage, like read only memory (ROM), optical or magnetic disks, compact-disc read only memory (CD-ROM), for example. The computer readable media may also be any other volatile or nonvolatile storage systems. The computer readable medium may be considered a computer readable storage medium, for example, or a tangible storage device. In addition, each block in the figures may represent circuitry that is wired to perform the specific logical functions in the process.

[386] Additionally, references herein to "embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment can be included in at least one example embodiment of an invention. The appearances of this phrase in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. As such, the embodiments described herein, explicitly and implicitly understood by one skilled in the art, can be combined with other embodiments.

[387] 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.

[388] 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.