Spotify - 搜索曲目中的静音
Spotify - searching for silences in a track
为了加深对Spotify API
的理解analysis_url
audio feature
,我到处搜索都没有找到任何文档。
就我而言,它通过 segments
、bars
、beats
、sample rates
、fade ins and outs
、[= 学习音频19=]、timbre
、mode
、time_signature
、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)
我想做的是在曲目中找到 silences,例如电子音乐中的 'drop'。
如何使用 analysis_url
来做到这一点?
分析来自一家名为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()
产量:
有了它,您可以轻松找到音乐中的低点:
print([x[i] for i in range(len(x)) if norm_l[i] < .1])
[0.0, 165.86036]
为了加深对Spotify API
的理解analysis_url
audio feature
,我到处搜索都没有找到任何文档。
就我而言,它通过 segments
、bars
、beats
、sample rates
、fade ins and outs
、[= 学习音频19=]、timbre
、mode
、time_signature
、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)
我想做的是在曲目中找到 silences,例如电子音乐中的 'drop'。
如何使用 analysis_url
来做到这一点?
分析来自一家名为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()
产量:
有了它,您可以轻松找到音乐中的低点:
print([x[i] for i in range(len(x)) if norm_l[i] < .1])
[0.0, 165.86036]