Skip to content

Javascript/Typescript Framework für Spracheingabe/ausgaben und Dialogverarbeitung.

License

Notifications You must be signed in to change notification settings

lingualogic/speech-framework

Repository files navigation

Speech-Framework

Das Speech-Framework ist eine Typescript Browser-Bibliothek zur Integration von Sprachdiensten, wie Sprachausgabe (TTS), Spracherkennung (ASR), Sprachverstehen (NLU), Dialogverarbeitung (NLP) und Aktionsausführung in eine Web-Seite oder Web-App. Kern des Speech-Frameworks ist ein Bot, der Dialoge eines Dialogskripts ausführen kann.

Daneben git es einzeln verwendbare Dienste:

  • Speak für die Sprachausgabe (Html5 SpeechSynthesis, Nuance-TTS, Amazon-TTS, Microsoft-TTS)
  • Listen für die Spracherennung (Html5 SpeechRecognition, Nuance-ASR, Microsoft-ASR)
  • Intent für das Sprachverstehen (Nuance-NLU, Google-NLU)
  • Action für die Aktionserzeugung
  • Dialog für die Ausführung von Dialogskripten

Im Speech-Framework kann für die Sprachausgabe (TTS), die Spracheingabe (ASR) und das Sprachverstehen (NLU) auch ein Cloud-Dienst verwendet werden. Dazu wird ein eigener Account des Cloud-Dienstes benötigt. Es gibt den Amazon Cloud-Dienst für die Sprachausgabe (TTS), den Microsoft Cloud-Dienst für die Sprachausgabe (TTS) und die Speacheingabe (ASR), sowie den Google Cloud-Dienst für Sprachausgabe(TTS), Spracheingabe( ASR) und Sprachverstehen (NLU). Hinzugekommen ist der Rasa-Server als selbst zu betreibenden Cloud-Dienst für das Sprachverstehen (NLU). Für die Google Cloud-Dienste wird zusätzlich der Speech-Tokenserver benötigt.

Letzte Version

Für Angular-Projekte gibt es Speech-Angular als Wrapper für das Speech-Framework mit einer stabilen API. Für React-Projekte gibt es Speech-React als Wrapper und für Vue gibt es Speech-Vue als Wrapper.

Voraussetzungen

Wir haben das Speech-Framework auf Mac OS X 10.14, Win 10 und Ubuntu 18.04 getestet. Als Plattformen können eingesetzt werden:

  • Mac OS X >= 10.14
  • Windows 10
  • aktuelles Linux (z.B. Ubuntu 20.04)

Grundsätzlich ist das Speech-Framework in Chrome, Firefox, Opera, Safari und Edge nutzbar, allerdings hängt die Sprachausgabe unter diesen Browsern von der zugrunde liegenden Text-to-Speech Engine der jeweiligen Plattformen ab. Die Spracheingabe funktioniert bisher nur in Chrome ohne die Nutzung von Cloud-Diensten. Mit der Einbindung von Cloud-Diensten kann die Spracheingabe in allen hier aufgeführten Browsern verwendet werden.

  • Chrome >= 80 Windows/Linux/MacOS (Html5: TTS, ASR)(Nuance: TTS, ASR, NLU)
  • Firefox >= 80 Windows/Linux/MacOS (Html5: TTS)(Nuance: TTS, ASR, NLU)
  • Opera >= 70 Windows/MacOS (Html5: TTS)(Nuance: TTS, ASR, NLU) Linux (kein Html5)
  • Safari >= 14 MacOS/iOS (Html5: TTS)(Nuance: ASR, NLU)
  • Edge >= 80 Windows (Html5: TTS)(Nuance: TTS, ASR, NLU)

NodeJS muss installiert sein.

  • NodeJS >= 12.X und <= 14.x (NodeJS LTS 14.x empfohlen)

Als weitere Plattformen können Android und iOS mit Cordova verwendet werden:

  • Cordova >= 10 für Android ab 5.1 und iOS ab 10

Für Cordova müssen weitere Programme zur Entwicklung von Android- und iOS-Apps installiert werden.

Installation

Zuerst muss das Speech-Framework Github-Repsitory unter https://github.com/lingualogic/speech-framework mit folgendem Befehl geklont werden:

$ git clone https://github.com/lingualogic/speech-framework
$ cd speech-framework

danach werden alle NPM-Pakete für das Speech-Framework mit folgendem Befehl installiert:

$ npm install

anschließend wird das NPM-Paket für das Speech-Framework im dist Ordner erzeugt und die E2E-Tests ausgeführt:

$ npm run build

E2E-Tests

Die E2E-Tests können mit folgenden Befehl separat ausgeführt werden:

$ npm test

Zusätzlich können in der Datei karma.conf.js der Browser zum Testen gewechselt und SingleRun=false gesetzt werden. Beim Chrome werden nicht alle Tests durchgeführt, da Audio- und Sprachausgabe gesperrt sind. Man kann die Sperrung durch drücken in den Browser aufheben und die Tests inklusive Audio- und Sprachausgabe ausführen.

Alle E2E-Tests sind unter test/e2e zu finden.

Das im dist Ordner erzeugte npm-Paket 'speech-framework-0.5.x.tgz' kann in den eigenen Web-Projektordner kopiert werden. Die Installation des Speech-Framework npm-Paketes erfolgt im eigenen Web-Projektordner mit folgendem Befehl:

$ npm install speech-framework-0.5.x.tgz

Danach kann das Speech-Framework in Web-Projekt mit Javascript oder Typescript verwendet werden. Es sind keine weiteren Bibliotheken einzubinden.

Alternativ kann das Speech-Framework auch über das offizielle globale NPM-Repository installiert werden:

$ npm install speech-framework

Deinstallation

Das Speech-Framework kann mit folgendem Befehl wieder deinstalliert werden:

$ npm uninstall speech-framework

Dokumentation

Architektur

Framework

Cloud-Dienste

Plattformen

API-Referenz

Roadmap

Release Notizen

Beispiel-Apps

Im examples Ordner sind mehrere kleine Beispiel-Apps in Javascript für die einzelnen Komponenten von Speech-Framework zu finden. Zum Ausführen der Beispiele muss nicht in den Beispielordner gewechselt werden.

Folgender Befehl ist für das Speak-Beispiel einzugeben:

$ npm run speak

Für das Listen-Beispiel ist folgender Befehl einzugeben:

$ npm run listen

Für das Intent-Beispiel ist folgender Befehl einzugeben:

$ npm run intent

Bekannte Probleme

  • Googles Dialogflow schaltet seine Version 1 Ende März 2020 ab.
  • Nuance hat seine Sprachdienste abgeschaltet und steht als Cloud-Dienst nicht mehr zur Verfügung
  • die verschiedenen Browser verhalten sich unterschiedlich, so dass nicht in jedem Browser alle Funktionen des Speech-Frameworks zur Verfügung stehen.
  • unter iOS funktioniert die Cordova-Version von Listen mit Amazon Cloud-Dienst nicht, da die Apple WebView die getUserMedia-API nicht unterstützt.

Projektverantwortliche (LinguaLogic Team)

Projektorganisation: Leo Füchsel (leo@lingualogic.de)

Technische Umsetzung: Stefan Brauer (stefan@lingualogic.de)

Danksagung

Wir haben das Entstehen und die Entwicklung des Projektes vielen Personen zu danken, vor allem dem gesamten Team der Nepos GmbH.


Lizenz

Das Speech-Framework wurde als Open Source unter der MIT-Lizenz veröffentlicht.