Scipy - обработка аудио


14

Я ищу хорошие инструменты для обработки аудио сигнала. например, анализ речи и музыки, автоматическая идентификация языка и т. д.

Предоставляет ли библиотека Scipy функции для обработки звука? Есть ли у него хороший инструмент для обработки аудио сигнала?

Можете ли вы предложить инструмент для этого?


1
Да, scipy предоставляет инфраструктуру для такого рода вещей, но вам нужно быть немного более конкретным в отношении того, что вы ищете, чтобы получить более полезный ответ (особенно чтобы ответить, существует ли «лучший инструмент, чем [scipy]» ).
A_A

1
в реальном времени или в автономном режиме?
эндолит

не в сети. Я ищу классификацию речи / музыки.
user1147663

1
Scipy и Numpy вместе предоставляют отличные инструменты для обработки данных как в режиме реального времени, так и в автономном режиме. В сочетании с Cython или Ctypes (я предпочитаю подход Cython), легко работать с массивными массивами с низкоуровневыми быстрыми операциями, написанными на C, если другие библиотеки не могут быть убедительными для соответствия.
Генри Гомерсалл

1
Единственное, чего не хватает в MATLAB - это возможность определить источник массива как нечто отличное от 1. Так что значение DC на выходе FFT находится в bin # 1 вместо bin # 0, как и должно быть. В MATLAB (или Octave) есть и другие глупости.
Роберт Бристоу-Джонсон

Ответы:


9

Лично я нахожу Python одним из лучших вариантов там и сделал некоторые работы в области аудио идентификации. Приглашаем вас проверить, например, мое программное обеспечение для автоматической идентификации птиц по шумным аудиозаписям: Ornithokrites . Программа используется Департаментом охраны природы Новой Зеландии, и они рады этому. Основываясь на этом примере, я хотел бы указать на несколько преимуществ использования Python:

  1. Огромное, быстро развивающееся сообщество, предоставляющее множество библиотек. SciPy предоставляет множество методов для обработки сигналов (предоставлено, не так много и зрелых, как Matlab). Имейте в виду, что SciPy, хотя и один из самых важных, является лишь одним из сотен, которые могут помочь вам в ваших начинаниях. Я нашел Aubio лучше всего для анализа музыки. Для распознавания речи и музыки вы наверняка насладитесь множеством звуковых функций, которые Yaafe может извлечь.
  2. Это бесплатно! Выйдя из академии, вы быстро обнаруживаете, что Matlab довольно дорогой. И даже если вы можете себе это позволить, ваши потенциальные пользователи не будут рады этой зависимости. Например, упомянутый Департамент консервации не будет принимать проприетарное программное обеспечение.
  3. Для идентификации часто требуется машинное обучение, и у Python есть отличный инструментарий для этого: sklearn. Это современная библиотека - и простой в использовании. Посмотрите соревнования Kaggle (машинное обучение) и узнайте, сколько ведущих программистов используют Python и sklearn.
  4. Вы можете управлять «большими данными». Если вы хотите провести анализ по огромным сетевым базам данных записей, то Python имеет хорошо зарекомендовавший себя набор инструментов. Я не думаю, что Matlab / Octave легко взаимодействуют, например, с Hadoop, хотя, пожалуйста, исправьте меня, если я ошибаюсь. R делает лучше эту область.
  5. Говоря об интерфейсе, вы можете легко связать свою программу с веб-сайтом. Так я управляю орнитокритами (распознавание птиц): программа работает на сервисе облачных вычислений Amazon Web Services. Прекрасно, если вы хотите предоставить свое программное обеспечение другим людям, которые не обязательно проходят процедуру установки всех необходимых библиотек.

Мой второй выбор был бы R. Хотя он не так богат, как Python, он имеет множество полезных библиотек (проверьте, например, seewave для ваших приложений). Их установка как в Windows, так и в Linux является простой задачей, что важно, если вы хотите, чтобы другие использовали вашу программу. Однако, по моему опыту, высокопроизводительные вычисления в R труднее - это важно заметить, если вам нужно сделать МНОГО обработки и идентификации.

Примеры классификации музыки в Python:

В Системе машинного обучения Book Building с Python есть глава о классификации музыки

Другие инструменты (список отнюдь не полный): Python in Music


2

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

В академических кругах очень часто можно встретить этот тип работы, выполненный в Matlab, поскольку он объединяет множество мощных наборов инструментов (обработка сигналов, параллельные вычисления, построение графиков, утилиты баз данных, машинное обучение, AI) в простой для исследования IDE. Однако это стоит денег и имеет некоторые недостатки (не самый лучший язык программирования с точки зрения дизайна и производительности приложений, поэтому в основном это инструмент для создания прототипов, но он может компилироваться до C). Octave - бесплатная альтернатива, но я не могу ручаться за качество инструментов обработки сигналов или самого программного обеспечения, так как я не использовал его.


Отличная библиотека для этого - github.com/worldveil/dejavu . Python, с открытым исходным кодом, MIT лицензируется и выполняет распознавание звука и снятие отпечатков пальцев.
Lollercoaster

scipyЭкосистема имеет много функциональных возможностей MATLAB.
Дарлисон Родригес

2

Вы также можете проверить pyAudioAnalysis : он объединяет открытые библиотеки для распознавания образов и несколько реализаций аудио функций. Некоторые примеры приложений, реализованных в pyAudioAnalysis , которые могут вас заинтересовать:

  • удаление тишины
  • диариация
  • классификация сегментов (и обучение) с использованием SVM, kNN и т. д.
  • совместная сегментация-классификация (с использованием HMM)
  • миниатюра аудио
  • визуализация аудио контента

0

Вы можете использовать библиотеку C ++ для анализа аудио Essentia , которая включает в себя привязки Python. Вы воспользуетесь всеми преимуществами среды Python / Scipy, а также множеством алгоритмов анализа аудио / музыки, которые поставляются с Essentia.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.