Пошаговое руководство по созданию модели классификации машинного обучения на основе аудио для наиболее распространенных английских акцентов и воплощению ее в жизнь с помощью Hugging Face.

В нашем все более взаимосвязанном мире общение не знает границ. Поскольку различные сообщества взаимодействуют через границы и культуры, понимание акцентов стало неотъемлемой частью эффективного общения. Точная система классификации английского акцента способна устранить лингвистические пробелы, улучшить системы распознавания речи, улучшить инструменты изучения языка и даже помочь персонализировать взаимодействие с пользователем. Ниже я подробно описываю, как можно разработать такую ​​систему, проливая свет на многочисленные применения, которые она предлагает для содействия беспрепятственному и инклюзивному общению.

Весь сквозной код для выбора данных, обучения модели и отправки ее в репозиторий HuggingFace находится в публичном доступе здесь. Ниже я опишу самые важные шаги.

Выбор, выборка и преобразование данных

Анализ основан на Версии Kaggle Набора данных Mozilla’s Common Voice, который содержит около 500 часов речевых записей с различными демографическими данными говорящих (включая акценты говорящих). Набор данных распространяется по лицензии CC0: Public Domain.

Распределение выборок данных по акцентам:

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

Основываясь на этом распределении, я выбрал 5 наиболее распространенных акцентов: США, Англия, Индийский, Австралия, и Канада — и занижал выборку, чтобы получить выборочное распределение:

# random undersampling of all but minority class
rus = RandomUnderSampler(random_state=83, sampling_strategy='not minority')
y = dd[['label']]
dd = dd.drop(['label']…