【免费下载链接】Step-Audio-EditX-8bit
Step-Audio-EditX-8bit 是面向 Apple Silicon 的 int8 MLX 模型包,完整封装了 StepFun 的 3B 参数音频 LLM 音频编辑系统:双 Tokenizer、Flow 声学模型与 HiFT 声码器四大组件齐备,可在 M5 Max 上以约 0.51 倍实时因子完成改情绪、换风格、加笑声、降噪、静音修剪,以及零样本语音克隆。本文带你读懂每个文件背后的组件,以及一次编辑如何在四个组件之间流转。
一、先看仓库文件清单:每个文件对应哪个组件 📦
这个仓库是一个"开箱即用的音频编辑流水线",所有权重与配置按组件平铺在根目录:
| 文件 | 所属组件 | 一句话作用 |
|---|---|---|
| model.safetensors + config.json | step1 LM(3B 音频 LLM) | 大脑:理解指令并生成新音频 Token |
| vq02.safetensors + vq02-config.json | vq02 语义 Tokenizer | 提取"说了什么"(内容层) |
| vq06.safetensors + vq06-config.json | vq06 声学 Tokenizer | 提取"怎么说"(音色、韵律层) |
| step-audio-tokenizer-assets.safetensors + step-audio-tokenizer-config.json | Tokenizer 附属资源 | 静音修剪、分块等预处理参数 |
| flow-model.safetensors + flow-conditioner.safetensors | Flow 声学模型 | 把音频 Token 还原成梅尔频谱 |
| hift.safetensors + hift-config.json | HiFT 声码器 | 把梅尔频谱变成 24 kHz 波形 |
| campplus-config.json | CAM++ 说话人模型 | 提取 192 维声纹嵌入 |
| tokenizer.json + tokenizer_config.json | 文本 Tokenizer | LlamaTokenizer 与对话模板 |
| frontend-config.json | Mel 前端 | 24 kHz / 80 mel 特征提取参数 |
二、大脑:step1 3B 音频 LLM 与 8-bit 量化 🧠
model.safetensors是 StepFun 的 step1 语言模型,也是本仓库中唯一的 8-bit 权重。从 config.json 可以看到核心结构:
- 32 层Transformer,隐藏层宽度3072(config.json)
- 48 个注意力头 / 4 个 KV 分组,即采用 GQA 分组查询注意力,推理更省显存
- 上下文长度32768、词表大小74752(其中包含音频 Token 空间)
- 位置编码使用 sqrt-ALiBi
量化信息写在 config.json 的quantization字段:
"bits": 8, "group_size": 64, "mode": "affine"
也就是说每个 Linear 层和 Embedding 都按64 个权重一组做仿射 8-bit 量化。效果很直接:LM 权重从 bf16 的 7.06 GB 压缩到3.75 GB,而 Tokenizer、Flow、HiFT 仍保持 bf16 不变(见 README.md)。由于量化权重本身就是在加载路径上按相同规则生成的,"加载即量化",结果可精确复现。
三、双 Tokenizer:vq02 管内容,vq06 管音色 🔤
音频编辑的关键前提是"内容不丢、声音要像",双 Tokenizer 正是为此分工:
vq02:语义编码器(说了什么)
vq02-config.json 显示它基于ParaformerStreaming(FunASR 的 ASR 编码器):
- 16 kHz 输入、80 mel,经 LFR 帧堆叠(
lfr_m: 7)后输入维度达560(vq02-config.json) - 编码器为50 块 SANM结构,输出 512 维语义特征
- 码本大小1024(step-audio-tokenizer-config.json)
它负责"语义保真"——无论怎么改情绪和风格,转录文字保持不变。
vq06:声学编码器(怎么说)
vq06-config.json 是 Step-Audio-Tokenizer 的 S3 声学编解码器:
- 128 mel输入、1280 维隐藏层、20 头 × 6 层 Transformer
- 码本大小4096,输出 Token 速率25 Hz(step-audio-tokenizer-config.json),即每秒语音约 25 个 Token
它承载音色、韵律、笑声/叹气等非语言信息。附属的 step-audio-tokenizer-config.json 还定义了静音修剪参数(trim_top_db: 20、左留 0.05 s / 右留 0.22 s)与 30 s 分块上限等预处理细节。
四、Flow:把音频 Token 还原成梅尔频谱 🎛️
LLM 输出的新 Token 还是离散符号,Flow 模型负责把它变回连续的声学表征:
- flow-model:一个 16 层 Transformer 估计器(
estimator_depth: 16),输入 320 通道、输出80 mel频谱,推理采用CFG 率 0.7的条件引导(flow-model-config.json) - flow-conditioner:把条件信息打包给 Flow。配置中
vq02_pad_token: 1024、vq06_prompt_offset: 1024、vq06_vocoder_base: 1025(flow-conditioner-config.json)恰好说明——vq02 与 vq06 两套码本被拼进同一张 5121 词的嵌入表:前 1024 留给 vq02,从 1024 开始偏移排布 vq06 Token - 说话人维度
spk_embed_dim: 192,正好对接 CAM++ 的 192 维声纹嵌入 prompt_mel_upsample: 2用于参考音频梅尔频谱的上采样对齐
五、HiFT 声码器:梅尔频谱到 24 kHz 波形 🎙️
hift-config.json 是最后的"最后一公里":
- 输入 80 mel(与 frontend-config.json 的 24 kHz / 80 mel 前端参数对齐)
- f0 预测器+ NSF 激励源(8 个谐波、
sigma: 0.003)建模音高与气息 - 三级上采样8 × 5 × 3 = 120 倍,配合 ResBlock 与 ISTFT(
n_fft: 16, hop: 4)重建波形 - 输出采样率24000 Hz,幅度钳位在 0.99 防爆音(hift-config.json)
六、CAM++:零样本克隆的声纹钥匙 🔑
campplus-config.json 定义了 CAM++ 说话人模型:80 mel 特征输入,输出192 维段级(segment)嵌入(campplus-config.json)。这个 192 维向量正是 Flow 的spk_embed_dim所需的条件——给定几秒参考语音,就能让编辑后的音频"用同一副嗓子说话"。
七、一次编辑的完整数据流 ⚡
把四大组件串起来,一次"换成开心的语气"的编辑流程是:
- 输入语音→ vq02 提取语义 Token(锁定"说了什么")
- 输入语音→ vq06 提取 25 Hz 声学 Token(锁定原音色与韵律)
- 文本指令 + 双 Token→ step1 LM 生成新的声学 Token 序列(情绪改写、插入笑声/叹气、去噪、去静音)
- 新 Token + CAM++ 声纹嵌入→ Flow 生成 80 mel 频谱
- 梅尔频谱→ HiFT 声码器输出 24 kHz 波形
八、实测表现:8-bit 量化到底省了多少 📊
据 README.md 在 M5 Max 上(E19 评测集)的实测数据:
| 指标 | int8 本仓库 | bf16 对照 |
|---|---|---|
| 常驻内存 | 6.2 GB(MLX active 5.7 GB) | 更高 |
| 单次编辑峰值 | 7.3–7.7 GB | — |
| 实时因子 RTF | 0.51–0.53 | 0.72–0.75 |
| 加载耗时 | 0.5 s | — |
| ASR 内容误差 | 0.000(四项测试编辑全通过) | 同 |
| 说话人相似度 | 0.83–0.97 | 同 |
| DNSMOS 音质 | 3.45–3.49 | 同 |
结论:量化后速度提升约 40%,内容零丢失、音色质量与 bf16 同档。近并列采样点上的 Token 会与 bf16 略有差异,这是量化模型的正常现象,不影响听感。
九、如何加载与许可说明
- Swift:推理库 ≥ 0.1.1 的
EditXPipeline.load(bundle:)会直接从 config.json 读取量化参数加载本仓库 - Python:
mlx-speech支持这种布局的 int8 LM 包(其--bits 8转换器写入相同的权重键)
许可方面(见 README.md):LM、Flow、HiFT 与 S3 Tokenizer 为 Apache-2.0(StepFun);Paraformer 编码器遵循 FunASR 模型许可;CAM++ 为 Apache-2.0(Alibaba)。
一句话总结:Step-Audio-EditX-8bit = 3B 音频 LLM(8-bit 量化大脑)+ 双 Tokenizer(内容与音色双保险)+ Flow(Token 到频谱)+ HiFT(频谱到波形),四个组件各司其职,让你在 Apple Silicon 上以超过实时的速度,把一段录音"重新演绎"成任何你想要的表达。
【免费下载链接】Step-Audio-EditX-8bit
相关推荐
如何用同一条声音重演全新演绎?3B音频LLM Step-Audio-EditX-8bit完全指南
如何用同一条声音重演全新演绎?3B音频LLM Step Audio EditX 8bit完全指南 Step Audio EditX 8bit 是 StepFun
声音如何被“Token化”?深度解析Step-Audio-EditX-8bit双音频Tokenizer:vq02与vq06
声音如何被“Token化”?深度解析Step Audio EditX 8bit双音频Tokenizer:vq02与vq06 Step Audio EditX 8
从Mel谱到真实人声:Step-Audio-EditX-8bit的Flow + HiFT声码器原理深扒
从Mel谱到真实人声:Step Audio EditX 8bit的Flow + HiFT声码器原理深扒 Step Audio EditX 8bit 是一个可在
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考