BigBlueButton transcription and information lookup
By Rausch, Fabian and Welter, Felix
Einleitung
Die anhaltende Pandemie hat die Nachfrage nach digitaler Kollaborationssoftware in verschiedenen Bereichen wie Arbeitswelt, soziale Gemeinschaften und Bildung verstärkt. Dies ist ein möglicherweise nachhaltiger Trend über die Pandemie hinaus. BigBlueButton ist eine Open-Source-Videokonferenzsoftware, die z.B. für synchrone, digitale Vorlesungen und Seminare an der Universität Hamburg eingesetzt wird. Diese Software wurde im Rahmen des Masterprojekts “Web Interface for Language Processing Systems” um eine Speech-to-Text-Komponente (Kaldi) erweitert. Zu Inhalten des transkribierten Texts können weitere Informationen abgefragt und direkt im Meeting-Raum angezeigt werden.
Kontext
Autoren: Fabian Rausch und Felix Welter
(Studiengang M.Sc. Wirtschaftsinformatik)
Masterprojekt: Web Interfaces for Language Processing Systems
Arbeitsbereich: UHH Language Technology Group
Projektbetreuer: Prof. Dr. Chris Biemann, Dr. Seid Muhie Yimam
Demo Video
In diesem Video ist eine Demonstration des aktuellen Entwicklungsstands zu sehen.Einsatzszenarien
Die vorgestellte Erweiterung von BigBlueButton ist ein wertvolles Hilfsmittel für Studierende in Vorlesungen oder Mitarbeiter in einem beruflichen Meeting, falls sie z. B. die Bedeutung eines bestimmten Begriffs nicht kennen und dem Meeting weiter folgen wollen. Hierdurch kann die Qualität digitaler Lehre verbessert werden. Außerdem kann der Benutzer den gesamten transkribierten Text im Anschluss des Meetings extrahieren und für verschiedene Zwecke, wie z. B. Protokollierung, verwenden. Dies kann besonders in der Arbeitswelt hilfreich sein.
Softwarearchitektur
Um die beschriebene Funktionalität in BigBlueButton bereitzustellen, wurden mehrere Softwarekomponenten entworfen. Auf der folgenden Abbildung sind die einzelnen Services blau dargestellt.
Die im folgenden beschriebenen Services sind in Docker Containern bereitgestellt. Eine Ausnahme davon bildet der html5-client von BigBlueButton, da dieser den Entwicklungs- und Deploymentrichtlinien von BigBlueButton folgt.
Aus dem Architekturschaubild ist auch ersichtlich, dass alle Verbindungen über den html5-client von BigBlueButton erfolgen und damit über den Browser des Konferenzteilnehmers abgewickelt werden. Zwar erhöht dies geringfügig die Latenz, gibt dem Nutzer aber volle Kontrolle darüber, welche Informationsquellen er neben den schon bereitgestellten nutzen möchte. Auch ist das System somit loser an BigBlueButton gekoppelt und kann potentiell auf jeder Webseite eingebunden werden.
HTML5-client
Dies ist eine modifizierte Version der Webkomponente von BigBlueButton. Im Schaubild wird unterschieden zwischen dem Client des Sprechers und der Zuhörer. Der Client des Sprechers baut eine Verbindung zu dem Spracherkennungsdienst (kaldi-model-server) auf, sowieso zum message-broker, welcher den transkribierten Text an alle Teilnehmer der Konferenz verteilt.
Teilnehmer können Begriffe nun in verschiedenen Informationsquellen suchen. Potentiell interessante Begriffe werden durch den relevant-terms Service hervorgehoben. Als Informationsquellen dienen standardmäßig Wikipedia und ein Verzeichnis mit PDF-Dokumenten (z.B. Vorlesungsfolien).
Kaldi-model-server
Der Kaldi Model Server ist ein Projekt der Language Technology Group der Universität Hamburg und stellt eine Schnittstelle zu dem Kaldi Speech Recognition Toolkit bereit. Mit kleinen Modifikationen haben wir diesen mit dem html5 Client von BigBlueButton verbunden, sodass gesendete Audiodaten als Text zurückgegeben werden.
Message-broker
Der message-broker ist ein nodejs Script, welches eingehende Nachrichten an alle Teilnehmenden der Konferenz weiterleitet. Dadurch wird der Text, welcher beim Sprecher transkribiert wird, allen Teilnehmenden zugänglich.
Relevant-terms-tagger
Der Relevant-terms-tagger nimmt Text entgegen und gibt potentiell interessante Worte daraus zurück. Derzeit wird dazu Named Entity Recognition verwendet. Perspektivisch kann dieser Dienst aber auch mit den Informationsquellen gekoppelt werden, um Begriffe zu markieren, für die Informationen hinterlegt sind.
Standard Request Format
Alle Anfragen an Informationsquellen folgen dem gleichen Schema. Dadurch ist es sehr einfach, neue Informationsquellen hinzuzufügen. So können beispielsweise mithilfe einer Middleware direkt aus BigBlueButton heraus passend zum Gesprächthema Github Respositories oder auch Unternehmensdatenbanken durchsucht werden. Die Software wird dadurch einfach anpassbar und damit für verschiedene Einsatzzwecke über den vorgestellten Use Case der Vorlesung hinaus attraktiv.
Informationsquellen: Lecture Slides und Wikipedia
Derzeit sind die beiden genannten Informationsquellen implementiert und in BigBlueButton Konferenzen verfügbar. Bei einer Anfrage an eine Informationsquelle werden immer der Suchbegriff sowie der Gesprächskontext übergeben. Der Kontext besteht dabei aus dem umstehenden Sätzen, sodass die Informationsquellen auch bei mehrdeutigen Worten passende Ergebnisse zurückgeben können.
Der lecture slide index ist in Python implementiert und nutzt die Bibliotheken
- Pdfplumber zum Auslesen und Verarbeiten von PDF Dateien
- Whoosh zum Indizieren von Inhalten
- Flask zur Bereitstellung von HTTP Endpunkten
Er umfasst die Möglichkeit PDF Dokumente hochzuladen, deren Text zu extrahieren und zu indizieren sowie Dokumente über das Standard Request Format abzufragen.
Der Zugriff auf Wikipedia erfolgt über zwei alternative Schnittstellen. Für die erste Zugriffsmöglichkeit ist ein vollständiger Wikipedia Export aller deutschsprachigen Artikel in einer ElasticSearch Instanz indiziert, die anschließend über REST angesprochen werden kann. Der Vorteil hierbei ist die Unabhängigkeit von einer funktionierenden Internetverbindung zu Wikipedia. Der Nachteil ist, dass der Export schnell an Aktualität verliert und demnach regelmäßig neu indiziert werden muss. Außerdem bedarf es einer umfangreichen Konfiguration von ElasticSearch, um passende Suchergebnisse auf dem Qualitätsniveau von Wikipedia selbst zu erhalten. Daher ist zusätzlich die Wikipedia API inklusive eines Wrappers für das Standard Request Format angebunden. Diese liefert aktuelle und zuverlässige Ergebnisse für die angefragten Begriffe.