neutts-2e / README.md
suryatmodulus's picture
Duplicate from neuphonic/neutts-2e
b3f916a
|
Raw
History Blame Contribute Delete
4.97 kB
---
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.