haoheliu / AudioLDM

AudioLDM: Generate speech, sound effects, music and beyond, with text.
https://audioldm.github.io/
Other
2.33k stars 221 forks source link

No module named 'soundfile' #121

Open aristides86 opened 2 weeks ago

aristides86 commented 2 weeks ago

Hello, When I try to start AudioLDM with python3 app.py it says python is not found. When I try python app.py it gives this

(gradio-env) c:\music-generation\AudioLDM>python app.py
Traceback (most recent call last):
  File "c:\music-generation\AudioLDM\app.py", line 3, in <module>
    from audioldm import text_to_audio, build_model
  File "c:\music-generation\AudioLDM\audioldm\__init__.py", line 1, in <module>
    from .ldm import LatentDiffusion
  File "c:\music-generation\AudioLDM\audioldm\ldm.py", line 6, in <module>
    from audioldm.utils import default, instantiate_from_config, save_wave
  File "c:\music-generation\AudioLDM\audioldm\utils.py", line 6, in <module>
    import soundfile as sf
ModuleNotFoundError: No module named 'soundfile'

it also gave error about torch but i just installed it with pip install torch But I've no idea what soundfile is. Please help.

olaviinha commented 2 weeks ago

Make sure you have Python 3.7 or newer installed. If you already do, perhaps this post offers some help.

Did pip install audioldm work ok? I think it should install dependencies.

In setup.py

# ...
REQUIRES_PYTHON = ">=3.7.0"
# ...

# What packages are required for this module to be executed?
REQUIRED = [
    "torch>=1.13.0",
    "torchaudio>=0.13.0",
    "torchvision>=0.14.0",
    "tqdm",
    "gradio",
    "pyyaml",
    "einops",
    "chardet",
    "numpy<=1.23.5",
    "soundfile",
    "librosa==0.9.2",
    "scipy",
    "pandas",
    "torchlibrosa==0.0.9",
    "transformers",
    "progressbar",
    "ftfy",
]
# ...

soundfile is https://pypi.org/project/soundfile pip install soundfile.

aristides86 commented 2 weeks ago

Thank you. So it's just a requirement missing. Usually there's a text file requirements.txt with every dependency needed, but I don't see one in the installation folder, or I'm doing something wrong here.

I have the latest python version. pip install audioldm gives errors as well

(gradio-env) c:\music-generation\AudioLDM>pip install audioldm
Collecting audioldm
  Using cached audioldm-0.1.1-py3-none-any.whl.metadata (11 kB)
Requirement already satisfied: torch>=1.13.0 in c:\music-generation\audioldm\gradio-env\lib\site-packages (from audioldm) (2.3.1)
Requirement already satisfied: torchaudio>=0.13.0 in c:\music-generation\audioldm\gradio-env\lib\site-packages (from audioldm) (2.3.1)
Collecting torchvision>=0.14.0 (from audioldm)
  Downloading torchvision-0.18.1-cp312-cp312-win_amd64.whl.metadata (6.6 kB)
Requirement already satisfied: tqdm in c:\music-generation\audioldm\gradio-env\lib\site-packages (from audioldm) (4.66.4)
Requirement already satisfied: gradio in c:\music-generation\audioldm\gradio-env\lib\site-packages (from audioldm) (4.36.1)
Requirement already satisfied: pyyaml in c:\music-generation\audioldm\gradio-env\lib\site-packages (from audioldm) (6.0.1)
Requirement already satisfied: einops in c:\music-generation\audioldm\gradio-env\lib\site-packages (from audioldm) (0.8.0)
Collecting chardet (from audioldm)
  Using cached chardet-5.2.0-py3-none-any.whl.metadata (3.4 kB)
Collecting numpy<=1.23.5 (from audioldm)
  Downloading numpy-1.23.5.tar.gz (10.7 MB)
     ---------------------------------------- 10.7/10.7 MB 18.2 MB/s eta 0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
ERROR: Exception:
Traceback (most recent call last):
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_internal\cli\base_command.py", line 180, in exc_logging_wrapper
    status = run_func(*args)
             ^^^^^^^^^^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_internal\cli\req_command.py", line 245, in wrapper
    return func(self, options, args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_internal\commands\install.py", line 377, in run
    requirement_set = resolver.resolve(
                      ^^^^^^^^^^^^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_internal\resolution\resolvelib\resolver.py", line 95, in resolve
    result = self._result = resolver.resolve(
                            ^^^^^^^^^^^^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 546, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 427, in resolve
    failure_causes = self._attempt_to_pin_criterion(name)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 239, in _attempt_to_pin_criterion
    criteria = self._get_updated_criteria(candidate)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 230, in _get_updated_criteria
    self._add_to_criteria(criteria, requirement, parent=candidate)
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 173, in _add_to_criteria
    if not criterion.candidates:
           ^^^^^^^^^^^^^^^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_vendor\resolvelib\structs.py", line 156, in __bool__
    return bool(self._sequence)
           ^^^^^^^^^^^^^^^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 155, in __bool__
    return any(self)
           ^^^^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 143, in <genexpr>
    return (c for c in iterator if id(c) not in self._incompatible_ids)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 47, in _iter_built
    candidate = func()
                ^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_internal\resolution\resolvelib\factory.py", line 182, in _make_candidate_from_link
    base: Optional[BaseCandidate] = self._make_base_candidate_from_link(
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_internal\resolution\resolvelib\factory.py", line 228, in _make_base_candidate_from_link
    self._link_candidate_cache[link] = LinkCandidate(
                                       ^^^^^^^^^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 290, in __init__
    super().__init__(
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 156, in __init__
    self.dist = self._prepare()
                ^^^^^^^^^^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 222, in _prepare
    dist = self._prepare_distribution()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 301, in _prepare_distribution
    return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_internal\operations\prepare.py", line 525, in prepare_linked_requirement
    return self._prepare_linked_requirement(req, parallel_builds)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_internal\operations\prepare.py", line 640, in _prepare_linked_requirement
    dist = _get_prepared_distribution(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_internal\operations\prepare.py", line 71, in _get_prepared_distribution
    abstract_dist.prepare_distribution_metadata(
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_internal\distributions\sdist.py", line 54, in prepare_distribution_metadata
    self._install_build_reqs(finder)
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_internal\distributions\sdist.py", line 124, in _install_build_reqs
    build_reqs = self._get_build_requires_wheel()
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_internal\distributions\sdist.py", line 101, in _get_build_requires_wheel
    return backend.get_requires_for_build_wheel()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_internal\utils\misc.py", line 745, in get_requires_for_build_wheel
    return super().get_requires_for_build_wheel(config_settings=cs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_vendor\pyproject_hooks\_impl.py", line 166, in get_requires_for_build_wheel
    return self._call_hook('get_requires_for_build_wheel', {
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_vendor\pyproject_hooks\_impl.py", line 321, in _call_hook
    raise BackendUnavailable(data.get('traceback', ''))
pip._vendor.pyproject_hooks._impl.BackendUnavailable: Traceback (most recent call last):
  File "c:\music-generation\AudioLDM\gradio-env\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 77, in _build_backend
    obj = import_module(mod_path)
          ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python312\Lib\importlib\__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1381, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1354, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1304, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1381, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1354, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1325, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 929, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 994, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "C:\Users\Administrator\AppData\Local\Temp\pip-build-env-d0z55z4b\overlay\Lib\site-packages\setuptools\__init__.py", line 10, in <module>
    import distutils.core
ModuleNotFoundError: No module named 'distutils'
akiseakusa commented 1 week ago

make sure you have python==3.8 , to resolve disutils issue follow this link . Afterthat, retry to install audioldm https://stackoverflow.com/questions/54486526/windows-modulenotfounderror-no-module-named-distutils

aristides86 commented 1 week ago

Thanks, I have python 3.11.7 installed. Should I downgrade to 3.8? I need 3.10 for Auto1111 to work, how do I keep multiple versions of python then? For a non-programmer it's all very confusing.

akiseakusa commented 1 week ago

I didn't test on 3.11 some library may behave different with different python version you can run i two different python virtual enviornment can be invoke as per the necessity using subprocess, API call etc.