WO2016025200A1 - A user-friendly, network connected learning headphone and related systems and method - Google Patents

A user-friendly, network connected learning headphone and related systems and method Download PDF

Info

Publication number
WO2016025200A1
WO2016025200A1 PCT/US2015/043349 US2015043349W WO2016025200A1 WO 2016025200 A1 WO2016025200 A1 WO 2016025200A1 US 2015043349 W US2015043349 W US 2015043349W WO 2016025200 A1 WO2016025200 A1 WO 2016025200A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
information
units
music
computer
Prior art date
Application number
PCT/US2015/043349
Other languages
French (fr)
Inventor
Xiaodong Mao
Xianghui MAO
Original Assignee
Aivvy Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Aivvy Inc. filed Critical Aivvy Inc.
Publication of WO2016025200A1 publication Critical patent/WO2016025200A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Definitions

  • Embodiments of the disclosure relate generally to the field of offline caching of content accessed from a remote source over a network. Embodiments relate more particularly to caching units selectively downloaded from a remote information repository.
  • content includes information and experiences that may provide value for an end user in a variety of contexts.
  • the content (for instance, audio files of songs ort other music selections) may be delivered via multiple media such as the internet, television, and audio CDs, as well as live events such as conferences and stage performances.
  • the term media file refers to a file in which content is obtained.
  • An example of a computer-implemented system for caching units of information that is downloaded from a remoter information repository for availability to a user includes a user device for allowing a user to access the cached units of information from a remote information repository.
  • the user device has a memory cache for storing the cached units of information, and having a user reaction input for receiving indicia of favorable user reaction to the cached units of information.
  • the computer-implemented system includes an information selector, for selecting units of information for downloading from the remote information repository and caching.
  • the computer-implemented system includes an interface to the remote information repository for downloading units of information from the remote repository.
  • the interface is operable during intermittent periods of network connection, for interfacing to the remote information repository to download and cache the selected units of information.
  • the downloading may take place at a time period during which the user is not using the user interface device to access the cached units of information.
  • An example of a computer-implemented method for caching units of information that is downloaded from a remoter information repository for availability to a user includes capturing a user' s real-time feedbacks in a memory cache of a user device while the user listens to music when the user device is in an offline mode. Further, the computer-implemented method includes uploading the captured real-time feedbacks to a remote information repository whenever the user device connects to the Internet. Furthermore, the computer-implemented method includes performing machine learning to identify the user's music preference as units of information, based on the most recently captured user feedbacks on the remote information repository, wherein the user's music preference are music tracks and playlists.
  • the computer-implemented method includes the remote information repository identifying musical selections which the user is expected to like, wherein the identifying includes evaluating the units of information at one of a track level, an artist level and an album level. Moreover, the computer-implemented method includes downloading and caching the identified selections to the memory cache to replace the memory cache with the units of information and playing music from the updated cache, thereby providing an efficient music streaming experience to the user.
  • An example of a computer program product for caching units of information that is downloaded from a remoter information repository for availability to a user includes capturing a user' s real-time feedbacks in a memory cache of a user device while the user listens to music when the user device is in an offline mode. Further, the computer program product includes uploading the captured real-time feedbacks to a remote information repository whenever the user device connects to the Internet. Furthermore, the computer program product includes performing machine learning to identify the user's music preference as units of information, based on the real-time feedbacks on the remote information repository, wherein the user's music preference are music tracks and playlists.
  • the computer program product includes the remote information repository identifying musical selections which the user is expected to like, wherein the identifying includes evaluating the units of information at one of a track level, an artist level and an album level. Moreover, the computer program product includes downloading and caching the identified selections to the memory cache to replace the memory cache with the units of information and playing music from the updated cache, thereby providing an efficient music streaming experience to the user.
  • FIG. 1 is a block diagram of the general connectivity between a remote information repository and a user device, according to the embodiments as disclosed herein;
  • FIG. 2 is a block diagram depicting the modules in a user device/headphone, according to the embodiments as disclosed herein;
  • FIG. 3 depicts the flow diagram for allowing a user to access the cached units of information, according to the embodiments as disclosed herein;
  • FIG. 4 depicts the components of the music player of the user device, according to the embodiments as disclosed herein;
  • FIG. 5 is a schematic representation illustrating an environment for optimal music caching, according to the embodiments as disclosed herein;
  • FIG. 6 is a block diagram illustrating an exemplary Smart Phone application, according to the embodiments as disclosed herein;
  • FIG. 7 is a block diagram illustrating the system in an exemplary Wireless Headphone application and automobile application, according to the embodiments as disclosed herein;
  • FIG. 8 is a flow chart an overall method flow, according to the embodiments as disclosed herein.
  • FIG. 9 is a block diagram of a machine in the example form of a computer system 900 within which instructions for causing the machine to perform any one or more of the methodologies discussed herein may be executed.
  • multimedia information or the like, with reference to content which is stored in a remote repository, and/or downloaded to a local device for caching. It is contemplated that multimedia content will be thusly handled in embodiments of the present subject matter, and that references to such multimedia in the present patent application are deemed to be good illustrative examples to enhance understanding of the present subject matter. Specific embodiments of the present subject matter, to be discussed herein, will focus on music tracks, audio content, etc., and on user devices which play music or other audio, to which the user listens. However, it should be understood that such illustrative examples are not to be considered limiting as to the spirit, scope, and content of the present subject matter. Rather, such references to "multimedia” etc. will be understood not to prelude, but rather to include by analogy, other examples of subject matter which would be understood by a person of ordinary skill in the relevant field to apply equivalently. Such other examples might include, for instance, audio, video and other forms of media.
  • media related content may be streamed from a media company' s content server to a user's device (e.g., computer, mobile device and so on).
  • a user's device e.g., computer, mobile device and so on.
  • the media is generally not cached even if buffering occurs and if the media is not consumed it is removed from the user's device.
  • the media file in order for the media file to be streamed from the user's device and the content server, it must generally maintain communication for the duration of the streaming of the media file. In cases, where the network connection between the two devices is lost for an extended period of time, the streaming will cease.
  • Listening to audio content via a streaming service is a convenient way to access millions of songs or audio related content on demand. This provides the flexibility to listen on the move and on a plurality of computers and mobile devices.
  • the major downside to listening music in this way is that it usually needs to be connected, continuously, to some sort of network for the music to be streamed (the internet or a 3G network for example) as mentioned earlier.
  • network access often is not uninterrupted. In any event, costs for maintaining continuous connection may be undesirably high.
  • a system and method for providing a user with access to content such as music audio files, from remote repositories which may, for instance reside on the cloud.
  • the system and method further allow the user to access content which the user is unaware of, but which probably will be liked by the user because of characteristics of the content which correlate with
  • An intelligent cache arrangement in which content from a remote repository such as the cloud, having essentially unlimited content (for instance, on the order of 100 million songs in audio files), is downloaded and cached in a local user device.
  • the user can enjoy virtually unlimited songs (as if the music player device is directly connected to Cloud music streaming service), without necessarily having a network connection at the time the user is actually listening. Effectively, the user enjoys the internet streaming music (unlimited songs) without needing a continuous Internet connection.
  • the system and method provide for local caching of content the user likes, or is expected to like.
  • explicit user feedback is employed such as user inputs indicating Liked/Disliked/Skip/Repeat, which are simple, intuitive and natural user inputs.
  • implicit user feedbacks such as timestamp & geolocation for when/where a user likes/dislikes the music, motion sensors which are interpreted as indications of whether the user likes/dislikes the music, etc.
  • Uninterrupted connectivity to the remote content repository is not required. Rather, downloading and caching takes place, for instance without direct user intervention, during intermittent periods of network conductivity.
  • Intelligent algorithms are provided for judging what content to be downloaded, based on the user's expressed preferences.
  • the remote repository in the Cloud builds up a User Preference Model. Therefore the system knows the user's personal music taste, so the system is able to make a good guess of what music the user will want to listen to, in the future.
  • the remote repository then chooses music tracks to pre-download to the local cache in the user's local device, based on correlation between the user preference model and the characteristics of the chosen music tracks.
  • FIG. 1 is a block diagram of the general connectivity between the remote information repository and user device, according to the embodiments as disclosed herein. As depicted in FIG. 1, the components include a Remote Information Repository 102 connected to a network 104, which in turn is connected to a user device such as a headphone 106.
  • Network link(s) involved in the system of the present invention may include any suitable number or arrangement of interconnected networks including both wired and wireless networks.
  • a wireless communication network link over which mobile devices communicate may utilize a cellular-based communication infrastructure.
  • the communication infrastructure includes cellular-based communication protocols such as AMPS, CDMA, TDMA, GSM (Global System for Mobile communications), iDEN, GPRS, EDGE (Enhanced Data rates for GSM Evolution), UMTS (Universal Mobile
  • network link may further include, or alternately include, a variety of communication channels and networks such as WLAN/Wi-Fi, WiMAX, Wide Area
  • the system of the present invention may be configured to operate in an online mode and an offline mode; wherein, when operating in the online mode, the system is communicatively coupled to the content server; and, when operating in the offline mode, the system is not communicatively coupled to the content server.
  • the operating system may be configured to receive from the content server, a media file and audio related content associated with the media file.
  • the non-volatile memory may be configured to play while the system is operating in the offline mode.
  • the user device 106 may download and cache one or more media files such as audio related content in the form of music files, talk books, audio recordings and so on.
  • the user device 106 may play the cached media files and their associated advertisements.
  • the user's interactions with the media file may be cached (choosing one more track in the album or enquiring for the release date of the next album, "Like” or “Dislike” or “Skip” or “Repeat” the playing track). "Like” and
  • “Dislike,” for instance, may in an embodiment be dedicated user interface buttons or the like. "Skip” and “Repeat” may alternatively be used to infer, rather than expressly denote, user preferences. Upon returning to the online mode, the user interactions may be processed. [0033]
  • the user device 106 is limited to be in the form of a headphone but can also be used to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smart phones, tablets and other similar computing devices.
  • songs, music items, and other audio items are discussed in connection with specific embodiments, it will be understood that other types of data items, including without limitation video, still images, text, graphical representations of information, or combinations thereof, fall within the spirit and scope of the present subject matter as it would be understood by a person of ordinary skill in the art.
  • the user device 106 includes a processor, memory, storage device, a high speed interface connecting to memory and high speed expansion ports and a low speed interface connecting to low speed bus and storage device. Each of the underlying components are interconnected using various busses and may be mounted on a common motherboard.
  • the processor can process instructions for execution within the user device 106, including instructions stored in the memory or on the Remote Information Repository 102 to display graphical information for a graphical user interface (GUI) on an external input/output device such as display coupled to high speed interface.
  • GUI graphical user interface
  • multiple processors and/or multiple buses may be used as appropriate along with multiple memories and types of memory.
  • the Remote Information Repository 102 stores information within the user electronic device 106.
  • the Remote Information Repository 102 includes a volatile memory unit or units.
  • the Remote Information Repository 102 includes a non-volatile memory unit or units.
  • the Remote Information Repository 102 may also be another form of computer readable medium such as a magnetic or optical disk.
  • the Remote Information Repository 102 is capable of providing mass storage for the user device 106.
  • a computer program product can be tangibly embodied in an
  • the computer program product may also contain instructions that when executed perform one or more methods such as those described above.
  • the information carrier is a computer or machine-readable medium such as the memory, the storage device or the processor.
  • FIG. 2 is a block diagram depicting the modules in a user device/headphone, such as the user device 106 of FIG. 1, according to the embodiments as disclosed herein.
  • FIG. 2 also illustrates elements, located in a remote system such as an apparatus in the cloud, which is coupled to the user device 106 such as by network 104 communication.
  • the user device 106 comprises modules such as a User Interface Module 202, an Information selector 206, a communication module 208, and a memory cache 210.
  • the User Interface Module 202 may be coupled to a display (for visual) or speaker (for audio), and may comprise appropriate circuitry to present graphical and other information to the user.
  • the User Interface Module 202 may receive commands from a user and get these commands converted from the processor.
  • an external interface may be provided in communication with the processor to provide, for example wired communication in some implementations or for wireless communications in other implementations and multiple interfaces may also be used.
  • the selected units of information may be downloaded at a time period during which the user is not using the User Interface Module 202 to access the cached units of information.
  • the User Device 106 may communicate wirelessly through the User Interface Module 202, and may provide communications under various modes or protocols.
  • short range communication may occur, such as using a Bluetooth, WiFi, or other such transceiver.
  • the remote repository 102 includes, or is coupled locally to, a module for running a User Preference Model, based on user feedback, to identify stored music tracks that the user may like.
  • the User Preference model 204 helps generate an assorted collection of the user's preferred collection of music playlists, audio tapes, audio books and other related audio content which may be downloaded to the User Device 106.
  • the User Preference model 204 is configured to execute autonomous and intelligent management of audio content independent of a streaming network connection or an external device.
  • the User Preference model 204 utilizes Bayesian statistic modeling to understand what the user prefers to listen to, and makes an informed guess of what track or playlist should be downloaded and queued into the local cache. For example, if the user device 106 is aware that (by using GPS and other location related information) that the user listens to heavy metal tracks in the morning while commuting to work, it may suggest to the user that tracks of the band Metallica to be played on a Wednesday morning. By using a combination of ambient, location and learned pattern behavior which is anonymously stored and processed in a proprietary back-end cloud service, the User Preference model 204 is capable of continuously learning and providing the best media content recommendation possible.
  • the User preference model 204 is primarily configured for determining user preference units of information based on explicit user feedbacks (such as "Liked/Disliked/Skip/Repeat", or indicia of favorable user reaction received by the user reaction input.
  • the favorable user reaction includes both explicit user feedbacks ("Liked/Disliked/Skip/Repeat”" and implicit physical cues such as detection of nodding gesture, physical motion, EEG and other facial expressions to gather user feedback.
  • the User device 106 is configured to operate fully
  • the User device 106 comprises of intuitive controls.
  • the User preference model 204 located on the remote repository 102 comprises a learning algorithm that customizes audio recommendations based on the user's pre-defined habits including the use of headphones in physical space.
  • the information selector 206 is used to select one or more units of information for downloading from the Remote information repository 102 and then caching based on similarity between the units of the information to be selected.
  • the Communication Module 208 is responsible for handling communication between ports, and also for acting as a network interface between a built-in communication port on the processor and a network communication link with a predetermined protocol.
  • storage includes mass storage for data or instructions.
  • storage may include an HDD, a floppy disk drive, flash memory, an optical disc, a magneto-optical disc, magnetic tape, or a Universal Serial Bus (USB) drive or a combination of two or more of these.
  • Storage may include removable or non-removable (or fixed) media, where appropriate. Storage may be internal or external to a computer system, where appropriate.
  • storage is non-volatile, solid-state memory.
  • storage includes read-only memory (ROM). Where appropriate, this ROM may be mask-programmed ROM, programmable ROM
  • I/O interface includes hardware, software, or both providing one and more interfaces for communication between system and one or more I/O devices.
  • System may include one or more of these I/O devices, where appropriate.
  • One or more of these I/O devices may enable communication between a person and computer system.
  • an I/O device may include a keyboard, microphone, display, touch screen, mouse, speaker, camera, another suitable I/O device or a combination of two or more of these.
  • An I/O device may include one or more sensors. This disclosure contemplates any suitable I/O devices and any suitable I/O interfaces for them.
  • I/O interface may include one or more device or software drivers enabling processor to drive one or more of these I/O devices.
  • I/O interface may include one or more I/O interfaces, where appropriate. Although this disclosure describes and illustrates a particular I/O interface, this disclosure contemplates any suitable I/O interface.
  • communication interface includes hardware, software, or both providing one or more interfaces for communication (such as, for example, packet- based communication) between computer system and one or more other computer systems or one or more networks.
  • This disclosure contemplates any suitable network and any suitable communication interface for it.
  • system may communicate with an ad hoc network, a personal area network (PAN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), or one or more portions of the Internet or a combination of two or more of these.
  • PAN personal area network
  • LAN local area network
  • WAN wide area network
  • MAN metropolitan area network
  • One or more portions of one or more of these networks may be wired or wireless.
  • System may communicate with a wireless PAN (WPAN) (e.g., a BLUETOOTH WPAN), a WI-FI network (e.g., a 802.11a/b/g/n WI-FI network), a WI-MAX network, a cellular telephone network (e.g., a Global System for Mobile Communications (GSM) network, a Long Term Evolution (LTE) network), or other suitable wireless network or a combination of two or more of these.
  • WPAN wireless PAN
  • WI-FI network e.g., a 802.11a/b/g/n WI-FI network
  • WI-MAX e.g., a cellular telephone network
  • GSM Global System for Mobile Communications
  • LTE Long Term Evolution
  • the client-side functionality described above can be implemented as a series of instructions stored on a computer-readable storage medium that, when executed, because a programmable processor to implement the operations described above.
  • FIG. 3 depicts the flow diagram for allowing a user to access the cached units of information, according to the embodiments as disclosed herein.
  • the user device 106 selects units of information in the form of audio related content for downloading from the remote information repository 102.
  • the user does not have a pre-existing account, the user will probably prefer to create playlists, preferences and so on from within that streaming service.
  • the user can also create an account and register using his log in credentials.
  • the user account can be one of paid or free subscription to listen to music playlists offered by the user device 106. For example, if it is a free user account, the playlist service may offer up to 300 tracks for playback. If it is a paid user account, the playlist service may offer an unlimited amount of songs or tracks to be played.
  • the user downloads one or more units of information from the remote information repository 102.
  • the user may specify that he would like to download the media file such that the media file may be played when the user device 106 is in an offline mode, and not connected to a content server.
  • the application may be configured to determine, based upon the filetype or other indicator (e.g., Multipurpose Internet Mail Extensions (MIME) type, etc.) of the media file whether the media file is being streamed, downloaded as a "purchase", or downloaded as a cacheable file.
  • MIME Multipurpose Internet Mail Extensions
  • the media file may also be cached within the Remote Information Repository 102. In various embodiments, these files may be cached in an encrypted or decrypted state.
  • the user may place the user device 106 in an offline mode in which the system of the present invention is no longer commutatively coupled with a content server. The user may then wish to watch or consume the media file previously cached for offline access. The user may select the media file that the user wishes to play.
  • the application may include a file system browser or media browser that allows the user to select one media file from a plurality of cached media files.
  • this media browser may organize the media files by provider (e.g., Amazon, Netflix, ABC, Paramount, etc.), genre, date, media type (e.g., movie, TV show, audiobook, etc.), etc., although it is understood that the above are merely a few illustrative examples to which the disclosed subject matter is not limited.
  • provider e.g., Amazon, Netflix, ABC, Paramount, etc.
  • genre e.g., a song, TV show, audiobook, etc.
  • media type e.g., movie, TV show, audiobook, etc.
  • the user device 106 may be configured to confirm with the content server that the user continues to have the rights for accessing and caching the media file. For example, a user may have discontinued their service with the content provider and therefore no longer have the right to media files provided by the content provider and their content server.
  • the user device 106 may be configured to delete or purge the media file and its associated advertisements and metadata file.
  • the user device 106 allows the user to access the cached units of information.
  • Units of information are downloaded from a remote information repository and cached, according to the embodiments as disclosed herein.
  • a user's real-time feedbacks are captured in a memory cache of an audio client.
  • the audio client is in an offline mode (disconnected state with Internet) as the user listens to music tracks.
  • the real-time feedbacks are categorized as explicit feedbacks and implicit feedbacks.
  • the explicit feedbacks can be defined as operations performed by the user on the audio client through an application defined to control and command a current music track, for example user input events such as pressing button, swipe touch screen / touchpad, using voice input and natural finger/ hand/ body gesture input. Actions such as Like, Dislike, Skip and repeat actions can be performed on the music tracks.
  • the implicit feedbacks are captured automatically by the audio client, for example when and where the user likes or dislikes the music track, has the user queried an artist, user's heartbeat rate and head/ body motions while listening to the music track.
  • Various types of sensory information are used to obtain the implicit feedbacks. For example, timestamps indicates when the track was played, geo- locations helps to identify music to location preferences and wearable body sensors, such as ECG, GSC, Temperature, motion sensors and a variety of biometric sensors to detect various body conditions: a) Heart beat: associates heart beat with music tracks. For example, a user may prefer listening to fast pacing music tracks during jogging.
  • Machine learning is performed in the cloud, to identify the user's music preference on music tracks and playlists.
  • the cloud takes the captured real-time feedbacks as inputs to perform machine learning to determine user's music preference.
  • the cloud identifies the user's music preference at various levels such as track level, artist level and album level. For example, a track name (song title) "My heart will go on”, an artist name “Celine Dion”, an album name “Let's talk about Love” and a combination of track level, artist level and album level “Celine Dion, Let's talk about love, My heart will go on”. Music preference can additionally be determined based on music theoretical considerations such as tempo, prevailing rhythm, instrumentation, key, harmonization, etc. Based on factors such as these, the cloud identifies, from its music library, other selections which, based on correlation with the above-listed levels and considerations, the user might also like.
  • one selection at a time is replaced in the cache.
  • selections may receive multiple incremental indicia of dislike, whereby it may be determined that there is, in the cache, one selection which the user dislikes the most.
  • a downloaded selection replaces that most-disliked selection.
  • T m* T m + T h + E
  • T m Time to take a main memory access when there is a miss
  • T h the latency: the time to reference the cache when there is a hit
  • E various secondary effects, such as queuing effects
  • T m> T h and E are known parameters and m is varied. Consequently, the average memory reference time of T is proportional to the cache miss ratio of m: T ⁇ m [0061]
  • the "Hit ratio" of the cache is counted to describe how often a searched-for is normally found in the cache.
  • "Cache miss” is defined as playing tracks that does not have any user input “Liked” feedback to be associated with.
  • the cache miss includes subset of tracks that the user dislikes which is associated with user input “Disliked” feedback.
  • the miss ration "m" of a cache describes how often a non- searched-for is normally found in the cache.
  • the "liked" feedback needs to be maximized and the "disliked” feedback needs to be minimized as defined below:
  • the Hit ratio can be achieved by replacing the cache with "Liked/Disliked" events of the user device 102.
  • Cost function "C” can be defined as shown below:
  • M this is defined as user input "Disliked” feedback.
  • an a posteriori expression such as P(Ti/M) can be understood to mean, in language, "the probability of Ti (playing track Ti), given that M (user dislike) is true.”
  • P(M/Ti) the probability of M (user dislike) given that Ti (playing track Ti) is true.
  • Bayem's Theorem shows that the posterior probabilities are proportional to the prior P(T;) and further likelihood function LH(i) is defined as:
  • conditional probability P(H / Ti) is maximized to the observed posteriori. Alternatively, the best matched track with the highest probability is found to expect user input "Liked” event.
  • conditional probability of P(M/Tj) is maximized to the observed posteriori. Alternatively, the best matched track with the highest probability is found to expect user input "Disliked” event.
  • the process of replacing cache items by intelligently selected downloads causes the Internet Access Latency to be invisible to the user. This latency, even if its duration is hours, days or even months, nevertheless is invisible to the user due to the intelligent cache, and due to the updating of cached music tracks which tend toward the user's preference.
  • Scenario 1 Consider a user who travels to office everyday (for around 50 minutes). The user carries the user device 106 (typically a headphone) everyday, to listen to music during the travelling period. Generally, the user device 106 is cached with different music tracks overnight. Consequently, the user enjoys the travelling period listening to a variety of music tracks. Further, the user's gestures are recorded on the user device 106 to facilitate making decisions on the variety of music tracks.
  • the user device 106 typically a headphone
  • Scenario 2 Consider a user who is a mountain ranger. The user plans to travel for 7 days to conquer a new route undiscovered in a national monument park. Since the user had listened to music on the user device 106 (typically a headphone) for months together, the user device 106 has learnt preferences of the user on music. Consequently, the user does not get bored listening to music on the user device 106 as over 2000 songs are cached in advance on the user device 106 without the users efforts.
  • the user device 106 typically a headphone
  • Scenario 3 Consider a user who is a fan of in-car music, and who travels for long distances between various cities. The user listens to music to relax. The in-car music device caches a large number of songs into a playlist, along with a voice command that helps the user to navigate within the playlist. Moreover, at every gas station that the user visits, Internet connection would allow the user to refresh the cache with new songs. Consequently, the entire journey would be fun-packed.
  • FIG. 2 depicts the components of the music player of the user device, according to the embodiments as disclosed herein.
  • the music player in the user device 106 is capable of autonomous and intelligent management of audio content independent of a streaming network connection or an external device.
  • the user device 106 comprises of a separate low-power consuming Bluetooth low energy network chip used for activities such as long term (6 months - lyear), always-on "sleep and wake” functionality, auto-play functionality that passively detects when the user puts on the headphones and automatically begins playing audio, communication to proprietary back end cloud servers for location-finding and identification and customer support and diagnostics of the device.
  • the User Preference Model 204 on the remote information repository 102 gains knowledge about the user through his/her actions, and makes intelligent recommendations as it learns a plurality of parameters based on user feedback such as time, geo-location, music genre and physical cues such as detection of nodding gesture, physical motion, EEG, facial expressions and so on.
  • the feedback is accumulated on a real time basis, and data analysis is used to continually refine and improve the matching vector which is directly applied to a recommendation engine.
  • the service diagnostic can use any audio as input data for a recommendation engine.
  • the user device 106 comprises high power consuming circuitry adapted and programmed to perform while in an active state several high power activities include interfacing with the user and the high power consuming circuitry using substantially less power while in an inactive state.
  • the low-power consuming circuitry is adapted and programmed to perform at least one of several low power activities, long-term power failsafe, power on/ power off, device status, diagnostics, and location communication to perform a period health check to proprietary backend cloud service, autoplay of audio content, and the touch control user interface.
  • Embodiments of the present invention utilize low-power Wi-Fi and BLE to achieve low power consumption.
  • the intelligent learning is at an application level and is considered separate from the low power circuitry. This is considered relevant because several users try to interfere or control the music from the User Interface Module 202 if they face unsatisfactory occurrences of the music recommendation feed, which would then entice more power consumption from more active versus passive behaviors.
  • the low power consumption of the BLE module even when the device does not seem to be drawing power, it is actually passively powered and active, performing lower- level commands such as contacting the servers and checking to see if the user device 106 has been reported as lost and may need locating or disabling.
  • the WiFi connects to the internet to download audio content
  • the headphone is in standby (no music playback).
  • the headphone plays music without WiFi connection.
  • the algorithm used in the present invention is to help improve user experience by increasing the hit rate of music feeding of a cache strategy.
  • FIG. 4 is a schematic graphical depiction of a library of songs with user preference information, as might be employed in the above-discussed embodiment of FIG. 2.
  • the music player of the user device 106 depicts the portions (here shown as being marked differently) where the user has "liked” and "disliked.”
  • the songs which are dormant and not being played is defined as "decayed.”
  • the cached song may get flushed out if the user does not prefer it to be based on the music cortex scoring. This process provides the continuous playback experience without worrying about network connectivity.
  • the music player captures the user interactions through a plurality of parameters, one of them being explicit user feedbacks thru buttons or finger gestures or voice commands (User device gets inputs whether the user like the current music track that is being played") "Like” or “dislike” indicia are applied to the current music track.
  • “Like” or “dislike” indicia are applied to the current music track.
  • Indicia may be used as cumulative scores for music tracks listened to and rated multiple times. Alternatively, indicia may simply be Boolean "like” or “dislike” indicia.
  • the user does not like the music track that is being played it is marked with "dislike” indicia such as a numeric value of -1. If the user likes the music track, it is marked with "like” indicia such as +1. The music track is marked and is played on the user device 106, and a timestamp is correspondingly created. If multiple playbacks of a given music item result in multiple like or dislike user reactions, then the indicia may be incremented, decremented, etc., to accumulate an overall like/dislike score. Thus, for instance, a music item which is consistently disliked may have lower indicia than one which is disliked only one time. Time stamps may be accumulated, to produce a history of playback events, and which can provide evidence of trends in the user's tastes.
  • the mark value of current given music track has a value indicating dislike, such as a mark value that is less than 0, then the current music track is subject to being deleted from the queue.
  • the mark value may signify that the track is not even played once, and is thus subject to deletion.
  • the music data is sent to the music streaming service, for instance to the remote information repository 102 in the cloud.
  • the music streaming service determines which additional music tracks to download, based on identifying additional music tracks the user might like. For instance, the music tracks might relate to the same musical genre, or might be performed by the same band or other performing artists.
  • Conditional probabilities may be understood, in language, as follows:
  • the expression P(H/Ti) represents the probability of the user liking (represented by H) the track Ti when the track Ti is actually being played.
  • the probability function P is expressed in terms of an argument given as a ratio, it means the denominator of the ratio (in this case, that the track Ti is actually being played) is assumed to be true.
  • Time decay factor a pure number (i.e., no units of measure), which usually takes range in between [0.900 - 0.999];
  • Dislike(/) ⁇ The ratio of having "Disliked” events for track . This is calculated using total observed number of "Disliked” events on j J divided by total played tracks.
  • the optimal Caching optimization C is given by the proportionality expressions: m-gmaxu 1 ⁇ 4 OP (if %T t ) argmax-n D P ⁇ J3 ⁇ 4)
  • the caching algorithm replaces a cached track with the music track having the highest user “like” rating, and the lowest user “dislike” rating.
  • the User Preference Model may also include social behaviors, e.g. a group of users combined together. For instance, if user A belongs to this particular social group (friends, followers), then user A shares the combined User Preference model. To detect whether User A belongs to this group, we do data classification, e.g. classify the user's preference model. The classification may be based on whether the user's Preference model and the group's combined User Preference model are similar (for instance, by statistical distance within a predetermined threshold).
  • social behaviors e.g. a group of users combined together. For instance, if user A belongs to this particular social group (friends, followers), then user A shares the combined User Preference model.
  • data classification e.g. classify the user's preference model. The classification may be based on whether the user's Preference model and the group's combined User Preference model are similar (for instance, by statistical distance within a predetermined threshold).
  • FIG. 5 is a schematic representation illustrating an environment for optimal music caching, according to the embodiments as disclosed herein.
  • the environment 500 includes a plurality of audio clients internally located caches, for example audio client 502a with cache 504a, audio client 502b with cache 504b, audio client 502c with cache 504c and audio client 502n with cache 504n.
  • the audio clients are connected to a Back-end cloud 506 through Internet.
  • the Back-end cloud 506 is responsible for music streaming services and user preference modeling.
  • Embodiments such as that of FIG. 5 typically split role and responsibility between the audio clients and back-end cloud 506.
  • the user's real-time feedbacks are captured in the corresponding audio client in its local cache. For example, a user A listens to music on the audio client 502a. Subsequently, the user' s real-time feedbacks are captured in the local cache 504a of the audio client
  • the audio client 502a connects to the back-end cloud 506 through Internet
  • the captured real-time feedbacks of the user A are uploaded to the Back-end cloud 506 for User Preference Modeling.
  • the User Preference Modeling is trained by a machine learning algorithm run on the back-end cloud 506. Consequently, songs that are unlikely favorite to the user A are removed from the local cache and the user A's favorite songs are downloaded from the back-end cloud music streaming services. Consequently, the user A of the audio client 502a experiences music similar to an online music streaming experience, when Internet access is nonexistent.
  • intelligent caching in the systems and methods of the present subject matter may be applied to automobile audio systems.
  • An automobile audio system may contain components and architecture generally similar to that of the user device 106 of FIG. 1. While the automobile is being driven, it may not be feasible to establish an Internet connection. Even if wireless equipment is available for which to establish the connection, the movement of the vehicle through tunnels and underpasses, as well as changes and distortion of signal paths due to the vehicle's movement, may not allow for a connection stable enough to stream content or to successfully complete a download.
  • a stable connection may be achieved during a time interval when the vehicle is at a stationary location such as a fuel station or garage, a roadside rest stop or restaurant, etc.
  • these stationary locations may provide WiFi or other suitable Internet infrastructure, to accommodate a vehicle with wireless capability.
  • the automobile may be equipped with suitable user controls.
  • These controls may be standard controls provided with car audio systems. For instance, controls may be mounted on the steering wheel for easy user manipulation and operation.
  • a Skip Forward control for skipping to the next track, might be construed to mean that the user does not like the track which is currently being played.
  • FIG. 6 is a block diagram illustrating an exemplary Smart Phone application, according to the embodiments as disclosed herein.
  • the block diagram illustrates the user device 106 as described in FIG. 1 connected to the Internet 104.
  • the user device 106 includes a main module of application 602, an audio playback module 604, a user interface 606, a network module 608 and a local flash storage 610.
  • the main module of application 602 runs a computation unit required for performing the method disclosed herein. Further, the main module of application 602 uses main memory and utilizes motion or Global Positioning System (GPS) sensors.
  • GPS Global Positioning System
  • the audio playback module 604 is responsible to replay the audio recorded earlier.
  • the user interface 606 in one embodiment may receive touch screen inputs, or in another embodiment may receive finger gesture inputs over touch screen or other touch sensor (such as capacitance sensor), or in another
  • the embodiment may receive button inputs, such as like, dislike, skip and repeat.
  • the network module 608 is responsible to achieve connectivity between the user device 106 and the Internet 104. Further, the local flash storage 610 is accountable to store audio files.
  • FIG. 7 is a block diagram illustrating the system in an exemplary Wireless Headphone application and automobile application, according to the embodiments as disclosed herein.
  • the block diagram illustrates the user device 106 as described in FIG. 1 connected to the Internet 104.
  • the user device 106 includes a computation unit 702, an audio playback unit 704, user inputs 706, a network module 708, a rechargeable battery 710 and memory storage 712.
  • the computation unit 702 is configured with ARM Cortex, 512 KB RAM, 2MB Flash (code/data).
  • the audio playback unit 704 is responsible to replay the audio recorded earlier and is configured with Codec, AMP and Speakers.
  • the user inputs 706 includes Like, Dislike, Repeat and Skip.
  • the network module 708 is responsible to achieve network connectivity between the user device 106 and the Internet 104.
  • the rechargeable battery 710 is responsible to charge all the modules of the user device 106.
  • the memory storage 712 is accountable to store audio files.
  • FIG. 8 is a flow chart an overall method flow, according to the embodiments as disclosed herein.
  • the illustrated method includes user operation of the user device 106, user selection of cached or downloaded tracks (such as music), user feedback (e.g., like and dislike), and cache updating.
  • the flowchart of FIG. 8 shows activities that take place both at the user device 106 (herein also referred to as an audio client 802), and at the remote repository 102 in the cloud.
  • the steps 814, 818, and 822 take place at the remote repository 102, and the rest of the illustrated steps take place at the user device 106.
  • step 808 user feedbacks 806 are retrieved while playing music from the Cache.
  • step 810 the audio client 802 connects to the Internet.
  • the user feedbacks are uploaded from the audio client 802 to the cloud.
  • the user feedbacks are subjected to Machine learning process.
  • this takes place in the cloud.
  • the machine learning process basically trains the user Preference Model.
  • a cache remove strategy is as follows: Remove T j from cache, so that the T j track's User Preference Model of "Disliked” is maximized. Typically, the least favorite song T j is found, that has the highest probability to expect user input "Disliked” event.
  • the least favorite song is searched and is subsequently requested to be removed.
  • a cache addition strategy is as follows:
  • Step 1 is performed until cache is finished.
  • Step 1 To enhance offline listening experience, it is preferred to fully replace cache songs and swap them with recommended similar songs as "liked” songs. The best approach for replacing is to maximize the replacement ratio. Subsequently, "divide and conquer” strategy is used to pair "remove and add" per track. The steps involved in the replacement approach is as follows:
  • Step 2 is performed until network is unavailable or cache is fully replaced.
  • step 824 the audio client disconnects with the Internet and returns to step 804 and forms a closed loop.
  • FIG. 9 is a block diagram of a machine in the example form of a computer system 900 within which instructions for causing the machine to perform any one or more of the methodologies discussed herein may be executed.
  • the machine operates as a standalone device or may be connected (e.g., networked) to other machines.
  • the machine may operate in the capacity of a server or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.
  • the machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), cellular telephone, a web appliance, a network router, switch or bridge, or any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine.
  • PC personal computer
  • PDA Personal Digital Assistant
  • machine shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
  • the example computer system 900 includes a processor 902 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), or both), a main memory 904, and a static memory 906, which communicate with each other via a bus 908.
  • the computer system 900 may further include a video display unit 910 (e.g., a liquid crystal displays (LCD) or a cathode ray tube (CRT)).
  • the computer system 900 also includes an alphanumeric input device 912 (e.g., a keyboard), a user interface (UI) navigation device 914 (e.g., a mouse), a disk drive unit 916, a signal generation device 918 (e.g., a speaker), and a network interface device 920.
  • an alphanumeric input device 912 e.g., a keyboard
  • UI user interface
  • disk drive unit 916 e.g., a disk drive unit
  • signal generation device 918 e.g., a speaker
  • a network interface device 920 e.g., a network interface device 920.
  • the computer system 900 may also include an environmental input device 926 that may provide a number of inputs describing the environment in which the computer system 900 or another device exists, including, but not limited to, any of a Global Positioning Sensing (GPS) receiver, a temperature sensor, a light sensor, a still photo or video camera, an audio sensor (e.g., a microphone), a velocity sensor, a gyroscope, an accelerometer, and a compass.
  • GPS Global Positioning Sensing
  • the disk drive unit 916 includes a machine-readable medium 922 on which is stored one or more sets of data structures and instructions 924 (e.g., software) embodying or utilized by any one or more of the methodologies or functions described herein.
  • the instructions 924 may also reside, completely or at least partially, within the main memory 904 and/or within the processor 902 during execution thereof by the computer system 900, the main memory 904 and the processor 902 also constituting machine-readable media.
  • machine-readable medium 922 is shown in an example embodiment to be a single medium, the term “machine-readable medium” may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more instructions 1924 or data structures.
  • the term “non- transitory machine-readable medium” shall also be taken to include any tangible medium that is capable of storing, encoding, or carrying instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present subject matter, or that is capable of storing, encoding, or carrying data structures utilized by or associated with such instructions.
  • non-transitory machine-readable medium shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media.
  • Specific examples of non-transitory machine-readable media include, but are not limited to, non-volatile memory, including by way of example, semiconductor memory devices (e.g., Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), and flash memory devices), magnetic disks such as internal hard disks and removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks.
  • EPROM Erasable Programmable Read-Only Memory
  • EEPROM Electrically Erasable Programmable Read-Only Memory
  • flash memory devices e.g., electrically Erasable Programmable Read-Only Memory (EEPROM), and flash memory devices
  • magnetic disks such as internal hard disks and removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks.
  • the instructions 924 may further be transmitted or received over a computer network 950 using a transmission medium.
  • the instructions 924 may be transmitted using the network interface device 920 and any one of a number of well-known transfer protocols (e.g., HTTP). Examples of communication networks include a local area network (LAN), a wide area network (WAN), the Internet, mobile telephone networks, Plain Old Telephone Service (POTS) networks, and wireless data networks (e.g., WiFi and WiMAX networks).
  • POTS Plain Old Telephone Service
  • the term "transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding, or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible media to facilitate communication of such software.
  • computer software products can be written in any of various suitable programming languages, such as C, C++, C#, Pascal, Fortran, Perl, Matlab (from MathWorks), SAS, SPSS, JavaScript, AJAX, and Java.
  • the computer software product can be an independent application with data input and data display modules.
  • the computer software products can be classes that can be instantiated as distributed objects.
  • the computer software products can also be component software, for example Java Beans (from Sun Microsystems) or Enterprise Java Beans (EJB from Sun Microsystems).
  • Much functionality described herein can be implemented in computer software, computer hardware, or a combination.
  • a computer that is running the previously mentioned computer software can be connected to a network and can interface to other computers using the network.
  • the network can be an intranet, internet, or the Internet, among others.
  • the network can be a wired network (for example, using copper), telephone network, packet network, an optical network (for example, using optical fiber), or a wireless network, or a combination of such networks.
  • data and other information can be passed between the computer and components (or steps) of a system using a wireless network based on a protocol, for example Wi-Fi (IEEE standards 802.11, 802.11a, 802.11b, 802.1 le, 802.11g, 802.11i, and 1802.1 In).
  • signals from the computer can be transferred, at least in part, wirelessly to components or other computers.
  • each illustrated component represents a collection of functionalities which can be implemented as software, hardware, firmware or any combination of these.
  • a component can be implemented as software, it can be implemented as a standalone program, but can also be implemented in other ways, for example as part of a larger program, as a plurality of separate programs, as a kernel loadable module, as one or more device drivers or as one or more statically or dynamically linked libraries.
  • the portions, modules, agents, managers, components, functions, procedures, actions, layers, features, attributes, methodologies and other aspects of the invention can be implemented as software, hardware, firmware or any combination of the three.
  • a component of the present invention is implemented as software, the component can be implemented as a script, as a standalone program, as part of a larger program, as a plurality of separate scripts and/or programs, as a statically or dynamically linked library, as a kernel loadable module, as a device driver, and/or in every and any other way known now or in the future to those of skill in the art of computer programming.
  • the present invention is in no way limited to implementation in any specific programming language, or for any specific operating system or environment.

Abstract

Method and system for caching units of information that is downloaded from a remote information repository for availability to a user is disclosed. The system comprises a user interface device for allowing a user to access the cached units of information and a user preference module for determining user preference units of information based on indicia of favourable user reaction. The user interface device comprises an information selector for selecting one or more units of information for downloading from the remote information repository.

Description

A USER-FRIENDLY, NETWORK CONNECTED LEARNING HEADPHONE AND
RELATED SYSTEMS AND METHOD
TECHNICAL FIELD
[0001] Embodiments of the disclosure relate generally to the field of offline caching of content accessed from a remote source over a network. Embodiments relate more particularly to caching units selectively downloaded from a remote information repository.
BACKGROUND
[0002] In the field of media production and publishing, content includes information and experiences that may provide value for an end user in a variety of contexts. The content (for instance, audio files of songs ort other music selections) may be delivered via multiple media such as the internet, television, and audio CDs, as well as live events such as conferences and stage performances. The term media file refers to a file in which content is obtained.
[0003] From the large volume, and wide variety, of content available to users in such media files, a given user will inevitably have preferences as to which content he/she wishes to view or listen to. Also, there is much content which the user might like, but with which the user is unfamiliar.
[0004] There appears to be a need for an offline caching application which allows for intelligent use of local cache, wherein the files which are downloaded and queued into the local cache are selected in relation to what the user wants to view, or to listen to f.
SUMMARY
[0005] The above-mentioned needs are met by a computer-implemented system, a computer-implemented method and a computer program product for caching units of information that is downloaded from a remote information repository for availability to a user.
[0006] An example of a computer-implemented system for caching units of information that is downloaded from a remoter information repository for availability to a user. The computer-implemented system includes a user device for allowing a user to access the cached units of information from a remote information repository. The user device has a memory cache for storing the cached units of information, and having a user reaction input for receiving indicia of favorable user reaction to the cached units of information. Further, the computer-implemented system includes an information selector, for selecting units of information for downloading from the remote information repository and caching.
Furthermore, the computer-implemented system includes an interface to the remote information repository for downloading units of information from the remote repository. The interface is operable during intermittent periods of network connection, for interfacing to the remote information repository to download and cache the selected units of information. The downloading may take place at a time period during which the user is not using the user interface device to access the cached units of information.
[0007] An example of a computer-implemented method for caching units of information that is downloaded from a remoter information repository for availability to a user. The computer- implemented method includes capturing a user' s real-time feedbacks in a memory cache of a user device while the user listens to music when the user device is in an offline mode. Further, the computer-implemented method includes uploading the captured real-time feedbacks to a remote information repository whenever the user device connects to the Internet. Furthermore, the computer-implemented method includes performing machine learning to identify the user's music preference as units of information, based on the most recently captured user feedbacks on the remote information repository, wherein the user's music preference are music tracks and playlists. The computer-implemented method includes the remote information repository identifying musical selections which the user is expected to like, wherein the identifying includes evaluating the units of information at one of a track level, an artist level and an album level. Moreover, the computer-implemented method includes downloading and caching the identified selections to the memory cache to replace the memory cache with the units of information and playing music from the updated cache, thereby providing an efficient music streaming experience to the user.
[0008] An example of a computer program product for caching units of information that is downloaded from a remoter information repository for availability to a user. The computer program product includes capturing a user' s real-time feedbacks in a memory cache of a user device while the user listens to music when the user device is in an offline mode. Further, the computer program product includes uploading the captured real-time feedbacks to a remote information repository whenever the user device connects to the Internet. Furthermore, the computer program product includes performing machine learning to identify the user's music preference as units of information, based on the real-time feedbacks on the remote information repository, wherein the user's music preference are music tracks and playlists. The computer program product includes the remote information repository identifying musical selections which the user is expected to like, wherein the identifying includes evaluating the units of information at one of a track level, an artist level and an album level. Moreover, the computer program product includes downloading and caching the identified selections to the memory cache to replace the memory cache with the units of information and playing music from the updated cache, thereby providing an efficient music streaming experience to the user.
[0009] These and other aspect of the embodiments herein will be better appreciated and understood when considered in conjunction with the following description and the accompanying drawings. It should be understood, however, that the following descriptions, while indicating preferred embodiments and numerous specific details thereof, are given by way of illustration and not of limitation. Many changes and modifications may be made within the scope of the embodiments herein without departing from the spirit thereof, and the embodiments herein include all such modifications.
BRIEF DESCRIPTIONOF THE VIEWS OF DRAWINGS
[0010] In the accompanying figures, similar reference numerals may refer to identical or functionally similar elements. These reference numerals are used in the detailed description to illustrate various embodiments and to explain various aspects and advantages of the present disclosure.
[0011] FIG. 1 is a block diagram of the general connectivity between a remote information repository and a user device, according to the embodiments as disclosed herein;
[0012] FIG. 2 is a block diagram depicting the modules in a user device/headphone, according to the embodiments as disclosed herein;
[0013] FIG. 3 depicts the flow diagram for allowing a user to access the cached units of information, according to the embodiments as disclosed herein;
[0014] FIG. 4 depicts the components of the music player of the user device, according to the embodiments as disclosed herein; [0015] FIG. 5 is a schematic representation illustrating an environment for optimal music caching, according to the embodiments as disclosed herein;
[0016] FIG. 6 is a block diagram illustrating an exemplary Smart Phone application, according to the embodiments as disclosed herein;
[0017] FIG. 7 is a block diagram illustrating the system in an exemplary Wireless Headphone application and automobile application, according to the embodiments as disclosed herein;
[0018] FIG. 8 is a flow chart an overall method flow, according to the embodiments as disclosed herein; and
[0019] FIG. 9 is a block diagram of a machine in the example form of a computer system 900 within which instructions for causing the machine to perform any one or more of the methodologies discussed herein may be executed.
DETAILED DESCRIPTION OF THE EMBODIMENTS
[0020] The above-mentioned needs are met by a method and system for enabling a mobile device intelligence and interaction project to determine the quality and condition of a computing device to play recommended tracks as per user's interests. The following detailed description is intended to provide example implementations to one of ordinary skill in the art, and is not intended to limit the invention to the explicit disclosure, as one or ordinary skill in the art will understand that variations can be substituted that are within the scope of the invention as described.
[0021] In the discussion that follows, references will be made to "multimedia",
"multimedia information", or the like, with reference to content which is stored in a remote repository, and/or downloaded to a local device for caching. It is contemplated that multimedia content will be thusly handled in embodiments of the present subject matter, and that references to such multimedia in the present patent application are deemed to be good illustrative examples to enhance understanding of the present subject matter. Specific embodiments of the present subject matter, to be discussed herein, will focus on music tracks, audio content, etc., and on user devices which play music or other audio, to which the user listens. However, it should be understood that such illustrative examples are not to be considered limiting as to the spirit, scope, and content of the present subject matter. Rather, such references to "multimedia" etc. will be understood not to prelude, but rather to include by analogy, other examples of subject matter which would be understood by a person of ordinary skill in the relevant field to apply equivalently. Such other examples might include, for instance, audio, video and other forms of media.
GENERAL CONCEPTS - CONTENT; REMOTE REPOSITORIES, LOCAL USER
DEVICES
[0022] Generally, media related content may be streamed from a media company' s content server to a user's device (e.g., computer, mobile device and so on). When streaming media, the user is expected to watch or listen to the media content immediately. The media is generally not cached even if buffering occurs and if the media is not consumed it is removed from the user's device. Further, in order for the media file to be streamed from the user's device and the content server, it must generally maintain communication for the duration of the streaming of the media file. In cases, where the network connection between the two devices is lost for an extended period of time, the streaming will cease.
[0023] Listening to audio content via a streaming service is a convenient way to access millions of songs or audio related content on demand. This provides the flexibility to listen on the move and on a plurality of computers and mobile devices. However, the major downside to listening music in this way is that it usually needs to be connected, continuously, to some sort of network for the music to be streamed (the internet or a 3G network for example) as mentioned earlier. As a matter of practical reality, network access often is not uninterrupted. In any event, costs for maintaining continuous connection may be undesirably high.
[0024] To solve this issue, there is now a growing number of streaming music services that offer an option called offline mode, or a similar annotation. This feature works by allowing the computer or mobile device to cache the music that is streamed. The next time the user wants to play/listen to the same songs, an internet or 3G network connections is not required because the music files would have already been stored on the hard disk or the flash memory which allows one to play offline anytime as desired.
[0025] However, currently existing applications for offline caching do not offer or provide for autonomous and intelligent management of audio content independent of a streaming network connection or an external device. [0026] In accordance with embodiments of the present subject matter, there is provided a system and method for providing a user with access to content, such as music audio files, from remote repositories which may, for instance reside on the cloud. The system and method further allow the user to access content which the user is unaware of, but which probably will be liked by the user because of characteristics of the content which correlate with
characteristics of content which the user knows and likes. An intelligent cache arrangement is provided, in which content from a remote repository such as the cloud, having essentially unlimited content (for instance, on the order of 100 million songs in audio files), is downloaded and cached in a local user device. The user can enjoy virtually unlimited songs (as if the music player device is directly connected to Cloud music streaming service), without necessarily having a network connection at the time the user is actually listening. Effectively, the user enjoys the internet streaming music (unlimited songs) without needing a continuous Internet connection.
[0027] The system and method provide for local caching of content the user likes, or is expected to like. To cache content, and update the cached content, efficiency, explicit user feedback is employed such as user inputs indicating Liked/Disliked/Skip/Repeat, which are simple, intuitive and natural user inputs. Also provided are implicit user feedbacks, such as timestamp & geolocation for when/where a user likes/dislikes the music, motion sensors which are interpreted as indications of whether the user likes/dislikes the music, etc.
Uninterrupted connectivity to the remote content repository is not required. Rather, downloading and caching takes place, for instance without direct user intervention, during intermittent periods of network conductivity.
[0028] Intelligent algorithms are provided for judging what content to be downloaded, based on the user's expressed preferences. By accumulating and adaptively learning the user feedbacks, the remote repository in the Cloud builds up a User Preference Model. Therefore the system knows the user's personal music taste, so the system is able to make a good guess of what music the user will want to listen to, in the future. The remote repository then chooses music tracks to pre-download to the local cache in the user's local device, based on correlation between the user preference model and the characteristics of the chosen music tracks.
SYSTEM BLOCK DIAGRAM [0029] FIG. 1 is a block diagram of the general connectivity between the remote information repository and user device, according to the embodiments as disclosed herein. As depicted in FIG. 1, the components include a Remote Information Repository 102 connected to a network 104, which in turn is connected to a user device such as a headphone 106.
[0030] Network link(s) involved in the system of the present invention may include any suitable number or arrangement of interconnected networks including both wired and wireless networks. By way of example, a wireless communication network link over which mobile devices communicate may utilize a cellular-based communication infrastructure. The communication infrastructure includes cellular-based communication protocols such as AMPS, CDMA, TDMA, GSM (Global System for Mobile communications), iDEN, GPRS, EDGE (Enhanced Data rates for GSM Evolution), UMTS (Universal Mobile
Telecommunications System), WCDMA and their variants, among others. In various embodiments, network link may further include, or alternately include, a variety of communication channels and networks such as WLAN/Wi-Fi, WiMAX, Wide Area
Networks (WANs), and Blue-Tooth.
[0031] The system of the present invention may be configured to operate in an online mode and an offline mode; wherein, when operating in the online mode, the system is communicatively coupled to the content server; and, when operating in the offline mode, the system is not communicatively coupled to the content server. The operating system may be configured to receive from the content server, a media file and audio related content associated with the media file. The non-volatile memory may be configured to play while the system is operating in the offline mode.
[0032] In the online mode, the user device 106 may download and cache one or more media files such as audio related content in the form of music files, talk books, audio recordings and so on. During the offline mode, the user device 106 may play the cached media files and their associated advertisements. The user's interactions with the media file may be cached (choosing one more track in the album or enquiring for the release date of the next album, "Like" or "Dislike" or "Skip" or "Repeat" the playing track). "Like" and
"Dislike," for instance, may in an embodiment be dedicated user interface buttons or the like. "Skip" and "Repeat" may alternatively be used to infer, rather than expressly denote, user preferences. Upon returning to the online mode, the user interactions may be processed. [0033] In a specific context, the user device 106 is limited to be in the form of a headphone but can also be used to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smart phones, tablets and other similar computing devices. Also, while songs, music items, and other audio items are discussed in connection with specific embodiments, it will be understood that other types of data items, including without limitation video, still images, text, graphical representations of information, or combinations thereof, fall within the spirit and scope of the present subject matter as it would be understood by a person of ordinary skill in the art.
[0034] The user device 106 includes a processor, memory, storage device, a high speed interface connecting to memory and high speed expansion ports and a low speed interface connecting to low speed bus and storage device. Each of the underlying components are interconnected using various busses and may be mounted on a common motherboard. The processor can process instructions for execution within the user device 106, including instructions stored in the memory or on the Remote Information Repository 102 to display graphical information for a graphical user interface (GUI) on an external input/output device such as display coupled to high speed interface. In other implementations, multiple processors and/or multiple buses may be used as appropriate along with multiple memories and types of memory.
[0035] The Remote Information Repository 102 stores information within the user electronic device 106. In one implementation, the Remote Information Repository 102 includes a volatile memory unit or units. In another implementation, the Remote Information Repository 102 includes a non-volatile memory unit or units. The Remote Information Repository 102 may also be another form of computer readable medium such as a magnetic or optical disk.
[0036] The Remote Information Repository 102 is capable of providing mass storage for the user device 106. A computer program product can be tangibly embodied in an
information carrier. The computer program product may also contain instructions that when executed perform one or more methods such as those described above. The information carrier is a computer or machine-readable medium such as the memory, the storage device or the processor.
BLOCK DIAGRAM OF USER DEVICE 106 [0037] FIG. 2 is a block diagram depicting the modules in a user device/headphone, such as the user device 106 of FIG. 1, according to the embodiments as disclosed herein. FIG. 2 also illustrates elements, located in a remote system such as an apparatus in the cloud, which is coupled to the user device 106 such as by network 104 communication.
[0038] As depicted in FIG. 2, the user device 106 comprises modules such as a User Interface Module 202, an Information selector 206, a communication module 208, and a memory cache 210.
[0039] The User Interface Module 202 may be coupled to a display (for visual) or speaker (for audio), and may comprise appropriate circuitry to present graphical and other information to the user. The User Interface Module 202 may receive commands from a user and get these commands converted from the processor. In some aspects, an external interface may be provided in communication with the processor to provide, for example wired communication in some implementations or for wireless communications in other implementations and multiple interfaces may also be used. In an embodiment, the selected units of information may be downloaded at a time period during which the user is not using the User Interface Module 202 to access the cached units of information.
[0040] In an embodiment, the User Device 106 may communicate wirelessly through the User Interface Module 202, and may provide communications under various modes or protocols. In addition, short range communication may occur, such as using a Bluetooth, WiFi, or other such transceiver.
[0041] The remote repository 102 includes, or is coupled locally to, a module for running a User Preference Model, based on user feedback, to identify stored music tracks that the user may like. The User Preference model 204 helps generate an assorted collection of the user's preferred collection of music playlists, audio tapes, audio books and other related audio content which may be downloaded to the User Device 106. The User Preference model 204 is configured to execute autonomous and intelligent management of audio content independent of a streaming network connection or an external device.
[0042] The User Preference model 204 utilizes Bayesian statistic modeling to understand what the user prefers to listen to, and makes an informed guess of what track or playlist should be downloaded and queued into the local cache. For example, if the user device 106 is aware that (by using GPS and other location related information) that the user listens to heavy metal tracks in the morning while commuting to work, it may suggest to the user that tracks of the band Metallica to be played on a Wednesday morning. By using a combination of ambient, location and learned pattern behavior which is anonymously stored and processed in a proprietary back-end cloud service, the User Preference model 204 is capable of continuously learning and providing the best media content recommendation possible. The User preference model 204 is primarily configured for determining user preference units of information based on explicit user feedbacks (such as "Liked/Disliked/Skip/Repeat", or indicia of favorable user reaction received by the user reaction input. The favorable user reaction includes both explicit user feedbacks ("Liked/Disliked/Skip/Repeat"" and implicit physical cues such as detection of nodding gesture, physical motion, EEG and other facial expressions to gather user feedback.
[0043] In an embodiment, the User device 106 is configured to operate fully
independently of an external device. It is capable of directly streaming music or other audio from the back-end cloud and offline. The User device 106 comprises of intuitive controls. The User preference model 204 located on the remote repository 102 comprises a learning algorithm that customizes audio recommendations based on the user's pre-defined habits including the use of headphones in physical space.
[0044] The information selector 206 is used to select one or more units of information for downloading from the Remote information repository 102 and then caching based on similarity between the units of the information to be selected. The cached units of
information determine the indicia of favorable user reactions which have been received.
[0045] The Communication Module 208 is responsible for handling communication between ports, and also for acting as a network interface between a built-in communication port on the processor and a network communication link with a predetermined protocol. In particular embodiments, storage includes mass storage for data or instructions. As an example and not by way of limitation, storage may include an HDD, a floppy disk drive, flash memory, an optical disc, a magneto-optical disc, magnetic tape, or a Universal Serial Bus (USB) drive or a combination of two or more of these. Storage may include removable or non-removable (or fixed) media, where appropriate. Storage may be internal or external to a computer system, where appropriate. In particular embodiments, storage is non-volatile, solid-state memory. In particular embodiments, storage includes read-only memory (ROM). Where appropriate, this ROM may be mask-programmed ROM, programmable ROM
(PROM), erasable PROM (EPROM), or flash memory or a combination of two or more of these. [0046] In particular embodiments, I/O interface includes hardware, software, or both providing one and more interfaces for communication between system and one or more I/O devices. System may include one or more of these I/O devices, where appropriate. One or more of these I/O devices may enable communication between a person and computer system. As an example and not by way of limitation, an I/O device may include a keyboard, microphone, display, touch screen, mouse, speaker, camera, another suitable I/O device or a combination of two or more of these. An I/O device may include one or more sensors. This disclosure contemplates any suitable I/O devices and any suitable I/O interfaces for them. Where appropriate, I/O interface may include one or more device or software drivers enabling processor to drive one or more of these I/O devices. I/O interface may include one or more I/O interfaces, where appropriate. Although this disclosure describes and illustrates a particular I/O interface, this disclosure contemplates any suitable I/O interface.
[0047] In particular embodiments, communication interface includes hardware, software, or both providing one or more interfaces for communication (such as, for example, packet- based communication) between computer system and one or more other computer systems or one or more networks. This disclosure contemplates any suitable network and any suitable communication interface for it. As an example and not by way of limitation, system may communicate with an ad hoc network, a personal area network (PAN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), or one or more portions of the Internet or a combination of two or more of these. One or more portions of one or more of these networks may be wired or wireless. As an example, System may communicate with a wireless PAN (WPAN) (e.g., a BLUETOOTH WPAN), a WI-FI network (e.g., a 802.11a/b/g/n WI-FI network), a WI-MAX network, a cellular telephone network (e.g., a Global System for Mobile Communications (GSM) network, a Long Term Evolution (LTE) network), or other suitable wireless network or a combination of two or more of these.
[0048] The client-side functionality described above can be implemented as a series of instructions stored on a computer-readable storage medium that, when executed, because a programmable processor to implement the operations described above.
OPERATIONAL FLOW CHARTS
[0049] FIG. 3 depicts the flow diagram for allowing a user to access the cached units of information, according to the embodiments as disclosed herein. As depicted in FIG. 3, at step 302, the user device 106 selects units of information in the form of audio related content for downloading from the remote information repository 102. In case, the user does not have a pre-existing account, the user will probably prefer to create playlists, preferences and so on from within that streaming service. The user can also create an account and register using his log in credentials. The user account can be one of paid or free subscription to listen to music playlists offered by the user device 106. For example, if it is a free user account, the playlist service may offer up to 300 tracks for playback. If it is a paid user account, the playlist service may offer an unlimited amount of songs or tracks to be played.
[0050] At step 304, the user downloads one or more units of information from the remote information repository 102. In one embodiment, the user may specify that he would like to download the media file such that the media file may be played when the user device 106 is in an offline mode, and not connected to a content server. In various embodiments, the application may be configured to determine, based upon the filetype or other indicator (e.g., Multipurpose Internet Mail Extensions (MIME) type, etc.) of the media file whether the media file is being streamed, downloaded as a "purchase", or downloaded as a cacheable file.
[0051] At step 306, units of multimedia information are cached depending upon the user's requirements. The media file may also be cached within the Remote Information Repository 102. In various embodiments, these files may be cached in an encrypted or decrypted state. Eventually, the user may place the user device 106 in an offline mode in which the system of the present invention is no longer commutatively coupled with a content server. The user may then wish to watch or consume the media file previously cached for offline access. The user may select the media file that the user wishes to play. In various embodiments, the application may include a file system browser or media browser that allows the user to select one media file from a plurality of cached media files. In some embodiments, this media browser may organize the media files by provider (e.g., Amazon, Netflix, ABC, Paramount, etc.), genre, date, media type (e.g., movie, TV show, audiobook, etc.), etc., although it is understood that the above are merely a few illustrative examples to which the disclosed subject matter is not limited.
[0052] In an example, the user device 106 may be configured to confirm with the content server that the user continues to have the rights for accessing and caching the media file. For example, a user may have discontinued their service with the content provider and therefore no longer have the right to media files provided by the content provider and their content server. Although it is understood that the above is merely one illustrative example to which the disclosed subject matter is not limited. In such an embodiment, if a media file is no longer allowed by the content server to be cached, the user device 106 may be configured to delete or purge the media file and its associated advertisements and metadata file.
[0053] Finally, at step 308, the user device 106 allows the user to access the cached units of information.
[0054] The various actions in method 300 may be performed in the order presented, in a different order or simultaneously. Further, in some embodiments, some actions to be described here, or below in connection with FIG. 8, may be omitted.
[0055] Units of information are downloaded from a remote information repository and cached, according to the embodiments as disclosed herein. A user's real-time feedbacks are captured in a memory cache of an audio client. Typically, the audio client is in an offline mode (disconnected state with Internet) as the user listens to music tracks. The real-time feedbacks are categorized as explicit feedbacks and implicit feedbacks. In an embodiment, the explicit feedbacks can be defined as operations performed by the user on the audio client through an application defined to control and command a current music track, for example user input events such as pressing button, swipe touch screen / touchpad, using voice input and natural finger/ hand/ body gesture input. Actions such as Like, Dislike, Skip and repeat actions can be performed on the music tracks. Similarly, the implicit feedbacks are captured automatically by the audio client, for example when and where the user likes or dislikes the music track, has the user queried an artist, user's heartbeat rate and head/ body motions while listening to the music track. Various types of sensory information are used to obtain the implicit feedbacks. For example, timestamps indicates when the track was played, geo- locations helps to identify music to location preferences and wearable body sensors, such as ECG, GSC, Temperature, motion sensors and a variety of biometric sensors to detect various body conditions: a) Heart beat: associates heart beat with music tracks. For example, a user may prefer listening to fast pacing music tracks during jogging. b) Body posture/ activity performed: identifies what type of music the user may want to listen c) Verification, such as A/B test: slow pacing music tracks may calm down the user or vice versa. [0056] The captured real-time feedbacks are uploaded to a cloud at the occurrence of Internet access.
[0057] Machine learning is performed in the cloud, to identify the user's music preference on music tracks and playlists. Generally, the cloud takes the captured real-time feedbacks as inputs to perform machine learning to determine user's music preference.
[0058] The cloud identifies the user's music preference at various levels such as track level, artist level and album level. For example, a track name (song title) "My heart will go on", an artist name "Celine Dion", an album name "Let's talk about Love" and a combination of track level, artist level and album level "Celine Dion, Let's talk about love, My heart will go on". Music preference can additionally be determined based on music theoretical considerations such as tempo, prevailing rhythm, instrumentation, key, harmonization, etc. Based on factors such as these, the cloud identifies, from its music library, other selections which, based on correlation with the above-listed levels and considerations, the user might also like.
[0059] In an embodiment, one selection at a time is replaced in the cache. In an embodiment, selections may receive multiple incremental indicia of dislike, whereby it may be determined that there is, in the cache, one selection which the user dislikes the most. A downloaded selection replaces that most-disliked selection.
[0060] Typically, for the cached units of information, a formula such as the following formula is used for obtaining the average memory reference time T, given by the expression:
T= m* Tm + Th + E where,
T = average memory reference time m= miss ratio = 1 - (hit ratio)
Tm = Time to take a main memory access when there is a miss Th = the latency: the time to reference the cache when there is a hit E= various secondary effects, such as queuing effects
Tm> Th and E are known parameters and m is varied. Consequently, the average memory reference time of T is proportional to the cache miss ratio of m: T∞ m [0061] Typically, the "Hit ratio" of the cache is counted to describe how often a searched-for is normally found in the cache. "Cache miss" is defined as playing tracks that does not have any user input "Liked" feedback to be associated with. Alternatively, the cache miss includes subset of tracks that the user dislikes which is associated with user input "Disliked" feedback. As a result, semantically the miss ration "m" of a cache describes how often a non- searched-for is normally found in the cache. Typically, the "liked" feedback needs to be maximized and the "disliked" feedback needs to be minimized as defined below:
Hit ratio∞ Liked ratio ÷ Disliked ratio
[0062] The Hit ratio can be achieved by replacing the cache with "Liked/Disliked" events of the user device 102.
[0063] Further, to develop an optimal cache replacement, Bayesian theory is utilized. Cost function "C" can be defined as shown below:
Figure imgf000016_0001
where:
H= this is defined as user input "Liked" feedback; and
M= this is defined as user input "Disliked" feedback.
P (Ti / H) =The observed posteriori when user input "Liked" on track Ti
P (Ti/ M) = The observed posteriori when user input "Dislike" on track Ti
Note that an a posteriori expression such as P(Ti/M) can be understood to mean, in language, "the probability of Ti (playing track Ti), given that M (user dislike) is true." A similar expression, for instance P(M/Ti), the probability of M (user dislike) given that Ti (playing track Ti) is true, will be referred to herein as a "conditional probability."
[0064] Further, based on Bayer's Theorem,
Figure imgf000016_0002
P(T; / H) P (H) * P(Ti) where, P (T; / H) - The observed posteriori probability when user input "Liked" on track Ti P (H) - The posteriori probability of user input "Liked" event P (H / Tj) - The conditional probability of user input "Liked" while playing track Ti P (Tj) - The priori probability of playing track Ti
(Note that a conditional probability and an a posteriori probability are both expressed in terms of the probability function P, with an argument represented as a ratio. In general, this notation means the probability of the numerator, assuming that the denominator is true.) The method aims to vary track T (track T to download).
[0065] Bayem's Theorem shows that the posterior probabilities are proportional to the prior P(T;) and further likelihood function LH(i) is defined as:
P(T H ) oo Lk i) * P(T; )
Where; LH(f) ce P(H / Tj
Similarly, for the "Dislike" event, the likelihood function L(Hi) is defined as:
P l Tj M ) ∞LMtf) * «T; >
Where; L^ ) ∞ F(M / ΤΛ
[0066] By using Maximum-Likelihood (ML) estimator, the prior cost function C as: argmax J LzAi) argmax _ · T,}
argmm T P(.M ; Γ,)
Therefore, a) To add track Ti to cache, conditional probability P(H / Ti) is maximized to the observed posteriori. Alternatively, the best matched track with the highest probability is found to expect user input "Liked" event. b) To remove Tj from cache, conditional probability of P(M/Tj) is maximized to the observed posteriori. Alternatively, the best matched track with the highest probability is found to expect user input "Disliked" event.
[0067] In an embodiment, the process of replacing cache items by intelligently selected downloads causes the Internet Access Latency to be invisible to the user. This latency, even if its duration is hours, days or even months, nevertheless is invisible to the user due to the intelligent cache, and due to the updating of cached music tracks which tend toward the user's preference.
[0068] Music is then played from the updated cache, thereby providing an efficient music streaming experience to the user. The music is played when Internet access is unavailable.
[0069] The method just described can be further described with aid of the following scenarios:
Scenario 1: Consider a user who travels to office everyday (for around 50 minutes). The user carries the user device 106 (typically a headphone) everyday, to listen to music during the travelling period. Generally, the user device 106 is cached with different music tracks overnight. Consequently, the user enjoys the travelling period listening to a variety of music tracks. Further, the user's gestures are recorded on the user device 106 to facilitate making decisions on the variety of music tracks.
Scenario 2: Consider a user who is a mountain ranger. The user plans to travel for 7 days to conquer a new route undiscovered in a national monument park. Since the user had listened to music on the user device 106 (typically a headphone) for months together, the user device 106 has learnt preferences of the user on music. Consequently, the user does not get bored listening to music on the user device 106 as over 2000 songs are cached in advance on the user device 106 without the users efforts.
Scenario 3: Consider a user who is a fan of in-car music, and who travels for long distances between various cities. The user listens to music to relax. The in-car music device caches a large number of songs into a playlist, along with a voice command that helps the user to navigate within the playlist. Moreover, at every gas station that the user visits, Internet connection would allow the user to refresh the cache with new songs. Consequently, the entire journey would be fun-packed.
USER DEVICE CACHING
[0070] As noted above, FIG. 2 depicts the components of the music player of the user device, according to the embodiments as disclosed herein. The music player in the user device 106 is capable of autonomous and intelligent management of audio content independent of a streaming network connection or an external device. The user device 106 comprises of a separate low-power consuming Bluetooth low energy network chip used for activities such as long term (6 months - lyear), always-on "sleep and wake" functionality, auto-play functionality that passively detects when the user puts on the headphones and automatically begins playing audio, communication to proprietary back end cloud servers for location-finding and identification and customer support and diagnostics of the device.
[0071] The User Preference Model 204 on the remote information repository 102 gains knowledge about the user through his/her actions, and makes intelligent recommendations as it learns a plurality of parameters based on user feedback such as time, geo-location, music genre and physical cues such as detection of nodding gesture, physical motion, EEG, facial expressions and so on. The feedback is accumulated on a real time basis, and data analysis is used to continually refine and improve the matching vector which is directly applied to a recommendation engine. The service diagnostic can use any audio as input data for a recommendation engine.
[0072] Primarily, the user device 106 comprises high power consuming circuitry adapted and programmed to perform while in an active state several high power activities include interfacing with the user and the high power consuming circuitry using substantially less power while in an inactive state. The low-power consuming circuitry is adapted and programmed to perform at least one of several low power activities, long-term power failsafe, power on/ power off, device status, diagnostics, and location communication to perform a period health check to proprietary backend cloud service, autoplay of audio content, and the touch control user interface.
[0073] Embodiments of the present invention utilize low-power Wi-Fi and BLE to achieve low power consumption. The intelligent learning is at an application level and is considered separate from the low power circuitry. This is considered relevant because several users try to interfere or control the music from the User Interface Module 202 if they face unsatisfactory occurrences of the music recommendation feed, which would then entice more power consumption from more active versus passive behaviors. Further, because of the low power consumption of the BLE module, even when the device does not seem to be drawing power, it is actually passively powered and active, performing lower- level commands such as contacting the servers and checking to see if the user device 106 has been reported as lost and may need locating or disabling. During the high power mode, the WiFi connects to the internet to download audio content, during the low power mode, the headphone is in standby (no music playback). In the normal power mode, the headphone plays music without WiFi connection. The algorithm used in the present invention is to help improve user experience by increasing the hit rate of music feeding of a cache strategy.
[0074] FIG. 4 is a schematic graphical depiction of a library of songs with user preference information, as might be employed in the above-discussed embodiment of FIG. 2. As depicted in FIG. 4, the music player of the user device 106 depicts the portions (here shown as being marked differently) where the user has "liked" and "disliked." The songs which are dormant and not being played is defined as "decayed." After the song is cached in local storage, the cached song may get flushed out if the user does not prefer it to be based on the music cortex scoring. This process provides the continuous playback experience without worrying about network connectivity.
[0075] Initially the music player captures the user interactions through a plurality of parameters, one of them being explicit user feedbacks thru buttons or finger gestures or voice commands (User device gets inputs whether the user like the current music track that is being played") "Like" or "dislike" indicia are applied to the current music track. A specific example will be discussed below, but, broadly speaking, any suitable indicia may be used. Indicia may be used as cumulative scores for music tracks listened to and rated multiple times. Alternatively, indicia may simply be Boolean "like" or "dislike" indicia.
[0076] If the user does not like the music track that is being played it is marked with "dislike" indicia such as a numeric value of -1. If the user likes the music track, it is marked with "like" indicia such as +1. The music track is marked and is played on the user device 106, and a timestamp is correspondingly created. If multiple playbacks of a given music item result in multiple like or dislike user reactions, then the indicia may be incremented, decremented, etc., to accumulate an overall like/dislike score. Thus, for instance, a music item which is consistently disliked may have lower indicia than one which is disliked only one time. Time stamps may be accumulated, to produce a history of playback events, and which can provide evidence of trends in the user's tastes.
[0077] If the mark value of current given music track has a value indicating dislike, such as a mark value that is less than 0, then the current music track is subject to being deleted from the queue. In an embodiment, the mark value may signify that the track is not even played once, and is thus subject to deletion.
[0078] If the mark value of the track has a value indicating like, such as a mark value that is greater than 0, then the music data is sent to the music streaming service, for instance to the remote information repository 102 in the cloud. Using that information, the music streaming service determines which additional music tracks to download, based on identifying additional music tracks the user might like. For instance, the music tracks might relate to the same musical genre, or might be performed by the same band or other performing artists.
USER PREFERENCE MODELING
[0079] To provide a simplified approach for a reference design, there is provided a fine- tuned algorithm for better music listening experience. As discussed elsewhere, in an embodiment, user preference is modeled by estimating a conditional probability given by the
P (H -T* \ P(M~T* )
expressions o * ' and □ J' where:
Figure imgf000021_0001
Figure imgf000021_0002
- The conditional probability of user input "Disliked" while playing track *
Conditional probabilities may be understood, in language, as follows: The expression P(H/Ti) represents the probability of the user liking (represented by H) the track Ti when the track Ti is actually being played. Where the probability function P is expressed in terms of an argument given as a ratio, it means the denominator of the ratio (in this case, that the track Ti is actually being played) is assumed to be true.
[0080] If it is assumed that every track has same a priori probability to play, for instance given by the expression ) representing a uniform distribution, then the following proportionality expressions apply:
Figure imgf000021_0003
That is, the probabilities of liking and disliking, respectively, given that the track Ti is playing, are proportional to the probability expressions, where:
H8i ) - The probability to "Like" track Ά p(Mi - The probability to "Dislike" track τϊ [0081] Based on captured user feedbacks, the process in an embodiment applies running averages, to adaptively estimate:
Pin, ) - Ά * Ρ(Η, 3+ (1 - A ) » Like(i>
P(Mf ) = (l . i ) * Dislike(/> where:
~ Time decay factor, a pure number (i.e., no units of measure), which usually takes range in between [0.900 - 0.999];
Like(;) _ The ratio of having "Liked" events for track ^ . This is calculated using total observed number of "Liked" events on Ή divided by total played tracks; and
Dislike(/) ~ The ratio of having "Disliked" events for track . This is calculated using total observed number of "Disliked" events on jJ divided by total played tracks.
[0082] As noted elsewhere, the optimal Caching optimization C is given by the proportionality expressions: m-gmaxu ¼ OP (if %Tt) argmax-n D P{J¾)
ΐ£? 055 where the function "argmax" denotes the maximum value of the expression which is the argument of "argmax." For instance, the numerator of the first ratio includes a sum, for tracks I, of the probability of the user liking (H) the track Ti which is playing. Thus, argmax of that sum is the maximum value of that sum. The result is that the caching algorithm replaces a cached track with the music track having the highest user "like" rating, and the lowest user "dislike" rating.
[0083] In summary, in an embodiment of the present subject matter, we define "User Preference Model" as:
User Preference Model of "Liked ': User Preference Model of "Disliked
Figure imgf000022_0001
In these expressions, the sums show a simple math model, for reference and easy
understanding of the User Preference Model of the present subject matter. Other embodiments have more complicated representation, such as genre, timestamp, geolocation, time and location for the particular preference, etc.
The User Preference Model may also include social behaviors, e.g. a group of users combined together. For instance, if user A belongs to this particular social group (friends, followers), then user A shares the combined User Preference model. To detect whether User A belongs to this group, we do data classification, e.g. classify the user's preference model. The classification may be based on whether the user's Preference model and the group's combined User Preference model are similar (for instance, by statistical distance within a predetermined threshold).
MUSIC CACHING ENVIRONMENT
[0084] FIG. 5 is a schematic representation illustrating an environment for optimal music caching, according to the embodiments as disclosed herein. The environment 500 includes a plurality of audio clients internally located caches, for example audio client 502a with cache 504a, audio client 502b with cache 504b, audio client 502c with cache 504c and audio client 502n with cache 504n. The audio clients are connected to a Back-end cloud 506 through Internet. Typically, the Back-end cloud 506 is responsible for music streaming services and user preference modeling.
[0085] Embodiments such as that of FIG. 5 typically split role and responsibility between the audio clients and back-end cloud 506.
[0086] The user's real-time feedbacks are captured in the corresponding audio client in its local cache. For example, a user A listens to music on the audio client 502a. Subsequently, the user' s real-time feedbacks are captured in the local cache 504a of the audio client
502a.Whenever, the audio client 502a connects to the back-end cloud 506 through Internet, the captured real-time feedbacks of the user A are uploaded to the Back-end cloud 506 for User Preference Modeling. The User Preference Modeling is trained by a machine learning algorithm run on the back-end cloud 506. Consequently, songs that are unlikely favorite to the user A are removed from the local cache and the user A's favorite songs are downloaded from the back-end cloud music streaming services. Consequently, the user A of the audio client 502a experiences music similar to an online music streaming experience, when Internet access is nonexistent. Automobile application
[0087] In an embodiment, intelligent caching in the systems and methods of the present subject matter may be applied to automobile audio systems. An automobile audio system may contain components and architecture generally similar to that of the user device 106 of FIG. 1. While the automobile is being driven, it may not be feasible to establish an Internet connection. Even if wireless equipment is available for which to establish the connection, the movement of the vehicle through tunnels and underpasses, as well as changes and distortion of signal paths due to the vehicle's movement, may not allow for a connection stable enough to stream content or to successfully complete a download.
[0088] However, in an embodiment, a stable connection may be achieved during a time interval when the vehicle is at a stationary location such as a fuel station or garage, a roadside rest stop or restaurant, etc. In an embodiment, these stationary locations may provide WiFi or other suitable Internet infrastructure, to accommodate a vehicle with wireless capability.
[0089] To enable a user to give feedback on music selections, the automobile may be equipped with suitable user controls. These controls may be standard controls provided with car audio systems. For instance, controls may be mounted on the steering wheel for easy user manipulation and operation. A Skip Forward control, for skipping to the next track, might be construed to mean that the user does not like the track which is currently being played.
Similarly, if the user Skips Back to a track just completed, that could be a sign that the user, who wishes to hear the track again, likes it. Such controls are natural and user-intuitive ways to capture user feedback, to be uploaded to the remote repository 102 for use in identifying other tracks the user might like. As described elsewhere, the user feedback facilitates back- end machine learning, to produce well-chosen cache replacements.
APPLICATION BLOCK DIAGRAMS
[0090] FIG. 6 is a block diagram illustrating an exemplary Smart Phone application, according to the embodiments as disclosed herein. The block diagram illustrates the user device 106 as described in FIG. 1 connected to the Internet 104.
[0091] The user device 106 includes a main module of application 602, an audio playback module 604, a user interface 606, a network module 608 and a local flash storage 610. The main module of application 602 runs a computation unit required for performing the method disclosed herein. Further, the main module of application 602 uses main memory and utilizes motion or Global Positioning System (GPS) sensors. The audio playback module 604 is responsible to replay the audio recorded earlier. The user interface 606 in one embodiment may receive touch screen inputs, or in another embodiment may receive finger gesture inputs over touch screen or other touch sensor (such as capacitance sensor), or in another
embodiment may receive button inputs, such as like, dislike, skip and repeat. The network module 608 is responsible to achieve connectivity between the user device 106 and the Internet 104. Further, the local flash storage 610 is accountable to store audio files.
[0092] FIG. 7 is a block diagram illustrating the system in an exemplary Wireless Headphone application and automobile application, according to the embodiments as disclosed herein. The block diagram illustrates the user device 106 as described in FIG. 1 connected to the Internet 104.
[0093] The user device 106 includes a computation unit 702, an audio playback unit 704, user inputs 706, a network module 708, a rechargeable battery 710 and memory storage 712. The computation unit 702 is configured with ARM Cortex, 512 KB RAM, 2MB Flash (code/data). The audio playback unit 704 is responsible to replay the audio recorded earlier and is configured with Codec, AMP and Speakers. The user inputs 706 includes Like, Dislike, Repeat and Skip. The network module 708 is responsible to achieve network connectivity between the user device 106 and the Internet 104. Further, the rechargeable battery 710 is responsible to charge all the modules of the user device 106. Furthermore; the memory storage 712 is accountable to store audio files.
SYSTEM OPERATION
[0094] FIG. 8 is a flow chart an overall method flow, according to the embodiments as disclosed herein. The illustrated method includes user operation of the user device 106, user selection of cached or downloaded tracks (such as music), user feedback (e.g., like and dislike), and cache updating. The flowchart of FIG. 8 shows activities that take place both at the user device 106 (herein also referred to as an audio client 802), and at the remote repository 102 in the cloud. In general, the steps 814, 818, and 822 take place at the remote repository 102, and the rest of the illustrated steps take place at the user device 106.
[0095] When an audio client 802 is not connected to the Internet at step 804, the audio client functions in an offline mode at step 806.
[0096] At step 808, user feedbacks 806 are retrieved while playing music from the Cache. [0097] At step 810, the audio client 802 connects to the Internet.
[0098] At step 812, the user feedbacks are uploaded from the audio client 802 to the cloud.
[0099] At step 814, the user feedbacks are subjected to Machine learning process. In an embodiment, this takes place in the cloud. The machine learning process basically trains the user Preference Model.
[00100] At step 816, obsolete songs are removed from the cache. In an embodiment, a cache remove strategy is as follows: Remove Tj from cache, so that the Tj track's User Preference Model of "Disliked" is maximized. Typically, the least favorite song Tj is found, that has the highest probability to expect user input "Disliked" event.
[00101] Basically, the steps involved in removing obsolete songs is as follows:
1. Iteratively, remove track Tj from cache, which has highest probability of P(Mj).
2. If no Tj is found in cache, iteratively remove track T; from cache, which has lowest probability of Ρ(¾).
3. Go to step 1 until cache replacement is finished.
[00102] At step 818, the least favorite song is searched and is subsequently requested to be removed.
[00103] At step 820, songs are added to the cache. In an embodiment, a cache addition strategy is as follows:
Add track Ti to cache, so that its User Preference Model of "Liked" is maximized to the observed posteriori. Basically, the best matched track is found that has the highest probability to expect user input "Liked" event.
The following steps are involved to add a song to the cache:
1. Track Ti with highest probability of P(H is iteratively found. Using 3rd party music recommendation engine, similar tracks are found and are subsequently added to the local cache if it is new.
2. The next highest probability of P(H is found. The next batch of similar songs is recommended as Ti and is added to the local cache if it is new.
3. Step 1 is performed until cache is finished. [00104] To enhance offline listening experience, it is preferred to fully replace cache songs and swap them with recommended similar songs as "liked" songs. The best approach for replacing is to maximize the replacement ratio. Subsequently, "divide and conquer" strategy is used to pair "remove and add" per track. The steps involved in the replacement approach is as follows:
1. Sort all tracks from "least favorite" to "most favorite". The sorting is based on trained User Preference Model (probability of "disliked/ liked").
2. Remove a least favorite song from local cache recommended by back-end cloud (based on User Preference Model).
3. Download a new song to local cache by the audio client recommended by the back- end cloud (based on User Preference Model to recommend similar song to the "Liked" songs).
4. Step 2 is performed until network is unavailable or cache is fully replaced.
[00105] At step 822, songs are recommended similar to the "Most-favorite Songs". The favorite songs are requested to be added to the cache.
[00106] At step 824, the audio client disconnects with the Internet and returns to step 804 and forms a closed loop.
SYSTEM BLOCK DIAGRAM
[00107] FIG. 9 is a block diagram of a machine in the example form of a computer system 900 within which instructions for causing the machine to perform any one or more of the methodologies discussed herein may be executed. In alternative embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), cellular telephone, a web appliance, a network router, switch or bridge, or any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine.
Further, while only a single machine is illustrated, the term "machine" shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
[00108] The example computer system 900 includes a processor 902 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), or both), a main memory 904, and a static memory 906, which communicate with each other via a bus 908. The computer system 900 may further include a video display unit 910 (e.g., a liquid crystal displays (LCD) or a cathode ray tube (CRT)). The computer system 900 also includes an alphanumeric input device 912 (e.g., a keyboard), a user interface (UI) navigation device 914 (e.g., a mouse), a disk drive unit 916, a signal generation device 918 (e.g., a speaker), and a network interface device 920. The computer system 900 may also include an environmental input device 926 that may provide a number of inputs describing the environment in which the computer system 900 or another device exists, including, but not limited to, any of a Global Positioning Sensing (GPS) receiver, a temperature sensor, a light sensor, a still photo or video camera, an audio sensor (e.g., a microphone), a velocity sensor, a gyroscope, an accelerometer, and a compass.
Machine-Readable Medium
[00109] The disk drive unit 916 includes a machine-readable medium 922 on which is stored one or more sets of data structures and instructions 924 (e.g., software) embodying or utilized by any one or more of the methodologies or functions described herein. The instructions 924 may also reside, completely or at least partially, within the main memory 904 and/or within the processor 902 during execution thereof by the computer system 900, the main memory 904 and the processor 902 also constituting machine-readable media.
[00110] While the machine-readable medium 922 is shown in an example embodiment to be a single medium, the term "machine-readable medium" may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more instructions 1924 or data structures. The term "non- transitory machine-readable medium" shall also be taken to include any tangible medium that is capable of storing, encoding, or carrying instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present subject matter, or that is capable of storing, encoding, or carrying data structures utilized by or associated with such instructions. The term "non-transitory machine-readable medium" shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media. Specific examples of non-transitory machine-readable media include, but are not limited to, non-volatile memory, including by way of example, semiconductor memory devices (e.g., Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), and flash memory devices), magnetic disks such as internal hard disks and removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks.
Transmission Medium
[00111] The instructions 924 may further be transmitted or received over a computer network 950 using a transmission medium. The instructions 924 may be transmitted using the network interface device 920 and any one of a number of well-known transfer protocols (e.g., HTTP). Examples of communication networks include a local area network (LAN), a wide area network (WAN), the Internet, mobile telephone networks, Plain Old Telephone Service (POTS) networks, and wireless data networks (e.g., WiFi and WiMAX networks). The term "transmission medium" shall be taken to include any intangible medium that is capable of storing, encoding, or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible media to facilitate communication of such software.
[00112] As described herein, computer software products can be written in any of various suitable programming languages, such as C, C++, C#, Pascal, Fortran, Perl, Matlab (from MathWorks), SAS, SPSS, JavaScript, AJAX, and Java. The computer software product can be an independent application with data input and data display modules. Alternatively, the computer software products can be classes that can be instantiated as distributed objects. The computer software products can also be component software, for example Java Beans (from Sun Microsystems) or Enterprise Java Beans (EJB from Sun Microsystems). Much functionality described herein can be implemented in computer software, computer hardware, or a combination.
[00113] Furthermore, a computer that is running the previously mentioned computer software can be connected to a network and can interface to other computers using the network. The network can be an intranet, internet, or the Internet, among others. The network can be a wired network (for example, using copper), telephone network, packet network, an optical network (for example, using optical fiber), or a wireless network, or a combination of such networks. For example, data and other information can be passed between the computer and components (or steps) of a system using a wireless network based on a protocol, for example Wi-Fi (IEEE standards 802.11, 802.11a, 802.11b, 802.1 le, 802.11g, 802.11i, and 1802.1 In). In one example, signals from the computer can be transferred, at least in part, wirelessly to components or other computers.
[00114] It is to be understood that although various components are illustrated herein as separate entities, each illustrated component represents a collection of functionalities which can be implemented as software, hardware, firmware or any combination of these. Where a component is implemented as software, it can be implemented as a standalone program, but can also be implemented in other ways, for example as part of a larger program, as a plurality of separate programs, as a kernel loadable module, as one or more device drivers or as one or more statically or dynamically linked libraries.
[00115] As will be understood by those familiar with the art, the invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Likewise, the particular naming and division of the portions, modules, agents, managers, components, functions, procedures, actions, layers, features, attributes, methodologies and other aspects are not mandatory or significant, and the mechanisms that implement the invention or its features may have different names, divisions and/or formats.
[00116] Furthermore, as will be apparent to one of ordinary skill in the relevant art, the portions, modules, agents, managers, components, functions, procedures, actions, layers, features, attributes, methodologies and other aspects of the invention can be implemented as software, hardware, firmware or any combination of the three. Of course, wherever a component of the present invention is implemented as software, the component can be implemented as a script, as a standalone program, as part of a larger program, as a plurality of separate scripts and/or programs, as a statically or dynamically linked library, as a kernel loadable module, as a device driver, and/or in every and any other way known now or in the future to those of skill in the art of computer programming. Additionally, the present invention is in no way limited to implementation in any specific programming language, or for any specific operating system or environment.
[00117] Furthermore, it will be readily apparent to those of ordinary skill in the relevant art that where the present invention is implemented in whole or in part in software, the software components thereof can be stored on computer readable media as computer program products. Any form of computer readable medium can be used in this context, such as magnetic or optical storage media. Additionally, software portions of the present invention can be instantiated (for example as object code or executable images) within the memory of any programmable computing device.
[00118] As will be understood by those familiar with the art, the invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Likewise, the particular naming and division of the portions, modules, agents, managers, components, functions, procedures, actions, layers, features, attributes, methodologies and other aspects are not mandatory or significant, and the mechanisms that implement the invention or its features may have different names, divisions and/or formats.
[00119] Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.

Claims

CLAIMS: What is claimed is:
1. A computer-implemented system for caching units of information that is downloaded from a remote information repository for availability to a user, the system comprising:
a user device for allowing a user to access the cached units of information from a remote information repository, the user interface device having a processor and a memory cache for storing the cached units of information, and having a user reaction input for receiving indicia of user reaction to the cached units of information;
wherein the user device also has an information selector, for selecting units of information for downloading from the remote information repository and caching, based on similarity between the units of information to be selected, and the cached units of information for which indicia of favorable user reactions have been received;
the user device having an interface to the remote information repository for downloading units of information there from, the selected units of information being downloaded at a time period during which the user is not using the user interface device to access the cached units of information.
2. The computer- implemented system of claim 1, wherein the user device further comprises:
a communication module to handle communication between ports, and to act as a network interface between a communication port on the processor and a network
communication link. The computer-implemented system of claim 1 wherein the remote information repository is in communication with the user device to provide mass storage.
3. The computer-implemented system of claim 2, wherein the user device further comprises:
a user preference module for determining user preference of units of information based on indicia of favorable user reaction received by the user reaction input, at the time of Internet access.
4. The computer-implemented system of claim 4, wherein the remote information repository runs a machine learning algorithm to train the user preference module to perform cache replacement, of music tracks and reference playlist, on the user device.
5. The computer- implemented system of claim 1, wherein the user device captures the user's real-time feedbacks in the memory cache during an offline mode.
6. The computer- implemented system of claim 1, wherein the user device uploads the user's real-time feedbacks to the remote information repository at the time of Internet access.
7. The computer- implemented system of claim 1, wherein the cached units of information include music tracks, and the user device plays the music tracks and reference playlist when Internet access is unavailable.
8. A computer-implemented method for caching units of information that is downloaded from a remote information repository for availability to a user, the method comprising:
capturing a user's real-time feedbacks in a memory cache of a user device while the user listens to music when the user device is in an offline mode;
uploading the captured real-time feedbacks to a remote information repository whenever the user device connects to the Internet;
performing machine learning to identify the user' s music preference as units of information, based on the real-time feedbacks on the remote information repository, wherein the user's music preference are music tracks and playlists;
the remote information repository identifying musical selections which the user is expected to like, wherein the identifying includes evaluating the units of information at one of a track level, an artist level, an album level, and a music genre level
downloading and caching the identified selections to the memory cache to replace the memory cache with the units of information, thereby updating the cache; and
playing music from the updated cache, thereby providing an efficient music streaming experience to the user.
9. The computer-implemented method of claim 9 wherein the real-time feedbacks are explicit feedback and implicit feedback of the user.
10. The computer-implemented method of claim 9 wherein the real-time feedbacks are inputs for performing machine learning.
11. The computer- implemented method of claim 9 and further comprising: receiving indicia of favorable user reaction to the cached units of information.
12. The computer-implemented method of claim 9 and further comprising:
determining user preference of units of information based on the received indicia of favorable user reaction.
13. The computer- implemented method of claim 9 and further comprising:
selecting units of information for downloading from the remote information repository and cache.
14. A computer program product stored on a non-transitory computer-readable medium that when executed by a processor, performs a method for caching units of information that is downloaded from a remote information repository for availability to a user, the computer program product comprising:
capturing a user's real-time feedbacks in a memory cache of a user device while the user listens to music when the user device is in an offline mode;
uploading the captured real-time feedbacks to a remote information repository whenever the user device connects to the Internet;
performing machine learning to identify the user' s music preference as units of information, based on the real-time feedbacks on the remote information repository, wherein the user's music preference are music tracks and playlists and genre;
the remote information repository identifying musical selections which the user is expected to like, wherein the identifying includes evaluating the units of information at one of a track level, an artist level, an album level, and a genre level;
downloading and caching the identified selections to the memory cache to replace the memory cache with the units of information, thereby updating the cache; and
playing music from the updated cache, thereby providing an efficient music streaming experience to the user.
15. The computer program product of claim 15 wherein the real-time feedbacks are explicit feedback and implicit feedback of the user.
16. The computer program product of claim 15 wherein the real-time feedbacks are inputs for performing machine learning.
17. The computer program product of claim 15 and further comprising:
receiving indicia of favorable user reaction to the cached units of information.
18. The computer program product of claim 15 and further comprising:
determining user preference of units of information based on the received indicia of favorable user reaction.
19. The computer program product of claim 15 and further comprising:
selecting units of information for downloading from the remote information repository and cache.
PCT/US2015/043349 2014-08-13 2015-08-03 A user-friendly, network connected learning headphone and related systems and method WO2016025200A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201462037001P 2014-08-13 2014-08-13
US62/037,001 2014-08-13
US201514604669A 2015-01-23 2015-01-23
US14/604,669 2015-01-23

Publications (1)

Publication Number Publication Date
WO2016025200A1 true WO2016025200A1 (en) 2016-02-18

Family

ID=55304493

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2015/043349 WO2016025200A1 (en) 2014-08-13 2015-08-03 A user-friendly, network connected learning headphone and related systems and method

Country Status (1)

Country Link
WO (1) WO2016025200A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070010195A1 (en) * 2005-07-08 2007-01-11 Cingular Wireless Llc Mobile multimedia services ecosystem
US20080005695A1 (en) * 2006-06-29 2008-01-03 Microsoft Corporation Architecture for user- and context- specific prefetching and caching of information on portable devices
US20090112975A1 (en) * 2007-10-31 2009-04-30 Microsoft Corporation Pre-fetching in distributed computing environments
US20100185662A1 (en) * 2003-06-20 2010-07-22 Barile Steven E Method of and apparatus for playing, rating, and downloading songs from internet radio

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100185662A1 (en) * 2003-06-20 2010-07-22 Barile Steven E Method of and apparatus for playing, rating, and downloading songs from internet radio
US20070010195A1 (en) * 2005-07-08 2007-01-11 Cingular Wireless Llc Mobile multimedia services ecosystem
US20080005695A1 (en) * 2006-06-29 2008-01-03 Microsoft Corporation Architecture for user- and context- specific prefetching and caching of information on portable devices
US20090112975A1 (en) * 2007-10-31 2009-04-30 Microsoft Corporation Pre-fetching in distributed computing environments

Similar Documents

Publication Publication Date Title
US11567897B2 (en) Media content playback with state prediction and caching
US10891342B2 (en) Content data determination, transmission and storage for local devices
US9390091B2 (en) Method and apparatus for providing multimedia summaries for content information
US20220210242A1 (en) Predictive caching
US20230333808A1 (en) Generating a Customized Social-Driven Playlist
CN103403705B (en) Loading a mobile computing device with media files
US10678497B2 (en) Display of cached media content by media playback device
KR101977768B1 (en) Selectively recording media content
US11799931B2 (en) Providing related content using a proxy media content item
US11782968B2 (en) Systems and methods for providing media recommendations using contextual and sequential user embeddings
US20160070702A1 (en) Method and system to enable user related content preferences intelligently on a headphone
EP3005135A1 (en) Smart media device ecosystem using local data and remote social graph data
US20220345797A1 (en) System for summary segment association and dynamic selection for viewing with a content item of interest
AU2022200659A1 (en) Mobile content delivery system with recommendation-based pre-fetching
US20130185325A1 (en) Methods and apparatus for providing content based on social networks
WO2016025200A1 (en) A user-friendly, network connected learning headphone and related systems and method
US20230260549A1 (en) Information processing apparatus, information processing method, and program
Zhang et al. Mobile instant video clip sharing with screen scrolling: Measurement and enhancement
US11791920B1 (en) Recommending media to listeners based on patterns of activity
US20230353795A1 (en) Information processing apparatus, information processing method, and program
US11909797B2 (en) Systems and methods for switching between media content
US20230169113A1 (en) Adjusting a playlist of media content items
US20240119098A1 (en) Systems and Methods for Providing Content to Users
US20230111456A1 (en) Systems and methods for sequencing a playlist of media items
JP2016048437A (en) Information processor, information processing method and program

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15831776

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15831776

Country of ref document: EP

Kind code of ref document: A1