Re: Now Some SERIOUS Dragon V8 Tweaking. Big Block V8;-)

Chuck Runquist's picture

The following information was posted on the ScanSoft public forum a while back. I just now reviewed this post and decided that it was a good idea to post some of the information and my responses here for the benefit of all DNS 8 users.

First, the person responsible for the post made the following claim:

Quote:

DNS can be tweaked to perform better by changing the settings in C:\Documents and Settings\All Users\Application Data\ScanSoft\NaturallySpeaking8\Users\\current\soptions.ini.

DwTimeOutIncomplete=120
DwTimeOutComplete=65
ComputeSpeed=0

They also made the claim that these settings are not foung in the DNS Options dialog (sliders).

First, soptions.ini represents the entry options in the DNS Options | Miscellaneous and | Commands tabs.

"DwTimeOutIncomplete" and "DwTimeOutComplete" are the settings for the "Pause required before commands" slider in the Commands tab. it is sufficient to point out that the difference between the settings in "DwTimeOutIncomplete" and "DwTimeOutComplete" represents the time in milliseconds that the user must pause before issuing a command. In the above example, this difference is equal to 45 ms (120-65), and is shown in the Options dialog, Commands tab Pause required before commands slider in seconds (i.e., Short (0.1 sec)--> Long (1 sec).

The ComputeSpeed represents the relative position (percentage) of the slider bar in the DNS options | Miscellaneous tab.

Additionally, the author of this post made the claim that setting these lines as shown above will increase DNS performance and accuracy. This statement is absolutely false. The original settings for the Pause before commands slider are DwTimeOutIncomplete=175 and DwTimeOutComplete=160. This represents a 15 ms pause time. The claim made by the author of this post is erroneous because the settings which he uses lengthens the pause time required, and does nothing for speed or performance. Nor does it do anything for the speed of displaying text.

Changing the settings manually in the soptions.ini file may allow the user to exercise a little finer control over the slider settings. However, in the long run changing the settings manually in this file can create more problems than it solves. This is particularly true with the first two command settings. In general, unless the user is an experienced and technically knowledgeable user, it is just as effective to manipulate these commands using the Options dialog Miscellaneous and Commands sliders. The average user will gain nothing, except possible trouble, doing a manual modification of the settings in this file.

Also, the person making this post (i.e., later on in the series of threads) also made the following two claims:

Quote:

Well, get yourself 1Gig of RAM and *disable the Windows swapfile completely* (!). My PC runs - besides NatSpeak - literally dozens of programs,including CAD on triple monitors, and I have had not ONE SINGLE problem resulting from not having a swapfile, ever since I disabled swapping about 1 1/2 years ago.

Instead, the initial responsiveness of Dragon, after pausing dictation for a while, has at least doubled, as without swapping everything is just ALWAYS kept in RAM.

My machine including Dragon runs like clockwork without any problems using the tweaks described in this thread.
Regards, David.P

Since Dragon NaturallySpeaking® runs entirely in RAM, the elimination of the pagefile/swapfile is a non sequitur. That is it has absolutely no impact whatsoever on the performance of DNS.

In addition, even if the user has sufficient RAM to eliminate the use of the pagefile/swapfile, even Microsoft cautions users about doing this. The simple reason is that if there is ever a time when the pagefile/swapfile is needed, and it is not available, your entire system will hang and the only possible reboot is to hit the reset button or turn the system off and on again. The types of problems that can result from this kind of consequence of not using a pagefile/swapfile are too numerous to mention. Suffice it to say that one very common result is that your system becomes unbootable, necessitating a complete reinstall Windows.

In general, this is very bad advice. Yes, you can go on for 1, 2, and even maybe indefinitely without ever having a problem not using a Windows pagefile/swapfile. However, if you work with critical data, the one time that this problem happens to you could cost you very dearly in terms of lost data, lost productivity, lost time. It simply is not worth it. Having a Windows pagefile/swapfile is no big deal, properly set up and used it will never detract from your system's performance. That means using some of the following when setting up your virtual memory:

First, use a static (fixed) pagefile/swapfile. That is use the custom option for setting your pagefile/swapfile and set the minimum and maximum sizes to the same exact setting (i.e., approximately 1 1/2 times your available RAM, or, better yet, use the recommended size as your minimum and maximum size settings. Dynamic pagefile/swapfile's where the minimum and maximum are a range between 0 and the maximum amount of space available on your hard drive will result in Windows always checking adjusting the size of the pagefile/swapfile. This costs you time because you take a hit on performance every time Windows must check the pagefile swapfile and/or adjust the size before continuing. In addition, using a dynamic pagefile/swapfile creates a fragmentation problem, particularly if your pagefile/swapfile is located on your primary boot partition.

Second, if you have multiple drives on your system, put your pagefile/swapfile on your fastest secondary drive. That is, take it off of the C:\ drive, or your boot drive. The reason for this is that Windows is capable of writing to more than one drive at a time. This is a byproduct of the introduction of IDE technology (i.e., for those of us who are old fogies in this business, this was also possible with SCSI drives before IDE's became popular). Doing this in improves I/O performance. Also, don't expect to get a performance improvement if you create multiple partitions on your C. drive and place your pagefile/swapfile in a secondary partition. This is not the same as having multiple hard drives and Windows cannot write to multiple partitions at the same time, only to multiple drives simultaneously. Additionally, there will be some improvement in efficiency, not performance, if you create a secondary partition on the C:\ drive (boot drive) and dedicate it to your pagefile/swapfile (i.e., for those who do not have the luxury of a second physical hard drive). I say in efficiency because, since there are no other files on this partition, there is no need to worry about defragmenting this partition and using a fixed (i.e., static vs. dynamic) pagefile swapfile, Windows does not have to check and/or adjust the swapfile. It just uses it when necessary.

Third, if you have multiple secondary hard drives (i.e., not partitions), split your pagefile/swapfile evenly across your secondary drives. This both reduces the amount of space used, although this is 9 times out of 10 not a real performance booster unless your secondary drives are very small, althought it can have some impact on performance because of the multiple drive write functionality in Windows. this recommendation is particularly useful for those who are using large amounts of RAM (i.e., 1.5 GB plus). The greatest performance enhancement is seen when you install a secondary drive, particularly if it is an SATA 150/300, and you install the pagefile/swapfile before using it for any other purpose or storing any other data on it. Reason for this is simply because when Windows initializes access to any hard drive it must go to track zero and execute the MBR (Master Boot Record), as well as read the partition information on track one, before attempting to locate any other information on the drive. If the pagefile/swapfile is the first file on the drive, it will be accessed more quickly. Although, since IDE drives do not require searching for information sector by sector (i.e. using BIOS Interupt 13) and maintain the exact location of sectors in the IDE BIOS controller, locating information on these drives does not require a time-consuming sector by sector search. Because the controller BIOS on the IDE drives controls drive access, the starting sector for any file or folder on an IDE drive is known instantly and the IDE BIOS controller will position the head exactly on that starting sector without having to do any searching (i.e. IDE drives go directly to the requested starting sector listed in the fat table are in the NTFS filesystem structure). Therefore, while placing the pagefile/swapfile at the beginning of the physical hard drive is more efficient, it may not necessarily result in greater performance. The key in all of this is to make sure that the pagefile/swapfile is static (i.e. fixed) and that it is contiguous (i.e., not fragmented).

Bottom line is, use a pagefile/swapfile, set it up optimally, and avoid not using such unless you really understand what you're doing and what the consequences could be.

Chuck

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Chuck Runquist wrote:  >

Chuck Runquist wrote:
 
> First, the person responsible for the post made the following claim:

Thanks for giving your attention to my posting from the Scansoft forum. However, I'd rather be referred to with my name than with attributes kind of like "that person said" or "they said". Furthermore it seems somewhat strange to me that you made an in-depth review regarding my above posting without even a) mentioning my authorship, and b) without giving any hint at the original location in the Scansoft forum, such as to give me the opportunity to a reply. I have only now found your above posting by chance.

> "DwTimeOutIncomplete" and "DwTimeOutComplete" are the settings for
> the "Pause required before commands" slider in the Commands tab. it
> is sufficient to point out that the difference between the settings
> in "DwTimeOutIncomplete" and "DwTimeOutComplete" represents the time
> in milliseconds that the user must pause before issuing a command.

Now, that is not sufficient, and not even correct. In particular, it is important to know that the setting "DwTimeOutComplete" corresponds one-to-one to the slider "Pause required before commands", as everyone can try easily for themselves.

However, the slider "Pause required before commands" within the options dialog of NaturallySpeaking is limited to a shortest value of "DwTimeOutComplete"=100 [milliseconds, which is the unit used for "DwTimeOutComplete" inside the file "soptions.ini"]. The setting of 100 milliseconds corresponds to the leftmost slider position of the "Pause required before commands" slider.

Now, if you want NaturallySpeaking to react quicker and crisper onto your utterances, you can manually change the value "DwTimeOutComplete" to a number below 100 milliseconds by changing the correspondent value for "DwTimeOutComplete" inside the file "soptions.ini". In my case, a number of between 60ms and 75ms turned out to be the best compromise and to give the fastest response on the screen while at the same time not breaking up long words into separate entities.

> the above example, this difference is equal to 45 ms (120-65), and is
> shown in the Options dialog, Commands tab Pause required before
> commands slider in seconds (i.e., Short (0.1 sec)--> Long (1 sec).

The *difference* between the two values "DwTimeOutIncomplete" and "DwTimeOutComplete" obviously has nothing to do whatsoever all with the "Pause required before commands" slider. This can easily be seen by setting the "Pause required before commands" slider to a couple of different values and checking the respective changes with "DwTimeOutComplete" inside the file "soptions.ini". From that you will easily understand that changing the position of the "Pause required before commands" slider one-to-one only changes the value of "DwTimeOutComplete", but doesn't do anything to the value of "DwTimeOutIncomplete".

> The ComputeSpeed represents the relative position (percentage) of the
> slider bar in the DNS options | Miscellaneous tab.

This is correct, however not much relevant to the settings discussed here and in my original posting.

> The original settings for the Pause before commands
> slider are "DwTimeOutIncomplete"=175 and
> "DwTimeOutComplete"=160. This represents a 15 ms pause time.

Again this is wrong. "DwTimeOutComplete"=160" means nothing else than a 160 milliseconds pause before commands -- which is about as long as it takes to say "to".

> The claim made by the author of this post
> is erroneous because the settings
> which he uses lengthens the pause time required, and does nothing for
> speed or performance. Nor does it do anything for the speed of
> displaying text.

Unfortunately this is entirely wrong. Obviously you haven't even tried for yourself a setting of "DwTimeOutComplete" smaller than 100 milliseconds. If, for example, you set "DwTimeOutComplete" to 65 ms, and you dictate in "dictation mode" as recommended in my original posting, you will experience an increase in the speed of displaying text, which is dramatic in that your utterances will simply pop up on the screen almost as fast as you speak.

Try and enjoy for yourself as I have been enjoying it for almost one year by now -- instead of attempting the theoretical and academical proof that it can't be done, using unfounded and - sorry that I have to say that again - wrong facts.

> Since Dragon NaturallySpeaking® runs entirely in RAM, the elimination
> of the pagefile/swapfile is a non sequitur. That is it has absolutely
> no impact whatsoever on the performance of DNS. 

This is again wrong. In Windows there's no such thing as a program that's entirely running in RAM. As soon as certain parts of the contents of the program inside RAM are not being used for a certain amount of time, Windows will swap out those parts of the program out to the hard drive. This of course applies also to Dragon NaturallySpeaking.

It was my experience, that after some half hour of not using NaturallySpeaking but instead doing other work on the computer, NaturallySpeaking was at least partially swapped out from RAM to disk, and that the *initial* response of NaturallySpeaking after such a pause used to be delayed for a couple of seconds which it took Windows to shovel the program back from disk to RAM.

> Suffice it to say that
> one very common result is that your system becomes unbootable,
> necessitating a complete reinstall Windows.

Now that is complete nonsense, sorry. Having no swapfile in no case whatsoever renders your system unbootable, at least not with Windows XP. Instead, in the very unlikely case (with >1GB RAM) that Windows should complain about not having a swapfile, Windows XP just creates a temporary swapfile, no matter what the user settings for the swapfile might be.

> In general, this is very bad advice. Yes, you can go on for 1, 2, and
> even maybe indefinitely without ever having a problem not using a
> Windows pagefile/swapfile. However, if you work with critical data,
> the one time that this problem happens to you could cost you very
> dearly in terms of lost data, lost productivity, lost time. It simply
> is not worth it. Having a Windows pagefile/swapfile is no big deal,
> properly set up and used it will never detract from your system's
> performance. That means using some of the following when setting up
> your virtual memory:       
>
> First, use a static (fixed) pagefile/swapfile. That is use the custom
> option for setting your pagefile/swapfile and set the minimum and
> maximum sizes to the same exact setting (i.e., approximately 1 1/2
> times your available RAM, or, better yet, use the recommended size as
> your minimum and maximum size settings. Dynamic pagefile/swapfile's
> where the minimum and maximum are a range between 0 and the maximum
> amount of space available on your hard drive will result in Windows
> always checking adjusting the size of the pagefile/swapfile. This
> costs you time because you take a hit on performance every time
> Windows must check the pagefile swapfile and/or adjust the size
> before continuing. In addition, using a dynamic pagefile/swapfile
> creates a fragmentation problem, particularly if your
> pagefile/swapfile is located on your primary boot partition.        
>
> Second, if you have multiple drives on your system, put your
> pagefile/swapfile on your fastest secondary drive. That is, take it
> off of the C:\ drive, or your boot drive. The reason for this is that
> Windows is capable of writing to more than one drive at a time. This
> is a byproduct of the introduction of IDE technology (i.e., for those
> of us who are old fogies in this business, this was also possible
> with SCSI drives before IDE's became popular). Doing this in improves
> I/O performance. Also, don't expect to get a performance improvement
> if you create multiple partitions on your C. drive and place your
> pagefile/swapfile in a secondary partition. This is not the same as
> having multiple hard drives and Windows cannot write to multiple
> partitions at the same time, only to multiple drives simultaneously.
> Additionally, there will be some improvement in efficiency, not
> performance, if you create a secondary partition on the C:\ drive
> (boot drive) and dedicate it to your pagefile/swapfile (i.e., for
> those who do not have the luxury of a second physical hard drive). I
> say in efficiency because, since there are no other files on this
> partition, there is no need to worry about defragmenting this
> partition and using a fixed (i.e., static vs. dynamic) pagefile
> swapfile, Windows does not have to check and/or adjust the swapfile.
> It just uses it when necessary.                   
>
> Third, if you have multiple secondary hard drives (i.e., not
> partitions), split your pagefile/swapfile evenly across your
> secondary drives. This both reduces the amount of space used,
> although this is 9 times out of 10 not a real performance booster
> unless your secondary drives are very small, althought it can have
> some impact on performance because of the multiple drive write
> functionality in Windows. this recommendation is particularly useful
> for those who are using large amounts of RAM (i.e., 1.5 GB plus). The
> greatest performance enhancement is seen when you install a secondary
> drive, particularly if it is an SATA 150/300, and you install the
> pagefile/swapfile before using it for any other purpose or storing
> any other data on it. Reason for this is simply because when Windows
> initializes access to any hard drive it must go to track zero and
> execute the MBR (Master Boot Record), as well as read the partition
> information on track one, before attempting to locate any other
> information on the drive. If the pagefile/swapfile is the first file
> on the drive, it will be accessed more quickly. Although, since IDE
> drives do not require searching for information sector by sector
> (i.e. using BIOS Interupt 13) and maintain the exact location of
> sectors in the IDE BIOS controller, locating information on these
> drives does not require a time-consuming sector by sector search.
> Because the controller BIOS on the IDE drives controls drive access,
> the starting sector for any file or folder on an IDE drive is known
> instantly and the IDE BIOS controller will position the head exactly
> on that starting sector without having to do any searching (i.e. IDE
> drives go directly to the requested starting sector listed in the fat
> table are in the NTFS filesystem structure). Therefore, while placing
> the pagefile/swapfile at the beginning of the physical hard drive is
> more efficient, it may not necessarily result in greater performance.
> The key in all of this is to make sure that the pagefile/swapfile is
> static (i.e. fixed) and that it is contiguous (i.e., not fragmented).
 
Well that's indeed a lot of quite useful blurb about the swapfile -- while my system just doesn't seem to care Eye-wink and instead runs like clockwork without swapfile since a couple of years.

Cheers,

David.P

Chuck Runquist's picture

David Peters wrote:Well

David Peters wrote:

Well that's indeed a lot of quite useful blurb about the swapfile -- while my system just doesn't seem to care Eye-wink and instead runs like clockwork without swapfile since a couple of years.

Cheers,

David.P

David,

I do the same and also have never had a problem. However, I have 4GB of RAM on a Dual Core P4 with 2x2MB L2 Cache. My system will never use a pagefile even if I did use it.

My reason for recommending against it is as follows:

1. Microsoft discourages it and my contacts at MS have documented circumstances where problems have occurred.
2. For the average user it provides no performance improvement and, if it does cause a problem, they may not realize where the problems are coming from.
3. It is not good practice to recommend something that is potentially, if not in actual practice, a problem.
4. Using the specifications I have provided will not decrease system performance and using no pagefile does not improve performance. If your system is fast and high end with sufficient RAM, neither using nor not using a pagefile will result in any performance increase or decrease overall.

In short, I discourage novice users from eliminating the pagefile for these reasons. Simply put, there is no performance gain from eliminating the pagefile, and it is just not good practice to recommend such because general endorsements of this type of configuration can result in inexperienced users attempting such where they don't have the system resources to do so and really end up with major headaches. I have seen this happen.

For those with the proper system configuration and technical knowledge, this is OK. However, it should never be posted as a general recommendation.

Just my 20 odd years of experience and being MSCE certified.

Chuck

Chuck,thanks for your

Chuck,

thanks for your reply.

Chuck Runquist wrote:

I do the same and also have never had a problem. My system will never use a pagefile even if I did use it.

Lo and behold!

Chuck Runquist wrote:

My reason for recommending against it is as follows:
1. Microsoft discourages it and my contacts at MS have documented circumstances where problems have occurred.

I know that Microsoft discourages turning off the swapfile. However this recommendation obviously origins from an era only a couple of years back from now where Windows computers used to have like 64 to 128 MB of RAM and therefore were not able to hold as well Windows AND lots of apps only in RAM. Today with a RAM size of above 1000MB this is not a problem anymore. I usually run about 35 Apps and Helper Tools at the same time with "only" 1 GB of RAM.

Chuck Runquist wrote:

2. For the average user it provides no performance improvement and, if it does cause a problem, they may not realize where the problems are coming from.

Well, my initially referenced original posting surely is not targeted towards the average user since it represents high-end DNS tweaking to the maximum extent possible. Moreover, I'd bet the average user will not even try to implement the tweaks described there, since the description contains many unexplained special terms like "Joel Gould's GetWords/PutWords", "enroll0.bin-etc-stuff", "DwTimeOutComplete" and so on which will definitely put off everyone who doesn't know what they're doing.

However, turning off the swapfile not even was part of my original recommendations list. Furthermore, the discussion about turning the swapfile off or not very much really only is a side-show that indeed is not of any relevance to the tweaks described in my original posting.

Chuck Runquist wrote:

3. It is not good practice to recommend something that is potentially, if not in actual practice, a problem.

Well first of all I  have not "recommended that everyone turn off their swapfile" as you seem to put it. During the discussion in the ScanSoft forum someone asked how else he could tweak Windows in general, and as a part of my answer I told the story about how great my PC runs without a swapfile. Furthermore, almost everything about tweaking your PC or your software that you can find on the entire Internet can give you "potentially, if not in actual practice, a problem" -- so there's not much point in the "general warning label" that you'd rather attach to my initially referenced DNS tweaking instructions. Getting up in the morning and starting your daywork generally can also make you encounter "potentially, if not in actual practice, a problem" Laughing out loud

Chuck Runquist wrote:

4. [...] using no pagefile does not improve performance.

Well once more, although this is only the sideshow: of course turning off RAM swapping (aka virtual memory) makes every OS crisper, simply as RAM is about 1.000 times faster than even the best and fastest swapfile on a harddisk. If swapfile speed wouldn't make any difference as you seem to put it, there also wouldn't be any point in the lengthy instructions you gave (sic!) about optimizing swapping speed....

Chuck Runquist wrote:

For those with the proper system configuration and technical knowledge, this is OK.

True.

Chuck Runquist wrote:

However, it should never be posted as a general recommendation.

It was never posted as a general recommendation.

It was posted as a high-end tweak -- which works like a charm Eye-wink and that's just what it is.

For easier reference, here comes once more the only slightly edited original tutorial from the ScanSoft forum:

(posted originally 01/07/2005 on http://support.lhsl.com/databases/dragon/webdisc.nsf)

 

Wow, DNS v8 is a major improvement concerning accuracy. But how if you could make things even better? Here comes how.

1.) Do NOT import previous versions user files into NaturallySpeaking version 8.

2.) Export your vocab from your old version of NaturallySpeaking using Joel Gould's GetWords. Backup and Uninstall DNS 7.

3.) Install NaturallySpeaking v8, create a new user from scratch (using the medium, not the large vocabulary, for better accuracy and speed). Don't enrol! Instead simply quit the enrolment assistant (the initial training and microphone settings assistant), but keep Dragon running.

4.) Import your vocab using PutWords. YES, IT WORKS even before you are enrolled!

5.) Don't use Dragons enrolment/training text (especially not the imbecile Dave Barry scrap - well just my take). Instead prepare *your own enrolment text* from the types of documents that you typically dictate. I instantly jumped to almost 100% accuracy after I changed over to my own type of text (patent documents) for enrolment and training rather than using NaturallySpeaking's fairytales stuff!

6.) Carefully and accurately examine your enrolment text for errors and the like. Have a look at the great instructions by Joel Gould.

You don't have to worry about paragraphs being too long - Dragon has learned to cope with that in the meantime. AND you don't have to worry about the "new word problems" mentioned by Joel Gould anymore - since you already imported your vocab BEFORE enrolment and training!

7.) Probably you'll find the enroll0.bin-etc-stuff (where you will have to put your enrolment text) not in Dragon's program directory, but in the (hidden!) C:\Documents and Settings\[USER]\Application Data\Scansoft\[blurb]\Training folder.

8.) After having followed Joel Gould's instructions, start NaturallySpeaking's enrolment/initial training assistant, then choose your own enrolment text from the list, and off you go training NaturallySpeaking with your own specific type of dictation material.

9.) After enrolment and initial training, train Dragon to your document's writing style: Import as many of your own clean Word doc's as possible into one single Word document using Word's "Insert -> File" feature (you can insert dozens of files at once this way!), then save the collection as one large text-only file, and finally use Dragons assistant to train on that single text file. Works great. Do not let NaturallySpeaking train neither on the entire "my documents" folder nor on your emails unless you know exactly what you're doing.

10.) Quit Dragon.

11.) Put the following lines at the end of the soptions.ini (not options.ini) - file in your current NaturallySpeaking user directory:
DwTimeOutIncomplete=120
DwTimeOutComplete=65 (you should try values between 55 and 80 milliseconds and check which fits best)
ComputeSpeed=0

If one or more of these lines should be already present inside soptions.ini, do not add the respective lines again but instead only change the value of the corresponding variables inside the existing line.

12.) Start Dragon.

13.) If at all possible, dictate in "Dictation Mode", not in Standard Mode! (This is one of the single most important tweaks for much better dictation responsiveness of NaturallySpeaking)

14.) Finished. The words will pop up instantly as you dictate with almost 100% accuracy!

This is at least what happened to my Dragon after I cranked it up to the max like it's written above.

(As always, "No Liability Taken", and "Do Not Try this at Home"), but still...

... Enjoy,

David.P

Interesting! Clearly

Interesting! Clearly written. But it raises at least two questions:

1. How did you come by all this information? (Might help us know whether or not we should try your ideas out.)

2. Not a question so much as an admonition: Don't knock Dave Berry, whose scientific reporting immortalized the importance of cow gas for environmental concerns!

Bruce

BruceCyr wrote:Interesting!

BruceCyr wrote:

Interesting! Clearly written.

Thanks. I'm not a native speaker though. Probably my profession enforces clarity.

BruceCyr wrote:

But it raises at least two questions: 1. How did you come by all this information? (Might help us know whether or not we should try your ideas out.)

Well it was of course a lot of trial-and-error, then even more reading all over the place in forums like the English and German Scansoft forum as well as the Knowbrainer forum; and then also some years of experience using NaturallySpeaking on a daily and professional basis for dictating lengthy correspondence being a patent attorney.

Whereas I must say that I absolutely do not use any of NaturallySpeaking's commands (except sometimes "new line" -- which not even is a command but a word with special properties ;¬) because I'm much faster with the mouse, keyboard and shortcuts for moving around in the Windows GUI. The only thing I need NaturallySpeaking to do is to instantly pop on the screen what I just said, with the highest possible accuracy, crispness and response.

And this is exactly what my above tutorial is about.

Here you can find some more bits and pieces of information, as well as some pictures, of my speech input setup.

BruceCyr wrote:

2. Not a question so much as an admonition: Don't knock Dave Berry...

OK. I won't.

Cheers, David.P

Must say you evince an

Must say you evince an ineffable quality that I associate with every patent attorney I know! (The more ostensible quality being at least the potential for high income!)

Well, that empirical background passes muster, so I'll have to try your tweaks.

While most of us here seek to (or have to) minimize use of our hands, and accuracy and responsiveness are thought to be mutually exclusive at their extremes, I think we all appreciate clarification of some of the more arcane, underlying paramters and their interactions.

Bruce

I have already used some of

I have already used some of these techniques, with respect to my vocabulary. That is, I have created a medium-sized vocabulary and added my custom words to it, using GetWords/PutWords, then run voctool on a large load of documents. I think it does help the speed and accuracy, so I endorse these aspects of what you advocate.

I'm skeptical that creating a specialized training file is helpful. I also doubt that it makes any difference whether I create a new user or not.

Finally, for me, giving up macros would definitely be unproductive. I use fairly complex macros to accomplish multistep tasks that would take much longer by mouse and keyboard.

BruceCyr wrote:Must say you

BruceCyr wrote:

Must say you evince an ineffable quality that I associate with every patent attorney I know! (The more ostensible quality being at least the potential for high income!)

Bruce

On second reading, I realize this post is offensive, and I wish to apologize.

I live in a community with a very high attorney/resident ratio, and many of them are not particularly rich relative to the rest of us (although they're not a needy group, as a rule, either).

Still, there is something about the four patent attorneys I know personally which makes them distinct from other attorneys. And two of them appear to be doing a lot better than the hoi polloi hereabouts.

I also know that I know, including you, three patent attorneys online -- and again, there is something different about you folks that's hard to put into words but is distinctive even via email communications.

Part of it is the usual thing we Americans have about attorneys (i.e., aside from being successful, they can argue either side of an issue, whereas an American patriot "knows" there is only one right side to any issue -- namely his or her side), plus the fact that most of you hail from a far more technical background than the typical attorney -- many of the "ordinary" attorneys I know, including my wife, come from social science or other liberal arts backgrounds, while a much higher proportion of patent attorneys might have engineering or science backgrounds, including perhaps an advanced or professional degree.

Anyway, I apologize for an inappropriate and invidious characterization.

Bruce

Chuck Runquist's picture

David, Have you really

David,

Have you really tested the following:

DwTimeOutIncomplete=120
DwTimeOutComplete=65
ComputeSpeed=0

There are 2 problems with these settings.

First of all, the first 2 settings put the pause required before commands slider all the way to the left. This causes commands to fail when attempting to exercise certain types of command and control options. For example, in normal mode with these settings try opening one of the programs on your desktop. In most cases the command will fail. In addition, with these settings you cannot use the spell command without opening the Spell dialog. For example, if you try to say spell followed by dictating the letters, with the appropriate option set in the options dialog, it won't work. There has to be at least a minimal pause when issuing commands. Since you say that you work only in dictation mode, the settings don't have any impact on either dictation or those commands that are available in dictation mode. However, in normal mode the settings can really mess up your command and control.

Second, setting the ComputeSpeed = 0 moves the speed vs. accuracy slider all the way to the left. This gives you more speed, but you sacrifice a significant amount of accuracy by doing so. The optimal setting here is midway between zero and 100 (i.e., starting at 50 and gradually moving it a couple of points until you find the ideal setting for your system). If you have a fast system, such as mine, you can set the ComputerSpeed = 100, which Moussa slider all the way to the right (i.e., accuracy) and never notice any significant difference in display speed. My display speed is virtually instant with this setting. Slower systems need to back off to between 50 & 75.

Having established technical support team's and having done second and third level escalation technical support for the last 20 years, particularly with speech recognition for the last 10, I posted my cautions and recommendations on that basis. Also, having been one of the codevelopers for the DNS SDK, which is what the actual application is based on, most of your recommendations are basically sound, but some are not. The reason for my recommendations in the previous post from me was not in comment or critique on your post. It simply based on 20 years of technical support & development experience.

Chuck Runquist
Former DNS SDK & Senior Technical Solutions PM for DNS with Lernout & Hauspie (L&H)

Chuck Runquist's picture

Try the following

Try the following settings:

DwTimeOutComplete=150
ComputeSpeed=50
DwTimeOutIncomplete=65

This works better if you are using Normal Mode.

Chuck

Ah, thanks Chuck! As a

Ah, thanks Chuck! As a Normal Mode user I didn't realize the implications of his original settings -- I need to be able to use Command and Control. Good thing we talked this out because, as I noted, I didn't understand the implications of the orginal suggestion.

Bruce

Chuck, I appreciate your

Chuck, I appreciate your commitment regarding this thread.

Chuck Runquist wrote:

> "David, Have you really tested the following: DwTimeOutIncomplete=120 DwTimeOutComplete=65 ComputeSpeed=0"

Yes I have.

> "There are 2 problems with these settings. First of all, the first 2 settings put the pause required before commands slider all the way to the left. This causes commands to fail when attempting to exercise certain types of command and control options. For example, in normal mode with these settings try opening one of the programs on your desktop. In most cases the command will fail."

Not with my system and/or speaking speed. Every shortcut or file on my desktop, as well as any other command that I can think of, does work instantly with these settings. As I said, it is important to try different settings especially for DwTimeOutComplete until you find your optimal setting. With DwTimeOutComplete=65 you must talk pretty fast for everything to work, so it's not going to work for slow speakers.

> "Since you say that you work only in dictation mode, the settings don't have any impact on either dictation or those commands that are available in dictation mode."

If I'm getting you right at this point, and if you should be trying to say that the proposed settings - especially the DwTimeOutComplete setting - has no impact on dictation under dictation mode -- then once again unfortunately you are wrong. The claim you seem to make ("in dictation mode there is no such thing as commands, therefore DwTimeOutComplete can have no influence whatsoever") might sound logical from an academic point of view -- but in practice it is just not the case which you can find out for yourself if you try a couple of settings for a few minutes.

> "Having established technical support team's and having done second and third level escalation technical support for the last 20 years, particularly with speech recognition for the last 10, I posted my cautions and recommendations on that basis. Also, having been one of the codevelopers ..."

> "It simply based on 20 years of technical support & development experience"

Well this sounds rather impressive. But still, and even more having heard this about your past experience I feel it's kind of awkward that many of your statements in your initial posting, e.g.

- "it is sufficient to point out that the difference between the settings in "DwTimeOutIncomplete" and "DwTimeOutComplete" represents the time in milliseconds that the user must pause before issuing a command"

- "The original settings for the Pause before commands slider are "DwTimeOutIncomplete"=175 and "DwTimeOutComplete"=160. This represents a 15 ms pause time"

- "The claim made by the author of this post is erroneous because the settings which he uses lengthens the pause time required."

- "Since Dragon NaturallySpeaking® runs entirely in RAM"

- "using no pagefile does not improve performance"

- "one very common result [of not having a swapfile] is that your system becomes unbootable, necessitating a complete reinstall Windows"

... were definitely wrong if not - sorry that I have to say that - pretty much baloney. Please don't get me wrong - I do have great respect what you have been and what you are doing for the product and for the user community. But if you mostly repeat the 'decades of experience' that you have, and at the same time give numerous information that - sorry again - simply is incorrect, I just can not leave that uncommented.

> "The reason for my recommendations in the previous post from me was not in comment or critique on your post."

Maybe it was not the reason or your intention -- but unfortunately the contents of your initial posting onto my writing in the ScanSoft forum (which you oddly had anonymized, not linked to, and only cited fragmentarily) were mostly 1) criticism and 2) the claim that nothing of it would work.

> "Try the following settings:
DwTimeOutComplete=150
ComputeSpeed=50
DwTimeOutIncomplete=65
This works better if you are using Normal Mode."

This is indeed a good starting point for the novice user of the discussed tweak.

My suggestion for somewhat more crisp and at the same time somewhat more stable setting:

DwTimeOutComplete=120
ComputeSpeed=20
DwTimeOutIncomplete=75

@ Bruce:

> "Must say you evince an ineffable quality..."

Sorry Bruce, but the marvellous cadences of your prose (or was it lyrics? irony?) inside your poetical response up there just is too difficult for me to understand as a non-native speaker. I simply don't get it. No kidding.

If, however, what you were trying (not) to say should have been that every single patent attorney you know is a rich asshole, I eventually could be able to see your point ;o)

But of course, attendees are exempted from that rule. And since I'm of course a very nice and polite guy with a lovely (or was it rich?Eye-wink) wife and three exceedingly enchanting kids --- thou certainly havest not to fear ;D

Cheers, Goodnite, David.P

PS: Remember, the tweaks described above are pretty much unique and radical in some sense - they might work for the very experienced and/or specialized user only, and no one is forced to change their running systems. When railroad was invented, carriage makers claimed that it definitely will not work because the steel rims would melt as soon as you would go faster than 20 mph...

As rewarding as this thread

As rewarding as this thread has been, I think we've exhausted the factual material and are well into rhetorical realms. For example, most hands-off users will take offence at being characterized as "novices", and I could go on but why bother since we can predict with quadratic rigor the poetical and psychological curve the dialogue will take.

Bruce

Chuck Runquist's picture

Agreed. I've posted my 2

Agreed. I've posted my 2 cents.

Chuck

Oops, David Peters

Oops,

David Peters wrote:

My suggestion for somewhat more crisp and at the same time somewhat more stable settings:

DwTimeOutComplete=120
ComputeSpeed=20
DwTimeOutIncomplete=75

In the above DwTimeOutComplete and DwTimeOutIncomplete have been erroneously interchanged.

Instead, the suggested settings must read as follows (important):

DwTimeOutIncomplete=120
ComputeSpeed=20
DwTimeOutComplete=75

[The seetings proposed in the tutorial further up the thread are correct though.] 

@ Bruce:

I go along with you, well said, and I appreciate that you "could go on with quadratic rigor", but that you don't. Just one comment from my side since obviously you feel offended being apparently qualified as "novice". Please excuse if I as a non-native speaker of English sometimes get my vocabulary not exactly 100% optimal. However, what I did say I really think was "the novice user of the discussed tweak" -- and I feel that indeed everyone qualifies like so, in other words as "first time user of the discussed tweak" -- since no one really ever has done this before, at least seemingly no person present in this thread.

I also appreciate that you qualify this thread as rewarding, 

thanks again everyone,

David.P

Quote:There are 2 problems

Quote:

There are 2 problems with these settings.

First of all, the first 2 settings put the pause required before commands slider all the way to the left. This causes commands to fail when attempting to exercise certain types of command and control options.

Now, this interests me. Is there some setting that will prevent Dragon from using commands. I don't use any commands in my work. Even though I use dictation mode, there are still some commands that pop up, which causes some problems for me.

Also, is there anyway to set Dragon so that it always runs in dictation mode. Sometimes when I am dictating it will switch to spell or numbers mode.

zumando wrote:Is there some

zumando wrote:

Is there some setting that will prevent Dragon from using commands. Also, is there anyway to set Dragon so that it always runs in dictation mode. Sometimes when I am dictating it will switch to spell or numbers mode.

The same happens to me at times. However, up to now I have not heard of any way to prevent this. If it happens with my Dragon like maybe once a day, I just have gotten used to manually switch back to dictation mode.

David.P

I was just going to bring

I was just going to bring the above information up to date for NaturallySpeaking Version 9 -- since there have been changes in v9 that potentially could lead to problems for users of the described settings.

If you should be inclined to employ the above tweaks, it is important not to set the value for DwTimeOutComplete lower than 80 milliseconds because NaturallySpeaking v9 will come up with an error and refuse to start.

I am however using the following values at present:

DwTimeOutIncomplete=120
DwTimeOutComplete=80
ComputeSpeed=0

without any problems and great recognition speed.

David.P

Chuck Runquist's picture

David.P wrote: I was just

David.P wrote:

I was just going to bring the above information up to date for NaturallySpeaking Version 9 -- since there have been changes in v9 that potentially could lead to problems for users of the described settings.

If you should be inclined to employ the above tweaks, it is important not to set the value for DwTimeOutComplete lower than 80 milliseconds because NaturallySpeaking v9 will come up with an error and refuse to start.

I am however using the following values at present:

DwTimeOutIncomplete=120
DwTimeOutComplete=80
ComputeSpeed=0

without any problems and great recognition speed.

David.P

David,

Apparently people don't listen or read.

DwTimeOutIncomplete=120
DwTimeOutComplete=80

Effect the pause slide bar in the DNS Options | Commands tab. In this case, my settings (DNS 9.5) are as follows:

DwTimeOutIncomplete=160
DwTimeOutComplete=175

What you have done is essentially set the "Pause required before commands" to the minimum .1 second, which essentially sets the pause to the absolute minimum. Therefore, you may get somewhat better responses to commands without having to pause virtually at all. However, you will find that these settings will cause you problems somewhere along the line. My settings put the slider just below the first tic on this slide bar. These are the minimum optimal settings for pausing before commands are recognized. In addition, these settings have absolutely no impact on speed.

The Speed Vs. Accuracy slider is controlled by the command line:

ComputeSpeed=0

However, while you will get great speed, this puts the Speed Vs. Accuracy slider all the way to the left (i.e., Speed), which means you has chosen the maximum amount of speed over accuracy.

On my Core2 Quad my setting is:

ComputeSpeed=100

This means that my Speed Vs. Accuracy slider is set all the way to the right (Accuracy).

In short, you get speed at the sacrifice of accuracy. The best setting on slower machines is somewhere between 25 and 50. Faster machines, particularly the Core2 Duo's, get optimal speed vs. accuracy with a setting somewhere between 50 and 100.

In addition, if you change these settings in the soptions.ini while DNS is open, they have no effect. Also, DNS 9/9.5 has a record of your computer speed which it detected during install. If the settings that you have changed in this regard are detected as non-optimal, DNS will reset these settings to the default.

Bottom line is, it is not necessary to make any adjustments to these command lines in the soptions.ini file. You can do the same thing much easier in the DNS Options dialog, Miscellaneous & Commands tabs. In essence, making these types of changes manually doesn't make a whole lot of sense.

Chuck Runquist
Former Dragon NaturallySpeaking SDK & Senior Technical Solutions PM for DNS

It is not so much my confidence that scientists will get it right as it is my confidence that nonscientists will get it wrong. Isaac Asimov

To which I add my own version, "I am not so confident that technically oriented people will get it right as it is my confidence that non-technically oriented people will get it wrong."

Chuck, Chuck Runquist

Chuck,

Chuck Runquist wrote:

What you have done is essentially set the "Pause required before commands" to the minimum .1 second

This is not correct. What I have done is in fact set the "Pause required before commands" below the official minimum of .1 second, namely at 0.08 seconds.

Chuck Runquist wrote:

Therefore, you may get somewhat better responses to commands without having to pause virtually at all.

That is only a side effect. Actually, what you get is faster dictation response in general and by no means only regarding commands. This is because "DwTimeOutComplete" determines the time Dragon waits until it regards your utterance as completed and therefore throws it on the screen -- or executes the command, if it was a command.

Chuck Runquist wrote:

However, you will find that these settings will cause you problems somewhere along the line.

No problems at all on a couple of different machines, slow and fast, Core2Duo and Pentium, since 2005. However, as has been said, not practical for slow speakers, because Dragon in this case doesn't wait long enough until you're finished and may break up utterances or even words.

Chuck Runquist wrote:

However, while you will get great speed, this puts the Speed Vs. Accuracy slider all the way to the left (i.e., Speed), which means you has chosen the maximum amount of speed over accuracy.

On my Core2 Quad my setting is:

ComputeSpeed=100

This means that my Speed Vs. Accuracy slider is set all the way to the right (Accuracy).

Personally, I don't have a problem with accuracy AT ALL, even with the Speed vs. Accuracy slider all to the left. There is absolutely no sacrifice of accuracy for me - sometimes it's even as if accuracy diminishes the more I move the slider to the right since it seems NaturallySpeaking is trying to figure out all kinds of things I might else have said when the first guess already would have been right.

As I keep repeating, I need the words pop on the screen instantly because I'm of the visual type. It might well be different in your case. Then feel free not to use these tweaks. All I was gonna say was if people are actually using these settings they should take care not to use values below 80 milliseconds because Dragon 9 will crash (while version 8 will happily run with any arbitrary value).

With the settings I'm using, usually I get my utterance showing up on the screen after about 0.1 seconds (this is an estimation since the delay is almost not perceptible.)

Chuck Runquist wrote:

Also, DNS 9/9.5 has a record of your computer speed which it detected during install. If the settings that you have changed in this regard are detected as non-optimal, DNS will reset these settings to the default.

There is no such thing as NaturallySpeaking changing the positions of the two sliders on its own liking. This actually looks like practising a (second) favorite saying of yours again, you know, the one of JV Stewart... *sbcnr*

Chuck Runquist wrote:

Bottom line is, it is not necessary to make any adjustments to these command lines in the soptions.ini file. You can do the same thing much easier in the DNS Options dialog, Miscellaneous & Commands tabs.

This is also incorrect. First, there is no slider at all for changing the setting of "DwTimeOutIncomplete". Second, you can't change the value for "DwTimeOutComplete" below 0.1 seconds using the respective "Pause before commands" slider.

David.P

Chuck Runquist's picture

David, I see your point(s).

David,

I see your point(s). However, since I wrote the technical specifications for the SDK, and the SDK is what's used to create DNS itself, these settings probably work well for you. It is highly unlikely that they will work well for most users.

Nevertheless, if it works feel fine. I have no problem with that. I get instantaneous display of text and virtually 100% accuracy without changing those settings that I have. I can also dictate at 160 words a minute and still get no worse than 99.9% accuracy with the text displaying on my screen as soon as I pause (no delay).

I simply state that if you're going to modify these settings and post such on the forum, just remember that most of the users that are reading this form are taking whatever we say as gospel. Therefore, these kinds of posts should come with disclaimers. "Please don't try this at home." Eye-wink

BTW, if you're MSCE and A+ certified, and you've been a programmer for Dragon NaturallySpeaking, then I accept your critique. I'll leave it at that.

Chuck Runquist
Former Dragon NaturallySpeaking SDK & Senior Technical Solutions PM for DNS

As scarce as truth is, the supply has always been in excess of the demand. - Josh Billings (1818-1885)

Quote: It is highly

Quote:

It is highly unlikely that they will work well for most users.

Right Chuck, but 'most' users (I'd suppose 99,5% of all users) of the Dragon might not even be here with us.

Quote:

I simply state that if you're going to modify these settings and post such on the forum, just remember that most of the users that are reading this form are taking whatever we say as gospel. Therefore, these kinds of posts should come with disclaimers. "Please don't try this at home." ;-)

Since the settings are entirely "nondestructive", there really is no danger associated at all. However, we have discussed the 'disclaimer' topic already at length above, and your proposed disclaimer is there already since last year, so... Eye-wink

Quote:

BTW, if you're MSCE and A+ certified, and you've been a programmer for Dragon NaturallySpeaking, then I accept your critique.

That's great, however certificates have never wowed me that much - It's more that I'm doomed to seek for truth beyond received opinion Eye-wink... and therefore let me remind that it was more like you had the role of the critic whereas I actually was merely proposing; and could not do other than put a few facts straight, right...

David.P

Hi, interesting

Hi, interesting discussion.

I'm using Dragon SDK 9.5 in our software.
I just started today looking at those configuration parameters and when I changed them as you stated, I started having problems.

In particular, each time I start the user with new parameters, I get an error message about the fact that user's profile is not calibrated.
Do you have any idea about?

I'm using Dragon SDK Version=9.51.200.230.

I configured parameters in soptions.ini as follow:

DwTimeOutIncomplete=120
DwTimeOutComplete=80
ComputeSpeed=0

Thanks for any suggestion.
Paolo.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.




view recent posts