Quick start
Um zu starten, erstellen oder öffnen Sie ein TwinCAT HMI-Projekt.
Installation
Installieren Sie das NuGet-Paket „Beckhoff.TwinCAT.HMI.Speech“ über den NuGet Package Manager.
Verbindung herstellen
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);
}
});