Vor knapp drei Jahren erschien eine erste Version der freien Spracherkennungssuite Simon [1]. Ursprünglich dazu gedacht, Menschen mit Einschränkungen die Arbeit am Computer zu erleichtern, hat sich das Anwendungsspektrum inzwischen stark erweitert: Simon eignet sich nicht nur als Tastatur- und Mausersatz für Menschen mit Behinderungen, und schon bald könnte die Sprachsteuerungssoftware auch in der Robotik Anwendung finden.

Die Software basiert auf der quelloffenen LVCSR-Engine Julius [2] und nutzt darüber hinaus das Hidden Markov Model Toolkit (HTK) [3] sowie mehrere Wörterbücher. Die aktuelle Simon-Version enthält zwar bereits fertige Sprachmodelle, erlaubt aber anders als viele proprietäre Anwendungen dem Nutzer, von Grund auf eigene Sprach- und Akustik-Modelle zu erstellen. Da sich das System so für jeden Dialekt und jede Sprechweise optimieren lässt, eignet sich Simon auch für Menschen mit Sprachproblemen.

Simon ist nicht dafür gedacht, dem Rechner literarische Werke zu diktieren, sondern vielmehr, um Programme zu öffnen, URLs aufzurufen, Tastenkürzel zu simulieren sowie Maus und Tastatur zu kontrollieren. Die Software beruht auf einer Client-Server-Architektur, so dass theoretisch mehrere Personen einen Server nutzen können. Das macht die Software auch beispielsweise für Behindertenwerkstätten oder Seniorenheime interessant.

Installation

Für OpenSuse sowie Ubuntu und dessen Ableger haben die Simon-Entwickler Binärpakete bereitgestellt. OpenSuse-Anwender finden diese im OpenSuse Build Service [4] und nutzen die One-Klick-Installation. Unter Ubuntu und Co. gilt es zunächst mit sudo add-apt-repository ppa:grasch-simon-listens/simon das Simon-PPA [5] einzubinden. Ein anschließendes apt-get update und apt-get install simon holen die Spracherkennungssoftware auf den Rechner. Die Nutzer anderer Distributionen finden auf Sourceforge [6] DEB- und RPM-Pakete sowie eine Installer-Datei (./simon-Version.sh).

Bevor Sie dem Computer nun verbale Befehle erteilen, steht noch das Einrichten von HTK an, mit dessen Hilfe sich die Erkennungsrate später signifikant steigern lässt. Der Download setzt eine kostenlose Registrierung voraus. Die Wartezeit auf das per E-Mail übermittelte Zugangspasswort verkürzen Sie sich am besten mit der Installation einer Build-Umgebung sowie der Alsa- und X11-Entwicklerbibliotheken. Unter Ubuntu ziehen Sie dazu die Pakete build-essential, libx11-dev und libasound2-dev nach.

Befindet sich das HTK-Archiv dann endlich auf dem Rechner, müssen Sie es nur noch entpacken und mit dem Dreischritt ./configure, make all und sudo make install übersetzen und einrichten.

Inbetriebnahme

Nach der Installation findet sich im Startmenü die Kategorie Universal Access. Hier starten Sie ksimond (das Frontend für den Simon-Server) und Simon selbst. Ksimond nistet sich in der Taskbar ein und offeriert ein via Rechtsklick erreichbares Menü, um den Server Simond zu starten und den Server zu konfigurieren. Standardmäßig akzeptiert Simond nur Verbindungen vom lokalen Rechner und lauscht auf Port 4444. Da Simond grundsätzlich mehrere Clients bedienen kann, müssen Sie auch einen Nutzer anlegen beziehungsweise das Passwort des Default-Nutzers ändern. Die Nutzerdaten verwaltet Simond in einer SQLite-Datenbank.

Beim ersten Start führt Sie ein Assistent durch die Konfiguration, in der Sie eigene Szenarien und ein persönliches Sprachmodell anlegen oder auf abgespeicherte Vorgaben zurückgreifen. Weiterhin machen Sie hier Angaben zum Standort des Servers sowie zu den mit Simon zu verwendenden Audiogeräten und prüfen den Pegel des Mikrofons (Abbildung 1).

Abbildung 1: Während der Konfiguration prüft Simon unter anderem, ob das Mikrofon richtig eingestellt ist.

Als Szenarien bezeichnet man Konfigurationen, für die bereits eine Reihe von Kommandos, Grammatiken und Vokabeln hinterlegt wurden. Simon verfügt über eine gut gefüllte Online-Datenbank, die Szenarien in verschiedenen Sprachen umfasst. Auch für Akustikmodelle existieren bereits einige vorgefertigte Lösungen [7] für Anwender, die Deutsch, Englisch oder Portugiesisch sprechen. Diese gibt es als statische oder adaptierte Basismodelle.

Das statische Modell erfordert eine möglichst ideale Aussprache und ist nicht lernfähig, kommt aber auch ohne das Hidden-Markov-Toolkit aus. Anders das adaptierte Modell: Hier erhalten Sie ein zwar vorbereitetes, aber noch lernfähiges Modell, das sie an ihre eigene Stimme und Aussprache anpassen. Es bietet den besten Kompromiss zwischen kurzer Trainingszeit und hoher Erkennungsquote. Daneben besteht auch noch die Möglichkeit, ein Modell komplett selbst zu erstellen – eine extrem hohe Treffergenauigkeit belohnt später diese Mühe.

Nachdem Sie den ersten Dialog durchlaufen haben, präsentiert sich Simon mit einer übersichtlichen Oberfläche (Abbildung 2). Eventuell beschwert es sich, aufgrund einer fehlerhaften Nutzer/Passwort-Kombination keine Verbindung zum Server herstellen zu können – Abhilfe schafft das Eingeben der vorher festgelegten Werte unter Settings | Configure simon... | Recognition. Die hier bereits vorhandene Option, Simond an Simon gekoppelt automatisch zu starten und zu beenden, legt die Vermutung nahe, dass Ksimond zukünftig nicht mehr gebraucht wird – wenigstens nicht, sofern sich Server und Client auf dem selben Rechner befinden.

Abbildung 2: Über das Simon-Hauptfenster erreichen Sie schnell alle Funktionen.

Die Simon-Toolbar zeigt neben einer Reihe von Menüs neun Schaltflächen für die am häufigsten benötigten Aktionen. Neben dem Verbinden handelt es sich dabei um das Aktivieren der Sprachsteuerung, das Verwalten von Szenarien, das Hinzufügen eines Worts zum Vokabular, den Zugriff auf das Vokabular, die Grammatik, Kommandos, die Trainingsfunktion zum Erlernen neuer Wörter sowie eine Synchronisierung, die letztendlich neu erlernte Wörter dem jeweiligen Sprachmodell hinzufügt.

Das Vokabular muss alle Wörter enthalten, die Simon später erkennen soll. Grammatiken geben zulässige Wortkombinationen an, wie beispielsweise Nomen/Nomen, Nomen/Verb oder Trigger/Kommando – dazu später mehr.

Basismodelle und Szenarien

Simon unterstützt eine ganze Reihe bereits vorgefertigter Basismodelle. Um eines davon zu verwenden, laden Sie es herunter, entpacken es und geben unter Settings | Configure Simon... | Model Settings den Pfad zu den jeweiligen Modelldateien an (Abbildung 3). Mit adaptierten Basismodellen lassen sich die schnellsten Erfolge erzielen, doch auch bei den benutzergenerierten Modellen hält sich der Trainingsaufwand in Grenzen. Simon analysiert die Daten auf Phonem-Ebene – das bedeutet, dass die Aussprache in Form von durch Leerzeichen getrennten Phonemen vorliegen muss. Das Wort Computer beispielsweise lautet als solches Phonem k O m p j u: t @ r – dazu später mehr.

Abbildung 3: Über vorgefertigte Akustikmodelle lässt sich Simon schnell konfigurieren.

In der Regel legt Simon alle neuen Worte, Grammatiken und Kommandos im sogenannten Standardszenario ab. Für bestimmte Anwendungsfälle, etwa die Bedienung des Browsers Firefox oder des Mediacenters XBMC, existieren bereits Szenarien. Indem Sie diese herunterladen und installieren, ersparen Sie sich das Zusammentragen eigener Wörter und das Erstellen passender Grammatiken. Den vorgegebenen Wortschatz müssen Sie nur noch trainieren und an Simond übertragen.

Um eigene Szenarios anzulegen, klicken Sie in der Szenario-Verwaltung auf den Schalter Neu, benennen das Szenario und ergänzen Versionsnummer und Lizenzangaben sowie optional die zugrunde liegende Simon-Version und eine Autorenangabe. Anschließend füllen Sie das Szenario mit Wörtern und daran geknüpften Anwendungsfällen. Soll die eigene Arbeit später das Angebot der für alle verfügbaren Szenarien bereichern, vergeben Sie den Szenariennamen gemäß der Konvention [Sprache/Akustikmodell] aussagekräftiger Name, also beispielsweise [DE/VF] Opera für ein Szenario rund um den Browser Opera. Existieren mehrere Szenarien, fügt Simon alle neuen Wörter, Kommandos und Grammatiken dem aktuell aktiviertem Szenario hinzu.

Training

Nach Auswahl eines Basismodells und gegebenenfalls eines Szenarios ist jetzt die Zeit gekommen, Simon zu trainieren. Ein Klick auf Vokabular präsentiert viele rot hinterlegte Zeilen, was bedeutet, dass die fraglichen Wörter noch nicht mit Stimme und Aussprache des Anwenders verknüpft wurden (Abbildung 4) oder – im Fall eines benutzergenerierten Modells – Simon noch völlig unbekannt sind. Diese lassen sich nun markieren und zum Training hinzufügen.

Abbildung 4: Noch zu erlernende Vokabeln markiert Simon rot.

Alternativ starten Sie das Training mit einem Klick auf den gleichnamigen Schalter in der Werkzeugleiste unmittelbar, alle unbekannten Wörter fügt Simon dann automatisch den Trainingsdaten hinzu (Abbildung 5). Bei der Seitenanzahl handelt es sich in der Regel um die Zahl der Wörter beziehungsweise Wortgruppen, die Sie ins Mikrofon sprechen müssen.

Abbildung 5: Die Seitenanzahl einer Trainingseinheit entspricht der Zahl der zu übenden Wörter.

Das Training läuft in Form eines Dialogs ab: Simon zeigt nacheinander alle zur Trainingssitzung gehörigen Wörter oder Wortgruppen an, Sie lesen diese jeweils vor. Simon beschreibt dabei genau, was Sie zu tun haben, prüft jede Aufnahme auf deren Qualität und warnt, falls diese nicht ausreicht (Abbildung 6). Dazu prüft es beispielsweise den höchsten Lautstärkepegel und das Verhältnis des Signals zum Rauschen. Um Simon die Möglichkeit zu geben, das Rauschen herauszufiltern, sollten Sie vor und nach jeder Aufnahme etwa zwei Sekunden Stille aufnehmen. Sobald Sie eine Einheit abgearbeitet haben, geht Simon direkt zur nächsten über.

Abbildung 6: Simon warnt bei Aufnahmen geringer Qualität.

Falls Sie sich für ein benutzergeneriertes Akustikmodell entscheiden, fallen mindestens fünf Trainingsrunden an. Zwar klappt eine rudimentäre Erkennung auch schon nach zwei Durchläufen, aber die Trefferquote bleibt in diesem Fall sehr spärlich. Im Test erkannte Simon nach zehnmaligen Training die zugerufenen Wörter in jedem Fall fehlerlos.

Bei neuen Wörtern besteht die Herausforderung darin, für jedes neue Wort ein "Terminal" zu wählen – Sie müssen also angeben, ob es sich um ein Verb, ein Substantiv, einen Trigger oder ein Kommando handelt. Zudem gilt es, wie oben bereits erwähnt, die Aussprache in Form eines Phonems zu definieren, wie des schon zitierten k O m p j u: t @ r. Nicht-Linguist tun sich damit erfahrungsgemäß schwer, ein Schattenlexikon spart hier viel Arbeit. Simon unterstützt die Wörterbuchformate Hadifix (beispielsweise Hadifix BOMP, [8]), HTK (Voxforge, [9]), PLS (Deutsches GPL-Wörterbuch von Voxforge, [9]), Sphinx oder Julius-Wörterbücher aus früheren Simon-Versionen.

Kommandos

Sobald alles funktioniert, möchten Sie das System eventuell um neue Kommandos erweitern. Solche Kommandos kümmern sich um das Abarbeiten der Ergebnisse des Erkennungssystems und können einzeln oder in Verbindung mit einem Auslöser daherkommen. Die Kombination von Auslöser ("Trigger") und Kommando – etwa "Starte Skype" statt nur "Skype", verhindert das ungewollte Auslösen von Kommandos.

Für das Ausführen von Kommandos bringt Simon einer Reihe von Plugins mit, etwa für den Start von Programmen (Programme), das Öffnen von Webadressen sowie Ordnern und Dateien (Orte), die Eingabe von Tastenkombinationen wie [Strg]+[S] (Tastenkürzel) und Ziffern (Zahlen eingeben) oder für Textbausteine (Textmakros). Darüber hinaus können Sie auch Kommandolisten aufrufen, aus denen Sie durch Nennen einer Zahl ein Eintrag wählen (Listenkommandos), über die Sie die Maus steuern (Desktopgitter) oder mehrere zusammengehörige Kommandos ausführen (Kombinations-Kommandos). Ein Kombi-Befehl wie "Mama anrufen" könnte beispielsweise einen SIP-Client starten, die Telefonnummer Ihrer Mutter heraussuchen und diese anwählen.

Neue Kommandos lassen sich über die Kommando-Oberfläche hinzufügen. Bevor Sie aber über Neues Kommando zur Tat schreiten, müssen Sie mithilfe von Plugins verwalten erst ein oder mehrere benötigte Kommando-Plugins laden, die sich optional mit einem Auslöser kombinieren lassen. Im darauf folgenden Dialog zum Erzeugen des neuen Kommandos geben Sie dann lediglich noch die mit dem Kommando verknüpfte Aktion und den Trigger an (Abbildung 7). Neue Kommandoworte gilt es außerdem noch zu trainieren sowie gegebenenfalls auch eine entsprechende Grammatik anzulegen.

Abbildung 7: Simon unterstützt Sie beim Erstellen neuer Kommandos.

Fazit

Simon hat sich in den letzten Jahren zügig weiterentwickelt, läuft stabil und präsentiert benutzerfreundliche Dialoge und Oberflächen. Das Training nimmt zwar einige Zeit in Anspruch, doch eine hohe Trefferquote belohnt anschließend für die Mühen. Über die reine Sprachsteuerung hinaus bietet Simon noch weitere Möglichkeiten, deren genauere Beschreibung den Rahmen dieses Artikels sprengen würde.

Dazu zählen etwa ein Diktat-Plugin, ein Aussprachetraining sowie ein Plugin für Künstliche Intelligenz. Die Diktatfunktion erlaubt (entsprechend reichhaltiges Vokabular vorausgesetzt) das Diktieren kurzer Texte, das Aussprachetraining und ein starres statisches Modell ermuntern zu korrekter Aussprache und ersetzen beim Fremdsprachenlernen den Pauker. Die KI soll Simon befähigen, Anwendern zu antworten, und ermöglicht akustische Dialogsysteme.

Für die Zukunft haben sich die Simon-Entwickler noch viel vorgenommen. So soll die Software auch älteren Menschen das Leben erleichtern und in der Robotik zum Einsatz kommen. Dazu beteiligt sich das Team an den Projekten Benefit [10] und Astromobile [11]: Benefit erforscht, wie moderne Kommunikationstechnologien das Leben älterer Menschen erleichtern und so längere Selbstständigkeit garantieren können, Astromobile beschäftigt sich mit der Mensch-Maschine-Interaktion. 

Glossar

LVCSR

Large Vocabulary Continuous Speech Recognition. Spracherkennung, die nicht nur einzelne Begriffe, sondern auch natürlichsprachige ganze Sätze erkennt.

Hidden Markov Model

Stochastisches Modell zur Mustererkennung per Wahrscheinlichkeitsanalyse.

Schattenlexikon

Ein solches Wörterbuch verwendet Simon nicht zur Erkennung. Es beinhaltet viele Wörter samt Informationen zu Terminal und Aussprache. In Simon lassen sich die Schattenlexika über den Assistenten Wörterbuch importieren einbinden.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Related content

Kommentare