MOSS-TTS-Nano 是来自 MOSI.AI 和 OpenMOSS 团队 的开源多语言微型语音生成模型。仅包含 0.1B 参数,专为实时语音生成设计,可直接在 CPU 上运行(无需 GPU),并保持部署栈足够简单,适用于本地演示、网络服务和轻量级产品集成。
MOSS-TTS-Nano 专注于 TTS 部署中最重要的部分:小体积、低延迟、足够好的实时产品质量 和 简单的本地配置。它使用纯自回归 Audio Tokenizer + LLM 管道,并保持推理工作流对终端用户和网络演示用户都友好。
python infer.py、python app.py 和打包 CLI
MOSS-TTS-Nano 架构图
MOSS-TTS-Nano 目前支持 20 种语言:
| 语言 | 代码 | 旗帜 | 语言 | 代码 | 旗帜 | 语言 | 代码 | 旗帜 |
|---|---|---|---|---|---|---|---|---|
| 中文 | zh | 🇨🇳 | 英文 | en | 🇺🇸 | 德语 | de | 🇩🇪 |
| 西班牙语 | es | 🇪🇸 | 法语 | fr | 🇫🇷 | 日语 | ja | 🇯🇵 |
| 意大利语 | it | 🇮🇹 | 匈牙利语 | hu | 🇭🇺 | 韩语 | ko | 🇰🇷 |
| 俄语 | ru | 🇷🇺 | 波斯语 (Farsi) | fa | 🇮🇷 | 阿拉伯语 | ar | 🇸🇦 |
| 波兰语 | pl | 🇵🇱 | 葡萄牙语 | pt | 🇵🇹 | 捷克语 | cs | 🇨🇿 |
| 丹麦语 | da | 🇩🇰 | 瑞典语 | sv | 🇸🇪 | 希腊语 | el | 🇬🇷 |
| 土耳其语 | tr | 🇹🇷 |
我们建议先创建一个干净的 Python 环境,然后以可编辑模式安装项目,使得 moss-tts-nano 命令在本地可用。下面的示例故意保持参数最少,依赖仓库默认设置。默认情况下,代码加载 OpenMOSS-Team/MOSS-TTS-Nano 和 OpenMOSS-Team/MOSS-Audio-Tokenizer-Nano。
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 .
如果 WeTextProcessing 或 pynini 无法从 requirements.txt 安装,请先在同一环境中安装 pynini,再安装 WeTextProcessing,然后从 requirements.txt 中移除 WeTextProcessing,最后重新执行 pip install -r requirements.txt。
推荐优先使用 Conda:
conda install -c conda-forge pynini=2.1.6.post1 -y pip install git+https://github.com/WhizZest/WeTextProcessing.git pip install -r requirements.txt
如果不使用 Conda,请先准备与当前 Python 版本和平台匹配的 pynini wheel,再安装 WeTextProcessing。可参考 Issue #6 中给出的安装示例。
本仓库保留了直接 Python 入口点用于本地推理。下面的示例使用 语音克隆模式,这是 MOSS-TTS-Nano 的主要推荐工作流。
python infer.py \
--prompt-audio-path assets/audio/zh_1.wav \
--text "欢迎关注模思智能、上海创智学院与复旦大学自然语言处理实验室。"
默认情况下,这会将音频写入 generated_audio/infer_output.wav。
您可以启动本地 FastAPI 演示进行基于浏览器的测试:
python app.py
然后在浏览器中打开 http://127.0.0.1:18083。
安装后 pip install -e .,您可以直接调用打包的 CLI:
moss-tts-nano generate \
--prompt-speech assets/audio/zh_1.wav \
--text "欢迎关注模思智能、上海创智学院与复旦大学自然语言处理实验室。"
如果要切到 ONNX CPU 后端,只需加上 --backend onnx:
moss-tts-nano generate \
--backend onnx \
--prompt-speech assets/audio/zh_1.wav \
--text "欢迎关注模思智能、上海创智学院与复旦大学自然语言处理实验室。"
有用的提示:
moss-tts-nano generate 默认写入 generated_audio/moss_tts_nano_output.wav。--prompt-speech 是用于语音克隆的参考音频路径的友好别名。--text-file 用于长文本合成。您也可以通过打包的 CLI 启动网络演示:
moss-tts-nano serve
如果要启动 ONNX Web Demo:
moss-tts-nano serve \ --backend onnx
此命令转发到 app.py,将模型保持在内存中加载,并为本地浏览器演示和 HTTP 生成端点提供服务。
微调教程已经提供。
具体见 ./finetuning/README_zh.md。
我们现在十分推荐优先尝试 ONNX CPU 版本,尤其适合轻量本地部署和纯 CPU 推理场景。
这一版本在保留 MOSS-TTS-Nano 核心体验的同时,更适合直接部署:
Realtime Streaming Decode。对应的 ONNX 入口包括 infer_onnx.py、app_onnx.py,以及带 --backend onnx 的打包 CLI。
如果不传 --model-dir,程序会默认检查 ./models。当该目录下缺少模型时,会在首次运行时自动从下面两个 Hugging Face 仓库下载:
默认下载后的目录结构为:
models/MOSS-TTS-Nano-100M-ONNXmodels/MOSS-Audio-Tokenizer-Nano-ONNX命令行示例:
python infer_onnx.py \
--prompt-audio-path assets/audio/zh_1.wav \
--text "欢迎使用 ONNX Runtime CPU 版本。"
如果你已经有本地导出的 ONNX 目录,也可以显式传入:
python infer_onnx.py \
--model-dir /path/to/models \
--prompt-audio-path assets/audio/zh_1.wav \
--text "欢迎使用 ONNX Runtime CPU 版本。"
本地 Web Demo:
python app_onnx.py
然后在浏览器中打开 http://127.0.0.1:18083。
首次启动如果本地没有 ONNX 权重,会先自动下载。
MOSS-Audio-Tokenizer 是整个 MOSS-TTS 系列的统一离散音频接口。它基于 Cat(Causal Audio Tokenizer with Transformer)架构构建,这是一个由因果 Transformer 块完全组成的无 CNN 音频分词器。它作为 MOSS-TTS、MOSS-TTS-Nano、MOSS-TTSD、MOSS-VoiceGenerator、MOSS-SoundEffect 和 MOSS-TTS-Realtime 的共享音频 tokenizer,为整个产品系列提供一致的音频表示。
为了进一步提高感知质量同时降低推理成本,我们训练了 MOSS-Audio-Tokenizer-Nano,这是一个轻量级分词器,包含约 20M 参数,专为高保真音频压缩设计。它支持 48 kHz 输入输出以及 立体声音频,有助于减少压缩损失并提高听觉质量。它可以将 48 kHz 立体声音频压缩成 12.5 Hz 的 token 流,使用 16 个码本的 RVQ,在 0.125 kbps 到 2 kbps 的可变码率范围内实现高保真重建。
要了解更多关于设置、高级用法和评估指标的信息,请访问 MOSS-Audio-Tokenizer 仓库
MOSS-Audio-Tokenizer-Nano 架构
| 模型 | Hugging Face | ModelScope |
|---|---|---|
| MOSS-Audio-Tokenizer-Nano |
MOSS-TTS 家族是 OpenMOSS 开源的语音与声音生成模型系列,面向自然语音、高表现力表达、长文本稳定生成、多说话人交互、音色设计、音效生成以及实时语音响应等任务。
这个系列目前包含以下模型:
MossTTSLocal 的较小参数模型,用更轻量的规模延续 MOSS-TTS 家族的语音生成能力。本仓库将遵循根目录中的 LICENSE 文件中指定的许可证。如果您在该文件发布前阅读本文档,请将本仓库视为 未获得重新发布许可。
如果您在研究或产品中使用了 MOSS-TTS-Nano 工作,请引用:
@misc{openmoss2026mossttsnano, title={MOSS-TTS-Nano}, author={OpenMOSS Team}, year={2026}, howpublished={GitHub repository}, url={https://github.com/OpenMOSS/MOSS-TTS-Nano} }
@misc{gong2026mossttstechnicalreport, title={MOSS-TTS Technical Report}, author={Yitian Gong and Botian Jiang and Yiwei Zhao and Yucheng Yuan and Kuangwei Chen and Yaozhou Jiang and Cheng Chang and Dong Hong and Mingshu Chen and Ruixiao Li and Yiyang Zhang and Yang Gao and Hanfu Chen and Ke Chen and Songlin Wang and Xiaogui Yang and Yuqian Zhang and Kexin Huang and ZhengYuan Lin and Kang Yu and Ziqi Chen and Jin Wang and Zhaoye Fei and Qinyuan Cheng and Shimin Li and Xipeng Qiu}, year={2026}, eprint={2603.18090}, archivePrefix={arXiv}, primaryClass={cs.SD}, url={https://arxiv.org/abs/2603.18090} }
@misc{gong2026mossaudiotokenizerscalingaudiotokenizers, title={MOSS-Audio-Tokenizer: Scaling Audio Tokenizers for Future Audio Foundation Models}, author={Yitian Gong and Kuangwei Chen and Zhaoye Fei and Xiaogui Yang and Ke Chen and Yang Wang and Kexin Huang and Mingshu Chen and Ruixiao Li and Qingyuan Cheng and Shimin Li and Xipeng Qiu}, year={2026}, eprint={2602.10934}, archivePrefix={arXiv}, primaryClass={cs.SD}, url={https://arxiv.org/abs/2602.10934} }