Abacus - Artikel aus Heft 12

 

 

Spracherkennung in Theorie und Praxis

Am Lehrstuhl für Mustererkennung an der Universität Erlangen

Am Freitag, dem 12.10.2001 fuhren wir an die Universität Erlangen um uns über das Studium der Informatik und insbesondere das Spezialgebiet Spracherkennung zu informieren. Im sog. Informatik-Tower wurden wir von Dr. Ing. Elmar Noeth, dem Leiter der Sprachverarbeitungsgruppe am Lehrstuhl für Mustererkennung, und dem Studenten Stefan Steidl begrüßt. Beide haben 41/2 Stunden lang referiert, unsere Fragen beantwortet und sich dabei sehr viel Mühe gegeben, wofür wir ihnen an dieser Stelle danken möchten.

Informatik an der Universität Erlangen

Die Regelstudienzeit inkl. Diplomarbeit beträgt 9 Semester, doch werden in der Praxis durchschnittlich 11-12 Semester benötigt. Vorkenntnisse sind offiziell nicht erforderlich, allerdings sind ein LK Mathe, gute Englischkenntnisse sowie Programmierkenntnisse von Vorteil, da man sich sonst zu viel in kurzer Zeit selbst beibringen muss. Sinnvoll ist es auch in der Schule zu lernen, wie man Referate hält und schriftliche Arbeiten anfertigt, da man als Student häufig Vorträge halten und diverse Arbeiten abfassen muss. Bei der Studienarbeit und der Diplomarbeit ist es z. B. sehr wichtig, das Problem übersichtlich darzustellen und das Wesentliche hervorzuheben. Das sollte man eigentlich schon bei der Facharbeit lernen. Bei den Referaten kommt es u. a. darauf an, dass man sich genau an die Zeitvorgaben hält. Wenn es 20 Minuten heißt, dann eben nicht 19 und nicht 21. Als Informatiker muss man später Vorträge auf Konferenzen mit Parallelveranstaltungen halten, zwischen denen die Zuhörer u. U. wechseln wollen. Wenn man sich da nicht an die Zeiten hält, wird einem das Mikrofon abgedreht. Auch in Betrieben muss man sich kurz und korrekt ausdrücken und auf den Punkt kommen können; der Chef hat meist nur wenig Zeit. 

Das Studium selbst unterteilt sich in Grund- und Hauptstudium. Im Grundstudium (4 Semester) hat man Vorlesungen in Algorithmik, Programmierung, Rechnerarchitektur, Theoretischer Informatik und Mathematik sowie in einem Nebenfach, etliche davon in Englisch. Im Schnitt sind es 23 Stunden pro Woche plus Übungen. 

Das Hauptstudium bietet eine relativ flexible Kombination von Fachgebieten der Informatik untereinander sowie mit verschiedenen Nebenfächern an. Aus den vier Teilgebieten

  • Theoretisch orientierte Fächer (Theoretische Informatik, Systemsimulation, Mathematik)
  • Softwareorientierte Fächer (Algorithmische Sprachen, Datenbanksysteme, Künstliche Intelligenz)
  • Systemorientierte Fächer (Rechnerarchitektur, Betriebssysteme, Kommunikationssysteme)
  • Praktisch orientierte Fächer (Mustererkennung, Graph. Datenverarbeitung, Technische Elektronik)

sind drei Fächer aus mindestens zwei Teilgebieten auszuwählen, in denen je eine Prüfung abgelegt wird. Eines dieser Fächer (mit Ausnahme der Mathematik) wird zum Schwerpunktfach. In diesem Fach ist dann später die Studienarbeit zu verfassen, für welche ein Zeitraum von maximal 9 Monaten vorgesehen ist.

Das Studium wird mit der Diplomprüfung und der sich unmittelbar anschließenden sechsmonatigen Diplomarbeit abgeschlossen.

Ein eigener Computer ist während des Studiums nicht unbedingt erforderlich, da es an der Universität einen CIP-Pool ("Computerinvestitionsprogramm") mit zahlreichen Rechnern gibt, an denen die Studenten arbeiten können. Praktisch ist ein eigenes Gerät im Wohnheim aber doch. Erstens herrscht im CIP-Pool immer großes Gedränge und zweitens ist es eben sehr bequem, wenn man zu Hause arbeiten kann. Den Rechner braucht man übrigens nicht nur zum Programmieren, viel häufiger dient er als Informationsquelle, z. B. zum Herunterladen der Skripten, die es für fast alle Vorlesungen im Internet gibt.

Das Informatikstudium ist nicht ganz einfach, etwa 40 - 60% der Studenten brechen ab, und zwar noch im Grundstudium. Dafür gibt es mehrere Gründe:

  1. Die ersten Semester werden bewusst nicht einfach gemacht, damit ungeeignete Studenten möglichst bald abbrechen und nicht zu viel Zeit in ein für sie nutzloses Studium investieren. Das hat zur Folge, dass jemand, der das Vordiplom erhalten hat, mit größter Wahrscheinlichkeit auch das Hauptdiplom schafft.
  2. Schüler haben oft eine falsche Vorstellung vom Studium: Ein guter Quake-Spieler ist nicht unbedingt ein guter Informatiker.
  3. Abbrecher finden zur Zeit in der Industrie leicht einen Job mit gutem Verdienst. Allerdings sind die Aufstiegschancen ohne Abschluss nicht so gut.

Nach einem Tief, während dessen die Universität Erlangen in Zeitungsannoncen um Studenten für das Fach Informatik warb, geht es inzwischen wieder aufwärts, nicht zuletzt aufgrund der Greencard-Diskussion. Zur Zeit liegen die Anfängerzahlen bei etwa 350.

Der Lehrstuhl für Mustererkennung

Seit dem Wintersemester 1969/70 gibt es an der Universität Erlangen einen eigenständigen Studiengang Informatik. Das Institut für Informatik hat zur Zeit 12 Lehrstühle: Theoretische Informatik, Programmierprachen und Programmiermethodik, Rechnerarchitektur, Verteilte Systeme und Betriebssysteme, Mustererkennung, Datenbanksysteme, Rechnernetze und Kommunikationssysteme, Künstliche Intelligenz, Graphische Datenverarbeitung, Systemsimulation, Software Engineering und Hardware-Software-Codesign.

Unser Interesse galt dem Lehrstuhl für Mustererkennung. Dieser Lehrstuhl existiert seit 1975 und unterteilt sich in optische (z. B. Schriftzeichenerkennung) und seit 1978 auch akustische Mustererfassung (z. B. Spracherkennung). Dabei geht es allgemein darum, optische und akustische Signale zu erfassen und in maschinenverständliche Datenstrukturen umzuwandeln, die dann weiterverarbeitet und ausgewertet werden.

Spracherkennung

Bei der Spracherkennung unterscheidet man zwischen Diktier- und Dialogsystemen. 
Diktiersysteme (z. B. IBM ViaVoice und Dragon Dictate) haben die Aufgabe gesprochenen in geschriebenen Text zu übertragen. Sie müssen eine sehr große Zahl verschiedener Wörter erkennen, was durch Training auf eine bestimmte Stimme und spezielles Sprechen (nicht zu schnell, isolierte Wörter, kein Husten, kein Versprecher) weitgehend auch erreicht wird. Die Erkennungsraten liegen bei einem Wortschatz von etwa 100000 Wörtern bei bis zu 95%.

Dialogsysteme haben eine andere Zielsetzung: Der Rechner soll, wie der Name schon sagt, mit dem Benutzer einen Dialog führen können. Sie finden Anwendung als telefonische Auskunftssysteme, bei denen der Anrufer von einem Rechner die gewünschten Informationen erfragen kann oder zumindest anfänglich vom Computer geleitet wird. Beispiele sind: Bundesbahn-, Kino-, Bundesliga- oder Börsenauskunft, Hotelreservierung, Wetterinformation, Warenbestellung, Callcenter. In einem Callcenter, z. B. der Hotline einer Softwareschmiede, werden viele Leute gebraucht, wobei ein solcher Arbeitsplatz dem Unternehmen rund 200000 DM im Jahr kostet. Der Beruf ist extrem stressig: Man muss trotz genervter Kunden freundlich bleiben, immer kompetent klingen und sehr viel Zeit für Fortbildung aufwenden. Wenn es gelingt die Gespräche durch den Einsatz von Dialogsystemen, die den Kunden mit dem richtigen Berater verbinden, im Schnitt nur um fünf Sekunden zu verkürzen, bedeutet das die Einsparung riesiger Summen, wie sich das bei der Einführung der automatischen Telefonnummernansage bei der Telekom bereits gezeigt hat. Eine interessante Anwendung ist auch die Sprachsteuerung von Geräten. Besonders im Auto ist es sehr nützlich, wenn man etwa das Handy durch Sprache steuern oder über gesprochene Wörter mit dem Navigationssystem in Dialog treten kann.

Dialogsysteme werden immer für spezielle Anwendungszwecke erstellt. Es gibt keine Dialogsysteme "von der Stange", sondern nur individuelle Systeme, die entsprechend teuer sind, sich aber, wie gesagt, trotzdem rechnen. Diese Spezialisierung vereinfacht die Sache gegenüber einem Diktiersystem. Bereits mit etwa 400 Wörtern und 600 Eigennamen kann ein einigermaßen vernünftiger Dialog geführt werden. In einem beschränkten Bereich werden schließlich immer die gleichen Fragen auftauchen, bei einem Kinoauskunftsystem zum Beispiel: Wie heißt der Film? Wo läuft er?, Wann beginnt er? In welchem Kino läuft gerade "Dr. Schiwago"?

Auf der anderen Seite sind Dialogsysteme wiederum schwieriger zu programmieren als Diktiersysteme. Die Spracherkennung muss vom Sprecher unabhängig sein, Dialekt muss erkannt werden, vielleicht sogar eine Fremdsprache, es gibt keine Trainingsphase - der Anrufer will schließlich nicht erst zehn Minuten bestimmte Wörter vorsprechen, damit das System ihn versteht -, es muss der Sinn der Frage erkannt werden, auch wenn man sich verhaspelt und der Satz mehrfach neu angefangen wird, Störgeräusche, die gerade beim Telefonieren auftreten können, dürfen das System nicht durcheinander bringen. Wichtig ist auch, dass das System die Initiative übernehmen und von sich aus nach fehlenden Daten fragen kann. Ein Dialogsystem ist schließlich weit mehr als ein Menüsystem, wie sie derzeit vielfach in Gebrauch sind: "Bitte drücken Sie die "1", wenn Sie das wollen, die "2", wenn sie das andere wollen."

An der Uni Erlangen beschäftigt man sich nur mit der Entwicklung solcher Dialogsysteme. Die dortige Spracherkennungsgruppe hängte bereits 1993 ein Dialogsystem ans öffentliche Telefonnetz. Sie waren damit weltweit die Ersten.

Arbeitsweise des Spracherkenners

Bei der Erkenner-Software geht es darum, denn Sinn des Gesprochenen zu erfassen und entsprechend darauf zu reagieren.
Also: Was wurde gesagt, und was hat der Sprecher gemeint - und wie antwortet man ihm am besten?
Dies funktioniert nun folgendermaßen:
Das Sprachsignal wird in Zeitfenster von je 20 ms zerlegt. Diese werden anschließend einzeln analysiert und mit vorhandenen Lautmustern einer Datenbank verglichen. Dabei wird immer der wahrscheinlichste Laut ermittelt und so die Wörter Laut für Laut, Buchstabe für Buchstabe erkannt. 
Im Detail wird für jedes Zeitfenster eine Frequenzanalyse (Fourier-Analyse) durchgeführt und so die im Schall enthaltenen Frequenzen bestimmt. Dieses Frequenz-Spektrum ist für jeden Laut charakteristisch. Für jeden Laut ist im Erkenner nun ein spezieller Laut-Automat (Programmteil) implementiert. Beim Erkennungsvorgang berechnet jeder Automat die Wahrscheinlichkeit, dass das aktuell betrachtete Zeitfenster seinen Laut enthält. Zusätzlich wird dann die Wahrscheinlichkeit ermittelt, dass dieser Laut auf den vorhergehenden Laut folgt. Der Laut mit der höchsten Gesamtwahrscheinlichkeit wird dann als richtig angenommen. 
Anschließend durchlaufen die erkannten Laute sog. Wort-Automaten (1.000-1.500 Stück), welche nach dem gleichen Prinzip das wahrscheinlichste Wort ermitteln. Da der Erkenner nur über einen geringen, anwendungsspezifischen Wortschatz verfügt, können durchaus Fehlinterpretationen vorkommen, wenn das System mit ihm unbekannten Begriffen konfrontiert wird. Insgesamt liegt die Erkennungsquote nur bei ca. 70 - 80 %. Dies wäre für ein Diktiersystem zu wenig, da man zuviel korrigieren müsste. Bei Dialogsystemen wirken sich Erkennungsfehler hingegen nur aus, wenn sie in einem für den Sinn wichtigen Wort auftreten. Diese "wichtigen" Wörter sind nämlich die Filterkriterien für die spätere Antwort. Man sollte aber bedenken, dass auch der Dialog zwischen Menschen nie völlig fehlerfrei ist.
Der nächste Schritt nach der Erkennung ist die Sinnerkennung. Dabei wird im erkannten Satz nach speziellen Schlüsselbegriffen gesucht (z.B. Aktiennamen, Uhrzeiten, Orte, Filmtitel) und dann die Film-, Aktien- oder Fußball-Datenbank entsprechend durchsucht. Reichen die Angaben für eine sinnvolle Antwort noch nicht aus, fragt das System nach weiteren Kriterien (z.B. "Wo wollen sie ins Kino gehen?"), um schließlich die geforderte Auskunft geben zu können. Dies kann z.B. ein einzelner Börsenkurs, aber auch eine Liste von Filmtiteln sein, die auf die Filterkriterien passen. Wenn die Angaben für eine Antwort ausreichen, wird diese aus vorgefertigten Satz- und Wortteilen zusammengefügt und ausgegeben. Diese Satzteile müssen natürlich vorher von einem Sprecher erfasst werden. Deshalb verfügt das System nicht nur über einen anwendungsspezifischen Erkennungswortschatz, sondern auch über einen (eingeschränkten) Ausgabewortschatz.
Aber auch der Erkennungswortschatz muss antrainiert werden. Das geschieht, indem der Wortschatz von verschiedenen Personen vorgesprochen und die dazugehörige Bedeutung per Hand eingegeben wird. Die Automaten können dadurch verschiedene Aussprachemöglichkeiten desselben Wortes erkennen. So kann in gewisser Weise auch Dialekt angelernt werden.

Ein Beispiel

Ein Dialog könnte beispielsweise folgendermaßen aussehen:

System: 

Willkommen beim Börseninformationssystem von Sympalog.

Anrufer: 

Ich hätt' gern den Kurs von Daimler-Chrysler.

System: 

An welchem Handelsplatz möchten sie den Kurs von Daimler-Chrysler erfahren?

Anrufer: 

Ähm, moment, in Frankfurt.

System: 

Der aktuelle Kurs von Daimler-Chrysler beträgt 52,90 Euro in Frankfurt. Wünschen Sie weitere Auskünfte?

Anrufer: 

And what about BMW?

System: 

The actual price for BMW is 37 Euro in Frankfurt. Do you wish further information?

Anrufer: 

Was läuft heute in München im Kino?

System: 

Der aktuelle Kurs der Kinowelt AG beträgt 0,94 Euro in München. Wünschen sie weitere Informationen?

Anrufer: 

Nein Danke. Auf Wiederhören.

System: 

Danke für Ihren Anruf. Auf Wiederhören.

Am Anfang nennt der Anrufer nur den Aktiennamen. Um eine Antwort geben zu können, erfragt das System nun automatisch den Handelsplatz für die Aktie. Floskeln oder auch umgangssprachliche Wendungen (z.B. "Ähm", "Ich hätt' gern...") sind für das System nicht von Bedeutung und werden einfach ignoriert. Konfrontiert man das System allerdings mit einer nicht zum Thema passenden Frage, kommt es leicht zu Fehlinterpretationen (Kino = Kinowelt AG), da der Erkenner versucht das wahrscheinlichste Wort seines Wortschatzes zu ermitteln.
Wie man sieht, beherrscht dieses System auch andere Sprachen (zur Zeit Englisch und Französisch) und erkennt diese automatisch. Selbst ein Wechsel mitten im Dialog wird erkannt und die Antwort in der neuen Sprache gegeben.

Entwicklung des Erkenners

Die Erkennersoftware wurde in Erlangen in der Programmiersprache C++ geschrieben. Die Anforderungen an die Hardware sind nicht außergewöhnlich hoch. Ein gut ausgestatteter PC reicht dabei vollkommen aus, sowohl bei der Entwicklung als auch beim Anwender. Eine externe Soundkarte ist jedoch empfehlenswert, um die im PC vorhandene Störstrahlung zu vermeiden. Die Geschwindigkeit des Erkenners hängt dabei vor allem vom vorhandenen Arbeitsspeicher ab, weniger von der Prozessorleistung. Wird nur eine Telefonleitung bedient, so beträgt das Minimum 192 MB RAM und 300 MHz Taktfrequenz.

Laufende Projekte

Acht ehemalige Studenten aus der Spracherkennungsgruppe haben Anfang 2000 die Firma Sympalog gegründet, die die Erkennungssoftware für den kommerziellen Einsatz anpasst und vermarktet und inzwischen auch den Europäischen IT-Forschungspreis erhalten hat. Am Telefonnetz sind z.B. der "Fränki" (Kinoauskunft: 09131/610016), der "Stocki" (Börsenauskunft: 09131/610022) und der "Berti" alias "SympaSoccer" (Bundesliga Ergebnis- und Tabelleninformationssystem: 09131/610017) - jeweils in einer Forschungsversion zu normalen Telefonkosten. Dadurch werden kontinuierlich weitere Stimmmuster gesammelt und die Systeme so optimiert. Kommerziell ist bereits das tagesaktuelle Börseninformationssystem unter 0190/590400 (1,21 DM/Min) im Einsatz.

Forschungsvorhaben

  • Verbesserung der Erkennungsquote.
  • Der Mensch macht sich in den ersten zwei Sekunden ein Bild von seinem Gesprächspartner und stellt sich auf ihn ein. Beispielsweise reagiert man auf ein Kind anders als auf einen Erwachsenen. Es ist ein Forschungsziel auch Dialogsysteme mit dieser Fähigkeit auszustatten.
  • Zur Erstellung der Laut- und Wortautomaten ist zur Zeit noch sehr viel Handcodierung erforderlich. Ziel ist die Automatisierung des bis jetzt etwa 5 Tage dauernden Prozesses der "Handverschriftung".

Weitere Informationen

Internet: 
http://www5.informatik.uni-erlangen.de 
http://www.sympalog.de 

Heft-CD:
Studienführer Informatik 2001.pdf
Spracherkennung Stand 1999.pdf

Thomas Brandl, Patrick Kugler, Thomas Schamberger, Philipp Weber KS 13