Come aggiungere gli speaker tags ai file audio per la trascrizione

Guillaume Goyon, 16 Giugno 2020

CONDIVIDI :

Questo post tratterà del processo di diarizzazione, che consiste nell’aggiungere speaker tags a un file audio per le trascrizioni. Descriveremo dunque rapidamente le tecniche per lavorare con gli speaker vectors utilizzando il nostro strumento.

Che cos’è la diarizzazione (aggiunta degli speaker tags)?

L’aggiunta degli speaker tags a una trascrizione o la risposta alla domanda “chi ha parlato quando?” rappresenta un’attività chiamata diarizzazione.

Questo compito non è così semplice come sembra, perché gli algoritmi non hanno quasi lo stesso livello di comprensione del suono che abbiamo noi esseri umani. Ciò implica la ricerca del numero di interlocutori e il momento in cui questi hanno parlato, usando il segnale dell’onda sonora.

Inoltre, è un passaggio necessario nei sistemi di riconoscimento vocale automatico, in quanto ci consente di organizzare la trascrizione del testo e di avere ulteriori informazioni sull’audio.

Ad Amberscript abbiamo analizzato diversi approcci e integrato il migliore di questi nel nostro prodotto. In questo post, troverai quali siano le tecniche esistenti, seguite da una breve guida su come aggiungere gli speaker tags usando il nostro strumento.

Perchè la diarizzazione è così complicata?

L’aggiunta degli speaker tags non è facile, poiché comporta molti passaggi. Descriviamo rapidamente le fasi del processo.

Innanzitutto, devi dividere l’audio in segmenti di discorso. Ciò significa rimuovere le parti in cui nessuno sta parlando e dividere i segmenti dell’audio a seconda degli interlocutori, in modo tale da ottenere un segmento comprendente un solo interlocutore.

Dopo la divisione, è necessario trovare un modo per raggruppare i segmenti appartenenti allo stesso altoparlante sotto lo stesso tag di altoparlante. Proprio questo compito è diviso in diversi passaggi.

Successivamente è necessario estrarre uno speaker vector per ogni segmento, e quindi raggruppare i vettori per raggrupparli infine nello stesso gruppo sotto il nome dello stesso speaker tag. La difficoltà sta all’origine della sfida di diarizzazione chiamata DIHARD

Ora vediamo come estrarre i già citati speaker vectors.

Generazione automatica di speaker vectors

Di solito, creare l’attività di questi segmenti non è la parte più complicata. Si chiama Speech Activity Detection (SAD) o Voice Activity Detection (VAD). Di solito viene fatto utilizzando come riferimento l’attività in un determinato momento dell’audio.

Quello che è più complicato è il compito di estrarre gli speaker vectors dai segmenti ottenuti. Per questo, puoi dare un’occhiata a diverse tecniche per estrarre gli speaker vectors (chiamato speaker embedding) nella tabella seguente:

NomeStrumenti interni
i-vectorsModelli statistici
x-vectorsReti neurali ritardate
d-vectorsReti neurali ricorrenti
ClusterGANReti contraddittorie generative

L’elenco completo sarebbe molto più lungo, ma puoi fare riferimento a queste tecniche che sono le più comuni.

I-vector si basa sulle catene nascoste di Markov sui modelli a miscele gaussiane: due modelli statistici per stimare gli speaker tags e determinare gli speaker vectors sulla base di una serie di speaker noti. È una tecnica tradizionale che è ancora in uso.

I sistemi x-vector e d-vectors si basano su reti neurali addestrate a riconoscere un set di speakers. Questi sistemi sono migliori in termini di prestazioni, ma richiedono più dati di allenamento e configurazione. Le loro caratteristiche sono usate come speaker tags.

ClusterGAN fa un ulteriore passo avanti e cerca di trasformare uno speaker tag esistente in un altro che contenga informazioni migliori utilizzando 3 reti neurali in competizione tra loro.

Una volta completato questo step, terminiamo con gli speaker vectors per ogni segmento.

Raggruppamento degli speaker vectors

Dopo aver individuato gli speaker vectors, bisogna raggrupparli. Questo significa raggruppare quei speaker vectors che sono simili, e dunque che appartengono molto probabilmente allo stesso speaker.

Il problema qui è che potresti non sapere quanti sono gli interlocutori in un determinato file (o set di file), quindi potresti non essere sicuro quanti gruppi si possano ottenere. Un algoritmo può tentarci al posto tuo, ma potrebbe sbagliarsi.

Esistono diversi tipi di algoritmi che potrebbero essere utilizzati a tal fine, i più comuni sono elencati qui sotto:

NomeStrumenti interni
K-meansRaggruppamento iterativo
PLDAModelli Statistici
UIS-RNN
Rete neurale ricorrente

PLDA si riferisce a una tecnica di punteggio utilizzata in un altro algoritmo. K-means è di solito il modo standard di procedere per il raggruppamento, ma è necessario definire una distanza tra i due speaker vectors e PLDA è in realtà più adatto a questo caso.

UIS-RNN è una tecnica recente che consente la decodifica online, aggiungendo nuovi speakers come appaiono ed è molto promettente.

Dopo la fase di raggruppamento, puoi inserire gli speaker tags ai segmenti che appartengono allo stesso gruppo, in modo tale da ottenere un tag per ogni segmento.

Cosa c’è da fare dopo la diarizzazione per ottenere una trascrizione completa?

Una volta finito, avremo speaker vector per ogni segmento.

Il risultato della trascrizione sarà un testo completo di tutte le parole pronunciate nel file audio, compresi gli interlocutori associati a ogni parte del testo.

Come aggiungere gli speaker tags utilizzando Amberscript

Veniamo alle cose pratiche: come si fa ad aggiungere questi speaker tags senza dover mettere in pratica tutti quei passaggi tecnici menzionati sopra?

Puoi semplicemente andare sul sito ed accedere al tuo account. Una volta fatto, potrai caricare il file e selezionare il numero di interlocutori (in modo da ottenere un livello di accuratezza più alto) e lasciar fare all’algoritmo il resto!

Non hai bisogno di preoccuparti su quale tecnica utilizzare. Dopo pochi minuti, il tuo file sarà trascritto completamente, e potrai controllare con l’editor se gli speaker tags sono stati inseriti correttamente.

Nel caso in cui ci fossero errori, puoi correggerli, e poi scaricare la tua trascrizione in vari formati.

Conclusioni

Per concludere, sappiamo che ci siano molte tecniche di diarizzazione disponibili e questo processo è davvero complicato, ma abbiamo creato uno strumento che utilizza la migliore tecnica disponibile per consentirti di aggiungere speaker tags ai tuoi file audio in modo da ottenere la migliore trascrizione possibile.