# Eng Adapt — Chunked ONNX CDN (Kokoro + FuguMT) > Browser TTS + translation models on Cloudflare Pages (fp32, Brotli chunks). ## App - Main app (offline PWA): /index.html - Service Worker: /sw.js - Offline plan: see repo v2/docs/offline-support-plan.md ## Documentation - Integration guide: /HOW_TO_USE.md - Machine-readable manifest: /kokoro-cdn.json - Chunked fetch library: /lib/chunked-model-fetch.js ## Kokoro TTS - model_id: onnx-community/Kokoro-82M-v1.0-ONNX - dtype: fp32 - manifest: /models/onnx-community/Kokoro-82M-v1.0-ONNX/onnx/model.onnx/manifest.json - chunks: 15 (Brotli, 20 MiB each) ## FuguMT translation - model_id: Kadonox/fugumt-en-ja-onnx - dtype: fp32 - license: CC BY-SA 4.0 - models_root: /models - config: /models/Kadonox/fugumt-en-ja-onnx/config.json - encoder manifest: /models/Kadonox/fugumt-en-ja-onnx/onnx/encoder_model.onnx/manifest.json (4 chunks) - decoder manifest: /models/Kadonox/fugumt-en-ja-onnx/onnx/decoder_model_merged.onnx/manifest.json (4 chunks) - compressed total: ~147 MB (encoder ~67 MB + decoder ~79 MB) ## Important warnings 1. ONNX weights are NOT single files. Use manifest.json + part-*.br per logical .onnx path. 2. Concatenate chunks in index order, decompress ONCE (not per-chunk). 3. Use configureHubMirrorChunkedEnv() from /lib/chunked-model-fetch.js with modelsRootUrl = {origin}/models. 4. Do NOT fetch Hugging Face Hub URLs when same-origin models are available. ## Regenerate models ```bash cd v2/cf-pages node scripts/download-models.mjs [kokoro|fugumt|all] node scripts/prepare-public.mjs [kokoro|fugumt|all] ```