Задача определения того, что представляет звук, называется классификацией звука . Модель классификации звука обучена распознавать различные звуковые события. Например, вы можете научить модель распознавать события, представляющие три разных события: хлопки в ладоши, щелчок пальцами и ввод текста. TensorFlow Lite предоставляет оптимизированные предварительно обученные модели, которые вы можете развернуть в своих мобильных приложениях. Подробнее о классификации аудио с помощью TensorFlow здесь .
На следующем изображении показаны выходные данные модели классификации аудио на Android.
Начать
Если вы новичок в TensorFlow Lite и работаете с Android, мы рекомендуем изучить следующие примеры приложений, которые помогут вам начать работу.
Вы можете использовать готовый API из библиотеки задач TensorFlow Lite , чтобы интегрировать модели классификации аудио всего в несколько строк кода. Вы также можете создать собственный пользовательский конвейер вывода, используя библиотеку поддержки TensorFlow Lite .
Пример Android ниже демонстрирует реализацию с использованием библиотеки задач TFLite.
Если вы используете платформу, отличную от 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 с использованием пользовательского набора данных в несколько строк кода. Он использует трансферное обучение, чтобы уменьшить количество необходимых обучающих данных и времени. Вы также можете узнать о трансферном обучении для распознавания аудио в качестве примера трансферного обучения.
Дополнительная литература и ресурсы
Используйте следующие ресурсы, чтобы узнать больше о концепциях, связанных с классификацией аудио: