audiocraft
audiocraft copied to clipboard
ImportError: cannot import name 'SegmentWithAttributes' from partially initialized module 'audiocraft.modules.conditioners' (most likely due to a circular import)
Hi, hit the following error on a pull from main and a small edit in transformer.py to remove the xformers import (not every one uses linux and Nvidia you know :-) )
(facebook) Vargol:MacMiniM18Gb facebook % python audio.py
Traceback (most recent call last):
File "/Volumes/Sabrent Media/Documents/Source/Python/facebook/audio.py", line 2, in <module>
from audiocraft.models import MusicGen
File "/Volumes/Sabrent Media/Documents/Source/Python/facebook/audiocraft/audiocraft/models/__init__.py", line 10, in <module>
from . import builders, loaders
File "/Volumes/Sabrent Media/Documents/Source/Python/facebook/audiocraft/audiocraft/models/builders.py", line 19, in <module>
from .lm import LMModel
File "/Volumes/Sabrent Media/Documents/Source/Python/facebook/audiocraft/audiocraft/models/lm.py", line 19, in <module>
from ..modules.conditioners import (
File "/Volumes/Sabrent Media/Documents/Source/Python/facebook/audiocraft/audiocraft/modules/conditioners.py", line 31, in <module>
from ..data.audio import audio_read
File "/Volumes/Sabrent Media/Documents/Source/Python/facebook/audiocraft/audiocraft/data/__init__.py", line 10, in <module>
from . import audio, audio_dataset, info_audio_dataset, music_dataset, sound_dataset
File "/Volumes/Sabrent Media/Documents/Source/Python/facebook/audiocraft/audiocraft/data/info_audio_dataset.py", line 19, in <module>
from ..modules.conditioners import SegmentWithAttributes, ConditioningAttributes
ImportError: cannot import name 'SegmentWithAttributes' from partially initialized module 'audiocraft.modules.conditioners' (most likely due to a circular import) (/Volumes/Sabrent Media/Documents/Source/Python/facebook/audiocraft/audiocraft/modules/conditioners.py)
(facebook) Vargol:MacMiniM18Gb facebook %
audio.py is
import torchaudio
from audiocraft.models import MusicGen
from audiocraft.data.audio import audio_write
model = MusicGen.get_pretrained('small')
model.set_generation_params(duration=8) # generate 8 seconds.
descriptions = ['happy rock', 'energetic EDM', 'sad jazz']
wav = model.generate(descriptions) # generates 3 samples.
for idx, one_wav in enumerate(wav):
# Will save under {idx}.wav, with loudness normalization at -14 db LUFS.
audio_write(f'{idx}', one_wav.cpu(), model.sample_rate, strategy="loudness", loudness_compressor=True)
Hi @Vargol, Can you make sure that you are running on Python 3.9 as mentionned in https://github.com/facebookresearch/audiocraft#installation. I have just had the same issue and I realised I was running Python 3.11. After downgrading it worked.