项目详情

MOSS-TTS-Nano

0.1B 参数、CPU 即可实时跑的多语言 TTS,纯自回归架构,零样本声音克隆

GitHub 地址 复旦/OpenMOSS Python 3.12PyTorch / ONNX

更新于 2026-08-13

← 返回汇总
项目速览

一句话定位

能在 CPU 上实时跑的开源 TTS

复旦自然语言处理实验室与 MOSI.AI(模思智能)2026 年 4 月开源的微型语音合成模型。仅 0.1B 参数,主打「小、快、省」:4 核 CPU 即可流式生成,48kHz 立体声输出,支持 20 种语言零样本声音克隆。适合需要在手机/边缘设备/本地浏览器跑 TTS,又不想要重型 GPU 依赖的开发者——做朗读器、语音助手、内容本地化的轻量集成。

项目速览

核心数据

0.1B
参数量
20
支持语言
48kHz
立体声输出
~2×
ONNX 提速

4 核 CPU 可流式推理;ONNX 版本在 MacBook Air M4 单核即可流畅跑,效率约为 PyTorch 版的 2 倍。

为什么存在

它要解决的三个痛点

TTS 模型太大

主流高质量 TTS 动辄数 B 参数,要 GPU 才跑得动,手机/边缘设备部署门槛高。

部署栈太重

PyTorch 依赖庞大,本地 demo 或 Web 服务启动慢,产物体积大。

实时性难达标

语音助手、朗读类应用对首字延迟敏感,大模型流式首包太慢体验差。

🔥 核心架构

纯自回归:Audio Tokenizer + LLM

不同于 F5-TTS 的 Flow Matching 路线,MOSS-TTS-Nano 走纯自回归——把语音生成当成「下一个 token 预测」,用 LLM 直接吐音频 token,再交给 Audio Tokenizer 解码成波形:

输入 目标文本 + 参考音频 LLM (0.1B) 文本条件 自回归生成音频 token Audio Tokenizer Nano ~20M 参数 token → 48kHz 波形 流式输出 实时首包 长文本自动分块 立体声音频 克隆音色 20 种语言
核心生成(LLM + Tokenizer) 输入条件 输出形态
🔥 核心组件

两个模型,一个管线

TTS 模型
MOSS-TTS-Nano(0.1B)
核心语音生成模型。接收文本 + 参考音频,自回归预测音频 token。体积小到能塞进手机和浏览器,是整个家族里最轻量的成员。
音频编解码
MOSS-Audio-Tokenizer-Nano(~20M)
Cat 架构(Causal Audio Tokenizer with Transformer),全 Transformer 无 CNN。把 48kHz 立体声压成 12.5Hz token 流,RVQ 16 codebook,码率 0.125~2kbps 可调。整个 MOSS-TTS 家族共享同一套音频表示。

关键设计:Tokenizer 与 TTS 解耦。换 TTS 模型不用重新编码参考音频;同一个 Tokenizer 支撑家族内 TTS / 对话 / 音效 / 实时等多个模型,表示统一。

🔥 部署形态

PyTorch vs ONNX 两条路

维度PyTorch 版(infer.py / app.py)ONNX CPU 版(推荐)
推理依赖PyTorch 全栈仅 ONNX Runtime,推理时无 PyTorch
处理效率基线约 2× 提升
硬件需求4 核 CPU 流式MacBook Air M4 单核可跑
部署载体Python 服务 / CLI浏览器扩展 / Android / CLI / 服务
入口infer.py · app.pyinfer_onnx.py · app_onnx.py · --backend onnx

ONNX 版移除了推理期的 PyTorch 依赖,完整保留声音克隆工作流(参考音频输入、内置音色、实时流式解码)。官方明确推荐轻量部署优先试 ONNX 版。

多语言

20 种语言覆盖

中、英、德、西、法、日、意、匈、韩、俄、波斯、阿拉伯、波兰、葡、捷、丹、瑞典、希腊、土耳其——主流语种与若干小语种一并拿下。

对一个 0.1B 的微型模型,20 语种覆盖相当激进。配合零样本克隆,适合做多语言内容本地化(同一文案用不同语言、不同音色快速产出)。

快速上手

三步跑起来

# 1. 环境(Conda 推荐,因 pynini 依赖)
conda create -n moss-tts-nano python=3.12 -y && conda activate moss-tts-nano
git clone https://github.com/OpenMOSS/MOSS-TTS-Nano.git && cd MOSS-TTS-Nano
pip install -r requirements.txt && pip install -e .

# 2. 声音克隆(给段参考音频 + 文本)
python infer.py \
  --prompt-audio-path assets/audio/zh_1.wav \
  --text "欢迎关注模思智能与复旦大学自然语言处理实验室。"

# 3. 或用 ONNX CPU 版(推荐,更快)
python infer_onnx.py \
  --prompt-audio-path assets/audio/zh_1.wav \
  --text "ONNX Runtime CPU demo."
# → 产物:generated_audio/infer_output.wav

坑点:WeTextProcessing/pynini 常装失败,需先 conda install -c conda-forge pynini=2.1.6.post1 再装。

快速上手

三种部署姿势

CLI 命令

moss-tts-nano generate / serve。装完包即用,支持 --backend onnx 与 --execution-provider cuda。

本地 Web Demo

python app.py 起 FastAPI,浏览器开 127.0.0.1:18083 测试克隆效果。

浏览器扩展

衍生项目 MOSS-TTS-Nano-Reader,基于 ONNX 版直接在浏览器内做朗读扩展,无需本地推理服务。

另有 Android ONNX Runtime 示例(examples/android_onnx_runtime)与 vLLM-Omni 服务端部署(分页 KV cache + 流式 + OpenAI 兼容 /v1/audio/speech)。

生态

MOSS-TTS 家族定位

模型定位参数量
MOSS-TTS-Nano(本项目)轻量实时 / CPU 友好 / 边缘部署0.1B
MOSS-TTS旗舰:高保真零样本克隆、长语音、拼音/音素/时长细粒度控制8B
MOSS-TTS-Local-Transformer中型:保持风格但更轻1.7B
MOSS-TTSD-v1.0对话生成:多说话人、超长、富表现力8B
MOSS-VoiceGenerator音色设计:纯文本提示生成多样嗓音1.7B
MOSS-TTS-Realtime实时语音 Agent:低延迟、跨轮音色一致1.7B

Nano 是家族的「轻量入口」——用最小代价拿到家族风格的声音克隆能力,适合资源受限场景;需要极致质量再上 8B 旗舰。

微调

自己训练

适用场景

适合谁用

风险提示

需要警惕

在线体验

先听为快

官方提供在线 Demo 与 Hugging Face Space,可直接输入文本 + 上传参考音频试听克隆效果,无需本地部署。

▶ 在线 Demo HF Space
潜力评估

未来空间

「CPU 上实时跑的高质量 TTS」是真实刚需——语音助手、朗读器、边缘 AI 都卡在这一层。MOSS-TTS-Nano 以 0.1B 参数 + 纯自回归 + ONNX 单核可跑,把部署门槛压到极低,加上浏览器扩展与 Android 示例,生态铺得很开。背靠复旦 NLP 实验室与完整 MOSS-TTS 家族,技术成熟度有保障。短期看 License 澄清与质量对标是关键;若 ONNX 生态持续打磨,它有潜力成为端侧开源 TTS 的事实轻量标准之一。


1 / 16