facebookresearch/WavFlow 是 Meta AI 发布的多模态音频生成项目,论文标题是 WavFlow: Audio Generation in Waveform Space。
项目地址:https://github.com/facebookresearch/WavFlow
它关注的不是语音合成,也不是单纯的音乐生成,而是从视频和文本条件生成同步、高保真的音频。更特别的是,它不走常见的 latent compression 路线,而是尝试直接在 raw waveform space 里做端到端音频生成。
截至写作时,GitHub 页面显示仓库约有 55 star、3 fork,代码主要是 Python,项目没有发布 release。仓库 README 也明确提醒:由于组织政策限制,目前不能发布 production-trained checkpoints,团队正在训练基于完全开源数据的 foundation checkpoint。在那之前,用户需要自己训练模型。
WavFlow 想解决什么问题
很多多模态音频生成方法会先把音频压缩到 latent 空间,再在 latent 上做生成,最后还原成波形。这条路线效率高,但也会带来一个问题:压缩过程可能损失细节,最终音频的质感、同步性和高频信息会受影响。
WavFlow 的思路是绕开这一步,直接在原始波形空间生成音频。
README 里提到,它通过 waveform patchifying 和 amplitude lifting,让 flow matching 可以稳定地作用在 raw audio 上,并使用直接的 x-prediction。直白一点说,它不是先把声音压成某种中间表示再生成,而是把音频波形本身切成适合模型处理的 patch,并做幅度变换,让模型能在波形层面学习生成。
这也是它最值得关注的地方:如果端到端波形生成能稳定工作,就有机会减少编码器/解码器带来的信息瓶颈。
支持哪些输入模式
从 README 和训练说明看,WavFlow 面向三类输入。
第一类是 VT2A,也就是 video + text to audio。给模型视频和文本描述,让它生成与画面和语义同步的音频,比如森林、青蛙、鼓声、滑板等场景。
第二类是 T2A,也就是 text to audio。只有文本描述,没有视频输入。训练时使用 CLIP text feature,推理时 CSV 里可以把 video_exist 设为 0。
第三类是 V2A,也就是 video to audio。只有视频,没有文本。推理时可以把 text_exist 设为 0,模型会使用 learned empty CLIP-text token。
这种设计比较实用。真实数据里不一定每条样本都有完整的视频、文本和音频标注,WavFlow 用 video_exist 和 text_exist 这类字段把缺失模态显式表达出来,训练和推理都能处理不同组合。
评测和效果定位
README 提到,WavFlow 在 VGGSound 的 VT2A 任务和 AudioCaps 的 T2A 任务上进行评测,表现可以和已有 latent-based 方法相当。
这句话的意义不是说它已经全面碾压现有模型,而是证明一件事:端到端 raw waveform generation 并不一定输给传统 latent 框架。至少在 acoustic richness、fidelity 和 synchronization 这些指标上,它可以达到同一档水平。
项目页还提供了 forest、frog、drum、skateboard 等 demo,并在项目主页放了 24 个以上样例和并排 benchmark 对比。对音频生成模型来说,demo 很重要,因为文字指标很难完整描述声音的质感、空间感和同步感。
安装方式
官方提供了自动安装脚本:
|
|
scripts/setup.sh 会创建名为 wavflow 的 conda 环境,并安装所需依赖。
如果想手动安装,可以按 README 里的方式:
|
|
这里的 ffmpeg<7 主要是为了 torio 视频解码。README 还说明,CLIP、Synchformer、empty-string CFG embedding 等外部权重会在首次运行时自动下载或计算,并缓存到 ~/.cache/wavflow/。
推理怎么跑
由于官方暂时没有发布 production-trained checkpoints,下面的推理入口只适用于你已经有训练好的 checkpoint 的情况。
|
|
默认配置文件是:
|
|
输入 CSV 由 data.csv_path 指定,支持视频、文本,或者两者同时存在:
|
|
其中 video_exist=0 表示不解码视频,使用 learned empty CLIP/Sync tokens;text_exist=0 表示忽略 caption,使用 learned empty CLIP-text token。如果有逗号的 caption,需要加引号。
常用启动参数包括:
|
|
关键配置项包括 model.name、model.ckpt_path、model.use_ema、inference.duration_sec、target_sample_rate、inference.cfg、num_steps、noise_scale、noise_shift、prediction_type、seed 和输出目录。
EMA 的一个坑
README 特别提醒了 model.use_ema 的问题。
WavFlow 的 checkpoint 里可能有 model_ema1,它按 ema_decay = 0.9999 更新。如果训练只跑了几百或几千步,EMA 里可能还包含大量随机初始化值,推理时会产生噪声。
所以,如果你只是做短跑、过拟合小样本或 smoke test,采样时应该考虑:
|
|
或者使用训练足够久之后保存的 ema_epoch_*.pth。这个细节很实用,否则很容易误以为模型坏了,其实只是 EMA 还没稳定。
训练流程
官方的 TRAINING.md 把训练分成两步。
第一步是特征提取。
T2A 只提取 CLIP text feature;VT2A 会提取 CLIP frame feature、Synchformer feature 和 CLIP text feature。示例 CSV 大致是:
|
|
视频长度需要大于等于 extraction.duration_sec,默认是 8 秒;更短的片段会被跳过。特征提取可以这样运行:
|
|
如果要用更多 GPU 或自定义配置:
|
|
第二步是训练。
单机多卡可以用:
|
|
多节点训练需要设置 NNODES、NODE_RANK、MASTER_ADDR、MASTER_PORT 和 NPROC_PER_NODE。训练输出包括 checkpoint_latest.pth、checkpoint_epoch_*.pth、ema_epoch_*.pth、生成音频样本和 training.log。
训练可以自动 resume:如果实验目录里存在 checkpoint_latest.pth,训练会从那里继续。
适合谁关注
WavFlow 更适合研究者和工程团队关注,而不是普通用户直接拿来做成品音效。
适合关注它的人包括:
- 研究 video-to-audio、text-to-audio 或 multimodal audio generation 的人。
- 想比较 raw waveform generation 和 latent-based audio generation 的团队。
- 需要训练自有音频生成模型,并能准备数据和 GPU 资源的用户。
- 对视频画面和声音同步要求高的应用团队。
- 想研究 flow matching 在原始音频波形上是否可行的人。
如果你只是想找一个网页工具,输入 prompt 直接生成音效,WavFlow 现在不是最省事的选择。它暂时没有公开 production checkpoint,部署路径也更接近研究代码。
使用时要注意什么
第一,不能把它当成“下载即用”的音频生成模型。官方目前没有发布生产训练 checkpoint,真正推理前需要自己训练,或者等待后续开放数据 checkpoint。
第二,许可证不是宽松商用默认选项。README 说明,WavFlow 大部分代码采用 CC-BY-NC 4.0,部分 vendored 组件沿用 MIT、Apache 2.0、CC BY-NC 4.0 和 Stability AI Community License 等原始许可证。商业使用前要仔细读 LICENSE 和 NOTICE.txt。
第三,训练数据很关键。WavFlow 的优势建立在音频、视频和文本对齐数据之上。如果数据质量差、caption 不准确、音画不同步,模型很难学到稳定的声音生成。
第四,raw waveform generation 虽然减少 latent bottleneck,但也可能带来更高的训练和推理成本。实际项目里仍然要在音质、速度、显存、采样率和输出时长之间取舍。
小结
WavFlow 的价值在于提出了一个清晰问题:多模态音频生成一定要先压缩到 latent 空间吗?
它用 waveform patchifying、amplitude lifting 和 flow matching,尝试直接在 raw waveform space 里生成同步高保真音频。评测结果说明,这条路线至少有机会和成熟的 latent-based 方法站在同一水平线上。
不过,现阶段它更像一套研究和训练框架,而不是开箱即用的产品模型。没有公开生产 checkpoint、许可证偏非商用、训练需要音视频文本对齐数据,这些都决定了它更适合研究、复现和二次训练。如果你关注下一代 video-to-audio 或 text-to-audio 模型,WavFlow 值得认真看一眼。
参考资料
- facebookresearch/WavFlow:https://github.com/facebookresearch/WavFlow
- WavFlow Project Page:https://facebookresearch.github.io/WavFlow/
- WavFlow arXiv:https://arxiv.org/abs/2605.18749
- WavFlow Training Guide:https://github.com/facebookresearch/WavFlow/blob/main/TRAINING.md