Nouveautés

v1.1.0

Le SpeechAnalyzer de macOS 26 fait son entrée.

macOS 26 apporte un nouveau moteur : SpeechAnalyzer / SpeechTranscriber, entièrement local, sans réseau, sans envoi de données, sans facturation. La qualité de reconnaissance approche celle des grands modèles Whisper, avec de nets progrès en champ lointain et en environnement bruyant ; la limite de 60 secondes par session de SFSpeechRecognizer disparaît, vous pouvez parler plusieurs minutes d’affilée. Le premier résultat apparaît moins d’une seconde après l’appui sur le raccourci, et le texte s’allonge au fil de la parole.

Les réglages passent à un sélecteur segmenté à deux options : « macOS 26 (Nouveau) » ou « Classique », avec en dessous la configuration correspondante (état du modèle pour le nouveau moteur, interrupteur « Sur l’appareil uniquement » pour le classique). Sur macOS 26 et versions ultérieures, le parcours d’accueil recommande le nouveau moteur par défaut. Le sélecteur de langue ne liste que les langues réellement prises en charge par le moteur actif, pour éviter qu’une langue non prise en charge ne fasse planter le framework ; changer de langue libère automatiquement le préchauffage de l’ancienne et réserve la nouvelle, que le prochain enregistrement utilise directement.

Le modèle est géré par le système : la taille de l’app n’augmente pas et la mémoire n’est pas sollicitée. La première utilisation d’une langue télécharge automatiquement quelques centaines de Mo ; la fenêtre flottante affiche alors en bleu « Téléchargement du modèle vocal X %… » (au moins 3 secondes, pour avoir le temps de le lire), après quoi le modèle est partagé par toutes les apps.

Plusieurs plantages sont corrigés : initialiser SpeechTranscriber sur une langue non prise en charge déclenchait un fatalError interne au framework ; le routage des tokens perdait des résultats faute d’avoir enregistré le délégué ; réutiliser la même instance d’une session à l’autre provoquait des conflits d’état du worker — elle est désormais recréée à chaque fois.