Помогают защитить Большой Барьерный Риф с TensorFlow на Kaggle Присоединяйтесь вызов

Аудио классификация

Задача определения того, что представляет собой звук, называется классификацией звука . Модель классификации аудио обучена распознавать различные аудио события. Например, вы можете обучить модель распознавать события, представляющие три разных события: хлопки в ладоши, щелканье пальцами и набор текста. TensorFlow Lite предоставляет оптимизированные предварительно обученные модели, которые вы можете развернуть в своих мобильных приложениях. Узнайте больше о классификации аудио с помощью TensorFlow здесь .

На следующем изображении показан вывод модели классификации аудио на Android.

Скриншот примера Android

Начать

Если вы новичок в TensorFlow Lite и работаете с Android, мы рекомендуем изучить следующие примеры приложений, которые помогут вам начать работу.

Вы можете использовать готовый API из библиотеки задач TensorFlow Lite, чтобы интегрировать модели классификации аудио всего в несколько строк кода. Вы также можете создать свой собственный конвейер вывода, используя библиотеку поддержки TensorFlow Lite .

В приведенном ниже примере Android демонстрируется реализация с использованием библиотеки задач TFLite.

Посмотреть пример Android

Посмотреть пример iOS

Если вы используете платформу, отличную от Android / iOS, или если вы уже знакомы с API-интерфейсами TensorFlow Lite , загрузите стартовую модель и вспомогательные файлы (если применимо).

Загрузите стартовую модель с TensorFlow Hub

Описание модели

YAMNet - это классификатор звуковых событий, который принимает форму звуковой волны в качестве входных данных и делает независимые прогнозы для каждого из 521 звуковых событий из онтологии AudioSet . Модель использует архитектуру MobileNet v1 и обучалась с использованием корпуса AudioSet. Эта модель изначально была выпущена в TensorFlow Model Garden, где находится исходный код модели, исходная контрольная точка модели и более подробная документация.

Как это работает

Существует две версии модели YAMNet, преобразованной в TFLite:

  • YAMNet - это исходная модель классификации аудио с динамическим размером ввода, подходящая для передачи обучения, веб-развертывания и мобильного развертывания. Он также имеет более сложный вывод.

  • YAMNet / классификация - это квантованная версия с более простым вводом кадра фиксированной длины (15600 выборок) и возвращением одного вектора оценок для 521 класса звуковых событий.

Входы

Модель принимает float32 массив float32 Tensor или NumPy длиной 15600, содержащий 0,975-секундную форму волны, представленную в виде монофонических выборок 16 кГц в диапазоне [-1.0, +1.0] .

Выходы

Модель возвращает float32 тензор формы float32 (1, 521), содержащий предсказанные оценки для каждого из 521 классов в онтологии AudioSet, которые поддерживаются YAMNet. Индекс столбца (0–520) тензора оценок сопоставляется с соответствующим именем класса AudioSet с помощью карты классов YAMNet, которая доступна в виде связанного файла yamnet_label_list.txt упакованного в файл модели. См. Использование ниже.

Подходящее использование

YAMNet можно использовать

  • в качестве автономного классификатора звуковых событий, который обеспечивает разумную основу для широкого спектра звуковых событий.
  • в качестве высокоуровневого экстрактора функций: выходные данные встраивания 1024-D YAMNet могут использоваться в качестве входных функций другой модели, которую затем можно обучить на небольшом объеме данных для конкретной задачи. Это позволяет быстро создавать специализированные аудиоклассификаторы, не требуя большого количества помеченных данных и без необходимости сквозного обучения большой модели.
  • в качестве горячего старта: параметры модели YAMNet могут использоваться для инициализации части более крупной модели, что позволяет быстрее выполнять точную настройку и исследование модели.

Ограничения

  • Выходные данные классификатора YAMNet не были откалиброваны по классам, поэтому вы не можете напрямую рассматривать выходные данные как вероятности. Для любой конкретной задачи вам, скорее всего, потребуется выполнить калибровку с данными для конкретной задачи, что позволит вам назначить правильные пороговые значения и масштабирование для каждого класса.
  • YAMNet прошел обучение на миллионах видеороликов YouTube, и, хотя они очень разнообразны, все же может существовать несоответствие домена между средним видео YouTube и аудиовходами, ожидаемыми для любой данной задачи. Вам следует ожидать некоторой тонкой настройки и калибровки, чтобы YAMNet можно было использовать в любой создаваемой вами системе.

Настройка модели

Предоставленные предварительно обученные модели обучены обнаруживать 521 различный звуковой класс. Полный список классов см. В файле меток в репозитории модели .

Вы можете использовать технику, известную как трансферное обучение, чтобы повторно обучить модель распознавать классы, не входящие в исходный набор. Например, вы можете повторно обучить модель, чтобы она распознавала несколько песен птиц. Для этого вам понадобится набор обучающих аудиозаписей для каждой новой метки, которую вы хотите обучить. Рекомендуемый способ - использовать библиотеку TensorFlow Lite Model Maker, которая упрощает процесс обучения модели TensorFlow Lite с использованием пользовательского набора данных в нескольких строках кода. Он использует трансферное обучение, чтобы сократить количество необходимых обучающих данных и времени. Вы также можете изучить Трансферное обучение для распознавания звука в качестве примера трансферного обучения.

Дополнительная литература и ресурсы

Используйте следующие ресурсы, чтобы узнать больше о концепциях, связанных с классификацией аудио: