Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AttributeError: module 'librosa.display' has no attribute 'waveplot' #237

Open
Logicino opened this issue May 6, 2023 · 2 comments
Open
Labels

Comments

@Logicino
Copy link

Logicino commented May 6, 2023

Hello!
I'm using nussl library, and here's my environment params:

# Name                    Version                   Build  Channel
absl-py                   1.4.0                    pypi_0    pypi
aom                       3.5.0                h63175ca_0    conda-forge
appdirs                   1.4.4                    pypi_0    pypi
argparse                  1.4.0                    pypi_0    pypi
asciitree                 0.3.3                    pypi_0    pypi
attrs                     23.1.0                   pypi_0    pypi
audioread                 3.0.0                    pypi_0    pypi
backcall                  0.2.0                    pypi_0    pypi
bzip2                     1.0.8                h8ffe710_4    conda-forge
ca-certificates           2022.12.7            h5b45459_0    conda-forge
cachetools                5.3.0                    pypi_0    pypi
certifi                   2022.12.7                pypi_0    pypi
cffi                      1.15.1                   pypi_0    pypi
charset-normalizer        3.1.0                    pypi_0    pypi
colorama                  0.4.6                    pypi_0    pypi
cycler                    0.11.0                   pypi_0    pypi
debugpy                   1.6.7                    pypi_0    pypi
decorator                 5.1.1                    pypi_0    pypi
entrypoints               0.4                      pypi_0    pypi
expat                     2.5.0                h63175ca_1    conda-forge
fasteners                 0.18                     pypi_0    pypi
ffmpeg                    1.4                      pypi_0    pypi
ffmpeg-python             0.2.0                    pypi_0    pypi
ffmpy                     0.3.0                    pypi_0    pypi
ffprobe                   0.5                      pypi_0    pypi
font-ttf-dejavu-sans-mono 2.37                 hab24e00_0    conda-forge
font-ttf-inconsolata      3.000                h77eed37_0    conda-forge
font-ttf-source-code-pro  2.038                h77eed37_0    conda-forge
font-ttf-ubuntu           0.83                 hab24e00_0    conda-forge
fontconfig                2.14.2               hbde0cde_0    conda-forge
fonts-conda-ecosystem     1                             0    conda-forge
fonts-conda-forge         1                             0    conda-forge
fonttools                 4.38.0                   pypi_0    pypi
freetype                  2.12.1               h546665d_1    conda-forge
future                    0.18.3                   pypi_0    pypi
google-auth               2.17.3                   pypi_0    pypi
google-auth-oauthlib      0.4.6                    pypi_0    pypi
gpytorch                  1.8.1                    pypi_0    pypi
grpcio                    1.54.0                   pypi_0    pypi
h5py                      3.8.0                    pypi_0    pypi
idna                      3.4                      pypi_0    pypi
importlib-metadata        6.6.0                    pypi_0    pypi
importlib-resources       5.12.0                   pypi_0    pypi
intel-openmp              2023.1.0         h57928b3_46319    conda-forge
ipykernel                 6.16.2                   pypi_0    pypi
ipython                   7.34.0                   pypi_0    pypi
jams                      0.3.4                    pypi_0    pypi
jedi                      0.18.2                   pypi_0    pypi
joblib                    1.2.0                    pypi_0    pypi
jsonschema                4.17.3                   pypi_0    pypi
jupyter-client            7.4.9                    pypi_0    pypi
jupyter-core              4.12.0                   pypi_0    pypi
kiwisolver                1.4.4                    pypi_0    pypi
lazy-loader               0.2                      pypi_0    pypi
libblas                   3.9.0              16_win64_mkl    conda-forge
libcblas                  3.9.0              16_win64_mkl    conda-forge
libexpat                  2.5.0                h63175ca_1    conda-forge
libhwloc                  2.9.1                h51c2c0f_0    conda-forge
libiconv                  1.17                 h8ffe710_0    conda-forge
liblapack                 3.9.0              16_win64_mkl    conda-forge
libopus                   1.3.1                h8ffe710_1    conda-forge
libpng                    1.6.39               h19919ed_0    conda-forge
librosa                   0.10.0.post2             pypi_0    pypi
libsqlite                 3.40.0               hcfcfb64_0    http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
libxml2                   2.10.4               hc3477c8_0    conda-forge
libzlib                   1.2.13               hcfcfb64_4    conda-forge
llvmlite                  0.39.1                   pypi_0    pypi
markdown                  3.4.3                    pypi_0    pypi
markupsafe                2.1.2                    pypi_0    pypi
matplotlib                3.5.3                    pypi_0    pypi
matplotlib-inline         0.1.6                    pypi_0    pypi
mir-eval                  0.7                      pypi_0    pypi
mkl                       2022.1.0           h6a75c08_874    conda-forge
msgpack                   1.0.5                    pypi_0    pypi
musdb                     0.4.0                    pypi_0    pypi
museval                   0.4.0                    pypi_0    pypi
nest-asyncio              1.5.6                    pypi_0    pypi
norbert                   0.2.1                    pypi_0    pypi
numba                     0.56.4                   pypi_0    pypi
numcodecs                 0.10.2                   pypi_0    pypi
numpy                     1.21.6           py37h2830a78_0    conda-forge
nussl                     1.1.9                    pypi_0    pypi
oauthlib                  3.2.2                    pypi_0    pypi
openh264                  2.3.1                h63175ca_2    conda-forge
openssl                   3.1.0                hcfcfb64_3    conda-forge
packaging                 23.1                     pypi_0    pypi
pandas                    1.2.3            py37h08fd248_0    conda-forge
parso                     0.8.3                    pypi_0    pypi
pickleshare               0.7.5                    pypi_0    pypi
pillow                    9.5.0                    pypi_0    pypi
pip                       23.1.1             pyhd8ed1ab_0    http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
pkgutil-resolve-name      1.3.10                   pypi_0    pypi
pooch                     1.6.0                    pypi_0    pypi
prompt-toolkit            3.0.38                   pypi_0    pypi
protobuf                  3.20.3                   pypi_0    pypi
psutil                    5.9.5                    pypi_0    pypi
pthreads-win32            2.9.1                hfa6e2cd_3    conda-forge
pyaml                     23.5.8                   pypi_0    pypi
pyasn1                    0.5.0                    pypi_0    pypi
pyasn1-modules            0.3.0                    pypi_0    pypi
pycparser                 2.21                     pypi_0    pypi
pygments                  2.15.1                   pypi_0    pypi
pyloudnorm                0.1.1                    pypi_0    pypi
pyparsing                 3.0.9                    pypi_0    pypi
pyrsistent                0.19.3                   pypi_0    pypi
python                    3.7.12          h900ac77_100_cpython    http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
python-dateutil           2.8.2              pyhd8ed1ab_0    conda-forge
python_abi                3.7                     3_cp37m    conda-forge
pytorch-ignite            0.4.12                   pypi_0    pypi
pytz                      2023.3             pyhd8ed1ab_0    conda-forge
pywin32                   306                      pypi_0    pypi
pyyaml                    6.0                      pypi_0    pypi
pyzmq                     25.0.2                   pypi_0    pypi
requests                  2.28.2                   pypi_0    pypi
requests-oauthlib         1.3.1                    pypi_0    pypi
rsa                       4.9                      pypi_0    pypi
scikit-learn              1.0.2                    pypi_0    pypi
scipy                     1.7.3                    pypi_0    pypi
seaborn                   0.12.2                   pypi_0    pypi
setuptools                59.8.0           py37h03978a9_1    conda-forge
simplejson                3.19.1                   pypi_0    pypi
six                       1.16.0             pyh6c4a22f_0    conda-forge
sortedcontainers          2.4.0                    pypi_0    pypi
soundfile                 0.12.1                   pypi_0    pypi
sox                       1.4.1                    pypi_0    pypi
soxr                      0.3.5                    pypi_0    pypi
sqlite                    3.40.0               hcfcfb64_0    http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
stempeg                   0.2.3                    pypi_0    pypi
svt-av1                   1.4.1                h63175ca_0    conda-forge
tbb                       2021.9.0             h91493d7_0    conda-forge
tensorboard               2.11.2                   pypi_0    pypi
tensorboard-data-server   0.6.1                    pypi_0    pypi
tensorboard-plugin-wit    1.8.1                    pypi_0    pypi
termtables                0.2.4                    pypi_0    pypi
threadpoolctl             3.1.0                    pypi_0    pypi
torch                     1.13.1                   pypi_0    pypi
tornado                   6.2                      pypi_0    pypi
tqdm                      4.65.0                   pypi_0    pypi
traitlets                 5.9.0                    pypi_0    pypi
typing-extensions         4.5.0                    pypi_0    pypi
ucrt                      10.0.22621.0         h57928b3_0    http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
urllib3                   1.26.15                  pypi_0    pypi
vc                        14.3                hb6edc58_10    http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
vc14_runtime              14.34.31931         h5081d32_13    conda-forge
vs2015_runtime            14.34.31931         h4c5c07a_10    http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
wcwidth                   0.2.6                    pypi_0    pypi
werkzeug                  2.2.3                    pypi_0    pypi
wheel                     0.40.0             pyhd8ed1ab_0    http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
x264                      1!164.3095           h8ffe710_2    conda-forge
x265                      3.5                  h2d74725_3    conda-forge
zarr                      2.12.0                   pypi_0    pypi
zipp                      3.15.0                   pypi_0    pypi

and I'm running this test code:

import nussl
import matplotlib.pyplot as plt
import time
import librosa.display

start_time = time.time()

def visualize_and_embed(sources):
    plt.figure(figsize=(10, 6))
    plt.subplot(211)
    nussl.utils.visualize_sources_as_masks(sources,
        y_axis='mel', db_cutoff=-60, alpha_amount=2.0)
    plt.subplot(212)
    nussl.utils.visualize_sources_as_waveform(
        sources, show_legend=False)
    plt.show()
    nussl.play_utils.multitrack(sources)

audio_path = nussl.efz_utils.download_audio_file(
    'marimba_timbre.mp3')
audio_signal = nussl.AudioSignal(audio_path)
separator = nussl.separation.primitive.TimbreClustering(
    audio_signal, 2, 50, mask_type='binary')
estimates = separator()

estimates = {
    f'Cluster {i}': e for i, e in enumerate(estimates)
}

visualize_and_embed(estimates)

the bug reporting is as below:

Matching file found at [C:\Users\kino\.nussl\audio\marimba_timbre.mp3](file:///C:/Users/kino/.nussl/audio/marimba_timbre.mp3), skipping download.
[c:\Users\kino\.conda\envs\py37\lib\site-packages\sklearn\decomposition\_nmf.py:294](file:///C:/Users/kino/.conda/envs/py37/lib/site-packages/sklearn/decomposition/_nmf.py:294): FutureWarning: The 'init' value, when 'init=None' and n_components is less than n_samples and n_features, will be changed from 'nndsvd' to 'nndsvda' in 1.1 (renaming of 0.26).
  FutureWarning,
[c:\Users\kino\.conda\envs\py37\lib\site-packages\sklearn\decomposition\_nmf.py:1641](file:///C:/Users/kino/.conda/envs/py37/lib/site-packages/sklearn/decomposition/_nmf.py:1641): ConvergenceWarning: Maximum number of iterations 200 reached. Increase it to improve convergence.
  ConvergenceWarning,
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
[~\AppData\Local\Temp\ipykernel_23000\4007950781.py](https://file+.vscode-resource.vscode-cdn.net/d%3A/codes/clustering/~/AppData/Local/Temp/ipykernel_23000/4007950781.py) in 
     28 }
     29 
---> 30 visualize_and_embed(estimates)

[~\AppData\Local\Temp\ipykernel_23000\4007950781.py](https://file+.vscode-resource.vscode-cdn.net/d%3A/codes/clustering/~/AppData/Local/Temp/ipykernel_23000/4007950781.py) in visualize_and_embed(sources)
     13     plt.subplot(212)
     14     nussl.utils.visualize_sources_as_waveform(
---> 15         sources, show_legend=False)
     16     plt.show()
     17     nussl.play_utils.multitrack(sources)

[c:\Users\kino\.conda\envs\py37\lib\site-packages\nussl\core\utils.py](file:///C:/Users/kino/.conda/envs/py37/lib/site-packages/nussl/core/utils.py) in visualize_sources_as_waveform(audio_signals, ch, do_mono, x_axis, colors, alphas, show_legend, **kwargs)
    498         color = colors[i % len(audio_signals)]
    499         visualize_waveform(val, ch=ch, do_mono=do_mono, x_axis=x_axis, 
--> 500                            alpha=alphas[i % len(audio_signals)],
    501                            label=key, color=color)
    502 

[c:\Users\kino\.conda\envs\py37\lib\site-packages\nussl\core\utils.py](file:///C:/Users/kino/.conda/envs/py37/lib/site-packages/nussl/core/utils.py) in visualize_waveform(audio_signal, ch, do_mono, x_axis, **kwargs)
    447 
    448     data = np.asfortranarray(audio_signal.audio_data[ch])
--> 449     # librosa.display.waveplot(data, sr=audio_signal.sample_rate, x_axis=x_axis, **kwargs)
    450     librosa.display.waveshow(data, sr=audio_signal.sample_rate, x_axis=x_axis, **kwargs)
    451     plt.ylabel('Amplitude')

AttributeError: module 'librosa.display' has no attribute 'waveplot'

When I'm trying to revise the utils.py in "lib/site-packages/nussl/core/utils.py"
I changed the code:
librosa.display.waveplot(data, sr=audio_signal.sample_rate, x_axis=x_axis, **kwargs)
into
librosa.display.waveshow(data, sr=audio_signal.sample_rate, x_axis=x_axis, **kwargs)

however it also has the attribute error

@Logicino Logicino added the bug label May 6, 2023
@Logicino
Copy link
Author

Logicino commented May 6, 2023

well, it seems I restarted the project and reload the environment, it doesn't raise the attribute error
however it comes with this problem

Output exceeds the [size limit](command:workbench.action.openSettings?%5B%22notebook.output.textLineLimit%22%5D). Open the full output data [in a text editor](command:workbench.action.openLargeOutput?cf5b4d52-585a-4710-9627-195964604577)---------------------------------------------------------------------------
FFRuntimeError                            Traceback (most recent call last)
[~\AppData\Local\Temp\ipykernel_82688\4007950781.py](https://file+.vscode-resource.vscode-cdn.net/d%3A/codes/clustering/~/AppData/Local/Temp/ipykernel_82688/4007950781.py) in 
     28 }
     29 
---> 30 visualize_and_embed(estimates)

[~\AppData\Local\Temp\ipykernel_82688\4007950781.py](https://file+.vscode-resource.vscode-cdn.net/d%3A/codes/clustering/~/AppData/Local/Temp/ipykernel_82688/4007950781.py) in visualize_and_embed(sources)
     15         sources, show_legend=False)
     16     plt.show()
---> 17     nussl.play_utils.multitrack(sources)
     18 
     19 audio_path = nussl.efz_utils.download_audio_file(

[c:\Users\kino\.conda\envs\py37\lib\site-packages\nussl\core\play_utils.py](file:///C:/Users/kino/.conda/envs/py37/lib/site-packages/nussl/core/play_utils.py) in multitrack(audio_signals, names, ext, display)
    120 
    121     for name, signal in zip(names, audio_signals):
--> 122         encoded_audio = embed_audio(signal, ext=ext, display=False).src_attr()
    123         audio_element = (
    124             f"")

[c:\Users\kino\.conda\envs\py37\lib\site-packages\nussl\core\play_utils.py](file:///C:/Users/kino/.conda/envs/py37/lib/site-packages/nussl/core/play_utils.py) in embed_audio(audio_signal, ext, display)
     69                 inputs={tmp_wav.name: None},
     70                 outputs={tmp_converted.name: '-write_xing 0 -codec:a libmp3lame -b:a 128k -y'})
---> 71             ff.run()
...
STDOUT:


STDERR:

@TheConstant3
Copy link

@Logicino
You need install librosa==0.8.1 and all will be fine!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants