Patent Publication Number: US-7584291-B2

Title: System and method for limiting dead air time in internet streaming media delivery

Description:
This application is a continuation of U.S. patent application Ser. No. 09/570,837 filed on May 12, 2000 now abandoned. 
    
    
     FIELD OF THE INVENTIONS 
     The inventions below relate to the field of internet communications. 
     BACKGROUND OF THE INVENTIONS 
     Recently, radiobroadcasters have begun transmitting their audio content over the internet, allowing consumers to listen to radio stations received over the internet and played through computer speakers. For a home user to receive radio station “netcasts” over the internet, the user must have a personal computer, an internet account, browser software such as Internet Explorer® or Netscape Navigator®, an audio processing software “plug-in” capable of processing audio information, and a radio simile graphical interface. An Internet Radio Receiver and Interface, described in our co-pending application U.S. application Ser. No. 09/334,846, hereinafter referred to as internet appliance, incorporates all of the necessary computer hardware and software needed to connect to the internet and communicate with various sources of audio information such as radiobroadcasters. 
     Audio files are typically large and if downloaded as a whole could take fifteen minutes of wait time for each one minute of audio played. A process called streaming audio allows the user to listen to the audio while it downloads to their internet appliance (as opposed to downloading a music file and playing the file after the download is complete). There are a number of streaming audio formats available. The common ones today include Real Networks G2 and G7, Microsoft Windows Media, Shoutcast MP3 and Icecast MP3. 
     When a user changes the internet radio station he is listening to, the internet appliance must (a) establish a data connection with the new internet radio station, (b) receive and store streaming audio data into a data buffer, and (c) start playing the streaming audio data from the head of the buffered data while adding new streaming audio data to the tail of the buffered data. Step (b) here is commonly called buffering or pre-buffering and may take on the order of several seconds to about 10 seconds or more depending on the user&#39;s connection quality to the network, network traffic, and the characteristics of the streaming audio to which the user is trying to connect. Currently, this dead air time is filled with silence and is visually represented (when the streaming media is received through a computer with a screen) with a small “progress bar” or message announces how much of the buffering has been completed. When the buffer level reaches 100% the user then starts to hear audio from the computer. Savvy internet radio listeners are accustomed to such delays in getting access to internet content. However, when one breaks the assumption that internet radio will always be listened to at a computer where the user is looking at some visual display, then the dead air time is annoying. Our internet radio appliances mimic the functionality of a traditional FM radio, allowing the user to listen to internet “radio stations” through an appliance that does not require a fully functional personal computer, and instead functions in a manner similar to a traditional radio or audio receiver. In the embodiment of our internet radio system, the dead air time is unacceptable and potentially confusing. The dead air time incident to buffering and pre-buffering, however, can be filled with audio content as desired. 
     SUMMARY 
     To address and eliminate dead air time incident to negotiation, buffering and pre-buffering when connecting an internet appliance to an internet media server, the system and method described below identify the dead air time and provide alternate audio content during negotiation, buffering and pre-buffering. “Pre-rolls”, or short pieces of audio content, are stored in the internet appliance or a system management server and played during the dead air time. These pre-rolls are played during the time between the user selecting a new station and the start of the audio playing from the new station stream. Thus, the dead air time between changing internet radio stations has been eliminated. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of system. 
         FIG. 2   a  is a block diagram of storing IRQQ audio data into the play buffer and playing IRQQ audio data out from the play buffer. 
         FIG. 2   b  is a block diagram of storing IRKR audio data into the play buffer and playing pre-roll data out from the pre-roll storage. 
         FIG. 2   c  is a block diagram of storing IRKR audio data into the play buffer and playing IRKR audio data out from the play buffer. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTIONS 
       FIG. 1  is a block diagram of the system and is comprised of an internet appliance  1 , the system management server or internet radio database server  2  and the individual internet content providers, here shown internet radio station IRQQ  3  and internet radio station IRKR  4 . 
     The internet appliance  1  is the user interface whereby the user can select the desired internet radio station by simply tuning it in, just as you would a traditional radio. The internet appliance  1  is fully described in our co-pending application Internet Radio Receiver and Interface, U.S. application Ser. No. 09/334,846 and incorporated herein in its entirety. Internet Radio Receiver and Interface describes devices and method for receiving radio broadcasts (webcasts) over the internet in a device that resembles a typical radio receiver. The hardware is housed in a radio box separate from a personal computer, and the interface is a panel of physical radio knobs, buttons, FM and AM channel indicators, etc., on the radio housing. Inside the radio box, necessary computer components and software permit connection to the internet and communication with various sources of audio information. In one embodiment, the device is a completely stand-alone device that a consumer can plug into a telephone line, ISDN line, local area network, or cable line and select radio stations with the same type of controls as a typical radio. In another embodiment, the device is a box that communicates with the internet through the user&#39;s personal computer, which must then have an internet connection and internet software installed and operating and communicate with audio components, to play the audio content. In third and fourth embodiments, the internet appliance is either a personal computer or a web TV with the necessary browser software, audio processing software, and radio simile graphical interface. 
     The internet content database server such as internet radio database server  2  processes the user&#39;s request and is the primary interface to the internet appliance  1 . The internet radio database server  2  maintains, in this example, internet radio station information, including a list of stations (audio content providers), their streaming media format, bit rate output, and associated URL. The internet radio database server  2  also maintains a list of “pre-rolls”, fully described below, for each of the internet radio stations. The internet radio database server  2  talks to the internet appliance  1  so that the server knows at what bit rate the user is connected to the internet (56K, ISDN, DLS for example) and what streaming media format the user&#39;s player requires (streaming MP3 for example). 
     Since audio data files are large, a process called streaming audio allows the user to listen to the audio while it downloads to their internet appliance. When the user selects an internet radio station, the internet appliance  1  sends a request to the internet radio database server  2 . The internet radio database server responds with the URL of the internet radio station (the media content server) the user wants to play and also has instructions that tell what internet appliance audio processing software is required to play the requested audio content. The internet appliance, database server, and media content server negotiate to arrange the transmission of streaming audio content to the client. The requested audio content has, in most instances, been compressed and encoded. If the file was not compressed, the sound file would be too large and would be too long to send and be played with currently available internet connections. The requested audio content is transmitted in “packets” of compressed audio, and these packets are sent to a buffer on the internet appliance. Once the buffer is full, the internet appliance starts to play the audio. Thereafter, the streaming process provides an uninterrupted stream of audio content to the audio components of the client system. However, the negotiation and buffering take some several seconds, creating a long gap of time between selection of a station and eventual play of the station&#39;s audio content on the client&#39;s audio system. 
     To fill the gap, referred to by analogy as dead air time, short pieces of audio content are played during the time between the user selecting a new internet radio station and the start of audio playing from the new station stream. We refer to these short pieces of audio content as “pre-rolls” or “clips.” From the user&#39;s perspective, this eliminates the dead time when changing stations. There are a number of possible content alternatives for the pre-rolls. The pre-roll can contain verbal announcement, to announce to the user the station identification such as “This is IRQQ Cool Jazz from San Francisco”. There is the possibility of playing a musical clip from the station. Alternatively, a locally generated audio clip (from the user&#39;s ISP, for example) might be inserted also, for example, “You have new mail.” The station identification or other clips might be mixed with a musical background which is longer than the spoken text and may be looped to cover an extended buffer time. Naturally, the announcement could also indicate the progress and status “buffering fifty percent completed”. 
     The “pre-rolls” can be stored locally, in pre-roll storage  5 , in the internet appliance playing the internet radio content as shown. Storage  5  may be any form of computer memory, including a computer hard disk, flash memory or the like. The pre-rolls do not require much storage if stored in a compressed format such as MP3. Locally generated audio content could also be generated by software either stitching together smaller audio pieces, a local synthesizer playing midi or a local software speech synthesizer. 
     Basically, any computer memory accessible to the client computer, either locally or through the internet, may be used to store any number of files of audio content suitable for use a pre-rolls. Pre-rolls could be stored on the system management server or on a separate a high performance server (not shown) which is in network terms on the internet, very close to the end user. This means that the expected jitter is low and the buffering for the pre-roll can be minimal. This network pre-roll could be combined with a local pre-roll on the local machine which might be only a second or two. This would allow more flexibility in the updating of the pre-rolls as they do not have to be sent to each end user&#39;s system. 
     The pre-rolls stored on the user&#39;s local system may be updated transparently to the user either when the system is idle or in the background when there is spare bandwidth. For example, user specific information (an announcement of waiting mail on the user&#39;s mail server) can be loaded into pre-roll storage during transmission of audio content. Pre-rolls for the user&#39;s favorite stations could be updated first and more often than those for stations infrequently used. 
     A clip could be stored from the last time the user listened to a particular internet radio station. One or more pre-rolls could be stored for each station in the database and the choice of which pre-roll is sent to a particular internet appliance could be on the basis of some user data such as language preference. 
     In the system shown in  FIG. 1  and detailed in  FIGS. 2   a  through  2   c , the user is already tuned to internet radio station IRQQ  3 , and is receiving streaming audio in an uninterrupted steady state. Packets of data arrive from IRQQ and are added to the tail of the play buffer while audio is played from the head of the play buffer, shown in  FIG. 2   a . The size of the play buffer decreases if there is network congestion and packets arrive late. The user hears audio from IRQQ, slightly delayed in time due to both network transport delay but more significantly, due to the play buffer. The internet appliance is still playing from IRQQ. The user then turns the tuning knob (or station selector) to select IRKR. The system management server is programmed to communicate with the client computer and receive the request for IRKR, and direct the client computer to play at least one of the pre-roll audio files while the client computer is negotiating a connection with the audio content provider IRKR and buffering content provided in streaming media format by IRKR&#39;s server. The internet appliance starts feeding data from the locally stored pre-roll for IRKR to the user, shown in  FIG. 2   b . The user hears the pre-roll for IRKR start essentially immediately. The internet radio appliance requests the stream for the new station and the internet radio database server redirects the internet radio appliance to the stream from IRKR. The pre-roll for IRKR continues to play. The internet radio appliance and the internet radio station IRKR negotiate a connection and the audio is buffered into the play buffer. The pre-roll continues and if the negotiation and buffering take a long time the internet radio appliance might insert a message to say that the buffering is 75% completed for example. When the play buffer is sufficiently full, the audio is switched from the pre-roll to the stream from the play buffer, shown in  FIG. 2   c . Switch over from the pre-roll to the streaming media is accomplished by the client computer upon determining that the play buffer is sufficiently full. The user now starts to hear the stream from IRKR. 
     Thus, while the preferred embodiments of the devices and methods have been described in reference to the environment in which they were developed, they are merely illustrative of the principles of the inventions. Other embodiments and configurations may be devised without departing from the spirit of the inventions and the scope of the appended claims.