AuroraTTS-100K 发布!
摘要
AuroraAI-Research 发布了 AuroraTTS-100K,这是一个极小的英语文本转语音模型,推理参数仅为 95,638 个。该模型使用可微分的谐波+噪声 DSP 合成器(而非神经声码器)在 LJSpeech 上从零开始训练,实现了 UTMOS 3.53 的评分,且推理速度非常快。
查看缓存全文
缓存时间: 2026/10/22 21:42
AuroraAI-Research/AuroraTTS-100K · Hugging Face
Source: https://huggingface.co/AuroraAI-Research/AuroraTTS-100K
https://huggingface.co/AuroraAI-Research/AuroraTTS-100K#auroratts-100kAuroraTTS-100K
AuroraTTS-100K 是一个非常小的英文 TTS 模型,推理参数量为 95,638 个。它在 LJSpeech 上从零开始训练,不使用蒸馏,目标是进入 100K 以下的参数量级。
该模型没有神经声码器。网络逐帧预测合成参数(归一化 log-F0、浊音标志、40 频带谐波频谱包络和 24 频带噪声频谱包络),由一个可微分的谐波+噪声 DSP 合成器渲染波形。DSP 模块只有 145 个可学习参数,并计入总推理参数量。
推理参数量95,638采样率22,050 Hz帧移256 采样点(约 11.6 ms)输入79 符号 ARPAbet 音素表(通过 g2p_en)说话人单个英文说话人训练数据LJSpeech-1.1检查点EMA 权重,150k 步合成方式可微分谐波 + 噪声 DSP
https://huggingface.co/AuroraAI-Research/AuroraTTS-100K#usage用法
`` import soundfile as sf from transformers import AutoModel
variant: 省略则为 FP32 (374 KB),“fp16” (187 KB),或 “int8” (111 KB)
model = AutoModel.from_pretrained( “AuroraAI-Research/AuroraTTS-100K”, trust_remote_code=True, variant=“fp16”, ).eval()
wav, sr = model.synthesize(“The quick brown fox jumps over the lazy dog.”) sf.write(“out.wav”, wav, sr) ``
依赖项:PyTorch、torchaudio、NumPy、soundfile、g2p_en 和 nltk。文本前端会在首次使用时下载所需的 NLTK 数据。批大小为 1。
https://huggingface.co/AuroraAI-Research/AuroraTTS-100K#evaluation评测
留出集:来自 SanoTTS English diverse 留出集的 24 个句子。UTMOS:SpeechMOS utmos22_strong,报告为逐句的均值 ± 标准差。
https://huggingface.co/AuroraAI-Research/AuroraTTS-100K#auroratts-100k-1AuroraTTS-100K
精度大小UTMOSΔ vs FP32FP32374 KB3.530 ± 0.267—FP16187 KB3.501 ± 0.269噪声INT8,逐通道111 KB3.557 ± 0.256噪声 对于 INT 各行,权重量化到目标网格后反量化为 fp32 进行计算。这衡量的是舍入损伤,而非真实整数内核的速度。偏置、归一化和 DSP 参数保持 fp32。
https://huggingface.co/AuroraAI-Research/AuroraTTS-100K#external-baselines外部基线
模型参数量UTMOSAuroraTTS-100K95.6K3.530 ± 0.267Sano TTS (amy)1.46M4.047 ± 0.230Sano TTS (heart-nano)294.3K2.351 ± 0.290
https://huggingface.co/AuroraAI-Research/AuroraTTS-100K#speed速度
实时率(RTF),数值越低越快。FP32。
设备RTF速度(倍实时)CPU,1 核0.027037.03×CPU,4 核0.013971.84×GPU0.00091120×
https://huggingface.co/AuroraAI-Research/AuroraTTS-100K#architecture架构
AuroraTTS-100K 是一个非自回归 TTS 模型,具有学习到的对齐机制和参数化波形合成器。其设计接近 FastPitch / RAD-TTS,但用一个极小的可微分 DSP 合成器替代了神经声码器。
组件设置Token embedding79 个符号 → 56 通道编码器1 个 conv-GLU + FFN 块(kernel 5),共享权重重复应用 4 次,每次带 LayerNorm上下文打包 BiGRU,每个方向 28 个单元时长 / 音高预测器深度可分离卷积后接两层 1×1 卷积(32 通道)音高 embedding加到编码器输出上(训练时使用 teacher-forced 的 token 音高)长度调节器带可学习宽度的高斯软上采样,初始化为 2 帧解码器9 层空洞深度可分离卷积(dilation 按 1, 2, 4 循环),3 个跨层共享的 FFN输出头log-F0、浊音 logit、40 个谐波 log-包络频带、24 个噪声 log-包络频带 训练时,时长和 token 级音高从对齐结果进行 teacher forcing。推理时直接使用时长和音高预测器。
https://huggingface.co/AuroraAI-Research/AuroraTTS-100K#dsp-synthesizerDSP 合成器
- 最多 80 个谐波,幅度从预测的 40 频带 mel 间隔包络中采样。
- 噪声在 STFT 域中由预测的 24 频带包络整形(1024 点 FFT,hop 256)。
- 可学习的逐谐波相位偏移(80 个参数)。
- 可学习的静态输出 FIR 滤波器(65 个抽头)。
- 训练和推理时均以 float64 累积相位,以避免长语音的相位漂移。
https://huggingface.co/AuroraAI-Research/AuroraTTS-100K#training-methodology训练方法
https://huggingface.co/AuroraAI-Research/AuroraTTS-100K#text-frontend文本前端
- 英文文本通过 g2p_en 转换为音素。
- 元音带有 ARPAbet 重音标记。
- 符号表共 79 个符号:padding、静音、音素、标点和空格。
- 连续空格会被合并,并在语音边界处添加静音 token。
https://huggingface.co/AuroraAI-Research/AuroraTTS-100K#data-preparation数据准备
- 数据集:LJSpeech-1.1,22.05 kHz,13,100 条音频。固定划分(随机种子 1234)得到 128 条测试音频、64 条验证音频,其余 12,908 条用于训练。
- 超过 12 秒的音频被排除,浊音帧少于 5 帧或相对文本帧数过少的音频同样被排除。
- F0 通过 PyWorld 提取(默认
harvest,可选dio),并用stonemask精修,下限 70 Hz,上限 450 Hz。 - 清音帧通过从浊音帧插值 log-F0 来填充,作为训练目标。
- 从浊音训练帧计算全局 F0 均值和标准差(log-Hz)并用于归一化。
https://huggingface.co/AuroraAI-Research/AuroraTTS-100K#alignment对齐
对齐在训练时学习,推理时不使用。
- 训练期的文本/梅尔对齐器从 80 频带 log-mels 生成帧-token 对齐分数。
- beta-二项先验鼓励单调的、接近对角线的注意力。该先验在 GPU 上通过
lgamma计算。 - forward-sum 损失强制单调对齐。
- 单调对齐搜索(MAS),通过 numba 编译,提取硬 token 时长。
- 前 3,000 步仅训练对齐器。随后二元对齐损失在接下来的 10,000 步中线性爬坡加入。
https://huggingface.co/AuroraAI-Research/AuroraTTS-100K#losses损失
声学模型使用以下损失训练:
- 时长损失(log 空间 MSE)
- token 级音高损失
- 帧级 F0 L1 损失,偏向浊音帧
- 浊音/清音二元交叉熵
- 多分辨率 STFT 损失(FFT 尺寸 256 到 2048)
- log-mel L1 损失
波形损失在随机 128 帧裁剪(约 1.5 秒)上计算,使用经 DSP 合成器渲染的 teacher-forced F0 和浊音。损失权重:STFT 1.0,log-mel 2.0,F0 2.0,浊音 0.5。
从第 90,000 步开始,多分辨率频谱判别器(FFT 尺寸 512、1024、2048)加入最小二乘对抗损失和特征匹配损失(权重分别为 0.5 和 2.0)。判别器仅用于训练阶段。
https://huggingface.co/AuroraAI-Research/AuroraTTS-100K#optimization优化
设置数值步数 / 批大小150,000 / 48 条语音生成器优化器AdamW,betas (0.9, 0.98),权重矩阵上 weight decay 0.01(偏置和归一化不使用)学习率峰值 1e-3,2,000 步线性 warmup,余弦衰减至 2e-5梯度裁剪全局范数 1.0EMADecay 0.999,在仅对齐器阶段之后开始;发布的权重为 EMADiscriminator 优化器AdamW,lr 2e-4,betas (0.8, 0.99)精度CUDA 上 bf16 autocast;DSP 和损失使用 fp32批处理按长度分桶的随机批次;训练集常驻 GPU
相似文章
AuroraASR-1M 发布了!
AuroraASR-1M 发布:一个参数量低于 1M 的极小权重共享 Conformer-CTC 语音识别模型,在 LibriSpeech 上训练,支持 FP32/FP16/INT8 多精度,CPU 上也能实现远超实时的推理速度。
我发布了Inflect-Nano,一个极致微小的463万参数TTS模型。
Inflect-Nano,一个极致微小的463万参数文本转语音模型,已经发布。
owensong/Inflect-Nano-v2
发布了 Inflect-Nano-v2,这是一个固定语音的英文TTS模型,参数量低于4M,用于本地文本到波形合成,支持CPU或CUDA推理,以及长文本处理。
我推出了 sanoTTS:最小的完整TTS栈,拥有294k参数(337 KB),可在$3微控制器上运行;还有一个1.46m版本,性能超越了3倍和10倍大小的模型。
sanoTTS 是一系列紧凑的TTS模型,其中最小的拥有294k参数,专为微控制器优化,并在基准测试中超越更大的模型。
@AlphaSignalAI:一个66M参数的模型刚刚在树莓派上击败了ElevenLabs。文本转语音多年来一直存在于云端。每个语音…
Supertonic 3是一个99M参数的开源TTS模型,完全在设备上运行,在树莓派上击败了ElevenLabs,在笔记本电脑CPU上的性能是实时的167倍。