Mumble Script

Ich habe ja die Aufgabe bekommen nen Script zu bauen für Mumble um bei den Treffen das Saalmikro Stumm zu stellen wenn jemand anderes im Mumble Kanal redet.

Meine Fragen:

  • Ist der Server von dem Mumble-server (murmur) auf Debian oder einem anderen OS?
  • Wird auf dem Server wohl das ganze python zeroc-ice Gedöns installieren?

Ich möchte wissen ob ich das per MuMo (MumbleModerator) bauen soll.
Anleitung auf natenom.de

1 „Gefällt mir“

Ist soweit ich weiß ein Linux. Der wird von @Parad0x betrieben. Es wäre aber auch kein Problem das umzubauen. Die Server ressourcen hätten wir.

Ich hab keine Ahnung aber ich sag Mal ganz doof: So wie du es brauchst. :stuck_out_tongue:

Find ich cool das du dich dem annimmst… :+1:

1 „Gefällt mir“

ICE & Co sind nicht aktiv. Habe den Server aus Sicherheitsgründen recht minimalistisch konfiguriert. Das macht auch die Updates einfacher.

Ich schlage vor eine komplett neue VM zu konfigurieren. Auf der kannst du dann in Ruhe alles testen. Vor einigen Jahren hatte ich mal intensiver mit Mumble gearbeitet. Das kann ganz schön “dreckig” werden. Bei der neuen VM könntest du zwiwschendurch auch einreißen und neu bauen wenn du in einer Sackgasse landen solltest :wink:
Und wenn alles läuft wechseln wir auf die neue. Ich würde mich freuen wenn du dabei im Wiki einfach stichpunktartig mitschreibst. Dann haben wir auch gleich eine einfache Dokumentation für den Server.

Melde dich am besten im Hipchat sobald du loslegen möchtest und wir richten die VM ein.

DANKE

Ich wäre auch für folgendes Vorgehen:

Wir konfigurieren dir eine VM mit Ubuntu 16.04 oder so. Damit kannst du spielen und wenn alles läuft, schalten wir den derzeiten Mumble-Server ab und schwenken den DNS-Eintrag um.

@corny456, können wir noch eine bei uns im Serverpark anbieten? Ggfs. der Einfachheit halber mit öffentlicher V4.

Coole Sache, dass du dir das ansiehst!

Klar. Richte ich heute Abend ein.

Fand ich auch cool. Oder direkt Ansibilisieren aber das dann vlt schon bisken viel verlangt :smiley:

Eines nach dem anderen. Erstmal gucken, ob es klappt. Und falls ja, können wir die Schritte sicherlich dokumentieren :wink: .

Danke

@Chris2000SP, gibst du uns deinen öffentlichen Schlüssel? Dann bekommst du Zugriff auf den Server.

Ich habe bereits eine VM bei mir am laufen um darin rum zu spielen. Ich wollte erst bei mir selber probieren.

Aber ich kann euch ja ein öffentlichen Schlüssel erzeugen.

@MPW, wie sende ich dir das? Per PN?

Ja oder einfach hier rein. Ist ja schließlich öffentlich. :slight_smile:

Okay, dann probier erstmal bei dir. Dann braucht sich @corny456 die Arbeit nicht machen.

Bin gespannt, wäre interessant, falls du Lust hast am Mittwoch persönlich oder per Mumble was dazu zu erzählen.

Ich machs erst mal bei mir.

Ich würde gern am Mittwoch mit jemandem zusammen auf dem Mumble Server Joinen.

Ich habe eigentlich noch Abendschule zu tun, daher kann ich nicht immer pünktlich da sein.

Edit:
Ich hab mich vertan ich möchte mit jemandem zur Warpzone kommen und gleichzeitig mit jemandem in Mumble Sprechen wenn alles klappt.

2 „Gefällt mir“

Läuft.

Wir sind in der Regel bis mindestens Mitternacht dort.

Bis dann

Hallo Leute,

Sorry das ich mich nicht mehr gemeldet habe, aber gerade laufen Release Updates aus, und es gibt eine neue Funktion die heißt RNNoice. Mit dem Filter werden z.B. Tastatur Geräusche oder andere Störgeräusche gefiltert. Bleibt nur noch das bei den Treffen viel geredet wird.

Ich komme nächstes mal zum Treffen auf euer Mumble, wobei ich hoffe das bis dahin die Updates über die bühne gelaufen sind.

Ich weiß aus der Entwicklung, dass der Windows build server gerade noch gefixt wird daher ist unter Unix/Linux schon rc1 vorhanden, daher bitte um geduld.

Infos zu Mumble 1.3.0 hier

1 „Gefällt mir“

Ich möchte auch auf eine Funktion hinweisen die „Beforzugter Sprecher“ (Priority Speaker) heist. Diese Funktion funktioniert im Prinzip so wie ihr es benötigt, mit dem hacken das es an einem ACL Recht fürs Stumm /Taub Stellen (Mute/Deafen) gebunden ist.

Ich glaube mit dieser Funktion ist es sinnlos noch ein Script zu schreiben wenn Mumble selbst so eine Funktion liefert. Oder sehe ich das falsch?

Infos hier:

Funktion in 1.3.0 hinzugefügt

1 „Gefällt mir“

Sehr coole Sache. Habe es in die Tagesordnung aufgenommen. Ich freu mich drauf :slight_smile:

Habe was sinnvolles herausgefunden!

Leider ist euch bestimmt aufgefallen das Benutzer in Mumble darüber klagen das sie eine Rückkopplung oder Echo von sich selbst bekommen. Das hat damit zu tun, dass die Echo Unterdrückung in Mumble seit dem Celt bzw. Opus benutzt wird keine Echo Unterdrückung mehr funktioniert. Der alte Speex Codec konnte das noch, aber der ist uralt und hat eher schlechte Qualität. Unterm strich ist die Echo Unterdrückung in Mumble unwirksam.

Ich habe herausgefunden das Pulseaudio ein modul für das Problem liefert.
Mit folgendem befehl kann man es einschalten:
$ pactl load-module module-echo-cancel

Hinweis: Damit es funktioniert muss in Pulse der Default für Input und Output eingestellt sein!

Wenn es aktiviert wurde stellt man in Mumble auf den “echo cancellation …” als gerät sowohl für Eingang und Ausgang. Die Mumble eigene Echo Unterdrückung dann ausschalten.

Wir haben auch herausgefunden wenn man ein anders device als das wofür man mumble nutzt noch filtern möchte kann man es mit mehr Aufwand auch erreichen. Beispiel:
pactl load-module module-echo-cancel aec_method=webrtc use_master_format=true format=s32le rate=96000 channels=2
Dies ist aber für euer Setup nicht notwendig, ich wollte es aber mal erwähnt haben. Es forciert z.B. das jedes Gerät 96kHz benutzt, damit es nicht so dumpf klinkt.

MfG Chris

2 „Gefällt mir“

Die Echounterdrückung in PA ist aber auch eher so mäßig.

Meines Wissens gibt es keinen wirklich schön funktionieren Algorithmus für Echounterdrückung, der das kann. DECT-Telefone und auch kommerzielle VoIP-Lösungen, seien es SIP-Telefone oder auch Skype arbeiten einfach damit, das Mikro bzw. die Lautsprecher wechselseitig stumm zu schalten bzw. die Lautstärke stark zu reduzieren. Es ist also eigentlich eher eine intelligente halbduplex Umschaltung.

Oder man arbeitet mit Mikrofonarrays, sodass ein Mikrofon nahe am Lautsprecher ist, und dieses dann aus den anderen raussubtrahiert wird. Das funktioniert auch, haben eigentlich alle modernen Laptops.

Aber mit einem Einspurmikrophon und einem Lautsprecher geht Echounterdrückung algorithmisch meines Wissens nach derzeit nicht oder das Ergebnis ist in der Regel nicht zufriedenstellend.

Ich habe es getestet, und ja es gibt natürlich eine Verzerrung wenn eine Rückkopplung gefiltert wird. Aber ich denke es ist nerviger eine Rückkopplung zu ertragen als eine Filterung zu ertragen.

Probier es aus. Ich finde dieses Algorithmus jedenfalls nicht so schlecht wie das von den Telephonen.

MfG Chris

1 „Gefällt mir“

Rückkopplungs- und Echounterdrückung sind aber zwei verschiedene Sachen.

Wir können es natürlich gerne mal testen. Aber ich finde die Lösung alle nicht anwesenden zu priorisierten Sprechern zu deklarieren schon ganz gut. Nur @Hoepers hatte auf seinem angebissenen Apfel Probleme mit Mumble 1.3. Bei allen anderen lief es bisher gut.

Perfekt wäre es halt das als Skript auf dem Server für den Raum fest zu hinterlegen, dass einfach das Saalmikro abgeschaltet wird, wenn jemand anderes spricht. Vom Algorithmus her total simpel. Es hängt von der Struktur von Mumble ab, ob man das ohne tiefere Eingriffe in den Code umsetzen kann.

Der FFRL hatte mal eine Podiumsfunktion geskriptet. Es gab zwei verknüpfte Räume. Ein Raum, zu dem nur der Vorstand Zutritt hatte, wurde in einen weiteren Raum, in dem dann die normalen Zuhörer waren, gespiegelt. Und wer eine Wortmeldung hatte, wurde dann kurz vom Moderator in den anderen Raum verschoben. Das nur als Beispiel, lief wohl früher mal gut, ist aber irgendwann bei einem Update kaputt und das Wissen das zu pflegen verloren gegangen.

Moin … ich hatte mich da mit Echo Unterdrückung von Pulseaudio befasst. Der Command den der Chris geposted hat stammt aus meinem Testsetup.

pactl load-module module-echo-cancel aec_method=webrtc use_master_format=true format=s32le rate=96000 channels=2

Die formate s32le und 96kHz sind hier dem geschuldet das ich Musik halt ungern in schlechten Sampling Raten höre… (Alltags tauglich sind auch s24le und 48kHz oder auch s16le und 44.1kHz)

Also ich habe hier mit voll aufgedrehten Boxen und viel Bass getestet. Das „echo cancelling“ hat sauber funktioniert. Man konnte leichte Verzerrungen hören. Aber das ist auch klar weil mein Mikro halt auch an die Physik gebunden ist. Und wenn hier im Raum der Bass durchfegt dann kann das Mikro halt dies kaum kompensieren. Für Sprache sollte die Pulseaudio Lösung das jetzige Probleme beheben. Prio Speaker oder ein Skript sollten dann nicht mehr notwendig sein. Bzw. müssen nicht als fix zur Echo Unterdrückung herhalten.

Ich teste hier noch ein bisschen das man ein Setup aufbauen kann welches auch einen Neustart überlebt.

Paper zur Noise/Echo Reduction in PulseAudio https://www.sthu.org/research/publications/files/lac2013.pdf
(Umschreibt ganz gut was die Algorithmen in Pulse können und was nicht. Fokus ist hier aber embedded und Multi-Channel…)

Ich bin erstaunt wie gut das klappt!

Aktuell findet man dies leider noch bei alten oder günstigen Geräten. Wäre auch doof wenn man die teuren Meeting Raum Lösungen gegen ein VoIP Telefon tauschen könnte.

Nennt sich in intelligenten Setups Beamforming. Technisch ähnlich dem Beamforming beim WLAN.
Bin bei meiner Pulseaudio Recherche hier auch auf einen Ansatz gekommen. Die Sample Files sind recht gut …
https://arunraghavan.net/2016/06/beamforming-in-pulseaudio/

Jabra Headset Mikro vs. 2+1 Boxen System ging hier im Testsetup ganz gut :slight_smile:

Dann testen wir das mal, ich bin gespannt. Auch ob das stabil läuft. Also ich das so 2015 zuletzt getestet habe, ist PA mit Echounterdrückung immer so nach 5-10 min abgeschmiert.

Hat der Saalmic PC nenn Ubuntu 18.04 oder neuer?

Die aktuelle Implementierung ist erst 2016 mit PulseAudio 9.0 eingeführt worden.
Siehe: Improvements to PulseAudio’s Echo Cancellation – Arun Raghavan