[Инструмент глубокого обучения] · Извлечение аудиофункций pyAudioAnalysis Toolkit

искусственный интеллект Python

Автор: Гуй.

Время: 2017-05-04 18:31:09

Ссылка на сайт:Блог Woohoo.cn на.com/Xingshan Temple/… 


предисловие

Такие приложения, как распознавание речи, неотделимы от извлечения аудиофункций.Недавно я просматривал содержимое извлечения аудиофункций и использовал инструментарий под python——pyAudioAnalysis: Библиотека Python с открытым исходным кодом для анализа аудиосигналов, документация по инструментарию может бытькликните сюдаСкачать, соответствующая ссылка на githubкликните сюда.

Оригинальная документация этого инструментария поддерживает установку Linux и плохо совместима с python3, обратите внимание.

1. Введение в общие наборы инструментов

В настоящее время для звуковых сигналов C/C++, Python, MATLAB и другие широко используемые наборы инструментов:

Два, pyAudioAnalysis Toolkit Введение

pyAudioAnalysis — это набор инструментов для обработки звука, основные функции которого следующие:

Среди них Feature Extraction включает (по порядку):

Чтобы добавить примечание:

  • 1-скорость пересечения нуля: краткосрочная средняя скорость пересечения нуля, то есть количество точек пересечения нуля сигнала в каждом кадре сигнала, отражающее частотные характеристики.

  • 2-Энергия: Кратковременная энергия, то есть сумма квадратов каждого кадра сигнала, которая отражает силу энергии сигнала.

  • 3-энтропия энергии: энергетическая энтропия, аналогичная спектральной энтропии (спектральной энтропии) спектра, но описывающая распределение сигнала во временной области, отражающая непрерывность

  • 4-Спектральный центроид: Спектральный центр также известен как спектральное расстояние первого порядка. Чем меньше значение спектрального центра, тем больше спектральной энергии сосредоточено в низкочастотном диапазоне. Например, по сравнению с музыкой, спектральный центроид обычно ниже.

  • 5-спектральное распространение: спектральное распространение, также известное как центральный момент спектра второго порядка, которое описывает распределение сигнала вокруг центра спектра.

  • 6-Спектральная энтропия: Спектральная энтропия, в соответствии с характеристиками энтропии, чем равномернее распределение, тем больше энтропия, а энергетическая энтропия отражает однородность каждого кадра сигнала Спектр более однороден, и VAD является одним из приложения.

  • 7-Спектральный поток: Спектральный поток, описывающий изменение спектра соседних кадров.

    12345678 function [vsf] ``= FeatureSpectralFlux (X, f_s)     ``% difference spectrum (``set first diff to zero)``    ``afDeltaX    ``= diff([X(:,``1``), X],``1``,``2``);``         ``% flux``    ``vsf         ``= sqrt(``sum``(afDeltaX.^``2``))``/``size(X,``1``);``end
  • 8-Спад спектра: Точка спада спектра, дающая определение:

  • 9~21-MFCCs: это знаменитый кепстральный коэффициент Мела.В Интернете есть много информации, и это также очень важная характеристика звука.
  • 22 ~ 33-хрома вектор: имеет 12 параметров, соответствующих 12-уровневым масштабам, или увидеть исходное объяснение: 12-элементное представление спектральной энергии, в котором банки представляют собой 12 классов равных высот. Музыка (семитонный интервал).
  • 34-Отклонение цветности: это стандартное отклонение вектора цветности.

Это может быть использовано больше в музыке, и в настоящее время нет связи с такими функциями:

Что такое характеристики цветности? дайте схему

пример кода:

1234567 from pyAudioAnalysis ``import audioBasicIO``from pyAudioAnalysis ``import audioFeatureExtraction``import matplotlib.pyplot as plt``[Fs, x] ``= audioBasicIO.readAudioFile(``"sample.wav"``);``F ``= audioFeatureExtraction.stFeatureExtraction(x, Fs, ``0.050``*``Fs, ``0.025``*``Fs);``plt.subplot(``2``,``1``,``1``); plt.plot(F[``0``,:]); plt.xlabel(``'Frame no'``); plt.ylabel(``'ZCR'``);``plt.subplot(``2``,``1``,``2``); plt.plot(F[``1``,:]); plt.xlabel(``'Frame no'``); plt.ylabel(``'Energy'``); plt.show()

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

Есть графики и звуки, которые можно щелкнуть, звук — это соответствующий звук, а график соответствует рендерингу функции, такой как открытие zeroCross:

Три, установка инструментария pyAudioAnalysis

pyAudioAnalysis соответствующая ссылкакликните сюда. Для установки этого инструментария требуются зависимости:

А-хмммобучиться установке

Ссылка на hmmlearnкликните сюда. Для установки hmmlearn необходимо выполнить несколько условий:

После загрузки я помещаю hmmlearn-master в каталог python-3.5.2-0\Lib\, cd в окне cmd и ввожу:

1 pip install ``-``U ``-``-``user hmmlearn

Вы можете успешно установить его:

Установка инструментария B-Simplejson:

Simplejson – это кодировщик и декодер JSON для Python. Он простой, быстрый, полный, правильный и легко расширяемый. Соответствующая ссылкакликните сюда. Инструментарий Simplejson можно установить напрямую с помощью conda:

Установка C-eyed3:

eyed3: Инструмент для работы с аудиофайлами, особенно файлами MP3, содержащими метаданные ID3.Он предоставляет возможность чтения и записи тегов ID3 ​​(v1.x и v2.3/v2.4). В то же время он может обнаруживать информацию заголовка файлов MP3, включая скорость передачи данных, частоту дискретизации и время воспроизведения. Прямая установка conda eyed3 не удалась, соответствующая ссылкакликните сюда. Выбрал эту версию:

 

Поместите его в папку Lib библиотеки python: C:\Users\Nobleding\Anaconda3\pkgs\python-3.5.2-0\Lib, перейдите в соответствующий каталог, pip установите имя файла.whl, установка может быть завершенный

Установка D-pydub:

pydub — это широко используемый инструментарий для обработки звука, например:

Откройте файл формата wav:

12 from pydub ``import AudioSegment``song ``= AudioSegment.from_wav(``"never_gonna_give_you_up.wav"``)

Чтобы открыть mp3-файл:

1 song ``= AudioSegment.from_mp3(``"never_gonna_give_you_up.mp3"``)

Или другие аудио и видео форматы:

123456 ogg_version ``= AudioSegment.from_ogg(``"never_gonna_give_you_up.ogg"``)``flv_version ``= AudioSegment.from_flv(``"never_gonna_give_you_up.flv"``) mp4_version ``= AudioSegment.from_file(``"never_gonna_give_you_up.mp4"``, ``"mp4"``)``wma_version ``= AudioSegment.from_file(``"never_gonna_give_you_up.wma"``, ``"wma"``)``aac_version ``= AudioSegment.from_file(``"never_gonna_give_you_up.aiff"``, ``"aac"``)

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

При обработке wav файлов других требований нет, если аудио в других форматах требует установки на компьютерffmpeg orlibav.Если он не установлен, при запуске будет подсказка:

скачать ffmpeg, выберите версию

Разархивируйте и добавьте переменные среды, а затем используйте ffplay для проверки открытия файла mp4:

ffmpeg успешно установлен. В настоящее время импортируйте pydub, предупреждающей информации больше нет.

Установка E-pyAudioAnalysis

GithubДается идея установки под linux.После скачивания поместите pyAudioAnalysis в папку \Anaconda3\Lib\site-packages и введите команду:

Вызывается успешно, исходные данные поддерживают Python2, многие детали нужно доработать, дам простой тест на чтение wav:

123456 from pyAudioAnalysis ``import audioBasicIO``import numpy as np``import matplotlib.pyplot as plt``[Fs, x] ``= audioBasicIO.readAudioFile(``"count2.wav"``);``time ``= np.arange(``0``,``len``(x))``*``1.0``/``Fs``plt.plot(time,x)

Рендеринг: