MMAudio - 自动给视频配音效

发布于:2024-12-20 ⋅ 阅读:(6) ⋅ 点赞:(0)

MMAudio 在给定视频和/或文本输入的情况下生成同步音频。我们的关键创新是多模式联合训练,它允许对广泛的视听和音频文本数据集进行训练。此外,同步模块将生成的音频与视频帧对齐。

419 Stars 26 Forks 2 Issues NA 贡献者 MIT License Python 语言

代码: GitHub - hkchengrex/MMAudio: [arXiv 2024] Taming Multimodal Joint Training for High-Quality Video-to-Audio Synthesis

主页: MMAudio

更多AI开源软件:AI开源 - 小众AI

主要功能

一、视频到音频合成
  • **功能概述**:根据视频内容自动生成适配的音频,包括背景音乐、音效以及环境音。
  • **技术特点**:利用深度学习架构,特别是神经网络和时间分析技术,处理视频中的视觉信息,生成自然适配的音频。
  • **应用场景**:适用于影视制作、短视频创作等领域,可以简化传统音效制作的流程,提高制作效率。
二、文本到音频合成
  • **功能概述**:根据输入的文本描述生成匹配的音频效果。
  • **技术特点**:通过理解和分析文本内容,生成与文本描述相符的音效,如环境背景音、脚步声、爆炸声等。
  • **应用场景**:适用于有声读物制作、游戏配音、广告配音等领域,可以根据文本内容生成所需的音效,提升用户体验。
三、多模态联合训练
  • **功能概述**:支持在包含音频、视频和文本的数据集上进行训练,提升模型对不同模态数据的理解和生成能力。
  • **技术特点**:通过多模态联合训练,使模型能够更好地理解和生成与视频或文本内容相匹配的音频。
  • **应用场景**:适用于各种需要音频合成的场景,如虚拟现实、增强现实等领域,可以提供更加真实、自然的音频体验。
四、同步模块
  • **功能概述**:确保生成的音频与视频帧或文本描述精确对齐,实现高度同步。
  • **技术特点**:通过先进的同步机制,使生成的音频与视频内容或文本描述的时间轴完全对应。
  • **应用场景**:适用于需要精确同步音频和视频的场景,如影视制作、动画制作等领域,可以确保音频和视频的完美配合。
五、高质量音频合成
  • **功能概述**:支持高质量的音频合成,生成的音频自然、清晰。
  • **技术特点**:采用先进的音频合成技术,确保生成的音频质量高、效果好。
  • **应用场景**:适用于对音频质量有较高要求的场景,如音乐制作、专业配音等领域。

安装和使用

先决条件

我们建议使用 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 版本)

  1. 克隆我们的存储库:
git clone https://github.com/hkchengrex/MMAudio.git
  1. 使用 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