voice_audio_multi/docs/models/neutts.md
Fabio c36510c21e
Some checks failed
Linux Build / Linux cpu (push) Has been cancelled
Linux Build / Linux cpu-clang (push) Has been cancelled
Linux Build / Linux vulkan (push) Has been cancelled
mac-build / macOS CPU (push) Has been cancelled
Nix Build / Nix (cpu) (push) Has been cancelled
Nix Build / Nix (vulkan) (push) Has been cancelled
windows-build / Windows CPU (push) Has been cancelled
Initial import: audio.cpp with Orange Pi documentation
2026-11-04 19:05:22 +01:00

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.