Google I/O — это обертка! Наверстать упущенное в сеансах TensorFlow Просмотреть сеансы

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

Задача определения того, что представляет звук, называется классификацией звука . Модель классификации звука обучена распознавать различные звуковые события. Например, вы можете научить модель распознавать события, представляющие три разных события: хлопки в ладоши, щелчок пальцами и ввод текста. 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/classification — это квантованная версия с более простым вводом кадров фиксированной длины (15 600 отсчетов) и возвратом единого вектора оценок для 521 класса аудиособытий.

Входы

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

Выходы

Модель возвращает двумерный тензор 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 различных аудиоклассов. Полный список классов смотрите в файле labels в репозитории моделей .

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

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

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