KnowBrainer Speech Recognition
Decrease font size
Increase font size
Topic Title: Would it be bad if I added a prefix to all KnowBrainer commands
Topic Summary: "puff maximize all windows"
Created On: 09/18/2019 06:36 PM
Status: Post and Reply
Linear : Threading : Single : Branch
 Would it be bad if I added a prefix to all KnowBrainer commands   - Ag - 09/18/2019 06:36 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Lunis Orcutt - 09/18/2019 10:10 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Ag - 09/20/2019 12:42 AM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Edgar - 09/20/2019 11:24 AM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Lunis Orcutt - 09/20/2019 02:01 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Ag - 09/20/2019 04:40 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Edgar - 09/20/2019 05:19 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Lunis Orcutt - 09/20/2019 09:58 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Ag - 09/21/2019 01:16 AM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Edgar - 09/21/2019 10:56 AM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Ag - 09/21/2019 12:50 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - bubaird - 02/07/2020 06:09 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Lunis Orcutt - 02/07/2020 07:13 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - dilligence - 03/15/2020 11:28 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Ag - 10/09/2019 03:46 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Ag - 10/09/2019 03:57 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Edgar - 10/10/2019 10:03 AM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Ag - 10/10/2019 08:54 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - kkkwj - 12/06/2019 03:02 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Ag - 12/06/2019 04:38 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Ag - 12/06/2019 04:51 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Edgar - 12/07/2019 12:32 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - R. Wilke - 12/07/2019 03:46 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Edgar - 12/07/2019 06:59 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - R. Wilke - 12/07/2019 07:11 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Edgar - 12/08/2019 11:07 AM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - kkkwj - 12/08/2019 02:58 AM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Ag - 03/15/2020 08:20 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Edgar - 12/07/2019 12:33 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Ag - 12/07/2019 05:18 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Ag - 04/22/2021 08:01 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Edgar - 04/23/2021 10:55 AM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Ag - 04/23/2021 03:08 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Tomc - 04/23/2021 01:54 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Ag - 04/23/2021 03:18 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - R. Wilke - 04/23/2021 03:31 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Ag - 04/25/2021 01:05 AM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - R. Wilke - 04/25/2021 05:22 AM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - Ag - 04/25/2021 03:46 PM  
 Would it be bad if I added a prefix to all KnowBrainer commands   - R. Wilke - 04/25/2021 04:04 PM  
Keyword
 09/18/2019 06:36 PM
User is offline View Users Profile Print this message

Author Icon
Ag
Top-Tier Member

Posts: 644
Joined: 07/08/2019

I am increasingly unhappy with Dragon's "Normal Mode" that mixes dictation and commands. I trip over commands far too often when I'm dictating. Especially when I have a large command set such as those of KnowBrainer loaded. However, I also dislike switching between dictation mode and command mode. In Dragon saying "dictation mode on/off" and "command mode on/off" is too clumsy. I assume that one can abbreviate them, but I object to the very concept of dictation mode and command mode. Well… Not actually object to the concept of modes. I just object to them being the only mode of modishness.

 

I am considering doing a global edit on the KnowBrainer command set, to put something like "puff" at the beginning of every command. E.g. "Puff microphone off" or "Puff maximize all windows". 

Status: 08-Dec-2019: almost 3 months after original post: placing this summary this in an easier to find place at the top of the forum post: 

 

I have been using "PUFF" as a prefix for nearly all standard commands for a month or two, and am VERY happy with it. Far fewer accidental invocation of commands.

 

I have just decided to change to "ZUFF" for a an annoying reason: KnowBrainer's sidebar sorts commands alphabetically, and I want to separate the ZUFF prefixed commands from the very few unprefixed commands that I have left.

 

I find PUFF and ZUFF easier to say than Edgar's ZOTZ.

 

I have deliberately left unprefixed a few commands, like KB's "HELLO", which turns off my microphione when I turn to talk to my wife. Also, "RESTART DRAGON", which, if it executes in KB, tells me that SpeechStart+ has crashed, and reduces frustration. Etc

 

My main complaint is that there are some commands I can't prefix.  

 

Convention: I prefix standard KB commands with uppercase PUFF/ZUFF, and commands I have added with lowercase puff/zuff.  Makes it easier to see in the KB SideBar.

 

It is easy to use XMLstarlet or some similar tool to add the prefix.  It does add a step to importing a new release of KnowBrainer commands; but I need such a flow anyway, to detect conflicts between new KB commands and my existing commands.

 

 

What could possibly go wrong?

 

I know that this sounds a lot like what are Wilke recommended against:

 

@R.Wilke posted, in a thread on "Spoken form spelling - IPA or other phonemic forms"  https://www.knowbrainer.com/pubforum/messageview.cfm?catid=12&threadid=33536#172556

Give up on trying to go beyond them, I would suggest. Quite a few others have already failed at that big time, which I have seen being referred to as the "sneeze, burp and fart school of thought" (or something to that extent) in one place, although they probably never realised this and have this thing in them that wants to keep going.

 

Although I am following his advice in not trying to use a sound not normally used in English as the prefix for the commands.

 

 

The prefix I am leading towards "puff" (1) is an English word, (2) Not one I commonly use, and (3) has an amusing relevance to Dragon speech recognition :-).  (4) Most important, it is short and easy to say.   

 

 

I have also considered other short prefixes, such as "snort" (arguably Dragon oriented) and @R.Wilkes's "burp". "Sneeze" seems to me to be too hard to say. Any other suggestions? I hypothesize that it needs to be short, one syllable, and not a common word or a component of common words. If the idea of such a per ethics makes sense at all.

 

 

I know that I can only add such a prefix to commands that are in KnowBrainer's command set. It would not affect Dragon's commands. I would want to disable as many of Dragon's commands as possible. And possibly replicate some of them: "puff click OK".

 

 

I am sure that somebody else has tried this long ago and probably failed.  if anyone remembers why I'd like to hear.  

 

--

 

Methinks this is somewhat similar to the religious debate between Emacs and VI users about whether mode lists or mode full text editors are a good idea.

 

--

 

By the way, many thanks to the KnowBrainer folks for providing their command set in a text file that can be edited.

 



-------------------------

DPG15.6 (also DPI 15.3) + KB, Sennheiser MB Pro 1 UC ML, BTD 800 dongle, Windows 10 Pro, MS Surface Book 3, Intel Core i7-1065G7 CPU @ 1.3/1.5GHz (4 cores, 8 logical, GPU=NVIDIA Quadro RTX 3000 with Max-Q Design.



 09/18/2019 10:10 PM
User is offline View Users Profile Print this message

Author Icon
Lunis Orcutt
Top-Tier Member

Posts: 39257
Joined: 10/01/2006

Are you, by any chance, using the KnowBrainer original recipe? If so, click KnowBrainer Beta Future Commands to download instructions on installing KnowBrainer 2017 (which you won't need) and details on importing KnowBrainer 2021 beta commands. If that doesn't work, we have been contemplating making a secondary version of KnowBrainer where every command begins with the word “Command”. This would make KnowBrainer bulletproof but most end-users do not like this approach. If we receive enough complaints, we will create a secondary command set where every command begins with the word “Command”. In other words you will be able to have it either way. However, if you're not using the latest KnowBrainer beta commands, this would likely explain your current dilemma. We continually use what we develop. If you're not certain about your current command collection, say Enter <dictation>. If it works, you're out of date because this command has been changed to Over <dictation> and Upload <dictation>; we could make up her mind. However, we definitely had too many Enter <dictation> misfires. You'll also find that nearly 50% of KnowBrainer commands have been pruned out and the VerbalBasic global command collection has been moved to application-specific because it's probably best to limit their use to the KnowBrainer Command Editor. KnowBrainer, like Dragon, includes some unique VBA scripting that can only be used locally. For this reason, we are now referring to KnowBrainer scripting is VBA+. We will also be expanding KnowBrainer to something we call Multi-VerbalBasic which will be able to execute up to 5 simultaneous events



-------------------------

Change "No" to "Know" w/KnowBrainer 2020
Trial Downloads
Dragon/Sales@KnowBrainer.com 
(615) 884-4558 ex 1

 09/20/2019 12:42 AM
User is offline View Users Profile Print this message

Author Icon
Ag
Top-Tier Member

Posts: 644
Joined: 07/08/2019

@Lunis_Orcutt:

Are you, by any chance, using the KnowBrainer original recipe? ...  details on importing KnowBrainer 2021 beta commands.

 

 

I am not sure what "KnowBrainer original recipe" is. I am using KnowBrainer, 30 day evaluation, per your email of Tue 27-Aug-19.  I followed your instructionsto obtain the "latest KnowBrainer command technology" as below:

DANG!   I spent far too much time composing a long reply… And then my wife came in to talk to me and I turned to talk to her without saying "stop listening" to Dragon/KnowBrainer. I'm not sure what I said, but I had a whole slew of red XML on the screen, and pretty much I lost everything I did.

 

 

I used to have AutoSave on text boxes. And I probably will again, but I only reinstalled Firefox yesterday and had not yet gone installed all of the extensions I normally use.

 

 

--

 

 

I'm not going to try to repeat my original post.

 

 

Briefly:

 

 

I tried "command" in the 1990s. Didn't like it. But I'm theorizing that 2 syllables was too long, so I'm hoping that a shorter prefix like "puff" is acceptable. Also, in the 1990s, there was no large command set like KnowBrainer that I could leverage.

 

 

Reducing the number of commands and KnowBrainer will certainly help. But it also rather defeats the purpose for me, since I really like the fact that one can have an extremely large library of commands. Not just globally but also a large library of commands in any particular application.

 

 

By the way, one of the reasons I asked whether KnowBrainer could emulate Dragon states was that I was somewhat hoping that one could have a global state UsePrefix="command" or UsePrefix="Puff" or UsePrefix=empty, so that one only needed to write the command sets once, and automatically get the prefix and non-prefix versions. I was disappointed to realize that Dragon states are not available for global commands. Although they are available for application-specific commands, and it looks like they can be used. Nevertheless, lacking states for global commands is a very big limitation.

 

 

BTW^2: one of the reasons I asked in another thread about Does KnowBrainer have "states" the way Dragon does? was to support such prefixes. It looks like such prefixing works efficiently within applications using Dragon states, but there are no states for global commands.



-------------------------

DPG15.6 (also DPI 15.3) + KB, Sennheiser MB Pro 1 UC ML, BTD 800 dongle, Windows 10 Pro, MS Surface Book 3, Intel Core i7-1065G7 CPU @ 1.3/1.5GHz (4 cores, 8 logical, GPU=NVIDIA Quadro RTX 3000 with Max-Q Design.



 09/20/2019 11:24 AM
User is offline View Users Profile Print this message

Author Icon
Edgar
Top-Tier Member

Posts: 1187
Joined: 04/03/2009

In Lunis’ “Original recipe” MyKBCommands XML file the specialized Verbal Basic commands were prefaced with the word "Code" - a word I use a lot. It was a simple task to create an absolutely new word "zotz" and use that as the preface instead of "Code". I also thought of making them all editor-specific to the KnowBrainer command editor but realized that I often edit KnowBrainer commands in PSPad or Visual Studio. Since, at the time, I was heavily involved in a project which uses wxWidgets I also added the entire wxWidgets "reserved words" set. I then proceeded to add the entire C++ “reserved words" set and, just recently that for C#. I also do quite a bit of AutoIT3 scripting but have only done a few of their "reserved words" as most are easily dictated using ClassCase or straightforward dictation.

I also went through the “Original recipe” MyKBCommands XML file and either removed or modified many commands whose names collided with normal dictation (Enter <dictation> became Inject <dictation> etc.). I added some French, Spanish, German and Chinese one or 2 syllable words to my vocabulary (spelled as they sound in English) and use them almost exclusively in command names.



-------------------------

-Edgar
DPI 15.3, 64-bit Windows 10 Pro, OpenOffice & Office 365, Norton Security, Shure X2U XLR to USB mic adapter with Audio Technica DB135 vocal mic, Asus X299-Deluxe Prime, Intel Core i9-7940X (14 core, 4.3 GHz overclocked to 4.9 GHz), G.SKILL TridentZ Series 64GB (4 x 16GB) DDR4 3333 (PC4 26600) F4-3333C16Q-64GTZ, NVIDIA GIGABYTE GeForce GTX 1060 GV-N1060G1 GAMING-6GD REV 2.0 6GB graphics card with 3 1920x1080 monitors

 09/20/2019 02:01 PM
User is offline View Users Profile Print this message

Author Icon
Lunis Orcutt
Top-Tier Member

Posts: 39257
Joined: 10/01/2006

The next time your wife walks in on you and pays absolutely no attention to your important dictation work, simply say Hello, which is a KnowBrainer command that places Dragon's microphone into the Asleep state. You'll find that we have anticipated a lot of seemingly odd problems because we started working on KnowBrainer in 1993 (4 years before Dragon continuous speech capability was released).


We agree with you about the word “command” looking good but not ideal as a prefix because it's 2 syllables. While you are correct in that a prefix name like “puff” would never be used anywhere else and wouldn't be mistaken, it isn't necessary. You can use any name you want because it's only the collection of words, that happen to be a KnowBrainer command, that could be a problem. We like your idea of “puff” but it doesn't ideally roll off the tongue. You can use any name you want but our How to Edit All KnowBrainer Command Names uses the word “go” as an example and only takes about 10 seconds. 4 letter words work equally well and can additionally offer some gratification (especially after seeing the news) but tend to attract unwanted attention in public places.

You're not going to miss the removed commands because while many of them were powerful, they simply weren't being used. Don't worry, we left plenty of commands which you can also use as building blocks for additional commands; when you're not using VerbalBasic.



-------------------------

Change "No" to "Know" w/KnowBrainer 2020
Trial Downloads
Dragon/Sales@KnowBrainer.com 
(615) 884-4558 ex 1



 09/20/2019 04:40 PM
User is offline View Users Profile Print this message

Author Icon
Ag
Top-Tier Member

Posts: 644
Joined: 07/08/2019

Edgar - I admit that I was confused by your previous reference to "zotz". Like you, "code" is something I say much too often to use as a prefix.

 

Lunis & Edgar: cool, if smart guys like you have added prefixes, then I will add a prefix.  The only question is exactly what prefix. Not "command", not "go", not "code", not "computer". Maybe "puff", maybe Edgar's "zotz". Any advice welcomed on something that "rolls off the tongue".

 

Lunis: your writeup in https://www.knowbrainer.com/downloads/Prefix_KnowBrainer_Commands.PDF is cool, but I would always rather put commands into Python or Perl in a makefile then do something interactively. I may eventually automate downloading your most recent version of MyKBCommands.xml and comparing it to my modified version.

 

Lunis: it looks like I need to fall into the habit of saying "Hello" nicely every time somebody comes to talk to me. You make me much more polite.  No more "hi", or "yes darling", or "sorry" or "bonjour" or "b'jour" or "oui allo" or ...   (No, I am not going to add those as aliases for "Goto Sleep".) I must admit I saw the hello command definition and wondered "why the heck do I need yet another way of saying `GoTo Sleep'?"



-------------------------

DPG15.6 (also DPI 15.3) + KB, Sennheiser MB Pro 1 UC ML, BTD 800 dongle, Windows 10 Pro, MS Surface Book 3, Intel Core i7-1065G7 CPU @ 1.3/1.5GHz (4 cores, 8 logical, GPU=NVIDIA Quadro RTX 3000 with Max-Q Design.



 09/20/2019 05:19 PM
User is offline View Users Profile Print this message

Author Icon
Edgar
Top-Tier Member

Posts: 1187
Joined: 04/03/2009

Just to make it even more confusing… I write scripts in a number of applications which use their own version of Basic (and often their own script editor). I code in C#, C++ and HTML for which I use a small handful of editors (primarily Visual Studio but also PSPad). I have now developed prefixes for Basic (Zotz…), C# & C++ (Keyword <…> - for things like int & bool, <…> Constructor - for things like “for each”, “if”, “if else” etc.). HTML currently has an unwieldy: HTML Code <…>.



-------------------------

-Edgar
DPI 15.3, 64-bit Windows 10 Pro, OpenOffice & Office 365, Norton Security, Shure X2U XLR to USB mic adapter with Audio Technica DB135 vocal mic, Asus X299-Deluxe Prime, Intel Core i9-7940X (14 core, 4.3 GHz overclocked to 4.9 GHz), G.SKILL TridentZ Series 64GB (4 x 16GB) DDR4 3333 (PC4 26600) F4-3333C16Q-64GTZ, NVIDIA GIGABYTE GeForce GTX 1060 GV-N1060G1 GAMING-6GD REV 2.0 6GB graphics card with 3 1920x1080 monitors

 09/20/2019 09:58 PM
User is offline View Users Profile Print this message

Author Icon
Lunis Orcutt
Top-Tier Member

Posts: 39257
Joined: 10/01/2006

Originally posted by: Ag Edgar - I admit that I was confused by your previous reference to "zotz". Like you, "code" is something I say much too often to use as a prefix.



Keep in mind that it shouldn't make any difference what you use for a prefix because it occurs before the command. For example, KnowBrainer includes a command called Paragraph and another called Paragraph . If you prefix both of these commands with the word “Go” or “Code” they are never going to be misrecognized because how often would you really begin dictating a phrase like “go paragraph”. You can use literally any word you want and be immune to accidental command deployment. You really don't have to use a unique word when you are lengthening the names of commands.



-------------------------

Change "No" to "Know" w/KnowBrainer 2020
Trial Downloads
Dragon/Sales@KnowBrainer.com 
(615) 884-4558 ex 1



 09/21/2019 01:16 AM
User is offline View Users Profile Print this message

Author Icon
Ag
Top-Tier Member

Posts: 644
Joined: 07/08/2019

 

@Lunis says:
Keep in mind that it shouldn't make any difference what you use for a prefix because it occurs before the command. For example, KnowBrainer includes a command called Paragraph and another called Paragraph . If you prefix both of these commands with the word “Go” or “Code” they are never going to be misrecognized because how often would you really begin dictating a phrase like “go paragraph”. You can use literally any word you want and be immune to accidental command deployment. You really don't have to use a unique word when you are lengthening the names of commands.

 

 

Let's think about this a bit:

 

 

KnowBrainer has a command "Paragraph".  If you were using "Code" as your prefix, how often would would you really begin dictating a phrase like "Code paragraph"?:

 

"Code paragraph 1 specifies how homeowners should..."

 

 

KnowBrainer has a command "Brace That".  If you were using "Go" as your prefix, how often would would you really begin dictating a phrase like "Go brace"?:

 

"Go brace that beam with a crossbar..."

 

 

I hope that I do not need to go on.

 

 

Conditional word pair probabilities is the most basic technique for a Dragon style speech recognition system - the probability of "go" being followed by "brace", etc.

 

 

@Lunis says: You can use literally any word you want and be immune to accidental command deployment.

No. Less vulnerable. Not immune.  Vulnerable still when the probability of your prefix being followed by the rest of command is non-zero in normal speaking.  As the examples above show.

 

 

You really don't have to use a unique word when you are lengthening the names of commands.

 

This may be the source of the misunderstanding.

 

 

You don't need a unique word.  Just a word that is unlikely to be followed by any of the next words in the commands.  (For that matter, what does "unique" mean wrt words? Used only once?  Bad terminology - I apologize if ever I have said we wanted a "unique" word.)

 

 

Now, I suppose a nonsense word like "zotz" that Edgar uses is unlikely to be followed by anything.

 

 

Or... if you aren't happy with "zotz", a word that is uncommon enough that you don't use it much in ordinary dictation.  And hence are unlikely to have errors caused by it arising in ordinary dictation.

 

 

Prob(Error caused by prefix P for command C)

= Prob(P occurring in normal speech)

* Prob(first words of command C following P)

 

summed over all commands.

 

 

--

 

BTW, I have considered also terminating all commands by a suffix (a suffix that does not occur in any possible command). But I have never found a scheme I like.

 

 

Suffixing and prefixing *IS* the moral equivalent of

 

...dictation... Command Mode On Command#1 Command Mode Off Command Mode On Command#2 Command Mode Off ...

 

 

This could be made bullet-proof, immune from all errors, if the suffix is not found in any command.

 

 

But certainly "Command Mode On/Off" is too clumsy to use.  Possibly a single syllable like "zotz" would be okay, but it still seems too much to say.  I think the real problem is that Dragon's current parsing approach is time based.  If you pause while saying "zotz long command zotz" you get the command entered as dictation.

 

 

I started ranting about timing dependence, but I'll leave that for another time.



-------------------------

DPG15.6 (also DPI 15.3) + KB, Sennheiser MB Pro 1 UC ML, BTD 800 dongle, Windows 10 Pro, MS Surface Book 3, Intel Core i7-1065G7 CPU @ 1.3/1.5GHz (4 cores, 8 logical, GPU=NVIDIA Quadro RTX 3000 with Max-Q Design.



 09/21/2019 10:56 AM
User is offline View Users Profile Print this message

Author Icon
Edgar
Top-Tier Member

Posts: 1187
Joined: 04/03/2009

Originally posted by: AgBTW, I have considered also terminating all commands by a suffix (a suffix that does not occur in any possible command).

Probably the most powerful tool in your commands repertoire is the use of open-ended dictation: Command Name <dictation>. Since the special case list “<dictation>” can ONLY occur at the very end of the command, terminating all commands with the suffix would eliminate this option. I do terminate commands with a suffix quite often as an aid to remembrance: Do Something <1-20> Times (the “Times” is superfluous) but makes the phrase flow more smoothly.



-------------------------

-Edgar
DPI 15.3, 64-bit Windows 10 Pro, OpenOffice & Office 365, Norton Security, Shure X2U XLR to USB mic adapter with Audio Technica DB135 vocal mic, Asus X299-Deluxe Prime, Intel Core i9-7940X (14 core, 4.3 GHz overclocked to 4.9 GHz), G.SKILL TridentZ Series 64GB (4 x 16GB) DDR4 3333 (PC4 26600) F4-3333C16Q-64GTZ, NVIDIA GIGABYTE GeForce GTX 1060 GV-N1060G1 GAMING-6GD REV 2.0 6GB graphics card with 3 1920x1080 monitors

 09/21/2019 12:50 PM
User is offline View Users Profile Print this message

Author Icon
Ag
Top-Tier Member

Posts: 644
Joined: 07/08/2019

@Edgar: Probably the most powerful tool in your commands repertoire is the use of open-ended dictation: Command Name <dictation>. Since the special case list “<dictation>” can ONLY occur at the very end of the command, terminating all commands with the suffix would eliminate this option.

 

 

Good point. 

 

 

Q: what terminates <dictation>?  A pause of long enough, right?  (My usual unhappiness with timing dependence.)

 

 

I think this might be seen as a limitation of the command language.  Instead of

 

 

<dictation> = anything up to the next enough pause (even if you are catching your breath in the middle of what you would like to be a long <dictation> operand)

 

 

it might be nice to have

 

 

<dictation stop_word="zotz"> = anything up to the word "zotz" - probably also with a timeout.

 

 

This would be the equivalent of a shell Here Document

 

COMMAND <<ENDSTRING
command #1
command #2
...
ENDSTRING

 

 



-------------------------

DPG15.6 (also DPI 15.3) + KB, Sennheiser MB Pro 1 UC ML, BTD 800 dongle, Windows 10 Pro, MS Surface Book 3, Intel Core i7-1065G7 CPU @ 1.3/1.5GHz (4 cores, 8 logical, GPU=NVIDIA Quadro RTX 3000 with Max-Q Design.

 02/07/2020 06:09 PM
User is offline View Users Profile Print this message

Author Icon
bubaird
New Member

Posts: 1
Joined: 08/17/2016

Lunis,

 

I cannot find the HELLO Command. I just update my KB commands and still could not find it.



-------------------------

BBaird

 02/07/2020 07:13 PM
User is offline View Users Profile Print this message

Author Icon
Lunis Orcutt
Top-Tier Member

Posts: 39257
Joined: 10/01/2006

The Hello command was removed but we cannot remember why. Go ahead and re-create it and see if you deploy it accidentally. The following script will put the microphone in the Asleep state but if you prefer to turn the microphone completely off, use the 2nd example

 

Sub Main
GoToSleep
End Sub


Sub Main
SetMicrophone 0
End Sub


-------------------------

Change "No" to "Know" w/KnowBrainer 2020
Trial Downloads
Dragon/Sales@KnowBrainer.com 
(615) 884-4558 ex 1

 03/15/2020 11:28 PM
User is offline View Users Profile Print this message

Author Icon
dilligence
Top-Tier Member

Posts: 1407
Joined: 08/16/2010

BBaird,

 

I would definitely use DVC for this because it's the very same code but much faster (and without Sub Main/EndSub).

 

The same goes for SetMicrophone 0

 

When it comes to hanging up the phone you could edit the global DVC file and change "start listening" into "Goodbye". So you would have everything fully automated ;-)



-------------------------


Auto Box© Demo now available

 10/09/2019 03:46 PM
User is offline View Users Profile Print this message

Author Icon
Ag
Top-Tier Member

Posts: 644
Joined: 07/08/2019

So far, I am reasonably happy with having added prefix "PUFF" to all of the KnowBrainer commands I was able to edit. (In fact, I added both prefix "puff" and Edgar's prefix "Zotz", because I found Edgar's prefix easier to find when it had been in inserted as text by error. But after a few days I found this error didn't occur very much, and I think that puff is quicker to say than Zotz. Perhaps I have a lisp.)

However, there have been a few gotchas. Which I will record here as I encounter them.


-------------------------

DPG15.6 (also DPI 15.3) + KB, Sennheiser MB Pro 1 UC ML, BTD 800 dongle, Windows 10 Pro, MS Surface Book 3, Intel Core i7-1065G7 CPU @ 1.3/1.5GHz (4 cores, 8 logical, GPU=NVIDIA Quadro RTX 3000 with Max-Q Design.

 10/09/2019 03:57 PM
User is offline View Users Profile Print this message

Author Icon
Ag
Top-Tier Member

Posts: 644
Joined: 07/08/2019

Prefix gotcha: all of the Dragon and hardcoded KnowBrainer commands that prefixes cannot be added to. Or at least those of which I tend to say by accident.

Sure enough, I wish I could add a prefix to KnowBrainer's hardcoded/inbuilt commands.

But I am also, sure enough, learning what they are and how to avoid them.

E.g. I have found that I somewhat frequently say things involving commands, mainly because I am programming, and explaining or writing commands. E.g. when I say "I'd like to show a command to do this" and the "a" is swallowed.

E.g. probably the most confusing and damaging thing so far has been when I say something like "here is code to display numbers ..." . It is confusing mainly because the numbers may get displayed as much as 23 seconds after I have accidentally said the command, and I might be in the middle of saying actual numbers that I want have entered in text that result in accidentally selecting 1 of the numbered/highlighted items.

Of course, that's not so much a problem with prefixing, because the same problem would occur even if I hadn't prefix the commands. It's just that the number of errors is be reduced so dramatically that I can now see what was happening.

-------------------------

DPG15.6 (also DPI 15.3) + KB, Sennheiser MB Pro 1 UC ML, BTD 800 dongle, Windows 10 Pro, MS Surface Book 3, Intel Core i7-1065G7 CPU @ 1.3/1.5GHz (4 cores, 8 logical, GPU=NVIDIA Quadro RTX 3000 with Max-Q Design.

 10/10/2019 10:03 AM
User is offline View Users Profile Print this message

Author Icon
Edgar
Top-Tier Member

Posts: 1187
Joined: 04/03/2009

Originally posted by: Ag Prefix gotcha: all of the Dragon and hardcoded KnowBrainer commands that prefixes cannot be added to.

For the non-built-in Dragon commands, I suspect it would be doable to export them as XML, edit the resulting file to add a prefix to all commands then import them. For the built-in Dragon commands, since KnowBrainer takes precedence, you can create a "do nothing" KnowBrainer command with the un-prefixed command name and a duplicate prefixed KnowBrainer command (which you would need to write).



-------------------------

-Edgar
DPI 15.3, 64-bit Windows 10 Pro, OpenOffice & Office 365, Norton Security, Shure X2U XLR to USB mic adapter with Audio Technica DB135 vocal mic, Asus X299-Deluxe Prime, Intel Core i9-7940X (14 core, 4.3 GHz overclocked to 4.9 GHz), G.SKILL TridentZ Series 64GB (4 x 16GB) DDR4 3333 (PC4 26600) F4-3333C16Q-64GTZ, NVIDIA GIGABYTE GeForce GTX 1060 GV-N1060G1 GAMING-6GD REV 2.0 6GB graphics card with 3 1920x1080 monitors

 10/10/2019 08:54 PM
User is offline View Users Profile Print this message

Author Icon
Ag
Top-Tier Member

Posts: 644
Joined: 07/08/2019

Originally posted by: Edgar
Originally posted by: Ag Prefix gotcha: all of the Dragon and hardcoded KnowBrainer commands that prefixes cannot be added to.

 

For the non-built-in Dragon commands, I suspect it would be doable to export them as XML, edit the resulting file to add a prefix to all commands then import them.

that's what I've done, using XMLStarlet so that I can fairly easily automate it whenever I download KnowBrainer's latest command sets

For the built-in Dragon commands, since KnowBrainer takes precedence, you can create a "do nothing" KnowBrainer command with the un-prefixed command name and a duplicate prefixed KnowBrainer command (which you would need to write).

 

thanks! I did not expect KnowBrainer to take precedence.

 

Q: exactly what is the precedence hierarchy?

 

Highest priority - cannot be overridden

SpeechStart+ commands like restart Dragon

KnowBrainer window specific commands

KnowBrainer application-specific commands

KnowBrainer global commands

KnowBrainer hardcoded commands

Dragon commands

lowest priority

 

 

 

 



-------------------------

DPG15.6 (also DPI 15.3) + KB, Sennheiser MB Pro 1 UC ML, BTD 800 dongle, Windows 10 Pro, MS Surface Book 3, Intel Core i7-1065G7 CPU @ 1.3/1.5GHz (4 cores, 8 logical, GPU=NVIDIA Quadro RTX 3000 with Max-Q Design.



 12/06/2019 03:02 PM
User is offline View Users Profile Print this message

Author Icon
kkkwj
Top-Tier Member

Posts: 802
Joined: 11/05/2015

Was the precedence of commands in your list above ever confirmed? You wrote it as a question, but suggested the order on the basis of your knowledge, I imagine. A precedence order implies that Dragon keeps a list of who registered before who, I suppose. I wonder if defined a KB command "restart Dragon" if it would fire before or after SpeechStart did. I read somewhere that Dragon creates a recognition object and then hands it over to registrants (maybe only those that registered that matchstring?). So much to know, and no precedence documentation that I've read (other than on this forum). My understanding is that I can define a command of my own to override (almost?) any builtin Dragon command.

-------------------------

Win10/x64, AMD Ryzen 7 3700X, 64GB RAM, Dragon 15.3, SP 6 PRO, SpeechStart, Office 365, KB 2017, Dragon Capture, Samson Meteor USB Desk Mic, Klim and JUKSTG earbuds with microphones, 3 BenQ 2560x1440 monitors, Microsoft Sculpt Keyboard and fat mouse

 12/06/2019 04:38 PM
User is offline View Users Profile Print this message

Author Icon
Ag
Top-Tier Member

Posts: 644
Joined: 07/08/2019

Originally posted by: kkkwj Was the precedence of commands in your list above ever confirmed?

 

no, nobody's ever answered that.

 

Experimenting to determine more exactly has been on my list of projects that I want to do in my copious free time. I.e. don't hold your breath. But if you want to do it, I sure would like to know.

 

You wrote it as a question, but suggested the order on the basis of your knowledge, I imagine. A precedence order implies that Dragon keeps a list of who registered before who, I suppose.

 

not necessarily. It is possible that Dragon flattens everything into a state transition diagram. That would be one of the things that would make it difficult to have layered vocabularies, where words or commands could be swapped in and out. But the arcsin the state transition diagram could be annotated with priority order as well as the probabilities that are found during training. I can imagine making it work but I don't know what Dragon is done.

 

However, there definitely seems to be some such priority order, a static order according to type of commands. Plus, Python things like dragonfly seem to be able to swap things in and out. It is possible that such swapping is happening only at the terminal notes, and is not part of the normal state transition graph using recognition.

 

Yeah, fun to nerd out, but I haven't found enough information to be able to use it yet.

 

I wonder if defined a KB command "restart Dragon" if it would fire before or after SpeechStart did. I read somewhere that Dragon creates a recognition object and then hands it over to registrants (maybe only those that registered that matchstring?). So much to know, and no precedence documentation that I've read (other than on this forum). My understanding is that I can define a command of my own to override (almost?) any builtin Dragon command.

 

That's easy to test. See below.

 

AFAICT: no

 

SpeechStart+ "Restart Dragon" takes precedence over a user-defined KnowBrainer command. ...

 

when KnowBrainer and SpeechStart+ were started together ( e.g. when I start KnowBrainer and it seems to start SpeechStart+), when SpeechStart+ is running it takes priority over the restart Dragon KnowBrainer command I provide below.

 

When I stop SpeechStart+ but leave Dragon and SpeechStart+ running the restart Dragon KnowBrainer command I provide below works.

 

interestingly, when I restart  SpeechStart+ but leave Dragon and KnowBrainer running, now the restart Dragon KnowBrainer commander provide below takes precedence. No, wait, it's even cooler: I just saw both my command and the SpeechStart+ command happen at the same time. ... It seems that in this situation the KB command gets invoked every time I say "restart dragon", but the SpeechStart+ command only gets invoked every second time.  no, wait. Not every second time, sometimes I can say "restart Dragon" and I get the KB command three or four times in a row. Sometimes I get it back to back. I would guess that there's some latency, where SpeechStart+ is uninstalling  some hook and then reinstalling some hook. but never the SpeechStart+ "Restart Dragon" by itself, after SpeechStart+ has been stopped and restarted.

 

(also, it appears that after this restart situation the SpeechStart+ command "Middle" works unambiguously, because I have no KnowBrainer command that conflicts with it. I used to, but now I say "puff middle".)

 

In any case, R. Wilke  will probably tell us the real story.

 

this funky behavior explains  some of the problems I have been having with SpeechStart+. (I don't think all of them.)

 

I think I'm going to keep this KnowBrainer command "restart  dragon" - it's nice to see this MsgBox that explains to me why I might be getting frustrated because SpeechStart+ is not working. I might even create Dragon aliases for all of the SpeechStart+ commands, so that I can see any such problem.

 

---

 

Screensnip to show the command name and description as well as the  code body. as well as the MsgBox output produced when

 

 

 

code for anyone wants to copy/paste:

 

Sub Main
MsgBox "KB custom command Restart Dragon" & vbCr _
& "if you see this" & vbCr _
& "SpeechStart+ is not running" & vbCr _
,48+&H10000
End Sub

Q: is there a way to get a nice text package of the command name, description, and that the code body, rather than a screen-snip, or an excerpt of the XML?

 

---

 

Screen-snip showing that both SpeechStart+ "Restart Dragon" and the KnowBrainer command "restart dragon" that I wrote above run at the same time - when I stopped and then restarted SpeechStart+ while leaving Dragon and KnowBrainer running.

Sometimes I got the KnowBrainer command MsgBox by itself, sometimes I got both.

 

 



-------------------------

DPG15.6 (also DPI 15.3) + KB, Sennheiser MB Pro 1 UC ML, BTD 800 dongle, Windows 10 Pro, MS Surface Book 3, Intel Core i7-1065G7 CPU @ 1.3/1.5GHz (4 cores, 8 logical, GPU=NVIDIA Quadro RTX 3000 with Max-Q Design.



 12/06/2019 04:51 PM
User is offline View Users Profile Print this message

Author Icon
Ag
Top-Tier Member

Posts: 644
Joined: 07/08/2019

BTW, the experiment of adding my own KB command "restart dragon" to compare its priority to SpeechStart+ "Restart Dragon"

 

Showed me one good reason why Edgar used "ZOTZ" as his prefix instead of "PUFF" the way I have:

 

My unprefixed commands sort sometimes before and sometimes after the prefix commands, whereas when Edgar uses "ZOTZ" the prefixed commands come at the end.  Makes it easier to see the un-prefixed commands.

 

I am probably going to follow Edgar's example. It's easy enough to do a global edit of the XML file that contains the commands. Unfortunately, "ZOTZ" is a little bit hard for me to pronounce. With my Canadian accent? perhaps I will look for another infrequently used prefix beginning with Z.

 

But I so much enjoyed calling Dragon "Puff"! :-(

 

searching for "single syllable names for dragons beginning with Z that are not very common in normal words"  ...



-------------------------

DPG15.6 (also DPI 15.3) + KB, Sennheiser MB Pro 1 UC ML, BTD 800 dongle, Windows 10 Pro, MS Surface Book 3, Intel Core i7-1065G7 CPU @ 1.3/1.5GHz (4 cores, 8 logical, GPU=NVIDIA Quadro RTX 3000 with Max-Q Design.

 12/07/2019 12:32 PM
User is offline View Users Profile Print this message

Author Icon
Edgar
Top-Tier Member

Posts: 1187
Joined: 04/03/2009

Originally posted by: AgUnfortunately, "ZOTZ" is a little bit hard for me to pronounce.

One of the benefits of it being a custom word is that it does not matter how you pronounce it! You might try pronouncing it as "sots" (soft es, try varying the "o" as in "boat" or "botulism" - maybe "boat" is a poor example for a Canadian accent, try as "coat" <grin>).



-------------------------

-Edgar
DPI 15.3, 64-bit Windows 10 Pro, OpenOffice & Office 365, Norton Security, Shure X2U XLR to USB mic adapter with Audio Technica DB135 vocal mic, Asus X299-Deluxe Prime, Intel Core i9-7940X (14 core, 4.3 GHz overclocked to 4.9 GHz), G.SKILL TridentZ Series 64GB (4 x 16GB) DDR4 3333 (PC4 26600) F4-3333C16Q-64GTZ, NVIDIA GIGABYTE GeForce GTX 1060 GV-N1060G1 GAMING-6GD REV 2.0 6GB graphics card with 3 1920x1080 monitors

 12/07/2019 03:46 PM
User is offline View Users Profile Print this message

Author Icon
R. Wilke
Top-Tier Member

Posts: 7673
Joined: 03/04/2007

One of the benefits of it being a custom word is that it does not matter how you pronounce it!

 

How do you know that?

 



-------------------------



No need to buy if all you want to do is try ...

DragonCapture KB Download (Latest)
DragonCapture Homepage

 12/07/2019 06:59 PM
User is offline View Users Profile Print this message

Author Icon
Edgar
Top-Tier Member

Posts: 1187
Joined: 04/03/2009

Originally posted by: R. Wilke
One of the benefits of it being a custom word is that it does not matter how you pronounce it!
How do you know that?

Only by experimentation and experience. I frequently make up custom words which have a meaningless spelling in English, a pronunciation in: French; Spanish; German or Mandarin and are used to trigger KnowBrainer/Dragon commands.

When creating a custom word or adding a word to my vocabulary I ALWAYS train it 3 times directly from the Vocabulary Editor’s Add Word dialog. This has 2 potential advantages: one is that Dragon learns how I pronounce the word; the other is that I learn/practice how to pronounce the word (muscle memory). If, during the 3 trials, I botch a pronunciation, I train it a couple more times. This seems to work very well for me.



-------------------------

-Edgar
DPI 15.3, 64-bit Windows 10 Pro, OpenOffice & Office 365, Norton Security, Shure X2U XLR to USB mic adapter with Audio Technica DB135 vocal mic, Asus X299-Deluxe Prime, Intel Core i9-7940X (14 core, 4.3 GHz overclocked to 4.9 GHz), G.SKILL TridentZ Series 64GB (4 x 16GB) DDR4 3333 (PC4 26600) F4-3333C16Q-64GTZ, NVIDIA GIGABYTE GeForce GTX 1060 GV-N1060G1 GAMING-6GD REV 2.0 6GB graphics card with 3 1920x1080 monitors

 12/07/2019 07:11 PM
User is offline View Users Profile Print this message

Author Icon
R. Wilke
Top-Tier Member

Posts: 7673
Joined: 03/04/2007

Originally posted by: Edgar
Originally posted by: R. Wilke
One of the benefits of it being a custom word is that it does not matter how you pronounce it!
How do you know that?

 

Only by experimentation and experience. I frequently make up custom words which have a meaningless spelling in English, a pronunciation in: French; Spanish; German or Mandarin and are used to trigger KnowBrainer/Dragon commands. When creating a custom word or adding a word to my vocabulary I ALWAYS train it 3 times directly from the Vocabulary Editor’s Add Word dialog. This has 2 potential advantages: one is that Dragon learns how I pronounce the word; the other is that I learn/practice how to pronounce the word (muscle memory). If, during the 3 trials, I botch a pronunciation, I train it a couple more times. This seems to work very well for me.

 

 

I think I see what you mean now. In fact, "training" using varying pronunciations has a lot more effect on custom words than it has on "factory" words, where you can never really override the initial pronunciation; only add to it, with limitations.

 

I am not sure though whether you could actually "train" "zotz" to be recognized when pronouncing "puff".



-------------------------



No need to buy if all you want to do is try ...

DragonCapture KB Download (Latest)
DragonCapture Homepage

 12/08/2019 11:07 AM
User is offline View Users Profile Print this message

Author Icon
Edgar
Top-Tier Member

Posts: 1187
Joined: 04/03/2009

Originally posted by: R. WilkeI am not sure though whether you could actually "train" "zotz" to be recognized when pronouncing "puff".

I just tested this with a new nonsense pair. I chose "Add new word" from Dragon’s menu and in the left-hand ("Spell or type…) field I entered:

XBcz

in the right-hand ("Spoken form…) field I entered:

gork

the checkbox for "I want to train…" was checked. I trained "gork" 3 times after getting the notification that it was not in the vocabulary and that Dragon would assign it a tentative pronunciation. I can now say "gork" and "XBcz" will show up in the dictation. With a word like "puff" which is in the vocabulary initially this might not work.



-------------------------

-Edgar
DPI 15.3, 64-bit Windows 10 Pro, OpenOffice & Office 365, Norton Security, Shure X2U XLR to USB mic adapter with Audio Technica DB135 vocal mic, Asus X299-Deluxe Prime, Intel Core i9-7940X (14 core, 4.3 GHz overclocked to 4.9 GHz), G.SKILL TridentZ Series 64GB (4 x 16GB) DDR4 3333 (PC4 26600) F4-3333C16Q-64GTZ, NVIDIA GIGABYTE GeForce GTX 1060 GV-N1060G1 GAMING-6GD REV 2.0 6GB graphics card with 3 1920x1080 monitors

 12/08/2019 02:58 AM
User is offline View Users Profile Print this message

Author Icon
kkkwj
Top-Tier Member

Posts: 802
Joined: 11/05/2015

Thank you Ag. That post was helpful because it showed that there was no clear precedence going on.



-------------------------

Win10/x64, AMD Ryzen 7 3700X, 64GB RAM, Dragon 15.3, SP 6 PRO, SpeechStart, Office 365, KB 2017, Dragon Capture, Samson Meteor USB Desk Mic, Klim and JUKSTG earbuds with microphones, 3 BenQ 2560x1440 monitors, Microsoft Sculpt Keyboard and fat mouse

 03/15/2020 08:20 PM
User is offline View Users Profile Print this message

Author Icon
Ag
Top-Tier Member

Posts: 644
Joined: 07/08/2019

Originally posted by: kkkwj Thank you Ag. That post was helpful because it showed that there was no clear precedence going on.

I would've been surprised if there was layering or precedence, based on what I know about Dragon's matching. or at least what I knew from the early days..

 

however, I am surprised the tools like DragonFly can load and unload command sets. Because that implies precedence, or at least editing of the graph. Or possibly as they are walking they can have nodes that return a I don't match value.

 

 

IRC Dragon does not match in a left to right or earlier to later time-based manner. i.e. not the way hotkeys or GNU Emacs key bindings work. What Dragon infers an earlier utterance to be is sometimes based on what a later utterance seems to be. Or, rather, I believe it is parsing multiple Markov chains at the same time, computing probabilities for each. However, I believe that that parsing of the multiple chains is donefrom left to write or earlier to latest.

One indication that it is from left to right is that the command syntax is prefix oriented:  

COMMAND WORDS

It is possible to design an HMM that supports infix

COMMAND

Or even

COMMAND

and polyfix is in fact more accurate

PART1 PART2 

But the space to explore does become larger.



-------------------------

DPG15.6 (also DPI 15.3) + KB, Sennheiser MB Pro 1 UC ML, BTD 800 dongle, Windows 10 Pro, MS Surface Book 3, Intel Core i7-1065G7 CPU @ 1.3/1.5GHz (4 cores, 8 logical, GPU=NVIDIA Quadro RTX 3000 with Max-Q Design.



 12/07/2019 12:33 PM
User is offline View Users Profile Print this message

Author Icon
Edgar
Top-Tier Member

Posts: 1187
Joined: 04/03/2009

You could probably even pronounce it "puff"

-------------------------

-Edgar
DPI 15.3, 64-bit Windows 10 Pro, OpenOffice & Office 365, Norton Security, Shure X2U XLR to USB mic adapter with Audio Technica DB135 vocal mic, Asus X299-Deluxe Prime, Intel Core i9-7940X (14 core, 4.3 GHz overclocked to 4.9 GHz), G.SKILL TridentZ Series 64GB (4 x 16GB) DDR4 3333 (PC4 26600) F4-3333C16Q-64GTZ, NVIDIA GIGABYTE GeForce GTX 1060 GV-N1060G1 GAMING-6GD REV 2.0 6GB graphics card with 3 1920x1080 monitors

 12/07/2019 05:18 PM
User is offline View Users Profile Print this message

Author Icon
Ag
Top-Tier Member

Posts: 644
Joined: 07/08/2019

Originally posted by: Edgar You could probably even pronounce it "puff"

 

Cognitive dissonance!!!

 

Plus, I like having the written form resemble the spoken form, so that you can make a good guess as to how to pronounce it. In fact, when I generate vocabulary, I almost never train it. (I believe that Canadian pronunciations more closely resemble the spelling than American, although no English pronunciations are very close to the spelling.)

 

After wasting time googling dragon names that begin with Z - I almost chose "Zirenth", from the Dragon Riders of Pern books, but two syllables just plain didn't work - I settled on "ZUFF" As my new standard prefix. A simple transformation from my original "PUFF".  Z places it at the end.

 

BTW, in my commands I follow the convention of prefixing my commands uppercase ZUFF, standard KnowBrainer commands lowercase zuff.  Perhaps Zuff for when I change a KB command. KnowBrainer's SideBar sorts ignoring case, easy to do and see.   I also try to add [Ag]: to the description, but that's another step, and less visible.  Easy to do when generating, easy to forget when hand editing.

 

 

The effort taught me why I have trouble with your "zotz". I think I pronounce "TZ" as a consonant cluster, i.e. as two consonant  phonemes, not a digraph, two letters that are a single consonant phoneme. Two sounds: harder to pronounce. Most references do not distinguish between "TS" and "TZ" in American English.

https://www.coursehero.com/file/29787297/consonantspdf/

also Wikipedia.

 

 

 



-------------------------

DPG15.6 (also DPI 15.3) + KB, Sennheiser MB Pro 1 UC ML, BTD 800 dongle, Windows 10 Pro, MS Surface Book 3, Intel Core i7-1065G7 CPU @ 1.3/1.5GHz (4 cores, 8 logical, GPU=NVIDIA Quadro RTX 3000 with Max-Q Design.



 04/22/2021 08:01 PM
User is offline View Users Profile Print this message

Author Icon
Ag
Top-Tier Member

Posts: 644
Joined: 07/08/2019

Ongoing status report, minor improvement:

I continue to be very happy using fixes in front of nearly all of my commands.

However, I have changed from a single prefix "PUFF" to multiple prefixes ( puff | draco | smog ). I am finding that the prefix "draco" often works more reliably than the other two, I believe because the other two contain sibilants, at least the way I pronounce them.

However, I have not switch to only using Draco, because it is two syllables. Moreover, sometimes one prefix fails, is misrecognized, and one of the others works better.

Besides, I am extremely amused by "Puff the (Magic) Dragon". although Draco is also Dragon consistent. As for the prefix Smog, it is supposed to be "Smaug", the dragon from Tolkien's Hobbit. but Dragon does not recognize "Smaug" well out of the box without a lot of training, hence "Smog". and while it works comparably well to "Puff", Draco is usually more reliable


as you may note, I am using AHK/PCRE regular expressions to parse such alternatives. I am a bit embarrassed by this: There is a quote by a well-known programmer, Jamie Zawinski, that goes 'Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.' apart from the difficulty of maintaining complex regular expressions, the performance can be really bad.

I am quite a bit surprised that I have not yet run into a performance problem using regular expressions to parse commands. When I do I have a solution in mind: for the simple regular expressions I am using, it is possible to compile a large set of them to take time O(Nchar*Cache_and_TLB_miss_latency) if you have a lot of memory, where Nchar is the number of characters in the utterance. if you have less memory, there are approaches that are almost as good. not all classes of regular expression at hideous worst-case performance time.

I only recently, in the last few weeks, started using multiple prefixes.

 

I continue to be happy using AutoHotKey scripting to implement most of my command parsing.   It is so much faster to edit the AutoHotKey files and it is to edit KnowBrainer or Dragon. I have from time to time edited the D+KB XML  files by hand, and also by script,  but again AHK just seems to be easier. At least for me,  and emacs user with lots of packages that can edit AHK like languages, but which certainly do not work as well for XML or basic. Plus, I am more and more sharing code between speech commands and  hotkeys and keyboard shortcuts.

 



-------------------------

DPG15.6 (also DPI 15.3) + KB, Sennheiser MB Pro 1 UC ML, BTD 800 dongle, Windows 10 Pro, MS Surface Book 3, Intel Core i7-1065G7 CPU @ 1.3/1.5GHz (4 cores, 8 logical, GPU=NVIDIA Quadro RTX 3000 with Max-Q Design.



 04/23/2021 10:55 AM
User is offline View Users Profile Print this message

Author Icon
Edgar
Top-Tier Member

Posts: 1187
Joined: 04/03/2009

Originally posted by: Ag I continue to be happy using AutoHotKey scripting to implement most of my command parsing.

Within your AutoHotKey primary command are you implementing application- or window-specific modality? Other than the fact that it is open source, what are your reasons for choosing AutoHotKey over Visual Studio and C#?



-------------------------

-Edgar
DPI 15.3, 64-bit Windows 10 Pro, OpenOffice & Office 365, Norton Security, Shure X2U XLR to USB mic adapter with Audio Technica DB135 vocal mic, Asus X299-Deluxe Prime, Intel Core i9-7940X (14 core, 4.3 GHz overclocked to 4.9 GHz), G.SKILL TridentZ Series 64GB (4 x 16GB) DDR4 3333 (PC4 26600) F4-3333C16Q-64GTZ, NVIDIA GIGABYTE GeForce GTX 1060 GV-N1060G1 GAMING-6GD REV 2.0 6GB graphics card with 3 1920x1080 monitors

 04/23/2021 03:08 PM
User is offline View Users Profile Print this message

Author Icon
Ag
Top-Tier Member

Posts: 644
Joined: 07/08/2019

Originally posted by: Edgar
Originally posted by: Ag I continue to be happy using AutoHotKey scripting to implement most of my command parsing.

 

Within your AutoHotKey primary command are you implementing application- or window-specific modality? Other than the fact that it is open source, what are your reasons for choosing AutoHotKey over Visual Studio and C#?

 

Yes, I have quite a few context specific commands. Not just application or window specific, but also looking at the focused control or whatever the mouse is running over.

 

However, I want to tweak this quite a bit:    one of the things that I liked when I first started   using Dragon commands that mostly all  called the same AutoHotKey script that did the real work, was that I could report errors when I had invoked a command in the wrong window.

 

I backed away from this, not  because it was a bad idea, but because even AutoHotKey is biased towards application and window specific context.  but mostly because of a feature I have not yet implemented,  that will allow me to define commands individually, but then recognize if multiple of them apply to the same context, recognizing the same utterance.

 

Why AutoHotKey? No reason, apart from I already had at hand.   before I returned to using speech recognition I had quite a few AutoHotKey scripts or mouse buttons trackball buttons, keyboard extensions like the Xkey,  foot switches,  etc. To some extent I have been able to reuse/share  code between my speech commands and my nonspeech other device commands.

I am sure that this can be done using C#.    I would actually prefer if I could do it using Python, because I might be able to use such code on non-Windows systems. But I had AutoHotKey at hand.

If these things become slow, C# probably. But the algorithmic improvements first.

One thing I have really been liking: how quickly  I can make changes to the AutoHotKey script. No recompilation or anything.   AFAIK C# is a compiled language, yes?

Also, blush, I am an emacs addict,  and apart from that I mainly live in the classic UNIX environment of cygwin, etc. C# and other Microsoft tools tend to work better with Visual Studio, etc.  I know that they can be used from the  UNIX/emacs world, I have done so, but it's always bit of a pain.  And I frankly I'd forgotten  how, so I would have to spend some time figuring it out again. Or perhaps just go over to VS code.

 



-------------------------

DPG15.6 (also DPI 15.3) + KB, Sennheiser MB Pro 1 UC ML, BTD 800 dongle, Windows 10 Pro, MS Surface Book 3, Intel Core i7-1065G7 CPU @ 1.3/1.5GHz (4 cores, 8 logical, GPU=NVIDIA Quadro RTX 3000 with Max-Q Design.

 04/23/2021 01:54 PM
User is offline View Users Profile Print this message

Author Icon
Tomc
Junior Member

Posts: 30
Joined: 10/14/2019

I don't always speak too clearly, but I have found the word Purple to be a useful prefix. Easy to say and not often used in other contexts.
 04/23/2021 03:18 PM
User is offline View Users Profile Print this message

Author Icon
Ag
Top-Tier Member

Posts: 644
Joined: 07/08/2019

I have been noticing that SVO command syntax seems to help Dragon a lot: Subject Verb Object.

e.g. "Draco archive", or "Draco archive message"

Dragon often recognizes "Puff archive message" as "of archived messages",
i.e. confusing "puff" with "of", and making a reasonable influence if you are dictating and not saying a command.

that particular example can be solved by putting the command "Puff archive message" into Dragon to call my scripts, but the same thing happens all over the place, and I'm trying to avoid putting as much stuff into Dragon KnowBrainer's possible.

Draco seems to be less easily confused with other commonly used words than "Puff" is. and Draco is almost always used as a proper noun, i.e. a subject or object, whereas puff 10 be used as both a noun or a verb, and I suppose also an adjective ("puff marshmallow").

I wonder about "purple": it is mainly an adjective, although I suppose it can also be used as both noun and verb.

as long as your syntax is directly visible to Dragon, I suspect no problem, but most of my syntax is not visible to Dragon, so I rely on raw recognition.

---

BTW, I find it a little bit annoying that Dragon confuses "puff" with "of". I am fairly sure that I use an F sound with "puff", but a V sound with "of". do any native English speakers use an F sound with "of"? German speakers do... I do so wish the Dragon allowed adversarial training, comparing two pronunciations or words.



-------------------------

DPG15.6 (also DPI 15.3) + KB, Sennheiser MB Pro 1 UC ML, BTD 800 dongle, Windows 10 Pro, MS Surface Book 3, Intel Core i7-1065G7 CPU @ 1.3/1.5GHz (4 cores, 8 logical, GPU=NVIDIA Quadro RTX 3000 with Max-Q Design.

 04/23/2021 03:31 PM
User is offline View Users Profile Print this message

Author Icon
R. Wilke
Top-Tier Member

Posts: 7673
Joined: 03/04/2007

If I am getting your last posting correctly, you seem to assume that syntax and/or semantics have any influence on the recognition result in Dragon. In fact, they don't, at least not beyond the patterns in the overall Language Model, which certainly don't include "Puff" and/or "Draco".

 



-------------------------



No need to buy if all you want to do is try ...

DragonCapture KB Download (Latest)
DragonCapture Homepage



 04/25/2021 01:05 AM
User is offline View Users Profile Print this message

Author Icon
Ag
Top-Tier Member

Posts: 644
Joined: 07/08/2019

Originally posted by: R. Wilke If I am getting your last posting correctly, you seem to assume that syntax and/or semantics have any influence on the recognition result in Dragon. In fact, they don't, at least not beyond the patterns in the overall Language Model, which certainly don't include "Puff" and/or "Draco".

 

Not assuming semantics or syntax explicitly analyzed.

 

Just that the language model, created based on observed statistics, probably has such features implicitly baked in.

 

E.g. it is probably much more likely that "of vocabulary" is scored high priority by the language model than "puff vocabulary".

 

So, no, you were not getting my last posting correctly.



-------------------------

DPG15.6 (also DPI 15.3) + KB, Sennheiser MB Pro 1 UC ML, BTD 800 dongle, Windows 10 Pro, MS Surface Book 3, Intel Core i7-1065G7 CPU @ 1.3/1.5GHz (4 cores, 8 logical, GPU=NVIDIA Quadro RTX 3000 with Max-Q Design.



 04/25/2021 05:22 AM
User is offline View Users Profile Print this message

Author Icon
R. Wilke
Top-Tier Member

Posts: 7673
Joined: 03/04/2007

So, no, you were not getting my last posting correctly.


This is what made me bring up syntax:

I have been noticing that SVO command syntax seems to help Dragon a lot: Subject Verb Object.


Anyway, most certainly "of vocabulary" can be expected to have a way higher probability than "puff vocabulary", as it would be odd to come across this combination in standard English.

For what it is worth, I have just tested the probability scores for dictating both "of vocabulary", and "puff vocabulary", and while getting "of vocabulary" recognised was not a big problem (although not at first shot when I got "of the vocabulary" which seems more common also) the scores were okay, I didn't manage to get "puff vocabulary" even recognised at all.

All of that being down, of course, without any adapting as regards the word "puff", which is a standard word in the vocabulary.

-------------------------



No need to buy if all you want to do is try ...

DragonCapture KB Download (Latest)
DragonCapture Homepage

 04/25/2021 03:46 PM
User is offline View Users Profile Print this message

Author Icon
Ag
Top-Tier Member

Posts: 644
Joined: 07/08/2019

Originally posted by: R. Wilke
So, no, you were not getting my last posting correctly.
TFor what it is worth, I have just tested the probability scores for dictating both "of vocabulary", and "puff vocabulary",

 

OK, how did you do that?   What APIs lets me look at the probability scores for an utterance? 

 

SpeechStart+ reports probability scores also, so I am sure there is a way - I just don't know it yet.

 

I also imagine that Dragon's presentation of alternatives when correcting uses the same approach.  Since the original Dragon algorithm is "search all paths" or breadthfirst, they will naturally come up with several alternatives of differing scores.

 

 

 

 

 

and while getting "of vocabulary" recognised was not a big problem (although not at first shot when I got "of the vocabulary" which seems more common also) the scores were okay, I didn't manage to get "puff vocabulary" even recognised at all. All of that being down, of course, without any adapting as regards the word "puff", which is a standard word in the vocabulary.

 

I only got "puff vocabulary" recognized semi-reliably when I added "puff <dictation>" as a speech command.  No other training.

 

BTW, I think one can see how "puff vocabulary" might be recopgnized as "of vocabulary", even though "puff" is pronounced with an F and "of" with a V sound: obviously "of" is more frequent, and it bridges to V, with probability high enough to "ignore" the plosive P and sibilant F in "puff".  (Again. not explicitly, just a simplied by the probability weights on arcs in the graph.)

 

I find "puff archive" being misrecognized as "of archive" a bit more surprising, since "archive" does not have the initial V.  But then again, "of" (or "ov", or "awv") is much more common than "puff" (again, the components of "puff" that trigger transitions in the model).

 

Being able to interrogate the probabilities may help design command syntax. Point out likely ambiguities in advance, rather than learning the hard way.

 

 



-------------------------

DPG15.6 (also DPI 15.3) + KB, Sennheiser MB Pro 1 UC ML, BTD 800 dongle, Windows 10 Pro, MS Surface Book 3, Intel Core i7-1065G7 CPU @ 1.3/1.5GHz (4 cores, 8 logical, GPU=NVIDIA Quadro RTX 3000 with Max-Q Design.

 04/25/2021 04:04 PM
User is offline View Users Profile Print this message

Author Icon
R. Wilke
Top-Tier Member

Posts: 7673
Joined: 03/04/2007

OK, how did you do that? What APIs lets me look at the probability scores for an utterance?


It is a whole set of interfaces combined, and it takes integrating them in an application, so the question isn't so easy to answer. I will send you another email giving you more details.



-------------------------



No need to buy if all you want to do is try ...

DragonCapture KB Download (Latest)
DragonCapture Homepage

Statistics
32134 users are registered to the KnowBrainer Speech Recognition forum.
There are currently 0 users logged in.
The most users ever online was 12124 on 09/09/2020 at 04:59 AM.
There are currently 474 guests browsing this forum, which makes a total of 474 users using this forum.

FuseTalk Standard Edition v4.0 - © 1999-2021 FuseTalk™ Inc. All rights reserved.