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?
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
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.
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.
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.
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?
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.
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.
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.
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.
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
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.