Skip to content

The tokenisation of spoken text. Received by the Watson STT and sent to the Apache OpenNLP. Additional code creates individual tokens, depending on the recorded sentences

License

Notifications You must be signed in to change notification settings

CarolinElsner/Speech-Tokenization

Repository files navigation

Speech-Tokenization

Dieses Repository repräsentiert den Entwicklungsanteil der Speech Tokenization im Modul Cloud Computing Technology an der Hochschule der Medien Stuttgart.

Das Team besteht aus den folgenden Mitgliedern:

Aufbau/Ablauf der Fallstudie

In dem Speech_Recognition Ordner befindet sich das Front-End, das durch den Express Server, der durch NodeJS realisiert wird, ausgeführt wird. Das Front-End regelt die Authentifizierung mit der Watson API und die Interaktion mit der Watson Speech-to-Text API. Die erfassten Sätze werden dem Nutzer dargestellt und als GET Request dem Applikation Server gesendet.

Bei dem SpeechTokenization Ordner handelt es sich um den Java Code. Mitinbegriffen ist ein Servlet, das die Kommunikation mit einem Web Server ermöglicht. Im Rahmen der Tests wurde der Web Server Tomcat 8.5 verwendet um den Java Code auszuführen. Für die Kommunikation des Front-Ends mit dem Java Code werden die GET Requests vom Servlet empfangen. In dem Servlet können die übergebenen Parameter und dessen Werte ausgelesen werden. Zum aktuellen Stand wird ein Parameter mit der Bezeichnung "param" in dem Servlet ausgelesen.

ToDo:

  • Entwicklung einer geeigneten Schnittstelle zwischen JavaScript und Java
  • Implementierungs-/ Installationsanleitung schreiben in GitHub
  • Upload des Front-End Code (Web Server)
    • Speech Recognition
    • GUI
  • Upload der Java Dateien
    • Schnittstelle
    • Simulation der Semantik Gruppe
    • Tokenizierung
      • Chunking der Sätze
      • Aufbau und Füllung eines Tokens
      • Bezug/Interpretation bzgl. Informationen der Semantik Gruppe

Ziel des 2. Semesters ist die Entwicklung und Implementierung eines Prototypen, welche die Anforderungen an das Gesamtsystem Speech_Recognition und SpeechTokenization erfüllt. Um die Aufgabe des Speech to Text zu realisieren, wurde der IBM-Watson verwendet. Nach erfolgreicher Spracherkennung werden für die Tokenization entsprechende Chunks identifiziert, hierfür wird Apache OpenNLP genutzt. Ferner wird überprüft, ob es sich um einen Eigennamen und/oder Substantiv handelt. Handelt es sich um einen Eigennamen oder ein Substantiv, dann wird das Wort der ChunkListe hinzugefügt. Zudem kann identifiziert werden. ob zwei aufeinanderfolgende Wörter sinngemäß zusammengehören.

Um herauszufinden, ob eine Terminangabe Bestandteil eines Satzes ist, wird die Klasse DetectTermin verwendet. Das Format wird vom IBM Watson in DD/MM/YYYY ausgegeben und mit Hilfe einer regular Expression soll dies erkannt werden:

  • Regular Expression: (0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/((19|20)\d\d)

Nach erfolgreicher Erstellung der Chunk-Objekte, findet eine Überprüfung der Nennung von bestimmten Google Applikationen statt. Um dies zu realieren wird ein Objekt der Klasse DetectApplikation instanziiert. Es werden folgende Schlüsselwörter geprüft:

  • Google Keep
  • Google Drive
  • Google Docs
  • Presentation
  • Google Mail
  • Mail

Um einen Satz vollständig durch ein Event abbilden zu können, wurde ein neues Objekt erstellt, das sowohl alle erkannten Chunks abbildet als auch die jeweilige Semantische Information. Die Funktionen des Objektes sind folgende:

  • returnList() → erstellt eine ArrayListe von Objekten aus dem Objekt
  • parseArrayList(ArrayList) → Erstellt ein solches Objekt aus einer ArrayListe
  • getChunkContentAt(position) → ließt den Chunk an der entsprechenden Position aus
  • hasChunk(chunk) → Prüft ob das Objekt über den eingegebenen Chunk verfügt
  • readChunks() → erstellt eine ArrayList ausschließlich mit den Chunks
  • addChunkContent(chunk) → Fügt dem Objekt ein Chunk hinzu
  • addSemanticToChunk(chunk, semantic) → Fügt einem spezifischen Chunk eine Semantische Information hinzu
  • readSemanticOfChunk(chunk) → liest die Semantik eines Chunks aus
  • hasSemInfo(chunk) → Prüft ob der Chunk über Semantische Informationen verfügt
  • removeChunkAndSem(chunk) → löscht den Chunk und seine Semantischen Informationen
  • remove SemanticOfChunk(chunk) → löscht die Semantischen Informationen eines Chunks aus dem Objekt
  • getSemanticAt(position) → Ließt die Semantischen Informationen an einer bestimmten Position aus, die Position bezieht sich auf die Position des Chunks
  • printList() → Consolenausgabe des Objektes

About

The tokenisation of spoken text. Received by the Watson STT and sent to the Apache OpenNLP. Additional code creates individual tokens, depending on the recorded sentences

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published