Commit Graph

1 Commits

Author SHA1 Message Date
Richard Loyer c332943181 Decoder chraac en sous-process : -20% decoder, -9% pipeline, talker intact
Architecture pour exploiter le gain chraac sans casser le talker :
  - kazeia_decoder_chraac : binaire static contre libqwen3tts-decoder.a chraac
    + ggml chraac statiques (9.8 MB autonome, pas de dép .so chraac).
    Args : <decoder.gguf> <codes.bin> <T> <out.wav>. Lit codes int32 time-major,
    transpose codebook-major, forward, écrit WAV.
  - tts_engine : si KZTTS_DECODER_SUBPROC=path + KZTTS_DECODER_GGUF=path posés,
    fork+execl au lieu de dec.forward intégré. Codes via /data/local/tmp tmpfile,
    WAV via rename. Le talker+CP continuent sur ql/ggml (qualcomm) qui marche.

Mesures Pad3 KZTTS_THREADS=6 GGML_NUM_THREADS=8 seed=42 :

  Phrase 'Bonjour Kazeia' (33 frames) :
    A baseline qualcomm : decoder 3.29s, total 6.61s, RTF 2.40
    B chraac subproc    : decoder 2.63s, total 6.06s, RTF 2.20
    -> decoder -20%, total -8.3%, audio RMS 1743 identique

  Phrase 'Bonsoir, comment tu te sens ce soir ?' (41 frames) :
    A baseline : decoder 3.95s, total 8.16s, RTF 2.39
    B subproc  : decoder 3.15s, total 7.38s, RTF 2.16
    -> decoder -20%, total -9.6%

Audio cohérent au baseline (range, RMS quasi identiques), imperceptible
à l'oreille (cf cas 'Bonsoir' envoyé).

Le gain chraac historique sur decoder seul est désormais accessible SANS
casser le talker.

Code committé opt-in (KZTTS_DECODER_SUBPROC absent par défaut = baseline intact).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-30 18:14:09 +02:00