A chaque moteur son modele, et un forcage manuel
app.py passait CONFIG["model"] — un depot MLX — quel que soit le moteur detecte. Sur une machine sans Apple Silicon, faster-whisper aurait recu un depot qu'il ne sait pas charger. Le defaut etait invisible ici, la detection rendant toujours "mlx" sur ce Mac : aucun test ne pouvait le voir. MODELES_PAR_MOTEUR associe chaque moteur a son depot. Les valeurs viennent de la mesure du jour (trois echantillons, amorce active, CPU Apple Silicon) : faster-whisper base 0,52 s 10/13 termes techniques 142 Mo faster-whisper small 1,42 s 11/13 464 Mo faster-whisper medium 4,40 s 13/13 1460 Mo MLX medium (GPU) 0,75 s 11/13 489 Mo Le GPU vise donc la precision (medium, 13/13, il absorbe le cout) ; le CPU vise la latence (small, 11/13 — AUTANT que le MLX utilise aujourd'hui — pour 1,4 s). `medium` sur CPU serait plus juste, mais ces 4,4 s sont celles d'un CPU Apple Silicon : sur un CPU Intel ou Windows, le meme modele peut demander trois a quatre fois plus. La commande de diagnostic mesurera la machine reelle et pourra promouvoir `medium`. CONFIG["model"] passe a None et devient un FORCAGE manuel qui prime sur la table, au lieu d'un reglage mort qu'on modifie sans effet. 115 tests. Comportement inchange sur ce Mac : moteur mlx, modele identique. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -29,7 +29,7 @@ from PyObjCTools import AppHelper
|
||||
from pynput import keyboard
|
||||
|
||||
from controller import ZonzaController
|
||||
from core import CONFIG, validate_config
|
||||
from core import CONFIG, modele_retenu, validate_config
|
||||
from interface import classe_overlay_pour
|
||||
from moteur import choisir_transcripteur, detecter_moteur
|
||||
from systeme import choisir_systeme
|
||||
@@ -141,9 +141,10 @@ def main():
|
||||
return
|
||||
main._lock = lock # garder le verrou vivant tant que le process vit
|
||||
validate_config(CONFIG)
|
||||
moteur = detecter_moteur()
|
||||
transcripteur = choisir_transcripteur(
|
||||
nom=detecter_moteur(),
|
||||
modele=CONFIG["model"],
|
||||
nom=moteur,
|
||||
modele=modele_retenu(moteur, CONFIG["model"]),
|
||||
langue=CONFIG["language"],
|
||||
amorce=CONFIG["initial_prompt"],
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user