Research 2026-10-17 (scouts SpeachesDeploy + TtsLandscape2026, live fleet census).
Goal
Custom (cloned) voice for the omp tts tool, fully local, zero production impact.
Why not the alternatives
Upstream Speaches: Kokoro+Piper only, no cloning (stalled since v0.9.0-rc.3). openedai-speech archived 2026-01-04; XTTS-v2 = 920 Elo graveyard + CPML non-commercial weights.
GPU slots measured empty: 3090 22752/24576 MiB (frank-zealot); 2× R9700 ~33.9/34.2 GB each (frank-archon). Qwen3-TTS 1.7B + vLLM-Omni (the only true /v1/audio/voices clone registry) is the GPU endgame when a card frees.
llama.cpp-omnillama-tts-server DOES expose OpenAI /v1/audio/speech but voice= is reserved; cloning needs per-request reference_audio (base64 WAV) — invisible to the omp tts schema → needs a ~30-line voice-registry shim (voice name → stored ref wav → inject reference_audio).
Scope
Build llama.cpp-omni (llama-tts-server target) on Dankclaw; GGUFs from openbmb/VoxCPM2 (Apache-2.0): BaseLM-F16 ~3 GB (Q8_0 ~1.5 GB) + Acoustic-F16 1.83 GB.
Quadlet podman service :8880 on Dankclaw (CPU; unified memory, ~19 Gi available + reclaimable cache, 439 GB disk free).
Voice shim :8890: voice=<name> → reference_audio from voices/<name>.wav; clone registration = drop a WAV.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Research 2026-10-17 (scouts SpeachesDeploy + TtsLandscape2026, live fleet census).
Goal
Custom (cloned) voice for the omp
ttstool, fully local, zero production impact.Why not the alternatives
openedai-speecharchived 2026-01-04; XTTS-v2 = 920 Elo graveyard + CPML non-commercial weights./v1/audio/voicesclone registry) is the GPU endgame when a card frees.llama.cpp-omnillama-tts-serverDOES expose OpenAI/v1/audio/speechbutvoice=is reserved; cloning needs per-requestreference_audio(base64 WAV) — invisible to the omp tts schema → needs a ~30-line voice-registry shim (voice name → stored ref wav → injectreference_audio).Scope
llama-tts-servertarget) on Dankclaw; GGUFs from openbmb/VoxCPM2 (Apache-2.0): BaseLM-F16 ~3 GB (Q8_0 ~1.5 GB) + Acoustic-F16 1.83 GB.:8880on Dankclaw (CPU; unified memory, ~19 Gi available + reclaimable cache, 439 GB disk free).:8890:voice=<name>→reference_audiofromvoices/<name>.wav; clone registration = drop a WAV.models.yml: providerapi: openai-speech,auth: none, baseUrlhttp://192.168.0.143:8890/v1;modelRoles.speech→ it;retry.fallbackChains.speechkeepslocal/kokoro.Acceptance
omp
ttscall withvoice=frankreturns a WAV audibly resembling the reference; stock kokoro fallback still resolves.Refs: full landscape report
tts-landscape-report.md(session memory dir).Moved to dank/serverAppConfigs#2 — fleet infrastructure belongs in serverAppConfigs, not agent config.