Quando trascrivi un’intervista o una riunione con più persone, sapere chi ha detto cosa è fondamentale. Whisper Notes esegue il riconoscimento vocale e la diarizzazione (il riconoscimento dei parlanti) offline, sul tuo iPhone o Mac. Ogni modello che integriamo deve quindi trovare un equilibrio tra precisione e velocità, e per noi la precisione è sempre stata la priorità. Di recente abbiamo sostituito il modello di diarizzazione integrato, pyannote community-1, con Nemotron 3 Diarization di NVIDIA e li abbiamo confrontati su 122 registrazioni pubbliche con un numero di parlanti compreso tra uno e dodici: il tasso di errore di diarizzazione (DER) è sceso dal 16,0% al 9,9%.
Nemotron 3 riduce il tasso di errore di diarizzazione dal 16,0% al 9,9%
Il tasso di errore di diarizzazione (DER) somma tre tipi di errore, misurati in tempo di parlato: parlato attribuito alla persona sbagliata, parlato che il modello non ha rilevato e rumore scambiato per parlato. È la metrica standard della diarizzazione. Nella tabella compare accanto ai problemi che gli utenti notano di più, alla velocità e alla memoria richiesta dai due modelli su Mac e iPhone.
| pyannote community‑1 | Nemotron 3 | |
|---|---|---|
| Tasso di errore di diarizzazione, 122 registrazioni | 16,0% | 9,9% |
| Numero di parlanti corretto | 52% delle registrazioni | 80% delle registrazioni |
| Parlato attribuito alla persona sbagliata | 4,5% | 1,0% |
| 1 ora di audio su un Mac (M5) | circa 22 s | circa 8,5 s |
| Memoria su Mac | 0,88 GB | 0,12 GB |
| Registrazione di 55 minuti su iPhone 15 | circa 27 s | circa 12 s |
| Memoria aggiuntiva su iPhone 15 | circa 830 MB | circa 30 MB |
| Numero massimo di parlanti | Nessun limite fisso (fino a 10 nell’app) | 8 |
Qui e in tutte le tabelle e i grafici seguenti, il verde indica il valore migliore quando la differenza supera il margine d’errore: per la precisione, un intervallo al 95% che esclude lo zero; per velocità e memoria, uno scarto molto più ampio della variabilità tra un’esecuzione e l’altra. Tassi di errore: più sono bassi, meglio è. Le righe sulla precisione si basano su 122 registrazioni pubbliche (25 ore, in inglese e cinese). Velocità e memoria si riferiscono a entrambi i modelli eseguiti tramite Core ML, con Nemotron 3 sul Neural Engine; i tempi su Mac misurano solo l’elaborazione, quelli su iPhone vanno dall’avvio del rilevamento al risultato.
Il calo non è merito di poche registrazioni. Il grafico mostra la variazione su ciascuna delle 122 registrazioni, dal calo maggiore all’aumento maggiore:
Ogni barra è una registrazione e mostra di quanti punti è cambiato il suo tasso di errore con Nemotron 3: sotto lo zero è sceso, sopra lo zero è salito.
Nemotron 3 va peggio in tre casi: registrazioni con più di otto parlanti, registrazioni con un solo parlante e cambi di paragrafo a metà frase.
Gli scambi di parlante quasi scompaiono: 4,5% → 1,0%
Dei tre tipi di errore, il parlato attribuito alla persona sbagliata è quello che chi legge nota per primo: le parole sono giuste, ma il nome è sbagliato. Con Nemotron 3 questo errore quasi scompare, e cala anche il parlato non rilevato.
Media sulle 122 registrazioni, in percentuale del tempo di parlato; in ogni riga entrambe le barre partono da zero. Il calo del parlato attribuito alla persona sbagliata e quello del parlato non rilevato superano il margine d’errore. La differenza sul rumore scambiato per parlato rientra nel margine, per questo quella barra è grigio chiaro. I valori sono arrotondati, quindi la somma può non coincidere esattamente con il totale.
Numero di parlanti corretto nell’80% delle registrazioni (prima nel 52%)
Se un modello trova troppo pochi parlanti, vuol dire che ha fuso due voci in una: gli interventi di due persone finiscono sotto la stessa etichetta. Era l’errore più frequente di pyannote community-1, e Nemotron 3 lo commette molto più di rado.
Numero di parlanti trovato da ciascun modello, confrontato con quello reale, sulle 122 registrazioni. pyannote community-1 tendeva a trovarne troppo pochi. Nemotron 3 indovina più spesso e, quando sbaglia, sbaglia per eccesso tanto spesso quanto per difetto.
Meglio su riunioni, trasmissioni e registrazioni da due a otto parlanti
La difficoltà cambia molto da una registrazione all’altra: le riunioni registrate con un microfono a distanza sono le più difficili, le trasmissioni le più facili. Suddividendo le registrazioni per tipo, lingua e numero di parlanti, ogni gruppo con almeno dieci registrazioni ha un tasso di errore più basso; nel gruppo con un solo parlante la differenza rientra nel margine d’errore. Le tre registrazioni da nove a dodici parlanti sono peggiorate, ma sono troppo poche per una verifica statistica.
In ogni gruppo entrambe le barre partono da zero: grigio per pyannote community-1, verde per Nemotron 3; il numero alla fine di ogni barra è il tasso di errore medio. Il verde indica un calo oltre il margine d’errore, il grigio chiaro una differenza entro il margine, l’ambra un aumento. Le 6 conference call sui risultati finanziari rientrano nei totali, ma sono troppo poche per formare un gruppo a sé.
Sistemare una trascrizione: le correzioni manuali ogni 10 minuti scendono da 28,9 a 18,9
In pratica, il tasso di errore si traduce in lavoro: il numero di unioni, divisioni e cambi di parlante necessari per rendere corretta la vista dei parlanti. Abbiamo contato il numero minimo di queste correzioni su 4 registrazioni a due voci per cui esiste una trascrizione di riferimento parola per parola (2 in olandese, 1 in cinese, 1 in finlandese). Un altro errore che salta all’occhio è la frase di una persona divisa tra due parlanti. Su 12 riunioni in inglese registrate con un microfono a distanza, entrambi i modelli lo fanno di rado, e la differenza rientra nel margine d’errore.
| pyannote community‑1 | Nemotron 3 | |
|---|---|---|
| Correzioni manuali ogni 10 minuti, 4 registrazioni a due voci | 28,9 | 18,9 |
| Frase divisa tra due parlanti, 12 riunioni in inglese | 0,58% delle frasi | 0,88% delle frasi |
Il numero di correzioni manuali si basa su sole 4 registrazioni, troppo poche per un test statistico o una conclusione generale. Una frase divisa è una frase pronunciata da una sola persona il cui testo è finito nei paragrafi di due parlanti.
Nemotron 3 è più veloce e usa meno di un settimo della memoria
Quando il modello gira sul dispositivo, velocità e memoria contano quanto la precisione. La tabella riporta il tempo di elaborazione e la memoria di entrambi i modelli eseguiti tramite Core ML, con Nemotron 3 sul Neural Engine. Su tutti i dispositivi che abbiamo provato, Nemotron 3 è più veloce e usa molta meno memoria, il che conta soprattutto sugli iPhone meno recenti con 4 GB di memoria.
| pyannote community‑1 | Nemotron 3 | |
|---|---|---|
| Mac (M5) | ||
| 1 ora di audio | circa 22 s | circa 8,5 s |
| Memoria | 0,88 GB | 0,12 GB |
| iPhone 15 | ||
| Registrazione di 55 minuti | 26,6 s | 11,8 s |
| Memoria aggiuntiva durante il rilevamento | 833 MB | 30 MB |
| iPhone 12 mini | ||
| Registrazione di 55 minuti | 30,1 s | 17,2 s |
| Picco di memoria dell’app durante il rilevamento | 638 MB | 71 MB |
Mediana di più esecuzioni (pyannote community-1 è stato eseguito una sola volta su iPhone 15), tutte sulla stessa conference call di 55 minuti sui risultati finanziari, con 10 parlanti. Entrambi i modelli girano tramite Core ML, Nemotron 3 sul Neural Engine. I tempi su Mac misurano solo l’elaborazione, senza decodifica dell’audio né caricamento del modello. I tempi su iPhone vanno dall’avvio del rilevamento al risultato e includono il caricamento del modello e, per pyannote community-1, la post-elaborazione fornita con il modello. I telefoni erano collegati via USB e ogni esecuzione partiva a telefono freddo.
La prima volta che Core ML esegue un modello sul Neural Engine, lo compila per quel dispositivo: circa 7 secondi su un Mac e circa un minuto su un iPhone 15. In seguito, caricare il modello richiede una frazione di secondo.
Dove pyannote community-1 resta migliore
- Più di otto parlanti. Nemotron 3 etichetta al massimo otto persone; sulle nostre 3 registrazioni da nove a dodici parlanti è andato peggio di pyannote community-1 in 2.
- Un solo parlante. Su 14 registrazioni con un solo parlante, Nemotron 3 ha trovato parlanti in più in 5, pyannote community-1 in 1.
- Cambi di paragrafo a metà frase. In 12 riunioni in inglese, il 25,8% dei cambi di paragrafo cadeva a metà frase, contro il 14,6% con pyannote community-1.
Consigli per ottenere il massimo da Nemotron 3 in Whisper Notes
- Imposta il numero di parlanti quando lo conosci. Sulle 108 registrazioni con due o più parlanti, indicare il numero a Nemotron 3 ha corretto il conteggio dei parlanti in 15 casi e in nessun caso l’ha reso errato, senza una variazione netta del tasso di errore (+0,16 punti, entro il margine).
- Se parla una sola persona, salta il rilevamento dei parlanti. Così eviti il “secondo parlante” che a volte compare.
- Con più di otto parlanti, considera le etichette una prima bozza. Unisci e rinomina i parlanti nella vista dei parlanti dove serve.
Impostare il numero di parlanti da Not right? nella vista dei parlanti su Mac
Il rilevamento dei parlanti funziona allo stesso modo su iPhone e Mac, interamente sul tuo dispositivo. Per sapere come usarlo nell’app, vedi Whisper Notes ora riconosce i parlanti.
Come funzionano: pyannote divide e raggruppa, Nemotron 3 numera i parlanti nell’ordine in cui prendono la parola
pyannote community-1 è una pipeline in tre fasi. Divide l’audio in finestre di 10 secondi e trova chi parla in ciascuna (fino a 3 persone per finestra, fino a 2 nello stesso istante). Poi estrae un’impronta vocale, o embedding, per ogni segmento di parlato. Infine il clustering VBx raggruppa le impronte simili in parlanti. I numeri dei parlanti dentro una finestra valgono solo per quella finestra, quindi il numero totale di parlanti si stabilisce solo nell’ultima fase.
Nemotron 3 Diarization è un singolo modello: un encoder Transformer a 31 strati che valuta otto tracce di parlante in ogni istante. Ogni traccia viene valutata per conto suo, quindi quando più persone parlano insieme sono attive più tracce. Segue l’approccio Sortformer di NVIDIA e numera le tracce in base al momento in cui ogni persona parla per la prima volta. Chi parla per primo è sempre sulla traccia 1, così il modello non deve mai indovinare a quale posizione appartenga una voce. Nella modalità streaming descritta nella scheda del modello, una cache dei parlanti tenuta in ordine di arrivo ricorda i parlanti precedenti, così un segmento successivo può essere associato allo stesso numero.
Ogni approccio ha il suo limite. pyannote community-1 non ha un limite fisso di parlanti, ma separa al massimo due persone nello stesso istante. Nemotron 3 può etichettare più persone che parlano insieme, ma ha otto tracce, quindi trova al massimo otto parlanti.
Gli schemi sono semplificati. pyannote community-1: circa 21 MB in Whisper Notes, CC BY 4.0 (scheda del modello); modello di segmentazione di Plaquet e Bredin (Interspeech 2023), embedding di WeSpeaker, clustering con VBx (Landini et al., 2022). Nemotron 3 Diarization: 97 MB (conversione Core ML a 8 bit di Fluid Inference), circa 100 milioni di parametri, OpenMDW 1.1 (scheda del modello); il metodo è descritto negli articoli Sortformer e Streaming Sortformer.
Come abbiamo testato
- Registrazioni. 122 registrazioni pubbliche, 25 ore, in inglese e cinese, da 1 a 12 parlanti ciascuna: riunioni registrate con un microfono a distanza, trasmissioni, conference call sui risultati finanziari e registrazioni con un solo parlante ottenute unendo clip separate. In più, 5 registrazioni a due voci in inglese, olandese, cinese e finlandese, 4 delle quali con una trascrizione di riferimento parola per parola.
- Dataset. AMI, AISHELL-4, AliMeeting, VoxConverse, Earnings-21, LibriSpeech, IFADV e SKN, più registrazioni nostre. Solo dataset la cui licenza consente di pubblicare i risultati; nessuna registrazione dei nostri utenti.
- Metrica. Tasso di errore di diarizzazione, calcolato su frame da 10 ms senza collar, parlato sovrapposto incluso, mediato per registrazione.
- Statistica. Intervalli al 95% da 10.000 ricampionamenti bootstrap di registrazioni intere; nessun intervallo per i gruppi con meno di dieci registrazioni.
- Dispositivi. Un Mac con chip M5, un iPhone 15 e un iPhone 12 mini; la precisione è stata calcolata sul Mac.
- Pre-registrazione. Il piano di test è stato congelato il 2 novembre 2026, e quello per le registrazioni a due voci il 4 novembre, prima che i modelli venissero eseguiti su quelle clip.
Tutti i dettagli del test
Selezione. Domande e regole erano state fissate per un benchmark più ampio prima di qualsiasi esecuzione; abbiamo scelto questo sottoinsieme in base alla licenza, non ai risultati, e ricalcolato i numeri dagli stessi output con lo stesso metodo di calcolo. Le registrazioni con un solo parlante ottenute unendo clip di LibriSpeech e AISHELL-4 sono conteggiate nel dataset di origine. Pubblichiamo solo risultati aggregati, mai l’audio né il testo di riferimento.
| Dataset | Licenza | Registrazioni usate |
|---|---|---|
| AMI Meeting Corpus | CC BY 4.0 | 16 riunioni e 16 estratti di un minuto |
| AISHELL-4 | CC BY-SA 4.0 | 5 riunioni, 5 estratti, 5 registrazioni a un solo parlante ottenute da clip unite |
| AliMeeting | CC BY-SA 4.0 | 8 riunioni, 8 estratti, 1 registrazione a due voci |
| VoxConverse | CC BY 4.0 (il copyright dei video resta ai rispettivi proprietari) | 30 trasmissioni e 18 estratti |
| Earnings-21 | CC BY-SA 4.0 | 6 conference call sui risultati finanziari, 1 registrazione a due voci |
| LibriSpeech | CC BY 4.0 | 5 registrazioni a un solo parlante ottenute da clip unite |
| IFADV | GNU GPL v2 o successiva | 2 registrazioni a due voci |
| Campioni di dialetti finlandesi SKN | CC BY (Istituto per le lingue della Finlandia) | 1 registrazione a due voci |
Licenze come indicate nella pagina di ciascun dataset, verificate a novembre 2026.
Intervalli. Il tasso di errore complessivo è sceso di 6,0 punti (intervallo da 4,5 a 7,6). Il parlato non rilevato è sceso di 2,3 punti (intervallo da 1,3 a 3,4) e quello attribuito alla persona sbagliata di 3,4 punti (da 2,4 a 4,6); il rumore scambiato per parlato è sceso di 0,30 punti, entro il margine d’errore (intervallo da −0,02 a 0,62). La quota di registrazioni con il numero di parlanti giusto è salita di 27,9 punti (intervallo da 17,2 a 38,5). Nei gruppi, tutti gli intervalli escludono lo zero tranne quello del gruppo con un solo parlante. Nelle 12 riunioni in inglese, l’intervallo per le frasi divise include lo zero; quello per i cambi di paragrafo a metà frase no.
Punteggio. Il nostro script di valutazione si discosta da pyannote.metrics di non più di 0,003 punti.
Più di otto parlanti. Su queste registrazioni i risultati risentono di piccole differenze di chip e di decodifica dell’audio. Sulla conference call di 55 minuti sui risultati finanziari, con 10 parlanti, Nemotron 3 ha oscillato tra il 30,6% e il 42,8% a seconda di chip, impostazioni e decoder audio; pyannote community-1 ha ottenuto il 21,6%.
Impostazioni di post-elaborazione. Alcune impostazioni di post-elaborazione sono state scelte dopo la pre-registrazione, solo su registrazioni di taratura separate; le registrazioni di test sono servite solo a riportare i risultati.
Limiti. La precisione è stata misurata solo in inglese e cinese; il numero di correzioni manuali viene da 4 registrazioni. I tempi su Mac vengono da un Mac M5 impegnato in altre attività e con una beta di macOS; i telefoni erano collegati via USB, quindi il consumo di batteria non è stato misurato.
Provalo
Whisper Notes su iPhone e Mac ora usa Nemotron 3 per il rilevamento dei parlanti. Per qualsiasi domanda, scrivi a support@whispernotes.app.