docs(frank-tts): the cold-voice ladder did not survive the deployment
The first real boot gave the chance to measure what warming actually buys, and the trial's numbers were wrong: - Empty registry, register only, then time: the FIRST synthesis of a freshly registered voice cost 1 883 ms; the next two 1 283 and 1 226 ms. A ~110-word request cost 9.4 s and then 9.8 s. - So the published 6.2–8.0 s cold / first-audio-byte 5 530 ms / later-requests 0.5 ms ladder does not reproduce, and request time tracks the audio generated rather than snapshot state. The 0.5 ms figure is an internal state-restore cost, never an end-to-end request time. - Warming still earns its place for a different reason than the page claimed: the registry is memory-only and re-registering does not warm, so a boot without the hook leaves the façade answering 400 for every name. The saving is ~0.6 s. Law 1 of [[Frank TTS Engine]] is re-titled the registry law and carries the measured numbers; its example journal line is a real one from today; the troubleshooting row for "first request of the day is slow" — the retired law's symptom — is replaced by the argument-cap fault that actually happened. The same ladder in the research brief is annotated rather than erased, and [[Voice Packs]] step 6 stops claiming the hook registers only packs it has not seen (the engine replaces a name it already holds).
This commit is contained in:
1 parent
4235c1d4cb
commit
0773b26559
4 files changed
+62
-13
No files matched your search
@@ -258,11 +258,17 @@ HTTP path at all — that is what the façade's CLI backend exists for.
|
||||
|
||||
Four laws came out of the trial, each worth a line of configuration:
|
||||
|
||||
- **Boot-warm every voice.** The first request for a registered voice decodes
|
||||
the whole reference to snapshot codec state: 6.2–8.0 s, first audio byte at
|
||||
5,530 ms. Later requests restore that state in 0.5 ms. An engine unit must
|
||||
run one throwaway synthesis per voice at start, or the first request of the
|
||||
day pays five seconds.
|
||||
- **Boot-warm every voice.** The trial measured the first request for a
|
||||
registered voice at 6.2–8.0 s (first audio byte 5,530 ms) and later requests
|
||||
restoring the snapshot in 0.5 ms. **That ladder did not survive deployment:**
|
||||
measured 2026-10-18 on the built container against an empty registry — register,
|
||||
then time — the first synthesis of a freshly registered voice cost **1,883 ms**
|
||||
against **1,226–1,283 ms** for the requests after it, and a ~110-word request
|
||||
cost **9.4 s** then **9.8 s**, so request time tracks the audio generated rather
|
||||
than snapshot state. What still holds is the reason to warm at all: the registry
|
||||
is memory-only and re-registering does not warm, so an engine unit must run one
|
||||
throwaway synthesis per voice at start. It buys registration and about 0.6 s,
|
||||
not five seconds.
|
||||
- **Speaker artifacts are reusable and exact.** `qwen-codec` turns a reference
|
||||
WAV into `.spk` (8,192 B x-vector) + `.rvq` (5,456–6,864 B, 16 codebooks × T,
|
||||
11-bit packed) in 1.8–2.1 s at 1.3–1.5 GiB peak; replaying them yields a
|
||||
|
||||
Reference in new issue
Block a user