Construyendo un Pipeline de Aprendizaje Automático para la Clasificación de Acentos en Inglés

Pipeline de Aprendizaje Automático para Clasificación de Acentos en Inglés

Una guía paso a paso para construir el modelo de clasificación de aprendizaje automático basado en audio para los acentos ingleses más comunes y hacerlo en vivo a través de Hugging Face

Foto de Kane Reinholdtsen en Unsplash

En nuestro mundo cada vez más interconectado, la comunicación no conoce límites. Con comunidades diversas interactuando a través de fronteras y culturas, comprender los acentos se ha convertido en una parte esencial de la comunicación efectiva. Un sistema preciso de clasificación de acentos en inglés tiene el potencial de cerrar las brechas lingüísticas, mejorar los sistemas de reconocimiento de voz, mejorar las herramientas de aprendizaje de idiomas e incluso ayudar en las experiencias de usuario personalizadas. A continuación, describo detalladamente cómo se puede desarrollar dicho sistema, arrojando luz sobre las numerosas aplicaciones que ofrece en fomentar una comunicación fluida e inclusiva.

Todo el código de extremo a extremo para seleccionar los datos, entrenar el modelo y enviarlo al repositorio de HuggingFace está disponible públicamente aquí. A continuación, describo los pasos más importantes.

Selección de datos, muestreo y transformación

El análisis se basa en la versión de Kaggle del conjunto de datos Mozilla’s Common Voice, que contiene alrededor de 500 horas de grabaciones de voz, con diversas características de los hablantes (incluyendo acentos de los hablantes). El conjunto de datos se distribuye bajo una licencia de Dominio Público CC0.

Distribución de las muestras de datos basada en el acento:

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

Basado en esta distribución, seleccioné los 5 acentos más comunes — US, England, Indian, Australia y Canada — y submuestreé la selección para obtener la distribución de las muestras:

# submuestreo aleatorio de todas las clases excepto la minoritarus = RandomUnderSampler(random_state=83, sampling_strategy='not minority')y = dd[['label']]dd = dd.drop(['label']…