The present invention relates to digital media delivery and playback, and in particular to systems and methods for implementing detailed audio attribute mapping in personalized media delivery systems.
Many radio and audio services utilize a scheduling system to help automate the generation of audio element ordering or playlists. These systems rely on attributes for different kinds of audio, primarily songs. Such attributes can be, for example, a mixture of (i) publicly available data such as, for example, Genre, Classification, Category or Tempo, on the one hand, as well as (ii) custom defined attributes such as, for example, “Groovy”, “Discovery”, etc. Typically, such scheduling systems will use a rich set of attributes to provide powerful and fine granular control over which songs may be algorithmically recommended.
In a customized radio streaming service, the end-user may be given the ability to refine or select programming which is presented to them. One approach to achieving this is to present the user with a range of controls which may be mapped to attributes contained within the scheduling system.
What is needed in the art are systems and methods for the representation and delivery of attributes to effect a personalized server, methods to map controls to these attributes, and also provides methods to simplify the controls presented to the end-user and which attributes they may map to.
In a customized content delivery service, such as, for example, a personalized music streaming service delivered over various wireless networks, an end-user can be given the ability to refine or select programming which is presented to them. One approach to achieving this is to present the user with a range of user preference controls, such as sliders, which can be mapped to attributes contained within the scheduling system. Thus, systems and methods are presented for the representation and delivery of such attributes to effect a personalized server, to map controls to these attributes, and to simplify the controls presented to an end-user. In exemplary embodiments of the present invention a song or audio content recommender may use channel specifications and a user profile, as dynamically modified and updated by user preferences expressed via said user preference controls, to generate user and channel specific playlists, to give a user the personalized audio experience he or she actually desires.
Reference will now be made, by way of example, to the accompanying drawings which show example embodiments of the present invention, and in which:
In exemplary embodiments of the present invention a user can access a personalized media delivery system on a client device, such as, for example, a handheld device such as a smartphone, tablet, or other portable device. Such an exemplary device is shown in
Finally,
The delivery of content from a Content Service Provider to various other functional elements is illustrated in
In exemplary embodiments of the present invention it is these custom tags that can be used by a recommender to select songs based on settings in sliders and what those slider positions are mapped to. Thus, as shown, User Preference Controls 640, comprising, for example, a slider, allow a user to control what tempo of song he or she prefers to hear. This value can then be used by the recommender to filter songs, by accessing the value of custom tag “Tempo” in the clip record 630 for each audio clip in a library associated with a given channel. It is noted that Content Delivery, as used both in
It is further noted that, in general, in a content distribution system such as is depicted in
The overall process for populating the Distributer, Recommender and Client Device in various exemplary embodiments of the present invention is depicted in
It is noted that the division of labor, and thus the various functions performed by each of Distributer, Recommender and Provider as described herein are logical, and merely exemplary. Various exemplary embodiments of the present invention may combine some or all of these functions into one single actor or entity, or divide any of them into multiple actors or entities, all being within the scope of the present invention.
Beginning at 1001 in
In exemplary embodiments of the present invention, mappings between the Content Service Provider and the Client Device can be implemented so as (i) to permit an easy user preference selection mechanism, while at the same time (ii) maintaining a potentially complex mapping to a set of attributes as defined in the Content Service Provider System. In exemplary embodiments of the present invention a general approach can be to permit (i) a set of algorithms to be used by the Recommender that (ii) use the control settings as defined in the channel specification to (iii) deliver a particular recommendation. Additionally, it is the very same channel information that describes how these control settings are displayed to a user on a Client Device. It is further noted that a given back end system (content service provider) may use many sources of information for the mapping function, each such system defined by their own field labels. For example, in this description there are two such systems: enFieldValues and mmFieldValues, however more and other systems can be used in various exemplary embodiments, the ones described herein being merely exemplary.
With reference to
It is noted that in
In exemplary embodiments of the present invention, an exemplary User Interface (UI) can, for example, contain multiple sliders or controls, which can interact to help steer or refine the end user experience. An example of multiple controls might be Mood and Tempo. In many cases it is highly desirable to prioritize the effect of one fader over another, or to set priorities for multiple faders or controls. In such a case any fader would have a relative value or weighting. In the example of
Specification 1410, and an exemplary set of User Preference Controls, here sliders, comprising a generic slider, “Slider” and a custom slider “Rock Decade.” The key concept to note in discrete mappings is that the Recommender will select only clips that are drawn from the set that conform with the specification in the <controlSetting>. For a 1:1 simple mapping this means that when the slider is in ordinal setting 0, content will only be recommended if it is tagged as having a field “sound” with the value “H.” I.e., all clips are marked by Programming with tags (see 630) where the tag maps to an attribute field (in this exemplary system, H=‘60s Hard Rock’). Thus, for this channel there is a set of clips that are marked with <customTag>‘sound’ with a value “H.” The recommender thus selects a song from this set only. Similarly, for the other two defined slider positions, when the slider is in ordinal setting 1, content will only be recommended if it is tagged on as having a field “sound” with the value “K” (70s Hard Rock), and when the slider is in ordinal setting 2, content will only be recommended if it is tagged on as having a field “sound” with the value “R” (80s Hard Rock). The slider is read as being in one of these three defined discrete positions, and no others, unlike the case of continuous mappings as shown in
It should be remembered that the description above applies to the case of one slider only. In general, various other sliders will also contribute to the selection of music to be provided. In the general multiple slider case, each slider has a weight (control weight), and this weight can be used, for example, to provide a proportion on the number of songs from which the recommender will select. As can be seen at 1410, the slider “Rock Decade” has a weighting of 0.10:
In exemplary embodiments of the present invention it is possible to map several back end attributes to a single control setting. One example of this is a preference control which recommends Rock Discovery music. This could be represented in a slider labeled “60s” at one end and “70s” at the other end. In this case, the slider in the left position would drive recommendation of all 60s music (as identified by a customTag) and the slider in the right position would drive recommendation of all 70s music (as identified by a customTag). The middle position could, for example, be defined to drive recommendation of mostly 60s music with some 70s by specification of both categories.
In some cases, it may be desirable to map multiple Recommender attributes to a single slider, or slider position. This may be represented by a union of values as shown in
Position 1: 70s Songs
Position 2: 70s Songs, Upbeat
Position 3: 70s Songs, Upbeat, Reggae
Position 3: 70s Songs, Upbeat, Reggae, Dance
A refinement of the Union type mapping, which may imply a Linear or Binary mapping of an attribute or attributes, is a Table Based Mapping methodology. Here one may map a discrete slider, with a finite number of positions, to a large number of back end system attributes, and provide a weighting for each of those system attributes at that value. Consider the example of Table 1 below, where a slider has 3 discrete positions: Slider Position 1 would drive values to the backend recommender of No Classic, No 70s, with a 70/30 percent ratio of Disco/Rock songs. Slider Position 2 would provide an even blend of Classic, Disco, Rock and 70s songs, and Slider Position 3 would provide a weighted blend of Classic, Disco, Rock and 70s songs in the ratios of 40%, 25%, 25% and 10%, respectively. Similar variations of music mix ratios can be constructed along these lines, and additional columns can be used as well. For example, there could be eight columns, and some exemplary table entries can access all eight music type categories, or some only four, or six, etc., as may be desired. The permutations that are possible are essentially endless.
As can be seen, at slider position 0 there is provided a weighted mix of four attributes, PR, SE, DE, and TE, whereas at slider positions 1 and 2 there is a weighted mix of eight attributes, namely A, D, B, L, PR, SE, DE, and TE. It is here noted that conceptually multiple attributes can be used in a table or matrix type mapping, and various weights to each attribute at each slider position. This potential complexity needs to be balanced with simplicity on the user or client side.
As is illustrated in
As shown in
In exemplary embodiments of the present invention, it is possible to reflect slider combinations through a number of approaches, such as, for example, Spider Plots, as illustrated in
A simplification of this approach is to provide a User Interface which provides a single control point on an XY axis. In this case, values would be driven in a single quadrant, allowing customization of 2 sets of values, as the control point is moved away from the XY origin.
In exemplary embodiments of the present invention, to implement a cross-fade effect between two songs sent to a client device as described above, an audio track can be preprocessed with fade up/fade down before it is sent to a client device. The client device would then align two such tracks correctly, and play the two tracks at unity gain, no fade being required to be implemented by a Client Device using such an approach.
One variation is to provide ruleset labels rather than exact annotation of the playlist behavior adjustments being expressly described. In such an exemplary embodiment, an identification label may be used, and the rules that are associated with the label, such as, for example, frequency distributions, time separations, segue protections, etc., may be defined separately and loaded into the recommender via a separate path. Such an exemplary embodiment is described in detail in the next section.
The following is a specification of an exemplary system contemplated to be used by assignee hereof, Sirius XM, in a personalized music service based on Sirius XM's broadcast service. Thus, the channels defined track those offered on the Sirius XM broadcast service, and thus draw on a very similar pool of audio content specific to each channel (with overlap, of course) but can be modified as to content and “feel” by a user of the personalized service in a unique way. The specification describes how control settings can be used to manipulate a listening experience based on automation system elements as used in an exemplary music personalization service, and further describes how data elements for Channel, Clips and Client Devices can be leveraged to effect recommendations based on a User Personalized Channel Experience.
As depicted in
It is necessary to be able to properly map the back-end data elements from the Content Service Provided to the client device control settings. This mapping can be accomplished through specifications of the Channel that include elements that are applicable to the Distributer, Recommender and Client Device, for example. In what follows, the Client Device settings are called the Client Device Control Settings, and the Channel perspective of these specifications are called the Channel Control Settings.
An exemplary client device can, for example, have a set of Client Control Settings.
On an exemplary client device side the control settings can, for example, be represented using a tagged structure in XML as depicted in the following example:
It is noted that in exemplary embodiments of the present invention, a client device need not be responsible for interpretation of, or even be aware of, the recommendation algorithm being used. It need only be responsible for representing the control settings and for communicating these control settings to a Distributer (and from thence to a Recommender) and the behavior of the settings given the algorithm selected.
Exemplary information associated with device control settings that emanates from a Channel Specification is depicted in
In exemplary embodiments of the present invention, a channel specification can contain an overview of the channel, including the name of the channel, DMCA compliance description, channel default cross fade information, and a specification of the attribute values supported in the channel, such as, for example:
DMCA compliance can, for example, be managed at the channel level; therefore, DMCA compliance elements for the channel are described in the overview XML, as shown above. Details of the field interpretations can be provided in a Metadata Specification
Crossfade data can be represented as a data blob and passed through from, for example, the Distributer to the Client Device when the channel is first tuned. In this exemplary system, there is no requirement for the Distributer to interpret crossfade data. Interpretation of crossfade can thus, for example, be done on the Client Device.
In exemplary embodiments of the present invention, a Channel Specification may describe all the content within the channel, as shown below.
In exemplary embodiments of the present invention, a Channel Control Settings specification describes how Device Control Setting Data (as described above) can be augmented with Recommender rule set specifications to permit recommendation based on the values of a particular piece of content (as described, for example, in a clipRecord). Thus, the Channel Control Settings as delivered by the Service Provider to the Recommender and Distributer can contain information necessary for the Distributer to manage Channels and the Recommender to perform Recommendations based on them. The structure of this is next described.
In exemplary embodiments of the present invention, the Channel Control Settings extracted by the Distributer can be used to construct the Client Device Control Settings. Although the Channel Control Settings are contemplated as being provided to the Distributer as an XML feed, the interactions between the Distributer and the Client Device can use a json transport. Moreover, names can be contracted to reduce overhead.
In exemplary embodiments of the present invention, an instance of a particular audio clip provides information that related to these values. An example of a clipRecord (non-relevant fields deleted for clarity) follows:
In exemplary embodiments of the present invention, mappings between a Content Service Provider and a Client Device can permit an easy user preference selection mechanism while maintaining a potentially complex mapping to a set of attributes as defined in the Content Service Provider System. One exemplary approach is to permit a set of algorithms to be used by a Recommender that use the control settings as defined in the channel specification to deliver a particular recommendation. The very same channel information describes how these control settings are displayed at the client.
In other words, the ‘mapping’ defines an algorithm for the recommender to make recommendations and an algorithm for slider interpretation on the client device. Details of various such algorithms are discussed in more detail below. It is noted that these may be associated with sliders that are either continuous or discrete (fixed positions).
5.1 pureRuleset Mapping
A pureRuleset Mapping permits a control setting (for example, a slider) to be mapped to one or more rule sets (e.g., bundles of rules provided by a recommender under a single label). The rule set in question can be defined by the Recommender using Recommender APIs and associated with a label. The rule can be associated with a particular client's taste profile by loading it with the taste profile. The pureRuleset model permits either continuous or discrete control settings, next described.
One exemplary algorithm permits pureRuleset using Continuous control (e.g., slider) settings. This means that, for example, a client my select the Tempo of a customized song playlist using a continuous slider, as indicated in
Min and Max Values.
The exemplary mapping for the slider in
Spacing.
In exemplary embodiments of the present invention, spacing of each value and label, can, for example, also be represented (as a percentage) using the <spacing> element. A value of 30, for example, indicates a slider Spacing along the axis of 30%.
Weighting.
In exemplary embodiments of the present invention, User Interface (UI) can contain multiple sliders or controls, which can, for example, interact to help steer or refine the End User experience. An example of multiple controls might be Mood and Tempo. In many cases it is highly desirable to prioritize the effect of one fader over another, or multiple faders or controls. In this case any fader would have a relative value or weighting (as a percentage). In the example provided below the Mood slider can be given a weighting of 90 or 90%. The Tempo slider can similarly have a weighting of 10 or 10%. In this case, modification of the Mood slider position would have a much more dramatic effect on the Recommended playlist than modifying the Tempo slider, which may only affect the Tempo of recommendations within a certain Mood category.
DefaultOrdinal.
In exemplary embodiments of the present invention, indicates the position of the slider in the unselected default position. A defaultOrdinal value of −1 can indicate, for example, that the control is to be ignored for the purposes of defining the listening experience.
DefaultRuleSet.
In exemplary embodiments of the present invention, a default ruleset can be used to indicate that the control is to be ignored for the purposes of defining the listening experience. It is noted that the defaultRuleSet is not the same as any particular slider position. Thus, it is possible to define a control setting for sliders that are ‘not used’ In the example of
Thus, a recommender can furnish songs as provided by the <ruleset> element for the particular slider current position based on a percentage weighting for in accordance with the continuous position of the slider. When a rule set is loaded into the Recommender it can, for example, adjust rules that were set for the slider previously and use the new weights. An exemplary mapping between the XML in the Channel Control Settings and the rule invocation by the Distributer to the Recommender is illustrated in
An exemplary mapping between the client side channelControlSettings and the channel specification for the discrete case (in which sliders have only fixed positions, and are represented by a set of ordinal values) is illustrated in
It is here noted that the recommender will furnish songs as provided by the <ruleset> element for the particular slider current position. When a rule set is loaded into the Recommender it unloads rules that were previously set for the slider. The mapping between the XML in the Channel Control Settings and the rule invocation by the Distributer to the Recommender is illustrated in
It is also noted that this description applies for one slider only. Other sliders, in general, will also contribute to the selection of music to be provided. Thus, each slider has a weight (control weight), and this weight can be used to provide a proportion on the number of songs from which a recommender can select.
As is indicated in the preceding section, channel and client steering control setting information can, for example, be furnished by calls from the Distributer to the Recommender. The following provides an overview of the interactions and references relevant use cases.
6.1 System API Key (Use Case: Client Personalized Data) Interactions between Distributer and Recommender assume a single API Key:
The first time a user tunes to the personalized experience a User's Taste Profile can, for example, be created for that user, and a sessionID stored by the Distributer for subsequent servicing of requests (corresponding to Create UserID in Use Case):
http://developer.XXXXX.com/api/v4/catalog/create?api_key=N6E4NIOVYMTHNDM8J&name=clientID&type=song&format=json (“XXXXX being a generic designaor for a distributer)
This can return, for example, a catalogeID.
The catalog create call can thus return a catalog ID that should be associated with the user, and this ID can be used in subsequent calls. The catalog will need to be populated with songs for which client personalization data exist (this would tie into a social media use case) and forms the USER_CATALOG. It is noted here that this population may, for example, be performed in a “lazy” fashion, i.e. the full scope of incorporation of a user's taste profile may be accomplished while content is being received and listened to by the client. It is thus not necessary for this to be performed before the first song is heard by the client.
Assuming that a client taste profile has been created it is thus possible to create a Dynamic Playlist for the delivery of content. It is assumed a channel rule set (e.g. for personalized channel based on SXM's “ALT NATION” channel) ALT_NATION_RULESET can be extracted from the Channel Control Settings for the channelKey. We pass the api_key, the type of dynamic playlist (a steerable Station Radio), the seed_catalog of the client (USER_CATALOG), the base Rule Set to load (ALT_NATION_RULESET), select the channel specific catalog (ALT_NATION_CATALOG_ID), and the session catalog (USER_CATALOG_ID):
http://developer.XXXX.com/api/v4/playlist/dynamic/create?api_key=N6E4NIOVYMTHNDM8J&type=stat ionradio&seed_catalog=USER_CATALOG_ID&ruleset=ALT_NATION_RULESET&bucket=id:ALT_NATION_CATALOG_ID&session_catalog=USER_CATALOG_ID&limit=true
This returns, for example, a sessionID: “7bf982d80ed8421c8c94dbd6de565e9d”
6.4 Channel Controls Instantiated when Client Tunes to Channel (Use Case: Authentication/Channel Tune)
It is noted that whenever the client device tunes to a new channel the channel profile should be loaded and the default rule sets applied. It is assumed the channel rule set is extracted from the Channel Control Settings for the channelKey (e.g. “70son7”):
http://developer.XXXX.com/api/v4/playlist/dynamic/steer?api_key=N6E4NIOVYMTHNDM8J&enable-ruleset=70son7&format=json&session_id=7bf982d80ed8421c8c94dbd6de565e9d
It is then necessary to add the current settings stored as part of client personalized data.
Foreach Channel Control Setting (Slider) in channel:
If the slider is not being used then the client device should have returned a value of −1 for the current settings, to be interpreted as unused, and this information should be available to the Distributer (either stored previously or as an update) in which case the channel default settings are retrieved and used.
(If the Channel is being created then the channel default settings are retrieved and used:
http://developer.XXXX.com/api/v4/playlist/dynamic/steer?api_key=N6E4NIOVYMTHNDM8J&enable-ruleset=<default-settings>&session_id=7bf982d80ed8421c8c94dbd6de565e9d)
6.5 Delivering Content with Last Five (Use Case: Delivering Content)
The first time the content is played from a particular channel it is useful to preload the past listened to songs from the Client Device. To preload songs in the play history a ‘dynamic/feedback’ method can, for example, be used, like so:
Foreach songID in list of songs returned from client:
http://developer.XXXX.com/api/v4/playlist/dynamic/feedback?api_key=N6E4NIOVYMTHNDM8J&format=json&session_id=3c717a4465dc4a2ba871747a2044f44184play_song=songID
It is noted at this juncture that many parameters associated with dynamic feedback permit multiple occurrences. Therefore the above objective could be accomplished by construction of the API with many play_song parameters.
Whenever a current track is coming to a close, an exemplary ‘next track list’ can be obtained from a recommender and passed to the Client Device.
To get the next track a dynamic/next method can be used, as follows:
http://developer.XXXX.com/api/v4/playlist/dynamic/next?api_key=N6E4NIOVYMTHNDM8J&format=json&session_id=3c717a4465dc4a2ba871747a2044f441
To skip:
http://developer.XXXX.com/api/v4/playlist/dynamic/feedback?api_key=N6E4NIOVYMTHNDM8J&format=json&session_id=3c717a4465dc4a2ba871747a2044f441&skip_song=last
or:
http://developer.XXXX.com/api/v4/playlist/dynamic/feedback?api_key=N6E4NIOVYMTHNDM8J&format=json&session_id=3c717a4465dc4a2ba871747a2044f441&skip_song=songID
To like a song:
http://developer.XXXX.com/api/v4/playlist/dynamic/feedback?api_key=N6E4NIOVYMTHNDM8J&format=json&session_id=3c717a4465dc4a2ba871747a2044f441&favorite_song=songID
To like an artist:
http://developer.XXXX.com/api/v4/playlist/dynamic/feedback?api_key=N6E4NIOVYMTHNDM8J&format=json&session_id=3c717a4465dc4a2ba871747a2044f441&favorite_artist=artistID
For Content Delivery interactions between a Distributer and a Recommender, including: song skips, song likes and artist likes, for example, the behavior can be similar, as follows:
Whenever the user changes a channel control (slider) settings the new client settings are returned back to the Distributer via the XML (JSON) messages. These messages are then interpreted and result in calls to the recommender to load new rule sets.
Foreach Channel Control Setting in channel:
In exemplary embodiments of the present invention, the behavior of a channel model change (i.e. changes to the slider controls as issued by Service Provider) can result in a reset of the client settings to their default positions. Therefore, whenever the channel model changes the new Channel Control Settings should be passed to the Client Device. The Client Device can then populate the UX appropriately. Concurrently, the Distributer can, for example, use the new Channel Model Setting Rule Set to create a new dynamic playlist. When the user changes the channel, it is necessary to ‘restart’ the session. The dynamic/restart method accepts the sessionID and all the same parameters as dynamic/create. The session history can be maintained after the restart. For example, if a user switches to 70s on 7, one would restart the session as follows:
http://developer.XXXX.com/api/v4/playlist/dynamic/restart?api_key=N6E4NIOVYMTHNDM8J&type=station-radio&seed_USER_CATALOG_ID&ruleset=70s_ON_SEVEN_RULESET&bucket=id:70S_ON_SEVEN_CATALOG_ID&session_catalog=USER_CATALOG_ID&limit=true.
It is here noted that there may be a period during a channel model change when the user is attempting to set values that the recommender is unaware of, either because the rule sets have not yet been loaded into the recommender, or the rule sets reflect elements that are no longer available. In either case, it is essential that the player continue to play music. Error codes returned by the Recommender should be handled gracefully and logged.
The use of the mapping documents may be better understood with reference to a particular channel. The channel example provided is for ‘70s on 7’, a channel with a well understood corpus of material. Given the specifications of the ‘70s on 7’ channel, the informal ‘control setting’ to ‘attribute’ specification from programming for ‘70s on 7’ can be, for example, as follows:
It is noted that each channel can, for example, be defined differently. Therefore, the attribute names and codes used above can differ from the text for ‘70s on 7’ that is described below.
It is noted that the UX (User Interface) screenshot shown in
The various examples provided below illustrate the flexibility that programming has in defining a channel based on the defined control settings. These settings are not intended to define the exact behavior of a ‘70s on 7’ personalized channel; rather, they are intended to simply illustrate channel control settings.
A Personalization Experience for ‘70s on 7’ can be provided by three linear discrete sliders labeled, for example, Tempo, Variety and Sound. This experience can thus be modeled using three sliders and a ‘simple’ mapping. The following example, as well as numerous other examples provided above and in the respective figures, are taken form prototypes and designs developed by the inventors for Sirius XM Radio Inc., applicant hereof.
The channel control specification on the client device side can thus be represented as follows:
A channel control specification on the recommender side can, for example, be represented as follows:
A channel control specification on the recommender side can further be represented to include as follows:
Interstitial elements are short audio clips that are used to provide station jingles, promos (brief announcements that promote some event/asset), celebrity endorsements etc. Interstitials are represented using the same audio compression as other assets but are usually shorter in duration (from a few seconds to 30 seconds). Interstitial elements are represented by clipRecords in much the same way as songs, except that they are tagged by the audio category interstitialArtist, interstitialGeneral or promo. From a programming perspective, interstitials can be tagged with relevant categories, and can, for example, be included into the playlist by the inclusion of the appropriate rules into the channel specifications, so that the recommender includes them at the correct locations.
From a channel specification perspective interstitials are considered to be a controllable element just like any other clipRecord and are therefore their occurrence in a playlist can represented as a controlSetting with exactly two (2) positions. Because interstitials have a somewhat different representation on the client device, they are manifest as a new controlType called “button”. A button signifies a binary control setting that should be displayed as a button. This controlType information is expected to be passed thru and made available to the client device. An example representation of an interstitial control setting, as communicated by the Service Provider to the Distributer/Recommender can be, for example:
As with all other rules, if interstitial control settings are provided for a particular channel, the Distributer is responsible for enabling the appropriate rulesets based on the default position, and for allowing the position to be changed based on steering from the client device. In this manner Interstitials behave exactly like other control settings.
From a channel specification perspective it is possible to hide from the User the client device side adjustments to interstitials. The ability to hide a control setting from users view can, for example, be manifest as a new controlVisibility which can be “hidden” or “visible”. In exemplary embodiments of the present invention, this information is expected to be passed thru and made available to the client device. From a UI perspective this implies that the button to change interstitials is invisible (or grayed out etc.) and may not be adjusted by the User, however the value may be adjusted just like any slider by the client device.
From a content distribution perspective interstitial clipRecords can be indicated by the <category> field. In exemplary embodiments of the present invention, this information can, for example, be passed thru to the client device whenever a clip is played is made available for playout via the genreName. The genreName can, for example, be composed of a dotted notation starting with the <category> field as provided to the Distributer, and then augmented with the topic/subtopic fields if available. Such as, for example, “interstitialGeneral”, or “music.jazz.neworleansjazz”.
A channel can, for example, be un-personalized by the client; this indicates that the user wants to re-enter the personalization service as though they had not personalized the channel previously, i.e. reset the personalization to the channel defaults (thereby erasing the effect of their various preferences and listening habits, effectively a “restore system defaults”). This service function can be accomplished by the client device providing a channel steer with NULL channel specification.
Every controlSetting may have an optional tooltip as indicated by the optional <controlTooltip> field. This field may be used to provide a general narrative for the controlSetting. In addition, each term position within a control setting from having an optional name, the term position may also have an optional <tooltip> field. This field can be used to provide a general narrative for the term position.
In exemplary embodiments of the present invention, the following illustrate exemplary rule sets that can be used for a personalized channel with user control:
Default channel ruleset:
As shown in
1) Recommender: Provides an API layer which permits for the composition of channel base rule sets, and the composition of ‘per slider setting’ rule sets as well as creating a users ‘taste profile’ which uses them.
2a) Service Provider: Programming compose rules at abstract level.
2b) Programming create base rule sets and per slider setting rule sets using Producer Dashboard.
2c) Dashboard interacts with Recommender APIs to create the channel base rule set, and the ‘per slider setting’ rule sets.
2d) Dashboard permits playlist generation and testing of rules
3) Service Provider: Pushes out channel
details to client, recommender and distributer.
3a) Distributer has access to the names of the channel ‘base rule sets’ based on specifications provided by content service provider.
3b) Distributer is responsible for using Recommender APIs to create user taste profiles for each user based on client personalization data.
3c) Distributer is responsible for loading a users taste profile with channel base rule set when user tunes to channel.
3d) Distributer is responsible for loading the ‘per slider setting’ rule set based on the current settings
3e) Distributer is responsible for communicating client device related channel control information to client.
4a) Client device receives channel control information, playlist information, and current settings from Distributor.
4b) Client provides updates to Distributer.
Thus, as shown in
Group: Client UX (User Interface) creates:
For each slider
As shown in FIG. 30—Group: Client Development creates:
With reference thereto,
The methods and systems of the disclosed subject matter are optionally used in a computerized network environment, comprising one or more computing platforms and client devices, which themselves are provided with one or more data processors and related components. Each program may be independent and activated by a user, or may be activated by another program or service. Each program can supply one or more services which may require different parameters.
A computing platform used for the methods disclosed above can be a server, a desktop computer, a laptop computer, a client device such as smartphone or tablet, or any other computing platform provisioned with a Central Processing Unit (CPU) and memory and communication interface. Each program, application or service can comprise one or more sets of interrelated computer instructions, implemented in any programming language and under any development environment. A user may, for example, access the portal from the computing platform that executes the portal, from a client device, or from any other computing platform or device connected through a communication channel such as a Local Area Network (LAN), Wide Area Network (WAN), the Internet, intranet or the like, using any communication protocol.
It will be appreciated by a person skilled in the art that the disclosed systems and methods are exemplary only and that multiple other implementations can be designed without deviating from the disclosure. Any component or step can be split into a multiplicity of components or steps, while multiple components or steps can be combined into one. It will also be appreciated that further generally known or available components or steps may be required, such as utility components or steps for handling communication, storage, backup, user management, or the like.
It will be appreciated by persons skilled in the art that the present disclosure is not limited to what has been particularly shown and described hereinabove. Rather the scope of the present disclosure is defined only by the claims which follow this disclosure (following the Appendix). Those of ordinarily skill in the art will recognize that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof. Those of ordinary skill will further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection With the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To illustrate some exemplary embodiments, functional aspects of the invention have been described in conjunction with various blocks, modules, circuits, and steps. Whether such functionality is implemented as hardware, software, or both depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
The following is an exemplary XML which can be used in exemplary embodiments of the present invention.
It is noted that ruleset identification can be used as a conduit to convey information as to what to do for recommendation for user controls, such as sliders. Thus, in what follows, the type of channel specification is somewhat different than the examples discussed above, and is of the following type:
This application is a US national stage application of PCT/US2013/029721, filed on Mar. 7, 2013, and which published as WO 2013/134567, which itself claims the benefit of U.S. Provisional Patent Application No. 61/607,532, filed on Mar. 6, 2012, each of which is hereby fully incorporated herein by this reference.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US13/29721 | 3/7/2013 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
61607532 | Mar 2012 | US |