Scipy - Audioverarbeitung

14

Ich suche gute Werkzeuge für die Audiosignalverarbeitung. zB Sprach- und Musikanalyse, automatische Spracherkennung usw.

Bietet die Scipy-Bibliothek Funktionen für die Audioverarbeitung? Hat es ein gutes Werkzeug für die Audiosignalverarbeitung?

Können Sie bitte ein Tool dafür vorschlagen?

user1147663
quelle
1
Ja, scipy bietet eine Infrastruktur, um diese Art von Dingen zu erledigen, aber Sie müssen ein bisschen genauer wissen, wonach Sie suchen, um eine nützlichere Antwort zu erhalten (insbesondere um zu beantworten, ob es ein "besseres Werkzeug als [scipy]" gibt oder nicht ).
A_A
1
Echtzeit oder offline?
Endolith
offline. Ich suche eine Sprach- / Musikklassifikation.
user1147663
1
Scipy und Numpy bieten zusammen hervorragende Tools für die Echtzeit- und Offline-Verarbeitung von Daten. In Kombination mit Cython oder Ctypes (ich bevorzuge eher den Cython-Ansatz) ist es einfach, numpy Arrays mit schnellen Operationen auf niedriger Ebene, die in C geschrieben sind, zu bearbeiten, wenn andere Bibliotheken nicht dazu überredet werden können, zu passen.
Henry Gomersall
1
Das einzige, was MATLAB fehlt, ist die Möglichkeit, den Ursprung eines Arrays als etwas anderes als 1 zu definieren. So wie der DC-Wert in der Ausgabe einer FFT in Bin # 1 statt in Bin # 0 ist, wie er sein sollte. Es gibt noch ein paar andere verrückte Dinge bei MATLAB (oder Octave).
Robert Bristow-Johnson

Antworten:

9

Persönlich finde ich Python eine der besten Möglichkeiten und habe selbst im Bereich der Audioidentifikation gearbeitet. Gerne können Sie beispielsweise meine Software zur automatischen Erkennung von Vögeln anhand von lauten Audioaufnahmen überprüfen : Ornithokrite . Das Programm wird vom neuseeländischen Naturschutzministerium verwendet und sie freuen sich darüber. Anhand dieses Beispiels möchte ich auf einige Vorteile der Verwendung von Python hinweisen:

  1. Riesige, sich schnell entwickelnde Community, die Tonnen von Bibliotheken anbietet. SciPy bietet eine Fülle von Methoden zur Signalverarbeitung (zugegeben, nicht so viele und ausgereift wie Matlab). Bedenken Sie jedoch, dass SciPy, obwohl es eines der wichtigsten ist, nur eines von Hunderten ist, die Ihnen bei Ihren Bemühungen helfen können. ich fand Aubio am besten für die Musikanalyse. Für die Sprach- und Musikerkennung werden Sie sicher eine große Anzahl von Audiofunktionen genießen, die Yaafe extrahieren kann.
  2. Es ist kostenlos! Sobald Sie die Akademie verlassen haben, werden Sie schnell feststellen, dass Matlab ziemlich teuer ist. Und selbst wenn Sie es sich leisten können, werden Ihre perspektivischen Benutzer über diese Abhängigkeit nicht glücklich sein. Beispielsweise würde das erwähnte Department of Conservation keine proprietäre Software akzeptieren.
  3. Die Identifizierung erfordert oft maschinelles Lernen, und Python verfügt über ein hervorragendes Toolkit: sklearn. Es ist auf dem neuesten Stand der Technik - und einfach zu bedienen. Schau es dir anWerfen Kaggle-Wettbewerbe (maschinelles Lernen) und überprüfen Sie, wie viele Top-Programmierer Python und sklearn verwenden.
  4. Sie können "Big Data" verwalten. Wenn Sie eine Analyse für große, vernetzte Datenbanken mit Aufzeichnungen durchführen möchten, verfügt Python über eine Reihe von Tools. Ich denke, Matlab / Octave-Schnittstelle ist nicht einfach mit zB Hadoop, aber bitte korrigieren Sie mich, wenn ich falsch liege. R macht diesen Bereich besser.
  5. Apropos Schnittstelle: Sie können Ihr Programm problemlos mit einer Website verbinden. So verwalte ich Ornithokrites (Vogelerkennung): Das Programm wird auf dem Cloud-Computing-Dienst von Amazon Web Services ausgeführt. Ideal, wenn Sie Ihre Software anderen Benutzern zur Verfügung stellen möchten, die nicht unbedingt alle erforderlichen Bibliotheken installieren möchten.

Meine zweite Wahl wäre R. Obwohl Python nicht so umfangreich ist wie Python, hat es eine große Anzahl nützlicher Bibliotheken (überprüfen Sie zB seewave) für Ihre Anwendungen). Die Installation unter Windows und Linux ist ein Kinderspiel. Dies ist wichtig, wenn Sie möchten, dass andere Benutzer Ihr Programm verwenden. Meiner Erfahrung nach ist Hochleistungsrechnen in R jedoch schwieriger - eine wichtige Sache, die zu beachten ist, wenn Sie VIELE Verarbeitung und Identifizierung durchführen müssen.

Beispiele für die Musikklassifikation in Python:

Buchen Gebäude Machine Learning Systeme mit Python hat ein Kapitel über die Musik-Klassifizierung

Andere Tools (Liste keineswegs vollständig): Python in Music

Lukasz Tracewski
quelle
2

Es scheint, dass Python eine beliebte Sprache dafür ist, mit einigen guten Toolsets, die auf der Tatsache basieren, dass gut ... Ich habe es in einigen Abteilungen und Unternehmen für Musik-Tech-Absolventen im Einsatz gesehen.

Im akademischen Bereich ist es weit verbreitet, diese Art von Arbeit in Matlab zu erledigen, da es viele leistungsstarke Toolkits (Signalverarbeitung, Paralleles Computing, Grafik, Datenbankdienstprogramme, Maschinelles Lernen, KI) in einer einfach zu testenden IDE vereint. Es kostet jedoch Geld und weist einige Nachteile auf (nicht die beste Programmiersprache in Bezug auf Anwendungsdesign und -leistung, daher handelt es sich hauptsächlich um ein Prototyping-Tool, das jedoch bis zu C kompiliert werden kann). Octave ist die kostenlose Alternative, aber ich kann nicht für die Qualität der Signalverarbeitungswerkzeuge oder der Software selbst bürgen, da ich sie nicht verwendet habe.

jm0
quelle
Eine großartige Bibliothek dafür ist github.com/worldveil/dejavu . Python, Open-Source, MIT-Lizenz, Audioerkennung und Fingerprinting.
Lollercoaster
scipyÖkosystem haben viele Funktionen von MATLAB.
Darleison Rodrigues
2

Sie können auch pyAudioAnalysis überprüfen : Es kombiniert offene Bibliotheken für die Mustererkennung und verschiedene Audio-Feature-Implementierungen. Einige in pyAudioAnalysis implementierte Beispielanwendungen , die Sie interessieren könnten:

  • Stille entfernen
  • Sprecherdiariation
  • Segmentklassifizierung (und Training) unter Verwendung von SVMs, kNN usw
  • gemeinsame Segmentierung-Klassifizierung (mit HMM)
  • Audio-Thumbnailing
  • Visualisierung von Audio-Inhalten
Theodore Giannakopoulos
quelle
0

Sie können die Essentia Audio Analysis C ++ - Bibliothek verwenden, die Python-Bindungen enthält. Sie werden alle Vorteile der Python / Scipy-Umgebung sowie viele Audio / Musik-Analyse-Algorithmen nutzen, die mit Essentia geliefert werden.

dimi
quelle