Movatterモバイル変換


[0]ホーム

URL:


WO2024186871A1 - Audio packet throttling for multichannel satellites - Google Patents

Audio packet throttling for multichannel satellites
Download PDF

Info

Publication number
WO2024186871A1
WO2024186871A1PCT/US2024/018627US2024018627WWO2024186871A1WO 2024186871 A1WO2024186871 A1WO 2024186871A1US 2024018627 WUS2024018627 WUS 2024018627WWO 2024186871 A1WO2024186871 A1WO 2024186871A1
Authority
WO
WIPO (PCT)
Prior art keywords
playback device
content
audio content
playback
audio
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
PCT/US2024/018627
Other languages
French (fr)
Inventor
Zhaoyun HUANG
Richard John JARVIS
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sonos Inc
Original Assignee
Sonos Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sonos IncfiledCriticalSonos Inc
Publication of WO2024186871A1publicationCriticalpatent/WO2024186871A1/en
Anticipated expirationlegal-statusCritical
Pendinglegal-statusCriticalCurrent

Links

Classifications

Definitions

Landscapes

Abstract

A primary playback device is configured to, after receipt of encoded audio content via an audio input interface, (i) decode a portion of the encoded audio content, thereby resulting in decoded audio content that includes a first content subset corresponding to a first time segment of the encoded audio content and that further includes a second content subset corresponding to a second time segment of the encoded audio content that is next in sequence to the first time segment; (ii) after decoding the portion of the encoded audio content, write the first content subset to a memory buffer of a wireless network interface; (iii) communicate, via the wireless network interface, the first content subset to a satellite playback device; and (iv) after communication of the first content subset to the satellite playback device has commenced, write the second content subset to the memory buffer of the wireless network interface.

Description

AUDIO PACKET THROTTLING FOR MULTICHANNEL SATELLITES
CROSS REFERENCE TO RELATED APPLICATION
[0001] This application claims the benefit of U.S. Provisional Patent Application 63/488,569 (filed 6 March 2023), which is incorporated herein by reference in its entirety.
FIELD OF THE DISCLOSURE
[0002] The present 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
[0003] Options for accessing and listening to digital audio in an out-loud setting were limited until in 2002, when Sonos, Inc. began development of a new type of playback system. Sonos then filed one of its first patent applications in 2003, entitled “Method for Synchronizing Audio Playback between Multiple Networked Devices,” and began offering its first media playback systems for sale in 2005. The SONOS Wireless Home Sound System enables people to experience music from many sources via one or more networked playback devices. Through a software control application installed on a controller (e.g., smartphone, tablet, computer, voice input device), one can play what she wants in any room having a networked playback device. Media content (e.g., songs, podcasts, video sound) can be streamed to playback devices such that each room with a playback device can play back corresponding different media content. In addition, rooms can be grouped together for synchronous playback of the same media content, and/or the same media content can be heard in all rooms synchronously.
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] Features, aspects, and advantages of the presently disclosed technology may be better understood with regard to the following description, appended claims, and accompanying drawings, as listed below. A person skilled in the relevant art will understand that the features shown in the drawings are for purposes of illustrations, and variations, including different and/or additional features and arrangements thereof, are possible. [0005] Figure 1 A is a partial cutaway view of an environment having a media playback system configured in accordance with aspects of the disclosed technology.
[0006] Figure IB is a schematic diagram of the media playback system of Figure 1A and one or more networks.
[0007] Figure 1C is a block diagram of a playback device.
[0008] Figure ID is a block diagram of a playback device.
[0009] Figure IE is a block diagram of a bonded playback device.
[0010] Figure IF is a block diagram of a network microphone device.
[0011] Figure 1G is a block diagram of a playback device.
[0012] Figure 1H is a partial schematic diagram of a control device.
[0013] Figures II— IL are schematic diagrams of corresponding media playback system zones.
[0014] Figure IM is a schematic diagram of media playback system areas.
[0015] Figure 2A is a front isometric view of a playback device configured in accordance with aspects of the disclosed technology.
[0016] Figure 2B is a front isometric view of the playback device of Figure 2 A without a grille.
[0017] Figure 2C is an exploded view of the playback device of Figure 2A.
[0018] Figure 3A is a front view of a network microphone device configured in accordance with aspects of the disclosed technology.
[0019] Figure 3B is a side isometric view of the network microphone device of Figure 3 A.
[0020] Figure 3C is an exploded view of the network microphone device of Figures 3A and 3B.
[0021] Figure 3D is an enlarged view of a portion of Figure 3B.
[0022] Figure 3E is a block diagram of the network microphone device of Figures 3A-3D.
[0023] Figure 3F is a schematic diagram of an example voice input.
[0024] Figures 4A-4D are schematic diagrams of a control device in various stages of operation in accordance with aspects of the disclosed technology.
[0025] Figure 5 is a front view of a control device.
[0026] Figure 6 is a message flow diagram of a media playback system.
[0027] Figure 7 is a schematic diagram illustrating an example home theater environment.
[0028] Figures 8A and 8B are diagrams each illustrating an example method that can be used by a primary playback device of a home theater environment to communicate audio content to satellite playback devices of the home theater environment. [0029] Figure 9 is a logical diagram of components of a primary playback device that can manipulate the timing with which decoded audio is transmitted to satellite playback devices.
[0030] Figure 10 is a data flow diagram illustrating the decoding, storage, and transmission of audio content that is received at a primary playback device from a video playback device.
[0031] Figure 11A is a timing diagram that illustrates how a primary playback device can process and transmit decoded audio content to satellite playback devices according to a specified timing.
[0032] Figure 1 IB schematically illustrates how decoded audio content can be subdivided into a “chunk”, a “portion”, and a “packet”.
[0033] Figure 12 is a flowchart illustrating an example method for decoding, storing, and transmitting audio content that is received at a primary playback device from a video playback device.
[0034] The drawings are for the purpose of illustrating example embodiments, but those of ordinary skill in the art will understand that the technology disclosed herein is not limited to the arrangements and/or instrumentality shown in the drawings.
DETAILED DESCRIPTION
I. Overview
[0035] Home theater systems have stringent latency requirements to maintain synchrony between audio content that is played back by a network of playback devices and video content that is displayed by a television. For example, when audio associated with a video frame is received at a primary playback device (for example, a soundbar) from the television over an Audio Return Channel (ARC) connection, the television will render the video frame very soon thereafter (for example, within milliseconds depending on the television and its operating mode). Accordingly, the home theater system should render the associated audio at all satellite playback devices within a finite period of time (for example, within about 40 milliseconds (ms)) from receipt to achieve synchronous audio playback and avoid perception of a temporal disconnect between video and audio playback. In that roughly 40 millisecond time window, the system should take the following actions: (1) decode the audio if encoded (for example, using a format such as Dolby Digital format); (2) assign presentation times to the audio that specify when to render the audio to achieve synchrony between the primary playback device and the satellite playback devices; (3) transmit the audio to all the satellite playback devices; and (4) render the audio in accordance with the presentation times. Of these steps, transmission of the audio to all the satellite playback devices consumes a significant portion of the available time window (for example, about 20 milliseconds to 25 milliseconds).
[0036] Accordingly, low-latency communication schemes may be implemented for wireless transmission of audio from the primary playback device to one or more satellite playback devices (for example, a subwoofer, a rear surround, and the like). In such a low-latency communication scheme, the satellite playback devices may connect to a dedicated wireless network established by the primary playback device for communication of audio for playback. By employing a dedicated network established by the primary playback device to communicate the audio traffic to the satellite playback devices, the audio traffic may be communicated directly to the satellite playback devices without the delay otherwise introduced by an intermediary hop across an Access Point (AP) (or other piece of networking equipment). Further, in certain implementations, the wireless network is configured as a 5 GHz WIFI network (for example, a WIFI network that employs one or more wireless channels in the 5 GHz band for communication), which may offer additional latency benefits relative to a 2.4 GHz WIFI network (for example, a WIFI network that employs one or more wireless channels in the 2.4 GHz band for communication) that typically suffers from considerable traffic congestion. To enable such a dedicated 5 GHz WIFI network for transmission of audio content from the primary playback device to the satellite playback devices, the primary playback device may employ a dedicated radio to establish the dedicated WIFI network. The primary playback device may employ a second radio configured to communicate over a backhaul connection to an AP (for example, a user’s AP in their home) so as to provide a communication path to other devices (for example, user devices to facilitate control of the home theater system and/or cloud server(s) to obtain audio content for streaming). Additional details regarding low-latency communication schemes for home theater systems are described in U.S. Patent 9,031,255 entitled “Systems, Methods, Apparatus, and Articles of Manufacture to Provide Low-Latency Audio”, issued 12 May 2015, which is incorporated herein by reference in its entirety.
[0037] For home theater systems that employ a wireless network to transfer the audio to the requisite playback devices in the home theater system, the time spent packetizing and transmitting the audio content over the wireless network can be substantial (for example, more than 10 milliseconds). Further, the time required to packetize and transmit the audio over the wireless network increases with the number of wireless speakers in the home theater system. For example, a home theater system that includes two playback devices communicating over the wireless network may need substantially less time to packetize and transmit all of the audio than a similar home theater system including four or more playback devices. As a result, some home theater systems that communicate the audio data over a wireless network typically meet the stringent latency requirements for synchronized playback by severely limiting the number of playback devices in the home theater system to no more than four playback devices (for example, a front soundbar, a subwoofer, a left rear speaker, and a right rear speaker).
[0038] Thus, for certain home theater implementations with a limited number of satellites, a low- latency communication scheme using a dedicated 5 GHz WIFI network as discussed above is sufficient to allow the home theater system to render the received audio in synchrony with the corresponding visual content displayed on the television. However, there is growing demand for home theater systems to support a greater number of satellite devices. For example, one popular configuration includes five dedicated satellites in addition to the primary playback device, namely, left and right front satellites, left and right rear satellites, and a subwoofer. In addition, certain newer satellite playback devices may be capable of rendering multiple channels of audio, rather than only a single channel, which may substantially increase the amount of data needed to be transmitted and thus increase the time required for audio transmission. For example, if a home theater system includes two higher-capability rear satellites each capable of rendering four channels of audio instead of two lower-capability rear satellites each only rendering one channel of audio, the amount of data needed to be transmitted to the two rear satellites has increased from two channels of audio to eight channels of audio (that is, an increase of a factor of four). The time required for transmission of the audio content to the multichannel satellites will thus increase substantially. Should the transmission of audio content from the primary playback device to one or more satellite playback devices take too long, the audio content associated with a given section of visual content may not reach the satellite playback devices in time to be rendered in synchrony with the visual content (for example, reaching the one or more satellite playback devices more than 40 ms after the visual content has been rendered).
[0039] For a home theater system with more than two satellite devices, the primary playback device can use a “Round Robin” scheduling approach to communicate audio content to the satellite playback devices. In this case, the primary playback device receives an encoded audio stream from the television, decodes some (also often referred to as a “chunk”) of the encoded audio stream, and sequentially communicates the resulting decoded audio content to each of the satellite playback devices. For example, in one implementation during a first content delivery interval the primary playback device communicates decoded audio content corresponding to a front-left channel of the encoded audio stream to a first satellite playback device assigned to render the front-left channel. During a second content delivery interval the primary playback device communicates decoded audio content corresponding to a front-right channel of the encoded audio stream to a second satellite playback device assigned to render the front-right channel. During a third content delivery interval the primary playback device communicates decoded audio content corresponding to a subwoofer channel of the encoded audio stream to a third satellite playback device assigned to render the subwoofer channel. During a fourth content delivery interval, the primary playback device communicates decoded audio content corresponding to a rear-left channel of the encoded audio stream to a fourth satellite playback device assigned to render the rear-left channel. During a fifth content delivery interval the primary playback device communicates decoded audio content corresponding to a rear-right channel of the encoded audio stream to a fifth satellite playback device assigned to render the rear-right channel. This process can repeat with the arrival of subsequent audio content from the television.
[0040] In certain examples, a single device (for example, the primary playback device and/or any one or more of the satellite playback devices) may be assigned to render multiple audio channels simultaneously. As a result, a single transmission to a single satellite in accordance with the Round Robin approach described above may comprise audio content associated with multiple channels. For instance, a particular satellite playback device may be assigned to render both a right-rear channel and a height channel. In such an instance, a transmission to that satellite playback device may comprise audio content corresponding to the right-rear channel and the height channel for the particular satellite playback device.
[0041] Where decoded audio content is delivered to a plurality of satellite playback devices using the aforementioned Round Robin approach, it is important to provide each satellite playback device with its audio content in a timely manner, that is, within a timeframe that allows the audio content to be rendered in synchrony with the ongoing video content. Thus, during each of the foregoing content delivery intervals the amount of data that is communicated to one satellite playback device should not be so large that the processing and delivery of such data causes content delivery to a subsequent satellite playback device to be delayed such that the subsequent satellite playback device is unable to render its audio content in synchrony with the ongoing video playback. Such delays can be mitigated or avoided by controlling the amount of data that is communicated to each satellite playback device during its content delivery interval in the aforementioned Round Robin approach.
[0042] To this end, embodiments described herein relate to techniques for delivering audio content to a network of satellite playback devices in a way that allows the satellite playback devices to play back the audio content in synchrony with rendering of corresponding video content. Such techniques may involve manipulating the timing with which decoded audio is written to a memory buffer for a wireless network interface that is used to transmit the decoded audio to one or more satellite playback devices. In particular, reducing the amount of decoded audio that is written to the memory buffer causes smaller portions of data to be communicated to a particular satellite playback device, thus reducing the likelihood that the processing and transmission of such data will cause other satellite playback devices to render data out of synchrony with a corresponding video playback. Additional details regarding how to manipulate the writing of decoded audio to a wireless network interface buffer will be provided in turn.
[0043] In some embodiments, for example, a primary playback device comprises a wireless network interface that includes a transmit buffer. The primary playback device further comprises an audio input interface. The primary playback device further comprises at least one processor. The primary playback device further comprises at least one non-transitory computer readable medium comprising program instructions that are executable by the at least one processor such that the primary playback device is configured to, after receipt of encoded audio content via the audio input interface, decode the encoded audio content, thereby resulting in a chunk of decoded audio content. The chunk of decoded audio content includes a first content portion corresponding to a first time segment of the encoded audio content and that further includes a second content portion corresponding to a second time segment of the encoded audio content that is next in sequence to the first time segment. The primary playback device is further configured to, after receipt of the encoded audio content via the audio input interface, and after decoding the encoded audio content, write the first content portion to the transmit buffer of the wireless network interface. The primary playback device is further configured to, after receipt of the encoded audio content via the audio input interface, communicate, via the wireless network interface, the first content portion to a satellite playback device. The primary playback device is further configured to, after receipt of the encoded audio content via the audio input interface, and after communication of the first content portion to the satellite playback device has commenced, begin writing the second content portion to the transmit buffer of the wireless network interface. The primary playback device is further configured to, after receipt of the encoded audio content via the audio input interface, play a first channel of the chunk of decoded audio content in synchrony with playback of a second channel of the chunk of decoded audio content at the satellite playback device.
[0044] While some examples described herein may refer to functions performed by given actors such as “users”, “listeners”, 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.
[0045] In the Figures, identical reference numbers identify generally similar, and/or identical, elements. To facilitate the discussion of any particular element, the most significant digit or digits of a reference number refers to the Figure in which that element is first introduced. For example, element 110a is first introduced and discussed with reference to Figure 1A. Many of the details, dimensions, angles, and other features shown in the Figures are merely illustrative of particular embodiments of the disclosed technology. Accordingly, other embodiments can have other details, dimensions, angles, and features without departing from the spirit or scope of the disclosure. In addition, those of ordinary skill in the art will appreciate that further embodiments of the various disclosed technologies can be practiced without several of the details described below.
II. Suitable Operating Environment
[0046] Figure 1A is a partial cutaway view of a media playback system 100 distributed in an environment 101 (e.g., a house). The media playback system 100 comprises one or more playback devices 110 (identified individually as playback devices HOa-n), one or more network microphone devices 120 (“NMDs”) (identified individually as NMDs 120a-c), and one or more control devices 130 (identified individually as control devices 130a and 130b). [0047] As used herein the term “playback device” can generally refer to a network device configured to receive, process, and output data of a media playback system. For example, a playback device can be a network device that receives and processes audio content. In some embodiments, a playback device includes one or more transducers or speakers powered by one or more amplifiers. In other embodiments, however, a playback device includes one of (or neither of) the speaker and the amplifier. For instance, a playback device can comprise one or more amplifiers configured to drive one or more speakers external to the playback device via a corresponding wire or cable.
[0048] Moreover, as used herein the term “NMD” (i.e., a “network microphone device”) can generally refer to a network device that is configured for audio detection. In some embodiments, an NMD is a stand-alone device configured primarily for audio detection. In other embodiments, an NMD is incorporated into a playback device (or vice versa).
[0049] The term “control device” can generally refer to a network device configured to perform functions relevant to facilitating user access, control, and/or configuration of the media playback system 100.
[0050] Each of the playback devices 110 is configured to receive audio signals or data from one or more media sources (e.g., one or more remote servers, one or more local devices, etc.) and play back the received audio signals or data as sound. The one or more NMDs 120 are configured to receive spoken word commands, and the one or more control devices 130 are configured to receive user input. In response to the received spoken word commands and/or user input, the media playback system 100 can play back audio via one or more of the playback devices 110. In certain embodiments, the playback devices 110 are configured to commence playback of media content in response to a trigger. For instance, one or more of the playback devices 110 can be configured to play back a morning playlist upon detection of an associated trigger condition (e.g., presence of a user in a kitchen, detection of a coffee machine operation, etc.). In some embodiments, for example, the media playback system 100 is configured to play back audio from a first playback device (e.g., the playback device 100a) in synchrony with a second playback device (e.g., the playback device 100b). Interactions between the playback devices 110, NMDs 120, and/or control devices 130 of the media playback system 100 configured in accordance with the various embodiments of the disclosure are described in greater detail below with respect to Figures IB-6. [0051] In the illustrated embodiment of Figure 1 A, the environment 101 comprises a household having several rooms, spaces, and/or playback zones, including (clockwise from upper left) a master bathroom 101a, a master bedroom 101b, a second bedroom 101c, a family room or den lOld, an office lOle, a living room lOlf, a dining room 101g, a kitchen lOlh, and an outdoor patio lOli. While certain embodiments and examples are described below in the context of a home environment, the technologies described herein may be implemented in other types of environments. In some embodiments, for example, the media playback system 100 can be implemented in one or more commercial settings (e.g., a restaurant, mall, airport, hotel, a retail or other store), one or more vehicles (e.g., a sports utility vehicle, bus, car, a ship, a boat, an airplane, etc.), multiple environments (e.g., a combination of home and vehicle environments), and/or another suitable environment where multi-zone audio may be desirable.
[0052] The media playback system 100 can comprise one or more playback zones, some of which may correspond to the rooms in the environment 101. The media playback system 100 can be established with one or more playback zones, after which additional zones may be added, or removed, to form, for example, the configuration shown in Figure 1A. Each zone may be given a name according to a different room or space such as the office 10 le, master bathroom 101a, master bedroom 101b, the second bedroom 101c, kitchen lOlh, dining room 101g, living room lOlf, and/or the balcony lOli. In some aspects, a single playback zone may include multiple rooms or spaces. In certain aspects, a single room or space may include multiple playback zones.
[0053] In the illustrated embodiment of Figure 1A, the master bathroom 101a, the second bedroom 101c, the office lOle, the living room lOlf, the dining room 101g, the kitchen lOlh, and the outdoor patio lOli each include one playback device 110, and the master bedroom 101b and the den lOld include a plurality of playback devices 110. In the master bedroom 101b, the playback devices 1101 and 110m may be configured, for example, to play back audio content in synchrony as individual ones of playback devices 110, as a bonded playback zone, as a consolidated playback device, and/or any combination thereof. Similarly, in the den lOld, the playback devices 1 lOh-j can be configured, for instance, to play back audio content in synchrony as individual ones of playback devices 110, as one or more bonded playback devices, and/or as one or more consolidated playback devices. Additional details regarding bonded and consolidated playback devices are described below with respect to Figures IB, IE, and 1I-1M. [0054] In some aspects, one or more of the playback zones in the environment 101 may each be playing different audio content. For instance, a user may be grilling on the patio lOli and listening to hip hop music being played by the playback device 110c while another user is preparing food in the kitchen 101 h and listening to classical music played by the playback device 110b. 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 101 e listening to the playback device 1 lOf playing back the same hip hop music being played back by playback device 110c on the patio lOli. In some aspects, the playback devices 110c and 1 lOf play back the hip hop music in synchrony such that the user perceives that the audio content is being played seamlessly (or at least substantially seamlessly) while moving between different playback zones. Additional details regarding audio playback synchronization among playback devices and/or zones can be found, for example, in 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 incorporated herein by reference in its entirety. a. Suitable Media Playback System
[0055] Figure IB is a schematic diagram of the media playback system 100 and a cloud network 102. For ease of illustration, certain devices of the media playback system 100 and the cloud network 102 are omitted from Figure IB. One or more communication links 103 (referred to hereinafter as “the links 103”) communicatively couple the media playback system 100 and the cloud network 102.
[0056] The links 103 can comprise, for example, one or more wired networks, one or more wireless networks, one or more wide area networks (WAN), one or more local area networks (LAN), one or more personal area networks (PAN), one or more telecommunication networks (e.g., one or more Global System for Mobiles (GSM) networks, Code Division Multiple Access (CDMA) networks, Long-Term Evolution (LTE) networks, 5G communication networks, and/or other suitable data transmission protocol networks), etc. The cloud network 102 is configured to deliver media content (e.g., audio content, video content, photographs, social media content, etc.) to the media playback system 100 in response to a request transmitted from the media playback system 100 via the links 103. In some embodiments, the cloud network 102 is further configured to receive data (e.g., voice input data) from the media playback system 100 and correspondingly transmit commands and/or media content to the media playback system 100. [0057] The cloud network 102 comprises computing devices 106 (identified separately as a first computing device 106a, a second computing device 106b, and a third computing device 106c). The computing devices 106 can comprise individual computers or servers, such as, for example, a media streaming service server storing audio and/or other media content, a voice service server, a social media server, a media playback system control server, etc. In some embodiments, one or more of the computing devices 106 comprise modules of a single computer or server. In certain embodiments, one or more of the computing devices 106 comprise one or more modules, computers, and/or servers. Moreover, while the cloud network 102 is described above in the context of a single cloud network, in some embodiments the cloud network 102 comprises a plurality of cloud networks comprising communicatively coupled computing devices. Furthermore, while the cloud network 102 is shown in Figure IB as having three of the computing devices 106, in some embodiments, the cloud network 102 comprises fewer (or more than) three computing devices 106.
[0058] The media playback system 100 is configured to receive media content from the networks 102 via the links 103. The received media content can comprise, for example, a Uniform Resource Identifier (URI) and/or a Uniform Resource Locator (URL). For instance, in some examples, the media playback system 100 can stream, download, or otherwise obtain data from a URI or a URL corresponding to the received media content. A network 104 communicatively couples the links 103 and at least a portion of the devices (e.g., one or more of the playback devices 110, NMDs 120, and/or control devices 130) of the media playback system 100. The network 104 can include, for example, a wireless network (e.g., a WIFI network, a Bluetooth, a Z-Wave network, a ZigBee, and/or other suitable wireless communication protocol network) and/or a wired network (e.g., a network comprising Ethernet, Universal Serial Bus (USB), and/or another suitable wired communication). As those of ordinary skill in the art will appreciate, as used herein, “WIFI” can refer to several different communication protocols including, for example, Institute of Electrical and Electronics Engineers (IEEE) 802.11a, 802.11b, 802.11g, 802.1 In, 802.1 lac, 802.1 lac, 802.1 lad, 802.1 laf, 802.1 lah, 802.1 lai, 802.1 laj, 802. Haq, 802.11ax, 802. Hay, 802.15, etc. transmitted at 2.4 Gigahertz (GHz), 5 GHz, and/or another suitable frequency.
[0059] In some embodiments, the network 104 comprises a dedicated communication network that the media playback system 100 uses to transmit messages between individual devices and/or to transmit media content to and from media content sources (e.g., one or more of the computing devices 106). In certain embodiments, the network 104 is configured to be accessible only to devices in the media playback system 100, thereby reducing interference and competition with other household devices. In other embodiments, however, the network 104 comprises an existing household or commercial facility communication network (e.g., a household or commercial facility WIFI network). In some embodiments, the links 103 and the network 104 comprise one or more of the same networks. In some aspects, for example, the links 103 and the network 104 comprise a telecommunication network (e.g., an LTE network, a 5G network, etc.). Moreover, in some embodiments, the media playback system 100 is implemented without the network 104, and devices comprising the media playback system 100 can communicate with each other, for example, via one or more direct connections, PANs, telecommunication networks, and/or other suitable communication links. The network 104 may be referred to herein as a “local communication network” to differentiate the network 104 from the cloud network 102 that couples the media playback system 100 to remote devices, such as cloud servers that host cloud services.
[0060] In some embodiments, audio content sources may be regularly added or removed from the media playback system 100. In some embodiments, for example, the media playback system 100 performs an indexing of media items when one or more media content sources are updated, added to, and/or removed from the media playback system 100. The media playback system 100 can scan identifiable media items in some or all folders and/or directories accessible to the playback devices 110, and generate or update a media content database comprising metadata (e.g., title, artist, album, track length, etc.) and other associated information (e.g., URIs, URLs, etc.) for each identifiable media item found. In some embodiments, for example, the media content database is stored on one or more of the playback devices 110, network microphone devices 120, and/or control devices 130.
[0061] In the illustrated embodiment of Figure IB, the playback devices 1101 and 110m comprise a group 107a. The playback devices 1101 and 110m can be positioned in different rooms and be grouped together in the group 107a on a temporary or permanent basis based on user input received at the control device 130a and/or another control device 130 in the media playback system 100. When arranged in the group 107a, the playback devices 1101 and 110m can be configured to play back the same or similar audio content in synchrony from one or more audio content sources. In certain embodiments, for example, the group 107a comprises a bonded zone in which the playback devices 1101 and 110m comprise left audio and right audio channels, respectively, of multichannel audio content, thereby producing or enhancing a stereo effect of the audio content. In some embodiments, the group 107a includes additional playback devices 110. In other embodiments, however, the media playback system 100 omits the group 107a and/or other grouped arrangements of the playback devices 110. Additional details regarding groups and other arrangements of playback devices are described in further detail below with respect to Figures 1I-1M.
[0062] The media playback system 100 includes the NMDs 120a and 120b, each comprising one or more microphones configured to receive voice utterances from a user. In the illustrated embodiment of Figure IB, the NMD 120a is a standalone device and the NMD 120b is integrated into the playback device 1 lOn. The NMD 120a, for example, is configured to receive voice input 121 from a user 123. In some embodiments, the NMD 120a transmits data associated with the received voice input 121 to a voice assistant service (VAS) configured to (i) process the received voice input data and (ii) facilitate one or more operations on behalf of the media playback system 100.
[0063] In some aspects, for example, the computing device 106c comprises one or more modules and/or servers of a VAS (e.g., a VAS operated by one or more of SONOS, AMAZON, GOOGLE, APPLE, MICROSOFT, etc.). The computing device 106c can receive the voice input data from the NMD 120a via the network 104 and the links 103.
[0064] In response to receiving the voice input data, the computing device 106c processes the voice input data (i.e., “Play Hey Jude by The Beatles”), and determines that the processed voice input includes a command to play a song (e.g., “Hey Jude”). In some embodiments, after processing the voice input, the computing device 106c accordingly transmits commands to the media playback system 100 to play back “Hey Jude” by the Beatles from a suitable media service (e.g., via one or more of the computing devices 106) on one or more of the playback devices 110. In other embodiments, the computing device 106c may be configured to interface with media services on behalf of the media playback system 100. In such embodiments, after processing the voice input, instead of the computing device 106c transmitting commands to the media playback system 100 causing the media playback system 100 to retrieve the requested media from a suitable media service, the computing device 106c itself causes a suitable media service to provide the requested media to the media playback system 100 in accordance with the user’s voice utterance. b. Suitable Playback Devices
[0065] Figure 1C is a block diagram of the playback device 110a comprising an input/output 111. The input/output 111 can include an analog I/O I l la (e.g., one or more wires, cables, and/or other suitable communication links configured to carry analog signals) and/or a digital I/O 11 lb (e.g., one or more wires, cables, or other suitable communication links configured to carry digital signals). In some embodiments, the analog I/O I l la is an audio line-in input connection comprising, for example, an auto-detecting 3.5 mm audio line-in connection. In some embodiments, the digital I/O 1 11b comprises a Sony/Philips Digital Interface Format (S/PDIF) communication interface and/or cable and/or a Toshiba Link (TOSLINK) cable. In some embodiments, the digital I/O 11 lb comprises an High-Definition Multimedia Interface (HDMI) interface and/or cable. In some embodiments, the digital I/O 111b includes one or more wireless communication links comprising, for example, a radio frequency (RF), infrared, WIFI, Bluetooth, or another suitable communication link. In certain embodiments, the analog I/O I l la and the digital 111b comprise interfaces (e.g., ports, plugs, jacks, etc.) configured to receive connectors of cables transmitting analog and digital signals, respectively, without necessarily including cables.
[0066] The playback device 110a, for example, can receive media content (e.g., audio content comprising music and/or other sounds) from a local audio source 105 via the input/output 111 (e.g., a cable, a wire, a PAN, a Bluetooth connection, an ad hoc wired or wireless communication network, and/or another suitable communication link). The local audio source 105 can comprise, for example, a mobile device (e.g., a smartphone, a tablet, a laptop computer, etc.) or another suitable audio component (e.g., a television, a desktop computer, an amplifier, a phonograph, a Blu-ray player, a memory storing digital media files, etc.). In some aspects, the local audio source 105 includes local music libraries on a smartphone, a computer, a networked-attached storage (NAS), and/or another suitable device configured to store media files. In certain embodiments, one or more of the playback devices 110, NMDs 120, and/or control devices 130 comprise the local audio source 105. In other embodiments, however, the media playback system omits the local audio source 105 altogether. In some embodiments, the playback device 110a does not include an input/output 111 and receives all audio content via the network 104. [0067] The playback device 110a further comprises electronics 112, a user interface 113 (e.g., one or more buttons, knobs, dials, touch-sensitive surfaces, displays, touchscreens, etc.), and one or more transducers 114 (referred to hereinafter as “the transducers 114”). The electronics 112 are configured to receive audio from an audio source (e.g., the local audio source 105) via the input/output 111 or one or more of the computing devices 106a-c via the network 104 (Figure IB), amplify the received audio, and output the amplified audio for playback via one or more of the transducers 114. In some embodiments, the playback device 110a optionally includes one or more microphones 115 (e.g., a single microphone, a plurality of microphones, a microphone array) (hereinafter referred to as “the microphones 115”). In certain embodiments, for example, the playback device 110a having one or more of the optional microphones 115 can operate as an NMD configured to receive voice input from a user and correspondingly perform one or more operations based on the received voice input.
[0068] In the illustrated embodiment of Figure 1C, the electronics 112 comprise one or more processors 112a (referred to hereinafter as “the processors 112a”), memory 112b, software components 112c, a network interface 112d, one or more audio processing components 112g (referred to hereinafter as “the audio components 112g”), one or more audio amplifiers 112h (referred to hereinafter as “the amplifiers 112h”), and power 112i (e.g., one or more power supplies, power cables, power receptacles, batteries, induction coils, Power-over Ethernet (POE) interfaces, and/or other suitable sources of electric power). In some embodiments, the electronics 112 optionally include one or more other components 112j (e.g., one or more sensors, video displays, touchscreens, battery charging bases, etc.).
[0069] The processors 112a can comprise clock-driven computing component(s) configured to process data, and the memory 112b can comprise a computer-readable medium (e.g., a tangible, non-transitory computer-readable medium loaded with one or more of the software components 112c) configured to store instructions for performing various operations and/or functions. The processors 112a are configured to execute the instructions stored on the memory 112b to perform one or more of the operations. The operations can include, for example, causing the playback device 110a to retrieve audio data from an audio source (e.g., one or more of the computing devices 106a-c (Figure IB)), and/or another one of the playback devices 110. In some embodiments, the operations further include causing the playback device 110a to send audio data to another one of the playback devices 110a and/or another device (e.g., one of the NMDs 120). Certain embodiments include operations causing the playback device 110a to pair with another of the one or more playback devices 110 to enable a multichannel audio environment (e.g., a stereo pair, a bonded zone, etc.).
[0070] The processors 112a can be further configured to perform operations causing the playback device 110a to synchronize playback of audio content with another of the one or more playback devices 110. As those of ordinary skill in the art will appreciate, during synchronous playback of audio content on a plurality of playback devices, a listener will preferably be unable to perceive time-delay differences between playback of the audio content by the playback device 110a and the other one or more other playback devices 110. Additional details regarding audio playback synchronization among playback devices can be found, for example, in U.S. Patent No. 8,234,395, which was incorporated by reference above.
[0071] In some embodiments, the memory 112b is further configured to store data associated with the playback device 110a, such as one or more zones and/or zone groups of which the playback device 110a is a member, audio sources accessible to the playback device 110a, and/or a playback queue that the playback device 110a (and/or another of the one or more playback devices) can be associated with. The stored data can comprise one or more state variables that are periodically updated and used to describe a state of the playback device 110a. The memory 112b can also include data associated with a state of one or more of the other devices (e.g., the playback devices 110, NMDs 120, control devices 130) of the media playback system 100. In some aspects, for example, the state data is shared during predetermined intervals of time (e.g., every 5 seconds, every 10 seconds, every 60 seconds, etc.) among at least a portion of the devices of the media playback system 100, so that one or more of the devices have the most recent data associated with the media playback system 100.
[0072] The network interface 112d is configured to facilitate a transmission of data between the playback device 110a and one or more other devices on a data network such as, for example, the links 103 and/or the network 104 (Figure IB). The network interface 112d is configured to transmit and receive data corresponding to media content (e.g., audio content, video content, text, photographs) and other signals (e.g., non-transitory signals) comprising digital packet data including an Internet Protocol (IP)-based source address and/or an IP -based destination address. The network interface 112d can parse the digital packet data such that the electronics 112 properly receive and process the data destined for the playback device 110a. [0073] In the illustrated embodiment of Figure 1 C, the network interface 112d comprises one or more wireless interfaces 112e (referred to hereinafter as “the wireless interface 112e”). The wireless interface 112e (e.g., a suitable interface comprising one or more antennae) can be configured to wirelessly communicate with one or more other devices (e.g., one or more of the other playback devices 110, NMDs 120, and/or control devices 130) that are communicatively coupled to the network 104 (Figure IB) in accordance with a suitable wireless communication protocol (e.g., WIFI, Bluetooth, LTE, etc.). In some embodiments, the network interface 112d optionally includes a wired interface 112f (e.g., an interface or receptacle configured to receive a network cable such as an Ethernet, a USB-A, USB-C, and/or Thunderbolt cable) configured to communicate over a wired connection with other devices in accordance with a suitable wired communication protocol. In certain embodiments, the network interface 112d includes the wired interface 112f and excludes the wireless interface 112e. In some embodiments, the electronics 112 exclude the network interface 112d altogether and transmits and receives media content and/or other data via another communication path (e.g., the input/output 111).
[0074] The audio components 112g are configured to process and/or filter data comprising media content received by the electronics 112 (e g., via the input/output 111 and/or the network interface 112d) to produce output audio signals. In some embodiments, the audio processing components 112g comprise, for example, one or more digital-to-analog converters (DACs), audio preprocessing components, audio enhancement components, digital signal processors (DSPs), and/or other suitable audio processing components, modules, circuits, etc. In certain embodiments, one or more of the audio processing components 112g can comprise one or more subcomponents of the processors 112a. In some embodiments, the electronics 112 omit the audio processing components 112g. In some aspects, for example, the processors 112a execute instructions stored on the memory 112b to perform audio processing operations to produce the output audio signals.
[0075] The amplifiers 112h are configured to receive and amplify the audio output signals produced by the audio processing components 112g and/or the processors 112a. The amplifiers 112h can comprise electronic devices and/or components configured to amplify audio signals to levels sufficient for driving one or more of the transducers 114. In some embodiments, for example, the amplifiers 112h include one or more switching or class-D power amplifiers. In other embodiments, however, the amplifiers 112h include one or more other types of power amplifiers (e.g., linear gain power amplifiers, class-A amplifiers, class-B amplifiers, class-AB amplifiers, class-C amplifiers, class-D amplifiers, class-E amplifiers, class-F amplifiers, class-G amplifiers, class-H amplifiers, and/or another suitable type of power amplifier). In certain embodiments, the amplifiers 112h comprise a suitable combination of two or more of the foregoing types of power amplifiers. Moreover, in some embodiments, individual ones of the amplifiers 112h correspond to individual ones of the transducers 114. In other embodiments, however, the electronics 112 include a single one of the amplifiers 112h configured to output amplified audio signals to a plurality of the transducers 114. In some other embodiments, the electronics 112 omit the amplifiers 112h.
[0076] The transducers 114 (e.g., one or more speakers and/or speaker drivers) receive the amplified audio signals from the amplifier 112h and render or output the amplified audio signals as sound (e g., audible sound waves having a frequency between about 20 Hertz (Hz) and 20 kilohertz (kHz)). In some embodiments, the transducers 114 can comprise a single transducer. In other embodiments, however, the transducers 114 comprise a plurality of audio transducers. In some embodiments, the transducers 114 comprise more than one type of transducer. For example, the transducers 114 can include one or more low frequency transducers (e.g., subwoofers, woofers), mid-range frequency transducers (e.g., mid-range transducers, midwoofers), and one or more high frequency transducers (e.g., one or more tweeters). As used herein, “low frequency” can generally refer to audible frequencies below about 500 Hz, “midrange frequency” can generally refer to audible frequencies between about 500 Hz and about 2 kHz, and “high frequency” can generally refer to audible frequencies above 2 kHz. In certain embodiments, however, one or more of the transducers 114 comprise transducers that do not adhere to the foregoing frequency ranges. For example, one of the transducers 114 may comprise a mid-woofer transducer configured to output sound at frequencies between about 200 Hz and about 5 kHz.
[0077] By way of illustration, Sonos, Inc. presently offers (or has offered) for sale certain playback devices including, for example, a “SONOS ONE”, “PLAY: 1”, “PLAYA”, “PLAYA”, “PLAYBAR”, “PLAYBASE”, “CONNECT: AMP”, “CONNECT”, and “SUB”. Other suitable playback devices may additionally or alternatively be used to implement the playback devices of example embodiments disclosed herein. Additionally, one of ordinary skill in the art will appreciate that a playback device is not limited to the examples described herein or to Sonos product offerings. In some embodiments, for example, one or more playback devices 1 10 comprise wired or wireless headphones (e.g., over-the-ear headphones, on-ear headphones, in- ear earphones, etc.). In other embodiments, one or more of the playback devices 110 comprise a docking station and/or an interface configured to interact with a docking station for personal mobile media playback devices. In certain embodiments, 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. In some embodiments, a playback device omits a user interface and/or one or more transducers. For example, FIG. ID is a block diagram of a playback device I lOp comprising the input/output 111 and electronics 112 without the user interface 113 or transducers 114.
[0078] Figure IE is a block diagram of a bonded playback device 1 lOq comprising the playback device 110a (Figure 1C) sonically bonded with the playback device HOi (e.g., a subwoofer) (Figure 1A). In the illustrated embodiment, the playback devices 110a and HOi are separate ones of the playback devices 110 housed in separate enclosures. In some embodiments, however, the bonded playback device HOq comprises a single enclosure housing both the playback devices 110a and HOi. The bonded playback device 1 lOq can be configured to process and reproduce sound differently than an unbonded playback device (e.g., the playback device 110a of Figure 1C) and/or paired or bonded playback devices (e.g., the playback devices 1101 and 110m of Figure IB). In some embodiments, for example, the playback device 110a is a fullrange playback device configured to render low frequency, mid-range frequency, and high frequency audio content, and the playback device HOi is a subwoofer configured to render low frequency audio content. In some aspects, the playback device 110a, when bonded with the first playback device, is configured to render only the mid-range and high frequency components of a particular audio content, while the playback device 1 lOi renders the low frequency component of the particular audio content. In some embodiments, the bonded playback device HOq includes additional playback devices and/or another bonded playback device. Additional playback device embodiments are described in further detail below with respect to Figures 2A-3D. c. Suitable Network Microphone Devices (NMDs)
[0079] Figure IF is a block diagram of the NMD 120a (Figures 1 A and IB). The NMD 120a includes one or more voice processing components 124 (hereinafter “the voice components 124”) and several components described with respect to the playback device 110a (Figure 1C) including the processors 112a, the memory 112b, and the microphones 115. The NMD 120a optionally comprises other components also included in the playback device 110a (Figure 1C), such as the user interface 113 and/or the transducers 114. In some embodiments, the NMD 120a is configured as a media playback device (e.g., one or more of the playback devices 110), and further includes, for example, one or more of the audio components 112g (Figure 1C), the amplifiers 112h, and/or other playback device components. In certain embodiments, the NMD 120a comprises an Internet of Things (loT) device such as, for example, a thermostat, alarm panel, fire and/or smoke detector, etc. In some embodiments, the NMD 120a comprises the microphones 115, the voice processing components 124, and only a portion of the components of the electronics 112 described above with respect to Figure 1C. In some aspects, for example, the NMD 120a includes the processor 112a and the memory 112b (Figure 1C), while omitting one or more other components of the electronics 112. In some embodiments, the NMD 120a includes additional components (e.g., one or more sensors, cameras, thermometers, barometers, hygrometers, etc.).
[0080] In some embodiments, an NMD can be integrated into a playback device. Figure 1G is a block diagram of a playback device HOr comprising an NMD 120d. The playback device HOr can comprise many or all of the components of the playback device 110a and further include the microphones 115 and voice processing components 124 (Figure IF). The playback device HOr optionally includes an integrated control device 130c. The control device 130c can comprise, for example, a user interface (e.g., the user interface 113 of Figure 1C) configured to receive user input (e.g., touch input, voice input, etc.) without a separate control device. In other embodiments, however, the playback device 11 Or receives commands from another control device (e.g., the control device 130a of Figure IB). Additional NMD embodiments are described in further detail below with respect to Figures 3A-3F.
[0081] Referring again to Figure IF, the microphones 115 are configured to acquire, capture, and/or receive sound from an environment (e.g., the environment 101 of Figure 1A) and/or a room in which the NMD 120a is positioned. The received sound can include, for example, vocal utterances, audio played back by the NMD 120a and/or another playback device, background voices, ambient sounds, etc. The microphones 115 convert the received sound into electrical signals to produce microphone data. The voice processing components 124 receive and analyze the microphone data to determine whether a voice input is present in the microphone data. The voice input can comprise, for example, an activation word followed by an utterance including a user request. As those of ordinary skill in the art will appreciate, an activation word is a word or other audio cue signifying a user voice input. For instance, in querying the AMAZON VAS, a user might speak the activation word “Alexa”. Other examples include “Ok, Google” for invoking the GOOGLE VAS and “Hey, Siri” for invoking the APPLE VAS.
[0082] After detecting the activation word, voice processing components 124 monitor the microphone data for an accompanying user request in the voice input. The user request may include, for example, a command to control a third-party device, such as a thermostat (e.g., NEST thermostat), an illumination device (e.g., a PHILIPS HUE lighting device), or a media playback device (e.g., a SONOS playback device). For example, a user might speak the activation word “Alexa” followed by the utterance “set the thermostat to 68 degrees” to set a temperature in a home (e.g., the environment 101 of Figure 1A). The user might speak the same activation word followed by the utterance “turn on the living room” to turn on illumination devices in a living room area of the home. The user may similarly speak an activation word followed by a request to play a particular song, an album, or a playlist of music on a playback device in the home. Additional description regarding receiving and processing voice input data can be found in further detail below with respect to Figures 3 A-3F. d. Suitable Control Devices
[0083] Figure 1H is a partial schematic diagram of the control device 130a (Figures 1A and IB). As used herein, the term “control device” can be used interchangeably with “controller” or “control system”. Among other features, the control device 130a is configured to receive user input related to the media playback system 100 and, in response, cause one or more devices in the media playback system 100 to perform an action(s) or operation(s) corresponding to the user input. In the illustrated embodiment, the control device 130a comprises a smartphone (e.g., an iPhone™ an Android phone, etc.) on which media playback system controller application software is installed. In some embodiments, the control device 130a comprises, for example, a tablet (e.g., an iPad™), a computer (e.g., a laptop computer, a desktop computer, etc.), and/or another suitable device (e g., a television, an automobile audio head unit, an loT device, etc.). In certain embodiments, the control device 130a comprises a dedicated controller for the media playback system 100. In other embodiments, as described above with respect to Figure 1G, the control device 130a is integrated into another device in the media playback system 100 (e.g., one more of the playback devices 110, NMDs 120, and/or other suitable devices configured to communicate over a network).
[0084] The control device 130a includes electronics 132, a user interface 133, one or more speakers 134, and one or more microphones 135. The electronics 132 comprise one or more processors 132a (referred to hereinafter as “the processors 132a”), a memory 132b, software components 132c, and a network interface 132d. The processor 132a can be configured to perform functions relevant to facilitating user access, control, and configuration of the media playback system 100. The memory 132b can comprise data storage that can be loaded with one or more of the software components executable by the processor 132a to perform those functions. The software components 132c can comprise applications and/or other executable software configured to facilitate control of the media playback system 100. The memory 132b can be configured to store, for example, the software components 132c, media playback system controller application software, and/or other data associated with the media playback system 100 and the user.
[0085] The network interface 132d is configured to facilitate network communications between the control device 130a and one or more other devices in the media playback system 100, and/or one or more remote devices. In some embodiments, the network interface 132d is configured to operate according to one or more suitable communication industry standards (e.g., infrared, radio, wired standards including IEEE 802.3, wireless standards including IEEE 802.11a, 802.11b, 802.11g, 802. l ln, 802.11ac, 802.15, 4G, LTE, etc ). The network interface 132d can be configured, for example, to transmit data to and/or receive data from the playback devices 110, the NMDs 120, other ones of the control devices 130, one of the computing devices 106 of Figure IB, devices comprising one or more other media playback systems, etc. The transmitted and/or received data can include, for example, playback device control commands, state variables, playback zone and/or zone group configurations. For instance, based on user input received at the user interface 133, the network interface 132d can transmit a playback device control command (e.g., volume control, audio playback control, audio content selection, etc.) from the control device 130a to one or more of the playback devices 110. The network interface 132d can also transmit and/or receive configuration changes such as, for example, adding/removing one or more playback devices 110 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. Additional description of zones and groups can be found below with respect to Figures 1I-1M.
[0086] The user interface 133 is configured to receive user input and can facilitate control of the media playback system 100. The user interface 133 includes media content art 133a (e.g., album art, lyrics, videos, etc.), a playback status indicator 133b (e.g., an elapsed and/or remaining time indicator), media content information region 133c, a playback control region 133d, and a zone indicator 133e. The media content information region 133c can include a display of relevant information (e g., title, artist, album, genre, release year, etc.) about media content currently playing and/or media content in a queue or playlist. The playback control region 133d can include selectable (e.g., via touch input and/or via a cursor or another suitable selector) icons to cause one or more playback devices in a selected playback zone or zone group to perform playback actions such as, for example, 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, etc. The playback control region 133d may also include selectable icons to modify equalization settings, playback volume, and/or other suitable playback actions. In the illustrated embodiment, the user interface 133 comprises a display presented on a touch screen interface of a smartphone (e g., an iPhone™ an Android phone, etc.). In some embodiments, however, 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.
[0087] The one or more speakers 134 (e.g., one or more transducers) can be configured to output sound to the user of the control device 130a. In some embodiments, the one or more speakers comprise individual transducers configured to correspondingly output low frequencies, midrange frequencies, and/or high frequencies. In some aspects, for example, the control device 130a is configured as a playback device (e.g., one of the playback devices 110). Similarly, in some embodiments the control device 130a is configured as an NMD (e.g., one of the NMDs 120), receiving voice commands and other sounds via the one or more microphones 135.
[0088] The one or more microphones 135 can comprise, for example, one or more condenser microphones, electret condenser microphones, dynamic microphones, and/or other suitable types of microphones or transducers. In some embodiments, two or more of the microphones 135 are arranged to capture location information of an audio source (e.g., voice, audible sound, etc.) and/or configured to facilitate filtering of background noise. Moreover, in certain embodiments, the control device 130a is configured to operate as a playback device and an NMD. In other embodiments, however, the control device 130a omits the one or more speakers 134 and/or the one or more microphones 135. For instance, the control device 130a may comprise a device (e.g., a thermostat, an loT device, a network device, etc.) comprising a portion of the electronics 132 and the user interface 133 (e.g., a touch screen) without any speakers or microphones. Additional control device embodiments are described in further detail below with respect to Figures 4A-4D and 5. e. Suitable Playback Device Configurations
[0089] Figures 1I-1M show example configurations of playback devices in zones and zone groups. Referring first to Figure IM, in one example, a single playback device may belong to a zone. For example, the playback device 110g in the second bedroom 101c (Figure 1A) may belong to Zone C. In some implementations described below, multiple playback devices may be “bonded” to form a “bonded pair” which together form a single zone. For example, the playback device 1101 (e g., a left playback device) can be bonded to the playback device 110m (e.g., a right playback device) to form Zone B. Bonded playback devices may have different playback responsibilities (e.g., channel responsibilities). In another implementation described below, multiple playback devices may be merged to form a single zone. For example, the playback device 1 lOh (e.g., a front playback device) may be merged with the playback device 1 lOi (e.g., a subwoofer), and the playback devices HOj and 110k (e.g., left and right surround speakers, respectively) to form a single Zone D. In another example, the playback devices 110b and 1 lOd can be merged to form a merged group or a zone group 108b. The merged playback devices 110b and HOd may not be specifically assigned different playback responsibilities. That is, the merged playback devices I lOh and HOi may, aside from playing audio content in synchrony, each play audio content as they would if they were not merged.
[0090] Each zone in the media playback system 100 may be provided for control as a single user interface (UI) entity. For example, Zone A may be provided as a single entity named Master Bathroom. Zone B may be provided as a single entity named Master Bedroom. Zone C may be provided as a single entity named Second Bedroom.
[0091] Playback devices that are bonded may have different playback responsibilities, such as responsibilities for certain audio channels. For example, as shown in Figure II, the playback devices 1101 and 110m may be bonded so as to produce or enhance a stereo effect of audio content. In this example, the playback device 1 101 may be configured to play a left channel audio component, while the playback device 110m may be configured to play a right channel audio component. In some implementations, such stereo bonding may be referred to as “pairing”.
[0092] Additionally, bonded playback devices may have additional and/or different respective speaker drivers. As shown in Figure 1J, the playback device I lOh named Front may be bonded with the playback device 1 lOi named SUB. The Front device 1 lOh can be configured to render a range of mid to high frequencies and the SUB device HOi can be configured to render low frequencies. When unbonded, however, the Front device 1 lOh can be configured to render a full range of frequencies. As another example, Figure IK shows the Front and SUB devices I lOh and HOi further bonded with Left and Right playback devices HOj and 110k, respectively. In some implementations, the Right and Left devices HOj and 102k can be configured to form surround or satellite channels of a home theater system. The bonded playback devices I lOh, 1 lOi, 1 lOj, and 110k may form a single Zone D (Figure IM).
[0093] Playback devices that are merged may not have assigned playback responsibilities, and may each render the full range of audio content the respective playback device is capable of. Nevertheless, merged devices may be represented as a single UI entity (i.e., a zone, as discussed above). For instance, the playback devices 110a and HOn in the master bathroom have the single UI entity of Zone A. In one embodiment, the playback devices 110a and 1 lOn may each output the full range of audio content each respective playback devices 110a and 11 On are capable of, in synchrony.
[0094] In some embodiments, an NMD is bonded or merged with another device so as to form a zone. For example, the NMD 120b may be bonded with the playback device I lOe, which together form Zone F, named Living Room. In other embodiments, a stand-alone network microphone device may be in a zone by itself. In other embodiments, however, a stand-alone network microphone device may not be associated with a zone. Additional details regarding associating network microphone devices and playback devices as designated or default devices may be found, for example, in subsequently referenced U.S. Patent Application No. 15/438,749.
[0095] Zones of individual, bonded, and/or merged devices may be grouped to form a zone group. For example, referring to Figure IM, Zone A may be grouped with Zone B to form a zone group 108a that includes the two zones. Similarly, Zone G may be grouped with Zone H to form the zone group 108b. As another example, Zone A may be grouped with one or more other Zones C-I. The Zones A-I may be grouped and ungrouped in numerous ways. For example, three, four, five, or more (e.g., all) of the Zones A-I may be grouped. When grouped, the zones of individual and/or bonded playback devices may play back audio in synchrony with one another, as described in previously referenced U.S. Patent No. 8,234,395. Playback devices may be dynamically grouped and ungrouped to form new or different groups that synchronously play back audio content.
[0096] In various implementations, the zones in an environment may be the default name of a zone within the group or a combination of the names of the zones within a zone group. For example, Zone Group 108b can be assigned a name such as “Dining + Kitchen”, as shown in Figure IM. In some embodiments, a zone group may be given a unique name selected by a user. [0097] Certain data may be stored in a memory of a playback device (e.g., the memory 112b of Figure 1C) as one or more state variables that are periodically updated and used to describe the state of a playback zone, the playback device(s), and/or a zone group associated therewith. The memory 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.
[0098] In some embodiments, the memory may store instances of various variable types associated with the states. Variable instances may be stored with identifiers (e.g., tags) corresponding to type. For example, certain identifiers may be a first type “al” to identify playback device(s) of a zone, a second type “bl” to identify playback device(s) that may be bonded in the zone, and a third type “cl” to identify a zone group to which the zone may belong. As a related example, identifiers associated with the second bedroom 101c may indicate that the playback device is the only playback device of the Zone C and not in a zone group. Identifiers associated with the Den may indicate that the Den is not grouped with other zones but includes bonded playback devices 110h-l 10k. Identifiers associated with the Dining Room may indicate that the Dining Room is part of the Dining + Kitchen zone group 108b and that devices 110b and HOd are grouped (Figure IL). Identifiers associated with the Kitchen may indicate the same or similar information by virtue of the Kitchen being part of the Dining + Kitchen zone group 108b. Other example zone variables and identifiers are described below. [0099] In yet another example, the memory may store variables or identifiers representing other associations of zones and zone groups, such as identifiers associated with Areas, as shown in Figure IM. An area may involve a cluster of zone groups and/or zones not within a zone group. For instance, Figure IM shows an Upper Area 109a including Zones A-D and I, and a Lower Area 109b including Zones E-I. In one aspect, an Area may be used to invoke a cluster of zone groups and/or zones that share one or more zones and/or zone groups of another cluster. In another aspect, this differs from a zone group, which does not share a zone with another zone group. Further examples of techniques for implementing Areas may be found, for example, in U.S. Application No. 15/682,506 filed August 21, 2017 and titled “Room Association Based on Name,” and U.S. Patent No. 8,483,853 filed September 11, 2007, and titled “Controlling and manipulating groupings in a multi-zone media system.” Each of these applications is incorporated herein by reference in its entirety. In some embodiments, the media playback system 100 may not implement Areas, in which case the system may not store variables associated with Areas.
111. Example Systems and Devices
[0100] Figure 2A is a front isometric view of a playback device 210 configured in accordance with aspects of the disclosed technology. Figure 2B is a front isometric view of the playback device 210 without a grille 216e. Figure 2C is an exploded view of the playback device 210. Referring to Figures 2A-2C together, the playback device 210 comprises a housing 216 that includes an upper portion 216a, a right or first side portion 216b, a lower portion, a left or second side portion 216d, the grille 216e, and a rear portion 216f. A plurality of fasteners 216g (e.g., one or more screws, rivets, clips) attaches a frame 216h to the housing 216. A cavity 216j (Figure 2C) in the housing 216 is configured to receive the frame 216h and electronics 212. The frame 216h is configured to carry a plurality of transducers 214 (identified individually in Figure 2B as transducers 214a-f). The electronics 212 (e.g., the electronics 112 of Figure 1C) is configured to receive audio content from an audio source and send electrical signals corresponding to the audio content to the transducers 214 for playback.
[0101] The transducers 214 are configured to receive the electrical signals from the electronics
112, and further configured to convert the received electrical signals into audible sound during playback. For instance, the transducers 214a-c (e.g., tweeters) can be configured to output high frequency sound (e.g., sound waves having a frequency greater than about 2 kHz). The transducers 214d-f (e.g., mid-woofers, woofers, midrange speakers) can be configured output sound at frequencies lower than the transducers 214a-c (e.g., sound waves having a frequency lower than about 2 kHz). In some embodiments, the playback device 210 includes a number of transducers different than those illustrated in Figures 2A-2C. For example, as described in further detail below with respect to Figures 3A-3C, the playback device 210 can include fewer than six transducers (e.g., one, two, three). In other embodiments, however, the playback device 210 includes more than six transducers (e.g., nine, ten). Moreover, in some embodiments, all or a portion of the transducers 214 are configured to operate as a phased array to desirably adjust (e.g., narrow or widen) a radiation pattern of the transducers 214, thereby altering a user’s perception of the sound emitted from the playback device 210.
[0102] In the illustrated embodiment of Figures 2A-2C, a filter 216i is axially aligned with the transducer 214b. The filter 216i can be configured to desirably attenuate a predetermined range of frequencies that the transducer 214b outputs to improve sound quality and a perceived sound stage output collectively by the transducers 214. In some embodiments, however, the playback device 210 omits the filter 216i. In other embodiments, the playback device 210 includes one or more additional filters aligned with the transducers 214b and/or at least another of the transducers 214.
[0103] Figures 3A and 3B are front and right isometric side views, respectively, of an NMD 320 configured in accordance with embodiments of the disclosed technology. Figure 3C is an exploded view of the NMD 320. Figure 3D is an enlarged view of a portion of Figure 3B including a user interface 313 of the NMD 320. Referring first to Figures 3 A-3C, the NMD 320 includes a housing 316 comprising an upper portion 316a, a lower portion 316b and an intermediate portion 316c (e.g., a grille). A plurality of ports, holes or apertures 316d in the upper portion 316a allow sound to pass through to one or more microphones 315 (Figure 3C) positioned within the housing 316. The one or more microphones 315 are configured to receive sound via the apertures 316d and produce electrical signals based on the received sound. In the illustrated embodiment, a frame 316e (Figure 3C) of the housing 316 surrounds cavities 316f and 316g configured to house, respectively, a first transducer 314a (e.g., a tweeter) and a second transducer 314b (e.g., a mid-woofer, a midrange speaker, a woofer). In other embodiments, however, the NMD 320 includes a single transducer, or more than two (e.g., two, five, six) transducers. In certain embodiments, the NMD 320 omits the transducers 314a and 314b altogether.
[0104] Electronics 312 (Figure 3C) includes components configured to drive the transducers 314a and 314b, and further configured to analyze audio data corresponding to the electrical signals produced by the one or more microphones 315. In some embodiments, for example, the electronics 312 comprises many or all of the components of the electronics 112 described above with respect to Figure 1C. In certain embodiments, the electronics 312 includes components described above with respect to Figure IF such as, for example, the one or more processors 112a, the memory 112b, the software components 112c, the network interface 112d, etc. In some embodiments, the electronics 312 includes additional suitable components (e.g., proximity or other sensors).
[0105] Referring to Figure 3D, the user interface 313 includes a plurality of control surfaces (e.g., buttons, knobs, capacitive surfaces) including a first control surface 313a (e.g., a previous control), a second control surface 313b (e.g., a next control), and a third control surface 313c (e.g., a play and/or pause control) that can be adjusted by a user 323. A fourth control surface 313d is configured to receive touch input corresponding to activation and deactivation of the one or microphones 315. A first indicator 313e (e.g., one or more light emitting diodes (LEDs) or another suitable illuminator) can be configured to illuminate only when the one or more microphones 315 are activated. A second indicator 313f (e g., one or more LEDs) can be configured to remain solid during normal operation and to blink or otherwise change from solid to indicate a detection of voice activity. In some embodiments, the user interface 313 includes additional or fewer control surfaces and illuminators. In one embodiment, for example, the user interface 313 includes the first indicator 313e, omitting the second indicator 313f. Moreover, in certain embodiments, the NMD 320 comprises a playback device and a control device, and the user interface 313 comprises the user interface of the control device.
[0106] Referring to Figures 3A-3D together, the NMD 320 is configured to receive voice commands from one or more adjacent users via the one or more microphones 315. As described above with respect to Figure IB, the one or more microphones 315 can acquire, capture, or record sound in a vicinity (e.g., a region within 10 m or less of the NMD 320) and transmit electrical signals corresponding to the recorded sound to the electronics 312. The electronics 312 can process the electrical signals and can analyze the resulting audio data to determine a presence of one or more voice commands (e.g., one or more activation words). In some embodiments, for example, after detection of one or more suitable voice commands, the NMD 320 is configured to transmit a portion of the recorded audio data to another device and/or a remote server (e.g., one or more of the computing devices 106 of Figure IB) for further analysis. The remote server can analyze the audio data, determine an appropriate action based on the voice command, and transmit a message to the NMD 320 to perform the appropriate action. For instance, a user may speak “Sonos, play Michael Jackson”. The NMD 320 can, via the one or more microphones 315, record the user’s voice utterance, determine the presence of a voice command, and transmit the audio data having the voice command to a remote server (e.g., one or more of the remote computing devices 106 of Figure IB, one or more servers of a VAS and/or another suitable service). The remote server can analyze the audio data and determine an action corresponding to the command. The remote server can then transmit a command to the NMD 320 to perform the determined action (e.g., play back audio content related to Michael Jackson). The NMD 320 can receive the command and play back the audio content related to Michael Jackson from a media content source. As described above with respect to Figure IB, suitable content sources can include a device or storage communicatively coupled to the NMD 320 via a LAN (e.g., the network 104 of Figure IB), a remote server (e.g., one or more of the remote computing devices 106 of Figure IB), etc. In certain embodiments, however, the NMD 320 determines and/or performs one or more actions corresponding to the one or more voice commands without intervention or involvement of an external device, computer, or server.
[0107] Figure 3E is a functional block diagram showing additional features of the NMD 320 in accordance with aspects of the disclosure. The NMD 320 includes components configured to facilitate voice command capture including voice activity detector component(s) 312k, beam former components 3121, acoustic echo cancellation (AEC) and/or self-sound suppression components 312m, activation word detector components 312n, and voice/speech conversion components 312o (e.g., voice-to-text and text-to-voice). In the illustrated embodiment of Figure 3E, the foregoing components 312k-312o are shown as separate components. In some embodiments, however, one or more of the components 312k-312o are subcomponents of the processors 112a.
[0108] The beamforming and self-sound suppression components 3121 and 312m are configured to detect an audio signal and determine aspects of voice input represented in the detected audio signal, such as the direction, amplitude, frequency spectrum, etc. The voice activity detector activity components 312k are operably coupled with the beamforming and AEC components 3121 and 312m and are configured to determine a direction and/or directions from which voice activity is likely to have occurred in the detected audio signal. Potential speech directions can be identified by monitoring metrics which distinguish speech from other sounds. Such metrics can include, for example, energy within the speech band relative to background noise and entropy within the speech band, which is measure of spectral structure. As those of ordinary skill in the art will appreciate, speech typically has a lower entropy than most common background noise. The activation word detector components 312n are configured to monitor and analyze received audio to determine if any activation words (e.g., wake words) are present in the received audio. The activation word detector components 312n may analyze the received audio using an activation word detection algorithm. If the activation word detector 312n detects an activation word, the NMD 320 may process voice input contained in the received audio. Example activation word detection algorithms accept audio as input and provide an indication of whether an activation word is present in the audio. Many first- and third-party activation word detection algorithms are known and commercially available. For instance, operators of a voice service may make their algorithm available for use in third-party devices. Alternatively, an algorithm may be trained to detect certain activation words. In some embodiments, the activation word detector 312n runs multiple activation word detection algorithms on the received audio simultaneously (or substantially simultaneously). As noted above, different voice services (e g. AMAZON’S ALEXA, APPLE’S SIRI, or MICROSOFT’S CORTANA) can each use a different activation word for invoking their respective voice service. To support multiple services, the activation word detector 312n may run the received audio through the activation word detection algorithm for each supported voice service in parallel.
[0109] The speech/text conversion components 312o may facilitate processing by converting speech in the voice input to text. In some embodiments, the electronics 312 can include voice recognition software that is trained to a particular user or a particular set of users associated with a household. Such voice recognition software may implement voice-processing algorithms that are tuned to specific voice profile(s). Tuning to specific voice profiles may require less computationally intensive algorithms than traditional voice activity services, which typically sample from a broad base of users and diverse requests that are not targeted to media playback systems.
[0110] Figure 3F is a schematic diagram of an example voice input 328 captured by the NMD 320 in accordance with aspects of the disclosure. The voice input 328 can include a activation word portion 328a and a voice utterance portion 328b. In some embodiments, the activation word 328a can be a known activation word, such as “Alexa”, which is associated with AMAZON’S ALEXA. In other embodiments, however, the voice input 328 may not include a activation word. In some embodiments, a network microphone device may output an audible and/or visible response upon detection of the activation word portion 328a. In addition or alternately, an NMB may output an audible and/or visible response after processing a voice input and/or a series of voice inputs.
[OHl] The voice utterance portion 328b may include, for example, one or more spoken commands (identified individually as a first command 328c and a second command 328e) and one or more spoken keywords (identified individually as a first keyword 328d and a second keyword 328f). In one example, the first command 328c can be a command to play music, such as a specific song, album, playlist, etc. In this example, the keywords may be one or words identifying one or more zones in which the music is to be played, such as the Living Room and the Dining Room shown in Figure 1A. In some examples, the voice utterance portion 328b can include other information, such as detected pauses (e.g., periods of non-speech) between words spoken by a user, as shown in Figure 3F. The pauses may demarcate the locations of separate commands, keywords, or other information spoke by the user within the voice utterance portion 328b.
[0112] In some embodiments, the media playback system 100 is configured to temporarily reduce the volume of audio content that it is playing while detecting the activation word portion 328a. The media playback system 100 may restore the volume after processing the voice input 328, as shown in Figure 3F. Such a process can be referred to as ducking, examples of which are disclosed in U.S. Patent Application No. 15/438,749, incorporated by reference herein in its entirety.
[0113] Figures 4A-4D are schematic diagrams of a control device 430 (e.g., the control device 130a of Figure 1H, a smartphone, a tablet, a dedicated control device, an loT device, and/or another suitable device) showing corresponding user interface displays in various states of operation. A first user interface display 431a (Figure 4A) includes a display name 433a (i.e., “Rooms”). A selected group region 433b displays audio content information (e.g., artist name, track name, album art) of audio content played back in the selected group and/or zone. Group regions 433c and 433d display corresponding group and/or zone name, and audio content information audio content played back or next in a playback queue of the respective group or zone. An audio content region 433e includes information related to audio content in the selected group and/or zone (i.e., the group and/or zone indicated in the selected group region 433b). A lower display region 433f is configured to receive touch input to display one or more other user interface displays. For example, if a user selects “Browse” in the lower display region 433f, the control device 430 can be configured to output a second user interface display 431b (Figure 4B) comprising a plurality of music services 433g (e.g., Spotify, Radio by Tunein, Apple Music, Pandora, Amazon, TV, local music, line-in) through which the user can browse and from which the user can select media content for play back via one or more playback devices (e.g., one of the playback devices 110 of Figure 1A). Alternatively, if the user selects “My Sonos” in the lower display region 433f, the control device 430 can be configured to output a third user interface display 431c (Figure 4C). A first media content region 433h can include graphical representations (e.g., album art) corresponding to individual albums, stations, or playlists. A second media content region 433i can include graphical representations (e.g., album art) corresponding to individual songs, tracks, or other media content. If the user selects a graphical representation 433j (Figure 4C), the control device 430 can be configured to begin play back of audio content corresponding to the graphical representation 433j and output a fourth user interface display 43 Id that includes an enlarged version of the graphical representation 433j, media content information 433k (e.g., track name, artist, album), transport controls 433m (e.g., play, previous, next, pause, volume), and indication 433n of the currently selected group and/or zone name.
[0114] Figure 5 is a schematic diagram of a control device 530 (e.g., a laptop computer, a desktop computer). The control device 530 includes transducers 534, a microphone 535, and a camera 536. A user interface 531 includes a transport control region 533a, a playback status region 533c, a playback zone region 533b, a playback queue region 533d, and a media content source region 533e. The transport control region comprises one or more controls for controlling media playback including, for example, volume, previous, play/pause, next, repeat, shuffle, track position, crossfade, equalization, etc. The audio content source region 533e includes a listing of one or more media content sources from which a user can select media items for play back and/or adding to a playback queue.
[0115] The playback zone region 533b can include representations of playback zones within the media playback system 100 (Figures 1A and IB). 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, renaming of zone groups, etc. In the illustrated embodiment, a “group” icon is 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 can 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 the illustrated embodiment, 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. In some embodiments, the control device 530 includes other interactions and implementations for grouping and ungrouping zones via the user interface 531. In certain embodiments, the representations of playback zones in the playback zone region 533b can be dynamically updated as playback zone or zone group configurations are modified.
[0116] The playback status region 533c includes 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 533b and/or the playback queue region 533d. 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 100 via the user interface 531.
[0117] The playback queue region 533d includes 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. In some embodiments, for example, a playlist can be added to a playback queue, in which information corresponding to each audio item in the playlist may be added to the playback queue. In some embodiments, audio items in a playback queue may be saved as a playlist. In certain embodiments, 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 some embodiments, 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.
[0118] 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. [0119] Figure 6 is a message flow diagram illustrating data exchanges between devices of the media playback system 100 (Figures 1A-1M).
[0120] At step 650a, the media playback system 100 receives an indication of selected media content (e.g., one or more songs, albums, playlists, podcasts, videos, stations) via the control device 130a. The selected media content can comprise, for example, media items stored locally on or more devices (e.g., the audio source 105 of Figure 1C) connected to the media playback system and/or media items stored on one or more media service servers (one or more of the remote computing devices 106 of Figure IB). In response to receiving the indication of the selected media content, the control device 130a transmits a message 651a to the playback device 110a (Figures 1A-1C) to add the selected media content to a playback queue on the playback device 110a.
[0121] At step 650b, the playback device 110a receives the message 651a and adds the selected media content to the playback queue for play back.
[0122] At step 650c, the control device 130a receives input corresponding to a command to play back the selected media content. In response to receiving the input corresponding to the command to play back the selected media content, the control device 130a transmits a message 651b to the playback device 110a causing the playback device 110a to play back the selected media content. In response to receiving the message 651b, the playback device 110a transmits a message 651c to the computing device 106a requesting the selected media content. The computing device 106a, in response to receiving the message 651c, transmits a message 65 Id comprising data (e.g., audio data, video data, a URL, a URI) corresponding to the requested media content.
[0123] At step 650d, the playback device 110a receives the message 651d with the data corresponding to the requested media content and plays back the associated media content.
[0124] At step 650e, the playback device 110a optionally causes one or more other devices to play back the selected media content. In one example, the playback device 110a is one of a bonded zone of two or more players (Figure IM). The playback device 110a can receive the selected media content and transmit all or a portion of the media content to other devices in the bonded zone. In another example, the playback device 110a is a coordinator of a group and is configured to transmit and receive timing information from one or more other devices in the group. The other one or more devices in the group can receive the selected media content from the computing device 106a, and begin playback of the selected media content in response to a message from the playback device 110a such that all of the devices in the group play back the selected media content in synchrony.
IV. Examples of a Home Theater Environment and Operation
[0125] As noted above, playback devices that are bonded may have different playback responsibilities, such as responsibilities for certain audio channels. For example, as illustrated in Figure IK, in a home theater environment, front and subwoofer playback devices 1 lOh and 1 lOi can be bonded with left and right playback devices 1 lOj and 110k, respectively. Further, in some implementations, left and right playback devices HOj and 110k can be configured to form surround or “satellite” channels of a home theater system. The bonded playback devices 1 lOh, 1 lOi, 1 lOj, and 110k may form a single Zone D (as illustrated in Figure IM).
[0126] Figure 7 illustrates an example of a home theater environment 700. As shown, home theater environment 700 comprises a display device 706, such as a television or monitor, that displays visual content and outputs audio content that is associated with the displayed visual content via a communication link 705 to a primary playback device 702 (for example, a soundbar, a smart television box, a smart television stick, and so forth). Primary playback device 702 is capable of receiving audio via an audio input interface from a television, media player (for example, set-top box, streaming media playback device, computer), or other home theater source. Further, primary playback device 702 may operate as a sourcing device for a bonded zone (for example, a home theater group) that includes one or more satellite playback devices, also referred to herein as “satellites”. The satellites may play back certain channels (for example, playback devices HOj and 110k) and/or certain frequency ranges (for example, playback device 1 lOi), as shown, for example, in Figures IK and 1J illustrating den lOld.
[0127] Primary playback device 702 includes a first radio 712 (also referred to as a “backhaul radio”) and, using first radio 712, communicates with an access point (AP) 708 via a communication link 707 (for example, a backhaul connection). Additionally, primary playback device 702 includes a second radio 714 (also referred to as the “fronthaul radio”) and, using second radio 714, communicates with one or more satellite playback devices 704a, 704b via one or more communication links 703a, 703b, as discussed in more detail below. Access point 708, in turn, communicates with other devices such as a user device 710 (for example, a smartphone, tablet, laptop, desktop computer, and so forth) via a communication link 709. In some examples, primary playback device 702 may be integrated with display device 706, for example a television may include a smart soundbar.
[0128] In some instances, home theater environment 700 may play back audio from a music streaming service. In such instances, primary playback device 702 may communicate with one or more cloud servers associated with a music service provider (for example, via communication link 707 to access point 708) to obtain the audio content for playback. After receipt of the audio content for playback, primary playback device 702 may communicate the audio content (or any portion thereof) to satellite playback devices 704a, 704b for synchronous playback via communication links 703a, 703b. In examples where primary playback device 702 is implemented as a soundbar (or otherwise comprises transducers for rendering audio content), primary playback device 702 may render the audio content in synchrony with satellite playback devices 704a, 704b. In such examples, primary playback device 702 and satellite playback devices 704a, 704b form a home theater bonded zone or group, as discussed above with reference to Figure 1 J, for example. In examples where primary playback device 702 is implemented as a smart television box or smart television stick (or otherwise does not comprise transducers for rendering audio content), satellite playback devices 704a, 704b may render the audio content in synchrony with each other while primary playback device 702 may not render the audio content. In such examples, satellite playback devices 704a, 704b form a home theater bonded zone.
[0129] In some instances, primary playback device 702 and satellite playback devices 704a, 704b may render audio content in lip-synchrony with associated visual content displayed by display device 706. In such examples, primary playback device 702 may receive audio content from display device 706. For example, primary playback device 702 and display device 706 can include analog and/or digital interfaces that facilitate communicating the audio content (for example, multichannel audio content) such as a SPDIF RCA interface, an HDMI interface (for example, an audio return channel (ARC) HDMI interface), an optical interface (for example, a TOSLINK interface), and so forth. In such examples, communication link 705 may comprise a wired connection (for example, an SPDIF cable, an HDMI cable, a TOSLINK cable, and so forth). In other examples, primary playback device 702 and display device 706 may include wireless circuitry that facilitates wirelessly communicating the audio content from display device 706 to primary playback device 702. In such examples, communication link 705 may be a wireless communication link such as a WIFI link, BLUETOOTH link, ZIGBEE link, Z-WAVE link, and/or wireless HDMI link.
[0130] After receipt of the audio content associated with visual content to be rendered by display device 706, primary playback device 702 may communicate the received audio content (or any portion thereof) to satellite playback devices 704a, 704b (for example, via communication links 703a, 703b). Any of a variety of methodologies may be employed to communicate the audio content to satellite playback devices 704a, 704b as described in more detail below with respect to Figures 8A and 8B. Once the audio content has been communicated to satellite playback devices 704a, 704b, satellite playback devices 704a, 704b (and/or primary playback device 702) may render the audio content in synchrony with each other and in lipsynchrony with visual content displayed on display device 706. For instance, in examples where primary playback device 702 is implemented as a soundbar (or otherwise comprises transducers for rendering audio content), primary playback device 702 may render the audio content in synchrony with satellite playback devices 704a, 704b and in lip-synchrony with the visual content displayed on display device 706. In examples where primary playback device 702 is implemented as a smart television box or smart television stick (or otherwise does not comprise transducers for rendering audio content), satellite playback devices 704a, 704b may render the audio content in synchrony with each other and in lip-synchrony with the display of visual content on display device 706 while the primary playback device 702 may not render the audio content.
[0131] In some embodiments, primary playback device 702 may also be configured to operate as an access point and/or as a router (for example, a mesh router) that client devices (for example, separate and apart from devices in home theater environment 700) may be able to connect to for network access (for example, access to a Wide Area Network (WAN) such as the Internet). For instance, primary playback device 702 may be configured as a wireless mesh router that integrates into a mesh router system to extend the range of the mesh router system. Such mesh router systems are becoming increasingly advantageous with the deployment of countless Internet-of-Things (loT) devices in spaces (for example, residential and/or commercial spaces).
[0132] Figure 8A illustrates an example of a methodology that can be used by a primary playback device to communicate audio content to satellite playback devices. In some instances, a primary playback device can use a Round Robin scheduling approach to communicate the audio content to satellite playback devices. For example, a primary playback device can receive a stream of audio content samples (800a, 800b, ... , 800n) from a display device. The audio content samples can be communicated from the display device at any of a variety of rates including, for example, 44.1 kHz, 48 kHz, 96 kHz, 176.2 kHz, and 192 kHz. The audio content samples may comprise uncompressed audio content (for example, pulse-code modulation (PCM) audio) and/or compressed audio content (for example, DOLBY audio such as DOLBY AC -3 audio, DOLBY E-AC-3 audio, DOLBY AC-4 audio, and DOLBY ATMOS audio). The display device outputs the audio content samples while beginning the process of rendering the video content on a display (for example, on a display integrated into the display device). Given that the display device may take tens of milliseconds to successfully render the video content, the audio content samples may be output just before the corresponding video content is displayed (for example, tens of milliseconds earlier). The primary playback device may coordinate playback of the audio content samples in lip-synchrony with the video content being displayed on the display device such that there is no perceived audio delay (that is, no lip-syncing issues are perceived) by the viewer. In this regard, it can be shown that in some cases, a delay of no more than 40 ms between the video content being rendered and the audio content being heard is imperceptible to the average viewer. The primary playback device may achieve lip-synchrony by, for example, exploiting one or more of the following periods of time: (1) a gap between the display device outputting the audio content samples and the display device actually displaying the associated visual content; and/or (2) an allowable delay between the visual content being displayed and the associated audio content being played back without losing lip-synchrony (for example, up to 40 ms).
[0133] After receiving a first audio content sample 800a, the primary playback device can extract a first set of channel samples 805a (that is, front-left, front-right, and so forth) from first audio content sample 800a and can communicate the first set of channel samples 805a to the corresponding satellite playback devices. In the example illustrated in Figure 8A, the first set of channel samples 805a are communicated sequentially. For example, during a first interval, the primary playback device can communicate the front-left channel sample (FL1) associated with first audio content sample 800a to a first satellite playback device assigned to render the front left channel. During a second interval, the primary playback device can communicate the front-right channel sample (FR1) associated with first audio content sample 800a to a second satellite playback device assigned to render the front right channel. During a third interval, the primary playback device can communicate the subwoofer channel sample (SB1) associated with first audio content sample 800a to a third satellite playback device assigned to render the subwoofer channel. During a fourth interval, the primary playback device can communicate the rear-left channel sample (RL1) associated with first audio content sample 800a to a fourth satellite playback device assigned to render the rear-left channel. During a fifth interval, the primary playback device can communicate the rear-right channel sample (RR1) associated with first audio content sample 800a to a fifth satellite playback device assigned to render the rear-right channel.
[0134] The same process can repeat with the arrival of subsequent audio content samples from the display device, such as a second audio content sample 800b through an nth audio content sample 800n. For example, after receiving second audio content sample 800b, the primary playback device can extract a second set of channel samples 805b from second audio content sample 800b and can sequentially communicate the second set of channel samples 805b to the corresponding satellite playback devices. Likewise, after receiving nth audio content sample 800n, the primary playback device can extract an nth set of channel samples 805n from nth audio content sample 800n and can sequentially communicate the nth set of channel samples 805n to the corresponding satellite playback devices.
[0135] As discussed above, in certain examples, a single device (for example, the primary playback device and/or any one or more of the satellite playback devices) may be assigned to render multiple audio channels simultaneously. As a result, a single transmission to a single satellite in accordance with the Round Robin approach shown in Figure 8A may comprise channel samples associated with multiple channels. For instance, a satellite playback device may be assigned to render both a right-rear channel and a height channel. In such an instance, a transmission to that satellite playback device may comprise a right-rear channel sample and a height channel sample for the satellite playback device to render.
[0136] Further, it should be appreciated that the primary playback device may communicate channel samples to multiple satellite playback devices simultaneously. Simultaneous communication of audio content from the primary playback device to the satellite playback devices may be accomplished in any of a variety of ways. For example, certain wireless communication standards (for example, 802.1 lax, 802.1 Ibe, WIFI 6, WIFI 6E, and/or WIFI 7) include orthogonal frequency-division multiple access (OFDMA) support that enables a given wireless channel to be subdivided into multiple smaller subchannels. Each of these subchannels may be employed to communicate with different devices independently from each other. In examples where the primary playback device (and at least two of the satellite playback devices) support such a wireless communication standard, the primary playback device may simultaneously transmit audio samples to two or more satellite playback devices that support OFDMA. For example, the primary playback device may simultaneously transmit audio samples to a first satellite playback device over a first subchannel and transmit audio samples to a second satellite playback device over a second subchannel within the same channel as the first subchannel.
[0137] In some instances, the satellite playback devices may comprise a mix of one or more devices that support OFDMA (for example, one or more devices that support 802.11 ax, 802.1 Ibe, WIFI 6, WIFI 6E and/or WIFI 7) and one or more devices that do not support OFDMA (for example, one or more devices that support an older backwards-compatible standard such as 802.1 In, 802.1 lac, WIFI 4, WIFI 5, and so forth). In such instances, the primary playback device may combine transmission of channel samples to multiple OFDMA capable satellite playback devices into a smaller number of transmissions than there are OFDMA capable satellite playback devices (for example, into one transmission) while individually transmitting the other channel samples to the set of devices that do not support OFDMA. For example, the satellite playback devices may comprise four devices that support OFDMA and two devices that do not. In this example, the primary playback device may make three transmissions for each audio content sample including: (1) a first transmission to all four of the OFDMA capable satellites; (2) a second transmission to the first non-OFDMA capable satellite; and (3) a third transmission to the second non-OFDMA capable satellite.
[0138] It should be appreciated that other techniques separate and apart from OFDMA may be employed to facilitate simultaneous communication of channel samples to satellite playback devices. For instance, the primary playback device may simultaneously communicate with multiple satellite playback devices using multiple wireless channels. For example, channel samples for a first subset of the satellite playback devices can be communicated via a first RF channel and channel samples for a second subset of the satellite playback devices can be communicated via a second RF channel that is different from the first RF channel (for example, a different channel in the same spectrum as the first RF channel or a different channel in a different spectrum than the first RF channel).
[0139] Figure 8B illustrates an example of a method that can be used by a primary playback device to communicate audio content to satellite playback devices, wherein the method leverages the simultaneous communication capabilities described above. As shown, multiple channel samples may be transmitted simultaneously to multiple different satellite playback devices. For example, during a first interval, the primary playback device can communicate both the front-left channel sample (FL1) associated with first audio content sample 800a to a first satellite playback device and the front-right channel sample (FR1) associated with first audio content sample 800a to a second satellite playback device. During a second interval, the primary playback device can communicate the subwoofer channel sample (SB1) associated with first audio content sample 800a to a third satellite playback device (that is, a subwoofer satellite device). During a third interval, the primary playback device can communicate both the rear-left channel sample (RL1) associated with first audio content sample 800a to a fourth satellite playback device and the rearright channel sample (RR1) associated with first audio content sample 800a to a fifth satellite playback device. The same process can repeat with the arrival of subsequent audio content samples from a television, such as second audio content sample 800b through nth audio content sample 800n.
[0140] It should be appreciated that the order in which channel samples are grouped and transmitted may vary based on the particular implementation. For example, the rear-left channel sample (RL1) and/or the rear-right channel sample (RR1) may be transmitted before the frontleft channel sample (FL1) and/or the front-right channel sample (FR1). Additionally (or alternatively), the rear-left channel sample (RL1) may be transmitted simultaneously with the front-left channel sample (FL1) and/or the front-right channel sample (FR1). Thus, channel samples may be ordered and/or grouped in any of a variety of ways.
[0141] It should be noted that the amount of time required to communicate the channel samples associated with a corresponding audio content sample can depend on the number of channels encoded in the audio content sample and/or the number of channels to be decoded from the audio content sample for playback by the satellite playback devices. For example, the total amount of time required to communicate the channel samples may increase as the total number of channels increases. As discussed above, this increase in the total amount of time required to communicate the channel samples can become problematic in home theater systems attempting to maintain lipsynchrony with video content being played back on a television. For example, the total amount of time required to communicate the channel samples for audio content with a large number of audio channels (for example, DOLBY ATMOS audio content) may be longer than the available time window to render audio output in lip-synchrony. In particular, when a decoded chunk of audio content is large enough such that the amount of time required to communicate the chunk in a Round Robin framework causes lip-synchrony delays for certain satellite playback devices, breaking the chunk into smaller portions for Round Robin transmission can help maintain lipsynchrony.
[0142] Accordingly, aspects and embodiments disclosed herein provide techniques for delivering audio content to a network of satellite playback devices in a way that allows the satellite playback devices to play back the audio content in synchrony with rendering of corresponding video content. Such techniques may involve manipulating the timing with which decoded audio is written to a memory buffer for a wireless network interface that is used to transmit the decoded audio to one or more satellite playback devices. In particular, reducing the amount of decoded audio that is written to the memory buffer causes smaller portions of data to be communicated to a particular satellite playback device. This reduces the likelihood that the processing and transmission of such data will cause other satellite playback devices receiving data in a Round Robin framework to render audio content out of synchrony with a corresponding video playback.
[0143] Figure 9 is a logical diagram of components of a primary playback device 900 that can manipulate the timing with which decoded audio is transmitted to satellite playback devices. For example, primary playback device 900 can communicate decoded audio content to satellite playback devices so that any delay between video rendered on a video playback device and corresponding audio output from the satellite playback devices is less than 45 ms, less than 40 ms, less than 20 ms, less than 10 ms, or less than 5 ms. As illustrated in Figure 9, primary playback device 900 includes, among other things, an audio input interface 910, a processor 920, a memory 930, a wireless network interface 940, and an antenna 950. Fewer, additional, or alternative components can be included in other implementations. [0144] Audio input interface 910 is configured to receive encoded audio content 10 from an external component, such as a video playback device, via a communication link 905. In certain implementations encoded audio content 10 comprises multichannel audio content. The video playback device that acts as a source of encoded audio content 10 may be a display device, such as display device 706 illustrated in Figure 7, which could be a television, media player, monitor, or other home theater source. Audio input interface 910 can be implemented as an analog and/or digital interface that facilitates the transfer of encoded audio content 10, such as a SPDIF RCA interface, an HDMI interface (for example, an audio return channel (ARC) HDMI interface), an optical interface (for example, a TOSLINK interface), and so forth. In such examples, communication link 905 between the video playback device and audio input interface 910 may comprise a wired connection, such as an SPDIF cable, an HDMI cable, a TOSLINK cable, and so forth. In other examples, audio input interface 910 includes wireless circuitry that facilitates wirelessly communicating encoded audio content 10 from the video playback device to primary playback device 900. In such examples, communication link 905 is implemented as a wireless communication link such as a WIFI link, BLUETOOTH link, ZIGBEE link, Z-WAVE link, and/or wireless HDMI link.
[0145] Processor 920 comprises clock-driven computing components configured to execute instructions 932 stored in a non-transitory computer-readable medium such as memory 930. Processor 920 can correspond to or include the capabilities of processor 112a described above. For example, processor 920 can be configured to process encoded audio content 10 received via audio input interface 910. In certain implementations processor 920 includes a decoder 922 configured to decode encoded audio content 10, thereby generating decoded audio content. In general, encoded audio content 10 can be encoded using a number of different encoding schemes, such as uncompressed pulse-code modulation (PCM) audio, or various types of compressed encoding formats (for example, DOLBY audio such as DOLBY AC-3 audio, DOLBY E-AC-3 audio, DOLBY AC -4 audio, DOLBY ATMOS audio, DOLBY Digital, DOLBY Digital Plus, DOLBY TrueHD, DOLBY Digital Surround, DTS-HD High Resolution, DTS-HD Master Audio, and so forth). Decoder 922 is configured to decode encoded audio content 10 using an appropriate decoding scheme. For example, PCM audio data may be handled using one processing scheme, while DTS-encoded audio data may be decoded using a different processing scheme. [0146] It should be appreciated that the decoder 922 may be implemented using software (for example, as a software decoder) that is, for example, executed by the processor 920 or using hardware (for example, as a hardware decoder) that is incorporated into the same Integrated Circuit (IC) as the processor 920 or a different IC. Accordingly, the implementation of the decoder 922 is not limited in this respect.
[0147] In certain implementations decoder 922 uses a decoding scheme that generates discrete segments of decoded audio content corresponding to a particular amount of audio content to be played back. These discrete segments, also referred to as “chunks” or “decode bursts”, may correspond to, for example, 10 ms, 15 ms, 20 ms, 25 ms, 32 ms, 35 ms, or 40 ms of audio content to be rendered by primary playback device 900 and/or one or more satellite playback devices. In practice, the exact quantity of decoded audio content in a particular chunk will depend on the encoding scheme used to generate encoded audio content 10. A chunk of decoded audio content generated by decoder 922 can be stored in an audio buffer 934.
[0148] In certain implementations processor 920 is a multicore processor, with different operations performed on different cores. For example, decoding, digital signal processing, and simple rate conversion operations can be performed on a first processor core, while operations to manipulate (for example, read and write) data for audio buffer 934 can be performed on a second processor core. In some cases wireless network interface 940 has its own processor core to invoke its own operations. Other hardware architectures can be implemented in other examples.
[0149] Wireless network interface 940 can include, among other things, a transmit buffer 942 and transmitter circuitry 944. Wireless network interface 940 can correspond to or include the capability of wireless interface 112e described above. Transmit buffer 942 can be configured to store data to be transmitted via antenna 950. For example, transmit buffer 942 can be sized to store one or more chunks of decoded audio content that is generated by decoder 922 and that is stored in audio buffer 934. In particular, transmit buffer 942 can receive decoded audio content from audio buffer 934, which as illustrated in Figure 9, is in communication with and upstream of transmit buffer 942. Transmit buffer 942 can communicate the decoded audio content to transmitter circuitry 944, which is in communication with and downstream of transmit buffer 942. An example of transmit buffer 942 can correspond to a first-in-first-out (FIFO) memory. In this regard, transmit buffer 942 can output lower and upper watermark indications that can facilitate determining, by processor 920, whether the amount of decoded audio content stored in transmit buffer 942 is below the lower watermark (for example, a lower threshold) or is above the upper watermark (for example, an upper threshold). That is, processor 920 can determine whether the FIFO memory is almost empty or almost full.
[0150] Antenna 950 is configured to radiate electromagnetic waves. In some implementations antenna 950 is also configured to detect electromagnetic waves. Antenna 950 may have any of a variety of constructions. For example, antenna 950 can be a multiband antenna (for example, a dual-band antenna) configured to operate on several frequency spectra (for example, two or more of the 2.4 GHz spectrum, the 5 GHz spectrum, and the 6 GHz spectrum), such as a dual-band inverted-F antenna (IFA). In other examples, antenna 950 can be a single-band antenna configured to operate on a single frequency spectrum (for example, the 2.4 GHz spectrum, the 5 GHz spectrum, or the 6 GHz spectrum).
[0151] It should be appreciated that primary playback device 900 is schematically illustrated in Figure 9 as a logical diagram to facilitate description of various aspects of the disclosure. Accordingly, a primary playback device implemented using the techniques described herein may include different components (for example, additional components, fewer components, and so forth) arranged in a different fashion than are shown in Figure 9. For example, a primary playback device that implements the techniques described herein may implement one or more functions of wireless network interface 940 in program instructions executed by processor 920. Additionally or alternatively, one or more components may be coupled between the elements shown in Figure 9.
[0152] Figure 10 is a data flow diagram illustrating the decoding, storage, and transmission of encoded audio content that is received at a primary playback device from a video playback device. In particular, Figure 10 illustrates encoded audio content 10 being processed by decoder 922 to generate a chunk 12 of decoded audio content. Where encoded audio content forms part of a stream of encoded audio that is to be played back, decoder 922 can be configured to generate a sequence of chunks 12 of decoded audio content, one or more or all of which can be processed according to the techniques disclosed herein. Thus while Figure 10 illustrates a single decoded chunk 12 resulting from decoding encoded audio content 10, it will be appreciated that the techniques disclosed herein can be applied to any number of chunks 12 of decoded audio content. Decoded chunk 12 may correspond to, for example, 15 ms, 20 ms, 25 ms, 32 ms, 35 ms, or 40 ms of audio content to be rendered by primary playback device 900 and/or one or more satellite playback devices.
[0153] Even if transmit buffer 942 of wireless network interface 940 has a memory capacity that is capable of receiving and storing the entirety of decoded chunk 12, in certain implementations only a portion of decoded chunk 12 is moved to transmit buffer 942. Thus, as illustrated in Figure 10, a withheld portion 14 of decoded chunk 12 remains in audio buffer 934, while a transmitted portion 16 of decoded chunk 12 is moved to transmit buffer 942. In this context “moved” refers to writing transmitted portion 16 to transmit buffer 942 and erasing transmitted portion 16 from audio buffer 934. Writing only a smaller subset of decoded chunk 12 to transmit buffer results in transmitter circuitry 944 transmitting only the smaller subset to the satellite playback devices. Transmitting a smaller amount of data to satellite playback devices reduces processing and transmission time, thus mitigating or eliminating the aforementioned problems with maintaining lip-synchrony with corresponding video content being played back on the video playback device. In particular, as noted above, the total amount of time required to communicate an entire decoded chunk 12 containing a large number of audio channels (for example, DOLBY ATMOS audio content) may be longer than the available time window to render audio output in lip-synchrony. Reducing the amount of transmitted data to only a portion 16 of the decoded chunk 12 increases the likelihood that the rendered audio maintains lip-synchrony with corresponding video content playback. As used herein, references to maintaining lip-synchrony and the like refer to avoiding perception of a temporal disconnect between video and audio playback. For example, transmitting only a portion 16 of decoded chunk 12 to satellite playback devices allows any delay between video rendered on a video playback device and corresponding audio output from the satellite playback devices to be less than 45 ms, less than 40 ms, less than 20 ms, less than 10 ms, or less than 5 ms.
[0154] In certain implementations decoded chunk 12 may correspond to, for example, between 10 ms and 40 ms, between 15 ms and 40 ms, between 15 ms and 35 ms, between 15 ms and 32 ms, between 15 ms and 25 ms, or between 20 ms and 35 ms of audio content to be rendered by primary playback device 900 and/or one or more satellite playback devices. More specifically, in certain implementations decoded chunk 12 may correspond to, for example, 10 ms, 15 ms, 20 ms, 25 ms, 32 ms, 35 ms, or 40 ms of audio content. In certain implementations transmitted portion 16 of decoded chunk 12 may correspond to, for example, between 2 ms and 10 ms, between 2 ms and 4 ms, between 2 ms and 6 ms, between 2.5 ms and 8 ms, between 2.5 ms and 6 ms, between 3 ms and 6 ms, between 2.5 ms and 5 ms, or between 3 ms and 6 ms of audio content to be rendered by primary playback device 900 and/or one or more satellite playback devices. More specifically, in certain implementations transmitted portion of decoded chunk 12 may correspond to, for example, 2 ms, 2.5 ms, 2.9 ms, 3 ms, 5 ms, 5.8 ms, 6 ms, 8 ms, or 10 ms of audio content.
[0155] Once transmitted portion 16 of decoded chunk 12 is actually transmitted to the satellite playback devices, withheld portion 14 of decoded chunk 12 can then be moved to transmit buffer 942 for subsequent transmission to satellite playback devices. In certain implementations a delay exists between moving transmitted portion 16 and subsequently moving withheld portion 14 to transmit buffer 942. Such delay ensures that transmitter circuitry 944 does not transmit the two portions to the satellite playback devices in a single transmission, thus defeating the purpose of separating decoded chunk 12 into withheld portion 14 and transmitted portion 16. In certain implementations, the delay between moving the two portions to transmit buffer 942 is 3 ms, 5 ms, 6 ms, 7 ms, 8 ms, or 10 ms. For example, in various embodiments the delay can be between 3 ms and 10 ms, between 3 ms and 8 ms, between 5 ms and 10 ms, or between 5 ms and 7 ms.
[0156] In general, the duration of the delay can be selected such that it is long enough to cause transmitter circuitry 944 to transmit buffered audio data without waiting for further transmit buffer write operations, yet not so long as to introduce lip-synchrony delays into audio playback at the satellite playback devices. In one implementation the duration of the delay is selected based upon a theoretical calculation of how long it will take to process and transmit a particular portion of the chunk of decoded audio content. In certain implementations the delay is dynamically calculated and adjusted based on the performance of transmitter circuitry 944, the quantity of data stored in transmit buffer 942, the characteristics of the decoded audio content (for example, bit rate and/or number of encoded channels), and/or other considerations (for example, the number of satellite playback devices to which the audio content is being transmitted, the degree of congestion on the wireless network used to transmit the audio data - which could in turn depend on time of day or other usage patterns, or the frequency at which transmissions fail due to network conditions), as will be disclosed in turn. In one implementation the delay is determined at the time a network of satellite playback devices is initially configured based on information such as the quantity and physical arrangement of the satellite playback devices.
[0157] In one implementation the techniques disclosed herein for manipulating the timing with which decoded audio content is written to transmit buffer 942 are invoked in response to detecting that a particular format of encoded audio is received at primary playback device 900, or in response to detecting that encoded audio content having particular characteristics (for example, a particular bit rate and/or a particular number of encoded channels) is received at primary playback device 900.
[0158] In some implementations wireless network interface 940 provides information to processor 920 regarding a quantity of packets that have not yet been transmitted to the satellite playback devices (for example, a quantity of packets remaining in transmit buffer 942). If this number is lower than a specified threshold, processor 920 can be configured to perform additional audio buffer read / transmit buffer write operations. In this case, the number of packets written to transmit buffer 942 in a given read/write operation can be dynamically adjusted for each chunk of decoded audio data. In other implementations, the delay period between writing the next portion of decoded audio content to transmit buffer 942 can be adjusted.
[0159] Figure 11A is a timing diagram that schematically illustrates how a primary playback device can process and transmit decoded audio content to satellite playback devices according to a specified timing. More specifically, Figure 11A schematically illustrates selected data processing operations that primary playback device 900 can perform in accordance with certain of the techniques disclosed herein. These operations are arranged along a time axis 975. It will be appreciated that additional, fewer, or alternative operations may be performed in other implementations, and that the particular arrangement and timing of operations illustrated in Figure 11 A is provided by way of example only.
[0160] As described above, primary playback device 900 receives encoded audio content 10 from an external component, such as a video playback device. And as illustrated in Figure 11 A, the received encoded audio content 10 is decoded in a decode operation 960. Decode operation 960 can be understood as producing a “chunk” or “decode burst” of decoded audio content which may correspond to, for example, 15 ms, 20 ms, 25 ms, 32 ms, 35 ms, or 40 ms of audio content to be rendered by primary playback device 900 and/or one or more satellite playback devices. In certain implementations decode operation 960 is followed by one or more operations to further process the decoded audio content chunk in preparation for subsequent transmission and playback. These additional operations may include, for example, digital signal processing (DSP) operations 961 and simple rate conversion (SRC) operations 962. In certain implementations SRC operations 962 are provided to facilitate synchronization between multiple satellite playback devices. In some implementations these additional operations are performed by corresponding dedicated modules executing on processor 920.
[0161] Following decoding, signal processing, and simple rate conversion, uncompressed pulsecode modulation (PCM) audio content is generated and written to audio buffer 934 in PCM operation 963. This can be understood as an audio buffer write operation 970 that causes audio buffer use to increase, as indicated by the upward sloping line along vertical axis 976 in Figure 11 A. In certain implementations audio buffer 934 has a capacity capable of storing the entirety of the decoded audio chunk generated in PCM operation 963. PCM audio content may also be referred to as decoded audio content.
[0162] At some point after the uncompressed PCM audio content begins being written to audio buffer 934, portions of this audio content can be transferred to transmit buffer 942. This can be understood as occurring in an audio buffer read / transmit buffer write operation 972. Once content is written to transmit buffer 942, that content can be erased from audio buffer 934, thus freeing space in audio buffer 934. As illustrated in Figure 11 A, at certain times different portions of PCM audio content may be simultaneously (or nearly simultaneously) written to and erased from audio buffer 934, thus reducing the extent to which audio buffer use, as indicated on vertical axis 976, increases with time.
[0163] Notably, as illustrated in Figure 11 A, the entire decoded audio content chunk is not written to transmit buffer 942 at once. Rather, a first portion of the decoded audio content chunk is written to transmit buffer 942, followed by a first delay during which no additional content is written to transmit buffer 942. At this point, the first portion that is written to transmit buffer 942 can be understood as corresponding to the transmitted portion 16 illustrated in Figure 10; other portions of the decoded audio chunk can be understood as corresponding to the withheld portion 14 illustrated in Figure 10.
[0164] After the delay, a second portion of the decoded audio content chunk is written to transmit buffer 942, followed by a second delay. After the second delay, a third portion of the decoded audio content chink is written to transmit buffer 942. As additional encoded audio content is received, decoded, and written to audio buffer 934, the process of alternately writing portions of decoded audio to transmit buffer 942 and pausing for a delay can continue.
[0165] In the example implementation illustrated in Figure 11 A, the decoded audio content comprises multichannel audio content that includes a front-left channel, a front-right channel, a subwoofer channel, a rear-left channel, and a rear-right channel. When a portion of decoded audio content that is stored in audio buffer 934 is written to transmit buffer 942, the portion may comprise multiple “packets”, wherein each packet comprises a quantity of audio content for each of the five channels. This is illustrated schematically in Figures 11A and 1 IB, wherein a given chunk 980 of decoded audio content can be broken into three portions 982. When the portions 982 are written to transmit buffer 942, writing a first portion is separated from writing a second portion by a delay. Each portion 982 comprises a plurality of packets 984, such as three packets. And each packet comprises a quantity of audio content for each of the five channels that constitute the received encoded multichannel audio content.
[0166] While Figure 11B illustrates each chunk as comprising three portions, each portion comprising three packets, and each packet comprising content for five audio channels, other segmentation schemes can be implemented in other implementations. For example, in some implementations a first chunk of decoded audio content is subdivided into an odd number of portions (for example, three), and a subsequent chunk of decoded audio content is subdivided into an even number of portions (for example, two). Likewise, a given portion of decoded audio content that is written to transmit buffer 942 may have originated from two sequential chunks of decoded audio content. In addition, the segmentation scheme is not necessarily uniform for a given audio stream, such that a first chunk may be segmented into three portions and a subsequent second chunk may be segmented into two portions. Likewise, a first portion may be segmented into three packets, while a subsequent portion may be segmented into two packets. In addition, while Figure 11B illustrates packet 984 as comprising audio data for a plurality of channels, in other implementations wherein single-channel audio data is being transmitted, packet 984 may comprise audio data for a single channel.
[0167] Figure 11A illustrates the second portion of the decoded audio content being moved to transmit buffer 942 while the first portion of the decoded audio content is still being transmitted to the satellite playback devices. In an alternative implementation, the delay period is configured (for example, increased) such that the second portion of the decoded audio content is moved to transmit buffer 942 only after the entirety of the first portion of the decoded audio content has been transmitted to the satellite playback devices.
[0168] Audio content which has been written to transmit buffer 942 is subsequently processed by transmitter circuitry 944 and transmitted to a satellite playback device. For example, Figure 11A illustrates transmission 965a of decoded content to a front-left satellite playback device, transmission 965b of decoded content to a front-right satellite playback device, transmission 965c of decoded content to a subwoofer satellite playback device, transmission 965d of decoded content to a rear-left satellite playback device, and transmission 965e of decoded content to a rear-right satellite playback device. Decoded audio content is thus transmitted to a plurality of satellite playback devices using a Round Robin approach, with a relatively small amount of data transmitted to each satellite playback device in sequence. By periodically delaying the audio buffer read / transmit buffer write operations 972 as illustrated in Figure 11 A, this reduces the amount of data transmitted to a particular satellite playback device during its Round Robin sequence, thus reducing the likelihood that the time required to transmit, process, and render such data causes subsequent transmissions to be delayed to an extent that would result in loss of lip-synchrony with a corresponding video presentation.
[0169] Figure 11A illustrates processing of one chunk of audio content received by primary playback device 900 from an external component, such as a video playback device. The processing of one chunk of decoded audio content is illustrated for clarity, and it will be appreciated that the operations illustrated in Figure 11A can be repeated for a second chunk of audio content received from the external component. Where a stream of audio content is received, these operations can be repeated continually, at least until additional audio content is no longer available.
[0170] Figure 12 is a flowchart illustrating an example method 1000 for decoding, storing, and transmitting audio content that is received at a primary playback device from a video playback device. However, other system architectures and software components can be used to perform such functionality in other implementations. To this end, the correlation of the various functionalities shown in Figure 12 to the various components of the primary playback device illustrated in Figure 9 is not intended to imply any structural and/or use limitations. Rather, other implementations may include, for example, varying degrees of integration wherein certain functionalities are effectively performed by different systems or modules. For example, in an alternative implementation, functionality illustrated as being provided by wireless network interface 940 may instead be provided by processor 920. Thus other implementations may have fewer or more modules depending on the granularity of a particular implementation.
[0171] As can be seen, method 1000 includes a number of phases and sub-processes, the sequence of which may vary from one implementation to another. In some cases different operations may be performed in an overlapping fashion, particularly where the different overlapping operations are performed by different components. For example, in some cases both an operation to write a chunk of audio content to audio buffer 934 and an operation to move a portion of audio content from audio buffer to transmit buffer 942 may be ongoing at the same time. When considered in the aggregate, these phases and sub-processes are capable of communicating decoded audio content to satellite playback devices so that any delay between video rendered on a video playback device and corresponding audio output from the satellite playback devices is essentially imperceptible or otherwise negligible.
[0172] Method 1000 commences when audio input interface 910 of primary playback device 900 receives encoded audio content from an external component, such as a video playback device. See reference numeral 1001 in Figure 12. Decoder 922 decodes the received content. See reference numeral 1002 in Figure 12. One or more operations to further process the decoded audio content for subsequent transmission and playback can be invoked, including for example digital signal processing and simple rate conversion operations. See reference numerals 1003 and 1004 in Figure 12. Processor 920 is configured to generate a chunk of uncompressed pulsecode modulation (PCM) audio content corresponding to the received encoded audio content. See reference numeral 1005 in Figure 12. This chunk of PCM audio content can then be written to audio buffer 934. See reference numeral 1006 in Figure 12.
[0173] At some point after the operation to write the chunk of PCM audio content to audio buffer 934 has begun, processor 920 can be configured to move a portion of the PCM audio content which has already been written to audio buffer 934 to transmit (TX) buffer 942. See reference numeral 1007 in Figure 12. As illustrated in Figure 11 A, in some implementations different portions of the PCM audio content can be written to, and moved from, audio buffer 934 simultaneously or nearly simultaneously. Thus, it is not required to complete writing the PCM audio content to audio buffer 934 before beginning to move portions of the PCM audio content to transmit buffer 942.
[0174] Furthermore, in certain implementations only a portion of the decoded chunk of audio content that has been written to audio buffer 934 is moved to transmit buffer 942. For example, as illustrated in Figure 10, for a decoded chunk 12 of audio content, a transmitted portion 16 is moved to transmit buffer 942, while a withheld portion 14 remains in audio buffer 934. In this context “moved” refers to writing transmitted portion 16 to transmit buffer 942 and erasing transmitted portion 16 from audio buffer 934. Writing only a smaller subset of decoded chunk 12 to transmit buffer causes only the smaller subset to be transmitted to the satellite playback devices. Transmitting a smaller amount of data to the satellite playback devices reduces processing and transmission time, thus mitigating or eliminating the aforementioned problems with maintaining lip-synchrony with corresponding video content being played back on the video playback device.
[0175] After at least a portion of the PCM audio content is moved to transmit buffer 942, a determination is made with respect to whether additional PCM audio content remains in audio buffer 934. See reference numeral 1008 in Figure 12. If additional PCM audio content remains in audio buffer 934, then a delay period is invoked before undertaking further processing of such remaining PCM audio content. See reference numeral 1009 in Figure 12. In certain implementations the delay period is long enough to allow wireless network interface 940 to begin transmitting audio content stored in transmit buffer 942 to satellite playback devices. In certain implementations the delay period is between 3 ms and 15 ms, between 3 ms and 10 ms, between 3 ms and 9 ms, between 5 ms and 8 ms, or between 5 ms and 7 ms. More specifically, in certain implementations the delay period is 3 ms, 5 ms, 6 ms, 7 ms, 8 ms, or 10 ms. Once the delay period ends, additional PCM audio content can be moved from audio buffer 934 to transmit buffer 942. See reference numeral 1007 in Figure 12.
[0176] If, after at least a portion of the PCM audio content is moved to transmit buffer 942, no additional PCM audio content remains in audio buffer 934, or less than a threshold amount of audio content remains in audio buffer 934, then further processing continues after additional encoded audio content is received from the external component. See reference numeral 1001 in Figure 12. For example, in some implementations processor 900 is configured to wait for additional encoded audio content to be received from the external component when an amount of remaining data in audio buffer 934 is less than an amount of audio data in a packet 984.
[0177] After a portion of PCM audio content is moved to transmit buffer 942, wireless network interface 940 can be configured to send audio data stored in transmit buffer 942 to one or more satellite playback devices. See reference numeral 1010 in Figure 12. In some implementations transmitter circuitry 944 is configured to perform a clear channel assessment before sending data to the one or more satellite playback devices. Where transmitter circuitry 944 is configured to send all (or substantially all) available data in transmit buffer 942, the presence of the delay period illustrated in Figure 11 A and represented by reference numeral 1009 in Figure 12 prevents large amounts of data from being transmitted during one portion of a Round Robin sequence, thus helping to maintain lip-synchrony with corresponding video content being played back on the external component from which the encoded audio content was received. In particular, reducing the amount of data in transmit buffer 942 in turn reduces the amount of data sent in a particular transmission to a particular satellite playback device, thus reducing processing and transmission times, and likewise reducing the likelihood that lip-synchrony delays will be introduced when transmitting data to other satellite playback devices.
[0178] In some cases, if a transmitted packet is not successfully received at a satellite playback device, a limited number of attempts to retransmit the failed transmission may be performed. For example, a failed transmission may be retried for up to 5 ms, up to 10 ms, up to 15 ms, or up to 20 ms. Or, a failed transmission may be retried up to a certain number of times, such as four times, provided that the aforementioned time limitation is met. In another implementation, when a packet transmission fails, or falls within a designated quality-of-service category, a specified number of retransmission attempts is made (for example, four attempts). If successful transmission still has not occurred, and if a specified time limit has not been reached (for example, 15 ms), then additional transmission attempts may be made until the time limit is exceeded. If successful transmission still has not occurred, the packet is abandoned and the subsequent packet is transmitted to the satellite playback devices. Such a framework reduces the likelihood that communication difficulties with one satellite playback device will affect performance of other satellite playback devices.
[0179] If the attempted transmission continues to fail, the wireless network interface can be configured to abandon the attempted transmission and move on to the next available packet to be transmitted. It may be necessary to retransmit a transmission when wireless network interface 940 is working in an area with a large amount of network congestion, or is unable to provide a strong transmission signal to a satellite playback device. Failed transmissions and subsequent retransmission attempts are also more likely to occur as the amount of data transmitted increases. Therefore the techniques disclosed herein for delaying transmit buffer write operations and reducing the amount of transmitted data in a given transmission can have the additional benefit of reducing the frequency of failed transmissions that trigger retransmission attempts.
[0180] After the buffered audio content is transmitted to the satellite playback devices, a determination is made with respect to whether transmit buffer 942 is empty. See reference numeral 1011 in Figure 12. If not, additional buffered audio content is transmitted to the satellite playback devices. See reference numeral 1010 in Figure 12. Otherwise, wireless network interface 940 can be configured to wait until further data is buffered into transmit buffer 942 from audio buffer 934. This allows wireless network interface 940 to periodically transmit decoded audio content to the satellite playback devices. Wireless network interface 940 may provide the functionality corresponding to reference numerals 1010 and 1011 in Figure 12 simultaneously with processor 920 moving additional PCT audio content to transmit buffer 942. Therefore in some cases additional PCM audio content may be moved to transmit buffer 942 before transmit buffer 942 is empty.
[0181] As noted above, the techniques disclosed herein allow encoded audio content to be decoded and delivered to a network of satellite playback devices in a way that enables the satellite playback devices to play back the audio content in synchrony with rendering of corresponding video content. This is accomplished by manipulating the timing with which decoded audio is written to the transmit buffer for a wireless network interface that is used to transmit the decoded audio to the satellite playback devices. Reducing the amount of decoded audio that is written to the transmit buffer causes smaller portions of data to be communicated to a particular satellite playback device, thus reducing the likelihood that the processing and transmission of such data will cause other satellite playback devices receiving data in a Round Robin framework to render data out of synchrony with corresponding video playback.
V. Conclusion
[0182] 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.
[0183] 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 ways to implement such systems, methods, apparatus, and/or articles of manufacture.
[0184] 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.
[0185] 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 foregoing description of embodiments. [0186] 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.
VI. Example Features
[0187] (Feature 1) A primary playback device comprises a wireless network interface that includes a transmit buffer. The primary playback device further comprises an audio input interface. The primary playback device further comprises at least one processor. The primary playback device further comprises at least one non-transitory computer readable medium comprising program instructions that are executable by the at least one processor such that the primary playback device is configured to, after receipt of encoded audio content via the audio input interface, decode the encoded audio content, thereby resulting in a chunk of decoded audio content. The chunk of decoded audio content includes a first content portion corresponding to a first time segment of the encoded audio content and that further includes a second content portion corresponding to a second time segment of the encoded audio content that is next in sequence to the first time segment. The primary playback device is further configured to, after receipt of the encoded audio content via the audio input interface, and after decoding the encoded audio content, write the first content portion to the transmit buffer of the wireless network interface. The primary playback device is further configured to, after receipt of the encoded audio content via the audio input interface, communicate, via the wireless network interface, the first content portion to a satellite playback device. The primary playback device is further configured to, after receipt of the encoded audio content via the audio input interface, and after communication of the first content portion to the satellite playback device has commenced, begin writing the second content portion to the transmit buffer of the wireless network interface. The primary playback device is further configured to, after receipt of the encoded audio content via the audio input interface, play a first channel of the chunk of decoded audio content in synchrony with playback of a second channel of the chunk of decoded audio content at the satellite playback device.
[0188] (Feature 2) The primary playback device of Feature 1 , wherein a period of time between writing the first content portion to the transmit buffer and writing the second content portion to the transmit buffer is between 3 milliseconds and 9 milliseconds. [0189] (Feature 3) The primary playback device of Feature 1 , wherein (a) the chunk of decoded audio content corresponds to between 15 milliseconds and 40 milliseconds of the encoded audio content; and (b) the first and second content portions each correspond to between 2 milliseconds and 4 milliseconds of the encoded audio content.
[0190] (Feature 4) The primary playback device of Feature 1, wherein (a) the chunk of decoded audio content corresponds to between 15 milliseconds and 40 milliseconds of the encoded audio content; (b) the first and second content portions each correspond to between 2 milliseconds and 6 milliseconds of the encoded audio content; and (c) a period of time between writing the first content portion to the transmit buffer and writing the second content portion to the transmit buffer is between 3 milliseconds and 9 milliseconds.
[0191] (Feature 5) The primary playback device of Feature 1, wherein (a) communicating the first content portion to the satellite playback device comprises communicating, to each of a plurality of satellite playback devices, a corresponding packet of the first content portion; and (b) the at least one non-transitory computer readable medium further comprises program instructions that are executable by the at least one processor such that the primary playback device is configured to, after writing the second content portion to the transmit buffer, communicate, to each of the plurality of satellite playback devices, a corresponding packet of the second content portion.
[0192] (Feature 6) The primary playback device of Feature 1, wherein (a) the at least one non- transitory computer readable medium further comprises program instructions that are executable by the at least one processor such that the primary playback device is configured to commence a delay period after the first content portion is written to the transmit buffer; and (b) the second content portion is written to the transmit buffer after the delay period ends.
[0193] (Feature 7) The primary playback device of Feature 1, wherein (a) the transmit buffer has an available memory capacity when empty; and (b) after writing the first content portion to the transmit buffer, the transmit buffer has a remaining available memory capacity that is sufficient to accommodate the second content portion.
[0194] (Feature 8) The primary playback device of Feature 1, wherein the transmit buffer has an available memory capacity that is capable of storing all of the chunk of decoded audio content.
[0195] (Feature 9) The primary playback device of Feature 1, wherein (a) the encoded audio content is received from a video playback device; (b) the encoded audio content is synchronized to video content being displayed on the video playback device; and (c) a delay between communication of the first content portion to the satellite playback device and display of a corresponding portion of the video content on the video playback device is less than 40 milliseconds.
[0196] (Feature 10) The primary playback device of Feature 1, wherein the primary playback device is a soundbar.
[0197] (Feature 11) A method of managing audio playback in a multimedia presentation comprises receiving, at a primary playback device, encoded audio content. The method further comprises decoding the encoded audio content, thereby resulting in a chunk of decoded audio content that includes a first content portion corresponding to a first time segment of the encoded audio content and that further includes a second content portion corresponding to a second time segment of the encoded audio content. The second time segment is next in sequence to the first time segment in the encoded audio content. The method further comprises, after decoding the encoded audio content, writing the first content portion to a transmit buffer of a wireless network interface. The method further comprises communicating, via the wireless network interface, the first content portion to a satellite playback device. The method further comprises, after communication of the first content portion to the satellite playback device has commenced, beginning writing the second content portion to the transmit buffer of the wireless network interface.
[0198] (Feature 12) The method of Feature 11, wherein (a) the encoded audio content is multichannel audio content; (b) the first content portion communicated to the satellite playback device comprises at least one first channel of the multichannel audio content; and (c) the method further comprises rendering at least one second channel of the multichannel audio content in synchrony with a rendering of the at least one first channel by the satellite playback device.
[0199] (Feature 13) The method of Feature 11, wherein (a) the encoded audio content is multichannel audio content; and (b) the first content portion includes a plurality of channels of the multichannel audio content.
[0200] (Feature 14) The method of Feature 11, wherein a period of time between writing the first content portion to the transmit buffer and writing the second content portion to the transmit buffer is between 3 milliseconds and 9 milliseconds. [0201] (Feature 15) The method of Feature 11 , wherein (a) the chunk of decoded audio content corresponds to between 15 milliseconds and 40 milliseconds of the encoded audio content; (b) the first and second content portions each correspond to between 2 milliseconds and 6 milliseconds of the encoded audio content; and (c) a period of time between writing the first content portion to the transmit buffer and writing the second content portion to the transmit buffer is between 3 milliseconds and 9 milliseconds.
[0202] (Feature 16) A primary playback device comprises a wireless network interface configured to communicate over at least one data network. The primary playback device further comprises at least one processor. The primary playback device further comprises at least one non-transitory computer readable medium comprising program instructions that are executable by the at least one processor such that the primary playback device is configured to, after receipt of encoded audio content, establish communication with a plurality of satellite playback devices via the at least one data network. The primary playback device is further configured to, after receipt of the encoded audio content, decode the encoded audio content, thereby resulting in a chunk of decoded audio content. The primary playback device is further configured to, after receipt of the encoded audio content, provide a first portion of the chunk of decoded audio content to the wireless network interface for transmission to a particular one of the plurality of satellite playback devices, the first portion of the chunk of decoded audio content corresponding to a first time segment of the encoded audio content. The primary playback device is further configured to, after receipt of the encoded audio content, and after the first portion of the chunk of decoded audio content is communicated to the particular satellite playback device, commence a delay period during which decoded audio content is not provided to the wireless network interface. The primary playback device is further configured to, after receipt of the encoded audio content, and after the delay period has ended, provide a second portion of the chunk of decoded audio content for transmission to the particular satellite playback device, the second portion of the chunk of decoded audio content corresponding to a second time segment of the encoded audio content that is subsequent to the first time segment.
[0203] (Feature 17) The primary playback device of Feature 16, wherein the delay period is between 3 milliseconds and 9 milliseconds.
[0204] (Feature 18) The primary playback device of Feature 16, wherein the at least one non- transitory computer readable medium further comprises (a) a configuration setting that specifies the delay period; and (b) program instructions that are executable by the at least one processor such that the primary playback device is configured to read the delay period from the configuration setting before commencing the delay period.
[0205] (Feature 19) The primary playback device of Feature 16, wherein (a) the chunk of decoded audio content corresponds to between 15 milliseconds and 40 milliseconds of the encoded audio content; and (b) the first and second portions of the chunk of decoded audio content each correspond to between 2 milliseconds and 6 milliseconds of the encoded audio content.
[0206] (Feature 20) The primary playback device of Feature 16, wherein (a) the encoded audio content is multichannel audio content; (b) the first portion of the chunk of decoded audio content communicated to the particular satellite playback device comprises at least one first channel of the multichannel audio content; and (c) the at least one non-transitory computer readable medium further comprises program instructions that are executable by the at least one processor such that the primary playback device is configured to render at least one second channel of the multichannel audio content in synchrony with a rendering of the at least one first channel by the particular satellite playback device.

Claims

1 . A playback device comprising: a wireless network interface; an audio input interface; and at least one processor configured to cause the playback device to, after receipt of encoded audio content via the audio input interface, decode the encoded audio content, wherein a chunk of decoded audio content includes a first content portion corresponding to a first time segment of the encoded audio content and that further includes a second content portion corresponding to a second time segment of the encoded audio content that is next in sequence to the first time segment; after decoding the encoded audio content, providing the first content portion to the wireless network interface for transmission to a satellite playback device; and after transmission of the first content portion to the satellite playback device has commenced, begin providing the second content portion to the wireless network interface.
2. The playback device of Claim 1 , wherein a period of time between providing the first content portion to the wireless network interface and writing the second content portion to the wireless network interface is between 3 milliseconds and 9 milliseconds.
3. The playback device of Claim 1 or 2, wherein: the chunk of decoded audio content corresponds to between 15 milliseconds and 40 milliseconds of the encoded audio content; and the first and second content portions each correspond to between 2 milliseconds and 4 milliseconds of the encoded audio content.
4. The playback device of Claim 2, wherein: the chunk of decoded audio content corresponds to between 15 milliseconds and 40 milliseconds of the encoded audio content; the first and second content portions each correspond to between 2 milliseconds and 6 milliseconds of the encoded audio content.
5. The playback device of any preceding claim, further comprising communicating, via the wireless network interface, the first content portion to the satellite playback device.
6. The playback device of any preceding claim, wherein the processor is further configured to cause the playback device to play a first channel of the chunk of decoded audio content in synchrony with playback of a second channel of the chunk of decoded audio content at the satellite playback device.
7. The playback device of any preceding claim, wherein the wireless network interface comprises a transmit buffer, and wherein providing the first content portion to the wireless network interface comprises writing the first content portion to the transmit buffer.
8. The playback device of Claim 5 in combination with Claim 7, wherein: communicating the first content portion to the satellite playback device comprises communicating, to each of a plurality of satellite playback devices, a corresponding packet of the first content portion; and the at least one processor is configured to cause the playback device to, after writing the second content portion to the transmit buffer, communicate, to each of the plurality of satellite playback devices, a corresponding packet of the second content portion.
9. The playback device of Claim 7 or 8, wherein: the at least one processor is configured to cause the playback to commence a delay period after the first content portion is written to the transmit buffer; and the second content portion is written to the transmit buffer after the delay period ends.
10. The playback device of one of Claims 7 to 9, wherein: the transmit buffer has an available memory capacity when empty; and after writing the first content portion to the transmit buffer, the transmit buffer has a remaining available memory capacity that is sufficient to accommodate the second content portion.
11. The playback device of one of Claims 7 to 10, wherein the transmit buffer has an available memory capacity that is capable of storing all of the chunk of decoded audio content.
12. The playback device of any preceding claim, wherein: the encoded audio content is received from a video playback device; the encoded audio content is synchronized to video content being displayed on the video playback device; and a delay between transmission of the first content portion to the satellite playback device and display of a corresponding portion of the video content on the video playback device is less than 40 milliseconds.
13. The playback device of any preceding claim, wherein the playback device is a soundbar.
14. The playback device of any preceding claim, wherein the at least one processor is configured to cause the playback device to, after receiving the encoded audio content, establish communication with a plurality of satellite playback devices via at least one data network over which the wireless network interface is configured to communicate.
15. The primary device of Claim 2, wherein the at least one processor is configured to cause the playback device to read the period of time between providing the first content portion to the wireless network interface and writing the second content portion to the wireless network interface from a configuration setting before commencing the period of time.
16. The playback device of any preceding claim, wherein: the encoded audio content is multichannel audio content; the first portion of the chunk of decoded audio content communicated to the particular satellite playback device comprises at least one first channel of the multichannel audio content; and the at least one processor is configured to cause the playback device to render at least one second channel of the multichannel audio content in synchrony with a rendering of the at least one first channel by the particular satellite playback device.
17. A method of managing audio playback in a multimedia presentation, the method comprising: receiving, at a first playback device, encoded audio content; decoding the encoded audio content, thereby resulting in a chunk of decoded audio content that includes a first content portion corresponding to a first time segment of the encoded audio content and that further includes a second content portion corresponding to a second time segment of the encoded audio content, wherein the second time segment is next in sequence to the first time segment in the encoded audio content; after decoding the encoded audio content, providing the first content portion to a wireless network interface; communicating, via the wireless network interface, the first content portion to a second playback device; and after communication of the first content portion to the second playback device has commenced, beginning providing the second content portion to the wireless network interface.
18. The method of Claim 17, wherein: the encoded audio content is multichannel audio content; the first content portion communicated to the second playback device comprises at least one first channel of the multichannel audio content; and the method further comprises rendering at least one second channel of the multichannel audio content in synchrony with a rendering of the at least one first channel by the second playback device.
19. The method of Claim 17, wherein: the encoded audio content is multichannel audio content; and the first content portion includes a plurality of channels of the multichannel audio content.
20. The method of Claim 17 or 18, wherein the wireless network interface comprises a transmit buffer, wherein providing the first or second content portion to the wireless network interface comprises writing the first or second content portion to the transmit buffer.
21. The method of Claim 20, wherein a period of time between writing the first content portion to the transmit buffer and writing the second content portion to the transmit buffer is between 3 milliseconds and 9 milliseconds.
22. The method of Claim 20, wherein: the chunk of decoded audio content corresponds to between 15 milliseconds and 40 milliseconds of the encoded audio content; the first and second content portions each correspond to between 2 milliseconds and 6 milliseconds of the encoded audio content; and a period of time between writing the first content portion to the transmit buffer and writing the second content portion to the transmit buffer is between 3 milliseconds and 9 milliseconds.
PCT/US2024/0186272023-03-062024-03-06Audio packet throttling for multichannel satellitesPendingWO2024186871A1 (en)

Applications Claiming Priority (2)

Application NumberPriority DateFiling DateTitle
US202363488569P2023-03-062023-03-06
US63/488,5692023-03-06

Publications (1)

Publication NumberPublication Date
WO2024186871A1true WO2024186871A1 (en)2024-09-12

Family

ID=90545155

Family Applications (1)

Application NumberTitlePriority DateFiling Date
PCT/US2024/018627PendingWO2024186871A1 (en)2023-03-062024-03-06Audio packet throttling for multichannel satellites

Country Status (1)

CountryLink
WO (1)WO2024186871A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US8234395B2 (en)2003-07-282012-07-31Sonos, Inc.System and method for synchronizing operations among a plurality of independently clocked digital data processing devices
US8483853B1 (en)2006-09-122013-07-09Sonos, Inc.Controlling and manipulating groupings in a multi-zone media system
US9031255B2 (en)2012-06-152015-05-12Sonos, Inc.Systems, methods, apparatus, and articles of manufacture to provide low-latency audio
US20200117416A1 (en)*2018-10-152020-04-16Sonos, IncDistributed Synchronization
US20200351602A1 (en)*2012-10-012020-11-05Sonos, Inc.Providing a Multi-Channel and a Multi-Zone Audio Environment
US20200396542A1 (en)*2019-05-172020-12-17Sonos, Inc.Wireless Transmission to Satellites for Multichannel Audio System

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US8234395B2 (en)2003-07-282012-07-31Sonos, Inc.System and method for synchronizing operations among a plurality of independently clocked digital data processing devices
US8483853B1 (en)2006-09-122013-07-09Sonos, Inc.Controlling and manipulating groupings in a multi-zone media system
US9031255B2 (en)2012-06-152015-05-12Sonos, Inc.Systems, methods, apparatus, and articles of manufacture to provide low-latency audio
US20200351602A1 (en)*2012-10-012020-11-05Sonos, Inc.Providing a Multi-Channel and a Multi-Zone Audio Environment
US20200117416A1 (en)*2018-10-152020-04-16Sonos, IncDistributed Synchronization
US20200396542A1 (en)*2019-05-172020-12-17Sonos, Inc.Wireless Transmission to Satellites for Multichannel Audio System

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Method for Synchronizing Audio Playback between Multiple Networked Devices", 2003

Similar Documents

PublicationPublication DateTitle
AU2020221824B2 (en)Methods for calibrating passive speakers with a graphical user interface
US20240137726A1 (en)Wireless Multi-Channel Headphone Systems and Methods
AU2019395022B2 (en)Systems and methods of operating media playback systems having multiple voice assistant services
US12075226B2 (en)Wireless transmission to satellites for multichannel audio system
CN113168850B (en) Distributed synchronous playback device and method therefor
WO2022047361A1 (en)Playback transitions
AU2020344540A1 (en)Synchronizing playback of audio information received from other networks
US12282707B2 (en)Techniques for extending the lifespan of playback devices
WO2021096943A1 (en)Playback queues for shared experiences
US12143785B2 (en)Systems and methods of distributing and playing back low-frequency audio content
US20230195783A1 (en)Speech Enhancement Based on Metadata Associated with Audio Content
EP4022849B1 (en)Mixed-mode synchronous playback
US20250218448A1 (en)Audio packet distribution for multichannel satellites
WO2024186871A1 (en)Audio packet throttling for multichannel satellites
US11831288B2 (en)Techniques for enabling interoperability between media playback systems
US20230317087A1 (en)Multichannel compressed audio transmission to satellite playback devices
US20230319344A1 (en)Media playback systems with auxiliary audiovisual inputs
WO2025217383A1 (en)Connection and network setup for playback devices using selectable communication interface

Legal Events

DateCodeTitleDescription
121Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number:24715051

Country of ref document:EP

Kind code of ref document:A1


[8]ページ先頭

©2009-2025 Movatter.jp