Skip to content

Commit 0170a83

Browse files
committed
Update python client after recent API chages regarding content and combined search endpoints
1 parent 16d37bb commit 0170a83

3 files changed

Lines changed: 66 additions & 194 deletions

File tree

essentia_example.py

Lines changed: 0 additions & 74 deletions
This file was deleted.

examples.py

Lines changed: 40 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# Get sound info example
1616
print("Sound info:")
1717
print("-----------")
18-
sound = freesound_client.get_sound(96541)
18+
sound = freesound_client.get_sound(6)
1919
print("Getting sound:", sound.name)
2020
print("Url:", sound.url)
2121
print("Description:", sound.description)
@@ -26,34 +26,23 @@
2626
print("Sound info specifying some request parameters:")
2727
print("-----------")
2828
sound = freesound_client.get_sound(
29-
96541, fields="id,name,username,duration,analysis", descriptors="lowlevel.spectral_centroid", normalized=1
30-
)
29+
6, fields="id,name,username,duration,spectral_centroid")
3130
print("Getting sound:", sound.name)
3231
print("Username:", sound.username)
3332
print("Duration:", str(sound.duration), "(s)")
34-
print("Spectral centroid:",)
35-
print(sound.analysis.lowlevel.spectral_centroid.as_dict())
33+
print("Spectral centroid:",str(sound.spectral_centroid), "(Hz)")
3634
print()
3735

3836
# Get sound analysis example
3937
print("Get analysis:")
4038
print("-------------")
4139
analysis = sound.get_analysis()
42-
43-
mfcc = analysis.lowlevel.mfcc.mean
40+
mfcc = analysis.mfcc
4441
print("Mfccs:", mfcc)
4542
# you can also get the original json (this applies to any FreesoundObject):
4643
print(analysis.as_dict())
4744
print()
4845

49-
# Get sound analysis example specifying some request parameters
50-
print("Get analysis with specific normalized descriptor:")
51-
print("-------------")
52-
analysis = sound.get_analysis(descriptors="lowlevel.spectral_centroid.mean", normalized=1)
53-
spectral_centroid_mean = analysis.lowlevel.spectral_centroid.mean
54-
print("Normalized mean of spectral centroid:", spectral_centroid_mean)
55-
print()
56-
5746
# Get similar sounds example
5847
print("Similar sounds: ")
5948
print("---------------")
@@ -62,20 +51,10 @@
6251
print("\t-", similar_sound.name, "by", similar_sound.username)
6352
print()
6453

65-
# Get similar sounds example specifying some request parameters
66-
print("Similar sounds specifying some request parameters:")
67-
print("---------------")
68-
results_pager = sound.get_similar(
69-
page_size=10, fields="name,username", descriptors_filter="lowlevel.pitch.mean:[110 TO 180]"
70-
)
71-
for similar_sound in results_pager:
72-
print("\t-", similar_sound.name, "by", similar_sound.username)
73-
print()
74-
7554
# Search Example
7655
print("Searching for 'violoncello':")
7756
print("----------------------------")
78-
results_pager = freesound_client.text_search(
57+
results_pager = freesound_client.search(
7958
query="violoncello",
8059
filter="tag:tenuto duration:[1.0 TO 15.0]",
8160
sort="rating_desc",
@@ -91,19 +70,42 @@
9170
print("\t-", sound.name, "by", sound.username)
9271
print()
9372

94-
# Content based search example
95-
print("Content based search:")
73+
# Search all sounds that match some audio descriptor filter
74+
print("Filter by audio descriptors:")
9675
print("---------------------")
97-
results_pager = freesound_client.content_based_search(
98-
descriptors_filter="lowlevel.pitch.var:[* TO 20]",
99-
target='lowlevel.pitch_salience.mean:1.0 lowlevel.pitch.mean:440'
76+
results_pager = freesound_client.search(
77+
filter="spectral_centroid:[1000 TO 2000] AND pitch:[200 TO 300]",
78+
fields="name,username,spectral_centroid,pitch",
10079
)
10180

10281
print("Num results:", results_pager.count)
10382
for sound in results_pager:
104-
print("\t-", sound.name, "by", sound.username)
83+
print("\t-", sound.name, "by", sound.username, "with spectral centroid of", sound.spectral_centroid, "Hz and pitch of", sound.pitch, "Hz")
10584
print()
10685

86+
# We can use the search endpoint for a similarity search which also filters results
87+
print("Searching for similar sounds and filtering by a descriptor value:")
88+
print("---------------")
89+
results_pager = freesound_client.search(
90+
page_size=10, fields="name,username", similar_to=6, filter="pitch:[110 TO 180]"
91+
)
92+
for similar_sound in results_pager:
93+
print("\t-", similar_sound.name, "by", similar_sound.username)
94+
print()
95+
96+
# Find sounds simialar to a target vector extracted from an existing sound which might not be in Freesound
97+
# Note that "similarity_space" must match with the similarity space used to extract the target vector
98+
print("Searching for sounds similar to a target vector:")
99+
print("---------------")
100+
target_vector = [0.84835537,-0.06019006,0.35139768,-0.01221892,-0.23172645,-0.03798686,-0.03869437,0.02199453,-0.10143687,-0.03342770,0.05464298,-0.02654354,0.05424048,0.04912830,0.01449411,-0.02995046,0.04584143,0.03731462,0.06914231,-0.00702387,-0.02202889,0.01644059,-0.00153376,0.11042101,0.05432773,0.05736105,-0.03779107,-0.00909068,-0.08996461,-0.04300615,0.05610843,0.02214170,-0.02155820,0.05158299,-0.00717155,-0.04345755,-0.00519616,0.02887811,-0.02205723,0.01658933,0.02485796,-0.06228176,0.03574570,-0.04556302,-0.00497004,0.00300936,-0.01974736,-0.01391953,-0.02898939,0.01041939,-0.02836645,0.00853050,-0.03129587,0.00454572,0.00898315,-0.01371797,-0.00918297,-0.01049032,0.02800968,-0.04248178,0.02648444,-0.01034762,0.02105908,-0.01137279,0.02845560,-0.04284714,0.00797986,0.00973879,-0.00850114,-0.01093731,-0.00629640,-0.01862817,0.00829806,0.01137537,0.02601988,0.03015542,-0.01091145,0.00547907,-0.00426657,0.01001693,0.00793383,0.00082211,-0.02848534,-0.00823537,0.01392606,-0.02012341,-0.00788319,0.02797560,-0.01470957,-0.01917517,-0.01177181,0.00952904,-0.00223396,-0.01586017,-0.00566903,0.01150901,-0.00361810,-0.00257769,-0.01509761,0.00552032]
101+
results_pager = freesound_client.search(
102+
page_size=10, fields="name,username", similar_to=target_vector, similarity_space="freesound_classic"
103+
)
104+
for similar_sound in results_pager:
105+
print("\t-", similar_sound.name, "by", similar_sound.username)
106+
print()
107+
108+
107109
# Getting sounds from a user example
108110
print("User sounds:")
109111
print("-----------")
@@ -126,7 +128,7 @@
126128
user = freesound_client.get_user("Headphaze")
127129
print("User name:", user.username)
128130
results_pager = user.get_sounds(
129-
page_size=10, fields="name,username,samplerate,duration,analysis", descriptors="rhythm.bpm"
131+
page_size=10, fields="name,username,samplerate,duration"
130132
)
131133

132134
print("Num results:", results_pager.count)
@@ -167,7 +169,7 @@
167169
pack = freesound_client.get_pack(3524)
168170
print("Pack name:", pack.name)
169171
results_pager = pack.get_sounds(
170-
page_size=5, fields="id,name,username,duration,analysis", descriptors="lowlevel.spectral_flatness_db"
172+
page_size=5, fields="id,name,username,duration,spectral_flatness"
171173
)
172174
print("Num results:", results_pager.count)
173175
print("\t----- PAGE 1 -----")
@@ -181,9 +183,9 @@
181183
)
182184
print(
183185
sound.duration,
184-
"s and a mean spectral flatness of",
186+
"s and a spectral flatness of",
185187
)
186-
print(sound.analysis.lowlevel.spectral_flatness_db.mean)
188+
print(sound.spectral_flatness)
187189
print("\t----- PAGE 2 -----")
188190
results_pager = results_pager.next_page()
189191
for sound in results_pager:
@@ -196,7 +198,7 @@
196198
)
197199
print(
198200
sound.duration,
199-
"s and a mean spectral flatness of",
201+
"s and a spectral flatness of",
200202
)
201-
print(sound.analysis.lowlevel.spectral_flatness_db.mean)
203+
print(sound.spectral_flatness)
202204
print()

0 commit comments

Comments
 (0)