Una trascrizione con etichette richiede entrambe le risposte giuste e, poiché le etichette stanno sopra le parole, un'etichetta sbagliata si può correggere senza toccare il testo.
Una trascrizione di una riunione risponde a due domande insieme: cosa è stato detto e chi lo ha detto. Chi legge vede un solo compito, un nome accanto a una riga. Sotto ci sono due problemi, ciascuno con i propri input e i propri modi di fallire.
Il riconoscimento vocale ascolta le parole. Trasforma l'audio in testo e, quando funziona bene, assegna un orario di inizio e di fine a ogni parola. Non gli importa se la voce cambia a metà di una frase: il suo compito è far uscire giusta la frase.
La diarizzazione dei parlanti ascolta le voci. Non conosce le parole. Il suo compito è dividere la linea del tempo in turni e stabilire quali turni appartengono alla stessa persona: Speaker 1, Speaker 2. Il termine deriva da "diary", diario, e in effetti è un'immagine adeguata dell'output: un registro di chi ha avuto la parola e quando.
Ci sono tre termini affini che vengono spesso confusi con questo. La diarizzazione dice chi ha parlato quando, senza sapere chi sia. L'identificazione del parlante dice a quale persona nota appartiene un tratto di parlato, scegliendo tra un insieme di voci registrate. La verifica del parlante risponde a una domanda con sì o no: questa voce è davvero della persona X? Le affermazioni dei fornitori diventano più leggibili quando si tengono distinti, perché "etichette dei parlanti" può voler dire qualsiasi cosa, da una stima grossolana dei confini dei turni a nomi che seguono una persona da una registrazione all'altra. Per capire cosa quelle etichette possano e non possano garantire, bisogna guardare dentro il diarizzatore.
La maggior parte dei sistemi di diarizzazione lavora in tre passaggi, nessuno dei quali riguarda la lingua.
Ciascun passaggio può sbagliare da solo. Un parlante sommesso viene perso. Due voci simili vengono fuse. Una persona che passa da un tono calmo a uno animato viene divisa in due.
Il settore valuta tutto questo con il diarization error rate, DER: la quota del tempo di parlato che è stata persa, rilevata erroneamente come parlato o attribuita al parlante sbagliato, di solito con un margine di tolleranza (collar) di circa un quarto di secondo intorno a ogni confine. Il margine esiste perché nessuno, né umano né macchina, può collocare un cambio di parlante al millisecondo. Questa tolleranza va bene per valutare un diarizzatore da solo. Non va bene per una trascrizione, dove un confine sfasato di un quarto di secondo cade su una parola.
È qui che i due problemi si incontrano, ed è qui che si decide la qualità di una trascrizione con etichette. Un diarizzatore colloca i suoi confini con una certa imprecisione, spesso di una frazione di secondo in un senso o nell'altro. Un riconoscitore colloca le parole sulla stessa linea del tempo. Sovrapporre i due in modo ingenuo significa che un confine cade dentro una parola, e metà di "domani" appartiene a Speaker 1 e l'altra metà a Speaker 2.
Le etichette possono anche essere sbagliate per un po' prima di diventare giuste. Un diarizzatore diventa più sicuro dei suoi gruppi man mano che ascolta più audio, quindi un'etichetta iniziale può sembrare sbagliata rispetto a ciò che emerge dopo. In una trascrizione in diretta un'etichetta può essere rivista dopo che la riga è stata mostrata: l'API realtime di VocalStack invia un frame transcript.amended che corregge in loco il testo o il parlante di una riga già confermata, così chi legge vede la revisione invece di una contraddizione.
Anche un'etichetta perfettamente collocata e perfettamente stabile resta solo un numero. Un numero basta per seguire una conversazione; un nome è ciò che le persone vogliono leggere.
Un'etichetta diventa un nome in due modi, che si costruiscono l'uno sull'altro.
Il primo è dare un nome all'interno di una registrazione. Ogni parlante che una trascrizione trova riceve un indice, a partire da 0. Chiunque abbia accesso può dare un nome a ciascun parlante durante o dopo la registrazione. Il nome è uno strato sopra le parole, quindi può essere impostato, cambiato o cancellato senza toccare il testo. Tramite l'API si usa PUT /v1/recordings/{id}/speakers/{idx} con un name; un nome vuoto lo cancella. Una riga il cui speaker è -1 non ha etichetta, o perché le etichette erano disattivate o, in una bozza in diretta, perché la riga non è ancora stata attribuita.
Il secondo è il riconoscimento tra registrazioni, il problema dell'identificazione della prima sezione. Un diarizzatore può dire soltanto che due voci sono diverse, mai chi siano. Per passare da "diverse" a "questa è Ana", il sistema ha bisogno di un riferimento: una voce salvata, presa da una registrazione di quella sola persona. Servono almeno trenta secondi di parlato pulito, e qualche minuto è meglio. Il campione dovrebbe anche suonare come le registrazioni con cui verrà confrontato: la stessa persona con il microfono di un portatile e con il microfono di un palco può sembrare meno simile a una macchina di quanto lo siano due sconosciuti registrati nello stesso modo. Una volta salvata una voce, ogni parlante che una trascrizione sente viene confrontato con essa, e una corrispondenza porta il nome nella trascrizione. In VocalStack questo si trova in Voices; le trascrizioni di file e le sessioni in diretta della Dashboard riconoscono automaticamente le voci salvate, mentre una sessione dell'API realtime riconosce solo le voci che elenchi in identifyVoices.
Una voce salvata è un dato biometrico: può riconoscere una persona in qualsiasi registrazione, e in VocalStack funziona anche da clone che può leggere ad alta voce le sue frasi. La Dashboard chiede di confermare di avere il permesso della persona prima di salvarne una, e una voce può essere eliminata in qualsiasi momento.
Tutto questo presuppone che si vogliano davvero delle etichette. Spesso non è così.
Una sola persona che legge una lezione non ha bisogno di "Speaker 1" davanti a ogni riga. Il pubblico sa già chi ha il microfono. Quindi l'impostazione delle etichette dei parlanti ha tre posizioni, e sono le stesse in una sessione realtime, in una trasmissione, in una trascrizione e in una registrazione.
auto nell'API). Le righe vengono etichettate con il parlante non appena si sente più di una voce; una registrazione con un solo parlante resta testo semplice, e una seconda voce che si aggiunge più tardi viene comunque rilevata. Il nuovo modulo di trascrizione in diretta della Dashboard parte da questa posizione.Un caricamento di file accetta la stessa opzione speakerLabels, e l'API realtime permette di cambiarla a metà di un flusso; i dettagli sono nella documentazione dell'API. La separazione e l'assegnazione dei nomi dei parlanti non aumentano mai il costo (la pagina dei prezzi contiene il listino), quindi la scelta riguarda ciò che il lettore deve vedere, non quanto costa.
Attivata, la diarizzazione è buona ma non magica. Due situazioni la mettono ancora in difficoltà.
La prima è la sovrapposizione. Quando due persone parlano insieme, un tratto di audio contiene due voci. Esistono diarizzatori consapevoli della sovrapposizione nella ricerca e, sempre più, nei prodotti: la diarizzazione neurale end-to-end (EEND), per esempio, tratta "chi sta parlando" come un insieme di domande simultanee con risposta sì o no, invece che come una sola risposta. La maggior parte dei sistemi di produzione, però, assegna ancora un solo parlante per tratto, e il riconoscitore che sta sopra trascrive una voce alla volta. Il crosstalk in un panel acceso è l'audio più difficile del settore, e le etichette di ogni fornitore peggiorano proprio lì. È anche, con certezza, la parte che tutti vogliono citare dopo.
La seconda sono le voci molto simili. Fratelli e sorelle possono produrre embedding troppo vicini per separarli in modo affidabile, tanto più quando si alternano brevi turni per un'ora. L'audio telefonico rende il problema peggiore per tutti: una linea a banda stretta è campionata a 8 kHz e non trasporta nulla oltre circa 3,4 kHz, eppure gran parte di ciò che distingue una voce dall'altra sta al di sopra di quel limite. Due persone sulla stessa linea telefonica suonano più simili a un diarizzatore di quanto suonino a te.
Il rimedio più pratico per entrambi sta a monte di qualsiasi modello: dai a ciascuna persona il proprio microfono. Con un canale per parlante, la diarizzazione si riduce a chiedersi quale canale è più forte, la sovrapposizione diventa due tracce pulite invece di una sola confusa, e agli embedding non si chiede mai di fare la parte difficile. Un singolo microfono da tavolo costa meno ed è quasi sempre ciò che si ha, ed è per questo che il resto di questo articolo esiste.
Nessuno dei due limiti deve arrivare al lettore invariato. Poiché le etichette sono uno strato sopra le parole, un'etichetta sbagliata non costa mai il testo: i nomi dei parlanti possono essere impostati o cancellati su una registrazione in qualsiasi momento, e in una trascrizione in diretta l'host può riscrivere qualsiasi parola o riga mentre è ancora in corso, con ogni correzione segnalata e annullabile.
Per il lato delle parole, cosa misura il tasso di errore sulle parole e cosa non misura illustra in dettaglio i livelli di correzione; il WER sta al riconoscitore come il DER sta al diarizzatore, e una trascrizione ha bisogno che entrambi siano bassi.