Eine Art Script-Steuerung kann man im Optionen-Menü aktivieren: CLI Zugang
Wenn dies aktiviert ist, kann man mit einem Telnet-Client sich zu PhonerLite an den Port 50600 verbinden:
telnet localhost 50600
Per Default ist die integrierte Script-Steuerung aktiv.
Man kann Kommandos wie "Help" eingeben oder ein Script aus einer Datei laden. Es gibt einige Einschränkungen wie fehlende "If"-Verschachtelung oder fehldene Schleifen. Letzteres kann man durch Laden einer Script-Datei aber umgehen - alle aktuellen Stati und Kommandos werden dadurch zurückgesetzt.
Das "Wait" und "If"-Kommando kann mehrere Bedingungen prüfen, welche kommasepariert angegeben werden. Es gilt hierbei die OR-Verknüpfung.
Dieses Beispiel zeigt, wie man einen ausgehenden Ruf aufbaut und eine Wave-Datei abspielen lässt, sobald der Ruf verbunden ist. Nach dem Abspielen wird der Ruf beendet:
If HasCall
Print Stop script due existing other call
Stop
EndIf
SetNumber 0123456789
HookOff
Wait 5,HasCall
If !HasCall
Print Stop script due no call could be created
HookOn
Stop
EndIf
Print Waiting for call is beeing answered within 30 seconds
Wait 30,!HasCall,StateIsActive
if !StateIsActive
Print Call not answered within 30 seconds
HookOn
Stop
EndIf
Print Waiting 2 seconds before playing wave file
Wait 2
Wave announcement.wav
Print Waiting for wave file is being played
Wait !StateIsActive,WavePlayed
Wait 1
HookOn
Man kann ein solches Script nicht in dieser formatierten Art manuell eingeben, da das "Wait"-Kommando die weitere Eingabe blockiert. Aus diesem Grund sollte ein Script in eine Datei gespeichertwerden (z.B. "script.txt") und durch folgendes Kommando geladen werden: "load script.txt".
Alternativ kann man obiges Script auch in einer Zeile darstellen, die Zeilen werden durch "&" getrennt:
If HasCall & Print Stop script due existing other call & Stop & EndIf & SetNumber 0123456789 & HookOff & Wait 5,HasCall & If !HasCall & Print Stop script due no call could be created & HookOn & Stop & EndIf & Print Waiting for call is beeing answered within 30 seconds & Wait 30,!HasCall,StateIsActive & if !StateIsActive & Print Call not answered within 30 seconds & HookOn & Stop & EndIf & Print Waiting 2 seconds before playing wave file & Wait 2 & Wave announcement.wav & Print Waiting for wave file is being played & Wait !StateIsActive,WavePlayed & Wait 1 & HookOn
Eine Übersicht über die installierten TTS-Sprachen erhält man per "tts"-Kommando. Der Eintrag mit dem Sternchen (*) davor ist die derzeit verwendete Sprache.
PL>tts
*0: Microsoft Hedda Desktop - German
1: Microsoft Zira Desktop - English (United States)
2: Microsoft Irina Desktop - Russian
Um beispielsweise auf Englisch umzuschalten, gibt man folgendes ein: "tts 1".
Um nun einen Text in Sprache zu wandeln, kann man beispielsweise folgendes eingeben: "say Guten Tag"
Wenn kein Ruf aktiv ist, erfolgt die Ausgabe lokal über den Lautsprecher, ansonsten wird das der Gegenstelle statt des Mikrofonsignals übertragen.
Wenn mehrere Rufe parallel bestehen, macht es Sinn pro Ruf ein eigenes Unter-Script laufen zu lassen. Man kann dies beispielsweise durch folgendes Verteilungs-Script erreichen:
Wait NewCall
LoadCall script_newcall.txt
Load %LOAD_FILE%
Per Default wird ein bereits existierender Ruf ins Halten gelegt, wenn ein weiterer Ruf angenommen wird. Möchte man dies vermeiden, macht es Sinn diesen Mechanismus zu deaktieren. Im folgenden Beispiel wird zusätzlich noch das Benachrichtigungsfenster für eingehende Rufe deaktiviert:
DesktopAlertOff
AutoHoldOff
Wait NewCall
LoadCall script_newmulticall.txt
Load %LOAD_FILE%
Bei Benutzung der 64-Bit Version von PhonerLite wird Audio Transkription unterstützt - durch Verwendung einer speziellen Version von Whisper.cpp. Keine externen Dienste im Internet werden benutzt, sondern die Auswertung erfolgt rein lokal auf dem PC. Per Eingabe von "stt" kann überprüft werden, ob die notwendigen Dateien vorhanden sind. Mittels "stt install" können die notwendigen Daten (erneut) heruntergeladen werden (~465 MB). Die Voreinstellung lädt das sogenannte "small" Modell herunter. Ist eine höhere Erkenunngsqualität erforderlich, kann per "stt install medium" ein ~1.42 GB großes Modell heruntergeladen werden. Momentan kann eine Audio-Datei (.wav) mittels dem "ListenFile" Kommando transkribiert werden. Abhängig von der Dateigröße und der zur Verfügung stehenden GPU kann es eine Weile dauern!. Das Ergebnis wird auf der Konsole ausgegeben und zusätzlich in der Variable %STT% gespeichert. Mittels den Kommandos "ListenOn" und später "ListenOff" erfolgt eine Art Live-Transkription. Wenn kein Anruf aktiv ist wird das Mikrofonsignal verwendet, ansonsten die empfangen Daten vom Netzwerk.
Die Sprache für die Transkription entspricht per Default der Sprache, welche für die PhonerLite Oberfläche eingestellt ist. Wenn eine andere Sprache verwendet werden soll, kann dies durch Angabe der Kurzform erfolgen, beispielsweise "stt 1 en" benutzt dann das "Small" Modell und Englisch als zu erkennende Sprache.
(C) Heiko Sommerfeldt