--- language: - en pipeline_tag: text-to-speech tags: - emotion - emotions - expressive-tts - emotional-tts license: other --- # NeuTTS-2E [![NeuTTS2E_Intro](neutts-2e.png)](https://youtu.be/RYKQSTqdiDc) [πŸš€ Spaces Demo](https://huggingface.co/spaces/neuphonic/neutts-2e), [πŸ”§ Github](https://github.com/neuphonic/neutts) [Q8 GGUF version](https://huggingface.co/neuphonic/neutts-2e-q8-gguf), [Q4 GGUF version](https://huggingface.co/neuphonic/neutts-2e-q4-gguf) *Created by [Neuphonic](http://neuphonic.com/) - building faster, smaller, on-device voice AI* **NeuTTS-2E** is a super-fast, highly realistic, **on-device** emotional TTS speech language model. It is an early alpha release, **English-only** model, supporting **six emotions plus neutral** (`angry`, `disgusted`, `fearful`, `happy`, `sad`, `surprised` and `neutral`) across **four fixed speakers** (`emily`, `paul`, `sophie`, `steven`). With a compact backbone and an efficient LM + codec design, NeuTTS-2E delivers strong naturalness and expressive control at a fraction of the compute, making it ideal for embedded voice agents, assistants, toys, and privacy-sensitive applications. > [!NOTE] > This model is **English only** with fixed speakers: for other languages and instant voice cloning, see the [NeuTTS Nano Multilingual Collection](https://huggingface.co/collections/neuphonic/neutts-nano-multilingual-collection). ## Key Features - ⚑️ **Ultra-fast for on-device** β€” built for real-time or better-than-real-time generation on laptop-class CPUs - 😠😁😭 **Emotional control** β€” six emotions plus neutral, selected with a single argument - πŸ—£ **High realism for its size** β€” natural, expressive speech in a compact footprint - πŸ“¦ **GGUF/GGML-friendly deployment** β€” easy to run locally via CPU-first tooling - πŸ”’ **Local-first + compliance-friendly** β€” keep audio and text on-device > [!CAUTION] > Websites like neutts.com are popping up and they're not affliated with Neuphonic, our github or this repo. > > We are on neuphonic.com only. Please be careful out there! πŸ™ ## Model Details NeuTTS-2E is designed for **maximum speed per parameter** while retaining strong naturalness and expressive control: - **Backbone**: compact LM backbone tuned for emotional TTS token generation - **Input Format**: text β€” no phonemizer or system dependencies required - **Speakers**: four fixed speakers (`emily`, `paul`, `sophie`, `steven`) - **Emotions**: `angry`, `disgusted`, `fearful`, `happy`, `sad`, `surprised` and `neutral` - **Audio Codec**: [NeuCodec](https://huggingface.co/neuphonic/neucodec) - our open-source neural audio codec that achieves exceptional audio quality at low bitrates using a single codebook - **Format**: quantisations available in GGUF format for efficient on-device inference - **Responsibility**: Watermarked outputs - **Inference Speed**: Optimised for real-time generation on CPUs - **Power Consumption**: Designed for mobile and embedded devices ### Parameter Count - **Active params (backbone only):** **~125M** - **Total params (backbone + tied embeddings/head):** **~236M** ## Get Started with NeuTTS 1. **Install NeuTTS** ```bash pip install neutts ``` Or for a local editable install, clone the [neutts repository](https://github.com/neuphonic/neutts) and run in the base folder: ```bash pip install -e . ``` Alternatively to install all dependencies, including `onnxruntime` and `llama-cpp-python` (equivalent to steps 2 and 3 below): ```bash pip install neutts[all] ``` or for an editable install: ```bash pip install -e .[all] ``` 2. **(Optional) Install `llama-cpp-python` to use `.gguf` models.** ```bash pip install "neutts[llama]" ``` Note that this installs `llama-cpp-python` without GPU support. To install with GPU support (e.g., CUDA, MPS) please refer to: https://pypi.org/project/llama-cpp-python/ 3. **(Optional) Install `onnxruntime` to use the `.onnx` decoder.** ```bash pip install "neutts[onnx]" ``` ## Examples To get started with the example scripts, clone the neutts repository and navigate into the project directory: ```bash git clone https://github.com/neuphonic/neutts.git cd neutts ``` ### Basic Example Run the emotional example script to synthesize speech: ```bash python -m examples.basic_example_emotions \ --input_text "I can't believe it's finally here!" \ --speaker emily \ --emotion happy ``` ### Simple One-Code Block Usage ```python from neutts import NeuTTS2E import soundfile as sf tts = NeuTTS2E() wav = tts.infer( "I can't believe it's finally here!", speaker="emily", emotion="happy", ) sf.write("test.wav", wav, 24000) ``` # **Responsibility** Every audio file generated by NeuTTS-2E includes by default a [Perth (Perceptual Threshold) Watermark](https://github.com/resemble-ai/perth). # **Disclaimer** Don't use this model to do bad things… please.