Spotify - 在轨道中搜索沉默

时间:2016-09-05 02:31:47

标签: python spotify spotipy

我一直在寻找所有地方,但我们没有在analysis_url找到关于audio feature Spotify API的任何文档,以加深我对该主题的理解。

就我而言,它通过segmentsbarsbeatssample ratesfade ins and outs,{{来学习音频1}},keystimbremodetime_signature

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

tempo

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

我怎样才能使用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)

1 个答案:

答案 0 :(得分:0)

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

分段包括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()

产量:

Miss Jackson

通过它,您可以轻松找到音乐中的低点:

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