Рубрики
Без рубрики

Классификация звука с использованием методов классификации изображений

Можем ли мы классифицировать аудиофайлы, используя их графическое представление? Если да, то как? Прочтите статью, чтобы узнать это.

Автор оригинала: Vishnu Ks.

Как классификация изображений, так и классификация звука были сложными задачами для машины, пока на сцену не вышли технологии искусственного интеллекта и нейронных сетей. Исследования по обеим проблемам были начаты десятилетия назад, и что-то плодотворное начало появляться после появления искусственного интеллекта и нейронных сетей.

Классификация всегда является более легкой задачей для людей. Надеюсь, вы все согласитесь. Но я не могу на 100% согласиться с этим утверждением. Почему я противоречу своему собственному утверждению?

Я не сумасшедший, но есть определенные случаи, когда действительно трудно определить, кто такой Джисвин, а кто Джесвин (мои друзья), потому что оба они однояйцевые близнецы, и мы не можем правильно судить только с помощью нашего видения.

Оставьте случай с однояйцевыми близнецами и предположим, что мы заказали бургер с овощами и гамбургер с курицей. Если они не скажут нам, где курица, а где овощи, сможем ли мы правильно распознать ее? Поэтому есть определенные случаи, когда человеческий интеллект терпит неудачу.

Тезисы-это действительно простые примеры из нашей повседневной жизни. Таким образом, вывод из этих примеров состоит в том, что иногда человеческий интеллект также может потерпеть неудачу.

Начало создания TensorFlow Inception v3

Сейчас искусственный интеллект может выполнять практически любые задачи лучше, чем человек. Модель классификации, обученная с большим количеством изображений овощей и куриного бургера, сможет точно распознать куриный бургер и овощной бургер. Если вы не можете с этим согласиться, пожалуйста, попробуйте это, вот ссылка. https://www.tensorflow.org/tutorials/image_recognition

Начальная модель Google, обученная на базе набора данных imagenet, может классифицировать 1000 классов объектов и является открытым исходным кодом Google. Любой может использовать обученную модель или переобучить ее последний слой для новых классов или построить свою собственную классификационную модель.

У них есть действительно хороший учебник для начала https://codelabs.developers.google.com/codelabs/tensorflow-for-poets/ . Если вы еще не прошли через него, пожалуйста, нажмите на ссылку выше, быстро прочтите ее и вернитесь. Это самый простой учебник и хорошая модель, которую я нашел в Google для классификации изображений. Мы будем много говорить об этом в следующих разделах.

Inception-единственная модель, которая, как я обнаружил, дает точные прогнозы за меньшее время, и она очень проста в использовании, а это означает, что она хорошо документирована. Они используют глубокие нейронные сети свертки в начале. Начальная модель уже показала отличную производительность, чем люди, в некоторых визуальных задачах. Я надеюсь, что все читали о создании и все поняли, как мы можем его переобучить.

Классификация звука с использованием начальной модели TensorFlow

Здесь, увидев этот заголовок, вы можете запутаться. Как мы можем обучить модель с аудиофайлами для классификации в начале? Как мы можем это сделать? На самом деле это невозможно с помощью inception. Ваше понимание на 100% до сих пор. Создание может быть обучено только с помощью изображений. Он может выполнять только классификацию изображений. Итак, как мы собираемся решить эту проблему?

Что, если мы сможем конвертировать аудио в изображения? Есть ли какое-либо графическое представление для аудио? Во время исследования я наткнулся на два графических представления для аудиофайлов: спектрограммы и хромаграммы. Спектрограмма — это визуальное представление спектра частот звука или другого сигнала, поскольку они изменяются со временем или какой-либо другой переменной-Википедия. Хромаграмма-это представление времени цветности, аналогичное спектрограмме.

| Источник изображения: Интернет |

Итак, после создания спектрограмм или хроматограмм, можем ли мы обучить начальную модель с этими изображениями? Да, мы можем. Для нас, человеческих глаз, может быть трудно определить закономерность по набору изображений спектрограмм, но то, как он видит изображение, действительно отличается, и это дает удивительные результаты.

Я провел несколько экспериментов с этой техникой. Я объясню, как построить систему распознавания ораторов с помощью inception. Я начал проект в GitHub под названием AudioNet. Он содержит сценарии для обработки аудиофайлов и преобразования их в спектрограммы.

Эксперимент 1: Распознавание динамиков

GitHub: https://github.com/vishnu-ks/AudioNet Примечание: Этот проект тестируется только на Ubuntu 16.04

Прежде чем мы начнем, нам нужны данные для обучения модели. Просто для нашего эксперимента мы можем скачать любую речь великих людей с Youtube в формате MP3. Я написал сценарий для преобразования MP3-файлов в wav-файлы, а затем для обработки wav-файла, чтобы сделать из него спектрограмму. Чтобы продолжить этот эксперимент, убедитесь, что этот файл загружен, извлечен и хранится в той же папке, в которой вы загрузили папку scripts.

Этапы нашего эксперимента:

  • Подготовка данных
  • Обучение модели
  • Тестирование модели

Подготовка данных

На этом этапе первое, что вам нужно сделать, это создать отдельные папки для каждого докладчика и назвать папку именем докладчика. Например, если у вас есть голосовые клипы Барака Обамы и АПДЖ Абдула Калама, вам нужно создать отдельную папку для каждого человека, одну для Обамы и одну для Калама. Затем вы должны поместить голосовые клипы каждого человека в соответствующие папки. И голосовые клипы должны быть в формате MP3. Будет лучше, если общая продолжительность всех голосовых клипов в папке будет такой же, как и во всех других папках. Как только у вас появятся разные папки для динамиков, поместите эту папку в папку data_audio в папке tf_files.

Теперь мы хорошо управляем data_maker.py скрипт в папке scripts. Откройте терминал в папке scripts и введите python data_maker.py

$ cd scripts
$ python data_maker.py

Для успешного запуска этого сценария на вашем компьютере должны быть установлены следующие пакеты.

  • сокс
  • libsox-fmt-mp3
  • ffmpeg
  • python-tk

После успешного запуска скрипта вы просто заходите в каждую папку динамиков внутри tf_files/data_audio/, вы можете увидеть голосовые клипы, которые в MP3 были преобразованы в wav-файлы, а wav-файлы были разделены на 20-секундные фрагменты, и для каждого фрагмента есть изображение JPG спектрограммы. Это наши тренировочные данные. Если вы хотите, вы можете перейти к скрипту data_maker и изменить продолжительность фрагментов.

Обучение

Как я уже упоминал, мы используем начальную модель Google. Выполните следующие команды, чтобы начать обучение.

$ cd scripts
$ IMAGE_SIZE=224
$ ARCHITECTURE="inception_v3"
$ python retrain.py   --bottleneck_dir=../tf_files/bottlenecks  \
        --how_many_training_steps=500  \
        --model_dir=../tf_files/models/   \
        --summaries_dir=../tf_files/training_summaries/"${ARCHITECTURE}"   \
        --output_graph=../tf_files/retrained_graph.pb   \
        --output_labels=../tf_files/retrained_labels.txt   \

--architecture="${ARCHITECTURE}"   \
        --image_dir=../tf_files/data_audio

Вы можете увеличить количество шагов обучения, если хотите.

Тестирование

Получите голосовой клип динамика и сгенерируйте спектрограмму его голоса с помощью data_maker.py сценарий или Аудио 2 Спектрограмма . Затем попробуйте протестировать модель, выполнив следующие команды

$ cd scripts
$ python label_image.py \
    --graph=../tf_files/retrained_graph.pb  \
    --labels=../tf_files/retrained_labels.txt  \
    --image=../path/to/generated/spectrogram.jpg

Смотрите видеоурок @ Демонстрация Audionet

Запросы??

По любым вопросам отправляйте письмо по адресу ksvishnu56@gmail.com.

Твоя очередь!!

Попробуйте решить проблему классификации городского звука с помощью inception и поразитесь, увидев результаты.

| Источник изображения: Интернет |

Счастливого кодирования..

Изображение
Изображение