# AudioLDM 2，加速！

**URL:** <https://meta.101.dev/t/audioldm-2/1178>\
**Category:** Hugging Face\
**Tags:** audio, ldm\
**Created:** [2023 年10 月 10 日 07:59 UTC](https://meta.101.dev/t/audioldm-2/1178 "2023-10-10T07:59:08Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

作者： ![101](https://meta.101.dev/user_avatar/meta.101.dev/101/32/575_2.png) [@101](https://meta.101.dev/u/101)\
发布日期： [2023 年10 月 10 日 07:59 UTC](https://meta.101.dev/t/audioldm-2/1178/1 "2023-10-10T07:59:08Z")

</div>

AudioLDM 2 由刘濠赫等人在 [AudioLDM 2: Learning Holistic Audio Generation with Self-supervised Pretraining](https://arxiv.org/abs/2308.05734) 一文中提出。 AudioLDM 2 接受文本提示作为输入并输出对应的音频，其可用于生成逼真的声效、人类语音以及音乐。

虽然生成的音频质量很高，但基于其原始实现进行推理的速度非常慢: 生成一个 10 秒的音频需要 30 秒以上的时间。慢的原因是多重的，包括其使用了多阶段建模、checkpoint 较大以及代码尚未优化等。

本文将展示如何在 Hugging Face 🧨 Diffusers 库中使用 AudioLDM 2，并在此基础上探索一系列代码优化 (如半精度、Flash 注意力、图编译) 以及模型级优化 (如选择合适的调度器及反向提示)。最终我们将推理时间降低了 **10 倍** 多，且对输出音频质量的影响最低。本文还附有一个更精简的 [Colab notebook](https://colab.research.google.com/github/sanchit-gandhi/notebooks/blob/main/AudioLDM-2.ipynb)，这里面包含所有代码但精简了很多文字部分。

最终，我们可以在短短 1 秒内生成一个 10 秒的音频！

## 模型概述

受 [Stable Diffusion](https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/overview) 的启发，AudioLDM 2 是一种文生音频的 \_ 隐扩散模型 (latent diffusion model，LDM)\_，其可以将文本嵌入映射成连续的音频表征。

大体的生成流程总结如下:

1. 给定输入文本 \boldsymbol{x}，使用两个文本编码器模型来计算文本嵌入: [CLAP](https://huggingface.co/docs/transformers/main/en/model_doc/clap) 的文本分支，以及 [Flan-T5](https://huggingface.co/docs/transformers/main/en/model_doc/flan-t5) 的文本编码器。

2. 这些文本嵌入通过各自的线性层投影到同一个嵌入空间:
