NeuTTS

August 10, 2026 ยท View on GitHub

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." \
  --request-option voice_id=emily \
  --request-option emotion=neutral \
  --out out.wav

Streaming mode emits generated audio chunks and a final merged WAV:

audiocpp_cli --task tts --mode streaming --family neutts \
  --model models/NeuTTS-2E-GGUF/neutts-2e-orig.gguf \
  --backend cuda \
  --text "This longer request is split into generated segments and returned through the streaming pull-event path." \
  --request-option voice_id=paul \
  --request-option emotion=happy \
  --out stream.wav \
  --out-dir stream_chunks
OptionValuesDefaultMeaning
--request-option voice_id=<name>dave, emily, greta, jo, juliette, mateo, paul, sophie, stevenemilyBuilt-in speaker prompt.
--request-option emotion=<name>angry, disgusted, sad, happy, fearful, neutral, surprisedneutralOptional emotion token.
--max-tokens / --request-option max_tokens=<n>integer0Maximum generated speech tokens; 0 uses the remaining context.
--request-option min_tokens=<n>integer50Minimum generated speech tokens before EOS may stop generation.
--temperaturefloat1.0AR sampling temperature.
--top-kinteger50AR top-k sampling limit.
--seedintegerrandomSampling seed.
--text-chunk-sizechars600Long-form chunk size.
--text-chunk-modedefault, tag_aware, japanese, endlinedefaultFramework text chunking mode.
--session-option neutts.weight_type=<type>native, f32, f16, bf16, q8_0nativeShared backbone and codec matmul weight storage type.
--session-option neutts.generator_weight_type=<type>native, f32, f16, bf16, q8_0backend-dependentBackbone matmul weight storage type.
--session-option neutts.codec_weight_type=<type>native, f32, f16, bf16, q8_0neutts.weight_type or nativeNeuCodec decoder matmul weight storage type.
--session-option neutts.codec_conv_weight_type=<type>native, f32, f16nativeNeuCodec convolution weight storage type.
--session-option neutts.runtime_graph_arena_mb=<mb>integer MiB1024Reusable graph arena size.