v0.2.0: What's new (Kokoro Lite how-to, Lite vs Drama 3 table, fixes) near the top; Docker 0.2.0
Browse filesLite installs for DGX Spark and Mac, Docker VOICE_ENGINE=lite / both, the Full/Lite toggle, trade-offs, the Kokoro Lite vs Drama 3 (4-bit) table and the fixes since v0.1.0. The DGX Spark Drama 3 build now has TensorFold 1.1.4's silence guard flags.
README.md
CHANGED
|
@@ -25,6 +25,76 @@ Fourteen named voices for [Fish Audio Drama 3](https://huggingface.co/fishaudio/
|
|
| 25 |
audio/visual agent in [drowzeys/keys-ghost-machine-audio-visual-agent](https://github.com/drowzeys/keys-ghost-machine-audio-visual-agent).
|
| 26 |
Vesper is Boo's default.
|
| 27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
## Requirements
|
| 29 |
|
| 30 |
Drama 3 served by TensorFold with named voices (`--voices`): about 21 GB of weights (the
|
|
@@ -32,7 +102,8 @@ Drama 3 served by TensorFold with named voices (`--voices`): about 21 GB of weig
|
|
| 32 |
silicon (macOS 26, Metal) or about 21 GB on an NVIDIA DGX Spark (CUDA 13). The full Boo stack needs about 79 GB on a Mac
|
| 33 |
(96 GB minimum, 128 GB or more recommended) or about 61 GB on a DGX Spark; see the GitHub README. Software: TensorFold
|
| 34 |
1.1.4 (the prebuilt builds in the GitHub release add NVFP4 pruned Drama 3, the voice-prefix cache and Cosmos3-Edge; the
|
| 35 |
-
DGX Spark's Drama 3 runs on plotarmordev's NVFP4 fork, because stock 1.1.4 refuses the pruned checkpoint
|
|
|
|
| 36 |
|
| 37 |
**Full or Lite.** Boo's optional lite voice, [Kokoro-82M](https://huggingface.co/hexgrad/Kokoro-82M) (hexgrad,
|
| 38 |
Apache-2.0), replaces Drama 3; everything else is the same.
|
|
@@ -72,8 +143,8 @@ curl -fsSL https://raw.githubusercontent.com/drowzeys/keys-ghost-machine-audio-v
|
|
| 72 |
curl -fsSL https://raw.githubusercontent.com/drowzeys/keys-ghost-machine-audio-visual-agent/main/install.sh | bash -s -- --voice lite
|
| 73 |
```
|
| 74 |
|
| 75 |
-
Docker on a DGX Spark: `-e VOICE_ENGINE=lite` and no Drama 3 mount, with
|
| 76 |
-
|
| 77 |
voice full|lite|both` switches later. Settings, the Docker alternative and uninstalling are in the
|
| 78 |
[One-shot install](https://github.com/drowzeys/keys-ghost-machine-audio-visual-agent#one-shot-install) section of the
|
| 79 |
GitHub README.
|
|
@@ -124,7 +195,7 @@ Boo's optional lite voice runs [Kokoro-82M](https://huggingface.co/hexgrad/Kokor
|
|
| 124 |
|
| 125 |
| | DGX Spark, lite | DGX Spark, full | Mac, lite | Mac, full |
|
| 126 |
|---|---|---|---|---|
|
| 127 |
-
| Voice-to-voice, median | **0.33 s** | 0.55β0.77 s | 0.
|
| 128 |
| Voice engine memory in use | **β 3.5 GB** | β 42 GB | **β 0.7 GB** | β 10 GB |
|
| 129 |
| Whole stack in use | **β 62 GB** | β 101 GB | **β 55 GB** | β 64 GB |
|
| 130 |
|
|
@@ -162,8 +233,8 @@ curl -s http://127.0.0.1:8098/v1/audio/speech -H 'Content-Type: application/json
|
|
| 162 |
```
|
| 163 |
|
| 164 |
Drama 3 sometimes goes quiet after the first sentence of a long line (about 1 in 5 paragraphs, the same input every
|
| 165 |
-
time; [TensorFold#1275](https://github.com/ashhart/TensorFold/issues/1275)). On TensorFold 1.1.4
|
| 166 |
-
`serve`: `--silence-floor-dbfs=-30 --silence-seconds=4 --silence-mid-s=2 --silence-mid-min-voiced-s=1
|
| 167 |
--silence-redraws=3 --silence-redraw-budget-s=90`. Whole replies are redrawn; a stream ends at the silence instead, so
|
| 168 |
a streaming client should ask again for the unspoken text, as Boo does.
|
| 169 |
|
|
|
|
| 25 |
audio/visual agent in [drowzeys/keys-ghost-machine-audio-visual-agent](https://github.com/drowzeys/keys-ghost-machine-audio-visual-agent).
|
| 26 |
Vesper is Boo's default.
|
| 27 |
|
| 28 |
+
## What's new in v0.2.0
|
| 29 |
+
|
| 30 |
+
**Kokoro Lite, a second voice for smaller machines.** [Kokoro-82M](https://huggingface.co/hexgrad/Kokoro-82M)
|
| 31 |
+
(hexgrad, Apache-2.0) can now speak for Boo instead of Drama 3, or beside it with a switch in the page. It is for
|
| 32 |
+
memory-constrained hardware: a DGX Spark that shares its memory with other work, or a Mac at the low end of the
|
| 33 |
+
[requirements](#requirements). Everything else (Bolt, Cosmos3-Edge, Parakeet, Eyes of Kai, Hermes) stays the same.
|
| 34 |
+
|
| 35 |
+
- **Install Lite, DGX Spark** (about 48 GB free memory):
|
| 36 |
+
`curl -fsSL https://raw.githubusercontent.com/drowzeys/keys-ghost-machine-audio-visual-agent/main/install.sh | bash -s -- --voice lite`
|
| 37 |
+
- **Install Lite, Mac** (Apple silicon, macOS 26+; 96 GB comfortable, 64 GB tight): the same command,
|
| 38 |
+
`curl -fsSL https://raw.githubusercontent.com/drowzeys/keys-ghost-machine-audio-visual-agent/main/install.sh | bash -s -- --voice lite`
|
| 39 |
+
- **Docker, Lite** (DGX Spark, no Drama 3 mount needed):
|
| 40 |
+
```sh
|
| 41 |
+
docker run --gpus all --rm -p 8095:8095 -e VOICE_ENGINE=lite -e KAI=1 \
|
| 42 |
+
-v ~/keys-ghost-machine/models/NVIDIA-Nemotron-3.5-Bolt-74B-A9B-24GB:/models/bolt \
|
| 43 |
+
-v ~/keys-ghost-machine/models/cosmos3-tf:/models/cosmos3 -v ~/models/hf-cache:/models/hf-cache \
|
| 44 |
+
ghcr.io/drowzeys/keys-ghost-machine-audio-visual-agent:0.2.0
|
| 45 |
+
```
|
| 46 |
+
- **Both, with a Full/Lite toggle:** install with `--voice both` (or `-e VOICE_ENGINE=both` in Docker, with the
|
| 47 |
+
Drama 3 mount) and the page shows a **Full / Lite** switch per conversation; the voice list follows the engine.
|
| 48 |
+
On an existing install, `kgm voice full|lite|both` switches. Pick a Kokoro voice in the page's Voice list
|
| 49 |
+
(`bf_emma` by default, `af_heart` is Kokoro's best rated) or set `KOKORO_VOICE=af_heart` in Docker.
|
| 50 |
+
- **Trade-off:** on a DGX Spark Lite answers in about 0.33β0.40 s voice to voice (Full 0.55β0.77 s) and uses about
|
| 51 |
+
40 GB less memory. On a Mac it is about as fast as Full and saves about 9 GB. Lite speaks English only in Boo and
|
| 52 |
+
has no voice cloning, emotion control or the 14 Drama 3 voices.
|
| 53 |
+
|
| 54 |
+
**Kokoro Lite vs Drama 3 (4-bit)**
|
| 55 |
+
|
| 56 |
+
| | Kokoro Lite | Drama 3 4-bit (NVFP4) |
|
| 57 |
+
|---|---|---|
|
| 58 |
+
| Model | 82M parameters, ~330 MB | Billions of parameters, 4-bit NVFP4 |
|
| 59 |
+
| Voice-engine memory: DGX Spark | ~3.5 GB | ~42 GB |
|
| 60 |
+
| Voice-engine memory: Mac | ~0.8 GB | ~10 GB |
|
| 61 |
+
| Voice starts: Spark | 33β40 ms | 112β121 ms |
|
| 62 |
+
| Voice starts: Mac | 51β54 ms | ~60 ms |
|
| 63 |
+
| Voice to voice: Spark | 0.33β0.40 s | 0.55β0.77 s |
|
| 64 |
+
| Voice to voice: Mac | 0.49β0.64 s | 0.43β0.61 s |
|
| 65 |
+
| Naturalness (UTMOS) | 4.35 (bf_emma) β 4.52 (af_heart) | 4.53 (Vesper) |
|
| 66 |
+
| Voices | 54 built in | 14 custom, incl. Vesper |
|
| 67 |
+
| Voice cloning | No | Yes |
|
| 68 |
+
| Emotion/style control | No | Yes |
|
| 69 |
+
| Long-line stalls | None | Occasional; fixed by the silence guard + resume in v0.2.0 |
|
| 70 |
+
| Streaming | Whole sentence (<0.13 s) | Streams within a sentence |
|
| 71 |
+
| Languages | EN, ES, FR, IT, PT, HI, JA, ZH | Wider, incl. German |
|
| 72 |
+
| Licence | Apache-2.0 | Fish Audio Community License (hosted commercial use needs a Fish licence) |
|
| 73 |
+
|
| 74 |
+
Spark: Lite is twice as fast and frees ~40 GB. Mac: same speed, so run `both` and keep Vesper with a Lite toggle.
|
| 75 |
+
Choose Drama for a signature voice, cloning, emotion or German; choose Kokoro for small or shared hardware, an Apache
|
| 76 |
+
licence or the lowest delay.
|
| 77 |
+
|
| 78 |
+
**Fixes**
|
| 79 |
+
|
| 80 |
+
- **Drama 3 long-line stalls:** a long reply that went quiet after its first sentence (on about 1 in 5 paragraph-length
|
| 81 |
+
lines) is now caught. The DGX Spark's Drama 3 build gains TensorFold 1.1.4's silence guard (new in the v0.2.0
|
| 82 |
+
Linux archive and the Docker image), the Mac build already had it, and Boo itself drops a stalled take's quiet tail
|
| 83 |
+
and asks for the unspoken rest.
|
| 84 |
+
- **Never deaf after a fast short reply:** a quick reply such as "I'm on it." could leave Boo marked as still
|
| 85 |
+
speaking, and the session stopped listening. Fixed (64 of 64 turns heard in testing).
|
| 86 |
+
- **Drama 3 "speech output capacity is full" (503):** the keep-warm loop no longer outlives its page or a stopped
|
| 87 |
+
microphone (it stops on disconnect, after 2 s without audio and after 60 s), warms with one "Mm." at a time and never
|
| 88 |
+
while anything is being said; a refused line is asked again for up to `retry_s` (6 s) instead of being lost; a
|
| 89 |
+
stopped turn frees its speech slot at once.
|
| 90 |
+
- **Bolt repetition loops:** a reply that starts repeating a sentence it already said ends there, unsaid.
|
| 91 |
+
- **Interrupted replies** stopped before their first word no longer leave "(interrupted)" in the history for the
|
| 92 |
+
brain to copy.
|
| 93 |
+
- The reference Mac now runs `voice_engine: both`, with the Full/Lite toggle tested live.
|
| 94 |
+
|
| 95 |
+
Builds: [v0.2.0 release](https://github.com/drowzeys/keys-ghost-machine-audio-visual-agent/releases/tag/v0.2.0) Β·
|
| 96 |
+
`docker pull ghcr.io/drowzeys/keys-ghost-machine-audio-visual-agent:0.2.0`
|
| 97 |
+
|
| 98 |
## Requirements
|
| 99 |
|
| 100 |
Drama 3 served by TensorFold with named voices (`--voices`): about 21 GB of weights (the
|
|
|
|
| 102 |
silicon (macOS 26, Metal) or about 21 GB on an NVIDIA DGX Spark (CUDA 13). The full Boo stack needs about 79 GB on a Mac
|
| 103 |
(96 GB minimum, 128 GB or more recommended) or about 61 GB on a DGX Spark; see the GitHub README. Software: TensorFold
|
| 104 |
1.1.4 (the prebuilt builds in the GitHub release add NVFP4 pruned Drama 3, the voice-prefix cache and Cosmos3-Edge; the
|
| 105 |
+
DGX Spark's Drama 3 runs on plotarmordev's NVFP4 fork, because stock 1.1.4 refuses the pruned checkpoint; since v0.2.0
|
| 106 |
+
it also has 1.1.4's silence guard flags).
|
| 107 |
|
| 108 |
**Full or Lite.** Boo's optional lite voice, [Kokoro-82M](https://huggingface.co/hexgrad/Kokoro-82M) (hexgrad,
|
| 109 |
Apache-2.0), replaces Drama 3; everything else is the same.
|
|
|
|
| 143 |
curl -fsSL https://raw.githubusercontent.com/drowzeys/keys-ghost-machine-audio-visual-agent/main/install.sh | bash -s -- --voice lite
|
| 144 |
```
|
| 145 |
|
| 146 |
+
Docker on a DGX Spark: `-e VOICE_ENGINE=lite` and no Drama 3 mount, with
|
| 147 |
+
`ghcr.io/drowzeys/keys-ghost-machine-audio-visual-agent:0.2.0` (or `both` for the Full/Lite switch). `--voice both` installs both with a Full/Lite switch in the page; `kgm
|
| 148 |
voice full|lite|both` switches later. Settings, the Docker alternative and uninstalling are in the
|
| 149 |
[One-shot install](https://github.com/drowzeys/keys-ghost-machine-audio-visual-agent#one-shot-install) section of the
|
| 150 |
GitHub README.
|
|
|
|
| 195 |
|
| 196 |
| | DGX Spark, lite | DGX Spark, full | Mac, lite | Mac, full |
|
| 197 |
|---|---|---|---|---|
|
| 198 |
+
| Voice-to-voice, median | **0.33β0.40 s** | 0.55β0.77 s | 0.49β0.64 s | 0.47β0.60 s |
|
| 199 |
| Voice engine memory in use | **β 3.5 GB** | β 42 GB | **β 0.7 GB** | β 10 GB |
|
| 200 |
| Whole stack in use | **β 62 GB** | β 101 GB | **β 55 GB** | β 64 GB |
|
| 201 |
|
|
|
|
| 233 |
```
|
| 234 |
|
| 235 |
Drama 3 sometimes goes quiet after the first sentence of a long line (about 1 in 5 paragraphs, the same input every
|
| 236 |
+
time; [TensorFold#1275](https://github.com/ashhart/TensorFold/issues/1275)). On TensorFold 1.1.4 (and the v0.2.0 DGX
|
| 237 |
+
Spark build) add its silence guard to `serve`: `--silence-floor-dbfs=-30 --silence-seconds=4 --silence-mid-s=2 --silence-mid-min-voiced-s=1
|
| 238 |
--silence-redraws=3 --silence-redraw-budget-s=90`. Whole replies are redrawn; a stream ends at the silence instead, so
|
| 239 |
a streaming client should ask again for the unspoken text, as Boo does.
|
| 240 |
|