Patent Description:
This disclosure generally relates to applications using audio received via an HDMI/ARC interface on a display device.

Ever since the High-Definition Multimedia Interface (HDMI) <NUM> standard was introduced in <NUM>, Audio Return Channel (ARC) has been available on TVs, soundbars, receivers, and other electronic devices.

The HDMI/ARC protocol enables two-way communication between devices over a single HDMI connection. In particular, the HDMI/ARC port allows HDMI to be used as both an input and an output for audio.

The potential for HDMI/ARC is vast. To date, however, HDMI/ARC ports have been used primarily to reduce cabling in home entertainment systems. Thus, conventional electronic devices have not yet taken advantage of the full functionality and capabilities of HDMI/ARC.

<CIT> discloses an audio processing device and an audio processing method. The audio processing device includes a first controller configured to initialize the audio processing device; and a second controller configured to connect the audio processing device and an audio output device while the first controller initializes the audio processing device, and to transmit a message reporting completion of the connection of the audio processing device and the audio output device to the first controller, wherein the first controller is configured to start an operation of outputting audio to the audio output device in response to the message reporting the completion of the connection from the second controller.

<CIT> discloses a digital walkie-talkie which is described as being able to minimize a voice delay time and improve an increase in call quality by generating a voice packet based on routing information and the number of collected voices stored in a look-up table or the number of collected voices newly calculated in various communication environments according to a user operation mode.

According to a first aspect of the present invention there is provided a method as specified in claim <NUM>. The method may optionally be as specified in any one of claims <NUM> to <NUM>.

According to a second aspect of the present invention there is provided a media device as specified in claim <NUM>. The media device may optionally be as specified in any one of claims <NUM> to <NUM>.

According to a third aspect of the present invention there is provided a non-transitory computer-readable medium as specified in claim <NUM>.

Apparatus, system, article of manufacture, method, and/or computer product embodiments, and/or combinations and sub-combinations thereof, are described to configure a media device to accept and process the audio output from an HDMI/ARC port of a display device. A media device can receive an audio stream over HDMI/ARC and transmit the audio stream to wireless speakers for broadcast. The media device can identify an audio stream, decode it into multi-channel audio, re-encode it into a format that can be streamed into the speakers, and then play it back over the speakers.

The media device, which is communicatively coupled to an HDMI/ARC interface of a display device, receives an audio stream over the HDMI/ARC interface from the display device, and subsequently transmits the audio stream to wireless speaker(s) on a first wireless network. When the media device determines that the first wireless network is overloaded, by evaluation of a latency and/or a bandwidth of the audio stream, the media device identifies a clean channel corresponding to a second wireless network for transmitting the audio stream without an overload condition. The media device switches itself and any connected speaker over to the second wireless network for a clean audio stream. The media device switches itself and the connected speaker(s) back to the first wireless network when: (<NUM>) there is no longer an overload condition, (<NUM>) there is no longer streaming audio, (<NUM>) there is a reset of the media device, and/or (<NUM>) the media device determines that it is beneficial to be on the first wireless network to receive software updates and/or program updates from an administrative server.

This Summary is provided for purposes of illustrating example embodiments, which should not be construed to narrow the scope of the subject matter in this disclosure. Other features, aspects, and advantages of this disclosure will become apparent from the following Detailed Description, Figures, and Claims.

"Audio Return Channel (ARC)" refers to a feature of the HDMI interface built into many TVs, receivers, and sound bars/speakers, to name just some examples. ARC uses a single HDMI connection to output audio from a TV to a sound bar, speakers, or audio/video (AV) receiver, for example. From video that is sent to the TV over the HDMI interface, the same HDMI interface sends the associated audio from the TV back over the HDMI interface. In doing so, the audio of the TV content may be sent to a receiver/sound bar/speaker for higher quality audio broadcast than may be achieved over the TV's internal speakers, and no separate audio cable is required. To use HDMI/ARC, TVs/display devices, receivers, sound bars, and media devices, for example, must be ARC-compatible.

When the term "ARC" is used alone in this specification, it should be assumed to be equivalent to the term "HDMI/ARC. " When referring to ARC or HDMI/ARC, the words "connector," "connection," "interface," or "port" may be used interchangeably within the specification. The terms generally mean a link or an electronic coupling for means of communication or transport. In various embodiments, two or more devices may be integrated with, operatively coupled to, and/or connected to each other over HDMI/ARC. A person of ordinary skill in the art will understand the context of the disclosure to further define whether a link between two or more devices is communicative in software and/or physical in hardware.

In some embodiments, an HDMI connection out of a TV configured for the ARC protocol is connected to an HDMI/ARC interface (port) of a streaming box, such as a media device. Any content, from, for example, a digital over-the-air source such as an ATSC (Advanced Television Systems Committee) receiver (tuned to a national broadcast channel such as NBC or a local TV station), Xbox, cable, satellite, Wi-Fi, and/or wired Internet, that is playing through the TV can be streamed in this manner. The connection through the HDMI/ARC interface can create a wireless bridge to any ARC-compatible speaker around the home, for example.

Speakers may be "smart speakers," for example. A smart speaker is a wireless speaker that receives audio signals over-the-air using radio frequencies (RF), such as over Wi-Fi, rather than over audio wires or cables. The wireless speaker includes an RF receiver and an RF transmitter. Speakers may also be voice-enabled. "Voice-enabled smart speaker" or "voice-enabled external speaker" refers to a wireless speaker that can be coupled to a voice command device with integrated voice-recognition software. The software can process spoken requests by a user to perform a task or service, allowing the user to vocally interact with the speaker and activate functionality hands-free. The voice-enabled smart speaker subsequently acts on the user's voice commands.

Transmitting audio can be done in several different ways. In some embodiments, a media device receives audio from a service such as Netflix or Hulu, for example, over the Internet (not using HDMI/ARC), from which the audio can be directly sent, or streamed, from the media device to speakers (whether smart speakers or other types of speakers). In other embodiments, the media device receives audio data bits over the HDMI/ARC cable. When the audio is received, it can be decoded by a receiver, and played immediately by a media device, rather than being saved to internal buffers, for example. When streaming, a user does not have to wait to download the complete audio content to play it. Because the media is transmitted in a continuous stream of data, it can play as it arrives.

A person of ordinary skill in the art will appreciate that it is possible to accomplish different audio processing based on what is playing on the TV. Although any content coming from the media device is already known to the media device, content coming from the TV from another source could go through a content recognition process at the media device, and/or process different audio depending on the source of the audio signal, such as a connection to over-the-air versus cable content, or when streaming various channels, for example.

The audio content can be modified into a format that is suitable for transmitting over the local Wi-Fi network, or "home network," with particular algorithms to minimize latency (delay) when transmitting the audio to the speakers, particularly during times of interference on the network or shared usage of the network with other services or devices. In some embodiments, latency can be significantly reduced by connecting speakers directly to the media device. For example, a soundbar wireless speaker system can connect dedicated speakers to an audio source in a point-to-point fashion. Comparatively, the media device can provide flexibility to create an ecosystem of devices (for example, in a multi-spoke fashion) on a Wi-Fi network that can listen in to a particular audio stream. However, this flexibility may introduce more complexity; for example, each speaker in the network may receive audio at a different latency.

In some embodiments, a media device may use a protocol standard with reference (industry-standard) architecture and software that allows other device manufacturers to connect within the same ecosystem or become source devices for an audio broadcast. For example, a smartphone enabled to run on the protocol standard may transmit audio via Bluetooth to a Bluetooth-enabled speaker, which in turn may transmit on the home network to other speakers within the home that are connected to the home network. The method of streaming from the smartphone to its dedicated speakers may be determined by the application being used on the smartphone to stream the audio, such as a Spotify app streaming over the Internet using Spotify Connect. Once the media device streams audio to speakers, the speakers themselves on the home network use Wi-Fi protocol to communicate, however. A media device connected to the HMDI/ARC output on a TV would stream everything coming from that TV over the HDMI/ARC connection, such as the TV streaming Netflix, receiving content from a Blu-ray player, or receiving a local broadcast over ATSC, for example.

Other embodiments use the HDMI/ARC protocol and hardware interface for audio cancellation during voice recognition by smart speaker devices. "Voice recognition" refers to technology (hardware or software, for example) that enables a device or computer program to receive and interpret dictation or to understand and execute oral (spoken) commands. Voice-enabled or voice-activated devices, such as voice-enabled speakers, use various voice recognition systems and algorithms that strive to recognize a user's voice commands when the user is far, up to five (<NUM>) meters away, for example, from the device's microphone(s). This is known as "far-field voice.

For example, when a smart speaker is playing music, the smart speaker, according to the smart speaker's voice-recognition technology, can still understand a person's speaking voice when the cancellation technique is used. Because the Echo Cancellation algorithm knows the audio that is output from the smart speaker, the known audio can be subtracted from the total input that includes what is coming over the smart speaker's microphones. To the smart speaker listening for a voice, it sounds as though the room is quiet.

Comparatively, a media device on its own can only cancel the audio that it knows that it is generating, such as streamed Netflix content. Without the HDMI/ARC interface, the media device would not know what to cancel from what the TV is playing on its own, such as Blu-ray or over-the-air ATSC content. However, the HDMI/ARC interface allows the application of the cancellation algorithm to everything that the TV is generating. For a media device capable of far-field voice recognition for controlling the device, the HDMI/ARC interface can be used to cancel the streamed content when a user's voice is applied to control the media device. Thus, effective voice recognition can be achievable regardless of what the user is streaming from the TV or its source.

Furthermore, because the media device connected to the HDMI/ARC interface can distinguish various other sound sources coming into the device, the sound sources can be cancelled (subtracted out) when voice is coming into any voice-enabled device connected to the media-streaming ecosystem. The media device can output the voice to the connected voice-enabled device, without the other sound sources or audio that are/is streaming into the media device, so that the voice-enabled device can better recognize voice commands. This can also prevent voice from inadvertently waking up a voice-enabled device, for example, if the voice was not intended to control the voice-enabled device.

In some embodiments, any streaming audio that was cancelled can be buffered and thus resume from the point at which it was interrupted or cancelled. In other embodiments, any cancelled audio may be lost, and the audio can be resumed at a time in the stream corresponding to the elapsed time of the audio cancellation.

In some embodiments, a streaming TV can allow for automatic video content recognition of anything that a user is watching over the streaming TV. If the user opts in to the feature, for example, the streaming TV can fingerprint the audio and video by using a backend (third-party) service that detects what is being streamed based on the fingerprints.

"Fingerprinting" of streaming audio refers to creating a condensed digital summary of an audio signal, from as little as two seconds of audio, for example, that can be used to identify an audio sample, such as a song, melody, or advertisement, or quickly locate similar items in an audio database. Fingerprinting may also assist in "audio content recognition," or the identification of video or other media content, for example, based on the associated audio, while streaming. For example, fingerprinting may allow a media provider to determine what TV program a user is watching so as to be able to offer similar content to the user by way of suggested programming or other advertisement, for example. Audio fingerprinting uses a software algorithm to process attributes such as frequency, intensity, and relative time of audio signal points, and creates a map, or plot, of the attributes. The plot, in the form of a spectrogram of peaks and valleys, for example, then serves as the audio's unique fingerprint to be matched against other spectrograms in a database.

Even if a streaming TV is not being used, a media device using the HDMI/ARC feature as disclosed herein can monitor the audio in the same way. This capability can aid in choosing advertisements for the user or making content recommendations to the user. For example, if the media device recognizes that the user is watching a particular series, the media device could make a recommendation to the user to watch a particular series from a streaming service, for example, Hulu, that is similar to the one the user is already watching, or the same series on the streaming service to allow the user to watch the series from the beginning at the user's convenience.

In some embodiments, a media device has one single-channel transceiver (or radio) and thus cannot communicate over more than one RF channel (or frequency) at a time. However, a media device with only one transceiver can communicate on multiple networks at the same time as long as the networks are on the same channel at the same time. In other embodiments, a media device may have two or more transceivers, allowing the media device to communicate over more than one channel simultaneously. Different transceiver configurations may have different implications depending on whether the media device is streaming media content over the Internet or over the HDMI/ARC port. A person of ordinary skill in the art will appreciate that the examples that follow describe only a small portion of the possible scenarios.

When a media device with one transceiver is streaming from the Internet, latency issues, for example on a <NUM> network on which the transmission space can be densely populated and very congested, can cause throughput of data to suffer. However, many devices to which the disclosed embodiments can be coupled may use <NUM> networks, which can facilitate greater throughput. However, if a user only has a <NUM> router, for example, the router would control the overall speed of the network. In this case, to prevent latency problems while streaming, the media device can delay a content stream, on the order of <NUM> milliseconds, for example, to redistribute audio. Introducing such a delay can prevent any detectable degradation of the stream due to the latency. The media device can then buffer the content to all speakers on the network.

If the media device with one transceiver is not streaming from the Internet and is instead receiving over the HDMI/ARC interface, sending various audio sources out to all connected speakers may require achieving a clean Wi-Fi channel to allow uninterrupted digital communication of sufficient signal quality. This may be because, for example, it is more difficult to keep the audio in sync with the video when a user's home network is slow and connected speakers are spaced from the media device at varying distances. In this case, an embodiment can include an additional transceiver in the media device so that the transmission does not necessarily have to be on a user's potentially slow network. For example, when not streaming from the Internet, the media device's second transceiver can use a separate <NUM> network and avoid the user's <NUM> router.

If a media device has only one transceiver, another solution is fast switching between networks on different channels. It is possible to switch the media device and all devices connected to that device (for example, speakers) very quickly from the user's home network to a cleaner, faster, low-latency channel that uses <NUM>, for example. The media device can disconnect from the user's home network and create an ad hoc network for the purposes of streaming content from the media device cleanly and seamlessly to the user over smart speakers, for example. This process can create a new digital connection, for example, a "softAP" (or software-enabled access point), on the media device. This process allows the media device to become an access point and create its own network with one or more other connected devices, such as external speaker(s).

If the ad hoc network is created on the same channel as the home network, it is possible for the media device to communicate at the same time on multiple networks, such as the home network and one or more softAPs or ad hoc networks, with other connected devices. However, fast switching between networks on different channels is advantageous when a current network is overloaded, or experiencing high latency and/or low available bandwidth, for example. It may be preferable that no content is being streamed at the time of switching, so as not to interrupt the user's viewing/listening experience, for example. In such a case, the switching can be done during an absence of the audio stream from the display device. But fast switching is also possible during streaming and can be tolerable to the user depending on content being streamed, for example, during advertisements or music audio.

Additionally, fast switching is supported by standard media streaming protocols such as High-bandwidth Digital Content Protection (HDCP). HDCP is the copy and content protection standard used by the TV and film industry to prevent copying of digital audio and video content as it travels across connections. HDCP is used on HDMI connections for digital devices like Blu-ray players, cable boxes, and streaming devices, such as some embodiments of the media device disclosed herein.

If the media device with one transceiver needs to connect to the Internet only periodically, the media device can switch quickly (for example, on the order of a few milliseconds) between the separate clean channel and the home network to transmit/receive necessary information (for example, for mandatory administrative activities) to/from the servers of the media device. For example, this switching can be done to determine whether a new software update is required to be downloaded, or to determine whether the user has made another choice of content on a mobile app connected to the media device.

This switching may occur for other reasons or "switching conditions. " For example, a user switching the TV away from the input of the media device and back again may cause the connection to the media device to reset to the user's home network. Additionally, a user may be provided the capability to set configurations for communication on the network, including any switching protocols and speaker configurations. A person of ordinary skill in the art will appreciate the capability of the hardware and software of the media device to be adapted to these situations.

The media device may be configured, in various cases of automatic or user-controlled switching, to communicate an indication of the network switching to the user. For example, the media device may integrate an audible indicator into the audio stream to play over connected speakers when the media device switches to a different network. Additionally or alternatively, the media device may display a visual indicator as an external interface, for example, as one or more LED indicator(s) on a set-top box. The media device may also integrate a visual message to the user into the information stream to the display device for display on a screen, for example. A separate media device management message can alternatively be provided for this purpose. A person of ordinary skill in the art will appreciate the capability of the hardware and software of the media device to be adapted for various embodiments that support these situations also.

For a media device configured with one transceiver, a fast-switching process may not be advantageous if the media device often needs to communicate over the Internet (for example, to its server(s)) or over the user's local network, or if there is a need for uninterrupted streaming for an extended length of time, such as during the streaming of a four-hour documentary film. In such a case, it may be preferred that the media device be configured to have a second transceiver inside the media device, allowing for a separate, simultaneous digital connection to be made on a separate channel/frequency. In some embodiments, the media device and speaker(s) on the home network, for example (a first wireless network), can simultaneously communicate on a separate clean channel (a second wireless network) for uninterrupted audio traffic. The media device can alternatively receive a media device management message or a software update from one or more server(s), for example, on the second wireless network while the media device is streaming on the first wireless network.

A person of ordinary skill in the art will appreciate that the media device can receive audio in other ways besides via the HDMI/ARC port, the Internet, and other methods previously discussed herein. For example, the media device may receive audio from an S/PDIF (Sony/Philips Digital Interface Format) input, standardized in IEC <NUM> as IEC <NUM> type II (IEC <NUM> before <NUM>). An S/PDIF input is a type of digital audio interface used in consumer audio equipment to output audio signals over reasonably short distances using a coaxial cable with RCA (Radio Corporation of America, or, generically, phono) connectors or a fiber optic cable with TOSLINK (Toshiba Link, or, generically, optical audio cable) connectors. Analog inputs are also possible.

Some embodiments of the apparatus, systems, articles of manufacture, methods, and/or computer products, and/or combinations and sub-combinations thereof, described herein are further detailed below, in reference to the figures/drawings of this specification.

<FIG> illustrates a block diagram of a media streaming environment <NUM> that can include a display device <NUM> with High-Definition Multimedia Interface (HDMI)/Audio Return Channel (ARC) capability, according to some embodiments. Display device <NUM>, which can be or include a television, a monitor, a tablet, and/or a projector, for example, can include one or more speaker(s) <NUM> and the following interfaces:.

The display device <NUM> is not limited to having the interfaces <NUM> that are illustrated in <FIG>, but may have multiples of the illustrated interfaces and/or other interfaces not shown.

In <FIG>, media device <NUM> can be a streaming media device, a digital video disk (DVD) device, an audio/video (A/V) playback device, a cable box, and/or a digital video recording (DVR) device, for example. In some embodiments, the media device <NUM> can be a part of, integrated with, operatively coupled to, and/or connected to display device <NUM>. The media device <NUM> includes one or more transceiver(s) <NUM>, memory <NUM>, and a digital signal processor (DSP) <NUM>.

When the media device <NUM> is communicatively coupled to the HDMI/ARC port 106D of the display device <NUM>, the speaker(s) <NUM> of the display device <NUM> can be turned off during audio streaming. However, the speaker(s) <NUM> can remain on during setup and calibration of the media device <NUM>. For such calibration, the media device <NUM> may use and/or reference a database of different models of non-streaming TVs.

Instead of using the speaker(s) <NUM> of the display device <NUM>, the media device <NUM> can be communicatively coupled to one or more external speaker(s) <NUM> for audio streaming. External speaker(s) <NUM> can be any number of commercially- or non-commercially-available speakers configured for wireless communication, such as smart speakers or smart soundbars, for example. Wireless connection from the media device <NUM> to the external speaker(s) <NUM> can allow the external speaker(s) <NUM> to be placed at various locations around a home, for example, without the inconvenience of having to route wires through rooms and around walls, for example.

In some embodiments according to <FIG>, media device <NUM> can be configured to communicate with Internet <NUM>, for example. In various embodiments, the connection of the media device <NUM> to the media streaming environment <NUM> can include, without limitation, wired and/or wireless intranet, extranet, Internet, cellular, Bluetooth and/or any other long-range, local, short-range, ad-hoc, regional, and/or global communications network, as well as any combination thereof. For example, media device <NUM> can communicate wirelessly via a Wi-Fi network with the Internet <NUM> using the one or more transceiver(s) <NUM>, or can communicate with the Internet <NUM> over a wired connection to a home router (not shown) having communicative connection to the Internet <NUM>, for example.

In some embodiments according to <FIG>, media device <NUM> can communicate with mobile device <NUM> using a software application (app) <NUM> inside the mobile device <NUM>. The mobile device <NUM> can be a smartphone, a tablet, and/or a laptop computer, for example. The mobile device <NUM> with app <NUM> can allow the user to interact with the media device <NUM>. Specifically, the mobile device <NUM> and app <NUM> can be configured for remote control of and communication with the media device <NUM>. Communication between the media device <NUM> and mobile device <NUM> can be over the same Wi-Fi network that the media device <NUM> shares with the Internet <NUM>, for example. In other embodiments, remote control of the media device <NUM> can be by any component, part, apparatus or method for controlling the media device <NUM> and/or the display device <NUM>, such as a remote controller, a tablet, a laptop computer, a smartphone, on-screen controls, integrated control buttons, or any combination thereof, to name a few examples.

In <FIG>, one or more content provider(s)/server(s) <NUM>, such as Netflix and Hulu, for example, can be communicatively coupled to the Internet <NUM> for provision of content <NUM> to the Internet <NUM>, for example. A content provider/server <NUM> may store content <NUM>, such as any combination of music, videos, TV programs, movies, multimedia, images, still pictures, text, graphics, gaming applications, advertising, software, and/or any other content or data objects in electronic form, as well as metadata <NUM>.

In some embodiments, metadata <NUM> can comprise data describing attributes of the content <NUM>. For example, metadata <NUM> can include associated or ancillary information about the content <NUM>, indicating or related to category (for example, news, analysis and interpretation, long-form documentary, religion, sports, and entertainment), topic (for example, politics, leadership, technology, and events), content type (for example, TV show, movie, advertisement, and music video), genre (for example, action, adventure, animation, biography, comedy, crime, and educational), and other content-specific attributes, such as format, director, writer, producer, production company, composer, artist, release date, language, runtime, cast member, actor, summary, chapter, production, history, year, trailers, alternative versions, related content, applications, and/or any other information pertaining or relating to the content <NUM>. Metadata <NUM> may also or alternatively include links to any such information pertaining or relating to the content <NUM>. Metadata <NUM> may also or alternatively include one or more indexes of content <NUM>, such as but not limited to a trick mode index.

A user may use the mobile device <NUM> and the app <NUM> to interact with the media device <NUM> to select content, such as a movie, TV program, game, etc., from the repository of content <NUM>. The media device <NUM> can then request the user-selected content from the content provider(s)/server(s) <NUM> over the Internet <NUM>. The content provider(s)/server(s) <NUM> can transmit the requested content to the media device <NUM>. The media device <NUM> can transmit the received content to the display device <NUM> and/or the external speaker(s) <NUM> for presentation to the user. In streaming embodiments, the media device <NUM> can transmit the selected content to the display device <NUM> and/or external speaker(s) <NUM> in real-time or near real-time as it receives such content from the content provider(s)/server(s) <NUM>. In non-streaming embodiments, for example, when a network is slow or disconnected, the media device <NUM> can buffer or store the content received from the content provider(s)/server(s) <NUM> in the media device <NUM> for later playback on the display device <NUM> and/or the external speaker(s) <NUM>.

In <FIG>, one or more administrative server(s) <NUM> can be communicatively coupled to the Internet <NUM> for provision of content information from a content ID module <NUM>, one or more software update(s) <NUM>, and/or one or more program update(s) <NUM>, for example, to the Internet <NUM>. The administrative server(s) <NUM> may push (initiate sending of) such information to the media device <NUM> over the Internet <NUM> when, for example, a software update <NUM> is available to update the configuration of the media device <NUM>. Similarly, the administrative server(s) <NUM> may push a program update <NUM> to the media device <NUM> via the Internet <NUM> when a media device <NUM> has loaded or has been streaming an obsolete version of a TV program, for example.

Alternatively, the administrative server(s) <NUM> may push a notification to the media device <NUM> (in the form of a media device management message, for example) to alert a user that a new software or program update is ready for download at a later time, which is advantageous if the media device <NUM> is busy streaming content to the user. Upon receipt of the alert, the media device <NUM> may stop the streaming of the content or wait for the stream to complete, and then may pull (by request of the media device <NUM>) the software update(s) <NUM> and/or program update(s) <NUM> from the administrative server(s) <NUM>. The media device <NUM> may also wait to pull the software update(s) <NUM> and/or program update(s) <NUM> from the administrative server(s) <NUM> at the user's convenience and discretion, when the user stops the stream of content and/or requests to start the update(s), for example.

The mobile device <NUM> can be periodically updated by the administrative server(s) <NUM> with software update(s) <NUM> to maintain compatible software for communicative connection with the media device <NUM>. Additionally, the app <NUM> of the mobile device <NUM> can be periodically updated by the administrative server(s) <NUM> with program update(s) <NUM> to provide an accurate view of content <NUM> for the user to browse and search for content selection(s). The user may choose to get the software update(s) <NUM> and/or program update(s) <NUM> when the media device <NUM> is no longer streaming content because the stream is complete or the user stops the stream, for example. In such a case, the user may request the software update(s) <NUM> and/or program update(s) <NUM> using the app <NUM> of the mobile device <NUM>.

The content ID module <NUM> of the one or more administrative server(s) <NUM> can provide a database that allows the media device <NUM> access to content information of the particular content that the media device <NUM> is streaming. Depending on the attributes of the content <NUM> from the metadata <NUM> that is sent to the media device <NUM> over the Internet <NUM>, the media device <NUM> can query the database in the content ID module <NUM> over the Internet <NUM> to identify the particular content that is being streamed. When queried, the content ID module <NUM> can send back to the media device <NUM> the identification (ID) information of the streamed content.

Knowing the ID of the content, the media device <NUM> can then offer to the user content that is similar in attributes, such as category, topic, content type, and/or genre, for example. In this way, the media device <NUM> can provide the user an entertainment experience uninterrupted by the user's need to search for similar TV programs or movies. Additionally, by identifying the particular content through a database lookup, the media device <NUM> can use this information to make predictions about the user's interests. The media device <NUM> can then offer advertising that is congruent to the user's interests, such as concerns retail shopping, event patronage, movie-going, and/or dining, for example.

<FIG> illustrates a flow chart depicting a method <NUM> of audio cancellation for audio received over HDMI/ARC, according to some embodiments. <FIG> is described in reference to the media streaming environment <NUM> of <FIG>. For instance, a TV serves as the display device <NUM>, for example, and is connected to the media device <NUM> by an HDMI/ARC port 106D on the TV. The media device <NUM> is also communicatively coupled to external speaker(s) <NUM>, including one or more voice-enabled device(s)/speaker(s), via Wi-Fi, for example.

In step <NUM>, the TV/display device <NUM> can receive media content from the antenna <NUM>, the DVD/Blu-ray/cable modem <NUM>, and/or the media device <NUM>, for example. In step <NUM>, the TV/display device <NUM> can play the media content it receives and can transmit the audio from that content to the media device <NUM> over the HDMI/ARC port 106D. In step <NUM>, the media device <NUM> can receive an audio stream from the TV/display device <NUM> over the HDMI/ARC port 106D.

In step <NUM>, the media device <NUM> can identify the received audio stream using one or more audio processing algorithm(s) that support various types of audio compression formats, or "wrappers," depending on the type of display device <NUM> to which the media device <NUM> is connected. The types of audio compression formats can include, but are not limited to: AAC (for example,. MOV files); MP3 (for example,. MKV files); WMA (for example,. MKV files), FLAC (for example,. MKV files), PCM (for example,. MOV files), AC3/EAC3 (for example,. AC3 files), DTS (for example,. DTS files), ALAC (for example,. M4A files), and Vorbis (for example,. WEBM files), for example.

In step <NUM>, the media device <NUM> can decode the identified audio stream from the TV/display device <NUM> into multi-channel audio using an audio codec computer program. "Multi-channel audio" refers to the use of multiple audio tracks to reconstruct audio content on a multi-speaker sound system, for example, a surround sound system. With multi-channel audio, multiple discrete audio channels can be routed to an array of speakers, for example, to enhance the quality and effects of sound in a physical space, such as in a home. The audio channels may transmit streaming audio, for example.

In generating multi-channel audio, the audio codec (not shown) can implement one or more algorithm(s) to decompress the compressed audio format. A multi-channel splitting algorithm can split the audio stream into single physical channels, for example, each carrying an individual track, such as voice and music, that formed the original audio stream from the TV/display device <NUM>.

In step <NUM>, the media device <NUM> then can re-encode the multi-channel audio to a streaming format compatible with communicatively-coupled external speaker(s) <NUM>. In step <NUM>, once re-encoded, the media device <NUM> can transmit the audio in playback to the external speaker(s) <NUM> for broadcast in a room or rooms in which the external speaker(s) <NUM> are located.

In a room having a voice-enabled device, for example, an external smart speaker with a microphone (mic) configured for voice recognition from an external source, the mic can independently receive voice from a person speaking within or close to the room. The mic may receive far-field voice, for example. In step <NUM>, the media device <NUM> can receive the voice from the mic that is communicatively coupled to the media device <NUM>.

In the exemplary embodiment of <FIG>, the voice-enabled device can be the same or a different device as one of the external speaker(s) <NUM> that is communicatively coupled to the media device <NUM>, for example. Accordingly, if voice-enabled, the external speaker(s) <NUM> can transmit the voice received to the media device <NUM>.

By splitting, or decoding, the audio tracks into multiple channels in step <NUM>, the media device can decipher and distinguish the known audio tracks from voice received. In step <NUM>, the media device <NUM> can then subtract, or cancel, the known audio received from the overlaid combination of the audio simultaneously received with the voice received.

In step <NUM>, the media device <NUM> can thus monitor for, and detect, voice received from the external source during audio playback, and then perform either step <NUM> or step <NUM>.

In step <NUM>, by isolating the voice received from the external source within or close to the room, the voice-enabled external speaker(s) <NUM> communicatively coupled to the media device <NUM> can receive and determine whether the external voice received had been intended as a voice command for the voice-enabled external speaker(s) <NUM>.

In step <NUM>, if the voice received is a recognized command for the voice-enabled external speaker(s) <NUM>, the voice-enabled external speaker(s) <NUM> can then act on the voice, performing a task as directed by the user or fulfilling a request from the user for information, for example.

Returning to step <NUM>, if voice is not received from an external source, then in step <NUM>, the media device <NUM> can continue audio playback from the HDMI/ARC port 106D of the TV/display device <NUM> to the communicatively-coupled external speaker(s) <NUM> through the media device <NUM>.

Steps <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> of the method <NUM> can continue until the audio stream is interrupted from the display device <NUM>, regardless whether external voice is received.

In an embodiment related to method <NUM>, when multiple voice-enabled speakers are connected and spatially dispersed around a room or multiple rooms, the media device <NUM> can adjust the playback to each speaker by applying an audio delay algorithm to the HDMI/ARC output that can synchronize the audio coming to each speaker. The algorithm, which is detailed in <CIT>, titled "Identifying Audio Characteristics of a Room Using a Spread Tone," uses knowledge of a specific speaker configuration to determine the delay to apply to the audio transmitted to each speaker, based on propagation delay over distance. Specifically, audio takes about one millisecond to travel about one foot.

In some embodiments using the audio delay algorithm, the media device <NUM> calculates a spread tone. Specifically, a tone from one external speaker <NUM> can be picked up by another external speaker <NUM>. The media device <NUM> can take into account the delay between the two speakers to slightly delay the audio to one speaker for more accurate buffering and synchronized audio to the external speakers <NUM>. In this way, the media device <NUM> can synchronize speaker devices, specifically to know when to transmit to each speaker device. It is desired to synchronize external speakers <NUM> to within at least ten (<NUM>) milliseconds, because a human will not typically notice a delay of less than ten (<NUM>) milliseconds. This delay calculation is different from any delay calculation applied to the audio due to network overloading.

<FIG> illustrates a flow chart depicting a method <NUM> of audio content recognition for audio received over HDMI/ARC, according to some embodiments. <FIG> is described in reference to the media streaming environment <NUM> of <FIG>. For instance, a TV serves as the display device <NUM>, for example, and is connected to the media device <NUM> by an HDMI/ARC port 106D on the TV. The media device <NUM> is also communicatively coupled to external speaker(s) <NUM>.

In step <NUM>, the media device <NUM> can identify the source of an audio stream based on the device to which the media device <NUM> is connected. Additionally or alternatively, the media device <NUM> can identify the content source of the audio stream using a source identifier and a channel identifier, predetermined and provided by a digital watermarking process previously performed by the content provider(s)/server(s) <NUM> prior to distribution, for example. The source identifier and/or channel identifier can be extracted from the audio stream by the media device <NUM> for this purpose.

"Watermarking" refers to inserting digital tags containing information about the audio content into the content itself prior to distribution. For example, a broadcast encoder may insert a watermark every few seconds that could be used to identify a broadcast channel with a channel identifier, a TV program with a source identifier, and a time stamp of the audio content. The source identifier and/or channel identifier, from such watermarking process, can be evaluated by the media device <NUM> to identify the specific TV program and/or broadcast channel, respectively, of the content.

Additionally, the time stamp of the audio content alternatively provided within the audio stream can assist the media device in determining content broadcast on a specific date and at a specific time, for example, a TV sitcom broadcast at <NUM>:<NUM> p. ET on a Wednesday night, February <NUM>, <NUM>.

In step <NUM>, the media device <NUM> can apply audio processing based on the identified content source. For example, the media device <NUM> can select the processing algorithm to use based on whether the audio content is a broadcast TV program from the antenna <NUM> through the ANT port 106A of the TV/display device <NUM>, a Netflix movie from the cable modem <NUM> through the HDMI port 106C of the TV/display device <NUM>, or a YouTube video played into the USB port 106B of the TV/display device <NUM> from the computer <NUM>, to name a few examples.

In step <NUM>, the media device <NUM> can fingerprint the audio stream by using any applicable well known software algorithm to create a condensed digital summary from a short (for example, a few seconds) sample of the audio stream. This digital summary, or "signature," or "fingerprint" of the audio can then be used to identify the audio stream. The fingerprint may include attributes such as frequency, intensity, and relative time of signal points within the audio stream, which can form a spectrogram when plotted, for example.

The fingerprint can be saved locally in the media device <NUM> and can be used later (at another session of use, for example) by the media device <NUM> to inform the media device <NUM> about what types of content should initially be offered to the user at the start of the next session of use, for example. A plurality of fingerprints can be saved in the media device <NUM> indefinitely, subject to device memory limitations, for example. A user may clear the saved fingerprints using a control within the app <NUM> on the mobile device <NUM> or on the media device <NUM> itself. A unique list of fingerprints may be saved in the media device <NUM> for each unique user of the media device <NUM>.

In step <NUM>, to identify the audio stream using the fingerprint, the media device <NUM> can identify the content of the audio stream, such as the audio from a specific TV program ("Friends," for example), a movie ("Indiana Jones and the Raiders of the Lost Ark," for example), or a music video (Queen's and David Bowie's "Under Pressure," for example), by locating a matching fingerprint in the database of the content ID module <NUM>, accessible over the Internet <NUM> connection. This fingerprinting process thus assists the media device <NUM> in audio content recognition, or identifying content, for example, based on the associated audio, while streaming.

In step <NUM>, the media device <NUM> can use the fingerprint to determine what TV program a user is watching and offer similar or relevant content to the user, such as suggesting a like TV program or movie, for example, having a similar fingerprint within the database of the content ID module <NUM>, or having the same or similar attributes, such as category, topic, content type, and/or genre, for example, as the identified TV program or movie. In addition to program and movie suggestions, the media device <NUM> may also offer the user advertising aimed at the user's preferences, such as what to buy, where to shop, what to eat, and where to dine, predicted based on pre-determined marketing data, for example. For example, the media device <NUM> may stream an advertisement for "Ted's Pizza Place," using a prediction from consumer marketing data that a person who enjoys watching "Friends" likes to eat pizza.

<FIG> illustrates a flow chart depicting a method <NUM> of dynamically switching to/from a first network during wireless playback of audio received over HDMI/ARC, according to an embodiment of the claimed invention. <FIG> is described in reference to the media streaming environment <NUM> of <FIG>, wherein the media device <NUM> has a single transceiver <NUM>, as in some embodiments. A TV serves as the display device <NUM>, for example, and is connected to the media device <NUM> by an HDMI/ARC port 106D on the TV. The media device <NUM> is also communicatively coupled to external speaker(s) <NUM>. A connection to the Internet <NUM> is available for communicatively coupling the media device <NUM> to one or more off-site administrative server(s) <NUM> and/or to one or more content provider(s)/server(s) <NUM>.

In step <NUM>, the TV/display device <NUM> can receive media content from the antenna <NUM>, the DVD/Blu-ray/cable modem <NUM>, and/or the media device <NUM>, for example. In step <NUM>, the TV/display device <NUM> can play the media content it receives and can transmit the audio from that content to the media device <NUM> over the HDMI/ARC port 106D. In step <NUM>, the default, local Internet <NUM> connection, known as a "Home Network" (Home NW), is in use as a first wireless network, or the default network, on a default channel, for communicating media content.

In step <NUM>, if the media device <NUM> is in use, the subsequent method <NUM> steps can be performed. In step <NUM>, if the media device <NUM> is not in use, the Internet <NUM> connection can continue to communicate media content. Specifically, as used herein, the media device <NUM> is in use when the media device <NUM> is operational (connected, turned on, and initialized) and has as the input source the TV's HDMI/ARC port 106D. The media device <NUM> can then be communicatively coupled to the first wireless network as a default. Additionally, the media device <NUM> can make a communicative connection to the first wireless network upon a reset of the media device <NUM>.

In method <NUM>, the TV/display device <NUM> can receive media content over the HDMI port 106C from the cable modem <NUM>, which is communicatively coupled to the Internet <NUM> on the Home NW, whether or not the media device <NUM> is operational and connected to the HDMI/ARC port 106D. The TV/display device <NUM> may not receive media content over the HDMI port 106C from the cable modem <NUM> in the case that there is a network disconnection or network overload condition, for example. A network disconnection may be due to a problem with the cable modem <NUM> preventing an Internet <NUM> signal from getting to the TV/display device <NUM>, or a failure of a content provider/server <NUM>, for example, an Internet service provider (ISP), to provide a signal into the home, for example.

If the media device <NUM> is in use, then in step <NUM>, the media device <NUM> can determine the input source by evaluating whether an audio stream is coming from the HDMI/ARC port 106D of the TV/display device <NUM> or the Internet <NUM>. In step <NUM>, when the HDMI/ARC port 106D is the source, the media device <NUM> can receive the audio stream from the HDMI/ARC port 106D of the TV/display device <NUM>, as shown in step <NUM>. In step <NUM>, the media device may identify and switch to another wireless network (or channel) as needed for uninterrupted audio streaming during a network overload condition of the Home NW, as described in the example below.

Returning to step <NUM>, when the Internet <NUM> is the source of the audio stream, the media device <NUM> can receive the audio stream from content received over the Internet <NUM>, as shown in step <NUM>. In step <NUM>, the media device <NUM> may not determine an alternate wireless network but can buffer content in the case of a network overload condition, as described in the example below. In steps <NUM> and <NUM>, the media device <NUM> can check the network loading of the channel over which it is currently receiving an audio stream. The media device <NUM> can determine that the network loading of the wireless network that it is communicatively coupled to exceeds a predetermined threshold (or predetermined thresholds) of a maximum bandwidth and/or a maximum latency, for example.

Specifically, a network overload condition may be due to insufficient bandwidth on the Home NW to accommodate a number of Internet-connected devices within the home at the same time, for example. The amount of bandwidth usage sufficient to trigger a network overload condition may vary depending on the demand of the data being streamed and the capacity of the network. Higher quality content uses more bandwidth; for example, a <NUM> Mbps Internet download connection speed is recommended per stream to play a TV show or movie through Netflix. However, an ISP may apply a bandwidth or data cap to a home network's Internet service to prohibit streaming at such a connection speed.

A network overload condition may also be due to an unacceptable latency, that is, delay, between the time that data is transmitted from its source and received at its destination, which could prevent reliable and consistent streaming, for example. The amount of latency sufficient to trigger a network overload condition is similarly dependent on the demand of the data being streamed, but a latency on the order of tens of milliseconds (such as <NUM>, for example) may trigger a network overload condition.

In step <NUM>, when the network is not overloaded, the media device <NUM> can remain on the Home NW or default channel, as shown in step <NUM>. The media device <NUM> can continue to check for the input source (step <NUM>) to determine whether it is still receiving an audio steam over the Internet or HMDI/ARC, and can continue to receive the audio stream as available from the input source (step <NUM> or <NUM>). Although not shown in the flow chart of <FIG>, while on the Home NW/default channel, the media device <NUM> can receive notifications and/or communications from the administrative server(s) <NUM> over the Internet <NUM>, including information from the content ID module <NUM>, and notification of the availability of software update(s) <NUM> and program update(s) <NUM>.

Continuing the method where the HDMI/ARC port 106D is the source of the audio stream, in step <NUM>, when the network is overloaded (indicates a network overload condition), the media device <NUM> can establish and/or identify a clean channel, such as an ad hoc network (step <NUM>), and then can switch the media device <NUM>, and any external speaker(s) <NUM> communicatively coupled to the media device <NUM>, from the Home NW to the clean channel (step <NUM>). When on the clean channel, the media device <NUM> may need to send or receive communications between itself and the administrative server(s) <NUM>, as shown in step <NUM>, to transfer information to/from the content ID module <NUM>, or to receive software update(s) <NUM> and/or program update(s) <NUM>. If so, the media device <NUM> can switch back to the Home NW channel (step <NUM>) to complete administrative activities (step <NUM>).

In step <NUM>, as long as (<NUM>) the media device <NUM> is still streaming audio, (<NUM>) the user does not desire an interruption in the audio stream, (<NUM>) no administrative activities are necessary/mandatory to complete, or (<NUM>) there is no reset of the media device <NUM>, the media device <NUM> can remain on the clean channel until the network is no longer overloaded. However, if a situation (such as one or more of the events (<NUM>)-(<NUM>) above) warrants a switch between network channels, the media device <NUM> can buffer some audio to mitigate any interruption in an ongoing audio stream. In some embodiments, switching by the media device <NUM> from a first wireless network to a second wireless network, or clean channel, is performed when needed to facilitate reliable audio streaming, while taking into account the potential for software updates and the assurance of sufficient audio quality. For example, switching too often may create data dropout that may not be mitigated by buffering.

In step <NUM>, when the Home NW/default channel is not overloaded, the media device <NUM> can remain on the Home NW/default channel, and can continue to check for the input source (step <NUM>) to determine whether it is still receiving an audio steam over the Internet or HDMI/ARC, and can continue to receive the audio stream as available from the input source (step <NUM> or <NUM>). Although not shown in the flow chart of <FIG>, while on the Home NW/default channel, the media device <NUM> can receive notifications and/or communications from the administrative server(s) <NUM> over the Internet <NUM>, including information from the content ID module <NUM>, and notifications of the availability of software update(s) <NUM> and/or program update(s) <NUM>.

Continuing the method where the Internet <NUM> is the source of the audio stream, in step <NUM>, when the Home NW/default channel is overloaded (indicates a network overload condition), the media device <NUM> can then select a latency algorithm based on the network loading (step <NUM>) and can determine the existing network speed (step <NUM>). In step <NUM>, with a selected latency algorithm and the known network speed, the media device <NUM> can delay content for redistribution rather than continue to try to stream the audio as it comes from the source (for example, the TV/display device <NUM> streaming a TV program over the HDMI/ARC port 106D).

In step <NUM>, the media device <NUM> can buffer the content to the external speaker(s) <NUM> on the network so that the audio stream can continue uninterrupted and play back seamlessly to the user. The media device <NUM> can also synchronize the delayed audio with the corresponding video from the TV/display device <NUM>. The media device <NUM> can continue this buffering and delayed redistribution of the audio stream to the communicatively-coupled external speaker(s) <NUM> as long as the network overload condition continues. If a network is overloaded such that a clean audio stream cannot be achieved by buffering and delayed redistribution, the media device <NUM> can provide a notification to the user of the network overload condition, such as over the TV/display device <NUM> and/or on the app <NUM> of the mobile device <NUM>, for example.

In an embodiment related to method <NUM>, when multiple voice-enabled speakers are connected and spatially dispersed around a room or multiple rooms, the media device <NUM> can adjust the playback to each speaker by applying an audio delay algorithm to the HDMI/ARC audio stream that can synchronize the audio transmitted to each speaker. The algorithm, which is detailed in <CIT>, titled "Identifying Audio Characteristics of a Room Using a Spread Tone," uses knowledge of a specific speaker configuration to determine the delay to apply to the audio transmitted to each speaker, based on propagation delay over distance. Specifically, audio takes about one millisecond to travel about one foot.

<FIG> illustrates an example computer system <NUM>. Various embodiments can be implemented, for example, using one or more well-known computer systems, such as computer system <NUM>. One or more computer systems <NUM> can be used, for example, to implement any of the embodiments discussed herein, as well as combinations and sub-combinations thereof.

Computer system <NUM> can include one or more processors (also called central processing units, or CPUs), such as a processor <NUM>. Processor <NUM> can be connected to a communication infrastructure (or bus) <NUM>.

Computer system <NUM> can also include user input/output device(s) <NUM>, such as monitors, keyboards, pointing devices, etc., which can communicate with communication infrastructure <NUM> through user input/output interface(s) <NUM>.

One or more of processors <NUM> can be a graphics processing unit (GPU). In an embodiment, a GPU can be a processor that is a specialized electronic circuit designed to process mathematically intensive applications. The GPU can have a parallel structure that is efficient for parallel processing of large blocks of data, such as mathematically intensive data common to computer graphics applications, images, videos, etc..

Computer system <NUM> can also include a main or primary memory <NUM>, such as random access memory (RAM). Main memory <NUM> can include one or more levels of cache. Main memory <NUM> can have stored therein control logic (for example, computer software) and/or data.

Computer system <NUM> can also include one or more secondary memory (or storage devices) <NUM>. Secondary memory <NUM> can include, for example, a hard disk drive <NUM> or a removable storage drive (or device) <NUM>. Removable storage drive <NUM> can be a floppy disk drive, a magnetic tape drive, a compact disk drive, an optical storage device, a tape backup device, or any other storage device/drive, for example.

Removable storage drive <NUM> can interact with a removable storage unit <NUM>. Removable storage unit <NUM> can include a computer usable or readable storage device having stored thereon computer software (control logic) or data. Removable storage unit <NUM> can be a floppy disk, magnetic tape, a compact disk, a DVD, an optical storage disk, or any other computer data storage device, for example. Removable storage drive <NUM> can read from or write to removable storage unit <NUM>.

Secondary memory <NUM> can include other means, devices, components, instrumentalities, or other approaches for allowing computer programs or other instructions or data to be accessed by computer system <NUM>. Such means, devices, components, instrumentalities, or other approaches can include, for example, a removable storage unit <NUM> and an interface <NUM>. Examples of the removable storage unit <NUM> and the interface <NUM> can include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM or PROM) and associated socket, a memory stick and USB port, a memory card and associated memory card slot, or any other removable storage unit and associated interface.

Computer system <NUM> can further include a communications (or network) interface <NUM>. Communications interface <NUM> can enable computer system <NUM> to communicate and interact with any combination of external devices, external networks, external entities, etc. (individually and collectively referenced by reference number <NUM>). For example, communications interface <NUM> can allow computer system <NUM> to communicate with external or remote device(s), network(s), entity(ies) <NUM> over communications path <NUM>, which can be wired or wireless (or a combination thereof), and which can include any combination of LANs, WANs, the Internet, etc. Control logic or data can be transmitted to and from computer system <NUM> via communications path <NUM>.

Computer system <NUM> can also be any of a personal digital assistant (PDA), desktop workstation, laptop or notebook computer, netbook, tablet, smart phone, smart watch or other wearable, appliance, part of the Internet-of-Things, or embedded system, to name a few non-limiting examples, or any combination thereof.

Computer system <NUM> can be a client or server, accessing or hosting any applications or data through any delivery paradigm, including but not limited to remote or distributed cloud computing solutions; local or on-premises software ("on-premise" cloud-based solutions); "as a service" models (for example, content as a service (CaaS), digital content as a service (DCaaS), software as a service (SaaS), managed software as a service (MSaaS), platform as a service (PaaS), desktop as a service (DaaS), framework as a service (FaaS), backend as a service (BaaS), mobile backend as a service (MBaaS), infrastructure as a service (IaaS), etc.); or a hybrid model including any combination of the foregoing examples or other services or delivery paradigms.

Any applicable data structures, file formats, and schemas in computer system <NUM> can be derived from standards including but not limited to JavaScript Object Notation (JSON), Extensible Markup Language (XML), Yet Another Markup Language (YAML), Extensible Hypertext Markup Language (XHTML), Wireless Markup Language (WML), MessagePack, XML User Interface Language (XUL), or any other functionally similar representations alone or in combination. Alternatively, proprietary data structures, formats, or schemas can be used, either exclusively or in combination with known or open standards.

In some embodiments, a tangible, non-transitory apparatus or article of manufacture comprising a tangible, non-transitory computer useable or readable medium having control logic (software) stored thereon can also be referred to herein as a computer program product or program storage device. This includes, but is not limited to, computer system <NUM>, main memory <NUM>, secondary memory <NUM>, and removable storage units <NUM> and <NUM>, as well as tangible articles of manufacture embodying any combination of the foregoing. Such control logic, when executed by one or more data processing devices (such as computer system <NUM>), can cause such data processing devices to operate as described herein.

Based on the teachings contained in this disclosure, it will be apparent to persons skilled in the relevant art how to make and use embodiments of this disclosure using data processing devices, computer systems, or computer architectures other than that shown in <FIG>.

It is to be appreciated that the Detailed Description section, and not any other section, is intended to be used to interpret the claims. Other sections can set forth one or more but not all exemplary embodiments as contemplated by the inventor(s), and thus, are not intended to limit this disclosure or the appended claims in any way.

While this disclosure describes exemplary embodiments for exemplary fields and applications, it should be understood that the disclosure is not limited thereto. Other embodiments and modifications thereto are possible, within the scope of the following claims. For example, and without limiting the generality of this paragraph, embodiments are not limited to the software, hardware, firmware, or entities illustrated in the figures or described herein. Further, embodiments (whether or not explicitly described herein) have significant utility to fields and applications beyond the examples described herein.

References herein to "one embodiment," "an embodiment," "an exemplary embodiment," or similar phrases, indicate that the embodiment described can include a particular feature, structure, or characteristic, but every embodiment cannot necessarily include the particular feature, structure, or characteristic. Additionally, some embodiments can be described using the expression "coupled" and "connected," along with their derivatives. For example, some embodiments can be described using the terms "connected" or "coupled" to indicate that two or more elements are in direct physical or electrical contact with each other.

Claim 1:
A method, comprising:
determining that an audio stream is received from a HDMI/ARC interface (106D) of a display device (<NUM>);
determining a network load of a channel of a home wireless network, wherein the home wireless network is communicatively coupled to an administrative server (<NUM>) on the Internet (<NUM>);
determining that the network load of the channel of the home wireless network exceeds a bandwidth threshold or a latency threshold;
establishing an ad hoc wireless network;
switching a media device (<NUM>) and a speaker device (<NUM>) from the channel of the home wireless network to the ad hoc wireless network based on the determination that the audio stream is received from the HDMI/ARC interface of the display device and the determination that the network load of the channel of the home wireless network exceeds the bandwidth threshold or the latency threshold;
in response to the switch of the speaker device from the channel of the home wireless network to the ad hoc wireless network, transmitting, by a transceiver (<NUM>) of the media device, the received audio stream over the ad hoc wireless network to the speaker device;
determining that the media device needs to transmit a request to the administrative server over the channel of the home wireless network; and
switching the media device and the speaker device from the ad hoc wireless network to the channel of the home wireless network in response to an absence of receiving the audio stream from the HDMI/ARC interface of the display device.