Speech API: Benutzeroberflächen durch Sprachfunktionen aufwerten

Spracherkennung ermöglicht Computern das Hören gesprochener Sprache und die Analyse dessen, was gesagt wurde. Mit anderen Worten: Hier wird ein Audiosignal, das Sprache enthält, in Text umgewandelt.

Die wichtigsten Schritte einer typischen Spracherkennung:

  • Grammatik-Design: Definiert die Wörter, die von einem Benutzer gesprochen werden können, sowie die Strukturen, in denen dies geschieht.
  • Signalverarbeitung: Analysiert die Spektrumsmerkmale (also die Frequenzmerkmale) des Audio-Eingangssignals.
  • Phonem-Erkennung: Vergleicht die Spektrumsmuster mit Grundphonemen der zu erkennenden Sprache.
  • Worterkennung: Vergleicht die Sequenz wahrscheinlicher Phoneme mit den Wörtern und Wortmustern, wie sie in den jeweils aktiven Grammatiken festgelegt sind.
  • Ergebnisgenerierung: Liefert der Anwendung Informationen über die im Audio-Eingangssignal erkannten Wörter.

Eine Grammatik ist ein Objekt in der Java Speech API. Sie gibt an, welche Wörter ein Benutzer voraussichtlich sprechen wird und in welchen Mustern diese Wörter vorkommen. Grammatiken sind wichtig für Spracherkenner, weil sie den Erkennungsprozess beschränken. Diese Beschränkungen beschleunigen die Erkennung und machen sie präziser, weil der Spracherkenner nicht mit exotischen Satzkonstruktionen rechnen muss.

Die Java Speech API unterstützt zwei grundlegende Arten von Grammatiken: Regel-Grammatiken und Diktier-Grammatiken. Diese Grammatiken unterscheiden sich in vielfältiger Weise, unter anderem darin, wie Anwendungen die Grammatiken einrichten, in der Art der zulässigen Sätze, wie Ergebnisse bereitgestellt werden, im Umfang der erforderlichen Computerressourcen und wie sie bei der Anwendungsentwicklung zum Einsatz kommen.

Die Klassen und Schnittstellen der Java Speech API

Die unterschiedlichen Klassen und Schnittstellen, aus denen die Java Speech API besteht, sind in den folgenden drei Paketen gruppiert.

  • javax.speech: Enthält Klassen und Schnittstellen für eine allgemeine Sprach-Engine.
  • javax.speech.synthesis: Enthält Klassen und Schnittstellen für die Sprachsynthese.
  • javax.speech.recognition: Enthält Klassen und Schnittstellen für die Spracherkennung.

Die Central-Klasse ist so etwas wie eine Factory-Klasse, die alle Java-Speech-API-Applikationen verwenden. Sie stellt statische Methoden für den Zugriff auf die Engines für Sprachsynthese und Spracherkennung bereit. Die Engine-Schnittstelle beinhaltet allgemeine Operationen, die eine Java-Speech-API-konforme Sprach-Engine den Sprachanwendungen zur Verfügung stellen sollte.

Sprachanwendungen verwenden Methoden in erster Linie, um beispielsweise Aktionen wie das Abrufen der Eigenschaften oder des Status der Sprach-Engine durchzuführen oder einer Sprach-Engine entsprechende Ressourcen zuzuweisen und wieder zu entziehen. Darüber hinaus stellt die Engine-Schnittstelle Mechanismen bereit, um den Audiostream, der von der Sprach-Engine erzeugt oder verarbeitet wird, anzuhalten und weiter abzuspielen.

Die Engine-Schnittstelle unterteilt sich in weitere Klassen, die Synthesizer- und die Recognizer-Schnittstelle. Diese definieren zusätzliche Funktionen für Sprachsynthese und Spracherkennung. Die Synthesizer-Schnittstelle impliziert jene Operationen, die eine Java-Speech-API-konforme Sprachsynthese-Engine den Sprachanwendungen zur Verfügung stellen sollte.

Die Java Speech API basiert auf dem Event-Handling-Modell von AWT-Komponenten. Ereignisse, die von der Sprach-Engine erzeugt werden, können entsprechend erkannt und verarbeitet werden. Hierzu gibt es zwei Möglichkeiten: über die Schnittstelle EngineListener oder über die Klasse EngineAdapter.

Weitere Informationen über alle Klassen und Schnittstellen finden sich in den Java Speech API Javadocs.

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Speech API: Benutzeroberflächen durch Sprachfunktionen aufwerten

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *