Zurück zur Startseite

OpenAudioSearch

Wir machen Speech2Text für viele Nutzer*innen verfügbar.

Open Audio Search ist eine Open-Source-Audiosuchmaschine, die gesprochenes Wort in Text umwandelt und diesen anschließend in einem Suchindex speichert.

Open Audio Search

Open Audio Search logo

Open Audio Search ist eine intelligente Suchmaschine für Audiodateien. Über automatische Spracherkennung wird gesprochene Sprache in Text umgewandelt, der dann in einer Volltextsuchmaschine indiziert wird. Die Engine kann RSS-Feeds abonnieren, um Inhalt von verschiedenen Quellen zu importieren. Über eine webbasierte Oberfläche können Nutzer*innen die generierten Transkripte von Radiosendungen und Podcasts durchsuchen und direkt von der Zeitmarke der Suchergebnisse abspielen.

Open Audio Search wird als kollaboratives Open-Source-Projekt entwickelt und kann leicht auf einem beliebigen Server installiert werden.

Motivation und Hintergrund

Wir haben einen Hintergrund in Community-Media-Netzwerken. Es gibt bereits kommerzielle Lösungen zur Spracherkennung, aber diese sind für freie Radios und andere nichtkommerzielle Medienprojekte nicht gut verfügbar: Ein minutenbasiertes Preismodell für die Sprachtranskription ist schlicht nicht finanzierbar oder zumindest sehr unattraktiv. Zwar sind Open-Source-Tools sowohl zur Spracherkennung als auch zur Volltextsuche vorhanden, aber diese sind bislang schwer aufzusetzen und nicht integriert - was einen großen händischen Aufwand bedeutet, um zu nutzbaren Ergebnissen zu kommen.

Gleichzeitig gibt es mehrere große Bestände an interessanten und relevanten Audio-Dateien wie Radio-Features und Podcasts, die unter freien Lizenzen veröffentlicht sind. Ein gutes Beispiel ist unser Partner in diesem Projekt, das “community broadcasting archive” oder auch freie-radios.net. Auf diesen Plattformen sind viele großartige Hörstücke archiviert, aber die einzelnen Beiträge und Features sind oft nur schwer wieder aufzufinden. Insbesondere für ehrenamtlich getragene Projekte bleibt oft wenig Zeit, um Beschreibungstexte, Metadaten oder gar Transkripte einzupflegen, nachdem die eigentliche Produktion abgeschlossen ist – umso mehr für Inhalte, die vor zwanzig Jahren produziert wurden und nun im Rahmen von Digitalisierungsprojekten online gestellt werden.

Mit Open Audio Search wollen wir diese Herausforderungen angehen und dazu beitragen, eine zukunftssichere und gut wartbare Open-Source-Plattform für community media discovery herzustellen. Über ein modulares Backend wollen wir Experimente mit neuen Technologien und intelligenten Algorithmen ermöglichen, um Community-Media-Produktionen ins Rampenlicht zu bringen. Wir hoffen, dass wir so Community-Media-Produzent*innen mit mehr Reichweite und einem breiteren Publikum versorgen können – denn wenn Inhalte nach ihrer Produktion Teil eines lebendigen und leicht durchforstbaren Archivs werden, dann gehen sie auch nicht so schnell wieder verloren, wie es derzeit oft der Fall ist.

Stand der Dinge

Mit der Förderung durch den Prototype Fund haben wir die letzten 6 Monate damit verbracht viele Ideen zu jonglieren, Backend, Frontend und Spracherkennungspipeline zu implementieren und ein Setup aufzubauen, um Open Audio Search als Open-Source-Projekt auch in Zukunft weiterentwickeln zu können.

Heute können wir nun unsere erste öffentliche Demo präsentieren:

demo.openaudiosearch.org

Screencast Open Audio Search demo

Diese Demo-Seite indiziert derzeit einigen aktuellen Inhalt von cba und freie-radios.net. Bitte beachtet: Das ist ein Alpha-Release und es ist mit Bugs und fehlenden Features zu rechnen. Wir freuen uns, wenn du uns Probleme und Ideen mitteilst - am einfachsten über unseren Issue-Tracker auf GitHub!

Features

Open Audio Search steht beim ersten Preview-Release, ein größeres Beta-Release folgt bald. Mit heutigem Stand sind die folgenden Features implementiert und nutzbar:

Zukunftspläne

Wir haben im Moment ein funktionierendes Setup, das in unserer Demo ausprobiert werden kann. Darüber hinaus haben wir schon einige konkrete Ideen, was in der näheren Zukunft passieren soll:

Wir laden alle, die Interesse daran haben, Community Media besser durchsuchbar und auffindbar zu machen, herzlich dazu ein, mit uns in Kontakt zu treten! Was technische Details betrifft, öffnet gerne Issues in unserem GitHub repo. Für andere Kommentare, Ideen oder potentielle Zusammenarbeit besucht bitte unseren Discord Chat Server oder schickt uns eine Email.

Technische Architektur

Open Audio Search ist komplett Open Source. Wir bauen auf verschiedenen Tools und Bibliotheken auf und unsere eigene Codebase besteht derzeit aus drei Hauptkomponenten in drei verschiedenen Programmiersprachen: Dem Backend (in Rust), dem Worker für Spracherkennung und Analysen (in Python) sowie dem Web-Frontend (in JavaScript). In unserem Repository befindet sich eine ausführliche Dokumentation der technischen Architektur, die wir fortlaufend ausbauen und verbessern werden.

Erfahrungen während der Förderung im Prototype Fund

In den sechs Monaten des Prototype Funds haben wir diese erste Version von Open Audio Search von Grund auf entworfen und implementiert.

Wir haben mit einem in Python geschriebenen Proof-of-Concept-Backend angefangen. Das hat gut funktioniert, aber uns wurde im Prozess klar, dass Python nicht unsere Programmiersprache der Wahl ist für eine stabiles, auf langfristige Weiterentwicklung und gute Wartbarkeit ausgerichtetes Backend. Daher haben wir ungefähr zur Hälfte der Förderlaufzeit beschlossen, das Backend in Rust zu schreiben. Rust ist eine recht neue Programmiersprache, die über ihre strenge Typisierung und diverse weitere Features viel dazu beitragen kann, zuverlässige und effiziente Software zu bauen. Die Umstellung des Backends auf Rust erwies sich als Herausforderung und lohnende Aufgabe zugleich: Die anfängliche Implementierung hat eine Weile gedauert, erwies sich aber schon in der Anfangsphase als sehr zuverlässig und erlaubt es uns, zu iterieren und refactoring zu betreiben, ohne dass wir uns große Sorgen machen müssen.

Recht frühzeitig haben wir uns für den derzeitigen Stack an Datendiensten entschieden, die in Open Audio Search verwendet werden: CouchDB als unser primärer Datenspeicher und Elasticsearch für den Suchindex.

Parallel haben wir ein webbasierte Frontend entwickelt: Fließendes Hin und Her zwischen Mockups und Entwürfen und der Implementierung als single page application mit React. Im Vordergrund stand dabei eine flott funktionierende Suchseite.

Von Anfang an haben wir versucht, ein reibungsloses Packaging zu bieten. Wir haben ein Setup zur continuous integration, das nach jedem Commit ein neues Docker-Container-Abbild erzeugt. Damit können wir Produktivinstanzen wie die aktuelle Demo-Seite laufend auf den neuesten Entwicklungsstand aktualisieren und andere Nutzer*innen können ebenfalls schnell und unkompliziert ein Instanz aufsetzen.

Zwei zunächst angedachte Features mussten in die nähere Zukunft geschoben werden: Durch Natural Language Processing (NLP) wollen wir Schlüsselwörter und Tags aus den Transkripten extrahieren, die wir dann für eine bessere Suche und Kategorisierung einsetzen möchten. Wir haben zwar ein minimales proof-of-concept-Setup für NLP und Named Entity Recognition (NER) in der derzeitigen Codebase – für eine wirklich hilfreiche automatisierte Verschlagwortung braucht es aber noch mehr Tuning und Entwicklung.

Wir wollen außerdem eine Möglichkeit herstellen, um die Datenbanken von verschiedenen Instanzen von Open Audio Search über ein peer-to-peer-Netzwerk zu synchronisieren. Wir haben dazu bereits einige Ansätze, diese sind aber noch nicht in der Hauptlinie der Codebase integriert. Mit dem in CouchDB integrierten replication feature haben wir dafür eine solide Grundlage.

Bevor wir in einigen Monaten in Production gehen sind noch ein paar Features zu entwickeln: Wir brauchen eine bessere Fehlerberichterstattung, eine zuverlässigere Auftragswarteschlange und eine bessere Vorverarbeitung, um Musik und Geräusche in den Audiofiles von Sprache zu trennen.

Bei einem Open-Source-Projekt geht es nicht nur ums Programmieren. Für eine lebendige Zukunft braucht es Dokumentation und Offenheit für weitere Entwickler*innen. Hier haben wir in den letzten sechs Monaten viel nachgeholt. Wir haben jetzt READMEs und issue templates in unserem GitHub-Repository und einen öffentlichen Chat auf Discord. Außerdem konnten wir unser internes Projektmanagement deutlich verbessern. Der Workshop mit zero360, den wir im Rahmen des Prototype Funds durchführen konnten, hat uns hier sehr weitergeholfen. Wir haben damit angefangen, öfters virtuelle Whiteboards zur Projektplanung zu benutzen und haben erfolgreich effektivere Abläufe in unseren wöchentlichen Treffen eingeführt.

Wir bedanken uns beim BMBF und dem DLR für die Förderung von Open Audio Search.