Audio8 TTS API完全参考:generate、encode_audio与decode_audio参数详解及调用示例
【免费下载链接】Audio8-TTS-Preview-0.1b项目地址: https://ai.gitcode.com/hf_mirrors/Audio8/Audio8-TTS-Preview-0.1b
Audio8 TTS Preview 0.1B 是当前体积最小的零样本语音克隆 TTS 模型之一(主模型约 170M 参数)。本文带你完整掌握它的三个核心 API:generate、encode_audio与decode_audio,包括每个参数的含义、默认值、输入输出形状,以及一套可直接运行的调用示例,帮助新手快速上手 Audio8 TTS 语音合成。
Audio8 TTS 模型速览:为什么值得上手 🚀
| 项目 | 规格 |
|---|---|
| 主模型 | 约 170M 参数(Falcon-H1 慢/快双分支自回归) |
| Codec 解码器 | 约 120M 参数,随仓库内置于codec.pth |
| 输出采样率 | 44.1 kHz |
| 声学 Token | 10 个 codebook,每本 4096 条目 |
| 帧率 | 每帧 2048 采样点(约 21.5 帧/秒) |
| 支持语言 | 中文、英语为主,多语言实验支持 |
一次完整的语音合成流水线是:文本 →generate生成 codec 码本 →decode_audio还原波形;encode_audio则负责把参考音频转成码本。三个方法都定义在 modeling_arktts.py 中。
三个核心 API 一览
| 方法 | 作用 | 输入 | 输出 |
|---|---|---|---|
generate | 自回归生成声学 codec 帧 | 处理器输出的张量 + 采样参数 | codes,形状[B, 10, T] |
encode_audio | 单声道波形 → 10 路码本流 | 波形[B, 1, T]+ 长度 | 码本[B, 10, T] |
decode_audio | 码本 → 44.1 kHz 波形 | 码本[B, 10, T] | (waveforms, lengths) |
generate 参数详解:生成质量的关键开关
generate(modeling_arktts.py 第 777 行起)接收由处理器构建的 prompt 张量,常用参数如下:
| 参数 | 默认值 | 说明 |
|---|---|---|
input_ids/attention_mask | - | 文本 token 及其掩码(处理器输出) |
prefix_input_ids/prefix_attention_mask | - | 参考语音前置文本片段 |
suffix_input_ids/suffix_attention_mask | - | 待合成文本后置片段 |
reference_codes/reference_code_lengths | - | 预编码的参考语音码本(可选) |
reference_audio_values/reference_audio_lengths | - | 原始参考语音波形(可选) |
max_new_tokens | 512 | 最长生成帧数,自动被 2048 上下文截断 |
temperature | 0.7 | 采样温度,越高越随机,必须 > 0 |
top_p | 0.9 | 核采样阈值 |
top_k | 50 | 候选 token 数 |
do_sample | True | 是否开启采样 |
return_dict_in_generate | False | True 时返回含codes、code_lengths、finished的字典,否则直接返回codes张量 |
💡提示:传入未知参数会直接抛出TypeError,这有助于及早发现拼写错误。默认值与 generation_config.json 保持一致。
encode_audio 参数详解:参考音频变码本
codes = model.encode_audio(audio_values, audio_lengths=None)| 参数 | 说明 |
|---|---|
audio_values | 填充后的单声道波形,形状[B, 1, T],自动转为 codec 数据类型 |
audio_lengths | 每条音频的真实采样数,用于区分有效帧与填充 |
输出为 10 路码本流[B, 10, T]。典型用途:批量推理时先把参考语音编码一次,多次调用generate时直接复用reference_codes,省去重复编码开销(对应 processing_arktts.py 中reference_codes分支的输入要求)。
decode_audio 参数详解:从码本还原 44.1 kHz 波形
| 参数 | 说明 |
|---|---|
codes | 形状[B, 10, T];传入 2 维[10, T]会自动补 batch 维。-1视为填充帧并自动裁剪 |
返回两个值:
waveforms:形状[B, Tmax]的 float32 波形,按最长条右填充;waveform_lengths:每条音频的真实采样数,截取时务必使用它。
⚠️ 注意 codec 是懒加载的:首次调用decode_audio时才会从codec.pth加载(约 120M 参数),因此首次解码会稍慢。
完整调用示例:零样本音色克隆
加载模型需使用trust_remote_code=True(自定义代码见modeling_arktts.py与processing_arktts.py):
import soundfile as sf import torch from transformers import AutoModel, AutoProcessor model_id = "Audio8/Audio8-TTS-Preview-0.1b" processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True) model = AutoModel.from_pretrained(model_id, trust_remote_code=True).eval() # 1) 构建输入:text 为待合成文本,reference_audio/reference_text 用于克隆音色 inputs = processor( text=["这是一个语音合成测试。"], reference_audio=["reference.wav"], # 44.1 kHz 参考音频 reference_text=["参考音频对应的完整文本。"], return_tensors="pt", ) with torch.inference_mode(): # 2) generate:生成 codec 码本 output = model.generate( **inputs, max_new_tokens=512, temperature=0.7, top_p=0.9, top_k=50, do_sample=True, return_dict_in_generate=True, ) # 3) decode_audio:码本还原为波形 waveforms, waveform_lengths = model.decode_audio(output.codes) audio = waveforms[0, : int(waveform_lengths[0])].float().cpu().numpy() sf.write("output.wav", audio, model.config.codec_sample_rate) # 44100 Hz不做克隆时,直接省略reference_audio与reference_text即可。也可以一步到位:model.generate_audio(**inputs)会内部串联generate与decode_audio,返回波形、长度与码本。
常见问题与调参建议
- 生成太短/太长?调整
max_new_tokens:每帧约 46 ms,512 帧约等于 23 秒语音上限。 - 音色不稳定?优先检查参考音频:过长的、嘈杂的或转写错误的参考文本都会降低说话人相似度。
- 采样率不匹配?处理器要求参考音频为 44.1 kHz,其他采样率会经 torchaudio 自动重采样。
- 批量推理?同一 batch 内所有样本必须使用相同的条件模式(要么都传
reference_audio,要么都传reference_codes)。
相关文件清单
| 文件 | 说明 |
|---|---|
modeling_arktts.py | 主模型,含generate、encode_audio、decode_audio实现 |
modeling_arktts_codec.py | 神经音频 codec(encode/decode) |
processing_arktts.py | 处理器,构建 prompt 与参考音频输入 |
configuration_arktts.py/config.json | 模型结构配置 |
codec.pth | codec 权重(约 120M 参数) |
model.safetensors | 主模型权重(约 170M 参数) |
generation_config.json | 默认生成参数 |
如果想离线使用全部文件,可先克隆仓库:
git clone https://gitcode.com/hf_mirrors/Audio8/Audio8-TTS-Preview-0.1b【免费下载链接】Audio8-TTS-Preview-0.1b项目地址: https://ai.gitcode.com/hf_mirrors/Audio8/Audio8-TTS-Preview-0.1b
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考