项目简介
MMAudio 在给定视频和/或文本输入的情况下生成同步音频。我们的关键创新是多模式联合训练,它允许对广泛的视听和音频文本数据集进行训练。此外,同步模块将生成的音频与视频帧对齐。
安装
我们仅在 Ubuntu 上对此进行了测试。
先决条件
我们建议使用 miniforge 环境。
-
Python 3.9+
-
PyTorch 2.5.1+ 和相应的 torchvision/torchaudio (选择您的 CUDA 版本 https://pytorch.org/,建议使用 pip 安装)
1. 如果尚未满足,请安装先决条件:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 --upgrade
(或者您的 GPU/驱动程序支持的任何其他 CUDA 版本)
2. 克隆我们的存储库:
git clone https://github.com/hkchengrex/MMAudio.git
3. 使用 pip 安装(在尝试此操作之前先安装 pytorch!):
cd MMAudio
pip install -e .
(如果遇到文件“setup.py”未找到错误,请使用 pip install –upgrade pip 升级您的 pip)
预训练模型:
当您运行演示脚本时,模型将自动下载。MD5 校验和在 mmaudio/utils/download_utils.py
中提供。这些模型也可以在 https://huggingface.co/hk Chengrex/MMAudio/tree/main 上找到
要运行该模型,您需要四个组件:流量预测网络、视觉特征提取器(Synchformer 和 CLIP,CLIP 将自动下载)、VAE 和声码器。VAE 和声码器特定于采样率(16kHz 或 44.1kHz),而不是模型大小。44.1kHz 声码器将自动下载。
预期的目录结构(完整):
MMAudio
├── ext_weights
│ ├── best_netG.pt
│ ├── synchformer_state_dict.pth
│ ├── v1-16.pth
│ └── v1-44.pth
├── weights
│ ├── mmaudio_small_16k.pth
│ ├── mmaudio_small_44k.pth
│ ├── mmaudio_medium_44k.pth
│ ├── mmaudio_large_44k.pth
│ └── mmaudio_large_44k_v2.pth
└── ...
预期的目录结构(最小,仅适用于推荐模型):
MMAudio
├── ext_weights
│ ├── synchformer_state_dict.pth
│ └── v1-44.pth
├── weights
│ └── mmaudio_large_44k_v2.pth
└── ...
演示
默认情况下,这些脚本使用 large_44k_v2
模型。在我们的实验中,推理仅需要大约 6GB 的 GPU 内存(16 位模式),这应该适合大多数现代 GPU。
命令行界面
与 demo.py
python demo.py --duration=8 --video=<path to video> --prompt "your prompt"
输出( .flac
格式的音频和 .mp4
格式的视频)将保存在 ./output
中。请参阅该文件以获取更多选项。只需省略文本到音频合成的 --video
选项即可。默认输出(和训练)持续时间为 8 秒。更长/更短的持续时间也可以,但与训练持续时间的较大偏差可能会导致质量下降。
音频接口
支持视频转音频和文本转音频合成。如有必要,请使用端口转发。我们的默认端口是 7860
您可以在 gradio_demo.py
中更改。
python gradio_demo.py
已知的限制
-
该模型有时会生成不需要的、难以理解的类似人类语音的声音
-
该模型有时会生成不需要的背景音乐
-
该模型与不熟悉的概念作斗争,例如,它可以生成“枪声”,但不能生成“RPG 射击”。
我们相信所有这三个限制都可以通过更多高质量的训练数据来解决。
项目链接
项目地址:https://hkchengrex.com/MMAudio/
Github:https://github.com/hkchengrex/MMAudio
在线体验:https://huggingface.co/spaces/hkchengrex/MMAudio
ComfyUI节点:https://github.com/kijai/ComfyUI-MMAudio https://x.com/Gorden_Sun/status/1866696704487313450/video/1
扫码加入技术交流群,备注「开发语言-城市-昵称」
(文:GitHubStore)