3.7 KiB
NeuTTS
NeuTTS is an experimental English TTS family with built-in speaker prompts and emotion-token control. The current package is the 2E variant, and the default download is its standalone GGUF package; the original safetensors layout is still supported for local development.
python3 tools/model_manager_v2.py install neutts
audiocpp_cli --task tts --family neutts \
--model models/NeuTTS-2E-GGUF/neutts-2e-orig.gguf \
--backend cuda \
--text "The release checklist is almost complete, and the baseline run looks healthy." \
--voice-id emily \
--request-option emotion=neutral \
--out out.wav
Streaming mode decodes speech tokens while AR generation is still running, emitting incremental audio and a final merged WAV. Codec windows emit 25 frames (500 ms), with 51 frames of left context, five frames of look-ahead, and a two-frame crossfade. The built-in reference codes seed the left context. Windowed decoding can differ from offline decoding because the codec uses non-causal attention. Long-form text chunking remains available in both modes.
audiocpp_cli --task tts --mode streaming --family neutts \
--model models/NeuTTS-2E-GGUF/neutts-2e-orig.gguf \
--backend cuda \
--text "This request starts returning audio while the remaining speech tokens are still being generated." \
--request-option voice_id=paul \
--request-option emotion=happy \
--out stream.wav \
--out-dir stream_chunks
Common Options (use directly)
| Option | Values | Default | Meaning |
|---|---|---|---|
--max-tokens |
integer | 0 |
Maximum generated speech-token count for the autoregressive generator; 0 uses the remaining model context, default 0. Total generation context is capped at min(checkpoint context, 2048). |
--temperature |
float > 0 | 1.0 |
AR sampling temperature. |
--top-k |
integer | 50 |
AR top-k sampling limit. |
--seed |
integer | random | Sampling seed. |
--text-chunk-size |
chars | 600 |
Long-form chunk size. |
--text-chunk-mode |
default, tag_aware, japanese, endline |
default |
Framework text chunking mode. |
Request Options (use with --request-option)
--voice-id also selects a built-in speaker and takes precedence over
--request-option voice_id=....
| Option | Values | Default | Meaning |
|---|---|---|---|
voice_id |
dave, emily, greta, jo, juliette, mateo, paul, sophie, steven |
emily |
Built-in speaker prompt. |
emotion |
angry, disgusted, sad, happy, fearful, neutral, surprised |
neutral |
Optional emotion token. |
max_tokens |
integer | 0 |
Maximum generated speech-token count for the autoregressive generator; 0 uses the remaining model context, default 0. Total generation context is capped at min(checkpoint context, 2048). |
min_tokens |
integer | 50 |
Minimum generated speech tokens before EOS may stop generation. |
Session Options (use with --session-option)
| Option | Values | Default | Meaning |
|---|---|---|---|
neutts.weight_type |
native, f32, f16, bf16, q8_0 |
native |
Shared backbone and codec matmul weight storage type. |
neutts.generator_weight_type |
native, f32, f16, bf16, q8_0 |
see description | Generator weight storage; inherits explicit weight_type, otherwise F32 on CPU and native on other backends. |
neutts.codec_weight_type |
native, f32, f16, bf16, q8_0 |
neutts.weight_type or native |
NeuCodec decoder matmul weight storage type. |
neutts.codec_conv_weight_type |
native, f32, f16 |
native |
NeuCodec convolution weight storage type. |
neutts.runtime_graph_arena_mb |
integer MiB | 1024 |
Reusable graph arena size. |