【问题标题】:Spotify - searching for silences in a trackSpotify - 在曲目中搜索静音
【发布时间】:2017-01-12 09:17:31
【问题描述】:

为了加深对这个主题的理解,我一直在到处搜索,但没有找到任何关于analysis_url audio feature 的文档Spotify API

就我而言,它通过segmentsbarsbeatssample ratesfade ins and outskeystimbremode、@987654332 来学习音频@、tempo

到目前为止我所拥有的是:

def analysis_url(track_ids):

    names = []
    tids = []

    for id_ in track_ids:
        track_id = sp.track(id_)['uri']
        tids.append(track_id)
        track_name = sp.track(id_)['name']
        names.append(track_name)

    features = sp.audio_features(tids)

    urls = [x['analysis_url'] for x in features if x]

    for url in urls:
        analysis = sp._get(url)

我想做的是在曲目中找到沉默,例如电子音乐中的“drop”。

如何使用analysis_url 做到这一点?

【问题讨论】:

    标签: python spotify spotipy


    【解决方案1】:

    分析来自一家名为 EchoNest 的公司,该公司前段时间被 Spotify 收购。您可以找到分析文档here

    Segments 包含一个 Loudness_max 值,该值指示该特定音乐部分的相对响度(以 db 为单位)。对歌曲中的这些值进行归一化,并寻找相对响度较低的片段:

    def normalize_loudness(filename):
        d = json.load(open(filename, 'r'))
        x = [_['start'] for _ in d['segments']]
        l = [_['loudness_max'] for _ in d['segments']]
        min_l = min(l)
        max_l = max(l)
        norm_l = [(_ - min_l)/(max_l - min_l) for _ in l]
        return (x, norm_l)
    

    在 Panic 的歌曲“Miss Jackson”中使用了这一点!在 The Disco,我们可以绘制归一化响度值:

    import json
    from matplotlib import pyplot as pp
    
    x, norm_l = normalize_loudness('msJackson.json')
    pp.plot(x, norm_l, 'o')
    pp.show()
    exit()
    

    产量:

    您可以轻松找到音乐中的低谷:

    print([x[i] for i in range(len(x)) if norm_l[i] < .1])
    [0.0, 165.86036]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-27
      • 1970-01-01
      • 2013-04-18
      • 2020-12-11
      • 2017-04-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多