KnowBrainer 2023 Development

Introduction

Welcome to the homepage of KnowBrainer 2023 Development!

If you got here, you have received my message giving you the login details, so I won’t really have to introduce myself or the project. Thanks for your interest and potential participation.

More content explaining the details will certainly be added here in the future, but for now, this page can and should always be referred to if a new product update is available. The link to the latest installer, along with some notes, will always be at the top of the Release History section below.

Meanwhile, feel free to post comments here or via email. You may also scroll down to the comments section for more information and details.

Thanks in advance!

To Do:

  • Fix Begin Timestamp bug in “Release Grammars”. Priority: Very high
    Fixed 03/16/2022, will be part of the next update.
  • Add Enable/Disable executable to the start menu. Priority: High
    Added 03/29/2022, will be part of the next update.
  • Add commands created by user facilities via the UI. Priority: High
    Added and finished 05/20/2022, see update to 1.0.10060
  • Add natspeak.exe process monitoring facilities. Priority: Medium
  • Add logging and writing to a logfile in the background. Priority: Medium

——————————————————————————————————–

Release History

>>> NEW VERSION 1.0.10061, 05/21/2022: Setup File (MSI) <<<

This will probably be the last chapter of the “Testing Driver”, before moving on to the more advanced “Prototype”. The main characteristic of this version being the implementation of list management, which was the final piece in working out the fundamentals that are required to provide a fully functional custom command interface.

A short demo video will be provided and announced in this place soon.

+++ KnowBrainer 2023 Testing, Ver. 1.0.10046, 04/19/2022: Setup File (MSI)
— A few minor UI changes, fixed some glitches in “Enable KnowBrainer”.
— BREAKING CHANGES:
“Demo …” has been replaced for “Test …”.
Creating and loading commands and activating commands have been separated from each other, which was a prerequisite for:
Commands can now be activated/deactivated on-the-fly, thus allowing for defining commands as application-specific and/or window-specific. This has been implemented in two ways at this stage.
(1) The built-in commands are now activated/deactivated according to the current state of the KnowBrainer window. If the window is hidden, the only available command is “Show KnowBrainer”. If the window is showing, all commands are available except for “Show KnowBrainer”.
(2) When loading any amount of commands from the file menu, the first half of the commands are activated globally, the next quarter of the commands are activated application-specific for DragonPad, and the last quarter of the commands are activated window-specific for the “Font” dialogue in DragonPad.
The image at the top of this page has been updated showing the new design.

Password-Protection has been removed.

++ KnowBrainer 2023 Testing, Ver. 1.0.10030, 03/29/2022: Setup File (MSI)
Notes: First update, a few cosmetic changes, and a little more functionality
— Fixed the beginning time stamp bug in “Release Grammars”
— Added stand-alone “Enable KnowBrainer” executable
— Added built-in commands to drive the KB window

++ KnowBrainer 2023 Testing, Ver. 1.0.10020, 03/15/2022: Setup File (MSI)
Notes: Initial release

17 Replies to “KnowBrainer 2023 Development”

  1. For the sake of illustrating the usage and purpose of this utility, I am posting parts of a conversation I have had with a user over this today here, after making sure that this will be okay of course.

    ————————————————————————————————

    Q. I installed and activated it, and it starts fine. So what am I supposed to do with?

    A. For now, all I am asking you to do is to leave it running in the background. You may go back to it once in while or not, and you may speak some of the commands once in a while to see if they are still recognised.

    If you find the window in the way, minimise or close it, that won’t matter, that won’t stop it.

    The overall test for now is to check whether it plays nicely with Dragon, and the ultimate touchstone is to check whether it disconnects from Dragon when you shut down Dragon, and won’t leave a phantom microphone icon left behind in the tray. If in doubt, check the Task Manager for natspeak.exe and dragonbar.exe, these are the only ones coming into play if Dragon hangs at shutdown.

    A message pops up telling you that the commands have been unloaded, and you will get two “dings”, so you should try this now (shutting down Dragon), to see what I mean.

    Q. How do I know what commands are loaded?

    I did shut down Dragon once and got the message that the commands had been unloaded. I didn’t see anything left behind, such as a phantom microphone icon or an executable. Dragon restarted without issue.

    A. Thanks for the feedback, I probably should be clearer, but this helps very much.

    If you look at the messages window when loading commands, you will find such things as:

    Creating/activating commands Demo 1-X

    Where X stands for the selected maximum number. So you might say, for instance, Demo 110, anytime and anywhere, and it should be recognised.

    I decided to implement a very simple strategy for creating large bulks of commands on-the-fly (at runtime), by looping over a repetitive pattern, defined by the maximum integer according to your selection, and making the increment integer part of the command.

    As a side-effect, this pattern also works in German without any additional effort, so I can also use it that way while I am running the German profile in my day job, and the Germany based testers will have to find another excuse for not participating. 

    Will it be okay for you if I post this conversation on the webpage, anonymously, of course?

    Q. Ah, now I have it.

    Yes, feel free to post this conversation.

    Phrase Start – Finish: 1141 ms; Recognition: Demo 75

    A. It probably couldn’t get any faster. Bear in mind that it also depends on how long the command is, because Phrase Start means the moment Dragon starts recognition.

    Okay, and while we are at it. This is one of the things this utility has been created for, and which you might test.

    It has always been unclear what really matters: the overall number of loaded commands, or the overall number of activated commands, where “activated” means Dragon potentially listening for them at any time.

    To that end, you might compare loading 7500 commands into Dragon, but only activating 25%, as opposed to loading 2500 commands at an activation rate of 100%, and find out the difference, if any.

    Q. There is a pretty big difference between the overall number of loaded commands and the overall number of activated commands. Here are some of the results I got today, just copied into DragonPad without any particular formatting or organization

    A. This seems pretty much as expected, doesn’t it?

    So you might as well load 10,000 commands or more, and as long a certain amount of activated commands is not exceeded, it won’t hurt.

  2. Everything seems to be working as expected. I have no third-party applications attaching themselves to Dragon® nor KnowBrainer. Since starting this trial I have always first closed KnowBrainer by saying “close KnowBrainer”, pausing briefly and then saying “exit dragon” and again pausing until the “are you sure” dialog for Dragon opens and then saying “click yes”. I have only run the beta-trial five or six times; on one of those times it left behind a “ghost” (red) microphone taskbar icon. Even hovering over would not make it go away. I did not remember to look at the task manager to see if there were any left over bits and pieces.

    I have been trying (not systematically) various combinations of numbers of commands and percentages activated. I am now exploring the extremes: maximum number of commands and maximum percentage; maximum number of commands and minimum percentage; minimum number of commands and maximum percentage; minimum number of commands and minimum percentage.

    Other than the extreme amount of time it takes to respond to a command with maximum/maximum everything seems fine. It did take 113 seconds to release all of the commands when I had maximum/maximum set.

  3. Phantom microphone icon (Dragon) – I have Dragon set in tray-only mode (no DragonBar on the desktop). I have defeated the Dragon Logger by renaming the executable (doing so has a marked positive influence on Dragon hanging). I would be happy to restore its functionality for a few hours if necessary.

    If I start KnowBrainer and DO NOT load any commands but just close the new interface window…
    If I then right-click on the KnowBrainer tray icon and click “Exit” (or say “close KnowBrainer”), wait briefly while KnowBrainer cleans up; then right-click on the Dragon tray icon and click “Exit Dragon” (or say “exit dragon”)…
    I think I always get (certainly most of the time) a ghost Dragon icon.
    There are never any leftover bits of Dragon or KnowBrainer in the Task Manager.

    However, if I load a fairly low number of commands this behavior becomes intermittent – maybe 10% of the time.

  4. Thanks for giving it a try. As far as I can tell, the overall experience with KnowBrainer 2023 Testing seems fine so far and as expected. But, for the sake of clarity, let’s get into the habit of referring to it like this, or at least either as “KnowBrainer 2023” or as “KnowBrainer Testing” or maybe simply just as “Testing”, so as to be sure we are not talking about KnowBrainer 2020.

    And this is where I would also like to point out another request. It would be much appreciated if you took KnowBrainer 2020 out of the equation, by shutting down the computer and restarting and making sure that KnowBrainer 2020 isn’t started by any means. Do note that, KnowBrainer 2020 actually IS a third-party to Dragon, which tends to interfere with the results that Testing is supposed to provide.

    At this stage, the main purpose of Testing is to make sure that you can’t break it, no matter what you do as far as various amounts of commands loaded and activated, and dictating some of them randomly, and also starting and stopping it randomly by launching and closing Dragon. And also, to make sure that it won’t break Dragon along with it.

    I am fully aware that this is extremly tedious and time-consuming, and do note the reason I am aware of it is because this is what I have been doing for quite a few years now, sometimes more, and sometimes less, because whenever I go back to developing, it is what I have to do along with every new build, in order to update the module (DLL) holding the code to operate on, and although I have never counted it, I certainly shut down and restared Dragon thousands of time alone already since last November when I moved to starting KnowBrainer 2023. Effectively, the whole process takes about 15 or 30 seconds at most, if your system and Dragon setup are up to the task.

    The phantom microphone icon left behind in the tray typically is a symptom of something not disposed of properly, but it MAY occur every once in a while even when running Dragon entirely on its own, without anyone else hooking into it, and without anything left behind in Task Manager. So in such cases, there seems to be no obvious reason for it other than the controlling the lifetime of the icon not completing its job at times. If it happens, remove it by hovering over it (failing that you DO have a problem), and restart and shut down again. I have never seen it happen twice in a row so far. In addition to that, a red icon left behind typically indicates something more serious going on than a grayed out icon.

    Thanks again for your time and patience.

  5. I’ve been testing for several weeks now, and just installed version 1.0.10030. So far, so good. The new commands to move the KnowBrainer window around work as designed. I haven’t had any difficulties loading or unloading KnowBrainer 2023.

    1. Thanks for this. Just a word on the “New Commands”, to make sure. They are all “voice commands”, and I listed them also under the menu only to make people aware of them. The “Hide KnowBrainer” and “Show KnowBrainer” are grayed out on the menu, thus not accessible from the menu.

      How do you like the other “new features”, such as the “Enable KnowBrainer” facility. The reason for adding this being that, you can now disable or enable KnowBrainer at any time and won’t have to unistall it if you don’t want it showing any longer, as previously.

      And what about the automated “Check for Updates” notification?

      Now that I have added a little more “usability”, I won’t find an excuse to avoid digging deeper anymore, which I know I should start already. 🙂

  6. Testing release 1.0.10030 for the first time tonight.

    My system is DPI 15 with latest build 15.61.200.010, Windows 11, 1Tb SSD with 16 Gb RAM, running Dragon Capture. UK English profile. I use the ‘Classic’ Dragon menubar rather than the ‘modern’ menubar

    Results

    ‘Testing’ loads and open Dragon without issues. It has been 100% stable, no hangs or crashes. I loaded the maximum 7500 commands and the process returned these results:-

    Selected 7500 commands at 100 % activation rate: 7500 global activations.
    Creating commands: Demo 1-7500 … Activating Demo 1-7500
    This may take some time, please wait … done in 12922 ms.

    Nothing untoward to report. I will keep evaluating and will keep looking out for updates.

    Closed Dragon – no phantom microphone left behind

  7. My comment above was created with paragraph breaks (twice pressing the enter key on the keyboard to give 2 carriage returns) but the breaks did not appear in the text. Does it mean you have to do space at the paragraphs with 4 carriage returns?

  8. Thanks for your contribution, Peter, and for expressing your willingness to go on with it, much appreciated. Now that we are three weeks into the initial testing, maybe it is time for a first summary of the overall experience so far.

    As of now, we have twelve activations altogether, and to be honest, I would have expected getting a little more response indeed. However, I am fairly optimistic that this will change in the future.

    The good news being that none of the testers has reported any critical behaviour and everything seems to be working just as expected. The only exception being that one of the testers had a problem with installing or activating, but that was obviously because of a unique situation on the particular system.

    Meanwhile, I have continued working on the next steps of the implementation, and in fact I have collected lots of materials to go into it, not mentioning that many parts probably going at it have been created over the last few years already. It is just that I am still a little hesitant to go on “officially” as long as the overall base for the proof of concept is yet so small. Bear in mind that the whole design is completely new and has never been run on a larger scale before. Getting it to run on one or two, or even three computers doesn’t mean so much as knowing that it has already run successfully on a hundred computers and more.

    Anyway, rest assured that it won’t be long until new features arrive, and this time adding facilities that will lean a lot more towards making it look like a true “command creating” utility. Perhaps I should also point out, that in a week from now, I will undergo some eye surgery (cataract on the left eye), which will prevent me from working for some time also.

    As for your second comment as regards line breaking between paragraphs, I think that it has been resolved by now, and do note that I did not interact with it. If there is a problem, I couldn’t do anything about it anyway, because it is strictly a WordPress thing. As far as I’m concerned, I dictate into this box and whenever I say “new paragraph”, this is just what I get. 🙂

  9. I just received a video from Edgar as one of the preliminary testers demonstrating that KnowBrainer 2020 may interfere with the new testing environment. If it does and from what I have seen, it turns out that, although Dragon keeps listening for your dictation, it doesn’t hit the target window even though it is supposed to be Select-and-Say, such as notepad for instance.

    Effectively, I’m not really worried about it, because I had already expected the previous KnowBrainer, so-called 2020, and the new implementation not playing nicely along with each other.

    The whole idea of the new implementation is to do away with 2020 or anything previous anyway.

    To that end, I won’t look into this, as I am not considering KnowBrainer 2020 or anything previous in my development by design.

    Edgar, thanks for bringing this up, but also please understand my reasoning.

  10. I certainly understand your reasoning! Unfortunately, with over 3000 KnowBrainer commands (which I rely on heavily in a predominantly hands-free environment), it is impossible to really do much with KnowBrainer 2023 loaded and the earlier KnowBrainer disabled. For the time being, I will just keep this in mind and try to identify collisions before I report any problems.

  11. I understand your situation, and the conflict you will be in when doing this. I already tried pointing out the potential conflict in my initial invitation, now maybe it is time to become more clear about it.

    One of the goals, perhaps even the first goal of the new development will be to put an end to a malfunctioning element in utilities such as KnowBrainer 2020, VoiceComputer or SpeechStart, which they all share at the bottom. They hook into Dragon no problem, but they don’t unhook from it cleanly , thus leaving objects created while hooking into it behind, and that is why you end up having to “kill processes” ever so often if you want to come clean. Although most likely none of the developers of the previous mentioned utilities are even aware of “objects” of that kind. Suffice it to say that they are COM objects, and you typically don’t mess with them.

    The whole problem is with the SDK approach which they all use in hooking into Dragon. The SDK approach is kind of easy to use, but it isn’t industrial strength in itself, which goes to show any time an application based on this approach is meant to terminate.

    Not basing on this approach, but creating a new approach from scratch is the first guideline in this new development. And that is also why getting the proof of concept from running it on as many systems as possible is so critical.

  12. So far so good, I generally let the two run all day long and I haven’t had any complications or issues.

    There will be a couple of times a day when I test the commands and they tend to run slower – up to 16 seconds to execute – but that typically happens with Dragon anyway, especially if I’ve had a fairly busy writing day.

    I used the upgrade path as you suggested and the upgrade performed without a problem.

    I inadvertently ran SpeechStart for a day and I didn’t notice any problems but I am making it a point to not use it during the testing time.

    The enable/disable shortcut work fine.

    Starting up and shutting down Dragon/KB2023 combo seems to work cleanly. I haven’t noticed the microphone icon sticking around.

  13. Thank you so much RJ for your contribution, this is much appreciated.

    Just a few things like to point out now.

    As regards the degrading performance of command recognition, the overall amount of commands being activated may have an impact, so you might also also try with a smaller amount.

    In addition to that, does using the loaded-on-demand commands versus the built-in commands make a difference with regards to the performance degrading scenario? Just in case that the built-in commands, such as specifically “Hide KnowBrainer”, “Show KnowBrainer”, but also “KnowBrainer Bottom Left”, for instance, are not prone to losing being listened for and being executed immediately over time, that would be another piece of proving the concept. In any case, they should be recognised and executed any time and right away, and this is also meant as another advantage over the previous implementations.

    Since you have mentioned running SpeechStart “inadvertently”, please don’t worry, I didn’t mean to be so religious about it, and just go on with it or any other of the third parties I’ve mentioned possibly intruding, but whenever you encounter any potential issues, please be so kind to additionally try running without them, for the sake of eliminating the “real culprit “if there may be any other than the new development being the problem.

  14. I installed KnowBrainer 2023 Testing, Ver. 1.0.10046, 04/19/2022.

    It opened and closed nicely with no issues. It loaded the max number of commands nicely with no issues. I( will continue evaluating.

    I have 15 days left on the trial license. Can I have the full license for ongoing testing.

Leave a Reply to Edgar Cancel reply

Your email address will not be published. Required fields are marked *