voice_audio_multi/docs/models/kitten_tts.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

75 lines
3 KiB
Markdown

# KittenTTS
`kitten_tts` provides native GGML inference for the 80M-parameter
[KittenTTS Mini 0.8](https://huggingface.co/KittenML/kitten-tts-mini-0.8)
English text-to-speech model. It uses the shared eSpeak-ng frontend and
produces 24 kHz mono audio with eight built-in voices.
## Install
Install eSpeak-ng when it is not included in the audio.cpp build, then install
the model package:
```bash
sudo apt install espeak-ng libespeak-ng1
python tools/model_manager_v2.py install kitten_tts_mini_0_8_orig --models-root models
```
## Run
```bash
audiocpp_cli --task tts --family kitten_tts \
--model models/KittenTTS-GGUF/kitten-tts-mini-0.8-orig.gguf \
--backend cpu --text "This lightweight model runs without a GPU." \
--voice-id Leo --out kitten.wav
```
Available voices are `Bella`, `Jasper`, `Luna`, `Bruno`, `Rosie`, `Hugo`,
`Kiki`, and `Leo`.
### Request options (use with `--request-option`)
`--voice-id` takes precedence over `--request-option voice_id=...`.
| Option | Range | Default | Description |
|---|---:|---:|---|
| `voice_id` | packaged voice ID or alias | `expr-voice-5-m` | Built-in voice, also selectable with `--voice-id`. |
| `speed` | positive float | `1.0` | Speech speed multiplier; larger values produce faster speech. Must be finite and positive. |
| `seed` | non-negative integer | random | Decoder noise seed for the current request; omitted requests choose a fresh random seed. |
| `text_chunk_mode` | `default`, `tag_aware`, `japanese`, `endline` | `default` | Framework long-form text chunking mode. |
| `text_chunk_size` | positive integer | `400` | Maximum Unicode codepoints per chunk. |
The common `--speaking-rate` option also sets speech speed.
### Session options (use with `--session-option`)
| Option | Description |
|---|---|
| `kitten_tts.weight_type` | Storage type for matrix multiplication weights. |
| `kitten_tts.conv_weight_type` | Storage type for convolution weights. |
| `kitten_tts.graph_capacity_mode` | Predictor graph capacity policy: `fixed`, `tiered`, `grow`, or `double`. |
| `kitten_tts.max_input_tokens` | Maximum predictor input token capacity; defaults to `min(512, checkpoint context_length)`. |
| `kitten_tts.pre_tail_tokens` | Optional prebuilt predictor tail capacity. |
| `kitten_tts.espeak_library_path` | Explicit path to the eSpeak-ng shared library. |
| `kitten_tts.espeak_data_path` | Explicit path to `espeak-ng-data`. |
## Convert the official model
Download `kitten_tts_mini_v0_8.onnx`, `voices.npz`, and `config.json` from the
upstream model repository, then run:
```bash
python tests/kitten_tts/convert_onnx_to_safetensors.py \
--onnx kitten_tts_mini_v0_8.onnx \
--voices voices.npz \
--output-dir kitten-converted/ggml
cp config.json kitten-converted/config.json
audiocpp_gguf \
--input kitten=kitten-converted/ggml/kitten_tts.safetensors \
--root kitten-converted \
--output kitten-tts-mini-0.8-orig.gguf \
--type orig --family kitten_tts --model-spec model_specs/kitten_tts.json
```
The upstream code and model are licensed under Apache-2.0.