做短视频最头疼的不是剪辑,是背景音乐——版权曲库贵到离谱,免费音效又噪得刺耳。
给播客找一个既不抢话又有氛围的片头,常常比录制还耗神。
现在这些都可以用一句描述来解决:你只需要写下“轻快的尤克里里,夏日微风”,AI 就能给你弹一段 30 秒的专属配乐。
Stability AI 把这件事做得很轻量——Stable Audio 3 Medium,一个 2.3B 参数的文本转音频模型,可以在消费级显卡甚至 CPU 上跑。
它不像动辄百亿参数的语言模型那样吃资源,生成一段 30 秒的立体声音频,在普通的 RTX 3060 上只需要十几秒。
对只是想快速拿到一段音乐的“非开发者”而言,这意味着:不用学乐理,不用调 DAW,写一句自然语言就完事。
生成的不只是“声音”
Stable Audio 3 的模型架构能同时理解文本语义和音频结构。
你可以用中文提示,比如:“喧闹的城市街道,远处有警笛”,它生成的声景里会有分层——近处人声,远处警笛,甚至有空气的底噪。
如果切换到音乐提示:“节奏 120BPM 的合成器浪潮,带贝斯和鼓机”,它能捕捉节拍和音色特征,生成一段非常像样的 synthwave。
音质方面,Medium 型号输出 44.1kHz 采样率,动态范围和频率响应都比之前的 Open 版本细致得多。
人声片段(比如旁白式朗读)也能生成,尽管还不是极致的拟人,但用于短视频配音已经够用——甚至能依据“低沉中年男声”这样的描述调整音色。
三行代码跑起来
先装两个 Python 库:
pip install diffusers accelerate scipy
然后就是核心的三行生成逻辑——你可以直接复制进一个 .py 文件运行:
from diffusers import DiffusionPipeline
import torch
import soundfile as sf
# 1. 加载模型(自动适配 GPU/CPU)
pipe = DiffusionPipeline.from_pretrained(
"stabilityai/stable-audio-3-medium",
torch_dtype=torch.float16
)
pipe = pipe.to("cuda" if torch.cuda.is_available() else "cpu")
# 2. 用一句话描述你要的音乐
audio = pipe(
"舒缓的钢琴曲,有雨声背景, calm piano with rain, 60 BPM"
).audios[0]
# 3. 保存为 WAV
sf.write("my_music.wav", audio.T, 44100)
没有 GPU 也能跑,只是会慢一些(CPU 上生成 30 秒音频约需 3–5 分钟)。
torch.float16 在 CPU 上会自动回退为 float32,不用改代码。
这段脚本干了几件聪明事:
– DiffusionPipeline.from_pretrained 自动识别管道类型,不需要你指定 StableAudioPipeline 还是别的什么。
– pipe 对象缓存到内存后,可以反复调用,换提示词不重新加载。
– 生成的 audio 是一个 (channels, length) 的 torch 张量,保存前转置一下即可。
换风格像换滤镜一样简单
试试这些提示,感受模型对不同风格的理解:
| 提示词(中/英) | 生成效果 |
|---|---|
| 爵士萨克斯,深夜酒吧 | 即兴旋律、温暖混响 |
| energetic EDM drops, 128 BPM | 鼓组 build-up + 滤音效果 |
| 电影场景:瀑布声、鸟鸣、远处的雷声 | 立体声场,左右声道有层次 |
多语言混合提示也没问题——模型在训练时接触过中英文的配对数据,能跨语言映射音乐概念。
提示越具体,生成越稳:加个 BPM 数字、乐器名称、情绪形容词,比只写“开心的音乐”效果好得多。
这意味着什么
过去,非版权音乐只有两个选项:要么忍受重复的罐头音效,要么花几百块找定制。
Stable Audio 3 把“按需生成一首独特的配乐”这件事,压缩到了几行代码和十几秒等待。
对于独立创作者,这省掉的是授权费和时间;对于实验性产品,这是在音频维度上提供一个实时交互的可能——比如根据玩家操作即时生成环境音。
但模型也有局限:
– 超过 30 秒的长音频一次生成不了,需要多次拼接。
– 复杂编曲(比如多声部对位)还不稳定,有时会跑调。
– 人声歌唱目前不是它的强项——有词歌曲交给专门的 TTS + 音乐模型组合会更靠谱。
下一步进阶:调一下 pipe 里的 num_inference_steps(默认 100)和 guidance_scale(默认 6),感受创作控制权;想玩更开放的可以试试 stabilityai/stable-audio-open,那个模型虽粗糙却支持任意时长与音效设计。
