Данный проект представляет собой ВКР на тему Анализ существующих архитектур нейронных сетей для распознавания звуков и сбор достаточного датасета. В качестве датасета используются аудиодорожки, полученные с видеорегистраторов автомобилей в период записи того или иного значимого события. Датасет представляет собой множество аудизаписей .wav формата, размещенных в директориях, именованных по классу события.
Номер | Класс | Описание |
---|---|---|
0 | ambulance | сирена скорой помощи |
1 | horn | гудок автомобиля |
2 | police | сирена полиции |
3 | tire | торможение шин |
4 | crash | авария(столкновение автомобилей) |
5 | pothole | попадание колес в яму на скорости |
6 | firetruck | сирена автомобиля пожарной службы |
- Сеть прямого распространения
- Сверточная сеть
- Рекуррентная сеть
Проект основан Python 3.6
- LibROSA - Пакет для обработки звука
- NumPy - Фундаментальная библиотека для различных вычислений.
- Pandas - Мощный инструмент анализа данных
- Tensorflow - Фреймворк машинного обучения
Для установки всех требуемых пакетов:
pip install -r requirements.txt
Необходимо внимательно ознакомиться со структурой файла конфигурации. В нем представлены следующие секции:
- [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]
Параметр Назначение Пример В Процессе Пример
Доступно три действия:
- transform - извлечение целевых характеристик звука, см. секцию [Transform]
- fit - обучение нейросети, см. секцию [Fit] файла конфигурации
- 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
В ближайшее время добавится:
- Генерация отчетов