Change Log: Difference between revisions

From LINKS - Documentation
Jump to navigation Jump to search
No edit summary
Line 2: Line 2:
Here you can find changes done around every major dev beta update and that are now available in public beta.
Here you can find changes done around every major dev beta update and that are now available in public beta.


===#ChangeLog v2.6.3.104
* Added a check for Ivona vendor "IVONA Software Sp. z o.o." which caused crashing.
** This vendor is not compatible with all the speech functionalities. Like inline volume\rate control.


===#ChangeLog v2.6.3.24===
===#ChangeLog v2.6.3.103===
* Added function:
** [GetWordColumn("WordList","ColumnNameOrNumber")]
 
===#ChangeLog v2.6.3.102===
* Added function:
** [SetWord("test_greetings","good day","converted value","Good day")]
*** Example: http://localhost:54657/?action=[SetWord("test_greetings","good day","converted value","Good day")]&key=ABC1234
*** It takes existing wordlist, uses headers to distinguish which column to use.
*** Allows you to add or update words.
 
===#ChangeLog v2.6.3.101===
* Added functions:
** [CurrentWindowState]
** [IsVisible]
** [Show]
** [Hide]
 
===#ChangeLog v2.6.3.100===
* Added functions:
** [GetSpokenPhraseFromGRXMLResult()]
*** Works after we call [GetRecognizedResult(...)]
** [GetTagFromGRXMLResult("TagName")]
*** Works after we call [GetRecognizedResult(...)]
** [Clear("FunctionOrString")]
*** Clears return value from function
 
===#ChangeLog v2.6.3.99===
* Updated function:
** [GetRecognizedResult(...)]
*** Updated so it stops listener before getting the results and start listener afterwards.
* [GetProperty("name")]
** Fixed
 
#ChangeLog v2.6.3.98
Added function:
[GetProperty("name")]
Updated function
[SetProperty("name","value")]
So it saves the properties in xml
Sound effects function updated also, may resolve Cortana issue.
 
===#ChangeLog v2.6.3.97===
* Added properties:
** CreateVolumeGrammar
*** Can be set to false so default grammar is not made
*** Example: [SetProperty("CreateVolumeGrammar","false")]
* CreateSwitchProfileGrammar
*** Can be set to false so default grammar is not made
*** Example: [SetProperty("CreateSwitchProfileGrammar","false")]
* Updated function:
** [SetProperty("name","value")]
*** This should be able to set any LINKS properties that is stored in InternalStrings or config xml
* Added function:
** ListAllFunctions
*** Usage: http://localhost:54657/?action=[ListAllFunctions]&output=response&request=DISABLE_RECURSE
 
===#ChangeLog v2.6.3.96===
* Tray menu all organized
* New tray option to keep LINKS on top
* Bug fix for UserVars
 
===#ChangeLog v2.6.3.93===
* Functions added:
** [PlaySoundSync("sound effect")]
** [PlayWavFileSync("full wav file path")]
** [strike]Some more tool tips in internal functions under tray menu[/strike]
===#ChangeLog v2.6.3.87===
* Updated tray menu for plugins.
** Allows user to:
*** Run functions.
*** Remove plugins.
 
===#ChangeLog v2.6.3.86===
* Added Function:
** [SetSaveRejectedSpeech("true/false")] ' enabled by default
** [Get_LastRejectedSpeechWavePath] - we may have to update this so filename removes any special characters.
*** Use this to get path to last rejected speech wav file path
* Fixed:
** Shell -con speech response issue.
 
===#ChangeLog v2.6.3.85===
* Added cache control in WebRequest, so nothing is cached on client.
 
===#ChangeLog v2.6.3.84===
* Added Function:
** [SetRecogProfile("ProfileName")] - needs testing
 
===#ChangeLog v2.6.3.83===
* Updated functions:
** [GetRecognizedResult(…)]
*** Added error control
 
===#ChangeLog v2.6.3.80===
* Bug fix - For response with wordlist variable
* Updated Function:
** [SetClipboardText(...)] so it does not return the clipboard
* Changed "do not listen while you speak" functionality so it uses UserVoiceThreshold instead of disabling grammar on the fly that may have caused GetAnswers to not work properly.
 
===#ChangeLog v2.6.3.79===
* A bug fix - clears any wandering speech prompts after 5 seconds when sync Speak is called multiple times in succession
 
===#ChangeLog v2.6.3.78===
* Updated functions:
** [GetRecognizedResult(…)] to fix Invocation error (tested for error)
* Updated command dup check for Default commands.
* Bug fix - For action with wordlist variable
* Updated functions:
** [GetClipboardText(...)] so it does not return the clipboard
** [GetRecognizedResult(…)] to fix Invocation error (not tested)
 
===#ChangeLog v2.6.3.77===
* Added voice threshold option
 
===#ChangeLog v2.6.3.73===
* Added  UserVoiceThreshold - set at 12 by default, may need to change mic volume or change the threshold as you prefer.
** See Debug window for more details when you speak - itll alow you to figure out the correct threshold for your mic level.
** Threshold is basically how loud you speak, the code takes 5 loudest points in the voice then averages it out then check against UserVoiceThreshold.
* Added function:
** [SerUserVoiceThreshold("Threshold as decimal")] - will be renamed to [SetUserVoiceThreshold(..)] in next update.
 
===#ChangeLog v2.6.3.69===
* Added function:
** [GetRecognizedResult("GrammarXML file","RuleName")]
*** Uses grxml file from GrXML folder, return recognized speech.
*** Example: [GetRecognizedResult("test_en-US", "Confirmation")]
 
===#ChangeLog v2.6.3.67===
* Async tasks from plugins can now be called from LINKS ( this was an issue - it was calling the task from plugin and getting stuck on it)
 
===#ChangeLog 2.6.3.64===
* Added Function:
** [IsSpeaking]
** [GetVersion]
** [SetDefaultConfidence("0-1")]
 
===#ChangeLog Unknown===
* [Audio("file path")] in any response
** if response is like this:
** sound of bird [Audio("bird")], sound of wind [Audio("wind")]
** It will be all said and played in synchronously.
** bird.wav and wind.wav has to be in soundeffects folder or full path or a url will be needed
 
===#ChangeLog 2.6.3.58===
* Added a function:
** [SetDefaultConfidence("confidence")]
*** Example: [SetDefaultConfidence(".5")]
 
===#ChangeLog 2.6.3.57===
* Added a function [GetRecognizedSpeech]
* Saves recognized command and returns path to the wav file.
 
===#ChangeLog v2.6.3.56===
* Can handle one WordList grammar.
 
===#ChangeLog v2.6.3.55===
* Added functions:
** [AddCommand("shell/web/default","command/grammar","response","action","profile","phrase on success")]
** [AddCommand("social","command/grammar","response","","profile","phrase on success")]
 
===#ChangeLog v2.6.3.54===
* Updated Settings window - for theming
 
#ChangeLog 2.6.3.53
* Updated [AddCommands("full path")] function
** Checks for existing commands, does not adds duplicates.
** Path is not case sensitive anymore.
* Added [AddCommands("full path","phrase")]
** Speaks phrase if command is added.
* Fixed sound settings bg issue.
 
===#ChangeLog 2.6.3.51===
* Added override=true in speak.html
 
===#ChangeLog 2.6.3.50===
* changed this http://localhost:54657/?action=[Speak("request overridden")]&request=override
** to http://localhost:54657/?action=[Speak("request overridden")]&override=true
* Some more strings added in InternalStrings.xml
 
===#ChangeLog 2.6.3.49===
* Added updating status in tray icon
* Added notification popup when update is completed.
* AppUpdate strings are now available in InternalStrings.xml
 
===#ChangeLog v2.6.3.46===
* Added request=override option for web requests.  See change log .2.6.3.50
** Sample: http://localhost:54657/?action=[Speak("request overridden")]&request=override
 
===#ChangeLog 2.6.3.45===
* PTT on load is back, please let me know if it works better or not
* Test re-pluging microphone, and maybe change default mic - see if it picks up the mic without restarting.
 
===#ChangeLog 2.6.3.44===
* Added PersistedLanguageModelAdaptation and turned off all adaptations
 
===#ChangeLog 2.6.3.40===
* Main window working with colors completely
 
===#ChangeLog 2.6.3.39===
* Added theme customization
 
===#ChangeLog v2.6.3.35===
* Fixed speech rate when using setVoice function.
 
===#ChangeLog v2.6.3.31===
* Added speech rate slider in settings.
* Fixed loading of correct volume and rate based on config on startup.
 
===#ChangeLog v2.6.3.30===
* Fixed speech folder error on startup
* Fixed shutdown so it closes LINKS completely.
 
===#ChangeLog v2.6.3.24=== (Latest Public Beta as of 02/21/2017)
* Fixed issue with dictation in shell.action field.
* Fixed issue with dictation in shell.action field.
* Added functions:
* Added functions:

Revision as of 16:55, 21 February 2017

Here you can find changes done around every major dev beta update and that are now available in public beta.

===#ChangeLog v2.6.3.104

  • Added a check for Ivona vendor "IVONA Software Sp. z o.o." which caused crashing.
    • This vendor is not compatible with all the speech functionalities. Like inline volume\rate control.

#ChangeLog v2.6.3.103

  • Added function:
    • [GetWordColumn("WordList","ColumnNameOrNumber")]

#ChangeLog v2.6.3.102

  • Added function:
    • [SetWord("test_greetings","good day","converted value","Good day")]
      • Example: http://localhost:54657/?action=[SetWord("test_greetings","good day","converted value","Good day")]&key=ABC1234
      • It takes existing wordlist, uses headers to distinguish which column to use.
      • Allows you to add or update words.

#ChangeLog v2.6.3.101

  • Added functions:
    • [CurrentWindowState]
    • [IsVisible]
    • [Show]
    • [Hide]

#ChangeLog v2.6.3.100

  • Added functions:
    • [GetSpokenPhraseFromGRXMLResult()]
      • Works after we call [GetRecognizedResult(...)]
    • [GetTagFromGRXMLResult("TagName")]
      • Works after we call [GetRecognizedResult(...)]
    • [Clear("FunctionOrString")]
      • Clears return value from function

#ChangeLog v2.6.3.99

  • Updated function:
    • [GetRecognizedResult(...)]
      • Updated so it stops listener before getting the results and start listener afterwards.
  • [GetProperty("name")]
    • Fixed
  1. ChangeLog v2.6.3.98

Added function: [GetProperty("name")] Updated function [SetProperty("name","value")] So it saves the properties in xml Sound effects function updated also, may resolve Cortana issue.

#ChangeLog v2.6.3.97

  • Added properties:
    • CreateVolumeGrammar
      • Can be set to false so default grammar is not made
      • Example: [SetProperty("CreateVolumeGrammar","false")]
  • CreateSwitchProfileGrammar
      • Can be set to false so default grammar is not made
      • Example: [SetProperty("CreateSwitchProfileGrammar","false")]
  • Updated function:
    • [SetProperty("name","value")]
      • This should be able to set any LINKS properties that is stored in InternalStrings or config xml
  • Added function:

#ChangeLog v2.6.3.96

  • Tray menu all organized
  • New tray option to keep LINKS on top
  • Bug fix for UserVars

#ChangeLog v2.6.3.93

  • Functions added:
    • [PlaySoundSync("sound effect")]
    • [PlayWavFileSync("full wav file path")]
    • [strike]Some more tool tips in internal functions under tray menu[/strike]

#ChangeLog v2.6.3.87

  • Updated tray menu for plugins.
    • Allows user to:
      • Run functions.
      • Remove plugins.

#ChangeLog v2.6.3.86

  • Added Function:
    • [SetSaveRejectedSpeech("true/false")] ' enabled by default
    • [Get_LastRejectedSpeechWavePath] - we may have to update this so filename removes any special characters.
      • Use this to get path to last rejected speech wav file path
  • Fixed:
    • Shell -con speech response issue.

#ChangeLog v2.6.3.85

  • Added cache control in WebRequest, so nothing is cached on client.

#ChangeLog v2.6.3.84

  • Added Function:
    • [SetRecogProfile("ProfileName")] - needs testing

#ChangeLog v2.6.3.83

  • Updated functions:
    • [GetRecognizedResult(…)]
      • Added error control

#ChangeLog v2.6.3.80

  • Bug fix - For response with wordlist variable
  • Updated Function:
    • [SetClipboardText(...)] so it does not return the clipboard
  • Changed "do not listen while you speak" functionality so it uses UserVoiceThreshold instead of disabling grammar on the fly that may have caused GetAnswers to not work properly.

#ChangeLog v2.6.3.79

  • A bug fix - clears any wandering speech prompts after 5 seconds when sync Speak is called multiple times in succession

#ChangeLog v2.6.3.78

  • Updated functions:
    • [GetRecognizedResult(…)] to fix Invocation error (tested for error)
  • Updated command dup check for Default commands.
  • Bug fix - For action with wordlist variable
  • Updated functions:
    • [GetClipboardText(...)] so it does not return the clipboard
    • [GetRecognizedResult(…)] to fix Invocation error (not tested)

#ChangeLog v2.6.3.77

  • Added voice threshold option

#ChangeLog v2.6.3.73

  • Added UserVoiceThreshold - set at 12 by default, may need to change mic volume or change the threshold as you prefer.
    • See Debug window for more details when you speak - itll alow you to figure out the correct threshold for your mic level.
    • Threshold is basically how loud you speak, the code takes 5 loudest points in the voice then averages it out then check against UserVoiceThreshold.
  • Added function:
    • [SerUserVoiceThreshold("Threshold as decimal")] - will be renamed to [SetUserVoiceThreshold(..)] in next update.

#ChangeLog v2.6.3.69

  • Added function:
    • [GetRecognizedResult("GrammarXML file","RuleName")]
      • Uses grxml file from GrXML folder, return recognized speech.
      • Example: [GetRecognizedResult("test_en-US", "Confirmation")]

#ChangeLog v2.6.3.67

  • Async tasks from plugins can now be called from LINKS ( this was an issue - it was calling the task from plugin and getting stuck on it)

#ChangeLog 2.6.3.64

  • Added Function:
    • [IsSpeaking]
    • [GetVersion]
    • [SetDefaultConfidence("0-1")]

#ChangeLog Unknown

  • [Audio("file path")] in any response
    • if response is like this:
    • sound of bird [Audio("bird")], sound of wind [Audio("wind")]
    • It will be all said and played in synchronously.
    • bird.wav and wind.wav has to be in soundeffects folder or full path or a url will be needed

#ChangeLog 2.6.3.58

  • Added a function:
    • [SetDefaultConfidence("confidence")]
      • Example: [SetDefaultConfidence(".5")]

#ChangeLog 2.6.3.57

  • Added a function [GetRecognizedSpeech]
  • Saves recognized command and returns path to the wav file.

#ChangeLog v2.6.3.56

  • Can handle one WordList grammar.

#ChangeLog v2.6.3.55

  • Added functions:
    • [AddCommand("shell/web/default","command/grammar","response","action","profile","phrase on success")]
    • [AddCommand("social","command/grammar","response","","profile","phrase on success")]

#ChangeLog v2.6.3.54

  • Updated Settings window - for theming
  1. ChangeLog 2.6.3.53
  • Updated [AddCommands("full path")] function
    • Checks for existing commands, does not adds duplicates.
    • Path is not case sensitive anymore.
  • Added [AddCommands("full path","phrase")]
    • Speaks phrase if command is added.
  • Fixed sound settings bg issue.

#ChangeLog 2.6.3.51

  • Added override=true in speak.html

#ChangeLog 2.6.3.50

#ChangeLog 2.6.3.49

  • Added updating status in tray icon
  • Added notification popup when update is completed.
  • AppUpdate strings are now available in InternalStrings.xml

#ChangeLog v2.6.3.46

  • Added request=override option for web requests. See change log .2.6.3.50

#ChangeLog 2.6.3.45

  • PTT on load is back, please let me know if it works better or not
  • Test re-pluging microphone, and maybe change default mic - see if it picks up the mic without restarting.

#ChangeLog 2.6.3.44

  • Added PersistedLanguageModelAdaptation and turned off all adaptations

#ChangeLog 2.6.3.40

  • Main window working with colors completely

#ChangeLog 2.6.3.39

  • Added theme customization

#ChangeLog v2.6.3.35

  • Fixed speech rate when using setVoice function.

#ChangeLog v2.6.3.31

  • Added speech rate slider in settings.
  • Fixed loading of correct volume and rate based on config on startup.

#ChangeLog v2.6.3.30

  • Fixed speech folder error on startup
  • Fixed shutdown so it closes LINKS completely.

===#ChangeLog v2.6.3.24=== (Latest Public Beta as of 02/21/2017)

  • Fixed issue with dictation in shell.action field.
  • Added functions:
    • [MoveThisWindow("ScreenNumber","PhraseOnSuccess","PhraseOnError")]
    • [MoveWindowByCaption("WinCaption","ScreenNumber","PhraseOnSuccess","PhraseOnError")]
    • [CloseWindowByCaption ("WinCaption","PhraseOnSuccess","PhraseOnError")]
    • [ActivateWindowByCaption("WinCaption","PhraseOnSuccess","PhraseOnError")]
    • [GetCaption("PhraseOnError")]
    • [SetWindowTransparency("Percent","PhraseOnError")]
    • [SetWindowTransparencyByCaption("WinCaption","Percent","PhraseOnError")]
    • [MoveWindowEx("WinCaption","WinLeft","WinTop","WinWidth","WinHeight","PhraseOnSuccess","PhraseOnError")]
    • [MoveThisWindowEx("WinCaption","WinLeft","WinTop","WinWidth","WinHeight","PhraseOnSuccess","PhraseOnError")]

#ChangeLog v2.6.3.18

  • Added functions:
    • [GetClipboardText()]
    • [Clip()]
    • [Type("str","sendkeys"] or [Type("str","winforms"]

#ChangeLog v2.6.3.17

  • Functions added:
    • [LoadProfile("profile name")]
    • [GetSpeech()] - use with output=response and request=DISABLE_RECURSE
      • Same as [GetLastSpeech()]
    • [GetClipboardText()]
    • [StreamIt("full file path")] - works with mp3
    • [SerialWrite("LED.ON","SerialConfig_test")]
    • [SerialReadLine("timeout in ms","SerialConfig_test")] (not stable)

#ChangeLog v2.6.3.15

  • Functions Added:
    • [GetLastSpeech()]
      • Enables speaking through browser
      • Run in webrequest with DISABLE_RECURSE action=[GetLastSpeech()]&request=DISABLE_RECURSE
      • Use in chrome only/maybe edge
    • [GetLastSpeechAsBase64()]
      • gets last speech as base64
    • [GetNextWaveFilePath("")]
      • file name to be used for other wave files.
      • This allows you to save custom wave file with a specific name in Customization\Speech\ that would be played by GetLastSpeech() function.
  • Added speech wav files in Customize\Speech folder
  • All async speech will be stored there for the session
  • Added 4 default commands
    • enable auto updates
    • disable auto updates
    • enable saving speech
    • disable saving speech
    • Reverted cortana.dll to older version

#ChangeLog v2.6.3.11

  • Read this - fix for ;
  • AiIntro function - had a problem in GetWord function - fixed. - May affect GetAnswer function (possibly in better direction.)
  • Speak function updated - When invalid voice name is provided it should handle that a bit better/faster

#ChangeLog v2.6.3.8

  • Updated [VoiceName...] parsing when using -ret
  • Added Functions:
    • [GetActiveVoiceName()]
    • [GetCurrentVoiceOfSpokenPhrase()]
    • [GetDefaultVoiceVolume()]
    • [GetDefaultSystemVolume()]
    • [GetDefaultVoiceRate()]

#ChangeLog v2.6.3.6

  • Keyboard section updated.
  • Record button working again.
  • Syntax updated for keys.
  • List of Keys that are now used in keyboard section.
  • Added Mouse event commands.
    • {MOUSE.MOVE:X-Axis,Y-Axis}
    • {MOUSE.LEFTDOWN}
    • {MOUSE.LEFTUP}
    • {MOUSE.RIGHTDOWN}
    • {MOUSE.RIGHTUP}
    • {MOUSE.MIDDLEDOWN}
    • {MOUSE.MIDDLEUP}

#ChangeLog v2.6.3.3

  • Updated Functions:
    • [AutoSleep(...)]
    • [GetAnswer()]
  • Added Function:
    • [InitQuestion("QuestionByAI","WordListTextFileName","PositiveGrammarColumnNameOrNumber","PositiveResultColumnNameOrNumber","NegativeGrammarColumnNameOrNumber","NegativeResultColumnNameOrNumber","ListeningTimeout","ShowIfItsNegativeOrPositive")] [GetAnswer()]
  • Tray/context menu now has version numbers for plugins.
  • Changed auto reset code so it uses less cpu.

#ChangeLog v2.6.2.96

  • Added customizable sounds for cortana without ui command.

#ChangeLog v2.6.2.94

  • Added New functions:
    • [SetVarDate("varName","date")]
      date format = yyyy,MM,dd,hh,mm,ss
    • [SetVarDate("varName","value","date")]
      date format = yyyy,MM,dd,hh,mm,ss

#ChangeLog v2.6.2.93

  • Added function:
    • [AutoSleep("EnableOrDisable","Timeout","PhraseOnExecute")] - not tested
  • Updated Function:
    • PlaySound function to be more stabilized
    • Cortana function
    • Added done sound on no GUI

#ChangeLog v2.6.2.91

  • Plugins can now be loaded from tray icon..
    • Plugins config is saved in Customization\XML\PluginsConfig.xml

#ChangeLog v2.6.2.88

  • Added function:
    • [GetPrevious("var name")] or [GetPreviousVar("var name")]

#ChangeLog v2.6.2.87

  • Added functions:
    • [Set("varName","varValue","resetTime","resetValue")]
      • Sample:
        • [Set("Details","NewsDescription","30","")]
        • [IsEmpty("StringToCheck")]","Return this string if StringToCheck IsEmpty")]
      • Sample:
        • [IsEmpty("[Get("[Get("Details")]")]","Details for what, sir?")]
        • Return data from a variable that may exist and speak it, else return "Details for what, sir?"
    • [Remove("varName")] or [RemoveVar("varName")]
    • [GetDateTime("varName","DateTimeFormat")] or [GetVarDateTime…]
      • Sample:
        • [GetDateTime("Details","dd/MM/yyyy")]
        • [GetDateTime("Details","HH:mm")]
    • [IndexOf("string","string to find")]
    • [LastIndexOf("string","string to find")]
  • Updated Functions:
    • Set/Get functions updated
    • Set function now updates DateTime and PreviousValue values.
    • Get doesn't not error anymore when variable is not found.

#ChangeLog v2.6.2.81

  • Fixed db loading issues.
  • Added a way to auto fix db connection issues.
  • Exposed SpeechSynth.SpeechPrompts so other apps/plugins can figure out if LINKS is speaking.

#ChangeLog v2.6.2.76

  • Function Added:
    • [LINKS.LHttp.Put("JSON","URI")]
    • [LINKS.LHttp.Put("{"on":true}","http://huebridge/api/lz3nFIcGOelQlsxsDJYqrXGuxivjFmWswZ9fIGcw/lights/1/state")]
  • Changed default settings
    • Made PersistedBackgroundAdaptation off by default
    • Moved music function to "Initial checks completed"
    • Disabled push to talk check box

#ChangeLog v2.6.2.74

  • Play/pause/stop music/video, show/hide media player commands updated.
  • Show/hide should now work with any media player selected in settings.
  • Play video should now play a random video.

#ChangeLog v2.6.2.73

  • Plugins now loads after everything else is loaded to make sure nothing crashes while it loads new assemblies.
  • Smoother startup animation.
  • Added plugins OnDispose support.
    • This method is called from all plugins before LINKS exits.
  • Allowed case insensitive for built in functions.
  • Replies back when asked to check update.
  • More stable webserver initialization.

#ChangeLog v2.6.2.71

  • Allows to run async functions, first async web function will be the uAuth2 function...
  • New default function added: "close without confirmation" (add it manually in default commands)

#ChangeLog v2.6.2.70

  • Bug fix for functions.
    • \\ was not allowed in beginning of any parameter. Fixed.

#ChangeLog v2.6.2.68

  • Enabled position saving for main control center.

#ChangeLog v2.6.2.67

  • Some UI templates updated so plugins can access them.

#ChangeLog v2.6.2.65

  • Added Function:
  • [SayAs("data","ContentType")]
    • This function is only for speech (obviously)
    • See this for more info on ContentType
    • Sample:
      • http://localhost:54657/?action=[Speak("The phone number is [SayAs("18001239874","Telephone")]")]&key=ABC1234

#ChangeLog v2.6.2.64

  • All UpdateReached events updated to fix multiple recognition events issues.

#ChangeLog v2.6.2.61

  • InitReport will now be written if audio error occurs.
  • Tray icon is now only clickable when LINKS is online and ready.
  • Each db command now starts with open and end with close connection, may help db issues.

#ChangeLog v2.6.2.58

  • Error log will now be posted in event viewer if LINKS is started as Administrator.

#ChangeLog v2.6.2.55

  • Might fix issue with DB connection bug when changing profiles while mic is on.
  • Test db performance issues including:
    • Calling commands from different sections and changing profile then calling more commands.
    • Changing profiles by voice vs change profile with UI.

#ChangeLog v2.6.2.52

  • Added Function:
    • [GetFile("FilePathOrUri","SaveAs")]
      • SaveAs is optional
      • Any file can now be downloaded. Might have a size limit.
      • Sample:
        • http://localhost:54657/?action=[GetFile("http://jarvis.ai-dot.net/test.txt","test.txt")]&key=ABC1234&output=response
    • [JsonToXML("FilePathOrUri","SaveAs")]
      • SaveAs is optional
      • Sample:
        • http://localhost:54657/?action=[JsonToXML("http://ai-dot.net/test_json.json","test_json.xml")]&key=ABC1234&output=response
    • [GetXPathValue("FilePathOrUri","XPath")]
      • Sample:
        • http://localhost:54657/?action=[GetXPathValue("http://ai-dot.net/test_json.json","/root/glossary/title")]&key=ABC1234&output=response

#ChangeLog v2.6.2.51

  • Fixes zunair.rocks/dashboard issue for fetching commands
  • [EmulateSpeech("any command")]
    • This should work on dynamic commands

#ChangeLog v2.6.2.50

  • Added Functions:
    • [TextToWave("phrase","voice","volume",'rate","filename","getBase64")]
    • [TextToWave("wave to base 64","","",'","","true")]
  • Speech code updated to fix a start of voice change/volume bug.

#ChangeLog v2.6.2.49

  • [TextToWave("phrase","voice","volume","rate","filename")]
    • Voice, Volume, Rate is same as SetTaskEx arguments/parameters.
    • Sample:
      • http://localhost:54657/?action=[TextToWave("This is a test","","","","")]&key=ABC1234
        It will make a wav file in LINKS\Customization\Speech\temp.wav
      • We can put file name or full path in last parameter if needed

#ChangeLog v2.6.2.48

  • Added Function:
    • [RemoveTask("name")]
      • Deletes task created by SetTaskEx
  • Updated tasks so each task is checked every second

#ChangeLog v2.6.2.47

  • Functions:
    • [GetXPathValue("XML xPath")]
      • Sample:
        • http://localhost:54657/?action=[GetXPathValue("G:\...\jarvisWPF.vshost.exe.config","/configuration/userSettings/jarvisWPF.Properties.Settings/setting{@name%3D"searchEngine"}")]&key=ABC1234&output=response
      • Take a look at FreeFormatter.com might be able to use all syntax from there... just replace any [...] square brackets with {...} curly braces and encode = and & characters
    • [GetAnswer("","","","","","","")]
      • Sample:
        • http://localhost:54657/?action=[GetAnswer("Do you want me to turn on x light?","yes;on;lights","Lights On","off;lights","Lights Off","5000","show")]&key=ABC1234&output=response

#ChangeLog v2.6.2.46

  • [GetAnswer("Do you want me to turn on x light?","yes;on;lights","Lights On","off;lights","Lights Off","5000","ShowIfItsNegativeOrPositive")]
  • [GetXPathValue("xmlFilePath","xPath")]

#ChangeLog v2.6.2.44

  • New command syntax for voice change per command
    • Sample:
      • Grammar: {ai=test_ainame} listen to {d=test_dictation}
      • Response:[VoiceName="{{ai}}"]I heard {d}. I am {ai} and my voice is set to {{ai}}
    • In any response we can now add the following to change voice properties:
      • [VoiceName="..."]
      • [VoiceRate="..."]
      • [VoiceEmphasis="..."]
      • [VolumeType="..."]
      • [SpeechDelay="..."]
  • Updated dictation code
    • Should fix the issue where ai name was spoken with the dictation.

#ChangeLog v2.6.2.37:

  • Updated update functions.
  • No more update check before startup.
  • Update will be checked after startup.
  • Will notify when update is completed.
  • AutoUpdate can be disabled from xml by changing UpdateOnStartup to false
  • Added LINKSSharedDirectory for scripts and WordLists
    • Can be changed from xml
    • When entering dir path do not end path with slash.

#ChangeLog v2.6.2.31:

  • Added Functions:
    • [GetAnswer("QuestionByAI","WordListTextFileName","PositiveGrammarColumnNameOrNumber","PositiveResultColumnNameOrNumber","NegativeGrammarColumnNameOrNumber","NegativeResultColumnNameOrNumber","ListeningTimeout","ShowIfItsNegativeOrPositive")]
      • "QuestionByAI" = question asked by AI
      • "WordListTextFileName" = WordList to use for positive and negative grammar and results
      • "PositiveGrammarColumnNameOrNumber" = WordList column name or number of positive grammar
      • "PositiveResultColumnNameOrNumber" = WordList column name or number of results to show if positive grammar is recognized
      • "NegativeGrammarColumnNameOrNumber" = WordList column name or number of negative grammar
      • "NegativeResultColumnNameOrNumber" = WordList column name or number of results to show if negative grammar is recognized
      • "ListeningTimeout" = stops listening for answer after defined milliseconds
      • "ShowIfItsNegativeOrPositive" = show/hide + or - symbol based on recognized data
      • Note: We don’t have to use WordList.
      • Example:
        • Command: Say a number
        • Response:[GetAnswer("which number?","test_nums.txt","firstAnswer","firstReslult","secondAnswer","secondResult","3000","Show")]
        • Sample word list:
firstAnswer firstReslult secondAnswer secondResult
one number 1 negative one minus 1
two number 2 negative two minus 2
three number 3 negative three minus 3
four number 4 negative four minus 4
Note: We can use any column for result or answer(grammar)
  • Make sure PositiveGrammar does not contain any words from NegativeGrammar and vice-versa.
  • Sample positive answer result: One = +number 1
  • [CallCommandEx("PositiveOrNagativeResponse","PositiveCommand","NegativeCommand")]
    • Positive or Negative command will be called based on PositiveOrNagativeResponse.
    • If PositiveOrNagativeResponse starts with a + sign, PositiveCommand will be called.
    • If PositiveOrNagativeResponse starts with a - sign, NegativeCommand will be called.
    • {{!Result!}} keyword can be used in PositiveCommand and NegativeCommand arguments to replace using PositiveOrNagativeResponse
    • Example:
      • Command: Hey LINKS
      • Response: [CallCommandEx("+Hello","{{!Result!}}","{{!Result!}}")]
      • In this case Action will be converted to [CallCommandEx("+Hello","Hello","{{!Result!}}")]
  • [SubString("String","startIndex","endIndex")]
    • Example:
      • Command: Remove first char of the string
      • Response: [SubString("+Test","1","")]
      • This will output "Test"

#ChangeLog v2.6.2.26:

  • New function:
    • [SetSpeechConfig("Elizabeth","100","-10")]
      • Name, Volume, Rate (-10 to 10)
      • Remember there are 3 types of volumes:
        • System Volume
        • Base Voice Volume - set through GUI/SetVoice functions and XML
        • Phrase Voice Volume - default is Medium, not allowed change default. Can change per phrase using SpeakEx function.
        • Some Examples:
          • SpeakEx with System Volume
          • localhost:54657/?action=[SpeakEx("Completed","","","","","system")]&key=ABC1234
          • localhost:54657/?action=[SpeakEx("Completed","","40","","","system")]&key=ABC1234
          • localhost:54657/?action=[SpeakEx("Completed","Microsoft Zira Desktop","","","","system")]&key=ABC1234
          • localhost:54657/?action=[SpeakEx("Completed","Microsoft David Desktop","40","","","system")]&key=ABC1234
          • localhost:54657/?action=[SpeakEx("Completed","Microsoft David Desktop","40","Fast","","system")]&key=ABC1234
          • localhost:54657/?action=[SpeakEx("Completed","Microsoft David Desktop","20","Slow","3","system")]&key=ABC1234
        • SpeakEx with Voice Volume
          • localhost:54657/?action=[SpeakEx("Completed","","","","","voice")]&key=ABC1234
          • localhost:54657/?action=[SpeakEx("Completed","","100","","","voice")]&key=ABC1234
          • localhost:54657/?action=[SpeakEx("Completed","Microsoft Zira Desktop","","","","voice")]&key=ABC1234
          • localhost:54657/?action=[SpeakEx("Completed","Microsoft David Desktop","40","","","voice")]&key=ABC1234
          • localhost:54657/?action=[SpeakEx("Completed","Microsoft David Desktop","100","Fast","","voice")]&key=ABC1234
          • localhost:54657/?action=[SpeakEx("Completed","Microsoft David Desktop","20","Slow","3","voice")]&key=ABC1234
    • Sets default base volume for current voice
      • localhost:54657/?action=[SetSpeechVolume("20")]&key=ABC1234
    • Sets default voice
      • localhost:54657/?action=[SetSpeechVoice("Elizabeth")]&key=ABC1234
    • Sets base Volume and Rate for specific voice
      • localhost:54657/?action=[SetSpeechConfig("Elizabeth","100","-10")]&key=ABC1234
    • Test after volume and rate change:
      • localhost:54657/?action=[SpeakEx("Completed","Elizabeth","20","ExtraFast","0","voice")]&key=ABC1234

#ChangeLog v2.6.2.23:

  • VoiceConfig.XML added
    • Each voice volume will be saved separately.
  • UI and SetVoice should update VocieConfig
  • SpeakEx("phrase","VoiceName","VoiceVolume","VoiceRate","SpeechDelay","VoiceVolumeOrSystemVolume")
    • VoiceVolumeOrSystemVolume = voice or system

#ChangeLog v2.6.2.23:

  • Task xml is written asyc for better performance.
  • Added some error control in webservice functions
  • New Default function:
    • "stop current voice"
  • New Functions:
    • [StopVoiceByName("VoiceName","ResponseOnSuccess")]
    • [StopVoiceByIdentifier ("PhraseIdentifier","ResponseOnSuccess")]
      • PhraseIdentifier is only set in tasks atm - uses tasks name.

#ChangeLog v2.6.2.22:

  • New Functions:
    • [RunAsShell("shellCommand","responseAfterExecution","responseBeforeConfirmation","responseFailed","voiceVolume","voiceRate","voiceName","VoiceVolumeOrSystemVolume")]
  • Updated Function:
    • [SetSpeechVolume("volume")]
    • [SetTaskEx("name","datetime","speechBefore","speechAfter","speechFailed","voice","volume","runAsShellCommand","repeat","rate","VoiceVolumeOrSystemVolume")]

#ChangeLog v2.6.2.20:

  • Intro video code updated again. Video should now download in Customization folder.
  • Loading window will now reappear after intro video.
  • Function updated:
    • SpeakExSysVol is now async.
  • Functions Added:
    • Synchronous speech [SpeakExSysVolSync("phrase","VoiceVolume","VoiceRate","phraseDelay","VoiceName")] where delay = delay between next speech.
    • Asynchronous speech [SpeakExSysVolAsync("phrase","VoiceVolume","VoiceRate","phraseDelay","VoiceName")] where delay = delay between next speech.
  • Fixed saving/retrieving of "Play on startup (full screen)" settings.

#ChangeLog v2.6.2.18:

  • Intro video now downloads in Customization folder.
  • Better shutdown if error is found on startup.
  • Better disposing of HttpServer on exit.
  • New function: [AIIntro("This is {{!AIName!}};I am {{!AIName!}} using {{!AIVoice!}} voice to be used for {{!AICatagory!}}","test_ainame.txt")]
  • Speech Issues resolved - need to work on updating plugin speak functions
  • Added SplashScreen (loading window)
  • Fixed saving of Main Control Center size
  • Main Control Center max size is now based on smallest screen side of current monitor
  • New Functions:
    • [AIIntro("This is {{!AIName!}}","test_ainame.txt")]
    • [AIIntro("I am {{!AIName!}} using {{!AIVoice!}} voice","test_ainame.txt")]