Skip to page content
SAVRN
Search Plan a project

Open-weight model · Text to speech

nano

by Nabad hoskasii/nano

nano is an open-weight model for text to speech from Nabad, released under Apache License 2.0. It has 54M parameters and a 32,768-token context. At 16-bit it needs about 0.1 GB of GPU memory, which fits on 1x MI300X from $1.85 an hour, at the lowest prices in the SAVRN Index. It draws 189 downloads a month.

MOSS-TTS-Nano is an open-source multilingual tiny speech generation model from MOSI.AI and the OpenMOSS team.

Parameters54M
Context32,768
Weights217.3 MB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads189

Runs On

What it takes to serve nano (54M parameters): the memory its weights need at each precision, and the cheapest way to rent enough data-center GPUs to hold them.

PrecisionWeightsMemory neededCheapest setupPer hourAlso fits
16-bit 0.1 GB 0.1 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
8-bit 0.1 GB 0.1 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
4-bit 0.0 GB 0.0 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00

Memory is the weights at that precision plus 20% for the runtime and a short context; a long context needs more. Prices are the lowest on-demand hourly rates in the SAVRN Index, read Oct 19, 2026.

nano on every accelerator the SAVRN Index prices, at every precision

Model Card

By Nabad, published under apache-2.0, revision b4efeb61b2d4.

MOSS-TTS-Nano is an open-source multilingual tiny speech generation model from MOSI.AI and the OpenMOSS team. With only 0.1B parameters, it is designed for realtime speech generation, can run directly on CPU without a GPU, and keeps the deployment stack simple enough for local demos, web serving, and lightweight product integration. 2026.4.10: We release MOSS-TTS-Nano. A demo Space is available at OpenMOSS-Team/MOSS-TTS-Nano. You can also view the demo and more details at openmoss.github.io/MOSS-TTS-Nano-Demo/. MOSS-TTS-Nano focuses on the part of TTS deployment that matters most in practice: small footprint, low latency, good enough quality for realtime products, and simple local setup. It…

Read Nabad's full model card

MOSS-TTS-Nano


MOSS-TTS-Nano is an open-source multilingual tiny speech generation model from MOSI.AI and the OpenMOSS team. With only 0.1B parameters, it is designed for realtime speech generation, can run directly on CPU without a GPU, and keeps the deployment stack simple enough for local demos, web serving, and lightweight product integration.

News

Demo

Contents

  • News
  • Demo
  • Introduction
  • Main Features
  • Supported Languages
  • Quickstart
  • Environment Setup
  • Voice Clone with infer.py
  • Local Web Demo with app.py
  • CLI Command: moss-tts-nano generate
  • CLI Command: moss-tts-nano serve
  • MOSS-Audio-Tokenizer-Nano
  • License
  • Citation
  • Star History

Introduction

MOSS-TTS-Nano focuses on the part of TTS deployment that matters most in practice: small footprint, low latency, good enough quality for realtime products, and simple local setup. It uses a pure autoregressive Audio Tokenizer + LLM pipeline and keeps the inference workflow friendly for both terminal users and web-demo users.

Main Features

  • Tiny model size: only 0.1B parameters
  • Native audio format: 48 kHz, 2-channel output
  • Multilingual: supports Chinese, English, and more
  • Pure autoregressive architecture: built on Audio Tokenizer + LLM
  • Streaming inference: low realtime latency and fast first audio
  • CPU friendly: streaming generation can run on a 4-core CPU
  • Long-text capable: supports long input with automatic chunked voice cloning
  • Open-source deployment: direct python infer.py, python app.py, and packaged CLI support

Supported Languages

MOSS-TTS-Nano currently supports 20 languages:

Language Code Flag Language Code Flag Language Code Flag
Chinese zh English en German de
Spanish es French fr Japanese ja
Italian it Hungarian hu Korean ko
Russian ru Persian (Farsi) fa Arabic ar
Polish pl Portuguese pt Czech cs
Danish da Swedish sv Greek el
Turkish tr

Quickstart

Environment Setup

We recommend a clean Python environment first, then installing the project in editable mode so the moss-tts-nano command becomes available locally. The examples below intentionally keep arguments minimal and rely on the repository defaults. By default, the code loads OpenMOSS-Team/MOSS-TTS-Nano and OpenMOSS-Team/MOSS-Audio-Tokenizer-Nano.

Using Conda
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 .

If WeTextProcessing fails to install from requirements.txt, try installing it manually in the same environment:

conda install -c conda-forge pynini=2.1.6.post1 -y
pip install git+https://github.com/WhizZest/WeTextProcessing.git

Voice Clone with infer.py

This repository keeps the direct Python entrypoint for local inference. The example below uses voice clone mode, which is the main recommended workflow for MOSS-TTS-Nano.

python infer.py \
  --prompt-audio-path assets/audio/zh_1.wav \
  --text "欢迎关注模思智能、上海创智学院与复旦大学自然语言处理实验室。"

This writes audio to generated_audio/infer_output.wav by default.

Local Web Demo with app.py

You can launch the local FastAPI demo for browser-based testing:

python app.py

Then open http://127.0.0.1:18083 in your browser.

CLI Command: moss-tts-nano generate

After pip install -e ., you can call the packaged CLI directly:

moss-tts-nano generate \
  --prompt-speech assets/audio/zh_1.wav \
  --text "欢迎关注模思智能、上海创智学院与复旦大学自然语言处理实验室。"

Useful notes:

  • moss-tts-nano generate writes to generated_audio/moss_tts_nano_output.wav by default.
  • --prompt-speech is the friendly alias for the reference audio path used by voice cloning.
  • --text-file is supported for long-form synthesis.

CLI Command: moss-tts-nano serve

You can also launch the web demo through the packaged CLI:

moss-tts-nano serve

This command forwards to app.py, keeps the model loaded in memory, and serves the local browser demo plus HTTP generation endpoints.

MOSS-Audio-Tokenizer-Nano

Introduction

MOSS-Audio-Tokenizer is the unified discrete audio interface for the entire MOSS-TTS family. It is built on the Cat (Causal Audio Tokenizer with Transformer) architecture, a CNN-free audio tokenizer composed entirely of causal Transformer blocks. It serves as the shared audio backbone for MOSS-TTS, MOSS-TTS-Nano, MOSS-TTSD, MOSS-VoiceGenerator, MOSS-SoundEffect, and MOSS-TTS-Realtime, providing a consistent audio representation across the full product family.

To further improve perceptual quality while reducing inference cost, we trained MOSS-Audio-Tokenizer-Nano, a lightweight tokenizer with approximately 20 million parameters designed for high-fidelity audio compression. It supports 48 kHz input and output as well as stereo audio, which helps reduce compression loss and improve listening quality. It can compress 48 kHz stereo audio into a 12.5 Hz token stream and uses RVQ with 16 codebooks, enabling high-fidelity reconstruction across variable bitrates from 0.125 kbps to 4 kbps.

To learn more about setup, advanced usage, and evaluation metrics, please visit the MOSS-Audio-Tokenizer Repository

Architecture of MOSS-Audio-Tokenizer-Nano

Model Weights

Model Hugging Face ModelScope
MOSS-Audio-Tokenizer-Nano

License

This repository will follow the license specified in the root LICENSE file. If you are reading this before that file is published, please treat the repository as not yet licensed for redistribution.

Citation

If you use the MOSS-TTS work in your research or product, please cite:

@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}, 
}

Configuration

Architecture
MossTTSNanoForCausalLM
Context length (tokens)
32,768
Hidden size
768
Vocabulary size
16,384
Model type
moss_tts_nano

Identity and Version

Repository
hoskasii/nano
Publisher
Nabad
Task
Text to speech
Modality
Audio
Library
Not stated by the source
Parameters
54M parameters
Languages
zh, en, de, es, fr, ja, it, he
Revision
b4efeb61b2d4bcd77fa436937c01f69aed8d37c5
First published
2026-10-13
Last updated
2026-10-15

Files and Weights

21 files, 220.4 MB in total. The weights are 1 file totalling 217.3 MB in safetensors.

Weights1 file · 217.3 MB
Configuration9 files · 113.0 KB
Tokenizer3 files · 645.8 KB
Documentation1 file · 11.1 KB
Other5 files · 2.3 MB
Repository2 files · 1.7 KB
Every file
FileTypeSizeSHA-256
model.safetensorsWeights217.3 MB 9e455a276a03
__init__.pyConfiguration800 B —
config.jsonConfiguration2.1 KB —
configuration_moss_tts_nano.pyConfiguration4.9 KB —
generation_config.jsonConfiguration90 B —
gpt2_decoder.pyConfiguration26.6 KB —
modeling_moss_tts_nano.pyConfiguration72.4 KB —
prompting.pyConfiguration2.0 KB —
special_tokens_map.jsonConfiguration552 B —
tokenization_moss_tts_nano.pyConfiguration3.6 KB —
README.mdDocumentation11.1 KB —
OkOther5.1 KB —
assets/images/OpenMOSS_Logo.pngOther31.9 KB —
assets/images/concept.pngOther2.2 MB 18c079211d63
assets/images/mosi-logo.pngOther25.2 KB —
assets/images/wechat.jpgOther11.1 KB —
.gitattributesRepository1.7 KB —
.gitignoreRepository11 B —
assets/images/arch_moss_audio_tokenizer_nano.pngTokenizer173.8 KB 2975096ead35
tokenizer.modelTokenizer470.9 KB c353ee1479b5
tokenizer_config.jsonTokenizer1.1 KB —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
217.3 MB
Download from Nabad

Released by Nabad through its official repository on Hugging Face. Read the license.

Built From

Memory Requirements

PrecisionWeights in memory
As published217.3 MB
16-bit0.1 GB
8-bit0.1 GB
4-bit0.0 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About nano

How much GPU memory does nano need?

About 0.1 GB at 16-bit and 0 GB at 4-bit: the weights (54M parameters) plus a working margin. A long context needs more.

What is the cheapest GPU to run nano on?

At 16-bit, 1x MI300X from $1.85 an hour; at 4-bit, 1x MI300X from $1.85 an hour, at the lowest on-demand prices the SAVRN Index lists.

Can I use nano commercially?

Yes. nano is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

What is nano's context length?

32,768 tokens, from the maximum position embeddings in its published configuration.

Similar Models

Model · Text to speech

mms-tts-hin

AI at Meta

mms - vits pipelinetag: text-to-speech This repository contains the Hindi (hin) language text-to-speech (TTS) model checkpoint. This model is part of Facebook's Massively Multilingual Speech project, aiming to provide speech technology across a diverse range of languages. You can find more details about the supported languages and their ISO 639-3 codes in the MMS Language Coverage Overview, and see all MMS-TTS checkpoints on the Hugging Face Hub: facebook/mms-tts. MMS-TTS is available in the Transformers library from version 4.33 onwards. VITS (Variational Inference with adversarial learning for end-to-end Text-to-Speech) is an end-to-end speech synthesis model that predicts a speech…

Open weights cc-by-nc-4.0 36M parameters transformers

Model · Text to speech

mms-tts-eng

AI at Meta

mms - vits pipelinetag: text-to-speech This repository contains the English (eng) language text-to-speech (TTS) model checkpoint. This model is part of Facebook's Massively Multilingual Speech project, aiming to provide speech technology across a diverse range of languages. You can find more details about the supported languages and their ISO 639-3 codes in the MMS Language Coverage Overview, and see all MMS-TTS checkpoints on the Hugging Face Hub: facebook/mms-tts. MMS-TTS is available in the Transformers library from version 4.33 onwards. VITS (Variational Inference with adversarial learning for end-to-end Text-to-Speech) is an end-to-end speech synthesis model that predicts a speech…

Open weights cc-by-nc-4.0 36M parameters transformers

Model · Text to speech

mms-tts-bam

AI at Meta

mms - vits pipelinetag: text-to-speech This repository contains the Bamanankan (bam) language text-to-speech (TTS) model checkpoint. This model is part of Facebook's Massively Multilingual Speech project, aiming to provide speech technology across a diverse range of languages. You can find more details about the supported languages and their ISO 639-3 codes in the MMS Language Coverage Overview, and see all MMS-TTS checkpoints on the Hugging Face Hub: facebook/mms-tts. MMS-TTS is available in the Transformers library from version 4.33 onwards. VITS (Variational Inference with adversarial learning for end-to-end Text-to-Speech) is an end-to-end speech synthesis model that predicts a speech…

Open weights cc-by-nc-4.0 36M parameters transformers

Model · Text to speech

Soprano-1.1-80M

Eugene Kwek

2026.01.14 - Soprano-1.1-80M released! 95% fewer hallucinations and a 63% preference rate over Soprano-80M. 2026.01.13 - Soprano-Factory released! You can now train/fine-tune your own Soprano models. 2025.12.22 - Soprano-80M released! Code | Demo Soprano is an ultra‑lightweight, on-device text‑to‑speech (TTS) model designed for expressive, high‑fidelity speech synthesis at unprecedented speed. Soprano was designed with the following features: - Up to 2000x real-time generation on GPU and 20x real-time on CPU - Lossless streaming with one plus one, etc) If Soprano produces unsatisfactory results, you can easily regenerate it for a new, potentially better generation. You may also change the…

Open weights apache-2.0 80M parameters 1,024 tokens transformers

Model · Text to speech

kokoro-inno-clone-tuner

Jeremy Braun

Zero-shot voice tuner for Kokoro-82M. Outputs base Kokoro compatible voice packs @ [510, 1, 256]. (write-up) Same passage for every voice, enrolled from the references. LibriTTS-R speakers are dev-clean held out from training. Integrated into Kokoro-FastAPI (v0.9.0+) The pack is a plain tensor; torch.save(pack, "voices/amme.pt") makes it a voice file like any other, prefixed by accent and gender like the stock packs. The pitch-tracking ceiling is set automatically from the reference's harmonic spacing, so band-limited or archival sources land in the right octave without tuning. - enroll(..., fmax=180) overrides it if a voice still reads the wrong register. Enrollment embeds an input audio…

Open weights apache-2.0 10M parameters

Model · Text to speech

steer-tts

WhissleAI

A small English text-to-speech model that you steer with numbers. Each request can set any subset of 12 acoustic controls, for example speaking rate, loudness, median pitch, pitch range, final rise or fall, pauses, spectral tilt and breathiness. Each control is a z-score relative to the chosen voice's own neutral speech. You can also pick a style tag, give a free-text direction (which a small adapter turns into a request you can inspect), or use inline markup. The model can clone a voice from a short reference clip. The CLI looks for the model in the current directory. From anywhere else, pass it before the command (steertts --model WhissleAI/steer-tts say "Hi." -o hi.wav) or set…

Open weights cc-by-nc-4.0 10M parameters steertts