Media sequencing method to provide location-relevant entertainment

11651018 · 2023-05-16

Assignee

Inventors

Cpc classification

International classification

Abstract

Systems, methods, and computer-program products are described for determining current location information which includes determining whether an object is moving by comparing the current location information with previous location information. Future location information is calculated and a point of interest is filtered using the future location information. A media asset is then matched to the filtered point of interest and a current score is determined for the matched media asset. Determining a current score includes determining a window in which the matched media asset is geographically relevant to the future location information, and updating the matched media asset score when the future location information changes. An ordered playlist is dynamically generated according to the future location information by repeatedly prioritizing and sequencing matched media assets according to the current score for each matched media asset, and matched media assets are played or displayed in the ordered playlist.

Claims

1. A computer-implemented method, comprising: determining initial location information; determining future location information; filtering one or more points-of-interest based on a calculated proximity to a future location; matching one or more media assets to a filtered point of interest; determining a window in which the one or more matched media assets are geographically relevant to the future location information, and updating the one or more matched media assets when the future location information changes and the one or more matched media assets are less or no longer geographically relevant; dynamically generating an ordered playlist by prioritizing and sequencing the one or more matched media assets one or more times, wherein the one or more matched media assets are prioritized and sequenced according to the geographic relevancy of the one or more matched media assets to the future location information; and playing or displaying the one or more matched media assets in the ordered playlist, wherein when a matched media asset is interactively selected, additional information or different content is presented.

2. The computer-implemented method of claim 1, further comprising: determining movement by comparing current location information with previous location information.

3. The computer-implemented method of claim 1, wherein matched media assets or information are associated with a map.

4. The computer-implemented method of claim 1, wherein points-of-interest include points, polygons, or polylines.

5. The computer-implemented method of claim 1, wherein points-of-interest overlap, and wherein points-of-interest share no matched media assets or one or more matched media assets.

6. The computer-implemented method of claim 1, wherein points-of-interest are stored on a storage device, wherein storage devices are local, remote, removable, or fixed, and wherein storage devices are dynamically updatable within a geographic range.

7. The computer-implemented method of claim 1, wherein media assets include audio assets, video assets, photo assets, textual assets, digital assets, or multi-media assets.

8. The computer-implemented method of claim 1, further comprising: dynamically playing or displaying matched media assets according to current position data associated with a map.

9. A system, comprising: one or more processors; and a non-transitory computer-readable medium including instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including: determining initial location information; determining future location information; filtering one or more points-of-interest based on a calculated proximity to a future location; matching one or more media assets to a filtered point of interest; determining a window in which the one or more matched media assets are geographically relevant to the future location information, and updating the one or more matched media assets when the future location information changes and the one or more matched media assets are less or no longer geographically relevant; dynamically generating an ordered playlist by prioritizing and sequencing the one or more matched media assets one or more times, wherein the one or more matched media assets are prioritized and sequenced according to the geographic relevancy of the one or more matched media assets to the future location information; and playing or displaying the one or more matched media assets in the ordered playlist, wherein when a matched media asset is interactively selected, additional information or different content is presented.

10. The system of claim 9, further comprising: determining movement by comparing current location information with previous location information.

11. The system of claim 9, wherein matched media assets or information are associated with a map.

12. The system of claim 9, wherein points-of-interest include points, polygons, or polylines.

13. The system of claim 9, wherein points-of-interest overlap, and wherein points-of-interest share no matched media assets or one or more matched media assets.

14. The system of claim 9, wherein points-of-interest are stored on a storage device, wherein storage devices are local, remote, removable, or fixed, and wherein storage devices are dynamically updatable within a geographic range.

15. The system of claim 9, wherein media assets include audio assets, video assets, photo assets, textual assets, digital assets, or multi-media assets.

16. The system of claim 9, further comprising: dynamically playing or displaying matched media assets according to current position data associated with a map.

17. A computer-program product tangibly embodied in a non-transitory machine-readable storage medium, including instructions that, when executed by one or more processors, cause the one or more processors to: determine initial location information; determine future location information; filter one or more points-of-interest based on a calculated proximity to a future location; match one or more media assets to a filtered point of interest; determine a window in which the one or more matched media assets are geographically relevant to the future location information, and updating the one or more matched media assets when the future location information changes and the one or more matched media assets are less or no longer geographically relevant; dynamically generate an ordered playlist by prioritizing and sequencing the one or more matched media assets one or more times, wherein the one or more matched media assets are prioritized and sequenced according to the geographic relevancy of the one or more matched media assets to the future location information; and play or display the one or more matched media assets in the ordered playlist wherein when a matched media asset is interactively selected, additional information or different content is presented.

18. The computer-program product of claim 17, further comprising instructions to cause the one or more processors to: determine movement by comparing current location information with previous location information.

19. The computer-program product of claim 17, wherein matched media assets or information are associated with a map.

20. The computer-program product of claim 17, wherein points-of-interest include points, polygons, or polylines.

21. The computer-program product of claim 17, wherein points-of-interest overlap, and wherein points-of-interest share no matched media assets or one or more matched media assets.

22. The computer-program product of claim 17, wherein points-of-interest are stored on a storage device, wherein storage devices are local, remote, removable, or fixed, and wherein storage devices are dynamically updatable within a geographic range.

23. The computer-program product of claim 17, wherein media assets include audio assets, video assets, photo assets, textual assets, digital assets, or multi-media assets.

24. The computer-program product of claim 17, further comprising instructions to cause the one or more processors to: dynamically play or display matched media assets according to current position data associated with a map.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) The present invention is more readily understood from the following detailed description with reference to the accompanying drawings, and wherein,

(2) FIG. 1 depicts a General Overview;

(3) FIG. 2 depicts the method of the Geo Filter;

(4) FIG. 3 depicts the conceptual basis of Geo-Filter P;

(5) FIG. 4 depicts the conceptual bases of Geo-Filters A and L;

(6) FIG. 5 depicts the method of the Asset Filter;

(7) FIG. 6 depicts the method of the Playlist Creation module;

(8) FIG. 7 depicts Play-window Calculation and the Cone of Visibility method of the Playlist Creation module;

(9) FIG. 8 depicts the Playlist Creation loop;

(10) FIG. 9 depicts the Prefix Selection Module of the Playlist loop; and

(11) FIG. 10 depicts the Playback Module.

DETAILED DESCRIPTION OF THE INVENTION

(12) The principles of the present invention may be practiced in the following manner. While three embodiments are described herein, it should be understood that the principles of the invention as claimed are not limited by these described embodiments.

(13) General Overview

(14) Referring to FIG. 1, the space-borne GPS system of satellites 101 transmits GPS signals which are received by a GPS receiver in the device, and interpreted by the Location Determination Module 102. Alternately, location information is provided by other means, such as cell-phone tower triangulation. This location data is passed to the Motion Analysis module 103. By comparing with previously-received data, the Motion Analysis module determines if the user is moving. If not, it passes current location data 104 to the Geo Filter module 106. But if the user is moving, the Motion Analysis module calculates speed, direction, and future location data 105 which it also passes to the Geo Filter module.

(15) A Geo database 108 on a remote server 107 provides a lookup array of geocoded information regarding POIs (Points of Interest) to the Geo Filter 106. More explanation as to how the Geo Filter works is given below. The networked Geo database is accessed on an as-needed basis and may be cached locally.

(16) The Asset Database 109 on a remote server is a listing of audio and visual assets contained in the Network Asset library 110, and includes a variety of metadata associated with each asset, including which POIs may trigger the asset, class information, other criteria which will be factors in when to play the asset, and text information. The networked Asset Database is accessed on an as-needed basis and may be partially cached locally.

(17) Data from the Asset Database is passed to the Asset Filter 111. More explanation as to how the Asset Filter works is given below.

(18) A set of qualifying assets are passed to the Playlist Creation module 112, which creates a playlist of the next n assets which are determined best to be played in the near future, as calculated by the movement of the user. This is the heart of the invention. More description of Playlist Creation module 112 is given below.

(19) A playlist of n assets having been selected, the playlist information is passed to the Media Acquisition module 114. If a needed asset is not cached locally, this module acquires it from the Network Asset Library 110, using any transmission means available including wireless and/or internet protocol. Assets which are expected to be used in the near future are cached, so there will be no problem with missing data in a low-bandwidth or data-blackout situation.

(20) In Playback module 115, each asset is triggered at its assigned time. The module creates electric audio signals which are sent to the unit's or vehicle's existing AN Player for playing in speakers or headphones. In the airplane-based embodiment of the invention, the signal created by the invention may be integrated into the In-Flight Entertainment system's current channel lineup, and exist as its own channel.

(21) The Playlist Creation module 112 may also output a visual representation of the next n assets to the unit's Visual Display 113 so users can read what to expect in the near future.

(22) The Playback module may also output data to the Usage Log 116 to create a history of which asset was played, and when. This data is used for several purposes, such as reporting for music rights, reporting for advertising placement, and user data analysis for use in quality control.

(23) Practical Note on Size of Media Storage

(24) The different embodiments of the invention dictate different needs for media storage which are dictated by the quantity of POIs, as follows:

(25) Quantity of POIs: airplanes. It is useful to calculate an ideal quantity of POIs to create an interesting, varied, and non-stop audio program. Consider the airplane embodiment. At cruising altitude, POIs such as cities can be seen comfortably up to about 30 miles away, from either side of the airplane. This creates a viewing corridor 60 miles wide. With this in mind, it is calculated that, to create a continuous program that would provide relevant content for any possible route over the 48 contiguous states of the US, there should be about 20,000 POIs identified for that area.

(26) Cache Size: airplanes.

(27) Audio assets will range in length from short ID's of a POI (which may last for only 5 seconds), to documentary-style features (can be any length, averaging 1 to 4 minutes), to songs (average length is 3.5 to 4 minutes). It is calculated that a varied mixture of such assets to cover 20,000 POIs would amount to about 100 hours of audio time. With current MP3 compression, this requires about 6 gigabytes of storage space. It is not unreasonable to load this entire media library onto the system of an aircraft's IFE avionics or onto a removable storage device. Therefore, little asset refreshment is necessary except for updates, which may occur, for example, weekly.

(28) However, the handheld and automotive embodiment requires a different storage proposition, with more frequent updates.

(29) Quantity of POIs: handheld units and car navigation units. It is envisioned that the program will be used to provide GPS-based entertainment wherever people or automobiles may go, and that the entertainment content and advertiser content will be dynamically updatable. Therefore, the size of the asset library is theoretically unlimited, and the media acquisition capabilities must be on-demand. One way of accomplishing this, for example, is to have the unit download all relevant assets within a range of a few miles.

(30) Geo-Filter Module

(31) Referring to FIG. 2, we can understand how the Geo Filter Module works.

(32) The administrator of the program creates a large GeoDatabase 202, referred to as D, which resides on remote server 201. In the airplane embodiment of the invention, D may be, for example, a list of 20,000 points, representing cities, mountains, and other visible points of interest across the United States. Each record in the list contains a POI name and latitude and longitude.

(33) The first step in the process is to reduce D to a subset of qualifying POIs QP (209), based on location information provided by the Motion Analysis module. QP represents every possible POI which is relevant at a given position.

(34) There are three filters to select these POIs: Filter P (203), Filter A (205), and Filter L (207), which select Points, Areas, and Lines, respectively. The reason for three filters is that the mathematical calculation of proximity is different for each shape of POI. More detail about the methods of each filter is given below. The results of these filters are Subset P (204), Subset A (206), and Subset L (208). Together, these constitute the total subset of qualifying POIs QP (209).

(35) Filter P Conceptual Basis

(36) Referring to FIG. 3, we can understand the conceptual basis for Filter P, which selects qualifying points.

(37) For the handheld and car embodiments of the system 301, a point 302 qualifies by a simple point-to-point distance calculation, so that any point within, for example, a radius 500 feet should qualify.

(38) Distance Method Versus Cone of Visibility

(39) However, referring to FIG. 4, it can be seen that in the airplane embodiment of the invention, the distance method has a drawback.

(40) Consider, in Distance Method 401, points P1 and P2. PI is closer to the airplane than P2. However, because it is almost directly in front of the airplane, it cannot be seen by the passengers out of their windows. If the invention's goal is to identify points that can be seen out the window, P1 should not qualify with the airplane at its current position. But P2, which is at a more advantageous angle, should qualify.

(41) The Cone of Visibility Method 402 fixes this problem. Using geometric calculations, it ensures that qualifying points fall within a visible cone to the right or left of the airplane.

(42) Consider point P2 in this method. From point P2, a line is calculated at right angles to the airplane's route. The intersection of these lines is perigee(P2) (404), which by definition is the closest location the airplane will ever get to P2. Two more lines are calculated, at plus and minus 45 degrees divergent (403) from the line from P2 to perigee(P2). The points at which these lines intersect the airplane's route represent the beginning and end of the “Play Window” for that particular point, called PWstart(P2) (405) and PWend(P2) (406). The point P2 qualifies only if the airplane is within this Play Window.

(43) The practical implications of this are that points that are further away from the airplane's route (such as P2) have a larger Play Window, and hence there is more flexibility as to when they may be played. Points that are closer to the airplane's route (such as PI) have a smaller Play Window, and the timing for these points is more critical.

(44) The result of this method is that points do not qualify unless (weather conditions and daylight permitting) they are actually comfortably visible out of the windows of the airplane, in a cone that extends 45 degrees forward and 45 degrees backward.

(45) If points qualify under filter P, they can be added to Subset P: the set of eligible point-shaped POIs 204.

(46) Filters A & L—Conceptual Basis

(47) Referring to FIG. 5, we can understand the conceptual bases for Filter A, which selects qualifying areas 501, and Filter L, which selects qualifying lines 504. The filters are applicable in all embodiments of the invention.

(48) POIs that are areas 502, commonly referred to in the mapping field as polygons, include items such as lakes, state parks, and states. The test determines if the user is in or above any portion of such an area, or if it is within visible distance. The filter geometrically calculates a buffer 503 of width N. If the user is within this buffer, or in or above the POI itself, the area-shaped POI is (weather conditions and daylight permitting) considered to be visible, and hence in contention.

(49) POIs that are lines 505, commonly referred to in the mapping field as polylines, include straight and non-straight items such as rivers, highways, and geographic borders. The filter geometrically calculates a buffer 506 of width N. If the user is within this buffer, the line-shaped POI is (weather conditions and daylight permitting) considered to be visible, and hence in contention.

(50) Asset Filter

(51) Referring to FIG. 6, now that we know where we are and what POIs we are near, we must check to see if there are media assets available that are relevant to the POI.

(52) Media assets vary in length and variety. In the first incarnation of the program it is assumed that most will be MP3 audio files. One example may be 2 seconds in length, consisting of a narrator saying the words, “The East River.” Another example may be a 2-minute long mini-documentary explaining crop irrigation circles. Other media assets will be songs, which usually average 3.5 minutes in length.

(53) The Asset Filter module considers: for each point in subset QP (601), is there an asset in the asset database 603? There may be no asset available specifically for a given POI, but there may frequently be a selection of assets more generally relevant to that POI. For example, if the POI is the state of Texas, there are many songs about the state, all of which are eligible to be played.

(54) The Asset Matchup accesses the Asset database 602 on the remote server 601, performs a matchup 604 to see which assets qualify to be played given for any of the qualifying POIs in subset QP (601). The filter creates Subset QA (605), which is a list of all assets which may be played for any or all of the qualifying POIs. This list is passed to the Playlist Creation Module.

(55) Playlist Creation Module

(56) Referring to FIG. 7, we can understand the method of the Playlist Creation Module, which chooses a single asset from the subset of all qualifying assets, Subset QA, and then iterates the process to create a playlist of several sequential assets.

(57) By referring back to FIG. 1, we are reminded of the difference between POIs and assets. Whereas “POIs” are geographic Points of Interest, “Assets” are pieces of media such as short MP3 s, which are relevant to certain POIs. The Playlist Creation Module is concerned with prioritizing not the subset of POIs Subset QP, but that of Assets, Subset QA.

(58) The program first determines the current mode 701. Depending on the mode, different rules apply. If the mode is “Turn on” 702, the program will choose a “Welcome” asset before changing the mode to “Cruising” 704. This creates a pleasing introduction to the program as the unit is turned on, or as the airplane takes off. If the mode is “State Line” 703, the program will execute a script of assets. For example, first, the narrator will notify us that we are leaving the old state. Then we will be welcomed to the new state. Then, a celebrity from that state will greet us, and then a sponsor will have a message. After that, the mode is changed to cruising 704, and there is much more freedom for the program to choose assets. There may be other specialized modes; these are only given as examples of how modes affect playlist selection.

(59) Cruising Mode 704

(60) This is the main mode of the program. For the sake of variety, there is a pattern 705 which the program is designed to follow: song-ID-Feature-10. This is an underlying but breakable rule, which creates a pleasing experience so that, for example, songs are not back-to-hack, but alternate with smaller assets such as IDs.

(61) The program tests each asset in Subset QA 706, and assigns each a score 707. At this point, the program is similar to a radio playlist scheduler. There are many factors involved in calculating the score of an asset, including, as shown: Is the POI's Play Window close to ending? If “yes”, the score is promoted, because “chances are running out” to play the asset. Are we close to the perigee of the POI? If yes, the score is promoted. The ideal spot for playing an asset is when the user is at the perigee, or slightly before. Is the asset-type the next one in the pattern (song-ID-feature-ID)? If so, the score is promoted. The scoring system allows for the pattern to be imposed, but not as an iron-clad rule, as other factors may overrule the pattern. Add “importance” factor. Some assets may, in the opinion of the Administrator, be simply more important to play than others. This factor would be a piece of metadata attached to the asset. If, for example, the Chicago Cubs were to win the World Series, the asset declaring this news would be assigned a high “importance” factor, so the asset is virtually certain to be played when the airplane is within range of that area. Can it overlap with current asset? One capability of the program is to fade down a song, play an ID, and fade the song back up. Therefore, two assets must be able to be played at the same time. If the current asset is a song, other assets may play at the same time, provided that the song is currently within a “Window of Opportunity” (a television-programming term also known as “WOO”), which is a pre-defined section where other assets may be overlapped over it. Are there high-priority POIs (such as a state line) coming up in: 30 seconds? 1 minute? 3 minutes? Can this asset fit before that time? This step allows the program to “squeeze in” assets as appropriate. Has this POI been rejected several times? (promote if yes). This step ensures that low-priority assets eventually “get their chance” and are not always outranked by higher-priority assets. If the low-priority assets have been in contention for a long time, their score will gradually increase until they are high enough for playing. Other factors to be determined. The invention's overall design may be refined upon implementation, but this module in particular will continue to benefit from improvements informed by use.

(62) The program includes a setup utility which allows the Administrator to impose and change custom rules 708. For example, the Administrator is able to change the relative importance of each factor discussed above.

(63) The program also includes the capability to integrate User Rules & Filters 709. Method of input vary from device to device, but it can be, for example, via a selection of choices shown on a touch-screen. Some users may be interested in sports-related assets, so the program would be weighted and/or filtered for such assets. Other user preferences may include, for example: kids' version, documentary-only, music-only, no overlapping over music, and Spanish-language.

(64) The program will also integrate a User Model 710, in which preferences are stored.

(65) Once the scores are calculated for all eligible assets, there may be ties or close scores. A random number generator 711 helps choose among these scores. For example, for any given state there may be several songs which generate exactly the same score, as the Administrator has no reason to prioritize one above the other. This creates variety for users who often travel the same route, so they will not always hear the same sequence of assets.

(66) A single asset is chosen by the top score 712, and added to the playlist.

(67) The Playlist module then is iterated a number of times n in a loop 713, to generate a complete playlist for output to the Media Acquisition module.

(68) Iteration

(69) Referring to FIG. 8, we can understand the method of the Playlist Loop. The Playlist Creation module 801 considers a finite number of slots n, in which are listed the next assets that are predicted to be relevant considering the user's motion. In practice, a reasonable value for n may be 5.

(70) Once an ideal asset is selected, it is processed by the Prefix Selection Module 802, which determines if the asset needs a prefix such as “12 miles away on our left . . . ”. More information on the Prefix Selection Module is given below.

(71) The program must then look forward to determine the next assets: when they will play, and where the vehicle will be when they are played. The program calculates 803 time Tdone(n) when prefix(i) and asset(i) would be done. It then calculates 804 the position (x,y) where the user will be when the assets are finished playing, based upon the assumption that the user will continue in the same speed and direction. With this forecasted position data, the program can repeat the selection process. The loop repeats n times, thereby loading up n slots of asset selections into the future. This information will be passed to the Player module for triggering at the appropriate time. The information can also be passed to a playlist display.

(72) The Playlist Module need not run continuously, and in fact, should not, to conserve CPU activity. It may be adequate for the loop to be executed once every 15 seconds, to make sure that the user's position, bearing and speed are correctly calculated, and the playlist can be updated or corrected accordingly.

(73) Prefix Selection Module

(74) Referring to FIG. 9, we can understand the method of the Prefix Selection Module, which chooses a spoken audio “prefix” asset such as “10 miles to our right.” The prefix is composed of two elements: distance and “left/right”.

(75) Consider an airplane 901, traveling along a predictable route.

(76) Distance to points P1 and P2 (902) are easily calculable through geometric formulae. The program rounds the distance figure to the closest match within the spoken assets, whether it be “1 mile,” “5 miles” or “10 miles.”

(77) Then, to determine if a POI is to the “right” or “left” in relation to the route of the vehicle, the program starts by determining the slope of the airplane's route (903). The word “slope” is used in the geometric sense, and describes the angle at which the airplane is traveling across the latitude/longitude grid.

(78) Then, the program determines the slope from the airplane to the POI (904). The two slopes are compared, creating a deviation measured as angle theta. If this angle is positive as with P1 in the illustration, then the POI is to the left. If it is negative, as with P2, it is to the right. The asset is chosen accordingly (905). The “suffix” is the asset in which the actual name of the POI is spoken, such as, “Saint Louis Arch.” When the chosen prefix is followed by the chosen suffix, the result (906) will sound like, “12 miles on our left, the Saint Louis Arch.”

(79) Playback

(80) Referring to FIG. 10, we can understand the method of the Playback module. At the assigned moment, assets are sent from the Media Acquisition module to the Playback module, where they are made to play by the device.

(81) If the asset 1002 includes a prefix 1001, the prefix is first triggered 1003, and then immediately upon finishing, the main asset is triggered. If the vocal recording is executed correctly, this creates the impression of a single sentence 1004.

(82) The Media Player also “mixes” the sound, occasionally playing two assets at once, such as in the case of background music and foreground narration, and adjusts sound levels accordingly.

(83) The foregoing describes a method for provisioning entertainment and information programming that is location-relevant, and in particular, to a method for providing such programming to handheld devices, automobiles and airplanes. Persons of ordinary skill in the art may make several modifications to the disclosed embodiments without significantly departing from the spirit and scope of the inventive principles. All such modifications or rearrangements should be understood to be within the scope of the claims appended.