Scipy - аудіообробка


14

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

Чи надає бібліотека Scipy функції для обробки аудіо? Чи є у нього гарний інструмент для обробки аудіосигналів?

Чи можете ви, будь ласка, запропонувати інструмент для цього?


1
Так, scipy забезпечує інфраструктуру для подібних речей, але вам потрібно бути трохи більш конкретним щодо того, що ви хочете отримати, щоб отримати більш корисну відповідь (особливо, щоб відповісти, чи є "кращий інструмент, ніж [scipy]" ).
A_A

1
в режимі реального часу чи офлайн?
ендоліт

офлайн. Я шукаю класифікацію мови / музики.
користувач1147663

1
Scipy та Numpy разом забезпечують чудові інструменти як для обробки даних в режимі реального часу, так і для роботи в автономному режимі. У поєднанні з Cython або Ctypes (я, як правило, віддаю перевагу підходу Cython), легко працювати з нумерованими масивами з низькими рівнями швидких операцій, записаних на С, якщо інші бібліотеки не можуть переконатись у відповідності.
Генрі Гомерсалл

1
єдине, чого не вистачає MATLAB, - це можливість визначити походження масиву як щось інше, ніж 1. так, як значення постійного струму на виході 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. Якщо говорити про взаємодію, ви можете легко інтерфейсувати свою програму з веб-сайтом. Це те, як я керую Ornithokrites (розпізнавання птахів): програма працює на сервісі хмарних обчислень Amazon Web Services. Чудово, якщо ви хочете надати своє програмне забезпечення іншим людям, які не обов'язково хочуть пройти процедуру встановлення всіх необхідних бібліотек.

Мій другий вибір був би Р. Хоча він не такий багатий на функції, як Python, він має велику кількість корисних бібліотек (перевірте, наприклад, шиття для ваших програм). Встановлення цих систем як в Windows, так і в Linux - це торт, що важливо, якщо ви хочете, щоб інші користувалися вашою програмою. Однак, на мій досвід, високоефективні обчислення в R важче - важлива річ, яку потрібно помітити, якщо вам потрібно зробити ВЕЛИКОГО обробку та ідентифікацію.

Приклади класифікації музики на Python:

Системи машинного навчання книг з Python мають розділ про класифікацію музики

Інші інструменти (список аж ніяк не повний): Python in Music


2

Здається, що Python є популярною мовою для цього, використовуючи кілька гарних наборів інструментів, заснованих на тому, що добре ... Я бачив це у використанні в деяких відділах та компаніях з музичних технологій.

У наукових колах дуже часто бачити такий вид робіт, що виконуються в Matlab, оскільки він об'єднує багато потужних наборів інструментів (обробка сигналів, паралельні обчислення, графіки, утиліти бази даних, машинне навчання, AI) у простому зондуванні IDE. Однак це коштує грошей і має деякі недоліки (не найкраща мова програмування з точки зору дизайну та продуктивності програми, тому це, головним чином, інструмент для прототипування, але може скласти до C). Octave - це безкоштовна альтернатива, але я не можу поручитися за якість інструментів для обробки сигналів або програмного забезпечення, оскільки я не користувався ним.


Чудова бібліотека для цього - github.com/worldveil/dejavu . Python, з відкритим кодом, MIT має ліцензію та робить розпізнавання звуку та відбитки пальців.
козирок

scipyекосистема має багато функціональних можливостей MATLAB.
Darleison Rodrigues

2

Ви також можете перевірити pyAudioAnalysis : він поєднує відкриті бібліотеки для розпізнавання шаблонів та декількох реалізацій аудіофункцій. Деякі приклади програм, реалізованих у pyAudioAnalysis , які можуть вам бути цікавими:

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

0

Ви можете використовувати бібліотеку аудіо аналізу Essentia C ++, що включає в себе прив'язки пітона. Ви скористаєтесь всіма перевагами середовища python / scipy, а також безліччю алгоритмів аудіо / музичного аналізу, які поставляються разом з Essentia.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.