回声 :: 歌曲时长

Posted

技术标签:

【中文标题】回声 :: 歌曲时长【英文标题】:Echonest :: song duration 【发布时间】:2016-08-25 21:47:12 【问题描述】:

我希望我的Echonestresponse 获得song duration,它应该是audio_summary 的一部分。

params = 
        'type':'artist-radio', 
        'artist':artist, 
        'results': 3,
        'bucket' : ['id:spotify-WW', 'tracks'],
        'limit': True
    
    response = en.get('playlist/static', **params)
    songs = response['songs']

那么,要获得歌曲duration,我应该在上面的示例中使用哪个key/value

注意:使用的包装器是pyen

【问题讨论】:

【参考方案1】:

durationsong/profile中的分析,而不是playlist/static方法中的分析,因此我们需要api中的第二个response

这是获取每首歌曲duration(以及打印artist_namesong_title)的一种方式:

    #get 'playlist response'
    response_playlist = en.get('playlist/static', **params)
    song_playlist = response_playlist['songs']

    if len(song_playlist) > 0:

        for i, song in enumerate(song_playlist):
            #we need to track each song id
            song_id = song_playlist[i]['id'] #ok
            #in order to get song 'duration', we need to access 'song/profile response'
            #and pass the id as an argument to 'audio_summary'
            response_profile = en.get('song/profile', id=song_id, bucket="audio_summary")
            song_profile = response_profile['songs']
            dur = song_profile[0]['audio_summary']['duration']      
            print dur                           
            #now we access each song 'foreign_id', which is playable by, say, Spotify 
            for track in song:
                track = song['tracks'][i]
                track_id = track['foreign_id'].replace('-WW', '')           
            print '0 2 1'.format(i, song['artist_name'], song['title'])

【讨论】:

以上是关于回声 :: 歌曲时长的主要内容,如果未能解决你的问题,请参考以下文章

回声消除技术

在回声中回声 <?php ?> [重复]

WebRTC回声消除

回声消除-理论篇

Android 回声消除

“回声退出|”的目的是啥在“回声退出 | sqlplus 用户/pass@ora_instance @file.sql”?