Störsignalunterdrückung

Störsignalunterdrückung

In den letzten Jahren ist die Technik immer weiter vorangeschritten. Die mobilen „Handys“ wurden immer kleiner und komfortabler, und die Computer mit einer Prozessorleistung im Gigahertzbereich schossen wie Pilze aus dem Boden. Natürlich sollte auch die Bedienung dieser Geräte an Komfort zunehmen, und so drang schnell der Wunsch nach einer sprachgesteuerten Handhabung in den Vordergrund. Als Beispiel sollen hier das sprachgesteuerte Wählen des Telefonteilnehmers am Handy und das automatische Starten eines Diktiergerätes, sobald jemand spricht, erwähnt werden. Jedoch ist das Problem der Umgebung sehr ausschlaggebend. Um Geräte per Sprache steuern zu können, sollte sich der Sprachpegel deutlich von den Umgebungsgeräuschen unterscheiden. Das lässt sich jedoch nicht in allen Situationen realisieren. Gerade im mobilen Kommunikationssektor kommt es häufig vor, dass an Orten telefoniert wird, die von Lärm umgeben sind, wie z.B. im Auto, in der Stadt, in großen Büroräumen etc.. Deshalb wurden Verfahren entwickelt, die eine Sprachsteuerung trotz vorhandener Störsignale möglich machen.

In einer vorangegangenen Diplomarbeit wurde ein Verfahren mit dem Programm Matlab/Simulink erstellt, in dem Störsignale durch Spektrale Subtraktion unterdrückt werden. Hierbei wird das Leistungsspektrum des Störsignals von dem des Sprachsignals abgezogen. Das Problem stellt das Störsignal dar. Es wird ja nicht extra in einem Eingang zur Verfügung gestellt, sondern ist mit dem Sprachsignal überlagert. Darum wurde in dieser Arbeit auch die Störung geschätzt und als festes Signal dem Rechenalgorithmus zur Verfügung gestellt.

In der vorliegenden Arbeit soll jetzt ein Modell entwickelt werden, was die Sprachpausen detektiert, um in dieser Zeit das Rauschen zu erfassen. Dann kann in dem Algorithmus der Spektralen Subtraktion das tatsächlich vorhandene Rauschsignal verwendet werden.

Im ersten Abschnitt befasst sich diese Arbeit mit grundlegenden Eigenschaften der Sprachpausendetektion und der Erstellung eines Blockschaltbildes in Matlab/Simulink. Folgende Abbildung zeigt das Modell, mit dem im zweiten Abschnitt die Testläufe durchgeführt werden:

Die grünen Blöcke sind für die Pufferung zuständig. Die roten Funktionsblöcke bilden den Betrag und die Summe der Daten, die frame-based aus dem Puffer kommen. Die blauen Blöcke stellen Anzeigegeräte dar und der gelbe Block setzt das Eingangssignal in einer detektierten Pause auf Null.

Die Ergebnisse dieser Testläufe werden durch Diagramme und Hörbeispiele veranschaulicht. Folgende Abbildung zeigt die Abhängigkeit der Sprachpausendetektion von der Blockgröße bei 256 Samples.

In blau ist das Eingangssignal „Thierse16b.wav“ dargestellt und in rot wird die Sprachaktivität bzw. –pause angezeigt. Die Audiodatei „Sprache.wav“ enthält nur die Sprachanteile dieses Testlaufes. Die detektierten Pausen sind auf null gesetzt, um festzustellen, ob Sprache als Pause erkannt wurde.

Den Schwerpunkt des dritten Abschnittes bildet die spektrale Betrachtung des Eingangssignals. Neben grundlegenden spektralen Veranschaulichungen anhand von Spektogrammen werden Energieuntersuchungen angestellt. Hierbei wird die Maximalenergie pro Fenster ( 256 Stützwerte des Eingangssignals) berechnet und mit einer subjektiven Pausendetektion überlagert. Die folgende Abbildung zeigt einen Testlauf:

In blau ist die Energie dargestellt und die Farbe rot spiegelt die subjektive Pausendetektion wieder. Hieraus ist deutlich zu sehen, dass anhand der Energie gute Aussagen über eine Sprachaktivität/-pause gemacht werden können.

Zusammenfassend kann man sagen, dass diese Arbeit Möglichkeiten aufgezeigt hat, Sprachpausen zu detektieren. Jedoch hat sie auch Wege veranschaulicht, die nicht zu einem zufrieden stellenden Ergebnis führen und somit nicht näher in Betracht gezogen werden müssen.

Erstellt von Frank Berger, Dezember 2002

Download > Thierse16b.wav Thierse16b.wav

Berger01

Berger02

Berger03