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_0version detection (viachat_template == "outetts-1")- Speaker JSON with
c1/c2arrays 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)
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support