Costruzione di un flusso di lavoro di apprendimento automatico per la classificazione degli accenti inglesi

Flusso di lavoro per classificazione accenti inglesi

Una guida passo-passo per la creazione di un modello di classificazione di apprendimento automatico basato sull’audio per gli accenti inglesi più comuni e la sua implementazione su Hugging Face

Foto di Kane Reinholdtsen su Unsplash

Nel nostro mondo sempre più interconnesso, la comunicazione non conosce confini. Con comunità diverse che interagiscono oltre i confini e le culture, capire gli accenti è diventato una parte essenziale della comunicazione efficace. Un sistema di classificazione preciso degli accenti inglesi ha il potenziale per colmare le lacune linguistiche, migliorare i sistemi di riconoscimento vocale, migliorare gli strumenti di apprendimento delle lingue e persino aiutare nelle esperienze utente personalizzate. Di seguito, descrivo dettagliatamente come sviluppare un tale sistema, mettendo in luce le numerose applicazioni che offre nel favorire una comunicazione senza soluzione di continuità e inclusiva.

Tutto il codice end-to-end per la selezione dei dati, l’addestramento del modello e l’invio al repository di HuggingFace è disponibile pubblicamente qui. Di seguito, descrivo i passaggi più importanti.

Selezione dei dati, campionamento e trasformazione

L’analisi si basa sulla versione di Kaggle del dataset Common Voice di Mozilla, che contiene circa 500 ore di registrazioni vocali, con diverse demografie degli speaker (inclusi gli accenti degli speaker). Il dataset è distribuito con una licenza di CC0: Public Domain.

Distribuzione dei campioni di dati in base all’accento:

us                30997england           14938indian             4490australia          4287canada             3901scotland           1556african            1173newzealand         1153ireland             944philippines         326wales               262bermuda             196malaysia            182singapore           124hongkong             99southatlandtic       83

Sulla base di questa distribuzione, ho selezionato i 5 accenti più comuni — US, England, Indian, Australia e Canada — e ho eseguito un campionamento con sottocampionaggio per ottenere la distribuzione del campione:

# sottocampionamento casuale di tutte le classi tranne quella di minoranza
rus = RandomUnderSampler(random_state=83, sampling_strategy='not minority')
y = dd[['label']]
dd = dd.drop(['label']…