llama-tts with OuteTTS 1.0 Support

Patched build of llama-tts from llama.cpp with support for OuteTTS 1.0's <|c1_N|><|c2_N|> interleaved token pairs (DAC codec).

Why This Exists

The upstream llama-tts (as of b9049) only supports OuteTTS v0.2/v0.3 which use flat <|N|> tokens. OuteTTS 1.0 uses <|c1_N|><|c2_N|> pairs from the DAC codec. This patched build adds:

  • OUTETTS_V1_0 version detection (via chat_template == "outetts-1")
  • Speaker JSON with c1/c2 arrays per word
  • Interleaved <|c1_N|><|c2_N|> token generation
  • <|space|> separator (matching v0.3 format)

Build Details

  • Source: Mearman/llama.cpp branch outetts-v1-support (based on b9049)
  • Target: Android ARM64 (aarch64-linux-android28)
  • Build: Static linking (no shared .so dependencies beyond libc/libm/libdl)
  • Size: 6.0 MB stripped

Speaker JSON Format (v1.0)

{
  "version": "1.0",
  "text": "Hello world this is a test",
  "words": [
    {
      "word": "hello",
      "duration": 0.35,
      "c1": [720, 474, 691, 607],
      "c2": [658, 237, 915, 74]
    },
    {
      "word": "world",
      "duration": 0.42,
      "c1": [700, 639, 838, 622, 975],
      "c2": [34, 457, 546, 42, 631]
    }
  ]
}

The c1/c2 arrays contain DAC codebook indices (0-1023) at 75 frames/second. Generate them using the DAC encoder ONNX.

Usage

adb push llama-tts /data/local/tmp/llama-tts
adb shell chmod +x /data/local/tmp/llama-tts
adb shell /data/local/tmp/llama-tts \
  -m OuteTTS-1.0-0.6B-Q4_0.gguf \
  -mv WavTokenizer-Large-75-Q5_1.gguf \
  --speaker-file speaker.json \
  -p "Hello world" -o output.wav

License

MIT (same as llama.cpp)

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support