Patent Description:
Examples of noise cancelling technology are described in <CIT> which describes a noise cancelling circuit for DVD playback and <CIT> which describes noise cancelling in the context of voice commands.

The present invention is defined by the appended independent claims <NUM>, <NUM> and <NUM>.

A noise-canceling system may use a microphone of a remote control device of the home entertainment system or a microphone of another mobile device to collect a baseline white noise profile of a user's media content listening area, such as the user's family room, living room or other TV viewing space. This baseline white noise profile may be used by the user's set-top box (STB) or other receiving device to generate the corresponding noise canceling audio signal in order to create a noise-canceling effect and a more immersive and enjoyable listening experience for the user. A plurality of audio data samples each representing a different baseline profile of ambient white noise associated with the media content listening area may be generated for different devices, such as home appliances, that are not on all the time, and thus are not generating noise all the time. The user selects which audio data sample to use when playing an event.

The components in the drawings are not necessarily drawn to scale relative to each other. Like reference numerals designate corresponding parts throughout the several views.

Ambient white noise from home appliances such as dishwashers, refrigerators and air conditioners often distracts from listening to television (TV) programming or other media. Noise cancelation can be implemented to cancel out or reduce such ambient white noise to improve the listening experience. Noise cancelation works by taking as input ambient sounds via a microphone and adding an inverted sound wave to the audio being output by the system, resulting in cancelling out the ambient white noise that is interfering with the audio of the programming. In some embodiments, the system may generate a noise-cancelling audio wave that is <NUM>° out of phase with the ambient white noise in order to cancel out the ambient white noise.

However, it is often unfeasible, impractical and/or wastes resources for the system to continuously sample and analyze the ambient white noise in order to generate a corresponding noise cancelation audio wave. Thus, the noise-canceling system disclosed herein ingeniously uses a microphone of the remote control device of the home entertainment system or a microphone of another mobile device to collect a baseline white noise profile of a user's media content listening area, such as the user's family room, living room or other TV viewing space. This baseline white noise profile may be used by the user's STB or other receiving device to generate the corresponding noise canceling audio signal to create a noise-canceling effect and a more immersive, enjoyable listening experience for the user.

A plurality of audio data samples each representing a different baseline profile of ambient white noise associated with the media content listening area may be generated for different devices, such as home appliances, that are not on all the time, and thus are not generating noise all the time. The user may select which audio data sample to use when playing an event or allow the system to check (i.e., automatically poll) the audio in the room or corresponding listening area at random or periodic intervals (e.g., in some cases, upon user approval) to automatically select the audio data sample with the baseline profile that is the closest match to the sample received from the automatic polling of the listening area. For example, if the system is set to automatically poll the listening area, the remote control microphone may take an audio sample, remove the known audio of the programming that the system is outputting at that time and then check the remaining audio signal against the known baseline profiles of ambient white noise it has for the listening area associated with the previously collected plurality of audio data samples. The system may then switch to using the previously collected audio data sample having the closest matching baseline profile of ambient white noise to cancel out most or all of the other sounds.

<FIG> is an overview block diagram illustrating a technical environment <NUM> in which embodiments of systems and methods for noise cancelation in a listening area may be implemented, according to an example embodiment.

Before providing additional details regarding the operation and constitution of methods and systems for noise cancelation in a listening area, the example technical environment <NUM>, within which such a system may operate, will briefly be described.

In the technical environment <NUM>, audio, video, and/or data service providers, such as television service providers, provide their customers a multitude of video and/or data programming (herein, collectively "programming" or "content"). Such programming is often provided by use of a receiving device <NUM> communicatively coupled to a presentation device <NUM> configured to receive the programming. The programming may include any type of media content, including, but not limited to: television shows, news, movies, sporting events, advertisements, etc. In various embodiments, any of this programming may be provided as a type of programming referred to as streaming media content, which is generally digital multimedia data that is substantially constantly received by and presented to an end-user or presented on a device while being delivered by a provider from a stored file source. Its verb form, "to stream," refers to the process of delivering media in this manner. The term refers to how the media is delivered rather than the media itself.

In one embodiment, the receiving device <NUM> is a device such as a set-top box, television, DVR, DVD player, PC, tablet device, game machine, smart phone, mobile device or other computing device or media player configured to receive programming via a connection to a satellite or cable television service provider outside the media content listening area <NUM> and to display such programming on a presentation device <NUM>. For example, the receiving device <NUM> may be configured to receive, process and display on the presentation device <NUM> programming received directly from the satellite or cable television service provider, such as cable or satellite television broadcasts via various physical and logical channels of communication of communication system <NUM>. Also, the receiving device <NUM> may be configured to receive, process and display on the presentation device <NUM> streaming media content received directly from the satellite or cable television service provider and/or other content provider <NUM>.

The receiving device <NUM> interconnects to one or more communications media or sources. For example, the various media content may be delivered as data using the Internet Protocol (IP) suite over a packet-switched network such as the Internet or other packet-switched network, which may be included as part of the communication system <NUM>. The underlying connection carrying such data may be via a cable head-end, satellite antenna, telephone company switch, cellular telephone system, Ethernet portal, off-air antenna, or the like. The receiving device <NUM> may receive a plurality of programming by way of the communications media or sources, or may only receive programming via a particular channel or source described in greater detail below. In some embodiments, based upon selection by a user, the receiving device <NUM> processes and communicates the selected programming to the presentation device <NUM>. Also, in some embodiments, the presentation device <NUM> may also be a receiving device <NUM> or have a receiving device <NUM> integrated within it. The receiving device <NUM> also includes, or is operably coupled directly or indirectly to, and may control one or more speakers <NUM> that outputs audio of media content (such as received programming) and/or an audio signal generated by the receiving device <NUM> to cancel ambient white noise for the listener of the media content in the media content listening area <NUM>. For example, such white noise may be generated by various home appliances, such as home appliance <NUM> and/or home appliance <NUM>. Examples of home appliances that may generate ambient white noise include, but are not limited to: kitchen appliances, refrigerators, freezers, dishwashers, washing machines, heating, ventilation and air conditioning (HVAC) systems, fans, washing machines, computers, monitors, light bulbs, lighting systems, etc..

Examples of a receiving device <NUM> may include, but are not limited to devices such as, or any combination of: a "television converter," "receiver," "set-top box," "television receiving device," "television receiver," "television," "television recording device," "satellite set-top box," "satellite receiver," "cable set-top box," "cable receiver," "media player," "digital video recorder (DVR)," "digital versatile disk (DVD) Player," "computer," "mobile device," "tablet computer," "smart phone," "MP3 Player," "handheld computer," "gaming console" and/or "television tuner," etc. Accordingly, the receiving device <NUM> may be any suitable converter device or electronic equipment that is operable to receive programming via a connection to a satellite or cable television service provider outside the media content listening area and communicate that programming to another device over a network. Further, the receiving device <NUM> may itself include user interface devices, such as buttons or switches. In some example embodiments, the receiving device <NUM> may be configured to receive and decrypt content and/or software or firmware updates according to various digital rights management (DRM) and other access control technologies and architectures as part of or in addition to the process of noise cancelation in a listening area, which will be described in further detail below.

Examples of a presentation device <NUM> may include, but are not limited to, one or a combination of the following: a television ("TV"), a personal computer ("PC"), a sound system receiver, a digital video recorder ("DVR"), a compact disk ("CD") device, DVD Player, game system, tablet device, smart phone, mobile device or other computing device or media player, and the like. Presentation devices <NUM> employ a display, one or more speakers, and/or other output devices to communicate video and/or audio content to a user. In many implementations, one or more presentation devices <NUM> reside in or near a media content listening area <NUM> and are communicatively coupled, directly or indirectly, to the receiving device <NUM>. Further, the receiving device <NUM> and the presentation device <NUM> may be integrated into a single device. Such a single device may have the above-described functionality of the receiving device <NUM> and the presentation device <NUM>, or may even have additional functionality.

In many embodiments, a remote-control device (remote) <NUM> is operable to control the receiving device <NUM> and/or the presentation device <NUM>. The remote <NUM> typically communicates with the receiving device <NUM> using a suitable wireless medium, such as infrared (IR), radio frequency (RF), or the like. The remote <NUM> may include a microphone that may be voice or audio activated in order to receive a plurality of audio data samples each representing a different baseline profile of ambient white noise associated with a media content listening area <NUM>. Such audio samples may be recorded and stored by the remote <NUM> and/or communicated to the receiving device <NUM> for further processing and analysis. In some embodiments, the remote <NUM> may be a voice-enabled remote and the same microphone may also be used to receive voice commands from the user and transmit corresponding commands to the receiving device <NUM>.

In the example embodiment shown in <FIG>, handheld mobile device <NUM> may be communicatively connected to the television receiving device <NUM> via a physical or a peer-to-peer short range wireless connection. For example, mobile device <NUM> may be a handheld mobile device of a user (e.g., a television service provider technician or customer), such as a smartphone, tablet device or other computing or communications device. There may be fewer or additional mobile devices in various embodiments. The mobile device <NUM> may communicate over communication system <NUM> with the television receiving device <NUM>, program distributor <NUM>, content provider <NUM>, audio sample analysis server <NUM> and/or information provider <NUM> using the transmission control protocol/Internet protocol (TCP/IP) suite of networking communication protocols. In the present example, a cable or satellite television service provider may encompass or be in communication with some or all of the content provider <NUM>, program distributor <NUM>, audio sample analysis server <NUM>, and information provider <NUM>.

In particular, a content provider <NUM> provides program content, such as television content, to a distributor, such as the program distributor <NUM>. Example program distributors include, but are not limited to, satellite and cable television service providers. Example content providers include television stations which provide local or national television programming and special content providers which provide premium based programming, streaming services, pay-per-view programming and on-demand programming.

Program content (i.e., a program including or not including advertisements), is communicated to the program distributor <NUM> from the content provider <NUM> through suitable communication media, generally illustrated as communication system <NUM> for convenience. Communication system <NUM> may include many different types of communication media including those utilized by various different physical and logical channels of communication, now known or later developed. Non-limiting media and communication channel examples include one or more, or any operable combination of: satellite systems, cable systems, fiber optic systems, microwave systems, asynchronous transfer mode ("ATM") systems, frame relay systems, digital subscriber line ("DSL") systems, radio frequency ("RF") systems, telephone systems, cellular systems, and the Internet.

In at least one embodiment, the received program content is converted by the program distributor <NUM> into a suitable signal (a "program signal") that is ultimately communicated to the receiving device <NUM>. Various embodiments of the receiving device <NUM> may receive programming from program distributors <NUM> and/or directly from content providers <NUM> via locally broadcast radio, RF signals, cable, fiber optic, Internet media, or the like via the communication system <NUM>.

For example, Video on Demand (VOD) systems may allow a user of the receiving device <NUM> to select, watch and/or listen to video and audio content on demand. For example "Internet Television" and "Internet Protocol Television" (IPTV) are systems through which various media content is delivered using the Internet IP suite over a packet-switched network such as the Internet represented by communication system <NUM> to the receiving device <NUM>, instead of being delivered through traditional channels using terrestrial, satellite signal, and cable television formats of the communication system <NUM>. In various example embodiments, such technologies are deployed within the environment <NUM> such as in subscriber-based telecommunications networks of the communication system <NUM> with high-speed access channels into the media content listening area <NUM> via the receiving device <NUM> (e.g., a set-top box or other customer-premises equipment) to bring VOD services to the media content listening area <NUM>.

In various example embodiments, television VOD systems stream media content via the communications system <NUM> from files stored at a content storage system of a content delivery network operably coupled to the communication system <NUM>, under direct or indirect control of the program distributor <NUM>, to the receiving device <NUM>. Television VOD systems may stream content to a receiving device <NUM> such as a set-top box, DVD player, game system, smart phone, television (including a smart TV), PC, a sound system receiver, a digital video recorder ("DVR"), a compact disk ("CD") device, tablet device, mobile device or other computing device or media player, and the like, allowing viewing in real time at the media content listening area <NUM>, or downloading to a receiving device <NUM> such as a computer, DVR (also called a personal video recorder) or portable media player for viewing at any time.

In some embodiments, the receiving device <NUM> may be a set-top box that is typically provided by the cable provider, satellite provider, or other program distributor <NUM> to which the customer may subscribe to receive such television services and that also receives programming through traditional channels using a terrestrial, satellite signal, and/or cable television format. The mobile device <NUM> in communication with the receiving device <NUM> may be provided by the program distributor, such as a cable provider or satellite provider. However, in some instances, such mobile devices may be devices other than those provided by the program distributor <NUM>. For example, these may include various user devices such as a tablet device, game machine, smart phone, mobile device or other computing device or media player or communications device not provided by or controlled by the cable provider, satellite provider, or other program distributor to which the customer subscribes for the television services.

The audio sample analysis server <NUM> is operably coupled to the communication system <NUM> and may be a system of an entity that provides analysis and/or selection of collected audio samples collected by the mobile device <NUM>, receiving device <NUM> and/or remote <NUM>, each audio sample representing a different baseline profile of ambient white noise associated with the media content listening area <NUM>. For example, for each audio data sample of the plurality of audio data samples, the audio sample analysis server <NUM> may compare the received sample of audio to the baseline profile of the ambient white noise associated with the media content listening area <NUM> represented by received audio data sample to determine common characteristics between the received sample of audio and the baseline profile of the ambient white noise associated with the media content listening area <NUM>.

The audio sample analysis server <NUM> may then communicate to the receiving device <NUM> results of such audio sample analysis and/or the selection of the applicable baseline profile of the ambient white noise associated with the media content listening area <NUM> to use in noise cancelation of the ambient white noise by the receiving device <NUM> within the media content listening area <NUM>. The environment <NUM> may include many systems associated with a television service provider, such as the program distributor <NUM>, that operate in a manner such as the audio sample analysis server <NUM> described herein, and the audio sample analysis server <NUM> represents one or more of such systems in various embodiments. Such functionality may also or instead be performed by the mobile device <NUM> and/or remote control device <NUM>.

In addition, information provider <NUM> may provide various forms of content and/or services to various devices residing in the media content listening area <NUM>. For example, information provider <NUM> may also or instead provide information to the receiving device <NUM> regarding software and/or firmware updates for the receiving device <NUM>, other receiving devices of a particular television service provider, such as program distributor <NUM>, and/or other additional audio samples and/or metadata regarding such audio data samples or baseline audio profiles of particular types, brands, models and/or manufacturers of various appliances that generate ambient white noise in the media content listening area <NUM>. In this manner, such audio data samples or baseline audio profiles may be used by the receiving device <NUM> to cancel the ambient white noise of such appliances.

The above description of the environment <NUM>, the media content listening area <NUM>, and the various devices therein, is intended as a broad, non-limiting overview of an example environment in which various embodiments of noise cancelation in a listening area may be implemented. <FIG> illustrates just one example of an environment <NUM> and the various embodiments discussed herein are not limited to such environments. In particular, environment <NUM> and the various devices therein, may contain other devices, systems and/or media not specifically described herein. The environment <NUM> may include many different audio sample analysis servers, content providers, program distributors and information providers that operate in a corresponding manner as the audio sample analysis server <NUM>, the content provider <NUM>, program distributor <NUM> and information provider <NUM> as described herein. Each of audio sample analysis server <NUM>, the content provider <NUM>, program distributor <NUM> and information provider <NUM> may represent one or more of such systems in various embodiments.

Example embodiments described herein provide applications, tools, data structures and other support to implement updating of television receiving devices. Other embodiments of the described techniques may be used for other purposes, including noise cancelation in a listening area not only during initial installation, but during subsequent service calls to the media content listening area <NUM>. Also, such noise cancelation may be performed by various other devices, such as audio and DVD players, digital recorders, computers, peripherals, televisions, mobile devices, active speakers, headphones, telephones, and other electronic devices, etc. In the following description, numerous specific details are set forth, such as data formats, program sequences, processes, and the like, in order to provide a thorough understanding of the described techniques. The embodiments described also can be practiced without some of the specific details described herein, or with other specific details, such as changes with respect to the ordering of the code flow, different code flows, and the like. Thus, the scope of the techniques and/or functions described are not limited by the particular order, selection, or decomposition of steps described with reference to any particular module, component, or routine.

<FIG> is a block diagram illustrating elements of an example handheld mobile device <NUM> used in systems and methods for noise cancelation in a listening area, according to an example embodiment.

Some or all of the components, modules and functionality of the mobile device <NUM> described herein may also or instead be included as part of, and/or be performed by, the remote control <NUM>. For example, the components and functionality of the mobile device <NUM> associated with the collection and analysis of audio samples for noise cancelation may be included as part of and/or be performed by the remote control <NUM>. The mobile device <NUM> may be a wireless handheld mobile device of a user (e.g., a television service provider technician or customer), such as a smartphone, tablet device or other mobile computing or communications device. In one embodiment, mobile device <NUM> comprises a computer memory ("memory") <NUM> and one or more Central Processing Units ("CPU") <NUM>. Also included are input/output "I/O" controls <NUM>, including, but not limited to: buttons, virtual buttons, switches, keypads, keyboards, touchpads, touchscreens, display screens, liquid crystal displays, speakers, scroll wheel inputs, optical sensors, gesture sensors, accelerometers, motion control sensors, voice command sensors, microphones, trackballs and/or joysticks, etc. Microphone <NUM> may be a part of the I/O controls <NUM>, or a separate microphone that collects a baseline white noise profile of a user's media content listening area, such as the user's family room, living room or other TV viewing space. This baseline white noise profile may be used by the receiving device <NUM> to generate the corresponding noise canceling audio signal to create a noise-canceling effect and a more immersive, better listening experience for the user. The mobile device <NUM> may also include other computer-readable media <NUM> (e.g., flash memory, SIM card) and network connections <NUM>. The I/O controls <NUM> may include various different numbers and configurations of controls in various embodiments, including those with touch screen buttons and other input controls.

The network connections <NUM> include one or more communication interfaces to the receiving device <NUM>, various other mobile devices, computing devices and media devices, including but not limited to, radio frequency (RF) transceivers, cellular communication interfaces and antennas, USB interfaces, ports and connections (e.g., USB Type-A, USB Type-B, USB Type-C (or USB-C), USB mini A, USB mini B, USB micro A, USB micro C), other RF transceivers (e.g., infrared transceivers, Zigbee® network connection interfaces based on the IEEE <NUM>. <NUM> specification, Z-Wave® connection interfaces, wireless Ethernet ("Wi-Fi") interfaces, short range wireless (e.g., Bluetooth®) interfaces and the like. The one or more Central Processing Units ("CPU") <NUM> may be communicatively coupled to the memory <NUM>, the microphone <NUM> and the I/O controls <NUM>, other computer-readable media <NUM> and network connections <NUM>, (e.g., via a communications bus) in a manner to control one or more operations of those various components.

The mobile device <NUM> may communicate with receiving device <NUM> (directly or via communication system <NUM>), the audio sample analysis server <NUM>, content provider <NUM>, program distributor <NUM>, and/or information provider <NUM>, and possibly other devices (not shown). Mobile device logic <NUM>, device information <NUM>, audio analysis module <NUM> and audio data samples <NUM> are shown residing in memory <NUM>. In other embodiments, some portion of the device information <NUM> and some of, or all of, the components of the logic <NUM>, audio analysis module <NUM> and audio data samples <NUM> may be stored on the other computer-readable media <NUM>. For example, the audio data samples collected by the mobile device <NUM> may be stored on memory <NUM> and/or other computer-readable media <NUM>. The logic <NUM> and audio analysis module <NUM> preferably execute on one or more CPUs <NUM> and manage operation of the mobile device <NUM> to perform the techniques described herein. The logic <NUM> may comprise or implement a system control module as executed by one or more CPUs <NUM> that are communicatively coupled to the I/O controls <NUM>, microphone <NUM> and other components of the mobile device <NUM>. Other code or programs and potentially other data/information (not shown), may also reside in the memory <NUM>, and may execute on one or more CPUs <NUM>. Of note, one or more of the components in <FIG> may not be present in any specific implementation. For example, some embodiments may not provide other computer readable media <NUM>.

The logic <NUM> and audio analysis module <NUM> perform the core functions of the mobile device <NUM>, as discussed herein and also with respect to <FIG>. In particular, the logic <NUM> reads input that results from activation of I/O controls <NUM> on the mobile device <NUM> by the user and performs the function corresponding to the input, including communicating with the receiving device <NUM>, sending commands to various devices and performing internal operations of the mobile device <NUM>. For example, the logic <NUM> and audio analysis module <NUM>, when executed on one or more CPUs <NUM>, may perform or cause the following to be performed: activate the microphone <NUM> to initiate collection of a plurality of audio data samples as samples of audio present in a media content listening area within a building, each audio data sample of the plurality of audio data samples representing a different baseline profile of ambient white noise associated with the media content listening area within the building; receive, from the microphone <NUM>, a sample of audio present in the media content listening area within the building while programming including media content for presentation to a listener of the media content in the media content listening area within the building is being output by a media player, such as receiving device <NUM>; and remove from the received sample of audio, audio data associated with the programming being output to enable selection of an audio data sample from the plurality of audio data samples, based on comparison of the received sample of audio to the plurality of audio data samples, to use to cancel ambient white noise for the listener of the media content in the media content listening area within the building.

The logic <NUM> and audio analysis module <NUM> may also cause the mobile device <NUM> to store the plurality of audio data samples <NUM> and perform the selection of the audio data sample from the plurality of audio data samples <NUM> based on comparison of the received sample of audio to the plurality of audio data samples <NUM>. The mobile device <NUM> may also communicate the selected audio data sample from the plurality of audio data samples <NUM> from the mobile device <NUM> to a media player device, such as the receiving device <NUM> to enable the media player device to play the selected audio data sample to cancel ambient white noise for the listener of the media content in the media content listening area while the programming is being output by the media player. In one embodiment, for each audio data sample, the audio analysis module <NUM> may compare one or more of: a time of day, a day of week, a week of month, a time of month, a week of year, a time of year and a day of year associated with the received sample of audio to a corresponding timeframe of when the audio data sample was collected to determine common characteristics between the received sample of audio and the baseline profile of the ambient white noise associated with the media content listening area represented by the audio data sample. The audio analysis module <NUM> may then select the audio data sample of the plurality of received audio data samples to cancel ambient white noise for the listener of the media content in the media content listening area based on the comparison and determined common characteristics.

In some examples, the selection of the audio data sample from the plurality of audio data samples may instead or also be performed by a logic and audio analysis module of the receiving device <NUM>. For example, the mobile device <NUM> may communicate the plurality of audio data samples to a media player device, such as receiving device <NUM>, and also communicate the sample of audio present in the media content listening area to enable the media player device to perform the comparison and the selection of the audio data sample from the plurality of audio data samples, based on comparison, for the media player device to cancel ambient white noise for the listener of the media content in the media content listening area.

In an example not forming part of the invention, the mobile device <NUM> and/or receiving device <NUM> may: receive, from a microphone, such as microphone <NUM>, a sample of audio present in a media content listening area within a building while programming including media content for presentation to a listener of the media content in the media content listening area within the building is being output by a media player. For each audio data sample of a plurality of audio data samples, the mobile device <NUM> and/or receiving device <NUM> may compare the received sample of audio to a baseline profile of ambient white noise associated with the media content listening area within the building represented by the audio data sample, to determine common characteristics between the received sample of audio and the baseline profile of the ambient white noise associated with the media content listening area within the building represented by the audio data sample. The mobile device <NUM> and/or receiving device <NUM> may then select an audio data sample of the plurality of received audio data samples to cancel ambient white noise for a listener of the media content in the media content listening area within the building based on the comparison and determined common characteristics.

In an example not forming part of the invention, a plurality of audio data samples each representing a different baseline profile of ambient white noise associated with the media content listening area may be generated by the mobile device <NUM> and/or receiving device <NUM> for different devices, such as home appliances, that are not on all the time, and thus are not generating noise all the time. The user selects which audio data sample to use when playing an event. In a comparative example the user may allow the mobile device <NUM> and/or receiving device <NUM> to check (i.e., automatically poll) the audio in the room or corresponding listening area at random or periodic intervals (e.g., in some cases, upon user approval) to automatically select the audio data sample with the baseline profile that is the closest match to the sample received from the automatic polling of the listening area. For example, if the mobile device <NUM> and/or receiving device <NUM> is set to automatically poll the listening area, the microphone <NUM> may take an audio sample, and the audio analysis module <NUM> then removes the known audio of the programming that the receiving device <NUM> is outputting at that time and then checks the remaining audio signal against the known baseline profiles of ambient white noise the mobile device <NUM> and/or receiving device <NUM> has for the listening area associated with the previously collected plurality of audio data samples. The receiving device <NUM> may then switch to using the previously collected audio data sample having the closest matching baseline profile of ambient white noise to cancel out most or all of the other sounds. In an example, the audio analysis module <NUM> determines a closest match between the sample of audio present in the media content listening area and the plurality of audio data samples each representing a different baseline profile of ambient white noise associated with the media content listening area.

The mobile device <NUM> and/or receiving device <NUM> may then select the determined closest match as the selected audio data sample of the plurality of received audio data samples to cancel ambient white noise for the listener of the media content in the media content listening area within the building. Such analysis may instead or also be performed by the audio sample analysis server <NUM> and communicated in real time to the mobile device <NUM> and/or receiving device <NUM>.

In at least some embodiments, remote and/or programmatic access is provided to at least some of the functionality of the mobile device <NUM> and/or receiving device <NUM>. For example, the mobile device <NUM> and/or receiving device <NUM> may provide to other devices an application program interface ("API") that provides access to various functions of the mobile device <NUM> and/or receiving device <NUM>, including access to information stored by the mobile device <NUM> and/or receiving device <NUM> (e.g., about other media devices) and different baseline profiles of ambient white noise associated with one or more media content listening areas or appliances. In this manner, the API may facilitate the development of third-party software, such as user interfaces, plug-ins, adapters and the like, such as for integrating functions of the mobile device <NUM> and/or receiving device <NUM> into various user interface applications on media devices and various desktop or mobile device applications. A particular mobile device application presents a graphical display showing an indication of available audio data samples to select to cancel ambient white noise for the listener of the media content in the media content listening area. Also, a particular mobile device application may present a graphical display showing an indication of which audio data sample has been selected and/or is currently being used to cancel ambient white noise for the listener of the media content in the media content listening area. In some embodiments, a particular mobile device application may present a customized or different user interface based upon the functionality and capabilities of the mobile device <NUM> and/or the receiving device <NUM>.

In an example embodiment, the logic <NUM> and audio analysis module <NUM> are implemented using standard programming techniques. For example, the logic <NUM> and audio analysis module <NUM> may be implemented as a "native" executable running on the CPU <NUM>, along with one or more static or dynamic libraries. In other embodiments, the logic <NUM> and audio analysis module <NUM> may be implemented as instructions processed by a virtual machine that executes as some other program. In general, a range of programming languages known in the art may be employed for implementing such example embodiments, including representative implementations of various programming language paradigms and platforms, including but not limited to, object-oriented (e.g., Java, C++, C#, Visual Basic. NET, Smalltalk, and the like), functional (e.g., ML, Lisp, Scheme, and the like), procedural (e.g., C, Pascal, Ada, Modula, and the like), scripting (e.g., Perl, Ruby, PHP, Python, JavaScript, VBScript, and the like) and declarative (e.g., SQL, Prolog, and the like).

The embodiments described above may also use well-known or synchronous or asynchronous client-server computing techniques. However, the various components may be implemented using more monolithic programming techniques as well, for example, as an executable running on a single CPU computer system, or alternatively decomposed using a variety of structuring techniques known in the art, including but not limited to, multiprogramming, multithreading, client-server, or peer-to-peer, running on one or more computer systems each having one or more CPUs. Some embodiments may execute concurrently and asynchronously, and communicate using message passing techniques. Equivalent synchronous embodiments are also supported. Also, other functions could be implemented and/or performed by each component/module, and in different orders, and by different components/modules, yet still achieve the functions of the mobile device <NUM>.

In addition, programming interfaces to the data stored as part of the device information <NUM>, can be available by standard mechanisms such as through C, C++, C#, and Java APIs; libraries for accessing files, databases, or other data repositories; through scripting languages such as JavaScript and VBScript; or through Web servers, FTP servers, or other types of servers providing access to stored data. The device information <NUM> and audio data samples <NUM> (which may include collected audio data, mobile device information, data representing receiving device software and/or firmware updates and receiving device information) may be implemented as one or more database systems, file systems, or any other technique for storing such information, or any combination of the above, including, in some embodiments, implementations using distributed computing techniques.

Different configurations and locations of programs and data are contemplated for use with techniques described herein. A variety of distributed computing techniques are appropriate for implementing the components of the embodiments in a distributed manner including but not limited to TCP/IP sockets, RPC, RMI, HTTP, Web Services (XML-RPC, JAX-RPC, SOAP, and the like). Other variations are possible. Also, other functionality could be provided by each component/module, or existing functionality could be distributed amongst the components/modules in different ways, yet still achieve the functions of the mobile device <NUM>.

Furthermore, in some embodiments, some or all of the components/portions of the logic <NUM> and audio analysis module <NUM> may be implemented or provided in other manners, such as at least partially in firmware and/or hardware, including, but not limited to one or more application-specific integrated circuits ("ASICs"), standard integrated circuits, controllers (e.g., by executing appropriate instructions, and including microcontrollers and/or embedded controllers), field-programmable gate arrays ("FPGAs"), complex programmable logic devices ("CPLDs"), and the like. Some or all of the system components and/or data structures may also be stored as contents (e.g., as executable or other machine-readable software instructions or structured data) on a computer-readable medium (e.g., as a hard disk; a memory; a computer network or cellular wireless network; or a portable media article to be read by an appropriate drive or via an appropriate connection, such as a DVD or flash memory device) so as to enable or configure the computer-readable medium and/or one or more associated computing systems or devices to execute or otherwise use or provide the contents to perform at least some of the described techniques. Such computer program products may also take other forms in other embodiments. Accordingly, embodiments of this disclosure may be practiced with other computer system configurations.

Some or all of the components, modules and functionality of the mobile device <NUM> described herein may also or instead be included as part of, and/or be performed by, the receiving device <NUM>. For example, the components and functionality of the mobile device <NUM> associated with the collection and analysis of audio samples for noise cancelation may be included as part of and/or be performed by the receiving device <NUM>. In one embodiment, the receiving device <NUM> may include one or more CPUs coupled to one or more memory devices that store computer executable instructions that, when executed by the one or more CPUs that cause the receiving device <NUM> to perform the techniques described herein. In the invention, the computer executable instructions, when executed by one or more CPUs cause the computing device to perform the operations of claims <NUM>-<NUM>.

<FIG> is a diagram of an example handheld mobile device <NUM> illustrating an example user interface screen <NUM> shown in an example process for noise cancelation, according to an example embodiment.

A mobile device application of mobile device <NUM> may present a graphical display on user interface screen <NUM> showing an indication of available audio data samples <NUM> from which to select to cancel ambient white noise for the listener of the media content in the media content listening area. Also shown is a prompt <NUM> to prompt the user to select an available audio data samples from the indication of available audio data samples <NUM>. Each of the available audio data samples <NUM> may be associated with a different baseline profile of ambient white noise associated with a particular media content listening area, a particular appliance, and/or a particular time of day. The particular media content listening area, particular appliance(s), the particular time of day, and/or other descriptive or identifiable characteristics may be automatically associated with the collected audio sample by the mobile device <NUM> based on location data (e.g., global positioning system (GPS) and/or triangulated location information) and clock and calendar data of the mobile device <NUM>, or the user may tag the audio sample with such metadata. In the example shown in <FIG>, available audio data samples <NUM> are labeled according to which baseline profile of ambient white noise it is associated. In particular, the example available audio data samples <NUM> shown in <FIG> include "<NUM>. Typical Evening in Family Room", "<NUM>. Typical Morning in Family Room", "<NUM>. Dishwasher Running", "<NUM>. Washing Machine Running", and "<NUM>. Kitchen Ambient Noise". The user selects which audio data sample to use to cancel ambient white noise according to which listening area the user is in (e.g., kitchen, family room, etc.) and time of day (e.g., evening, morning, etc.).

<FIG> is a diagram of the example handheld mobile device <NUM> of <FIG> illustrating another example user interface screen <NUM> shown in an example process for noise cancelation, according to an example embodiment.

As shown in <FIG>, the application of the mobile device <NUM> presents a graphical display showing an indication of which audio data sample has been selected and/or is currently being used to cancel ambient white noise for the listener of the media content in the media content listening area. In the example, shown on the user interface screen <NUM> is an indication <NUM> that the "Dishwasher Running" profile has been activated. This activation may have been caused by user selection of the "Dishwasher Running" audio data sample associated with a baseline profile of ambient white noise of the dishwasher (e.g., because the dishwasher was running when the user wanted to listen to the programming) or by automatic selection of an audio data sample of the plurality of received audio data samples to cancel ambient white noise for the listener of the media content based on the comparison of previously collected audio samples and determined common characteristics. For example, the mobile device <NUM> may have collected an audio sample while the dishwasher was running, which was thus labeled "Dishwasher Running" by the user or the mobile device <NUM>. The mobile device <NUM> may have then polled a listening area, using microphone <NUM>, which is exposed to audio of the dishwasher at a later time while the dishwasher was running and then automatically determined to select the "Dishwasher Running" audio data sample of the plurality of received audio data samples in order to cancel ambient white noise of the dishwasher in the media content listening area.

<FIG> is a flow diagram of an example method <NUM> for noise cancelation, according to an example embodiment.

At <NUM>, the system receives a plurality of audio data samples each representing a different baseline profile of ambient white noise associated with a media content listening area within a building. The system may include one or more devices shown in the environment <NUM> of <FIG>, operating individually or together, that may perform the functionality of the techniques of noise cancelation described herein.

At <NUM>, the system, after receiving the plurality of audio data samples each representing a different baseline profile of ambient white noise, outputs programming including media content for presentation to a listener of the media content in the media content listening area within the building.

At <NUM>, the system, outputs, while outputting the programming, an audio signal based on a selected audio data sample of the plurality of received audio data samples to cancel ambient white noise for the listener of the media content in the media content listening area within the building.

<FIG> is a flow diagram of an example method <NUM> for removing audio from a received sample useful in noise cancelation, according to an example not forming part of the invention.

At <NUM>, the system activates a microphone to initiate collection of a plurality of audio data samples as samples of audio present in a media content listening area within a building, each audio data sample of the plurality of audio data samples representing a different baseline profile of ambient white noise associated with the media content listening area within the building.

At <NUM>, the system receives, from the microphone, a sample of audio present in the media content listening area within the building while programming including media content for presentation to a listener of the media content in the media content listening area within the building is being output by a media player.

At <NUM>, the system removes from the received sample of audio, audio data associated with the programming being output to enable selection of an audio data sample from the plurality of audio data samples, based on comparison of the received sample of audio to the plurality of audio data samples, to use to cancel ambient white noise for the listener of the media content in the media content listening area within the building.

<FIG> is a flow diagram of an example method <NUM> for selecting an audio data sample useful in noise cancelation, according to an example not forming part of the invention.

At <NUM>, the system receives, from a microphone, a sample of audio present in a media content listening area within a building while programming including media content for presentation to a listener of the media content in the media content listening area within the building is being output by a media player.

At <NUM>, the system, for each audio data sample of a plurality of audio data samples, compares the received sample of audio to a baseline profile of ambient white noise associated with the media content listening area within the building represented by the audio data sample, to determine common characteristics between the received sample of audio and the baseline profile of the ambient white noise associated with the media content listening area within the building represented by the audio data sample.

Claim 1:
A method (<NUM>) for noise cancelation, comprising:
receiving (<NUM>), by at least one computer processor, a plurality of audio data samples each representing a different baseline profile of ambient white noise associated with a media content listening area within a building;
after receiving the plurality of audio data samples each representing a different baseline profile of ambient white noise, outputting (<NUM>), by the at least one computer processor, programming including media content for presentation to a listener of the media content in the media content listening area within the building;
selecting, by the at least one computer processor, a selected audio data sample of the plurality of received audio data samples to cancel ambient white noise for the listener of the media content in the media content listening area within the building;
outputting (<NUM>), by the at least one computer processor, while outputting the programming, an audio signal based on the selected audio data sample of the plurality of received audio data samples ;
the selecting the selected audio data sample of the plurality of received audio data samples to cancel ambient white noise for the listener of the media content in the media content listening area within the building includes:
generating, by the at least one computer processor, a menu of the plurality of received audio data samples from which the listener may select to cancel ambient white noise for the listener of the media content in the media content listening area within the building;
receiving, by the at least one computer processor, input indicative of a selection by the listener of a selected audio data sample from the menu of the plurality of received audio data samples;
in response to receiving the input indicate of the selection, selecting the selected audio data sample from the menu of the plurality of received audio data samples as the selected audio data sample of the plurality of received audio data samples to cancel ambient white noise for the listener of the media content in the media content listening area within the building;
each one of the plurality of audio data samples comprises a sample of ambient white noise at a different combination of a room within the building and a time of day; and
the menu of the plurality of audio data samples identifies each one of the plurality of audio data samples by the respective combination of the room within the building and the time of day.