Автор/хранитель: Игнасио Эредиа (CSIC)
Проект: Эта работа является частью проекта DEEP Hybrid-DataCloud, который получил финансирование в рамках программы исследований и инноваций Европейского Союза Horizon 2020 в рамках грантового соглашения № 777435.
Это готовый к использованию инструмент для классификации аудио с помощью глубокого обучения. Он позволяет пользователю классифицировать свои образцы аудио, а также обучать собственный классификатор для решения конкретной задачи. Классификатор в настоящее время предварительно обучен на 527 классах высокого уровня из набора данных AudioSet.
Более подробную информацию об этом можно найти на торговой площадке DEEP.
Оглавление
Требования
Этот проект был протестирован в Ubuntu 18.04 с Python 3.6.5. Дальнейшие требования к пакету описаны в файле
requirements.txt
.
- Для поддержки широкого спектра аудиоформатов нам необходимо использовать библиотеку FFMPEG. Чтобы установить его в Linux, запустите:
apt-get install ffmpeg libavcodec-extra- Обязательно должен быть установлен Tensorflow >= 1.14.0 (в режиме графического процессора или процессора). Это не указано в файле
requirements.txt
, поскольку нарушает поддержку графического процессора.
Чтобы начать использовать эту платформу, клонируйте репозиторий и загрузите веса по умолчанию:
git clone https://github.com/deephdc/audio-classification-tf
cd audio-classification-tf
pip install -e .
curl -o ./models/default.tar.gz https://api.cloud.ifca.es:8080/swift/v1/audio-classification-tf/default.tar.gz
cd models && tar -zxvf default.tar.gz && rm default.tar.gz
теперь запустите DEEPaaS:
deepaas-run --listen-ip 0.0.0.0
откройте http://0.0.0.0:5000/ui и найдите методы, принадлежащие модулю audioclas
.
Мы также подготовили готовый Docker-контейнер для запуска этого модуля. Чтобы запустить его:
docker search deephdc
docker run -ti -p 5000:5000 -p 6006:6006 -p 8888:8888 deephdc/deep-oc-audio-classification-tf
Теперь откройте http://0.0.0.0:5000/ui и найдите методы, принадлежащие модулю audioclas
.
Вы можете обучить свой собственный аудиоклассификатор с помощью собственного набора данных. Для этого вам необходимо:
Поместите изображения в папку ./data/audios
. Если ваши данные хранятся где-то еще, вы можете использовать это местоположение, установив параметр dataset_directory
в аргументах обучения. Используйте стандартный аудиоформат (например, .mp3
или .wav
).
Примечание. Классификатор работает с выборками длиной 10 секунд. Таким образом, если аудиофайл длиннее/короче 10 с, он будет объединен в цикл, чтобы его продолжительность была кратна 10 с. Таким образом, 22-секундный аудиофайл создаст 3 вложения:
*-0.npy
,*-1.npy
и*-2.npy
.
Сначала вам нужно добавить в каталог ./data/dataset_files
следующие файлы:
Обязательные файлы | Дополнительные файлы |
---|---|
classes.txt , train.txt | val.txt , test.txt , info.txt |
Файлы train.txt
, val.txt
и test.txt
связывают имя аудио (или относительный путь) с номером метки (который должен начинаться с нуля ). classes.txt
преобразует эти номера меток в имена меток. Наконец, info.txt
позволяет вам предоставить информацию (например, количество аудиофайлов в базе данных) о каждом классе.
Если вы используете опцию compute_embeddings=False
, тогда путь к файлу должен указывать на путь .npy
к внедрению, а не к исходному аудиофайлу, а параметр dataset_directory
должен указывать на папку, содержащую внедренные элементы.
Вы можете найти примеры этих файлов по адресу ./data/demo-dataset_files
.
Перейдите по адресу http://0.0.0.0:5000/ui и найдите метод TRAIN
POST. Нажмите «Попробовать», измените любые аргументы обучения и нажмите «Выполнить». Обучение будет запущено, и вы сможете следить за его статусом, выполнив метод TRAIN
GET, который также предоставит историю всех ранее выполненных тренировок.
Если в модуле настроен какой-либо мониторинг обучения (например, Tensorboard), вы сможете следить за ним по адресу http://0.0.0.0:6006.
Перейдите по адресу http://0.0.0.0:5000/ui и найдите метод PREDICT
POST. Нажмите «Попробовать», измените нужные аргументы теста и нажмите «Выполнить». Вы можете либо предоставить:
data
с путем, указывающим на аудиофайл или сжатый файл (например, zip, tar,...), содержащий аудиофайлы.ИЛИ
url
с URL-адресом, указывающим на аудиофайл или сжатый файл (например, zip, tar,...), содержащий аудиофайлы. Вот пример такого URL-адреса, который вы можете использовать в целях тестирования. Код в этом проекте основан на исходном репозитории IBM и реализует статью «Многоуровневая модель внимания для слабо контролируемой классификации аудио», написанную Ю и др.
Основные изменения по сравнению с исходным репо заключаются в следующем:
Если вы считаете этот проект полезным, пожалуйста, сошлитесь на проект DEEP Hybrid DataCloud:
Гарсиа, Альваро Лопес и др. Облачная платформа для рабочих нагрузок и приложений машинного обучения. IEEE Access 8 (2020): 18681-18692.
вместе с любой из ссылок ниже:
- Йорт Ф. Геммеке и др., Набор аудио: онтология и набор данных, размеченных человеком, для аудиособытий, IEEE ICASSP, 2017.
- Цюцян Конг и др., Классификация аудионаборов с моделью внимания: вероятностная перспектива. Препринт arXiv arXiv:1711.00927 (2017).
- Чангсонг Ю и др., Многоуровневая модель внимания для классификации аудио со слабым контролем. Препринт arXiv arXiv:1803.02353 (2018).
- С. Херши и др., Архитектура CNN для крупномасштабной классификации аудио, препринт arXiv arXiv:1609.09430, 2016.