diff --git a/docs/superpowers/specs/2026-08-23-zonza-multiplateforme-design.md b/docs/superpowers/specs/2026-08-23-zonza-multiplateforme-design.md index f9e7108..da2bcc4 100644 --- a/docs/superpowers/specs/2026-08-23-zonza-multiplateforme-design.md +++ b/docs/superpowers/specs/2026-08-23-zonza-multiplateforme-design.md @@ -67,13 +67,28 @@ sinon → faster-whisper CPU La **décision** est une fonction pure recevant `(plateforme, processeur, cuda_disponible)` ; l'**interrogation** de la machine est séparée. Les quatre configurations sont donc testables depuis un seul Mac. -| Configuration | Moteur | Modèle | Latence | -|---|---|---|---| -| Mac Apple Silicon | MLX | `whisper-medium` | ~1,3 s (mesuré) | -| Windows + NVIDIA | faster-whisper CUDA | `medium` float16 | 1–2 s (**à mesurer**) | -| Mac Intel · Windows CPU | faster-whisper CPU | `small` int8 | 3–8 s (**à mesurer**) | +**Mesuré le 2026-08-23** — trois échantillons, amorce de vocabulaire active, sur le CPU d'un Apple Silicon : -`medium` est écarté sur CPU : 15 à 30 s tuerait l'usage. +| Moteur et modèle | Latence | Termes techniques | Taille | +|---|---|---|---| +| faster-whisper `base` int8 CPU | 0,52 s | 10/13 | 142 Mo | +| faster-whisper `small` int8 CPU | 1,42 s | 11/13 | 464 Mo | +| faster-whisper `medium` int8 CPU | 4,40 s | **13/13** | 1460 Mo | +| MLX `medium` GPU *(moteur actuel)* | 0,75 s | 11/13 | 489 Mo | + +🔴 **Ces chiffres démentent l'estimation initiale de cette spec**, qui annonçait 15 à 30 s pour `medium` sur CPU et l'écartait d'avance. C'est 4,4 s. Et `faster-whisper medium` sur CPU est **plus juste que le moteur GPU en service** (13/13 contre 11/13). + +Choix retenus dans `core.MODELES_PAR_MOTEUR` : + +| Configuration | Moteur | Modèle | +|---|---|---| +| Mac Apple Silicon | MLX | `mlx-community/whisper-medium` | +| Windows + NVIDIA | faster-whisper CUDA | `Systran/faster-whisper-medium` | +| Mac Intel · Windows CPU | faster-whisper CPU | `Systran/faster-whisper-small` | + +⚠️ **Réserve sur le CPU** : les 4,4 s de `medium` ont été mesurées sur un CPU Apple Silicon, rapide. Un CPU Intel ou Windows peut demander trois à quatre fois plus. D'où `small` par défaut — même précision (11/13) que le MLX utilisé aujourd'hui, pour 1,4 s ici. **La commande de diagnostic mesurera la machine réelle et pourra promouvoir `medium`.** + +`CONFIG["model"]`, désormais à `None`, force manuellement le modèle et prime sur la table. **Première étape de l'implémentation : mesurer réellement les deux dernières lignes.** Le 2026-08-21, une mesure analogue a renversé l'intuition — `large-v3-turbo` s'est révélé PIRE que `medium`. @@ -151,7 +166,7 @@ Le périmètre dépasse un seul plan. Quatre étapes, chacune livrable et vérif **Étape 1 — Extraire les contrats.** Créer `moteur/`, `interface/`, `systeme/` ; y déplacer le code Cocoa **sans le modifier** ; faire passer `controller.py` par les contrats. Aucun changement de comportement : les 80 tests actuels doivent rester verts, et Zonza fonctionner à l'identique sur le Mac. C'est l'étape qui dé-risque toutes les suivantes. -**Étape 2 — Moteur interchangeable.** Ajouter `faster-whisper`, la détection pure, et **mesurer** les latences réelles CPU. Vérifiable immédiatement sur le Mac, en forçant le moteur CPU. +**Étape 2 — Moteur interchangeable.** ✅ **Fait le 2026-08-23** (`2ccb614`, 115 tests) : `moteur/faster.py`, table `MODELES_PAR_MOTEUR`, forçage manuel, et les mesures ci-dessus. **Étape 3 — Interface Qt.** Rejouer la suite de contrat de l'overlay contre l'implémentation Qt. Vérifiable sur le Mac : Qt y tourne aussi, ce qui permet de comparer les deux overlays côte à côte.