TwinCAT Speech

Die TwinCAT Speech Extension bietet eine Anbindung an TwinCAT Speech Systeme. Hiermit kann ein TwinCAT HMI Client/Browser als Audio-Ein- und Ausgabegerät genutzt werden. Für die Extension muss die .NET Core Runtime installiert sein.

1. Installieren Sie die TwinCAT Speech Extension über den NuGet Package Manager:
TwinCAT Speech 1:
Die Extension kann nun verwendet werden:
TwinCAT Speech 2:

Die Extension ist nur zum Datenaustausch von TwinCAT Speech mit dem Browser zuständig. Daher muss an der Extension selbst nichts konfiguriert werden.

Der Server muss als erstes in TwinCAT Speech bekannt gemacht werden (siehe Dokumentation von TwinCAT Speech).

Basiskonfiguration

Standardmäßig wird keine Speech-Verbindung aufgebaut. Dazu muss eine Verbindung aktiv per TypeScript/JavaScript API Aufruf gestartet werden.

TcHmi.TcSpeech.openConnection({
   enableMicrophone: true,
   enableSpeaker: true
});

Weitere mögliche Parameter des Aufrufs mit jeweiligem Standardwert sind:

defaultVolume: 1 Dies ist die Lautstärke der Tonausgabe beim Laden der Applikation. Diese kann von 0 bis 1 eingestellt werden.

domain: 'TcHmiSpeech' Domain-Name unter der die Speech-Extension erreichbar ist.

confidenceThreshold: 0.2 Jedes Erkennungsereignis hat eine Wahrscheinlichkeit, dass der erkannte Text mit einer angegebenen Eingabe übereinstimmt. Dieser Schwellwert gibt an, ab welchem Wert dies als echtes Ereignis gehandhabt wird. Wird hier beispielsweise 0.9 angegeben, wird nur bei einer sehr präzisen Übereinstimmung ein HMI Ereignis ausgelöst. (siehe auch hierzu die Dokumentation von Microsoft)

Nutzung von erkannten Events im Projekt

Erkannte Texte rufen Events im Speech System auf. Diese werden in den Browser übermittelt und sind dort identisch zu Events von Controls (wie myButton.onClick) nutzbar. Als Name wird hier der Recognition Tag aus der SRGS Datei genommen.

So kann er als Event im Actions and Conditions Editor im HMI genutzt werden. Dafür wird der Name im Bereich Custom eingetragen. Wird hier beispielsweise SpeechOnCommand<SET_ENGLISH> eingetragen, so wird beim Erkennen des Recognition Tag SET_ENGLISH eine Aktion gestartet.

Auch eine Nutzung per CodeBehind ist möglich. Beispielcode mit TypeScript:

TcHmi.EventProvider.register('SpeechOnCommand<SET_ENGLISH>', (e, data: TcHmi.TcSpeech.IEventCallbackParameter) => {
    // Will output:
    // 'The user said a text which triggered the recoginition tag: SET_ENGLISH'
    console.log('The user said a text which triggered the recoginition tag: ' + data.Command);
    if (data.Confidence > 0.9) {
        console.log('The speech recognition was pretty sure about that.');
    }
    if (data.Parameter) {
        console.log('We got a parameter for this recognition: ', data.Parameter);
    }
});
TwinCAT Speech 3:

Verfügbar ab der Version 1.12.744.0