La nuova API vocale di Apple contro Whisper: il primo vero benchmark

Apple ha rilasciato SpeechAnalyzer senza alcun dato di accuratezza. Noi lo abbiamo misurato contro l'API che sostituisce e contro Whisper, su 5,559 frasi di test standard, e abbiamo pubblicato ogni singola trascrizione.

Benchmark: la nuova API vocale di Apple contro Whisper

Aggiornamento 2026-07-15: il Round 2 è online: aggiunge NVIDIA Parakeet TDT v2/v3 (il confronto più richiesto dai lettori) e MOSS-Transcribe-Diarize, misurati sullo stesso identico corpus con lo stesso punteggio.

Il risultato, subito

Il nuovo SpeechAnalyzer di Apple è il motore di trascrizione on-device più accurato tra quelli che abbiamo testato. Ha battuto tutti i modelli Whisper che distribuivamo all'epoca, incluso Whisper Small, sia sulla metà pulita che su quella rumorosa di LibriSpeech, girando circa tre volte più veloce di Small. E l'API che sostituisce, SFSpeechRecognizer, è arrivata ultima sul parlato pulito: dietro perfino a Whisper Tiny, un modello da 40MB.

MotoreWER test-cleanWER test-otherDimensione modello
Apple SpeechAnalyzer (iOS/macOS 26)2.12%4.56%di sistema
Whisper Small (WhisperKit CoreML)3.74%7.95%~460MB
Whisper Base5.42%12.51%~140MB
Whisper Tiny7.88%17.04%~40MB
Apple SFSpeechRecognizer (legacy)9.02%16.25%di sistema

Più basso è, meglio è: il WER è il tasso di errore sulle parole, la percentuale di parole che un motore sostituisce, salta o inventa. LibriSpeech test-clean sono 2,620 frasi di parlato letto pulito; test-other sono 2,939 frasi più difficili e rumorose. Ogni motore è girato interamente on-device su un Apple M2 Pro (32GB, macOS 26.5.1).

Apple SpeechAnalyzer2.12%
Whisper Small3.74%
Whisper Base5.42%
Whisper Tiny7.88%
SFSpeechRecognizer (legacy)9.02%

Perché l'abbiamo fatto

Con iOS 26 e macOS 26, Apple ha sostituito SFSpeechRecognizer con una nuova API, SpeechAnalyzer e SpeechTranscriber. Non ha pubblicato dati di accuratezza per nessuna delle due. Così ogni sviluppatore che deve decidere se migrare, e chiunque confronti il riconoscimento integrato di Apple con Whisper, finora ha tirato a indovinare.

Al momento di questo benchmark distribuivamo entrambi i motori Apple e tre modelli Whisper fianco a fianco dentro Lyonesse, un ambiente di lavoro con IA privata che gira interamente on-device. Questo ci metteva in una posizione insolita: potevamo far girare tutti e cinque i motori attraverso gli stessi identici percorsi di codice di produzione, sulla stessa macchina e sullo stesso audio. E così abbiamo fatto.

Conviene migrare da SFSpeechRecognizer?

Sì. È il risultato più netto di tutti i dati. La nuova API taglia il tasso di errore di 3.5–4 volte sullo stesso audio: dal 9.02% al 2.12% sul parlato pulito, e dal 16.25% al 4.56% su quello rumoroso. Non c'è nessun compromesso di accuratezza da soppesare: la nuova API vince ovunque abbiamo misurato, e produce testo con punteggiatura e maiuscole dove l'output del motore legacy è molto più grezzo.

Detto altrimenti: le note di una riunione di un'ora trascritta con la vecchia API contengono circa quattro volte più parole sbagliate della stessa riunione passata per SpeechAnalyzer. Se la tua app usa ancora SFSpeechRecognizer per qualcosa di più lungo di un comando vocale, la migrazione vale la pena già solo per l'accuratezza.

SpeechAnalyzer vs Whisper

Il risultato più sorprendente: il nuovo motore di Apple ha battuto anche Whisper Small, il modello più grande che distribuivamo, con un margine comodo su entrambi gli split, e con circa un terzo del tempo di calcolo di Whisper Small per secondo di audio. Per l'inglese, su hardware Apple, il motore integrato è ora la migliore opzione on-device che riusciamo a misurare.

Whisper conserva due vantaggi reali. Copre molte più lingue (SpeechTranscriber supporta circa 30 lingue) e gira ovunque, non solo su piattaforme Apple con OS 26. Ma per la trascrizione in inglese su un iPhone o Mac recente, l'epoca in cui Whisper era la scelta automatica per l'accuratezza è finita.

Su questo risultato abbiamo cambiato il nostro stesso prodotto: il motore Auto di Lyonesse ora preferisce SpeechAnalyzer per le lingue che supporta. (Ed è andato oltre dopo il round 2: dalla versione 1.8.9 di Lyonesse i modelli Whisper sono stati ritirati del tutto, sostituiti da NVIDIA Parakeet come motore di riserva.) Pubblicare un benchmark e ignorarlo nelle proprie impostazioni predefinite sarebbe una strana forma di onestà.

Velocità

Tutti e cinque i motori sono girati ampiamente più veloci del tempo reale: tra circa 12x e 40x sull'M2 Pro, il che significa che un'ora di audio si trascrive in circa 1.5–5 minuti on-device. SpeechAnalyzer è stato circa 3x più veloce di Whisper Small per secondo di audio, battendolo al tempo stesso in accuratezza. Stiamo deliberatamente evitando di pubblicare per ora una tabella precisa dei tempi per motore: le misurazioni di accuratezza hanno condiviso la macchina con un carico di sviluppo, cosa che non tocca il WER ma aggiunge rumore ai tempi. Aggiorneremo questa pagina con i tempi di una sessione dedicata a macchina scarica.

Metodologia, e perché puoi verificarla

Un benchmark pubblicato da un'azienda che vende uno dei motori va trattato con sospetto. Il nostro ha due proprietà pensate esattamente per quel sospetto.

La colonna Whisper è riproducibile contro i numeri di OpenAI

Abbiamo usato LibriSpeech proprio perché OpenAI ha pubblicato i WER di Whisper su quel corpus. Se il nostro harness ha misurato Whisper correttamente, i nostri numeri devono cadere sui loro. E ci cadono, su tutte e sei le misurazioni:

Motore / splitI nostriPubblicati da OpenAIDelta
Whisper Tiny, test-clean7.88%7.6%+0.28
Whisper Base, test-clean5.42%5.0%+0.42
Whisper Small, test-clean3.74%3.4%+0.34
Whisper Tiny, test-other17.04%16.9%+0.14
Whisper Base, test-other12.51%12.4%+0.11
Whisper Small, test-other7.95%7.6%+0.35

Il piccolo scostamento positivo e costante (un normalizzatore di testo un filo più severo, più la quantizzazione CoreML) è esattamente l'aspetto di una riproduzione onesta; un errore casuale si disperderebbe in entrambe le direzioni. Poiché lo stesso corpus, lo stesso normalizzatore e lo stesso scorer hanno prodotto le colonne Apple, i numeri che nessun altro può verificare ereditano la validazione da quelli che chiunque può verificare.

Le trascrizioni grezze sono pubbliche

Ogni ipotesi per singola frase di entrambi i motori Apple è scaricabile qui sotto, accanto al testo di riferimento e al WER per frase. Non sei d'accordo con la nostra normalizzazione? Ricalcola i punteggi tu stesso.

I dettagli che decidono se un numero di WER significa qualcosa

  • Stessi percorsi di codice di produzione. Ogni motore è girato attraverso esattamente il codice che ricevono gli utenti di Lyonesse, non un harness da laboratorio con buffering o impostazioni diversi.
  • Normalizzazione del testo. I riferimenti di LibriSpeech sono in maiuscolo, senza punteggiatura e con i numeri scritti in lettere; i motori moderni emettono punteggiatura e cifre. Entrambi i lati passano per lo stesso normalizzatore (maiuscole, punteggiatura, cifre in lettere, contrazioni), che rispecchia il normalizzatore inglese di OpenAI. Valutare il testo grezzo significa penalizzare i motori perché formattano bene, non perché capiscono male.
  • WER di corpus, non media dei WER. Errori totali divisi per il totale delle parole di riferimento, così le frasi corte non pesano più del dovuto.
  • Interamente on-device, verificato. Per impostazione predefinita SFSpeechRecognizer invia l'audio ai server di Apple. Abbiamo forzato il riconoscimento on-device e fatto in modo che l'harness si rifiutasse di partire piuttosto che ripiegare silenziosamente sul cloud: sia perché un risultato cloud avrebbe invalidato il confronto, sia perché non avremmo mai caricato 5,559 frasi da un prodotto costruito sulla privacy.
  • Errori conteggiati, non nascosti. Un motore che non restituisce nulla prende il 100% di WER su quella frase. È successo una volta su 27,795 trascrizioni (legacy, test-other).

Cosa ci ha insegnato sulla nostra stessa app

Il benchmark ha trovato un bug in produzione dentro Lyonesse. La nostra importazione di file con motore Apple passava l'audio a SpeechAnalyzer e chiudeva lo stream di input, ma non chiamava mai finalizeAndFinishThroughEndOfInput(). Senza quella chiamata l'analizzatore non consegna mai i risultati finali, e l'importazione resta appesa per sempre. Era passato inosservato perché la nostra impostazione Auto preferiva Whisper. La correzione è uscita lo stesso giorno, ed è parte del motivo per cui pubblichiamo i dettagli dell'harness: misurare con cura il proprio prodotto ha il vizio di trovare le cose che non stavi cercando.

Limiti

  • Solo inglese. LibriSpeech è parlato letto in inglese. Questi numeri non dicono nulla sulle 100+ lingue che Whisper supporta e SpeechTranscriber no.
  • Audiolibri letti, non riunioni. LibriSpeech è il corpus standard e confrontabile, ed è per questo che siamo partiti da lì. Audio con accenti, microfoni lontani e più parlanti in riunione è il seguito ovvio.
  • Una sola macchina. M2 Pro, macOS 26.5.1. L'accuratezza dovrebbe trasferirsi su tutto Apple Silicon; la velocità varierà da chip a chip.
  • Whisper via WhisperKit CoreML. Conversioni quantizzate on-device, le stesse build che Lyonesse distribuiva all'epoca (dalla 1.8.9 l'app include invece NVIDIA Parakeet). Le implementazioni di riferimento su GPU possono differire leggermente, ed è esattamente ciò che la tabella di validazione quantifica.

Cosa significa se vuoi semplicemente una buona trascrizione

Se hai un iPhone o un Mac recente, il miglior motore di trascrizione on-device per l'inglese è già dentro il sistema operativo, e l'opzione privata — l'IA offline — non è più l'opzione di compromesso. Che tu debba trascrivere una registrazione vocale, le note di una riunione o una lezione, Lyonesse usa esattamente i motori misurati qui: la pipeline di registrazione, trascrizione e riassunti gira al 100% on-device, senza alcun fornitore cloud di trascrizione — SpeechAnalyzer dove supporta la tua lingua e, dalla 1.8.9, NVIDIA Parakeet al posto dei modelli Whisper misurati in questo articolo. Il benchmark non è una cosa separata dal prodotto: è il modo in cui decidiamo cosa fa il prodotto.

Letture correlate