文章目录
- 所需环境
- 安装ffmpeg
- 克隆项目仓库
- 安装相关依赖库
- 运行项目
- 模型下载
- 自动下载模型失败
- MusicGen 模型下载地址
所需环境
- ffmpeg
- python>=3.9
- git
- cuda118(torch>=2.0)
安装ffmpeg
下载地址
下载后解压,然后将解压后的目录配置到系统PATH
环境变量中
打开cmd,运行命令ffmpeg -version
查看是否安装成功
克隆项目仓库
git clone https://github.com/facebookresearch/audiocraft.git
安装相关依赖库
# 进入到项目所在目录下,创建python虚拟环境
PS D:\AI\audio\audiocraft> python -m venv venv
# 激活python虚拟环境
PS D:\AI\audio\audiocraft> .\venv\Scripts\activate
# 安装torch
(venv) PS D:\AI\audio\audiocraft> pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
# 安装 requirements.txt 中的依赖
(venv) PS D:\AI\audio\audiocraft> pip install -e .
# 卸载默认安装的 xformers
(venv) PS D:\AI\audio\audiocraft> pip uninstall -y xformers
pip uninstall -y xformers
Found existing installation: xformers 0.0.20
Uninstalling xformers-0.0.20:
Successfully uninstalled xformers-0.0.20
# 安装符合torch版本的 xformers
(venv) PS D:\AI\audio\audiocraft> pip install xformers
运行项目
(venv) PS D:\AI\audio\audiocraft> python .\app.py
A matching Triton is not available, some optimizations will not be enabled.
Error caught was: No module named 'triton'
Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`.
在浏览器中输入以上cmd打印的地址http://127.0.0.1:7860
至此安装完成!
模型下载
在使用文本生成音乐的时,我们可以到界面上有四个模型的选项,代表了支持的四种模型,模型越大,对显卡显存要求就越大(官方建议显存VRAM 16G以上)。这四种模型分别为:
- small (300M), text to music, # see: https://huggingface.co/facebook/musicgen-small
- medium (1.5B), text to music, # see: https://huggingface.co/facebook/musicgen-medium
- melody (1.5B) text to music and text+melody to music, # see: https://huggingface.co/facebook/musicgen-melody
- large (3.3B), text to music, # see: https://huggingface.co/facebook/musicgen-large
当点击相应模型去生成音乐时会去huggingface
上下载对应的模型,且模型会默认缓存到 C:\Users\.cache\huggingface\hub
中,这对于C盘空间占用不太友好,为此我们更改当前项目的模型缓存目录(可参考huggingface
的文档),在系统变量中添加:
变量名:HUGGINGFACE_HUB_CACHE
或者HF_HOME
变量值:自定义的模型缓存目录
查看原本的huggingface
模型缓存目录
(venv) PS D:\AI\audio\audiocraft> huggingface-cli.exe scan-cache
REPO ID REPO TYPE SIZE ON DISK NB FILES LAST_ACCESSED LAST_MODIFIED REFS LOCAL PATH
----------------------------- --------- ------------ -------- ------------- ------------- ---- ----------------------------------------------------------------------------
openai/clip-vit-large-patch14 model 1.7G 6 24 hours ago 1 week ago main C:\Users\yuan1\.cache\huggingface\hub\models--openai--clip-vit-large-patch14
重新进入到当前项目的python虚拟环境查看huggingface
模型缓存目录是否更新
(venv) PS D:\AI\audio\audiocraft> huggingface-cli.exe scan-cache
REPO ID REPO TYPE SIZE ON DISK NB FILES LAST_ACCESSED LAST_MODIFIED REFS LOCAL PATH
------- --------- ------------ -------- ------------- ------------- ---- ----------
Done in 0.0s. Scanned 0 repo(s) for a total of 0.0.
自动下载模型失败
在点击对应模型去生成音乐时会自动去huggingface
下载模型,但是由于网络问题,大概率会下载报错,为此,我们可以将四个选项按钮分别点一遍,这样虽然模型无法下载成功,但是会在在缓存文件夹自动生成各个模型的目录,然后我们自己去各个模型的huggingface
地址将模型手动下载后导入到对应的自动生成的模型目录
比如small
模型的下载地址,下载好的compression_state_dict.bin
以及state_dict.bin
移动到以上自动生成的models--facebook--musicgen-small\snapshots\项目版本hash文件夹
目录下即可!
再次启动项目进行音乐生成时报错
raise EnvironmentError(
OSError: Can't load tokenizer for 't5-base'. If you were trying to load it from 'https://huggingface.co/models',
make sure you don't have a local directory with the same name. Otherwise,
make sure 't5-base' is the correct path to a directory containing all relevant files for a T5Tokenizer tokenizer.
提示说要下载一个名叫t5-base
的模型,其实回退到huggingface
缓存跟目录可以看到已经自动生成了一个目录models-ts-base
于是我们打开huggingface
的模型下载地址
这里下载文件pytorch_model.bin
以及config.json
将下载好的文件放到models--t5-base
目录下,然后重启项目再次生成音乐,会发现自动去下载所需的 model.safetensors
模型,其实也就是我们以上搜索的t5-base
中的一个模型
下载结果如下
等待下载进度完成后,我们发现cmd中也没有报错,并且界面上成功生成了音乐
MusicGen 模型下载地址
melody模型下载地址
large模型下载地址
medium模型下载地址
small模型下载地址