Patent Publication Number: US-11650789-B1

Title: System for creating audio snippet of the given podcast audio file and related methods

Description:
TECHNICAL FIELD 
     The present disclosure relates to the field of audio processing system, and, more particularly, to an audio podcast distribution system and related methods. 
     BACKGROUND 
     A podcast is a program made available in digital format (typically audio format) for download over the Internet. Although not required for the format, most podcasts are episodic in nature, for example, delivered daily or weekly. The popularity of podcasts has increased substantially over the last decade even though the format is nearly twenty years old. Indeed, the format arguably languished for the first few years of its existence. For example, in 2006, podcast awareness was a mere 22% of the United States population, and that figure has risen to 78% in the next sixteen years. 
     One of the main drivers of the popularity of the format was the improvement in the applications for listening to podcasts. In the early years, podcast applications were application specific and did very little else. As the format became more mature, several large players in the mobile software field integrated podcast functionality into their audio players, which increased access to the format. More importantly, ecosystems within those audio players developed and permitted ratings and rankings of podcasts. 
     Once drawback to podcast applications is the inability for users to share the podcasts. Most applications permit you to share the podcast feed so others may subscribe to the same format. Some applications may even permit you to share the entire podcast in a compressed format, such as MP3. Nonetheless, for long form podcasts, which can last several hours, this is a bit cumbersome and inconvenient for the user. 
     SUMMARY 
     Generally, an audio podcast distribution system includes a server configured to aggregate and store a plurality of podcast audio files in a database, and at least one computing device in communication with the server. The at least one computing device comprises a processor and a display coupled to the processor. The processor is configured to render an audio playback graphical user interface (GUI) on the display for playing a given podcast audio file from the database. The audio playback GUI includes a playback control user input, and an audio snippet creation user input. The processor is configured to when the audio snippet creation user input is activated, render an audio snippet creation GUI for generating an audio snippet of the given podcast audio file, and upload the audio snippet of the given podcast audio file to the database. 
     In particular, the audio snippet creation GUI may include a visual waveform input, and an audio snippet creation playback control user input. The visual waveform input may include a displayed audio waveform, and a slidable time domain selection input for the audio snippet of the given podcast audio file. The displayed audio waveform may comprise a waveform extending for an entirety of the given podcast audio file. The slidable time domain selection input for the audio snippet may have a default position based upon a current playback position in the given podcast audio file. The server may be configured to add the audio snippet of the given podcast audio file to the database, and generate a custom link to access the audio snippet within the database. 
     In some embodiments, the at least one computing device may comprise a plurality of computing devices configured to respectively upload a plurality of audio snippets to the server, and the server may be configured to rank the plurality of audio snippets based upon heuristics data for respective users associated with the plurality of computing devices. The heuristic data may comprise audio playback data and audio playback completion event data. The processor may be configured to render an audio snippet discovery GUI on the display for viewing the plurality of audio snippets, the audio snippet discovery GUI configured to receive swipe input to scroll through the plurality of audio snippets. 
     Another aspect is directed to a method for operating at least one computing device in an audio podcast distribution system comprising a server configured to aggregate and store a plurality of podcast audio files in a database. The at least one computing device is in communication with the server. The method includes rendering an audio playback GUI on a display for playing a given podcast audio file from the database, the audio playback GUI comprising a playback control user input, and an audio snippet creation user input. The method further includes when the audio snippet creation user input is activated, rendering an audio snippet creation GUI for generating an audio snippet of the given podcast audio file, and uploading the audio snippet of the given podcast audio file to the database. 
     Yet another aspect is directed to a non-transitory computer-readable medium for operating at least one computing device in an audio podcast distribution system comprising a server configured to aggregate and store a plurality of podcast audio files in a database. The at least one computing device is in communication with the server. The non-transitory computer-readable medium has computer-executable instructions for causing the at least one computing device to perform steps comprising rendering an audio playback GUI on a display for playing a given podcast audio file from the database. The audio playback GUI comprises a playback control user input, and an audio snippet creation user input. The steps further comprises when the audio snippet creation user input is activated, rendering an audio snippet creation GUI for generating an audio snippet of the given podcast audio file, and uploading the audio snippet of the given podcast audio file to the database. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG.  1    is a schematic diagram of an audio podcast distribution system, according to the present disclosure. 
         FIGS.  2 - 16    are screenshots of an example embodiment GUI from the computing device of the audio podcast distribution system of  FIG.  1   . 
     
    
    
     DETAILED DESCRIPTION 
     The present disclosure will now be described more fully hereinafter with reference to the accompanying drawings, in which several embodiments of the invention are shown. This present disclosure may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the present disclosure to those skilled in the art. Like numbers refer to like elements throughout. 
     Referring initially to  FIG.  1   , an audio podcast distribution system  100  according to the present disclosure is now described. The audio podcast distribution system  100  illustratively includes a server  101  configured to aggregate and store a plurality of podcast audio files  102  in a database  103 , and a plurality of computing devices  104   a - 104   n  in communication with the server over the Internet  105 . The server  101  is configured to check for new podcast audio files  102  periodically, for example, every 15 minutes. As will be appreciated, the server  101  may use Really Simple Syndication (RSS) feeds to monitor for new files. 
     The server  101  may comprise one or more of assigned resources on a cloud computing platform (e.g. Google Cloud Platform, Amazon Web Services, and Microsoft Azure) and a stand-alone computing device. For illustrative clarity, only one of the plurality of computing devices  104   a  is shown in detail, but it should be appreciated that the other computing devices may be similarly constituted. Also, the plurality of computing devices  104   a - 104   n  may comprise one or more of the following computing device types: a mobile device type, a mobile cellular device type, a tablet computing device type, a desktop computing device type, or a laptop computing device type. 
     The computing device  104   a  illustratively comprises a processor  106  and a display  107  coupled to the processor. In some embodiments, the display  107  may comprise a touchscreen input display. In other embodiments, the computing device  104   a  may include other input/output devices, such as a mouse device or keyboard device. 
     The processor  106  is configured to execute podcast software for accessing the server  101  and the plurality of podcast audio files  102  in the database  103 . As will be appreciated, the podcast software may be implemented via a native operating system of the computing device  104   a , and/or be implemented within a web browser, for example, using Web 3.0 features. As will be appreciated, the podcast software includes a GUI with multiple subpart GUIs. 
     Referring now additionally to  FIGS.  2 - 16   , the processor  106  is configured to render an audio playback GUI  110  on the display  107  for playing a given podcast audio file  102  from the database  103 . The audio playback GUI  110  includes a playback control user input  111  (i.e. the play/pause button, the rewind 15 seconds button, and the forward 15 seconds button), and an audio snippet creation user input  112 . The processor is configured to when the audio snippet creation user input  112  is activated, render an audio snippet creation GUI  113  ( FIGS.  12 - 15   ) for generating an audio snippet  114  of the given podcast audio file  102 , and upload the audio snippet of the given podcast audio file to the database  103 . 
     In the illustrated embodiment, some or all of the plurality of computing devices  104   a - 104   n  are configured to respectively upload a plurality of audio snippets  114  to the server  101 . The server  101  is configured to rank the plurality of audio snippets  114  and the plurality of podcast audio files  102  based upon heuristics data for respective users  115   a - 115   n  associated with the plurality of computing devices  104   a - 104   b . The heuristic data may comprise audio playback data and audio playback completion event data. In some embodiments, the server  101  is configured to push a ranked list of the plurality of audio snippets  114  to the respective users  115   a - 115   n  of the plurality of computing devices  104   a - 104   n.    
     The server  101  is configured to add the audio snippet  114  of the given podcast audio file  102  to the database  103 , and generate a custom link to access the audio snippet within the database. The server  101  may be configured to process the received audio snippet  114  into a compressed audio format, for example, an MP3 file format. In some embodiments, the custom link to access the audio snippet  114  within the database  103  comprises a uniform resource locator (URL) link for accessing the audio snippet from the Internet  105 . The custom link to access the audio snippet  114  within the database  103  is parsed by social media crawlers to extract metadata, which permits sharing on the respective social media platforms. 
     Moreover, the server  101  is configured to monitor access to the custom link to generate additional heuristics data. Also, the podcast software tracks the listening behavior of the respective user  115   a - 115   n  for reporting to the server  101 . The podcast software will track audio plays, pauses, scrubbing along the progress bar, and audio playback completion events. Each event is time stamped and includes the playback position within the audio. This allows the server  101  to determine the time spent listening to the given podcast audio file  102 . 
     In some embodiments, the server  101  is configured to process the plurality of podcast audio files  102  to generate suggested audio snippets for the respective users  115   a - 115   n . In particular, the server  101  is configured to generate the suggested audio snippets based upon the heuristics data. In some embodiments, the server  101  is configured to generate the suggested audio snippets based upon a machine learning model. In particular, in a supervised machine learning model, the inputs of the supervised machine learning model would be the waveforms of the plurality of podcast audio files  102 , metrics from the waveforms indicative of arguments (i.e. high absolute signal levels), and the heuristics data. The output of the supervised machine learning model would be the suggested audio snippets. The supervised machine learning model may be a trained using the created audio snippets in the respective users  115   a - 115   n  as training data. 
     Also, the server  101  is configured to rank subscribed RSS feeds with a priority factor metric. The priority factor metric may be based upon heuristics data noted herein and serves as a proxy for the popularity of the associated podcast audio files  102 . The server  101  is configured to poll higher priority factor metric sources first, and then sequentially lower thereafter. For example, the server  101  is configured to poll 0.8 metric value or greater first, then 0.6 metric value or greater, and then 0.4 metric value or greater first. 
     In some embodiments, the server  101  is configured to use persistent unique identifiers of the respective user  115   a - 115   n  to aggregate advertising data, such as web browsing history, search history, and social media interaction history. For example, if the respective user  115   a - 115   n  has been browsing jogging websites and searching for jogging shoes, the server  101  is configured to recommend suggested audio snippets for the respective user associated with the topic of jogging. Indeed, this advertising data may be included as an input in the machine learning embodiments. 
     In some embodiments, the server  101  is configured to render an analytics GUI for displaying the heuristics data, and other user statistics. The analytics GUI may include a user version for the respective users  115   a - 115   n , and a creator version for podcast authors to monitor the popularity of their podcast audio files  102 . In the creator version UI, the authors may designate multiple categories and subcategories for their content files. Also, the server  101  is configured to render a content management system (CMS) creation tool/GUI for trending topics now. 
     In the illustrated embodiment, the server  101  is configured to store the plurality of podcast audio files  102 , the uploaded audio snippets  114 , and associated metadata for these files in the database  103 . The associated metadata may also include keywords and tags, which can be searched within the podcast software. In other embodiments, the storage may be partially on the plurality of computing devices  104   a - 104   b.    
     In some embodiments, the podcast software may include a playlist UI for storing a queue of podcast audio files  102 , and audio snippets  114 . The playlist queue may be curated by the respective user  115   a - 115   n , feature podcast authors, and ranked lists of system wide audio snippets. 
     Referring now to  FIGS.  2 - 5   , in particular, the processor is configured to render a GUI including a home screen GUI  116  on the display  107 . The home screen GUI  116  illustratively includes a top suggested podcast menu  117 . The top suggested podcast menu  117  comprises a suggested podcast audio file  102  for the respective user  115   a - 115   n  based upon the heuristic data associated with the respective user. The home screen GUI  116  illustratively includes a continued playback menu  120  (i.e. restarting prior podcast audio files  102  that were partially listened to), and a most recent audio snippet menu  121  for accessing recently created audio snippets by the respective user  115   a - 115   n.    
     The home screen GUI  116  illustratively includes a suggested audio snippet menu  122  including a set of suggested audio snippets  114  from the database  103  for the respective user  115   a - 115   n  based upon the heuristic data associated with the respective user. The home screen GUI  116  illustratively includes a plurality of subject matter specific menus  123   a - 123   b  including categorized audio podcast files. 
     Referring now to  FIGS.  6 - 8   , in particular, the processor is configured to render a GUI including a favorites screen GUI  124  on the display  107 . The favorites screen GUI  124  illustratively includes tabs  125   a - 125   b  accessing a listing  126  of audio podcast files that have been noted as “liked” within the podcast software, and a listing  127  of audio snippets  114  that have been noted as “liked” within the podcast software. As shown, there are two liked audio podcast files, and three liked audio snippets  114 . If the respective user  115   a - 115   n  selects any of the liked audio snippets  114 , the GUI transitions to a snippet playback GUI  130  shown in  FIG.  8   . The snippet playback GUI  130  includes a like button  131  for toggling the liked status of the given audio snippet  114 , and a share button  132  for sharing the given audio snippet. 
     Referring now to  FIGS.  9 - 10   , in particular, the processor is configured to render a GUI including a library screen GUI  133  on the display  107 . The library screen GUI  133  illustratively includes tabs  134   a - 134   b  accessing a listing  135  of audio snippets  114  that have created with the podcast software, and a listing  136  of audio snippets  114  that have been shared with the podcast software. As shown, there are two created audio snippets  114 , and no shared audio snippets. 
     Referring now to  FIG.  11   , in particular, the processor is configured to render a GUI including an audio playback GUI  110  on the display  107 . The audio playback GUI  110  illustratively comprises a playback control user input  111 , an audio snippet creation user input  112 , a like button  137  for toggling the liked status of the given audio podcast file, and a share button  140  for sharing the given audio podcast. 
     Referring now to  FIGS.  12 - 15   , the processor  106  is configured to when the audio snippet creation user input  112  is activated, render the GUI to comprise the audio snippet creation GUI  113  for generating an audio snippet  114  of the given podcast audio file  102 . In particular, the audio snippet creation GUI  113  includes a visual waveform input  141 , and an audio snippet creation playback control user input  142 . The visual waveform input  141  includes a displayed audio waveform  143 , a slidable time domain selection input  144  for the audio snippet  114  of the given podcast audio file  102 , and zoom control inputs  145   a - 145   b  for viewing specific portions of the audio waveform. 
     When the zoom control inputs  145   a - 145   b  are used to zoom out, the displayed audio waveform  143  may comprise a waveform extending for an entirety of the given podcast audio file  102 . The slidable time domain selection input  144  for the audio snippet  114  may have a default position based upon a current playback position in the given podcast audio file  102 . For example, the default position may comprise placing the slidable time domain selection input  144  to cover 10 seconds before the current playback position and 50 seconds after the current playback position. The slidable time domain selection input  144  may have a maximum time duration, such as 60 second, for example. The slidable time domain selection input  144  for the audio snippet  114  of the given podcast audio file  102  comprises first and second vertical bars  146   a - 146   b  (i.e. the start and end marks for the audio snippet) depicting the currently selected slidable time domain selection input, and a third vertical bar  147  (noted with dashes) showing the current playback position of the given audio podcast file. 
     The audio snippet creation GUI  113  illustratively comprises a save input  150  for creating the audio snippet  114 . Once the audio snippet  114  has been created, the GUI transitions to the snippet playback GUI  130  shown in  FIG.  8   . In some embodiments, the audio snippet creation GUI  113  may include a text editing feature for generating a text caption for the audio snippet  114  of the given podcast audio file  102 , which is uploaded and stored as associated metadata. 
     Referring now to  FIG.  16   , the processor  106  is configured to render an audio snippet discovery GUI  151  on the display  107  for viewing the plurality of audio snippets. The audio snippet discovery GUI  151  configured to receive swipe input  152  to scroll through the plurality of audio snippets  114 . 
     Another aspect is directed to a method for operating a computing device  104   a  in an audio podcast distribution system  100  comprising a server  101  configured to aggregate and store a plurality of podcast audio files  102  in a database  103 . Although depicted separately for drawing clarity, it should be appreciated that the database  103  and the server  101  may be integrated in some embodiments. The computing device  104   a  is in communication with the server  101 . The method includes rendering an audio playback GUI  110  on a display  107  for playing a given podcast audio file  102  from the database  103 . The audio playback GUI  110  comprises a playback control user input  111 , and an audio snippet creation user input  112 . The method further includes when the audio snippet creation user input  112  is activated, rendering an audio snippet creation GUI  113  for generating an audio snippet  114  of the given podcast audio file  102 , and uploading the audio snippet of the given podcast audio file to the database  103 . 
     Yet another aspect is directed to a non-transitory computer-readable medium for operating a computing device  104   a  in an audio podcast distribution system comprising a server  101  configured to aggregate and store a plurality of podcast audio files  102  in a database  103 . The computing device  104   a  is in communication with the server  101 . The non-transitory computer-readable medium has computer-executable instructions for causing the computing device  104   a  to perform steps comprising rendering an audio playback GUI  110  on a display  107  for playing a given podcast audio file  102  from the database  103 . The audio playback GUI  110  comprises a playback control user input  111 , and an audio snippet creation user input  112 . The steps further comprises when the audio snippet creation user input  112  is activated, rendering an audio snippet creation GUI  113  for generating an audio snippet  114  of the given podcast audio file  102 , and uploading the audio snippet of the given podcast audio file to the database  103 . 
     In the following, a discussion of an example embodiment of the audio podcast distribution system  100  is provided. It should be appreciated that any of the features discussed below can be incorporated with the features of the embodiments disclosed hereinabove, and vice versa. Here, the computing device  104   a  or the server  101  is configured to perform an import process of the plurality of podcast audio files  102 . The import process begins with an input file (e.g. a comma-separated values (CSV) file) that itemizes the plurality of podcast audio files  102  that are to be imported onto the audio podcast distribution system  100 . The input file is parsed and processed so that each discovered podcast audio file  102  has a valid category identification, a hex color (denoting the background color shown in the companion podcast application), and an RSS uniform resource locator (URL). Each discovered podcast audio file  102  has their RSS feed downloaded and parsed in order to extract metadata (e.g. podcast title, description, etc.). The discovered podcast audio files  102  that have valid RSS URLs that can be parsed are added to the podcasts-to-import table in the database  103 . Once the input file is fully processed, the import process pivots to the update phase. 
     During the update phase, the plurality of podcast audio files  102  are downloaded and stored for future processing. Podcast audio file details are extracted from the RSS feed and recorded in a podcast-episodes table. For each episode that is discovered in the RSS, the computing device  104   a  will attempt to download the audio file (e.g. MP3 format file) associated with the episode. The downloaded episode is stored for episode playback within the computing device  104   a  and in order to generate audio clips later when the respective user  115   a - 115   n  creates the audio snippet. Once downloaded, the podcast audio file is verified as a valid audio format file. If the podcast audio file passes verification, the computing device  104   a  uses a PHP audio waveform generator to extract audio peaks in order to generate the audio visualization in the podcast software. The waveform generator uses the SoX library to manipulate audio, as available from Source Forge. The SoX library is also used later to generate audio snippets. The episode peaks are stored in the database in order to avoid having to re-generate the data on demand later. Once a file has audio peaks data associated with it, it becomes available in the podcast software. 
     In this embodiment, the audio podcast distribution system  100  may provide for podcast discovery. In particular, the audio podcast distribution system  100  leverages a two-prong approach to showcase content that will engage the user  115   a - 115   n . The first is the home page layout (i.e. the home screen GUI  116 ) that aggregates potentially compelling content into distinct sections. The banner area (i.e. the top suggested podcast menu  117 ) of the homepage shows six random podcasts that have been flagged as featured in the database  103 . The “Jump Back In” section (i.e. the continued playback menu  120 ) allows users  115   a - 115   n  to resume playback between podcast software sessions. The “Most Recent Cherries” section (i.e. the most recent audio snippet menu  121 ) lists the eight of the most recently created audio snippets across all categories. The “Cherries For You” section (i.e. the suggested audio snippet menu  122 ) lists a random selection of the six of the most recently created audio snippets across all subscribed categories for the respective user  115   a - 115   n . Finally, the homepage shows up to three random categories (i.e. the subject matter specific menus  123   a - 123   b ) that the respective user  115   a - 115   n  is subscribed to. Each category section shows three random audio snippets and three random audio podcast files. 
     The second approach to content discovery is the audio stream feature, which is provided within the audio snippet discovery GUI  151 . The audio stream is available as a pull-up component on the podcast software. The audio snippet discovery GUI  151  will populate with a random selection of episodes and audio snippets based on the subscribed categories of the respective user  115   a - 115   n . The audio snippet discovery GUI  151  will trigger playback of the next piece of content upon completion of the current audio. Alternatively, the respective user  115   a - 115   n  can scroll down to skip the current content and continuously discover new podcasts. 
     In this embodiment, the audio podcast distribution system  100  may provide for audio snippet creation. When the respective user  115   a - 115   n  chooses to create an audio snippet from an episode, the podcast software transitions to the audio snippet creation GUI  113  where the respective user&#39;s current playback position is marked on the audio waveform visualization. A pre-selected sixty second section or region of the waveform is highlighted. The respective user  115   a - 115   n  may drag the entire highlighted area back and forth along the waveform, and can also adjust the beginning and ending of the clip manually by sliding the first and second vertical bars  146   a - 146   b . Once the respective user  115   a - 115   n  has finalized their selection, their request is submitted to the server  101  to generate a new MP3 file using the start time and duration submitted (e.g. using the first and SOX library). The newly created audio snippet is stored on the server  101  and indexed in the database  103  for showcasing within the podcast software. 
     Advantageously, the audio podcast distribution system  100  may provide for enhanced usability over existing podcast software applications. In particular, the audio podcast distribution system  100  provides for superior sharing features by allowing the user  115   a - 115   n  to create sharable audio snippets  114  of the given podcast audio file  102  in band and within the same software application. Helpfully, the audio snippet  114  is conveniently uploaded to the server  101  for easy sharing and access. Moreover, the audio podcast distribution system  100  aggregates and ranks the audio snippets  114  from all the users  115   a - 115   n , and provides for improved content discovery. 
     Many modifications and other embodiments of the present disclosure will come to the mind of one skilled in the art having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is understood that the present disclosure is not to be limited to the specific embodiments disclosed, and that modifications and embodiments are intended to be included within the scope of the appended claims.