Forschungsprojekte

VRIO - Sprachverarbeitungseinheit zur Steuerung von Computern

Virtuelle Realität erlaubt neue Wege der Visualisierung und Interaktion mit einer virtuellen Umgebung. All diese virtuellen Realitäten erfordern Interaktion mit dem Benutzer.
Ein großes Problem, das sich hierbei bemerkbar macht, sind die beschränkten Möglichkeiten der verfügbaren Eingabegeräte. Joystick, 3-D Maus und Datenhandschuh eignen sich nicht für die Steuerung einer Applikation, die zahlreiche Kommandos zur Verfügung stellt.
Ein Lösungsansatz für dieses Problem wäre der Einsatz einer speziellen Virtual-Reality-Tastatur, die allerdings die Immersion empfindlich stören würde. Im Gegensatz dazu erscheint es sinnvoll, Spracheingabe als die natürlichste Art der Kommandoeingabe zu verwenden.
So wurde die Idee eines Spracherkennungssystems für virtuelle Realität geboren.

Anforderungen

Während der Entwurfsphase wurden folgende Anforderungen für das Spracherkennungssystem festgelegt:

  • Es muß portabel sein, um mit unterschiedlichen Applikationen und Systemen für virtuelle Realität verwendet werden zu können. Dies führte zur Idee eines unabhängigen Servers für die Spracherkennung.
  • Die Software- und Hardware-Komponenten des Systems sollten günstig sein. Dies führte zur Verwendung von normaler PC-Hardware und Public-Domain Software.
  • Das System wird in existierenden wissenschaftlichen Projekten eingesetzt, um die Anwendbarkeit zu evaluieren und Ideen für weitere Verbesserungen zu bekommen.
  • Der Lösungsansatz sollte offen für zukünftige Erweiterungen sein.

Hardware-Komponenten

Der Lösungsansatz basiert daher auf folgenden Komponenten:

VRIO Hardware
  • Standard PC (x86 kompatibel)
  • integrierte Netzwerkkarte (10/100 MBit)
  • Audiokarte
  • Mikrophon

Es wurde folgende Hardwarekonfiguration verwendet:

  • AMD Duron 900 Mhz
  • 256 MB Hauptspeicher
  • 30 GB IDE Festplatte
  • 128 Bit PCI Soundblaster
  • MSI Mainboard
  • ATI Rage 128, 32 MB
Kosten: ca. 800 Euro

Mikrophon:
  • Plantronics SR 1
Kosten: ca. 36 Euro

Software-Komponenten

Die Verwendung dieser Software-Komponenten bietet zwei Vorteile.

  1. Das Linux Betriebssystem kann leicht in bestehende Unix Umgebungen integriert werden.
  2. Das IBM ViaVoice SDK ist für Linux unter einer Public Domain Lizenz verfügbar.
Die Kommunikation zwischen dem Sprachverarbeitungsserver und dem System für virtuelle Realität wurde durch die Entwicklung eines Kommunikationsprotokolls über TCP/IP Sockets realisiert.

Die Kommandos, die während einer CAVE Sitzung erkannt werden können, werden in einer Grammatikdatei gespeichert, die von ViaVoice verwendet wird und die Geschwindigkeit und die Qualität der Spracherkennung steigert.

Ein Kommando kann ein einzelnes Wort oder eine Phrase sein, die mithilfe einer EBNF-Grammatik definiert wurde. Um die Menge der über das Netzwerk zu transportierenden Daten zu reduzieren, wird jedes Kommando durch die Grammatikdatei auf ein Ereignis abgebildet.
Daher muß nur die Ereignisnummer über das Netz zum Sprach-Client geschickt werden.

VRIO Protocol

Die folgenden Schritte werden während einer CAVE-Sitzung mit Sprachkontrolle durchgeführt:

  1. Server: Nach dem Starten hört der Sprach-Server (SpeechServSocket) auf einen bestimmten Socket und wartet auf eine Netzwerkverbindung von einem Client.
  2. Client: Eine Funktion der Client API initialisiert den Client-Kern und zusätzlich einen Thread um die Netzwerkverbindung zu behandeln.
  3. Client: Die Grammatikdatei, die die Definition der Grammatik enthält wird über das Netzwerk zum Sprachserver geschickt.
  4. Server: Der Server verarbeitet die Grammatikdefinition und beginnt mit der Verarbeitung der Spracheingabe in einem eigenen Thread (SpeechServer).
  5. Server: Sobald eine Phrase der Grammatik durch den Server erkannt wurde, wird sie auf die entsprechende Ereignisnummer abgebildet, die von der Grammatikdatei festgelegt wird. Die Ereignisnummer wird dann unter Verwendung eines SpeechServSockets über das Netzwerk zum Client gesendet.
  6. In der Client-Applikation löst das Ereignis eine Aktion aus.

Beispiel 1: Aktivitätstunnel

Um den Sprach-Server VRIO zu testen, wurde er in eine Applikation zur Visualisierung des Ausführungsverhaltens eines parallelen Programms integriert. Die ausgewählte Applikation ist ein Modul der MoSt Umgebung für das Steuern paralleler Programme. Mit der MoSt Umgebung kann der Benutzer einen Monitor an das laufende parallele Programm anhängen und Statusinformationen erhalten. Diese Statusinformation wird nun durch den Visualisierungsteil im CAVE dargestellt.

Die Darstellung, die "Activity Tunnel" genannt wird, repräsentiert die Speicher von 8 parallelen Prozessoren, die in einer Tunnelform angeordnet werden. Die Farben der Speicherbereiche verändern sich in Abhängigkeit von der Anzahl ihrer Zugriffe. Bereiche mit zahlreichen Zugriffen tendieren zu einer Rotfärbung, wohingegen Bereiche mit wenigen Zugriffen in dunkelblau dargestellt werden.

VRIO Tunnel

Ein beispielhafter Ablauf, der die Anwendung der Spracherkennung zeigt, ist als Video herunterladbar. Die folgenden Kommandos sind dabei verfügbar:

Kommando Aktion
"reset" der Benutzer wird am Beginn des Tunnels positioniert
"next level" Erhöhung des Granularitätslevels
"step forward" kleine Vorwärtsbewegung im Tunnel
"step back" kleine Rückwärtsbewegung im Tunnel
"warp" automatisches Durchfahren des Tunnels (warp mode)
"stop" Abbrechen des warp mode und zurückkehren zur manuellen Kontrolle
"stop transmission" Verbindung zum Monitoring System abbrechen
"quit" Terminierung des Visualisierungsprogramms

Die entsprechende Grammatikdatei sieht folgendermaßen aus:

command = reset : 13 next level : 2 step forward : 3 step back : 4 warp : 5 stop : 6 stop transmission : 7 quit : 8

Systemadmistration

Weiters wurde das VRIO System zur sprachgesteuerten Administration des Supercomputers SGI Origin 3800 eingesetzt, um seine Flexibilität bezüglich des Anwendungsbereichs zu zeigen. Der Zeitaufwand für die Anpassung an die neue Systemumgebung betrug lediglich ein paar Stunden.

Die folgenden Kommandos sind dabei verfügbar:

Kommando Aktion
"hello origin" Der Benutzer meldet sich an und die Willkommensnachricht wird auf dem Statusbildschirm angezeigt.
"show me your system load" Anzeige der aktuellen Systemauslastung
"how many useres are on-line" Anzeige der Anzahl der gerade eingeloggten Benutzer
"fan speed up/down" Veränderung der Laufgeschwindigkeit des Systemlüfters
"good bye origin" Abmelden vom System


Origin

Das flexible Design und die strikte Client/Server-Trennung ermöglichen zahlreiche Erweiterungen des Sprachservers, wie z.B. die Steuerung des gesamten Ein- und Ausgaben durch VRIO.
Dies führte zur Idee des VRIO (Virtual Reality Input Output). Der Hauptvorteil dabei ist, das die Eingabe und die Ausgabe auf eine abstraktere Ebene gehoben werden, was bedeutet, das die Ein- und Ausgabefunktionen nur einmal implementiert werden müssen und für zahlreiche (VR) Anwendungen verwendet werden können. In den meisten Umgebungen für virtuelle Realität sind die Ein- und Ausgaebgeräte über systemnahe Schnittstellen verbunden. Daher muß die Programmierung für jede Applikation separat erfolgen.

Klarerweise ist die Spracherkennungslösung nicht an virtuelle Realität gebunden. Da nur Ereignisse zwischen dem Server und dem Client übertragen werden, kann der Sprachserver in Kombination mit jedem Computersystem verwendet werden, das über eine Art von Netzwerk angesprochen werden kann.

Eine Idee für die Verwendung des Sprachservers steht in Verbindung mit der Sprachkontrolle von Maschinen und Geräten in Fabriken, da sich hier die Anwendung der Sprachkontrolle anbietet. Dies würde die Flexibilität der Arbeiter wesentlich erhöhen, da es nicht mehr notwendig ist ein schweres Notebook mit sich herumzutragen.
Es könnte in diesem Zusammenhang allerdings zu Problemen mit Umgebungsgeräuschen kommen, was eine hohe Aufnahmequalität des Mikrophons erfordert.

Ein anderer Anwendungsbereich sind Netzwerke im Wohnbereich. Mit der Verbreitung von häuslichen Netzwerkeinrichtungen wird die Anzahl der Wohnungen mit LANs stark ansteigen. Der Sprachserver kann leicht in eine solche Umgebung integriert und zur Steuerung von alltäglichen Aufgaben verwendet werden.
Beispiele dafür wären das Aus- und Einschalten des Lichts, sowie die Kontrolle von Haushaltsgeräten und Unterhaltungselektronik.

Spracherkennung wird auch deshalb im täglichen Leben immer wichtiger werden, weil die Erkennungsqualität steigt und immmer mehr unerfahrene Benutzer in Kontakt mit Computern kommen. Speziell für diese Benutzergruppe ist es notwendig, eine so natürliche Schnittstelle wie möglich anzubieten.

ipaq User mit ipaq
zukünftiger Einsatz des Systems auf einem portablen Gerät

Videos

Links

Publikationen

  • Dieter Kranzlmüller, Alois Ferscha, Paul Heinzlreiter, Michael Pitra, Jens Volkert
    "VRIO: A Speech Processing Unit for Virtual Reality and Real-World Scenarios - Experience Report"
    In Proc. of HCII 2003, pp. 701-705, Hersonissos, Greece, June 2003

  • Dieter Kranzlmüller, Bernhard Reitinger, Ingo Hackl, Jens Volkert
    "Voice Controlled Virtual Reality and Its Perspectives for Everyday Life"
    Proc. APC 2001, Arbeitsplatzcomputer 2001, Fachtagung der GI/ITG Fachgruppe
    APS+PC zum Thema "Pervasive Ubiquitous Computing", VDE-Verlag, Technical
    University Munich, Munich, Germany, pp. 101-107 (October 2001).

  • Dieter Kranzlmüller, Bernhard Reitinger, Jens Volkert
    "VRIO - An Appliance for Natural Interaction with Computers"
    Proc. Informatik 2001, GI/OCG Jahrestagung
    Vienna, Austria, pp. 232-241 (October 2001).

  • Dieter Kranzlmüller, Ingo Hackl
    "Integrierte Sprachsteuerung mit Linux"
    Practical Linux Anwendertag Giessen
    Linux User Group Giessen
    (October 2001).

  • Dieter Kranzlmüller, Ingo Hackl
    "Speech Processing with VRIO and Linux"
    Proc. 8th International Linux-Kongress
    University of Twente, The Netherlands, pp. 157-163 (November 2001).

Vorträge

Studentenprojekte

Seit einiger Zeit bietet das GUP die Vorlesung Virtual Reality im CAVE an. Ziel der Lehrveranstaltung ist es dem interessierten Hörer die Technologie der Virtual Reality näher zu bringen. Dabei werden Themen wie OpenSG- und Performer-Programmierung, der Umgang mit EON Studio oder 3D Modellierung behandelt. Am Ende der Vorlesung soll es den Studenten möglich sein, eigenständig VR-Applikationen für den CAVE, Curved Screen, ICatcher oder das ReachIn Display zu entwickeln. Hier finden sich Informationen zu den bisher entstandenen Abschlußprojekten.

Industrieprojekte

  • Industrieprojekte
  • SAVE

Die Johannes Kepler Universität Linz ist immer um die Kooperation mit Firmen bemüht. Ein Hauptaugenmerk liegt hierbei an der Schnittstelle zwischen Studenten und Forschungsprojekten aus der Wirtschaft. Dabei bietet das VR-Center eine der besten Hardware Ausstattungen Europas. Wenn Ihre Firma an Forschungsprojekten in den Bereichen Computergraphik, Visualisierung oder Human Interface Technology interessiert ist oder Projektideen einbringen möchte, dann kontaktieren Sie uns über vrcadmin@jku.at