Go to file
Richard Loyer 2e0b145b51 chantier B TTS #3: orchestration ggml-side bit-exact + WAV E2E sur tablette
Le binaire dist/jni/tts_orchestrate.cpp boucle :
  prefill talker (talker_f32.gguf via engine) -> greedy CB0 depuis logits engine
  -> CB1..15 teacher-forces depuis codes_golden (CP non encore integre, mais
     deja valide bit-exact standalone)
  -> next_embed = talker.tok_embd[CB0] + sum_i cp_codec_embs[i-1, CB(i)] + tts_pad
  -> talker.decodeEmbed(next_embed) -> repeat
  -> dump codes_engine [N=26, 16] sur disque

Resultats end-to-end ('Bonjour je m'appelle Kazeia', N=26 frames, ~2.08s audio) :
  pipeline ggml-side sur tablette (talker engine + decoder existant) :
  - codes engine vs codes Python : 7/26 frames divergent (CB0 only) = sampling
    stochastique Python (subtalker_dosample temp=0.9) vs greedy engine. Attendu.
  - next_embed engine vs step_inputs_py: rmse=0 cos=1.000 a chaque step ou
    CB0 matche -> orchestration sum+pad strictement bit-exact.
  - WAV decoder tablet sur codes_golden vs PY_REF : cos=0.999999, rmse=3.9e-5
    (juste du noise int16 quantization, bit-exact pratique).
  - WAV decoder tablet sur codes_engine vs PY_REF : cos=0.999200, rmse=3.8e-3
    -> divergence audio uniquement du sampling, son audible et coherent.
  - WAV tablet vs host (memes codes) : cos=1.000000 -> decoder ggml deterministe.

Le seul ecart restant (cos=0.9992 engine vs PY_REF) est purement strategique
(sampling vs greedy), pas implementation. Engine ggml-side prouve fonctionnel.

Reste pour P3 finition (sessions suivantes) :
- Integrer le vrai CP runner (cp_runner.cpp) -> remplace teacher-forcing CB1..15
- Speaker Encoder x-vector (8.9M params) OU pre-calcul offline
- BPE tokenizer Qwen3-TTS + text_projection -> production prefill_embeds depuis texte FR
- Assemblage final en JNI (libkazeia_tts ?) utilisable depuis l'app Kotlin

Dump tools: /opt/Kazeia/tts_talker_dump/dump_talker.py (step I/O + logits)
            /opt/Kazeia/tts_talker_dump/dump_talker2.py (pad/bos/eos/codes/tables)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 14:25:18 +02:00
.claude Rapport R&D complet: synthese session, perf, cascade, #277, briques, reste a faire 2026-05-25 22:27:34 +02:00
dist chantier B TTS #3: orchestration ggml-side bit-exact + WAV E2E sur tablette 2026-05-28 14:25:18 +02:00
docs GDN chunkwise P1.2: VTCM state prefill=neutre, prouve compute-bound 3S2/tok -> gain=WY matmul (palier dur). oracle 28/28, pp98 2026-05-26 16:30:08 +02:00
eval eval: verdict (assisté, à valider) -> ship Qwen3.5-lmq4 2026-05-26 23:23:00 +02:00
ql@6e0edba837 ql: bump pour qwen3 dense IMROPE (ql:6e0edba) 2026-05-28 13:54:27 +02:00
.gitignore eval: kit qualité A/B aveugle Qwen3.5-lmq4 vs dense (decode CPU, template, reasoning off) 2026-05-26 22:24:23 +02:00
CHANTIER_HMX_DENSE.md chantier dense-HMX #4: 0x2e décodé = AEE_ECONNRESET (reset watchdog CDSP), pas une corruption de valeurs 2026-05-27 19:20:28 +02:00
CLAUDE.md R&D: battre pte=lm_head HMX INT4+spec decode+ctx binary; mur=lm_head CPU 2026-05-25 18:46:28 +02:00
RAPPORT_RD.md RAPPORT §7: piste kernel GDN fermee — GDN-compute != goulot prefill (fork ql) 2026-05-26 21:46:05 +02:00
c4.sh Dist Kazeia-Engine: libs arm64+headers+JNI bridge+INTEGRATION/TTS doc; STT reste ORT 2026-05-24 21:55:01 +02:00
casc.sh Dist Kazeia-Engine: libs arm64+headers+JNI bridge+INTEGRATION/TTS doc; STT reste ORT 2026-05-24 21:55:01 +02:00
casc2.sh Dist Kazeia-Engine: libs arm64+headers+JNI bridge+INTEGRATION/TTS doc; STT reste ORT 2026-05-24 21:55:01 +02:00
casc3.sh Dist Kazeia-Engine: libs arm64+headers+JNI bridge+INTEGRATION/TTS doc; STT reste ORT 2026-05-24 21:55:01 +02:00
cascade_test.sh Dist Kazeia-Engine: libs arm64+headers+JNI bridge+INTEGRATION/TTS doc; STT reste ORT 2026-05-24 21:55:01 +02:00
cf.sh Dist Kazeia-Engine: libs arm64+headers+JNI bridge+INTEGRATION/TTS doc; STT reste ORT 2026-05-24 21:55:01 +02:00
qcmp.sh Dist Kazeia-Engine: libs arm64+headers+JNI bridge+INTEGRATION/TTS doc; STT reste ORT 2026-05-24 21:55:01 +02:00
spk.sh Dist Kazeia-Engine: libs arm64+headers+JNI bridge+INTEGRATION/TTS doc; STT reste ORT 2026-05-24 21:55:01 +02:00