Ein Audio-Übertragungssystem mit Open Source Software auf WLAN Basis

Es ist rund zwei Jahre her, dass mich jemand fragte, ob ich nicht eine Idee für ein kostengünstiges Sprachkonferenzssystem hätte. Das System sollte als Simultanübersetzungssystem für Flüchtlinge verwendet werden. Die Übertragung sollte über Bluetooth oder WLAN stattfinden. Idealerweise sollten Smartphones als Empfänger verwendet werden.

Ich startete mit einem Raspberry Pi als Server und versuchte diverse Ansätze. Für den Datentransport wollte ich WLAN verwenden. Schnell stellte sich heraus, dass es primär zwei Probleme gab: Entweder war der Paketverlust gering (und damit keine oder kaum Abbrüche in der Audioübertragung), die Zeit zwischen Übersetzung und Empfang aber hoch (was schlecht für Simultanübersetzung ist) oder aber der Paketverlust war hoch (Abbrüche in der Audioübertragung) und die Latenz gering. Beides war nicht gewünscht.

Schließlich fand ich einen guten Kompromiss mit Mumble (einer Open Source Voice-over-IP Software). Dieser Blog Artikel ist als Howto zum Nachbauen gedacht.

Motivation für diesen Post

Insbesondere kleine Organisationen können sich keine teuren Sprachkonferenzsysteme leisten. Ich wollte deshalb eine leicht verständliche Anleitung schreiben, wie man ein Audio-Übertragungssystem selbst bauen kann. Beim Schreiben wurde mir dann klar, dass der Artikel extrem lang werden würde (das ist er ja jetzt schon), wenn ich alles bis ins Detail erkläre. Ich habe deshalb versucht mich auf die Kernkomponenten zu beschränken.

Um das Folgende zu verstehen, braucht man gewisse Grundkenntnisse. Vor allem sollte man einen WLAN Router konfigurieren können und über grundlegende Netzwerkkenntnisse verfügen. Linux-Kentnisse sind hilfreich, aber nicht dringend notwendig. Idealerweise hat man schonmal mit einem Raspberry Pi gebastelt.

Einführung: Was ist Mumble?

Ich hatte zu Anfang erwähnt, dass ich nach viel Experimentieren bei Mumble gelandet bin. Stellt sich also die Frage, was "Mumble" ist und warum es für die Lösung unseres Problems gut geeignet ist.

Mumble ist eine kostenlose, Open Source, Voice-over-IP Kommunikationslösung. Mumble kann also Audio über IP-Netzwerke übertragen. Dazu können Nutzer "Kanälen" beitreten und innerhalb dieser Kanäle entweder per Sprache oder aber auch per Text kommunizieren. Das ist der erste Vorteil von Mumble, man kann damit leicht ein Übersetzungssystem für mehrere Sprachen bauen, indem man einfach für jede Sprachübersetzung einen eigenen Kanal anlegt. Diesem Kanal treten dann der Übersetzer und die Zuhörer bei. Die Zuhörer hören, was der Übersetzer sagt.
Was Nutzer tun können und was nicht, wird über sogenannte Access Control Lists (ACL) für jeden Kanal festgelegt. So kann z.B. bestimmten Benutzergruppen das "Rederecht" entzogen werden. Diese Nutzer können dann in einem Kanal nur hören, aber selbst nichts sagen. Die Idee ist nun, den jeweiligen Übersetzern dieses "Rederecht" zu gewähren, alle Anderen dürfen nur hören.

Ein weiterer Vorteil von Mumble ist, dass es die von mir anfänglich erwähnte Probleme elegant löst. Zur Sprachübertragung nutzt es den Codec Opus. Opus ist ein Verfahren um Audiodaten komprimiert in "Echtzeit" zu übertragen. "Echtzeit" bedeutet, die Sprachdaten müssen in einer bestimmten Zeitspanne übertragen worden sein. Das ermöglicht eine sehr niedrige Latenz der Audioübertragung. Gleichzeitig unterstützt Opus "Forward Error Correction". Das heißt, wenn bei der Übertragung von Audiodaten Pakete verloren gehen, kann Opus einen Teil der verloren gegangenen Pakete wiederherstellen. Trotz niedriger Latenz fehlen damit nur selten Daten im Audiodatenstrom.

Genereller Aufbau

Zum besseren Verständnis soll noch einmal kurz der Aufbau beschrieben werden. Ich hatte noch keine Zeit etwas besseres zu malen, deshalb das ganze als ASCII-Art:

 ((*))     ((*))
   |         |   
 +-------------+                +---------------------+
 |             | ---- WLAN ---- |Smartphone Übersetzer|
 |             |                +---------------------+
 |             |                +---------------------+
 |             | ---- WLAN ---- |  Smartphone Hörer   |
 | WLAN Router |                +---------------------+
 |             |                +---------------------+
 |             | ---- WLAN ---- |  Smartphone Hörer   |
 |             |                +---------------------+
 +-------------+
       |   
      LAN 
       |   
 +--------------+
 | Raspberry Pi |
 |  mit Mumble  |   
 +--------------+

Die Idee ist, eine Raspberry Pi mit installiertem Mumble als Server zu verwenden. Der Raspberry Pi ist per LAN Kabel direkt mit dem WLAN Router verbunden. Das Kabel kann einen halben Meter kurz sein und der Raspberry Pi wird irgendwo zusammen mit dem WLAN Router fest stationiert.
Sowohl Übersetzer als auch Hörer haben ein Smartphone auf dem eine Mumble-App läuft. Sie kommunizieren mit dem Mumble-Server auf dem Raspberry Pi über den WLAN-Router.
Wir richten den Mumble-Server so ein, dass es für jede Sprachübersetzung einen eigenen Kanal gibt. In diesen Kanälen haben, wie oben erwähnt, nur bestimmte Smartphones das "Rederecht" (Übersetzer). Alle anderen können nur hören.

Los geht's - Was benötige ich an Hardware?

  • Raspberry Pi 2 oder höher mit SD Karte & Netzteil
  • USB-Tastatur und Monitor mit HDMI (Adapter-)Kabel zum (initialen) Einrichten des Raspberry Pi
  • WLAN Router mit LAN Buchse für unser Übersetzungssystem
  • Rechner zum Administrieren von Mumble
  • Geräte zum Testen des Setup, z.B. zwei Android Smartphones
  • Internetzugang über den der Raspberry Pi temporär angeschlossen und geupdated werden kann

Vorbereiten des WLAN Routers

Der WLAN Router sollte nur für das Übersetzungssystem verwendet werden, macht ihr das nicht und andere Nutzer nutzen den Access Point z.B. zum Surfen im Internet, werdet ihr Verbindungsprobleme bekommen. WLAN ist ein "shared medium", das heißt, alle Teilnehmer teilen sich die verfügbare Bandbreite. Das wir möglichst keine Störungen unserer Audioübertragung möchten, ist es sinnvoll den WLAN Router auch nur für Audiodaten-Übertragungen zu verwenden. Aus diesem Grund sollte der WLAN Router auch nicht mit dem Internet verbunden werden.

Wir richten nun das WLAN Netzwerk ein. Ihr könnt eine beliebige SSID vergeben, beispielsweise "Translation System". Generell würde ich empfehlen WPA2 Verschlüsselung zu aktivieren. Das hat zwar den Nachteil, dass später jeder Teilnehmer am Übersetzungssystem erst das WLAN-Netzwerk z.B. auf seinem Smartphone einrichten muss, es macht es einem potentiellen Angreifer aber etwas schwerer, sein Unwesen zu treiben. Um die Einrichtung des WLAN später auf den Smartphones zu erleichtern, kann man z.B. die Zugangsdaten per QR-Code teilen.

Der WLAN Router muss den verbundenen Clients (also später den Smartphones von Übersetzern und Hörern) automatisch eine IP per DHCP zuweisen. Dem Raspberry Pi selbst kann man entweder auch eine IP per DHCP zuweisen lassen oder eine feste IP vergeben. In der folgenden Anleitung nutzen wir ersteres. Meine Empfehlung ist hier, den WLAN Router so einzurichten, dass er stets die gleiche IP zugewiesen bekommt.

Raspberry Pi als Mumble-Server einrichten

Wir richten nun den Raspberry Pi als Mumble-Server ein. Falls ihr im folgenden einen Kasten seht, dessen Inhalt mit einem $ Zeichen beginnt, so soll das eine Konsoleneingabe darstellen. Ihr müsst den Befehl ohne das Dollarzeichen eingeben und mit ENTER zum Ausführen bringen. Falls der Befehl während des Ausführens eine Eingabe von euch erfordert, weise ich darauf hin.
Vor den meisten Kommandos wird das Wort sudo stehen. Es sorgt dafür, dass das dahinter stehende Kommando mit höheren Rechten ausgeführt wird. Dieses Kommando benötigt gelegentlich ein Passwort. Ich weise im Folgenden nochmal daraufhin.

Schritt 1.
Raspbian auf der SD Karte installieren und in Raspberry Pi stecken. Ich gehe in dieser Anleitung nicht auf das Installieren von Raspbian ein. Ihr findet viele gute Anleitungen über Google.

Schritt 2.
Monitor, Tastatur sowie LAN Kabel an den Raspberry Pi anschließen. Das LAN Kabel müsst ihr mit eurem Heimrouter verbinden. Wir brauchen kurz eine Internetverbindung, um Raspbian auf den neuesten Stand bringen zu können und um Software nachzuinstallieren. Der WLAN Router den wir später für das Übersetzungssystem benötigen und den ihr oben konfiguriert habt, ist her nicht gemeint (der sollte ja eigentlich auch keinen Internetzugang haben, siehe oben).

Schritt 3.
Monitor anschalten, dann Raspberry Pi anschalten (d.h. das Netzteil anschließen). Der Raspberry Pi sollte nun booten und eine IP per DHCP von eurem Heimrouter bekommen.

Schritt 4.
Am Raspberry Pi einloggen als Nutzer pi mit Passwort raspberry. Hier ist zu beachten, dass das Standard Tastaturlayout Englisch ist, Z und Y sind also vertauscht. Statt einem Y müsst ihr ein Z eingeben.

Schritt 5.
Keyboard Layout auf Deutsch ändern. Dazu folgendes in der Konsole eingeben und mit ENTER bestätigen.

$ sudo dpkg-reconfigure keyboard-configuration

Zuerst das Passwort des Nutzers pi erneut eingeben, beachtet wieder das Y und Z vertauscht sind. Es muss dann zuerst der Tastaturtyp gewählt werden, hier einfach mit ENTER bestätigen. Im folgenden Screen Other wählen (mittels der Pfeiltasten) und mit ENTER bestätigen. Im darauf folgenden Screen German wählen, wieder mit ENTER bestätigen. Im folgenden Screen als Layout German - German (eliminate dead keys) wählen und erneut mit ENTER bestätigen (siehe Bild). Im vorletzten Screen kann man noch die Funktion der Taste AltGr im letzten Screen eine Compose Key festlegen. Beide Screens einfach mit ENTER bestätigen.

Nach dem Ändern des Layouts, starten wird den Raspberry Pi neu. Sobald der Neustart beendet ist, müsst ihr euch wieder einloggen, wie in Schritt 4 beschrieben. Den Neustart löst ihr mit folgendem Kommando aus:

$ reboot

Schritt 6.
Password ändern indem ihr

$ passwd

auf der Konsole eingegebt. Folgt den Anweisungen auf der Konsole. Ihr müsst zuerst noch einmal das alte Passwort eingeben (raspberry) und dann zweimal ein neues Passwort übergeben. Es muss unbedingt ein sicheres Passwort vergeben werden. Der Raspberry Pi wird später in einem Netzwerk "hängen" auf das verschiedene, möglicherweise nicht vertrauenswürdige Personen Zugriff haben. Dieser Schritt ist vor allem dann nötig, wenn ihr im folgenden Schritt SSH aktiviert (optional).

Schritt 7.
Wir nehmen jetzt noch verschiedene Einstellungen mittels raspi-config vor. Keine dieser Schritte ist notwendig, aber zumindest Schritt 7b) würde ich empfehlen.

$ sudo raspi-config

raspi-config Hinweise zu raspi-config:

  • * Man navigiert mit den den Pfeiltasten bzw. TAB
  • * Oft müssen Aktionen nochmals bestätigt werden, es öffnet sich dann ein Screen der mit "OK" bestätigt werden muss.

a) Optional, falls man später den Raspberry Pi per SSH warten möchte, um nicht Tastatur und Bildschirm jedes mal anschließen zu müssen:

Interfacing Options ->  P2 SSH wählen

SSH dient der Fernwartung. Wenn ihr keine Ahnung habt, was SSH ist, solltet ihr es nicht aktivieren. Wenn ihr es aktiviert, ist es besonders wichtig, dass ihr in Schritt 6 ein sicheres und langes Passwort vergeben habt (noch besser wäre hier Public-Key Authentication).

b) Optional (aber sehr sinnvoll und empfohlen), den Hostnamen des Raspberry Pi ändern:

Network Options -> N1 Hostname wählen

Hier sollte man etwas wie translation verwenden um den Raspberry Pi später im Netzwerk leichter "adressieren" zu können. Das ist insbesondere dann wichtig, wenn der Raspberry Pi eine IP Adresse per DHCP bekommen hat. raspi-config Hostname Menu wählen raspi-config Hostnamen vergeben

Seid ihr mit dem Konfigurieren fertig, anschließend TAB drücken, bis man auf Finish kommt, dann ENTER. Möglicherweise wird man gefragt ob man den Raspberry Pi neustarten möchte: Would you like to reboot?. Hier mit Yes + ENTER bestätigen.

Schritt 8.
Der Raspberry Pi sollte theoretisch eine IP per DHCP bekommen und Internetzugang haben. Er sollte nun aktualisiert werden:

$ sudo apt update

und anschließend

$ sudo apt upgrade

Falls zu aktualisierende Pakete gefunden werden, müsst ihr der Aktualisierung noch mit Y + ENTER zustimmen.

Schritt 9.
Nun installieren wir den mumble Server mittels:

$ sudo apt install mumble-server

Eure Ausgabe sollte in etwa so aussehen:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libavahi-client3 libavahi-compat-libdnssd1 libmariadbclient18 libmcpp0 libprotobuf10 libqt4-dbus libqt4-network libqt4-sql libqt4-sql-mysql libqt4-sql-sqlite libqt4-xml libqtcore4
  libqtdbus4 libzeroc-ice3.6 mysql-common qdbus qtchooser qtcore4-l10n
Suggested packages:
  libqt4-dev libthai0 mumble-django
The following NEW packages will be installed:
  libavahi-client3 libavahi-compat-libdnssd1 libmariadbclient18 libmcpp0 libprotobuf10 libqt4-dbus libqt4-network libqt4-sql libqt4-sql-mysql libqt4-sql-sqlite libqt4-xml libqtcore4
  libqtdbus4 libzeroc-ice3.6 mumble-server mysql-common qdbus qtchooser qtcore4-l10n
0 upgraded, 19 newly installed, 0 to remove and 0 not upgraded.
Need to get 6,895 kB of archives.
After this operation, 28.7 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

Hier mit ENTER zustimmen.

Schritt 10.
Nun Konfigurieren wir den mumble-server, indem wir folgendes Kommando ausführen. Es werden uns dann verschiedene Fragen gestellt.

$ sudo dpkg-reconfigure mumble-server

Als erstes werden wir gefragt, ob wir wollen, dass der Mumble-Server bei jedem Start des Raspberry Pi automatisch mitstartet (Autostart mumble-server on server boot?). Hier müsst ihr mit YES bestätigen.
Anschließend wird gefragt, ob wir den mumble-server mit einer höheren Priorität ausgeführt werden soll (Allow mumble-server to use higher priority?). Hier ebenfalls mit YES bestätigen. Höhere Prozess Priorität für murmurd setzen
Dann muss ein sogenanntes SuperUser Passwort vergeben werden. Hier solltet ihr ein langes, sicheres Passwort verwenden. Notiert das Passwort, da wir es später zum Konfigurieren brauchen. Superuser Passwort vergeben

Schritt 11.
Wir machen einen zusätzlichen Konfigurationsschritt, indem wir die Datei /etc/mumble-server.ini bearbeiten.

$ sudo nano /etc/mumble-server.ini

Navigiert wird mit den Pfeiltasten. Scrollt solange nach unten, bis ihr folgenden Text findet.

# The below will be used as defaults for new configured servers.
# If you're just running one server (the default), it's easier to
# configure it here than through D-Bus or Ice.
#
# Welcome message sent to clients when they connect.
welcometext="<br />Welcome to this server running <b>Murmur</b>.<br />Enjoy your stay!<br />

Manche Mumble Clients zeigen diese Nachricht an, sobald man sich mit dem Server verbunden hat. Der Text kann nach Belieben geändert werden. Die Zeichenfolgen mit < und > sind HTML-Code. Mumble nimmt ihn zum formatieren des Textes. <br /> ist z.B. ein Zeilenumbruch ("br" für Englisch "line break"), während <b>Murmur</b> den Text "Murmur" fett markiert ("b" für Englisch "bold"). Diese Zeichenfolgen werden von manchen Mumble-Clients "interpretiert" und der Text wird dann entsprechend formatiert angezeigt.

Scrollt weiter bis ihr folgenden Eintrag findet:

# Maximum number of concurrent clients allowed.
users=100

Hier könnt ihr festlegen, wieviele Clients sich maximal verbinden können. Ihr könnt ihn so lassen.

Scrollt weiter, bis ihr folgenden Text findet:

# Amount of users with Opus support needed to force Opus usage, in percent.
# 0 = Always enable Opus, 100 = enable Opus if it's supported by all clients.
#opusthreshold=100

Das # Zeichen vor #opusthreshold=100 entfernen und den Eintrag auf 0 ändern, also

opusthreshold=0

Damit "zwingt" ihr Mumble, Opus immer als Audio-Codec zu verwenden (zu "Opus", siehe Einführung oben). Wichtig!

Scrollt weiter, bis zu folgendem Text:

# Only uncomment the 'registerName' parameter if you wish to give your "Root" channel a custom name.
#
#registerName=Mumble Server

Oben hatte ich erwähnt, dass Mumble Kanäle benutzt. Verbindet sich ein Client neu mit dem Server, landet er in der Regel erstmal immer in einem Standard Kanal. Jeder Kanal hat einen Namen, der vom Mumble-Client (z.B. der Smartphone Mumble-App) angezeigt wird. Der Standard Kanal heißt root. Möchte man das nicht, kann man den obigen Parameter ändern, z.B. so:

registerName=Translations Server

Dann zeigt der Client statt "root", den Text "Translation Server" an (weiter unten seht ihr Smartphone-Screenshots wo das deutlich wird).

Nun sind wir fertig. Mittels STRG + X und anschließendem eingeben von Y + ENTER, werden die Änderungen gespeichert und der Editor wird geschlossen.

Schritt 12.
Um sicher zu gehen, dass der mumble-server unsere Einstellungen übernimmt, starten wir den Service neu.

$ sudo systemctl restart mumble-server.service

Schritt 13.
Nun muss der Raspberry Pi per LAN Kabel mit dem WLAN Router per LAN-Kabel verbunden werde, der später für das Übersetzungssystem verwendet werden soll. Es ist außerdem sinnvoll den Raspberry Pi neuzustarten. Ihr könnt das mittels folgendem Kommando tun:

$ sudo reboot

Schritt 14.
Startet nun euren zum Administrieren erkorenen Rechner. Verbindet den Rechner per LAN-Kabel oder WLAN mit dem WLAN Router den ihr für das Übersetzungssystem verwenden werdet. Wir müssen sicherstellen, dass dieser den Raspberry Pi erreichen kann. Die einfachste Möglichkeit das zu tun, ist, den Server mit einem ICMP echo request anzupingen. Unter Windows müsst ihr dazu die Eingabeaufforderung öffnen und mit

C:\>ping translation
Pinging translation.fritz.box [192.168.178.20] with 32 bytes of data:
Reply from 192.168.178.20: bytes=32 time=5ms TTL=64
Reply from 192.168.178.20: bytes=32 time=5ms TTL=64
Reply from 192.168.178.20: bytes=32 time=5ms TTL=64
Reply from 192.168.178.20: bytes=32 time=5ms TTL=64

prüfen, ob ihr den Raspberry Pi erreicht, wobei ihr translation mit dem Hostnamen ersetzen müsst, den ihr in Schritt 7b vergeben habt. Möglicherweise müsst ihr den Hostnamen samt Domäne angeben. Für FritzBoxen wäre das z.B. translation.fritz.box, statt nur translation. Bekommt ihr eine Antwort (Reply), ist der Raspberry Pi erreichbar und es kann mit dem nächsten Schritt weiter gehen.

Konfiguration der Kanäle mittels Mumble-Client

Nachdem wir den Server eingerichtet haben, müssen wir Kanäle anlegen und diese konfigurieren.

Schritt 1.
Wir benötigen den Mumble Client auf dem Rechner, den wir zum Administrieren verwenden wollen. Den Mumble Client bekommen die Windows Nutzer unter euch von hier. Für die meisten Linux Distributionen sollte ihr Pakete in eurem Paketmanager finden. Einfach mal nach mumble suchen. Installiert den Client.

Schritt 2.
Nun Konfigurieren wir den Server mit Hilfe des eben installierten Clients. Startet den Client. Eventuell werdet ihr gefragt gefragt, ob ihr Mumble mittels des Audio-Assistenten einrichten möchtet. Ihr könnt das überspringen bzw. abbrechen. Im Anschluss fragt der Client, ob man ein Zertifikat erstellen will. Hier sollte man Zertifikat automatisch erstellen wählen. Dann Weiter klicken und Abschließen.

Schritt 3.
Im folgenden Dialog kann ein Mumble Server ausgewählt werden. Hier müssen wir zuerst unseren Raspberry Pi als Server hinzufügen. Klickt auf Server hinzufügen.... Im nun erscheinenden Screen müsst ihr den Hostnamen eures Raspberry Pi sowie den Nutzernamen SuperUser und das zugehörige Passwort eingeben. Das Passwortfeld erscheint möglicherweise erst, wenn ihr SuperUser eingetippt habt.
Falls ihr in Schritt 14 (oben) euren Raspberry Pi nur mit Domainnamen, also z.B. statt mit translations nur mit translations.fritz.box erreichen konntet, müsst ihr hier erneut den vollen Domainnamen verwenden.
Bitte beachtet auch die Groß-/Kleinschreibung bei Nutzername und Passwort. Wenn ihr fertig seid, mit OK bestätigen. Server hinzufügen

Im folgenden Screen mit Klick auf Verbinden die Verbindung zum Server initiieren. Mit Server verbinden

Ihr erhaltet nun eine Zertifikatswarnung, diese müsst ihr mit Ja bestätigen.

Schritt 4.
Sobald ihr verbunden seid, seht ihr eine Liste an Kanälen. Dort sollte nur eurer "Root" Kanal aufgelistet sein ("Translations Server" im folgenden Screenshot). Exemplarisch richten wir nun einen Übersetzungskanal für "Englisch" ein. Klickt dazu mit der rechten Maustaste auf Translations Server (oder wie auch immer ihr euren Root Kanal genannt habt) und wählt Hinzufügen. Kanal hinzufügen - Schritt 1 Es erscheint ein neuer Dialog. Gebt dem Kanal den Namen "English" und klickt auf OK. Kanal hinzufügen - Schritt 2 Der Kanal sollt jetzt in der Liste erscheinen, wie auch im folgenden Screenshot zu sehen ist.

Schritt 5.
Nun müssen wir den Kanal so konfigurieren, dass normale Nutzer im Kanal nur hören, aber nicht sprechen dürfen. Lediglich privilegierte Nutzer (in unserem Fall die Übersetzer) sollen sprechen können. Klickt dazu mit der rechten Maustaste auf den neu angelegten Kanal English und wählt Bearbeiten. Kanal editieren - Schritt 1

Im folgenden Screen wählt den Tab Berechtigungen. Kanal editieren - Schritt 2

Entfernt dort den Haken bei Berechtigungen erben. Kanal editieren - Schritt 3

Klickt dann auf Hinzufügen und wählt dann den neu erschienenen Eintrag @all aus und vergebt die Rechte so (siehe rechte Seite des Screens), dass für die Gruppe all nur das Recht Durchqueren und Betreten erlaubt ist, so wie im Screenshot dargestellt. Kanal editieren - Schritt 4

Klickt dann erneut auf Hinzufügen und wählt im Drop-Down Menu "Gruppe" auth aus. Kanal editieren - Schritt 5

Anschließend setzt ihr unter Rechte die Berechtigungen so, dass alle Nutzer der Gruppe "auth" Durchqueren, Betreten, Sprechen, Stumm-/Taubstellen und Flüstern können. Das ganze ist in folgendem im Screenshot nochmal dargestellt. Kanal editieren - Schritt 6

Klickt schließlich auf OK um die Kanaleinstellungen zu schließen. Nun haben wir einen Kanal eingerichtet, indem jeder hören, aber nur authorisierte Nutzer sprechen dürfen. Standardmäßig darf jeder im Root Kanal sprechen, deshalb müssen wir im nächsten Schritt noch die Rechte des Root Kanals anpassen.

Schritt 6.
Klickt dazu mit der rechten Maustaste auf den Rootkanal und Bearbeiten. Geht erneut zum Tab Berechtigungen. Wählt dann @all und ändert die Berechtigungen wie im folgenden Screenshot gezeigt. Klickt wieder auf OK um die Kanaleinstellungen zu schließen. Root-Kanal ACL anpassen

Konfiguration eines Übersetzer-Smartphones

Nachdem der Server konfiguriert und ein Kanal mit den nötigen Rechten eingerichtet ist, wenden wir uns dem Smartphone Teil zu.

Schritt 1.
Installiert euch dazu den Plumble Client. Unter FDroid heißt der Client Plumble, im Google Play Store Plumble - Mumble VOIP. Unter iOS nennt sich der Client nur Mumble.

Schritt 2.
Startet nun den Client auf dem Smartphone. Beim ersten Starten des Client, solltet ihr gefragt werden, ob ihr ein Zertifikat erstellen wollt. Unbedingt erstellen lassen! Als nächstes klickt ihr auf das + Symbol um eine Verbindung zum Server einzurichten. Android Plumble - Schritt 1 Das Label im ersten Feld kann beliebig vergeben werden. Unter Adresse müsste ihr den Hostnamen eures Raspberry Pi angeben. Den Username könnt ihr beliebig vergeben. Mit Klick auf ADD wird der Eintrag angelegt und er scheint dann in der Übersicht. Android Plumble - Schritt 2 Sobald ihr auf Translations klickt, wird die Verbindung zum Server initiiert. Android Plumble - Schritt 3 Während des Verbindungsaufbau werdet ihr gefragt, ob ihr dem Serverzertifikat vertrauen wollt. Das müsst ihr tun, um eine Verbindung erfolgreich aufbauen zu können. Android Plumble - Schritt 4 Wenn alles geklappt hat, seid ihr mit dem Server verbunden und befindet euch im Root Kanal "Translations Server".

Schritt 3.
Durch klick auf den Pfeil hinter dem Kanalname English könnt ihr in den "English" Kanal wechseln. Android Plumble - Schritt 5

Wie ihr seht, habt ihr in keinem der Kanäle Sprachrecht (durchgestrichenes Mikrofon-Symbol). Möchtet ihr jetzt dieses Smartphone zu einem Übersetzer-Smartphone machen, müsst ihr den Nutzer registrieren. Android Plumble - Schritt 6

Schritt 4.
Öffnet dazu den Mumble Client auf eurem Rechner, den ihr zum Konfigurieren der Kanäle verwendet habt. Klickt mit der rechten Maustaste auf den Nutzer, dem ihr das Rederecht geben wollt und wählt Registrieren. Mumble versichert sich nochmal, ob ihr das wirklich tun wollt. Den folgenden Dialog müsst ihr also mit Ja bestätigen. Mumble Client - Nutzer registrieren

Wie ihr mit Blick auf eurer Smartphone vielleicht feststelt, ändert sich das Symbol nicht. Ihr müsst den Kanal nochmal verlassen, z.B. durch die Zurück-Taste des Smartphones oder über das Menu Symbol ⋮ und Disconnect. Dann verbindet euch erneut mit dem Server und betretet den Kanal. Wie am Symbol zu erkennen, solltet ihr jetzt "Rederecht" haben. Android Plumble - Schritt 7

Geschafft!

Das System kann jetzt produktiv zur Übersetzung verwendet werden. Ihr könnt beliebig viele Kanäle für verschiedene Sprachen anlegen. Stellt sicher, dass die Übersetzer "registriert" wurden um das "Rederecht" zu haben. Alle anderen können den Kanälen einfach beitreten und hören, was die Übersetzer sagen.

Troubleshooting

1. Ich kann Nutzer X nicht registrieren, weil der entsprechende Menu-Eintrag fehlt!

Es ist sehr wahrscheinlich, dass kein Client-Zertifikat auf dem Smartphone des Nutzers beim Einrichten der App erstellt wurde. Stellt sicher, dass ein Zertifikat generiert wurde. Mir ist das insbesondere bei iOS passiert. Ob ein Zertifikat erstellt wurde, lässt sich bei der iOS Mumble App über Preferences (oben links) dann Certificate prüfen. Hier darf nicht none stehen. Ansonsten muss über das + Symbol (oben rechts) ein Zertifikat generiert werden. Anschließend die Verbindung zum Server trennen und wieder aufbauen.

2. Das Übersetzer-/Sprecher Smartphone überträgt Geräusche, auch wenn der Übersetzer-/Sprecher gar nicht redet!

Alle mir bekannten Mumble Apps bieten die Möglichkeit das Mikrofon des Sprechers entweder automatisch zu aktivieren, ab einem bestimmten Lautstärke-Schwellwert. Das kann bei eher lauten Umgebungen Probleme bereiten, da dann das Mikro durch die Umgebungsgeräusche aktiviert wird, auch wenn der Sprecher gar nichts sagt. Hier ist es sinnvoll auf "Push-to-talk" umzuschalten. Der Sprecher muss dann entweder einen der Knöpfe am Smartphone halten während er spricht oder auf den Bildschirm tippen. Hier gibt es wiederum zwei Möglichkeiten. Entweder ist das Mikro so lange aktiviert, wie der Sprecher den Knopf drückt (bzw. den Bildschirm berührt) oder ihr konfiguriert es so, dass der Knopf als Ein-/Ausschalter funktioniert. Dann bleibt das Mikro so lange aktiviert, bis ihr es wieder deaktiviert (ihr müsst also nicht permanent eine Taste drücken oder den Bildschirm berühren). Die Audio-Einstellungen befinden sich bei den Android-Apps z.B. unter , Settings bzw. Einstellungen und dann Audio.

comments (0) - add comment

No comments so far, leave one?