facebook文本生成音乐项目-audiocraft 安装教程

2023-11-16

所需环境

  • 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文件夹目录下即可!
在这里插入图片描述
在这里插入图片描述
但是又有一个问题,我们首次点击了相应的模型去生成音乐时,在缓存目录只生成了一级目录,比如我这里使用medium模型以及large模型生成音乐时只是在缓存目录中生成了一级目录models--facebook--musicgen-medium以及models--facebook--musicgen-large,并没有进一步生成该一级目录下本该有的blobsrefssnapshots目录
在这里插入图片描述
此时我们手动新建这三个目录,blobs是一个空目录,refs下有一个main文件,该文件的内容是一串hash值,即代表当前模型版本的提交记录hash,我们可以在huggingface相应的模型地中找到完整的hash值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将复制的hash值放到main文件中保存,然后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仓库中的一个模型 model-safetensors,当然我们也可以手动将其下载下来放到以上生成的models-ts-base目录下

在这里插入图片描述
下载结果如下
在这里插入图片描述
等待下载进度完成后,我们发现cmd中也没有报错,并且界面上成功生成了音乐
在这里插入图片描述
在这里插入图片描述

pytorch相关模型缓存目录

在使用melody模型生成音乐时可以看到控制台会去下载一个80M大小的模型955717e8-8726e21a.th,该模型的缓存地址在C盘的缓存目录下,这对于C盘空间占用不太友好,于是我们可以更改pytorch的模型下载缓存目录
在这里插入图片描述
新建环境变量,变量名必须是TORCH_HOME,变量值就是自定义的pytorch缓存目录,目录最好不要带中文
在这里插入图片描述

MusicGen 模型下载地址

melody模型下载地址
large模型下载地址
medium模型下载地址
small模型下载地址

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

facebook文本生成音乐项目-audiocraft 安装教程 的相关文章

随机推荐

  • IntelliJ Idea 常用快捷键列表

    IntelliJ Idea 常用快捷键列表 Alt 回车 导入包 自动修正 Ctrl N 查找类 Ctrl Shift N 查找文件 Ctrl Alt L 格式化代码 Ctrl Alt O 优化导入的类和包 Alt Insert 生成代码
  • c++/c混合编程

    一 前言 代码从编写到能执行之前 需要经过编译 链接阶段 通常 编译每一个单元文件会生成目标文件 然后链接器会把各个目标文件链接起来生成可执行性文件 链接器之所以能把目标文件相互之间链接起来 就是通过查找目标文件中的唯一函数符号 即经过编译
  • 飞行管理计算机哪个公司,波音737-700的FMC(飞行管理计算机的讲解) VLN081

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 DEP ARR 进离场页面 第一行是你的起始机场 左1 右1 XXXX ARR gt 右2 HOLD 等待点设置叶面 等待点必须在航路上设置的一个点 并已经如入到LEGS 左1 XX 点的名称
  • 初识设计模式:单例模式

    设计模式 是一种思想 解决一个问题的方法有很多种 编程实现一个解决方法也有很多种 设计模式是一种针对不同问题 设计适合该问题的代码 在保证解决问题的基础上 还要保证能有好的扩展性 再有新需求的时候可以便捷的添加新模块 而非大动干戈的改变整个
  • cocos2d Sprite混合达到水流动效果

    使用Sprite混合setBlendFunc方式达到流动效果 void MainHomeLayer updateWaterFall float dt static float offset 0 if NULL waterFall water
  • Qt获取CPU编号和硬盘序列号

    windows下执行命令除了用cmd之外 还有个东西叫WMIC 非常强大 可以通过他获取很多信息 包括硬件信息 QString frmMain getWMIC const QString cmd 获取cpu名称 wmic cpu get N
  • Pandas中DataFrame数据合并、连接(concat、merge、join)

    最近在工作中 遇到了数据合并 连接的问题 故整理如下 供需要者参考 一 concat 沿着一条轴 将多个对象堆叠到一起 concat方法相当于数据库中的全连接 union all 它不仅可以指定连接的方式 outer join或inner
  • sql注入万能密码总结

    select from admin where username and password 第一种 当你已知管理员账号名为admin时可以直接尝试 admin select from admin where username admin a
  • QT/PyQT/PySide 通过富文本形式实现关键词高亮

    因为本质上都是QT 所以我标题带了QT 这个思路是没问题的 就是用C 得换个语言 最开始想根据之前一篇博客的思路进行高亮 PyQT PySide 文本浏览器跳转到指定行 并高亮指定行 qt 指定行高亮 Toblerone Wind的博客 C
  • 归一化互相关匹配

    设待匹配图像I的像素大小为MxN 模板T的像素大小为mxn 从图像I中任意选取一块像素大小为mxn的子图Ix y 其左上角在图像I中的坐标为 x y 可知坐标范围为 其中 M N分别为待匹配图像像素的行数和列数 m n分别为模板像素的行数和
  • [USF-XSim-62] ‘elaborate‘ step failed with errors.[Vivado 12-4473] Detected error while running sim

    USF XSim 62 elaborate step failed with error s Please check the Tcl console output and Vivado 12 4473 Detected error whi
  • linux中shell变量$#,$@,$0,$1,$2的含义解释/Shell中的${}、##和%%使用范例/export

    linux中shell变量 0 1 2的含义解释 变量说明 Shell本身的PID ProcessID Shell最后运行的后台Process的PID 最后运行的命令的结束代码 返回值 使用Set命令设定的Flag一览 所有参数列表 如 用
  • 【开集识别论文解读】Classification-Reconstruction Learning for Open-Set Recognition——CVPR2019

    论文原文 https arxiv org pdf 1812 04246v2 pdf 本文提出的CROSR利用潜在表示进行重建 并在不损害已知类别分类精度的情况下实现鲁棒未知检测 开集分类器可以检测不属于任何训练类的样本 通常 它们将概率分布
  • 机器翻译的数据预处理

    主要分为三大块 1 数据筛选 去除那些训练集中不对齐 质量差的句对 相关的技巧有很多 去重 重复的数据会使训练过程有偏 可以简单地去除完全相同的句对 也可以计算每两个句子之间的局部哈希值 把相似度小于某个阈值的句对都去除 去空行 空行不能提
  • 微信改昵称提醒服务器调试,修改微信“官方提醒”,最近超火!

    原标题 修改微信 官方提醒 最近超火 最近有一个修改微信 官方提醒 小尾巴的聊天玩法在抖音上火了 利用微信内置一个小功能套路了不少网友 效果就如封面图所示 是不是很神奇呢 具体怎么玩 来看看下面的具体操作吧 其实这个玩法是用到微信聊天里一个
  • hdu 2043 密码

    密码 Time Limit 2000 1000 MS Java Others Memory Limit 65536 32768 K Java Others Total Submission s 22640 Accepted Submissi
  • mysql数据库字段名为关键字出现的问题

    真是奇葩年年多 今天又一个 我们都知道 无论是保留字还是关键字或者特殊端口等等 都是系统预留的自用的 但是偏偏有人喜欢用这些 所以就导致其他人在用的时候出现各种错误 今天就记录一个我遇到的 关于mysql字段名的问题 今天在用sql查询时
  • 变量的 4 种存储类型

    存储类型 总共有四种存储类型的变量 分别为自动变量 auto 静态变量 static 外部变量 extern 以及寄存器变量 register auto 函数中所有的非静态局部变量 c语言可以指定类型如auto int a c 编译器不能指
  • Android开发:Eclipse中SqliteManager插件使用

    通常开发Android的时候要使用到数据库操作 会遇到下面小问题 数据库文件在哪 怎样訪问或操作 能够通过 打开DDMS gt File Explorer看到的sqlite数据库在eclipse 然后在文件夹 data data packa
  • facebook文本生成音乐项目-audiocraft 安装教程

    文章目录 所需环境 安装ffmpeg 克隆项目仓库 安装相关依赖库 运行项目 模型下载 自动下载模型失败 pytorch相关模型缓存目录 MusicGen 模型下载地址 所需环境 ffmpeg python gt 3 9 git cuda1