2016-05-09 3 views
0

Für meine Arbeit führen wir Online-Tests für Englischlernende durch. Ein Teil davon beinhaltet Sprach-Audio-Aufnahmen der Schüler. Wir machen dies über die MediaRecorder js API für Firefox und Chrome. Dies funktioniert gut als eine effiziente Lösung, um eine große Anzahl von Schülern schnell zu testen, aber wir stellen fest, dass die Testumgebung manchmal zu laut ist, als dass die Schüler die Schüler bewerten könnten.Gibt es eine Möglichkeit, zuverlässig zu erkennen, wenn eine Audioaufnahme zu viel Hintergrundrauschen hat?

Wir möchten in der Lage sein, automatisch zu erkennen, wenn der Hintergrundgeräuschpegel zu groß ist und den Schüler zu warnen, wenn dies der Fall ist, aber ich bin zweifelhaft, wie machbar das ist. Ein Teil des Problems besteht darin, dass die meisten Hintergrundgeräusche normalerweise nicht als weißes Rauschen betrachtet werden, sondern stattdessen von anderen menschlichen Stimmen anderer Testteilnehmer erzeugt werden. Daher bin ich nicht sicher, ob typische SNR-Algorithmen zwischen einer lauten Umgebung und einer normalen Antwort unterscheiden könnten. Ich wollte nur fragen, ob es eine Möglichkeit gibt, eine automatisierte Messung zu erhalten, mit der wir mögliche Kandidaten für unverständliche Aufzeichnungen aufgrund von lauten Hintergrundgeräuschen identifizieren können. Wie ich schon sagte, ich bezweifle, dass es eine einfache Lösung gibt, aber ich dachte, ich würde nur für den Fall fragen.

Antwort

1

Nur ein paar Gedanken -

Sie können den durchschnittlichen Schallpegel über die Zeit messen, um zu sehen, ob es mehr oder weniger konstant oder näher an einen natürlichen variablen Pegel (mit weighted moving average und RMS ist möglicherweise ein guter Ausgangspunkt ohne Prüfung). Berechnen Sie einen Schwellenwert, bei dem es wahrscheinlich ist, dass der mehr oder weniger konstante Pegel durch Hintergrundgeräusche verursacht wird.

Ansonsten ist es fast "unmöglich", Sounds auf diese Weise zu trennen. Weißes Rauschen, Zischen und Brummen sicher, sogar Fingerprinting-Rauschen, um durch einen Rauschfilter zu laufen (aber wahrscheinlich zu intensiv für Echtzeit-Nutzung in einem Browser und Sie würden etwas brauchen, um den Fingerabdruck zu erzeugen).

Aber wenn das "Rauschen" andere menschliche Stimmen sind, wird es extrem schwierig werden, da die Töne zu ähnlich werden. Selbst fortgeschrittene Software wie iZotope RX kann dies nicht, selbst wenn Sie die Merkmale dessen, was Sie entfernen möchten, spezifisch definieren. Die Komplexität würde in jedem Fall wahrscheinlich zu viel von einem schlechten Browser erfordern.

Physikalische Lösungen: Ein mehr Richtmikrofon könnte etwas davon bewältigen, würde aber vom Benutzer mehr Aufmerksamkeit für die korrekte Platzierung benötigen. Eine kleine portable "sound booth" (Link als Beispiel), um etwas Lärm von den Seiten und hinten zu entfernen, wenn möglich, um vor Ort einzurichten.

My 2 cents ..

1

einen Countdown zu Beginn Ihres Tests auf dem Bildschirm ausdrückte: "Test startet in 3 ... 2 ... 1 ...", und die Schüler erwarten zu sein Ruhe während des Countdowns für ein paar Sekunden. Wenn das Mikrofon für mindestens 2 Sekunden nicht ausreichend leise ist, dann warnen Sie vor dem Rauschen und geben Sie "Weiter"/"Erneut versuchen/Auswahl beenden" an. Wenn der Schüler während des Countdowns spricht, werden sie es herausfinden dass sie das Geräusch waren und versuchen es erneut ohne zu reden.