Maximsiv1410 / ml-audio

RnD of audio classification targeted to help unmanned vehicles

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ML-Audio

Данный проект представляет собой ВКР на тему Анализ существующих архитектур нейронных сетей для распознавания звуков и сбор достаточного датасета. В качестве датасета используются аудиодорожки, полученные с видеорегистраторов автомобилей в период записи того или иного значимого события. Датасет представляет собой множество аудизаписей .wav формата, размещенных в директориях, именованных по классу события.

Начало

1. Классы звуков

Номер Класс Описание
0 ambulance сирена скорой помощи
1 horn гудок автомобиля
2 police сирена полиции
3 tire торможение шин
4 crash авария(столкновение автомобилей)
5 pothole попадание колес в яму на скорости
6 firetruck сирена автомобиля пожарной службы

2. Архитектуры нейронных сетей

  1. Сеть прямого распространения
  2. Сверточная сеть
  3. Рекуррентная сеть

Использование

Технологический стек

Проект основан Python 3.6

  • LibROSA - Пакет для обработки звука
  • NumPy - Фундаментальная библиотека для различных вычислений.
  • Pandas - Мощный инструмент анализа данных
  • Tensorflow - Фреймворк машинного обучения

Зависимости

Для установки всех требуемых пакетов:

pip install -r requirements.txt

1. Конфигурация

Необходимо внимательно ознакомиться со структурой файла конфигурации. В нем представлены следующие секции:

  • [Transform]
    Параметр Назначение Пример
    raw_dataset_path Путь до директории датасета -
    classes Интересующие классы звуков [crash, ambulance, pothole, horn, firetruck, tire, police]
    target_sr Целевая частота дискретизации 44100
    target_duration Целевая продолжительность аудио 1
    mels Кол-во мел-фильтров 64
    result_path Путь до директории для сохранения -
  • [Fit]
    Параметр Назначение Пример
    cooked_dataset Путь до директории обработанного датасета -
    arch Используемая архитектура нейросети fnn / cnn/ rnn
    epochs Количество эпох для обучения 50
    batch_size Размер пакета для прогонки 32
  • [Predict]
    Параметр Назначение Пример
    В Процессе Пример

2. Запуск

Доступно три действия:

  1. transform - извлечение целевых характеристик звука, см. секцию [Transform]
  2. fit - обучение нейросети, см. секцию [Fit] файла конфигурации
  3. predict - пробная классификация выбранной аудидорожки, см. секцию [Predict]

Запуск происходит следующим образом:

/bin/python cli.py --action <action> --config <config_path>

Пример обучения сверточной нейросети:

  • Содержание секции [Fit] файла конфигураций:
    Параметр Значение
    cooked_dataset /home/max/Desktop/ml/
    arch cnn
    epochs 50
    batch_size 32
  • Необходимо выполнить следующую команду:
    /bin/python cli.py --action fit --config settings.cfg

Пример извлечения целевых характеристик:

  • Содержание секции [Fit] файла конфигураций:
    Параметр Значение
    raw_dataset_path -
    classes [crash, ambulance, pothole, horn, firetruck, tire, police]
    target_sr 44100
    target_duration 1
    mels 64
    result_path -
  • Необходимо выполнить следующую команду:
    /bin/python cli.py --action transform --config settings.cfg

Пример классификации сэмпла натренированной моделью:

  • Содержание секции [Fit] файла конфигураций:
    Параметр Назначение Пример
    В Процессе Пример
  • Необходимо выполнить следующую команду:
    /bin/python cli.py --action predict --config settings.cfg

Roadmap

В ближайшее время добавится:

  1. Генерация отчетов

About

RnD of audio classification targeted to help unmanned vehicles


Languages

Language:Python 100.0%