marl / openl3

OpenL3: Open-source deep audio and image embeddings
MIT License
461 stars 58 forks source link

Breaks with librosa 0.9.x #85

Closed jonnor closed 2 years ago

jonnor commented 2 years ago

Since librosa 0.9.0 most APIs must be called with keyword arguments, ref the changelog. Not using a keyword argument causes a TypeError. This unfortunately breaks OpenL3 at the moment with newest librosa.

Traceback (most recent call last):
  File "/builds/soundsensing/core/soundsensing_core/embedding/embedding.py", line 80, in compute_embeddings
    dfs = list(generator)
  File "/builds/soundsensing/core/soundsensing_core/embedding/embedding.py", line 72, in compute_embeddings_generator
    emb = compute_for_paths(chunk[path_key])
  File "/builds/soundsensing/core/soundsensing_core/embedding/embedding.py", line 60, in compute_for_paths
    emb_list, ts_list = openl3.get_audio_embedding(audio_list, samplerate,
  File "/usr/local/lib/python3.8/site-packages/openl3/core.py", line 269, in get_audio_embedding
    x = preprocess_audio(
  File "/usr/local/lib/python3.8/site-packages/openl3/core.py", line 159, in preprocess_audio
    x = np.stack([_librosa_mel_frontend(xi[0], TARGET_SR, n_mels=128, **kw) for xi in x])[..., None]
  File "/usr/local/lib/python3.8/site-packages/openl3/core.py", line 159, in <listcomp>
    x = np.stack([_librosa_mel_frontend(xi[0], TARGET_SR, n_mels=128, **kw) for xi in x])[..., None]
  File "/usr/local/lib/python3.8/site-packages/openl3/core.py", line 116, in _librosa_mel_frontend
    S = librosa.feature.melspectrogram(
TypeError: melspectrogram() takes 0 positional arguments but 2 positional arguments (and 4 keyword-only arguments) were given