OpenMOSS/MOSS-TTS

GitHub: OpenMOSS/MOSS-TTS

MOSS-TTS 是一套开源的高保真语音与声音生成模型家族,覆盖从实时流式 TTS 到语音克隆与音效设计的一站式解决方案。

Stars: 1504 | Forks: 135

# MOSS-TTS 家族

    

OpenClaw WeChat
[English](README.md) | [简体中文](README_zh.md) MOSS‑TTS 家族是一个开源的**语音与声音生成模型家族**,来自 [MOSI.AI](https://mosi.cn/#hero) 和 [OpenMOSS 团队](https://www.open-moss.com/)。它专为**高保真**、**高表现力**以及**复杂真实场景**而设计,涵盖稳定的长语音生成、多说话人对话、声音/角色设计、环境音效以及实时流式 TTS。 ## 新闻 * 2026.4.13: 🚀 MOSS-TTS-Nano 现已上线!我们的约 1 亿参数模型支持多语言语音克隆、48 kHz 立体声输入/输出,并且仅需 4 个 CPU 核心即可运行流式输出。查看 [GitHub 仓库](https://github.com/OpenMOSS/MOSS-TTS-Nano) 和我们的 [博客](https://openmoss.github.io/MOSS-TTS-Nano-Demo/) 获取更多细节。 * 2026.3.31: 📄 我们的 [MOSS-TTSD](https://arxiv.org/pdf/2603.19739) 与 [MOSS-VoiceGenerator](https://arxiv.org/pdf/2603.28086) 技术报告现已发布在 arXiv 上! * 2026.3.26: 📘 新增了 MOSS-TTS-Realtime 的微调教程。 * 2026.3.20: 📄 我们的 [技术报告](https://arxiv.org/pdf/2603.18090) 现已发布在 arXiv 上! * 2026.3.18: 🚀 在配套仓库 [`OpenMOSS/llama.cpp`](https://github.com/OpenMOSS/llama.cpp/tree/moss-tts-firstclass) 中新增了第一流的 MOSS-TTS `llama.cpp` 实现,包含端到端文档以及可运行的 GGUF 骨干推理管线和 ONNX 音频编解码器解码。请参阅 [第一流端到端指南](https://github.com/OpenMOSS/llama.cpp/blob/moss-tts-firstclass/docs/moss-tts-firstclass-e2e.md)。 * 2026.3.16: 📘 新增了针对 MossTTSLocal 架构的微调教程,适用于 MOSS-TTS-Local-Transformer! * 2026.3.12: 🚀 为 `MossTTSDelay` 架构新增 SGLang 后端支持,使 MOSS-TTS(Delay)与 MOSS-SoundEffect 的高效推理成为可能,生成吞吐量提升约 **3 倍**! * 2026.3.11: 📘 新增了针对 MossTTSDelay 架构的微调教程,适用于 MOSS-TTS(Delay)、MOSS-TTSD、MOSS-VoiceGenerator 和 MOSS-SoundEffect! * 2026.3.10: ⚡️ 显著优化了 llama.cpp 推理管线中的 VRAM 使用量。现在 8B 模型即可适配 8GB GPU! * 2026.3.4: 🚀 新增 **PyTorch-free 推理支持**——通过 **llama.cpp + ONNX Runtime** 实现轻量级设备端部署。量化的 **GGUF 权重**已发布在 [OpenMOSS-Team/MOSS-TTS-GGUF](https://huggingface.co/OpenMOSS-Team/MOSS-TTS-GGUF),**ONNX 音频编解码器**可在 [OpenMOSS-Team/MOSS-Audio-Tokenizer-ONNX](https://huggingface.co/OpenMOSS-Team/MOSS-Audio-Tokenizer-ONNX) 获取。更多细节请参考 [llama.cpp 后端](#llamacpp-backend-torch-free-inference)。 * 2026.3.4: 🎉 我们在 [ClawHub](https://clawhub.ai) 中为 🦞 OpenClaw 添加了 MOSS-TTS 技能:[feishu-voice-tts](https://clawhub.ai/helloeveryworlds/feishu-voice-tts) 和 [moss-tts-voice](https://clawhub.ai/luogao2333/moss-tts-voice)。 * 2026.2.10: 🎉🎉🎉 我们已发布 [MOSS-TTS 家族](https://huggingface.co/collections/OpenMOSS-Team/moss-tts)。查看我们的 [博客](https://mosi.cn/#models) 获取更多细节!我们的 **Huggingface 空间**已上线:[MOSS-TTS](https://huggingface.co/spaces/OpenMOSS-Team/MOSS-TTS)、[MOSS-TTSD-v1.0](https://huggingface.co/spaces/OpenMOSS-Team/MOSS-TTSD-v1.0)、[MOSS-VoiceGenerator](https://huggingface.co/spaces/OpenMOSS-Team/MOSS-VoiceGenerator)。 ## 演示
## 目录 - [介绍](#introduction) - [模型架构](#model-architecture) - [已发布模型](#released-models) - [支持语言](#supported-languages) - [快速入门](#quickstart) - [OpenClaw API 技能](#openclaw-api-skills) - [环境搭建](#environment-setup) - [(可选) 安装 FlashAttention 2](#optional-install-flashattention-2) - [MOSS-TTS 基础用法](#moss-tts-basic-usage) - [微调](#fine-tuning) - [llama.cpp 后端(无 PyTorch 推理)](#llamacpp-backend-torch-free-inference) - [SGLang 后端(加速推理)](#sglang-backend-accelerated-inference) - [评估](#evaluation) - [MOSS-TTS](#moss-tts-seed-tts-eval) - [MOSS-TTSD](#moss-ttsd-subjective--ttsd-eval) - [MOSS-VoiceGenerator](#moss-voicegenerator-subjective) - [MOSS-TTS-Nano](#moss-tts-nano) - [介绍](#moss-tts-nano-introduction) - [模型权重](#moss-tts-nano-model-weights) - [MOSS-Audio-Tokenizer](#moss-audio-tokenizer) - [介绍](#mat-intro) - [模型权重](#model-weights) - [客观重建评估](#objective-reconstruction-evaluation) - [更多信息](#more-information) - [社区项目](#community-projects) - [引用](#citation) ## 介绍

当单个音频片段需要**听起来像真实的人**、**准确发音每个单词**、**在内容之间切换说话风格**、**保持稳定数十分钟**,并且**支持对话、角色扮演和实时交互**时,单一 TTS 模型往往不够用。MOSS‑TTS 家族将工作流程拆分为五个生产就绪模型,可独立使用或组合成完整的流水线。 - **MOSS‑TTS**:旗舰生产模型,具备高保真度和最优的零样本语音克隆能力。它支持**长语音生成**、**拼音/音素/时长细粒度控制**,以及**多语言/代码切换合成**。 - **MOSS‑TTSD**:面向表现力的多说话人超长对话生成模型。全新 **v1.0 版本**在客观指标上达到**行业领先水平**,并在主观评估中超越了 **Doubao** 和 **Gemini 2.5-pro** 等闭源模型。详情可访问MOSS-TTSD 仓库](https://github.com/OpenMOSS/MOSS-TTSD)。 - **MOSS‑VoiceGenerator**:开源的声音设计模型,能够直接从文本提示生成多样声音和风格,**无需任何参考语音**。它在统一声音设计、风格控制和合成的同时,性能**超越其他顶级声音设计模型**。 - **MOSS‑TTS‑Realtime**:面向多轮对话的上下文感知实时模型。它利用增量合成确保自然连贯的回复,是构建**低延迟语音代理**的理想选择(配合文本模型)。MOSS-TTS-Realtime 的 TTFB 达到 180 ms,且 \(T_{\text{LLM-first-sentence}} + T_{\text{MOSS-TTS-Realtime-TTFB}}\) 为 377 ms。 - **MOSS‑SoundEffect**:专注于**音效生成**的内容创作模型,覆盖广泛类别并支持可控时长。它可生成自然环境、城市场景、生物声音、人类动作及音乐片段,适用于影视、游戏和交互体验。 ## 模型架构 我们以 **MossTTSDelay** 和 **MossTTSLocal** 作为互补基线,在统一的训练/评估设置下进行训练:**Delay** 强调长上下文稳定性、推理速度与生产就绪度,而 **Local** 强调轻量级灵活性与面向流式系统的强客观性能。两者共同提供可复现的部署与研究参考。 **MossTTSRealtime** 并非第三种对比基线;它是面向语音代理的能力驱动设计。通过同时建模先验文本与用户声学的前后文上下文,它在保持语音连贯与音色一致的同时,实现低延迟流式语音输出。 | 架构 | 核心机制 | 架构详情 | |---|---|---| | `MossTTSDelay` | 多头并行 RVQ 预测与延迟模式调度 | [![架构详情](https://img.shields.io/badge/Model%20Card-View-blue?logo=markdown)](moss_tts_delay/README.md) | | `MossTTSLocal` | 与时间同步的 RVQ 块与深度 Transformer | [![架构详情](https://img.shields.io/badge/Model%20Card-View-blue?logo=markdown)](moss_tts_local/README.md) | | `MossTTSRealtime` | 文本-音频分层输入用于实时合成 | [![架构详情](https://img.shields.io/badge/Model%20Card-View-blue?logo=markdown)](moss_tts_realtime/README.md) | ## 已发布模型 | 模型 | 架构 | 规模 | 模型卡 | Hugging Face | ModelScope | |---|---|---:|---|---|---| | **MOSS-TTS** | `MossTTSDelay` | 8B | [![模型卡](https://img.shields.io/badge/Model%20Card-View-blue?logo=markdown)](docs/moss_tts_model_card.md) | [![Hugging Face](https://img.shields.io/badge/Huggingface-Model-orange?logo=huggingface)](https://huggingface.co/OpenMOSS-Team/MOSS-TTS) | [![ModelScope](https://img.shields.io/badge/ModelScope-Model-lightgrey?logo=modelscope)](https://modelscope.cn/models/openmoss/MOSS-TTS) | | | `MossTTSLocal` | 1.7B | [![模型卡](https://img.shields.io/badge/Model%20Card-View-blue?logo=markdown)](docs/moss_tts_model_card.md) | [![Hugging Face](https://img.shields.io/badge/Huggingface-Model-orange?logo=huggingface)](https://huggingface.co/OpenMOSS-Team/MOSS-TTS-Local-Transformer) | [![ModelScope](https://img.shields.io/badge/ModelScope-Model-lightgrey?logo=modelscope)](https://modelscope.cn/models/openmoss/MOSS-TTS-Local-Transformer) | | **MOSS‑TTSD‑V1.0** | `MossTTSDelay` | 8B | [![模型卡](https://img.shields.io/badge/Model%20Card-View-blue?logo=markdown)](docs/moss_ttsd_model_card.md) | [![Hugging Face](https://img.shields.io/badge/Huggingface-Model-orange?logo=huggingface)](https://huggingface.co/OpenMOSS-Team/MOSS-TTSD-v1.0) | [![ModelScope](https://img.shields.io/badge/ModelScope-Model-lightgrey?logo=modelscope)](https://modelscope.cn/models/openmoss/MOSS-TTSD-v1.0) | | **MOSS‑VoiceGenerator** | `MossTTSDelay` | 1.7B | [![模型卡](https://img.shields.io/badge/Model%20Card-View-blue?logo=markdown)](docs/moss_voice_generator_model_card.md) | [![Hugging Face](https://img.shields.io/badge/Huggingface-Model-orange?logo=huggingface)](https://huggingface.co/OpenMOSS-Team/MOSS-VoiceGenerator) | [![ModelScope](https://img.shields.io/badge/ModelScope-Model-lightgrey?logo=modelscope)](https://modelscope.cn/models/openmoss/MOSS-VoiceGenerator) | | **MOSS‑SoundEffect** | `MossTTSDelay` | 8B | [![模型卡](https://img.shields.io/badge/Model%20Card-View-blue?logo=markdown)](docs/moss_sound_effect_model_card.md) | [![Hugging Face](https://img.shields.io/badge/Huggingface-Model-orange?logo=huggingface)](https://huggingface.co/OpenMOSS-Team/MOSS-SoundEffect) | [![ModelScope](https://img.shields.io/badge/ModelScope-Model-lightgrey?logo=modelscope)](https://modelscope.cn/models/openmoss/MOSS-SoundEffect) | | **MOSS‑TTS‑Realtime** | `MossTTSRealtime` | 1.7B | [![模型卡](https://img.shields.io/badge/Model%20Card-View-blue?logo=markdown)](docs/moss_tts_realtime_model_card.md) | [![Hugging Face](https://img.shields.io/badge/Huggingface-Model-orange?logo=huggingface)](https://huggingface.co/OpenMOSS-Team/MOSS-TTS-Realtime) | [![ModelScope](https://img.shields.io/badge/ModelScope-Model-lightgrey?logo=modelscope)](https://modelscope.cn/models/openmoss/MOSS-TTS-Realtime) | ## 支持语言 MOSS-TTS、MOSS-TTSD 与 MOSS-TTS-Realtime 目前支持 **20 种语言**: | 语言 | 代码 | Flag | 语言 | 代码 | Flag | 语言 | 代码 | Flag | |---|---|---|---|---|---|---|---|---| | 中文 | zh | 🇨🇳 | 英语 | en | 🇺🇸 | 德语 | de | 🇩🇪 | | 西班牙语 | es | 🇪🇸 | 法语 | fr | 🇫🇷 | 日语 | ja | 🇯🇵 | | 意大利语 | it | 🇮🇹 | 匈牙利语 | hu | 🇭🇺 | 韩语 | ko | 🇰🇷 | | 俄语 | ru | 🇷🇺 | 波斯语(法尔斯语) | fa | 🇮🇷 | 阿拉伯语 | ar | 🇸🇦 | | 波兰语 | pl | 🇵🇱 | 葡萄牙语 | pt | 🇵🇹 | 捷克语 | cs | 🇨🇿 | | 丹麦语 | da | 🇩🇰 | 瑞典语 | sv | 🇸🇪 | | | | | 希腊语 | el | 🇬🇷 | 土耳其语 | tr | 🇹🇷 | | | | ## 快速入门 ### OpenClaw API 技能 我们在 [ClawHub](https://clawhub.ai) 中为 🦞 OpenClaw 添加了 MOSS-TTS 技能。可从 [MOSI AI Studio](https://studio.mosi.cn) 获取 API 密钥。 | 技能 | 描述 | 安装 | |---|---|---| | [`feishu-voice-tts`](https://clawhub.ai/helloeveryworlds/feishu-voice-tts) | 在飞书中发送语音消息 | `clawhub install feishu-voice-tts` | | [`moss-tts-voice`](https://clawhub.ai/luogao2333/moss-tts-voice) | 调用 MOSS-TTS API 生成语音 | `clawhub install moss-tts-voice` | ### 环境搭建 我们推荐使用带有 **Transformers 5.0.0** 的干净、隔离的 Python 环境,以避免依赖冲突。 #### 使用 Conda ``` conda create -n moss-tts python=3.12 -y conda activate moss-tts ``` 安装所有必要依赖: ``` git clone https://github.com/OpenMOSS/MOSS-TTS.git cd MOSS-TTS pip install --extra-index-url https://download.pytorch.org/whl/cu128 -e ".[torch-runtime]" ``` #### 使用 `uv` ``` # 首先安装 uv:https://docs.astral.sh/uv/getting-started/installation/ git clone https://github.com/OpenMOSS/MOSS-TTS.git cd MOSS-TTS uv venv --python 3.12 .venv source .venv/bin/activate uv pip install --torch-backend cu128 -e ".[torch-runtime]" ``` #### (可选) 安装 FlashAttention 2 为了更好的速度和更低的 GPU 内存使用,如果硬件支持,可以安装 FlashAttention 2。 如果使用 Conda/pip: ``` pip install --extra-index-url https://download.pytorch.org/whl/cu128 -e ".[torch-runtime,flash-attn]" ``` 如果机器 RAM 有限且 CPU 核心较多,可以限制构建并行度: ``` MAX_JOBS=4 pip install --extra-index-url https://download.pytorch.org/whl/cu128 -e ".[torch-runtime,flash-attn]" ``` 如果使用 `uv`: ``` uv pip install --torch-backend cu128 -e ".[torch-runtime,flash-attn]" ``` 如果机器 RAM 有限且 CPU 核心较多,可以限制构建并行度: ``` MAX_JOBS=4 uv pip install --torch-backend cu128 -e ".[torch-runtime,flash-attn]" ``` 说明: - 依赖项在 `pyproject.toml` 中管理,当前固定使用 `torch==2.9.1+cu12` 和 `torchaudio==2.9.1+cu128`。 - 在 `uv` 中,`--torch-backend cu128` 允许 uv 获取兼容的 PyTorch CUDA wheel 并从 PyPI 解析其余依赖,使用默认安全索引策略。 - 如果需要其他后端,请将 `cu128` 替换为目标值(例如 `cpu`、`cu126`)。 - 如果 FlashAttention 2 构建失败,可以跳过并使用默认注意力后端。 - FlashAttention 2 仅支持受支持的 GPU,通常与 `torch.float16` 或 `torch.bfloat16` 配合使用。 ### MOSS‑TTS 基础用法 如果偏好 Gradio 演示,我们为每个主要模型提供了 4 个脚本: | 模型 | 脚本 | 运行 | |---|---|---| | MOSS-TTS | [clis/moss_tts_app.py](clis/moss_tts_app.py) | | | MOSS-TTSD | [clis/moss_ttsd_app.py](clis/moss_ttsd_app.py) | | MOSS-VoiceGenerator | [clis/moss_voice_generator_app.py](clis/moss_voice_generator_app.py) | | MOSS-SoundEffect | [clis/moss_sound_effect_app.py](clis/moss_sound_effect_app.py) | 如需 MOSS-TTS-Realtime 的 Gradio 演示,请参考 [MOSS-TTS-Realtime 模型卡](docs/moss_tts_realtime_model_card.md)。 ``` from pathlib import Path import importlib.util import torch import torchaudio from transformers import AutoModel, AutoProcessor # 禁用损坏的 cuDNN SDPA 后端 torch.backends.cuda.enable_cudnn_sdp(False) # 将这些保留为后备选项 torch.backends.cuda.enable_flash_sdp(True) torch.backends.cuda.enable_mem_efficient_sdp(True) torch.backends.cuda.enable_math_sdp(True) pretrained_model_name_or_path = "OpenMOSS-Team/MOSS-TTS" device = "cuda" if torch.cuda.is_available() else "cpu" dtype = torch.bfloat16 if device == "cuda" else torch.float32 def resolve_attn_implementation() -> str: # Prefer FlashAttention 2 when package + device conditions are met. if ( device == "cuda" and importlib.util.find_spec("flash_attn") is not None and dtype in {torch.float16, torch.bfloat16} ): major, _ = torch.cuda.get_device_capability() if major >= 8: return "flash_attention_2" # CUDA fallback: use PyTorch SDPA kernels. if device == "cuda": return "sdpa" # CPU fallback. return "eager" attn_implementation = resolve_attn_implementation() print(f"[INFO] Using attn_implementation={attn_implementation}") processor = AutoProcessor.from_pretrained( pretrained_model_name_or_path, trust_remote_code=True, ) processor.audio_tokenizer = processor.audio_tokenizer.to(device) text_1 = "亲爱的你,\n你好呀。\n\n今天,我想用最认真、最温柔的声音,对你说一些重要的话。\n这些话,像一颗小小的星星,希望能在你的心里慢慢发光。\n\n首先,我想祝你——\n每天都能平平安安、快快乐乐。\n\n希望你早上醒来的时候,\n窗外有光,屋子里很安静,\n你的心是轻轻的,没有着急,也没有害怕。\n\n希望你吃饭的时候胃口很好,\n走路的时候脚步稳稳,\n晚上睡觉的时候,能做一个又一个甜甜的梦。\n\n我希望你能一直保持好奇心。\n对世界充满问题,\n对天空、星星、花草、书本和故事感兴趣。\n当你问“为什么”的时候,\n希望总有人愿意认真地听你说话。\n\n我也希望你学会温柔。\n温柔地对待朋友,\n温柔地对待小动物,\n也温柔地对待自己。\n\n如果有一天你犯了错,\n请不要太快责怪自己,\n因为每一个认真成长的人,\n都会在路上慢慢学会更好的方法。\n\n愿你拥有勇气。\n当你站在陌生的地方时,\n当你第一次举手发言时,\n当你遇到困难、感到害怕的时候,\n希望你能轻轻地告诉自己:\n“我可以试一试。”\n\n就算没有一次成功,也没有关系。\n失败不是坏事,\n它只是告诉你,你正在努力。\n\n我希望你学会分享快乐。\n把开心的事情告诉别人,\n把笑声送给身边的人,\n因为快乐被分享的时候,\n会变得更大、更亮。\n\n如果有一天你感到难过,\n我希望你知道——\n难过并不丢脸,\n哭泣也不是软弱。\n\n愿你能找到一个安全的地方,\n慢慢把心里的话说出来,\n然后再一次抬起头,看见希望。\n\n我还希望你能拥有梦想。\n这个梦想也许很大,\n也许很小,\n也许现在还说不清楚。\n\n没关系。\n梦想会和你一起长大,\n在时间里慢慢变得清楚。\n\n最后,我想送你一个最最重要的祝福:\n\n愿你被世界温柔对待,\n也愿你成为一个温柔的人。\n\n愿你的每一天,\n都值得被记住,\n都值得被珍惜。\n\n亲爱的你,\n请记住,\n你是独一无二的,\n你已经很棒了,\n而你的未来,\n一定会慢慢变得闪闪发光。\n\n祝你健康、勇敢、幸福,\n祝你永远带着笑容向前走。" text_2 = "We stand on the threshold of the AI era.\nArtificial intelligence is no longer just a concept in laboratories, but is entering every industry, every creative endeavor, and every decision. It has learned to see, hear, speak, and think, and is beginning to become an extension of human capabilities. AI is not about replacing humans, but about amplifying human creativity, making knowledge more equitable, more efficient, and allowing imagination to reach further. A new era, jointly shaped by humans and intelligent systems, has arrived." text_3 = "nin2 hao3,qing3 wen4 nin2 lai2 zi4 na3 zuo4 cheng2 shi4?" text_4 = "nin2 hao3,qing4 wen3 nin2 lai2 zi4 na4 zuo3 cheng4 shi3?" text_5 = "您好,请问您来自哪 zuo4 cheng2 shi4?" text_6 = "/həloʊ, meɪ aɪ æsk wɪtʃ sɪti juː ɑːr frʌm?/" # 使用 ./assets/audio 中的音频以避免从云端下载。 ref_audio_1 = "https://speech-demo.oss-cn-shanghai.aliyuncs.com/moss_tts_demo/tts_readme_demo/reference_zh.wav" ref_audio_2 = "https://speech-demo.oss-cn-shanghai.aliyuncs.com/moss_tts_demo/tts_readme_demo/reference_en.m4a" conversations = [ # Direct TTS (no reference) [processor.build_user_message(text=text_1)], [processor.build_user_message(text=text_2)], # Pinyin or IPA input [processor.build_user_message(text=text_3)], [processor.build_user_message(text=text_4)], [processor.build_user_message(text=text_5)], [processor.build_user_message(text=text_6)], # Voice cloning (with reference) [processor.build_user_message(text=text_1, reference=[ref_audio_1])], [processor.build_user_message(text=text_2, reference=[ref_audio_2])], # Duration control [processor.build_user_message(text=text_2, tokens=325)], [processor.build_user_message(text=text_2, tokens=600)], ] model = AutoModel.from_pretrained( pretrained_model_name_or_path, trust_remote_code=True, attn_implementation=attn_implementation, torch_dtype=dtype, ).to(device) model.eval() batch_size = 1 save_dir = Path("inference_root") save_dir.mkdir(exist_ok=True, parents=True) sample_idx = 0 with torch.no_grad(): for start in range(0, len(conversations), batch_size): batch_conversations = conversations[start : start + batch_size] batch = processor(batch_conversations, mode="generation") input_ids = batch["input_ids"].to(device) attention_mask = batch["attention_mask"].to(device) outputs = model.generate( input_ids=input_ids, attention_mask=attention_mask, max_new_tokens=4096, ) for message in processor.decode(outputs): audio = message.audio_codes_list[0] out_path = save_dir / f"sample{sample_idx}.wav" sample_idx += 1 torchaudio.save(out_path, audio.unsqueeze(0), processor.model_config.sampling_rate) ``` 每个模型的完整用法请参考其对应的模型卡。 ## 微调 微调教程按架构组织。 当前可用: - `MossTTSDelay` / `OpenMOSS-Team/MOSS-TTS`:[moss_tts_delay/finetuning/README.md](moss_tts_delay/finetuning/README.md) - `MossTTSLocal` / `OpenMOSS-Team/MOSS-TTS-Local-Transformer`:[moss_tts_local/finetuning/README.md](moss_tts_local/finetuning/README.md) - `Moss-TTS-Realtime` / `OpenMOSS-Team/MOSS-TTS-Realtime`:[moss_tts_realtime/finetuning/README.md](moss_tts_realtime/finetuning/README.md) 更多架构特定的微调教程将添加到其对应的目录中。 ## llama.cpp 后端(无 PyTorch 推理) 为了轻量级或边缘部署,MOSS-TTS 支持使用 [llama.cpp](https://github.com/ggerganov/llama.cpp) 进行**无 PyTorch** 推理,配合 ONNX Runtime / TensorRT 处理音频编解码器。无需安装 PyTorch。 我们还在配套仓库 [`OpenMOSS/llama.cpp`](https://github.com/OpenMOSS/llama.cpp/tree/moss-tts-firstclass) 中维护了更新的第一类 MOSS-TTS 路径。与下方所述的旧版桥接后端不同,它将多通道嵌入、多头输出和延迟模式解码直接移入 `llama.cpp`。 对于该路径,请从 [第一流端到端指南](https://github.com/OpenMOSS/llama.cpp/blob/moss-tts-firstclass/docs/moss-tts-firstclass-e2e.md) 开始。 ### 快速开始 ``` # 1. 安装(无 torch) pip install -e ".[llama-cpp-onnx]" # 2. 下载预量化主干 + 嵌入/lm_head 权重 huggingface-cli download OpenMOSS-Team/MOSS-TTS-GGUF --local-dir weights/MOSS-TTS-GGUF # 3. 下载 ONNX 音频 tokenizer huggingface-cli download OpenMOSS-Team/MOSS-Audio-Tokenizer-ONNX --local-dir weights/MOSS-Audio-Tokenizer-ONNX # 4. 构建 C 桥接(一次性,需要从源码编译 llama.cpp) cd moss_tts_delay/llama_cpp && bash build_bridge.sh /path/to/llama.cpp && cd ../.. # 5. 运行推理 python -m moss_tts_delay.llama_cpp \ --config configs/llama_cpp/default.yaml \ --text "Hello, world!" --output output.wav # 6. (可选)8 GB GPU 的低内存模式 —— 按阶段加载/卸载组件 python -m moss_tts_delay.llama_cpp \ --config configs/llama_cpp/trt-8gb.yaml \ --text "Hello, world!" --output output.wav ``` ### 安装配置 | 配置 | 安装命令 | 依赖 | 使用场景 | |---|---|---|---| | **Torch-free (ONNX)** | `pip install -e ".[llama-cpp-onnx]"` | numpy, onnxruntime-gpu, tokenizers | 推荐起点 | | **Torch-free (TRT)** | `pip install -e ".[llama-cpp-trt]"` | numpy, tensorrt, cuda-python | 最大音频编解码器速度(需自行构建引擎) | | **Torch-accelerated** | `pip install -e ".[llama-cpp-onnx,llama-cpp-torch]"` | + torch | GPU 加速的 LM 头(~30 倍更快) | ### 模型权重 | 仓库 | 内容 | 下载 | |---|---|---| | [`OpenMOSS-Team/MOSS-TTS-GGUF`](https://huggingface.co/OpenMOSS-Team/MOSS-TTS-GGUF) | Q4_K_M 骨干 `.gguf`、`embeddings/`(`.npy`)、`lm_heads/`(`.npy`)、分词器 | `huggingface-cli download OpenMOSS-Team/MOSS-TTS-GGUF --local-dir weights/MOSS-TTS-GGUF` | | [`OpenMOSS-Team/MOSS-Audio-Tokenizer-ONNX`](https://huggingface.co/OpenMOSS-Team/MOSS-Audio-Tokenizer-ONNX) | 编码器与解码器 ONNX 模型 | `huggingface-cli download OpenMOSS-Team/MOSS-Audio-Tokenizer-ONNX --local-dir weights/MOSS-Audio-Tokenizer-ONNX` | ### 配置 提供四套预构建配置,位于 `configs/llama_cpp/`: - `default.yaml` — ONNX 音频 + GGUF 骨干(推荐起点) - `trt.yaml` — TensorRT 音频 + GGUF 骨干(最大吞吐量,需自行构建引擎) - `trt-8gb.yaml` — 8GB GPU 低内存模式(阶段加载,TRT 音频) - `cpu-only.yaml` — 纯 CPU(无需 GPU) 关键配置选项: - `heads_backend: auto | numpy | torch` — LM 头计算后端 - `audio_backend: onnx | trt | torch` — 音频编解码器后端 - `low_memory: true | false` — 阶段加载以限制显存(加载/卸载编码器、骨干、解码器) - `kv_cache_type_k / kv_cache_type_v` — KV 缓存量化(例如 `q8_0`、`q4_0`)以减少显存 - `flash_attn: auto | enabled | disabled` — 用于降低预取期间峰值显存的 Flash 注意力 更多文档请参考 [moss_tts_delay/llama_cpp/README.md](moss_tts_delay/llama_cpp/README.md)。 ## SGLang 后端(加速推理) MOSS-TTS(Delay)支持使用深度扩展的 [SGLang](https://github.com/OpenMOSS/sglang) 运行融合的 MOSS-TTS 与 MOSS-Audio-Tokenizer 模型,实现高效的音频生成。 ### 快速开始 ``` # 1. 克隆 SGLang 仓库 git clone https://github.com/OpenMOSS/sglang.git # 2. 安装 SGLang pip install -e ./sglang/python[all] # 3. (可选)修复 SGLang CuDNN 兼容性问题 # RuntimeError: CRITICAL WARNING: PyTorch 2.9.1 & CuDNN Compatibility Issue Detected pip install nvidia-cudnn-cu12==9.16.0.29 # 4. 下载模型和音频 tokenizer 权重 huggingface-cli download OpenMOSS-Team/MOSS-TTS --local-dir weights/MOSS-TTS huggingface-cli download OpenMOSS-Team/MOSS-Audio-Tokenizer --local-dir weights/MOSS-Audio-Tokenizer # 5. 融合模型和音频 tokenizer 权重 python scripts/fuse_moss_tts_delay_with_codec.py --model-path weights/MOSS-TTS --codec-model-path weights/MOSS-Audio-Tokenizer --save-path weights/MOSS-TTS-Delay-With-Codec # 6. 启动服务 sglang serve --model-path weights/MOSS-TTS-Delay-With-Codec --delay-pattern --trust-remote-code ``` ### 请求与响应 #### MOSS-TTS(Delay) ``` curl -X POST http://localhost:30000/generate \ -H "Content-Type: application/json" \ -d '{ "text": "Added SGLang backend support for efficient inference.", "audio_data": "https://cdn.jsdelivr.net/gh/OpenMOSS/MOSS-TTSD@main/legacy/v0.7/examples/zh_spk1_moon.wav", "sampling_params": { "max_new_tokens": 512, "temperature": 1.7, "top_p": 0.8, "top_k": 25 } }' ``` - `text` 表示待合成的文本内容;可前置 `${token:25}` 进行令牌控制,例如 `${token:25}Hello World` - `audio_data` 表示可选的参考音频;若省略,模型将随机音色生成音频,可为 `` 或 `data:audio/wav;base64,{b64_audio}`,其中 `b64_audio` 是 WAV 文件的 Base64 字符串 #### MOSS-SoundEffect ``` curl -X POST http://localhost:30000/generate \ -H "Content-Type: application/json" \ -d '{ "text": "${token:125}${ambient_sound:a sports car roaring past on the highway.}", "sampling_params": { "max_new_tokens": 512, "temperature": 1.5, "top_p": 0.6, "top_k": 50 } }' ``` - `text` 应仅包含两个标记字段:`${token:125}` 和 `${ambient_sound:...}`,其中 `${ambient_sound:...}` 后的内容为期望音效的自然语言描述 - 建议使用 `${token:125}` 以获得更稳定的生成 - 请勿传入 `audio_data`,否则模型可能输出域外结果 #### 响应 ``` {"text": "", "...": "..."} ``` HTTP 响应为 JSON 对象,可能包含多个字段。`.text` 字段存储生成音频的 WAV Base64 字符串。通常只需提取该字段并 Base64 解码即可;例如,将响应保存为 `response.json` 后运行 `jq -r '.text' response.json | base64 -d -i > output.wav`。 ## 评估 本节汇总了**家族级评估亮点**,涵盖 MOSS-TTS、MOSS-TTSD 与 MOSS-VoiceGenerator。完整细节请参见各模型卡片。 ### MOSS-TTS MOSS-TTS 在开源零样本 TTS 基准 `Seed‑TTS‑eval` 上达到 SOTA,超越所有开源模型,并接近领先闭源系统。 | 模型 | 参数 | 开源 | EN WER (%) ↓ | EN SIM (%) ↑ | ZH CER (%) ↓ | ZH SIM (%) ↑ | |---|---:|:---:|---:|---:|---:|---:| | DiTAR | 0.6B | ❌ |1.69 | 73.5 | 1.02 | 75.3 | | FishAudio‑S1 | 4B | ❌ | 1.72 | 62.57 | 1.22 | 72.1 | | CosyVoice3 | 1.5B | ❌ | 2.22 | 72 | 1.12 | 78.1 | | Seed‑TTS | | ❌ | 2.25 | 76.2 | 1.12 | 79.6 | | MiniMax‑Speech | | ❌ | 1.65 | 69.2 | 0.83 | 78.3 | | | | | | | | | | CosyVoice | 0.3B | ✅ | 4.29 | 60.9 | 3.63 | 72.3 | | CosyVoice2 | 0.5B | ✅ | 3.09 | 65.9 | 1.38 | 75.7 | | CosyVoice3 | 0.5B | ✅ | 2.02 | 71.8 | 1.16 | 78 | | F5‑TTS | 0.3B | ✅ | 2 | 67 | 1.53 | 76 | | SparkTTS | 0.5B | ✅ | 3.14 | 57.3 | 1.54 | 66 | | FireRedTTS | 0.5B | ✅ | 3.82 | 46 | 1.51 | 63.5 | | FireRedTTS‑2 | 1.5B | ✅ | 1.95 | 66.5 | 1.14 | 73.6 | | Qwen2.5‑Omni | 7B | ✅ | 2.72 | 63.2 | 1.7 | 75.2 | | FishAudio‑S1‑mini | 0.5B | ✅ | 1.94 | 55 | 1.18 | 68.5 | | IndexTTS2 | 1.5B | ✅ | 2.23 | 70.6 | 1.03 | 76.5 | | VibeVoice | 1.5B | ✅ | 3.04 | 68.9 | 1.16 | 74.4 | | HiggsAudio‑v2 | 3B | ✅ | 2.44 | 67.7 | 1.5 | 74 | | GLM-TTS | 1.5B | ✅ | 2.23 | 67.2 | 1.03 | 76.1 | | GLM-TTS-RL | 1.5B | ✅ | 1.91 | 68.1 | **0.89** | 76.4 | | VoxCPM | 0.5B | ✅ | 1.85 | 72.9 | 0.93 | 77.2 | | Qwen3‑TTS | 0.6B | ✅ | 1.68 | 70.39 | 1.23 | 76.4 | | Qwen3‑TTS | 1.7B | ✅ | **1.5** | 71.45 | 1.33 | 76.72 | | | | | | | | | | **MossTTSDelay** | **8B** | ✅ | 1.84 | 70.86 | 1.37 | 76.98 | | **MossTTSLocal** | **1.7B** | ✅ | 1.93 | **73.28** | 1.44 | **79.62** | ### MOSS‑TTSD #### 客观评估 我们使用三个客观指标评估 MOSS‑TTSD‑v1.0:说话人归属准确率(ACC)、说话人相似度(SIM)和词错误率(WER)。与多个开源及闭源模型对比,结果显示 MOSS‑TTSD‑v1.0 在各方面均达到最佳或次佳。 | 模型 | ZH - SIM | ZH - ACC | ZH - WER | EN - SIM | EN - ACC | EN - WER | | :--- | :---: | :---: | :---: | :---: | :---: | :---: | | **与开源模型对比** | | | | | | | | **MOSS-TTSD-v1.0** | **0.7949** | **0.9587** | **0.0485** | **0.7326** | **0.9626** | 0.0988 | | MOSS-TTSD-v0.7 | 0.7423 | 0.9391 | 0.0517 | 0.6743 | 0.9266 | 0.1612 | | Vibevoice 7B | 0.7590 | 0.9222 | 0.0570 | 0.7140 | 0.9554 | **0.0946** | | Vibevoice 1.5 B | 0.7415 | 0.8798 | 0.0818 | 0.6961 | 0.9353 | 0.1133 | | FireRedTTS2 | 0.7383 | 0.9022 | 0.0768 | - | - | - | | Higgs Audio V2 | - | - | - | 0.6860 | 0.9025 | 0.2131 | | **与闭源模型对比** | | | | | | | | **MOSS-TTSD-v1.0 (elevenlabs_voice)** | **0.8165** | **0.9736** | 0.0391 | **0.7304** | **0.9565** | 0.1005 | | Eleven V3 | 0.6970 | 0.9653 | **0.0363** | 0.6730 | 0.9498 | **0.0824** | | | | | | | | | | **MOSS-TTSD-v1.0 (gemini_voice)** | - | - | - | **0.7893** | **0.9655** | 0.0984 | | gemini-2.5-pro-preview-tts | - | - | - | 0.6786 | 0.9537 | **0.0859** | | gemini-2.5-flash-preview-tts | - | - | - | 0.7194 | 0.9511 | 0.0871 | | | | | | | | | | **MOSS-TTSD-v1.0 (doubao_voice)** | **0.8226** | **0.9630** | 0.0571 | - | - | - | | Doubao_Podcast | 0.8034 | 0.9606 | **0.0472** | - | - | - | #### 主观评估 对于开源模型,标注者对每对样本在说话人归属、音色相似度、韵律和整体质量上进行评分。采用 LMSYS Chatbot Arena 的评估方法,计算 Elo 评分与置信区间。 ![开源模型对比](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/7edf8b868f190736.jpg) 对于闭源模型,标注者选择每对中的整体更优样本,并计算胜率。 ![闭源模型对比](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/68a8ce5b9f190736.png) ### MOSS‑VoiceGenerator MOSS‑VoiceGenerator 在**整体偏好**、**指令遵循**与**自然度**方面表现强劲。

### MOSS‑TTS‑Realtime 我们评估了 MOSS-TTS-Realtime 的 TTFB(首次字节时间)与 RTF(实时因子)。 说明:启用 SDPA + torch.compile。测试在单块 L20 GPU 上进行。 | 模型 | TTFB (ms) | RTF | |-------------|-----------|-----| | **MOSS-TTS-Realtime** | 180(预热后)| 0.51 | 我们使用 vLLM 部署 Qwen3.5-9B 以测量 \(T_{\text{LLM-first-sentence}}\)。生成 12 个令牌(TTS 预填充长度)耗时 197 ms。 \[ T_{\text{LLM-first-sentence}} + T_{\text{MOSS-TTS-Realtime-TTFB}} = 197\text{ms} + 180\text{ms} = 377\text{ms} \] ## MOSS-TTS-Nano ### 介绍 **MOSS-TTS-Nano** 是一款轻量级 TTS 模型,专为 CPU 优先的实时部署而设计。它聚焦于语音生成中最关键的要素:极小的体积、低延迟流式生成,以及足以支撑本地演示和轻量级生产集成的语音克隆质量。基于纯自回归 **Audio Tokenizer + LLM** 流水线,部署栈简洁,即使在没有 GPU 的环境下也能实现实时语音生成。 其主要特性包括: - **0.1B 参数**:极小的模型体积,显著降低内存占用与部署成本,便于本地部署与轻量服务。 - **仅需 4 个 CPU 核心即可实时生成**:在纯 CPU 环境中也能高效运行,适合本地应用与成本敏感场景。 - **多语言语音克隆**:支持多语言语音克隆工作流,便于跨语言合成。 - **48 kHz 立体声输入/输出**:原生支持高保真立体声,提升参考音频与最终听感质量。 如需了解设置、高级用法与评估指标,请访问 [MOSS-TTS-Nano 仓库](https://github.com/OpenMOSS/MOSS-TTS-Nano)。
MOSS TTS Nano architecture

MOSS-TTS-Nano 架构

### 模型权重 | 模型 | Hugging Face | ModelScope | | :---: | :---: | :---: | | **MOSS-TTS-Nano** | [![Hugging Face](https://img.shields.io/badge/Huggingface-Model-orange?logo=huggingface)](https://huggingface.co/OpenMOSS-Team/MOSS-TTS-Nano) | [![ModelScope](https://img.shields.io/badge/ModelScope-Model-lightgrey?logo=modelscope)](https://modelscope.cn/models/openmoss/MOSS-TTS-Nano) | ## MOSS-Audio-Tokenizer ### 介绍 **MOSS-Audio-Tokenizer** 作为整个 MOSS-TTS 家族的统一离散音频接口。基于 **Cat**(Causal Audio Transformer with Transformer)架构——一种完全由因果 Transformer 块构成的“CNN-free”同构音频编解码器。 - **统一离散桥梁**:为 MOSS-TTS、MOSS-TTSD、MOSS-VoiceGenerator、MOSS-SoundEffect 与 MOSS-TTS-Realtime 提供一致的音频表示。 - **极致压缩与高保真**:将 24 kHz 原始音频压缩至 12.5 Hz 帧率,采用 32 层残差向量量化器(RVQ),支持 0.125 kbps 至 4 kbps 比特率下的高保真重建。 - **海量规模通用音频训练**:从零开始在大规模数据(300 万小时,涵盖语音、音效与音乐)上训练,在开源音频编解码器中达到最先进重建质量。 - **原生流式设计**:纯因果 Transformer 架构专为可扩展性与低延迟流式推理而设计,支持实时生产流程。 如需了解设置、高级用法与评估指标,请访问 [MOSS-Audio-Tokenizer 仓库](https://github.com/OpenMOSS/MOSS-Audio-Tokenizer)。

MOSS Audio Tokenizer architecture Architecture of MOSS Audio Tokenizer

### 模型权重 | 模型 | Hugging Face | ModelScope | | :---: | :---: | :---: | | **MOSS-Audio-Tokenizer** | [![Hugging Face](https://img.shields.io/badge/Huggingface-Model-orange?logo=huggingface)](https://huggingface.co/OpenMOSS-Team/MOSS-Audio-Tokenizer) | [![ModelScope](https://img.shields.io/badge/ModelScope-Model-lightgrey?logo=modelscope)](https://modelscope.cn/models/openmoss/MOSS-Audio-Tokenizer) | ### 客观重建评估 我们将 **MOSS Audio Tokenizer** 与开源音频编解码器在 LibriSpeech 测试集(clean 子集)上进行 SIM、STOI、PESQ-NB 与 PESQ-WB 比较。在控制比特率(通过调节 RVQ 码本数量)的情况下,MOSS Audio Tokenizer 在同等比特率下领先于所有开源音频编解码器。

LibriSpeech objective metrics for audio tokenizers

## 📚 更多信息 ### 🌟 社区项目 MOSS-TTS 社区正在快速增长,以下是社区成员贡献的杰出项目与功能: - **[ComfyUI-MOSS-TTS](https://github.com/richservo/comfyui-moss-tts)**:MOSS-TTS 的 ComfyUI 扩展。 - **[MOSS-TTS-OpenAI](https://github.com/dasilva333/moss-tts-openai)**:OpenAI 兼容的 TTS API。 - **[AnyPod](https://github.com/rulerman/AnyPod)**:使用 MOSS-TTS/MOSS-TTSD 作为后端的播客生成工具。 - **挪威 LoRA**:针对 NbAiLab/NST 挪威语音数据集微调的 LoRA 适配器(`mlp`,r=16),由 [Martin Bergo](https://x.com/martinbergo) 在 [Tosee](https://tosee.no/) 贡献。权重:[ToSee-Norway/MOSS-TTS-Norwegian-LoRA](https://huggingface.co/ToSee-Norway/MOSS-TTS-Norwegian-LoRA)。训练脚本位于 [`community/norwegian-lora/`](community/norwegian-lora/)。 ## 许可证 MOSS-TTS 家族模型采用 Apache License 2.0 许可。 ## 引用 ``` @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{zhang2026mossttsdtextspokendialogue, title={MOSS-TTSD: Text to Spoken Dialogue Generation}, author={Yuqian Zhang and Donghua Yu and Zhengyuan Lin and Botian Jiang and Mingshu Chen and Yaozhou Jiang and Yiwei Zhao and Yiyang Zhang and Yucheng Yuan and Hanfu Chen and Kexin Huang and Jun Zhan and Cheng Chang and Zhaoye Fei and Shimin Li and Xiaogui Yang and Qinyuan Cheng and Xipeng Qiu}, year={2026}, eprint={2603.19739}, archivePrefix={arXiv}, primaryClass={cs.SD}, url={https://arxiv.org/abs/2603.19739}, } @misc{huang2026mossvoicegeneratorcreaterealisticvoices, title={MOSS-VoiceGenerator: Create Realistic Voices with Natural Language Descriptions}, author={Kexin Huang and Liwei Fan and Botian Jiang and Yaozhou Jiang and Qian Tu and Jie Zhu and Yuqian Zhang and Yiwei Zhao and Chenchen Yang and Zhaoye Fei and Shimin Li and Xiaogui Yang and Qinyuan Cheng and Xipeng Qiu}, year={2026}, eprint={2603.28086}, archivePrefix={arXiv}, primaryClass={cs.SD}, url={https://arxiv.org/abs/2603.28086}, } ``` ## 星标历史 [![星标历史图](https://api.star-history.com/svg?repos=OpenMOSS/MOSS-TTS&type=date&legend=top-left)](https://www.star-history.com/#OpenMOSS/MOSS-TTS&type=date&legend=top-left)
标签:AIStudio, API文档, arXiv, CNCF毕业项目, Discord, HuggingFace, ModelScope, MOSI.AI, MOSS-TTS, OpenMOSS, TTS, Vectored Exception Handling, 中文模型, 凭据扫描, 博客, 声纹设计, 声音模型, 声音生成, 复杂场景, 多说话人对话, 大模型, 实时流式TTS, 开源模型, 微信, 模型家族, 环境音效, 生成模型, 角色设计, 语音合成, 语音技术, 语音模型, 语音生成, 逆向工具, 长语音稳定, 高保真, 高表现力