Discussion:
requst for easy to implement spell checker
(too old to reply)
Andy Burnelli
2022-02-06 07:06:18 UTC
Permalink
It has to be easy or I won't do it.
=> imbue (embue)

It's something others can benefit from if we come up with a good solution.
=> (programmatically) programatically

I have a spelling problem.
=> paraplegic (parapalegic)

Mostly because I spell as I "think" words sound to me.
=> (pliers) pliars

Whenever I get red squiggled I copy & paste the word into a spell.txt file.
=> semblance (semblence)

Which I bring up with a keyboard shortcut.
=> (symmetric) symetric

It has to be easy or it doesn't get done!
=> credularity & (credulity)

I used to put the wrong spelling in the spell.txt file next to the right
spelling, like this.
=> eminantly eminently

But that often reinforced the wrong spelling in my visually based brain.
("Is it an e or an i in discretion or is it descretion?")

At some point over the years I added parenthesis around one choice
=> egregious (eggregious)

As most of my spelling errors are actually pronunciation errors, in that I
tend to spell the word as I hear the word when it's spoken to me or by me.
=> (masquerating) masquerading

Lately I've decided to put just the correct spelling in the file.
=> exhilarating

But then now when I check it ever few months to practice, I only see the
correct spelling and my brain doesn't have to think.
=> eminantly eminently

I don't use text to speech but I know it exists.
It probably exists in hundreds of ways.

What's an EASY way to feed a spell.txt file to Windows speech to text where
the spoken words can be displayed so that I can see them and hear them?

I guess what I would like is a physical use model of running the batch
program which feeds spell.txt line by line to a speaking program and I have
to hit a key (or wait a period of time of a few seconds?) for the next word?

Small sample spell.txt file in the sig.
--
abscissa
methodically
annihilate
anomaly
appalled
bureaucracy
colloquial
commingled
concomitant
credulity
debuted
deficit
disastrous
discretion
disparage
duplicitous
duplicitous
echelon
egregious
eminently
euphemism
euphemistically
exhilarating
foresee
foreseeable
frivolity
gynecologist
hors d'oeuvres
imbue
immaculate
immiscible
lectern
lieu
masquerading
matriarchal
mayonnaise
medieval
paraplegic
phenomenal
phenomenally
pliers
preceded
programmatically
proletariat
semblance
shish kebab
symmetric
ubiquitous
vicious vs. viscous
Herbert Kleebauer
2022-02-06 14:21:45 UTC
Permalink
Post by Andy Burnelli
I guess what I would like is a physical use model of running the batch
program which feeds spell.txt line by line to a speaking program and I have
to hit a key (or wait a period of time of a few seconds?) for the next word?
Small sample spell.txt file in the sig.
abscissa
methodically
annihilate
anomaly
appalled
bureaucracy
Press <WIN>>CTRL><RETURN> and then start this batch program:

@echo off
for /f %%i in (spell.txt) do (
echo %%i
timeout /t 4 >nul)


Instead of starting narrator.exe by the above hotkey it
should be possible to start it in the batch by:

%windir%\system32\narrator.exe

But this doesn't work here. I just get "file not found".
Windows Explorer shows the file at this location and
you can start it, but 'dir' in a cmd file doesn't
show it, so it also can't be started from the batch.
Seems to be an other fake from explorer.
Herbert Kleebauer
2022-02-06 20:21:56 UTC
Permalink
Post by Herbert Kleebauer
%windir%\system32\narrator.exe
But this doesn't work here. I just get "file not found".
Windows Explorer shows the file at this location and
you can start it, but 'dir' in a cmd file doesn't
show it, so it also can't be started from the batch.
Seems to be an other fake from explorer.
This should work if you start the batch with a double click
in explorer or by it's name in a pure cmd window. It doesn't
work if in the cmd window a file manager like Midnight Commander
is running (don't know why).


@echo off
if [%1]==[] goto :l1
for /f %%i in (spell.txt) do (
echo %%i
timeout /t 4 >nul)
exit

:l1
start /min %windir%\system32\narrator.exe
timeout /t 4 >nul
start "" "%~f0" xxx
exit
Herbert Kleebauer
2022-02-07 16:34:30 UTC
Permalink
Post by Herbert Kleebauer
It doesn't
work if in the cmd window a file manager like Midnight Commander
is running (don't know why).
The problem is using a 32 bit cmd.exe in 64 bit Windows. The
code below should work with either the 32 or 64 bit cmd.exe
in Win64:


@echo off
if [%1]==[] goto :l1
for /f %%i in (spell.txt) do (
echo %%i
timeout /t 4 >nul)
exit

:l1
set p=
if exist %windir%\SysNative\cmd.exe set p=%windir%\SysNative\cmd.exe /c start ""
start "" %p% /min %windir%\system32\narrator.exe
timeout /t 4 >nul
start "" "%~f0" xxx
exit
JJ
2022-02-06 16:17:51 UTC
Permalink
On Sun, 6 Feb 2022 07:06:18 -0000 (UTC), Andy Burnelli wrote:
[snip]
Post by Andy Burnelli
I don't use text to speech but I know it exists.
It probably exists in hundreds of ways.
What's an EASY way to feed a spell.txt file to Windows speech to text where
the spoken words can be displayed so that I can see them and hear them?
I guess what I would like is a physical use model of running the batch
program which feeds spell.txt line by line to a speaking program and I have
to hit a key (or wait a period of time of a few seconds?) for the next word?
Small sample spell.txt file in the sig.
Windows doesn't provide any built in command line tool specifically for TTS.
The simplest way to access TTS is to use Windows Script Host's
VBScript/JScript. i.e. create your own script for it.
Andy Burnelli
2022-02-09 01:57:59 UTC
Permalink
http://balabolka.site/balabolka.htm
Thank you for purposefully helpfully (a) confirming this simple & yet
universal task isn't easy to find freeware for, & (b) for suggesting the
Balabolka tool & for (c) outlining the expectations (as to be not so great).

Here is a screenshot I just made as a result of your kind-hearted help:
<Loading Image...>

Balabolka v2.15.0.811 <http://balabolka.site/balabolka.htm>
"Balabolka is a Text-To-Speech (TTS) program.
All computer voices installed on your system are available to Balabolka.
The on-screen text can be saved as an audio file.
The program can read the clipboard content, extract text from documents,
customize font and background colour, control reading from the system tray
or by the global hotkeys.
Balabolka supports text file formats: AZW, AZW3, CHM, DjVu, DOC, DOCX,
EML, EPUB, FB2, FB3, HTML, LIT, MD, MOBI, ODP, ODS, ODT, PDB, PRC,
PDF, PPT, PPTX, RTF, TCR, WPD, XLS, XLSX."

Here is my running log file (your locations will be different):
Create a space for where it will belong (this is decided ahead of time)
mkdir c:\archives\databases\tts\balabolka\
Download the installer zip file and put it where it belongs
<http://www.cross-plus-a.com/balabolka.zip>
Name: balabolka.zip
Size: 22728202 bytes (21 MiB)
SHA256: 32BD365110F6C275CC1C06E625A6272FD88FA98B4849D8B7B24DAA5C52A6B803
Extract the zip file into the default c:\tmp\extract\ directory
Name: setup.exe
Size: 22960006 bytes (21 MiB)
SHA256: 010F2BF7C59B515FA1B9C6ADD68FF76F5B237F70D14B0C735B09985E788DDAFD
Run the setup.exe file (on Windows 10)
Select English => Next
Copyright stuff => Next
It wants to go in => C:\Program Files (x86)\Balabolka
I put it where it belongs in => C:\apps\databases\tts\balabolka
[x] Create a Desktop icon
[_] Pin to taskbar
Next
[_]Launch Balabolka now => Finish

Move the desktop icon to where it belongs in the taskbar pinned menu:
move Balabolka.lnk c:\menus\databases\tts\balbolka.lnk
Start Balabolka using the cascaded taskbar WinXP style accordion menu.

Up popped the Balabolka GUI with a choice of two speaking voices
[SAPI 5]
Microsoft David Desktop [(English United States)] <= default
Microsoft Zira Desktop [(English United States)]
Rate slider default is 0 (choices are -10 to +10)
Pitch slider default is 0 (choices are -10 to +10)
Volume slider default is 100 (choices are 0 to 100)

Leaving everything at the defaults, I open the spell.txt file.
Balabolka:File > Open > c:\data\databases\tts\balbolka\spell.txt
Balabolka:Speech > Read Aloud

This will say each line aloud using the default Microsoft voice
modified by Balabolka rate, pitch, and volume settings.

Note there are keyboard shortcuts for potentially useful options such as
F5 = read aloud
F6 = Pause
F7 = Stop
F8 = Read Selected Text
F9 = Read Clipboard Aloud
Ctrl+Up = Skip to Previous Sentence
Ctrl+Down = Skip to Next Sentence
Ctrl+F11 = Skip to Previous Paragraph
Ctrl+F12 = Skip to Next Paragraph

An interesting unexpected option is to save the entire file as a WAV file.
Balabolka:File > Save Audio File >
c:\data\databases\tts\balbolka\spell.wav
With options of {wav,mp3,ogg,wma,mp4,m4a,m4b,opus,awb} audio file format.

Bearing in mind that if it's not easy and instantaneous, it won't get done,
this is the "efficient" setup for the use model that I came up with.

Outside of Balabolka I type the following to bring up spell.txt in vim:
Win+R > spell <return> (this edits the spell.txt file in vim)
Unfortunately I have to _manually_ (aurgh!) populate the spell.txt file
whenever the Windows 10 spell checker red squiggles a misspelled word.
Outside of Balabolka, I type the following to bring up spell.wav in MPC-BE:
Win+R > sayit <return> (this _speaks_ the spell.wav file from Balabolka)
Luckily a spacebar stops and restarts the speaking of that audio file.

Note the "Run" trick works in all versions of Windows if you set this up:
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\spell.exe
@Default = c:\data\databases\tts\balbolka\spell.txt
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\sayit.exe
@Default = c:\data\databases\tts\balbolka\spell.wav
Note: Use any name you like for the "exe" which is just any old keyword
(but I'd first check that the "exe" keyword isn't already in use).

Given that efficiency is critical (otherwise it won't be done), this
processs still needs an automated way to automatically populate the
spell.txt file each time a redsquiggled word is found by the Windows spell
checking facility - so if you know how to do that, please let me know.

Otherwise, this is the current universal use model (where I'm always about
creating use models using freeware that _everyone_ can use instantly).

AD HOC:
A. Whenever a misspelled word is redsquiggled, I rightclick copy it
B. I click the "Win+R" icon on my taskbar & type spell{return}
C. I paste that word into the vim editing window that pops up
D. Back on the redsquiggled word, I rightclick correct it
E. And copy it back to the previously opened spell.txt file & save

PERIODICALLY:
a. When enough words are amassed (about 50), I type Win+R > sayit{return}
b. That speaks each word slowly (spacebar to continue) as I write it down
c. I can visually compare the spelling with Win+R > spell{return}
(or see the improvement I just made in a verbal re-spelling by letters!)

IMPROVEMENTS:
A. I think _all_ of us would benefit from automation of the redsquiggled
words we each misspell by logging all redsquiggled corrections
into a text file (which will contain just the words _we_ get wrong).

B. It would be nice to be able to insert a "pause" in the speech so that
we can then more easily add the individual letters separated by spaces.
Is there a way to insert a "pause" in the Microsoft speech engines?
(pliars) pliers P L I E R S

HELP: Is there a way to insert a "pause" between those letters?
(pliars) pliers <pause> P <pause> L <pause> I <pause> E <pause> R <pause> S

Since my goal is always a general purpose solution everyone can use, I hope
others can easily follow in my footsteps above to get to the same point I
am, where I hope others who know far more than I do about such things can
further improve upon the efficiency (where the biggest flaw is the lack of
automation at the moment the incorrectly spelled word is redsquiggled).

Most important missing requirements:
a. Ability to log all redsquiggled corrections into a log file
b. Ability to add a pause between letters when speaking the spelling

See also eSpeak from Microsoft.
<https://sourceforge.net/projects/espeak/>

Sample spell.txt file in sig below.
--
(Afgan) Afghani Afghan
(absissa) abscissa
(accomodations) accommodations
(anamoly) anomaly
(anialate) annihilate
(apalled) appalled
(assesments) assessments
(bureuoracy) bureaucracy
(clientel) clientele
(coloquial) colloquial
(comingled) commingled
(concomitant) concomittent
(credularity) credulity
(debaud) debuted
(descretion) discretion
(desparage) disparage
(disaterous) disastrous
(duplicitious) duplicitous
(eggregious) egregious
(eminantly) eminently
(eshelon) echelon
(extoll) extol
(forsee) foresee
(forseeable) foreseeable
(horsdovers) hors d'oeuvres
(embue) imbue
(imiscible) immiscible
(inhereted) inherited
(masquerating) masquerading
(mayonaise) mayonnaise
(medevil) medieval
(methodocally) methodically
(parapalegic) paraplegic
(phenominal) phenomenal
(pliars) pliers
(preseeded) preceded
(programatically) programmatically
(semblence) semblance
(shishkebab) shish kebab
(symetric) symmetric
(tradegy) tragedy
(ubiquitious) ubiquitous
(vicious) viscous
Andy Burnelli
2022-02-09 02:13:32 UTC
Permalink
You might also like to check out "espeak"
Nice! Thanks! The good news is that it's apparently from Microsoft.
Here's the first pass test result!

Your file locations will differ from mine:
1. mkdir c:\archives\databases\tts\espeak
2. <https://sourceforge.net/projects/espeak/>
<http://espeak.sourceforge.net/download.html>
3. <https://sourceforge.net/projects/espeak/files/latest/download>
4. <https://iweb.dl.sourceforge.net/project/espeak/espeak/espeak-1.48/setup_espeak-1.48.04.exe>
5. Location: c:\archives\databases\tts\espeak\setup_espeak-1.48.04.exe
Name: setup_espeak-1.48.04.exe
Size: 2610503 bytes (2549 KiB)
SHA256: 875A2AE7634420B8653B70F7F555179FB4CE5746BBB5C2557BBE58F72439C58F
6. It wants to go into [C:\Program Files (x86)\eSpeak]
I put it where it belongs [c:\apps\databases\tts\espeak]
7. Enter voice names === en en+f2, en-us <== this is the default
Next
8. Select the Start Menu folder to put the espeak shortcut
I put it where it belongs [c:\menus\databases\tts\espeak.lnk]
Otherwise it will end up as:
Menu: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\eSpeak\
Shortcut: TTSApp.lnk
Target: c:\apps\databases\tts\espeak\TTSApp.exe
9. [x]View Readme > Finish <== the readme is in the sig
10. Taskbar >> menus >> databases >> tts >> espeak.lnk
11. Espeak: Options > Open File > c:\data\databases\tts\spell.txt
12. Espeak: Options > Speak

The spacebar, much to my surprise, didn't pause, but repeated.
There is a "Pause/Resume" & "Stop" button in the GUI though.
As with Balabolka v2.15.0.811, there is a "Save to wav" button.
As before with MPC-CE, typing "Win+R > sayit" will play the file.
As long as you perform a one-time setup of that "sayit" keyword:
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\sayit.exe
@Default = c:\data\databases\tts\spell.wav
As before, the keyboard space key will pause MPC-CE playing.

As before, one way to hear the correct spelling is to add characters:
(pliars) pliers P L I E R S
Or, better yet, if Microsoft has the concept of a <pause> operation:
(pliars) pliers P <pause> L <pause> I <pause> E <pause> R <pause> S

Thank you for finding this wonderful app, which rivals Balabolka.
<http://balabolka.site/balabolka.htm>

This is such a universal need that it would be nice to find:
a. A way to log all redsquiggled corrections into a separate file
b. A way to pause between speaking of characters for the corrections

Note: eSpeak.readme and sample spell.txt in the sig.
--
eSpeak is a compact, multi-language, open source
text-to-speech synthesizer.

This version is a SAPI5 compatible Windows speech engine
which should work with screen readers such as Jaws,
NVDA, and Window-Eyes.

There is also a version of eSpeak which can be run as a
command-line program. This is in eSpeak\command-line.
Read docs\commands.html for details.

License
=======

This software is licensed under the GNU General Public License
version3. See the file: License.txt.


Voices and Languages
====================

The available Voices can be seen as files in the directory
espeak-edit/voices.

To change which eSpeak Voices are available through
Windows, re-run the installer and specify the Voice files
which you want to use.

The tone of a Voice can be modified by adding a variant
name after the Voice name, eg:
pt+f3

The available variants are:
Male: +m1 +m2 +m3 +m4 +m5 +m6 +m7
Female: +f1 +f2 +f3 +f4 +f5
Other effects: +croak +whisper
A different synthesizer method: klatt klatt2 klatt3

These variants are defined by text files in
espeak-edit/voices/!v


TTSApp Application
==================

This is a test program provided by Microsoft which can be
used to speak text using SAPI5 voices. The eSpeak voices
which were specified during installation should appear in
its voice menu.

Select its "22050Hz 16-bit mono" option for speaking.


Updates
=======

The eSpeak project homepage is at:
http://espeak.sourceforge.net/

Comments, corrections, and other feedback and assistance
is sought from native speakers of the various languages
because I've no idea how they are supposed to sound :-)

To make changes to pronunciation rules and exceptions,
or to change the sounds of phonemes, or just to experiment
with speech synthesis, download the "espeakedit" program.

--- sample spell.txt ---
(Afgan) Afghani Afghan ... a f g h a i i
(absissa) abscissa ... a b s c i s s a
(accomodations) accommodations ... a c c o m m o d a t i o n s
(anamoly) anomaly ... a n o m a l y
(anialate) annihilate ... a n n i h i l a t e
(apalled) appalled ... a p p a l l e d
(assesments) assessments ... a s s e s s m e n t s
(bureuoracy) bureaucracy ... b u r e a u c r a c y
(clientel) clientele ... c l i e n t e l e
(coloquial) colloquial ... c o l l o q u i a l
(comingled) commingled ... c o m m i n g l e d
(concomitant) concomittent ... c o n c o m i t t e n t
(credularity) credulity ... c r e d u l i t y
(debaud) debuted ... d e b u t e d
(descretion) discretion ... d i s c r e t i o n
(desparage) disparage ... d i s p a r a g e
(disaterous) disastrous ... d i s a s t r o u s
(duplicitious) duplicitous ... d u p l i c i t o u s
(eggregious) egregious ... e g r e g i o u s
(eminantly) eminently ... e m i n e n t l y
(eshelon) echelon ... e c h e l o n
(extoll) extol ... e x t o l
(forsee) foresee ... f o r e s e e
(forseeable) foreseeable ... f o r e s e e a b l e
(horsdovers) hors d'oeuvres ... h o r s d ' o e u v r e s
(embue) imbue ... i m b u e
(imiscible) immiscible ... i m m i s c i b l e
(inhereted) inherited ... i n h e r i t e d
(masquerating) masquerading ... m a s q u e r a d i n g
(mayonaise) mayonnaise ... m a y o n n a i s e
(medevil) medieval ... m e d i e v a l
(methodocally) methodically ... m e t h o d i c a l l y
(parapalegic) paraplegic ... p a r a p l e g i c
(phenominal) phenomenal ... p h e n o m e n a l
(pliars) pliers ... p l i e r s
(preseeded) preceded ... p r e c e d e d
(programatically) programmatically ... p r o g r a m m a t i c a l l y
(semblence) semblance ... s e m b l a n c e
(shishkebab) shish kebab ... s h i s h k e b a b
(symetric) symmetric ... s y m m e t r i c
(tradegy) tragedy ... t r a g e d y
(ubiquitious) ubiquitous ... u b i q u i t o u s
(vicious) viscous ... v i s c o u s or v i c i o u s
Kerr-Mudd, John
2022-02-09 10:40:23 UTC
Permalink
On Wed, 9 Feb 2022 02:13:32 -0000 (UTC)
Post by Andy Burnelli
You might also like to check out "espeak"
Nice! Thanks! The good news is that it's apparently from Microsoft.
Not the way I read it:
<CnP>
History. Originally known as speak and originally written for Acorn/RISC_OS computers starting in 1995
</CnP>

[snip]
Post by Andy Burnelli
(pliars) pliers ... p l i e r s
(preseeded) preceded ... p r e c e d e d
better!

[snip]
--
Bah, and indeed Humbug.
Andy Burnelli
2022-02-09 18:59:49 UTC
Permalink
Post by Kerr-Mudd, John
History. Originally known as speak and originally written
for Acorn/RISC_OS computers starting in 1995
Thank you for the clarification that _espeak_ is not originally from M$.
Plus, it works on Linux and Android and other non M$ operating systems.

Like you, I'm always purposefully helpful and detailed, as I'm a
kind-hearted person like you are who wants everyone to benefit from every
thread I author (and, like you, I want my post to be easily actionable).

Hence I appreciate your spelling corrections and order corrections also.
Thank you for your integrity (which is a rarity on Usenet, as you know).

I see from this reference the origination quote you kindly supplied above.
<http://espeak.sourceforge.net/>

My confusion is, I think, caused by a few things (explained below), not the
least of which is that the installation says [C:\Program Files (x86)\eSpeak]
but the actual application that we run is different [TTSApp.exe].

The difference being, I think, whatever the difference is between:
a. Espeak
b. TTSApp

Note that the downloaded archived installer was automatically named:
c:\archives\databases\tts\espeak\setup_espeak-1.48.04.exe

Yet, when installed, it created a shortcut to an executable GUI named:
c:\apps\databases\tts\espeak\TTSApp.exe

Where the README that pops up mentioned "provided by Microsoft" early on:
TTSApp Application
This is a test program provided by Microsoft
which can be used to speak text using SAPI5 voices.

And the "About" button on that TTSApp GUI clearly says Microsoft too:
"TTSApp (c) 2001 Microsoft Corporation. All rights reserved.

So I openly admit I was led astray, and therefore I was wrong.
Thank you for correcting my incorrect assumption espeak is from M$.
It's not.

Mea culpa.
I apologize.

Given the data above, combined with your clarification, is this correct yet?
a. I assume that the underlying speech engine is "espeak", while
b. I assume that the overlying graphical interface is "TTSApp" (I think).

Does that assessment make this a correct clarifying assumption on my part?
A. Microsoft made the overarching GUI
B. But the underlying engine is not from Microsoft

And, while we're at it, there was at least one typo in the spell.txt
(Afgan) Afghani Afghan ... a f g h a n i ... a f g h a n
(consice) concise ... c o n c i s e

And, for Balabaloka, I got the paths slightly wrong; they should have been:
ARCHIVE: c:\archives\databases\tts\balabolka\balabolka.zip
INSTALL: c:\apps\databases\tts\balabolka\balabolka.exe
TASKBAR: c:\menus\databases\tts\balabolka.lnk

Same with Espeak/TTSApp (which goes by two different names, unfortunately).
ARCHIVE: c:\archives\databases\tts\espeak\setup_espeak-1.48.04.exe
INSTALL: c:\apps\databases\tts\espeak\TTSApp.exe
TASKBAR: c:\menus\databases\tts\TTSApp.lnk

Note the actual names aren't important but the organizational concept is.
<Loading Image...> Android organization
<Loading Image...> Windows organization
--
Note I never use plurals in filespecs but I put them here for readability.
Kerr-Mudd, John
2022-02-09 19:37:06 UTC
Permalink
On Wed, 9 Feb 2022 18:59:49 -0000 (UTC)
Post by Andy Burnelli
Post by Kerr-Mudd, John
History. Originally known as speak and originally written
for Acorn/RISC_OS computers starting in 1995
Thank you for the clarification that _espeak_ is not originally from M$.
Plus, it works on Linux and Android and other non M$ operating systems.
Like you, I'm always purposefully helpful and detailed, as I'm a
kind-hearted person like you are who wants everyone to benefit from every
thread I author (and, like you, I want my post to be easily actionable).
Hence I appreciate your spelling corrections and order corrections also.
Thank you for your integrity (which is a rarity on Usenet, as you know).
And thankyou, kind sir!
Post by Andy Burnelli
I see from this reference the origination quote you kindly supplied above.
<http://espeak.sourceforge.net/>
Yes, sorry, I should have mentioned that.
Post by Andy Burnelli
My confusion is, I think, caused by a few things (explained below), not the
least of which is that the installation says [C:\Program Files (x86)\eSpeak]
but the actual application that we run is different [TTSApp.exe].
a. Espeak
b. TTSApp
c:\archives\databases\tts\espeak\setup_espeak-1.48.04.exe
c:\apps\databases\tts\espeak\TTSApp.exe
TTSApp Application
This is a test program provided by Microsoft
which can be used to speak text using SAPI5 voices.
"TTSApp (c) 2001 Microsoft Corporation. All rights reserved.
So I openly admit I was led astray, and therefore I was wrong.
Thank you for correcting my incorrect assumption espeak is from M$.
It's not.
Mea culpa.
I apologize.
Not necessary; I hadn't installed it, so I hadn't seen this.
Post by Andy Burnelli
Given the data above, combined with your clarification, is this correct yet?
a. I assume that the underlying speech engine is "espeak", while
b. I assume that the overlying graphical interface is "TTSApp" (I think).
Does that assessment make this a correct clarifying assumption on my part?
A. Microsoft made the overarching GUI
B. But the underlying engine is not from Microsoft
I don't know! Sorry.
Post by Andy Burnelli
And, while we're at it, there was at least one typo in the spell.txt
(Afgan) Afghani Afghan ... a f g h a n i ... a f g h a n
(consice) concise ... c o n c i s e
Ah, I hadn't spotted that/those.
Post by Andy Burnelli
ARCHIVE: c:\archives\databases\tts\balabolka\balabolka.zip
INSTALL: c:\apps\databases\tts\balabolka\balabolka.exe
TASKBAR: c:\menus\databases\tts\balabolka.lnk
Same with Espeak/TTSApp (which goes by two different names, unfortunately).
ARCHIVE: c:\archives\databases\tts\espeak\setup_espeak-1.48.04.exe
INSTALL: c:\apps\databases\tts\espeak\TTSApp.exe
TASKBAR: c:\menus\databases\tts\TTSApp.lnk
Note the actual names aren't important but the organizational concept is.
<https://i.postimg.cc/7LmRqXNn/organize01.jpg> Android organization
<https://i.postimg.cc/bN7bp2Bf/organize02.jpg> Windows organization
--
Note I never use plurals in filespecs but I put them here for readability.
--
Bah, and indeed Humbug.
Stan Brown
2022-02-09 20:58:01 UTC
Permalink
I'm following this thread, because I'm interested in the stated
subject, a good spell checker.

But I haven't seen any mention of spell checkers; the thread seems to
be all about text-to-speech. Am I missing something?

BTW, for plain text I use Vim's spell checker. It has a feature that
e.g. Word seems to lack: you can mark a valid word to be flagged as
possibly erroneous. I do this with words that i commonly mistype,
such as "ting" for "thing".
--
Stan Brown, Tehachapi, California, USA https://BrownMath.com/
Shikata ga nai...
Ken Blake
2022-02-09 21:14:56 UTC
Permalink
On Wed, 9 Feb 2022 12:58:01 -0800, Stan Brown
Post by Stan Brown
I'm following this thread, because I'm interested in the stated
subject, a good spell checker.
But I haven't seen any mention of spell checkers; the thread seems to
be all about text-to-speech. Am I missing something?
BTW, for plain text I use Vim's spell checker. It has a feature that
e.g. Word seems to lack: you can mark a valid word to be flagged as
possibly erroneous. I do this with words that i commonly mistype,
such as "ting" for "thing".
It's not a spell checker, but you might want to use the free
AutoHotkey and have it correct words you commonly mistype. It can
automatically change "ting" to "thing" anywhere it finds it.
Stan Brown
2022-02-10 16:11:02 UTC
Permalink
Post by Ken Blake
On Wed, 9 Feb 2022 12:58:01 -0800, Stan Brown
Post by Stan Brown
BTW, for plain text I use Vim's spell checker. It has a feature that
e.g. Word seems to lack: you can mark a valid word to be flagged as
possibly erroneous. I do this with words that i commonly mistype,
such as "ting" for "thing".
It's not a spell checker, but you might want to use the free
AutoHotkey and have it correct words you commonly mistype. It can
automatically change "ting" to "thing" anywhere it finds it.
Great minds think alike. I've done that for years. It's effective
when I'm typing, but not when text comes in from OCR or other means.
--
Stan Brown, Tehachapi, California, USA https://BrownMath.com/
Shikata ga nai...
Andy Burnelli
2022-02-09 23:06:19 UTC
Permalink
Post by Stan Brown
But I haven't seen any mention of spell checkers; the thread seems to
be all about text-to-speech. Am I missing something?
You bring up a good point; I apologize for my inadvertent tactical error.

Given Usenet is a team sport where each purposefully helpful person adds
value for their position, I apologize that I haven't compiled all the help
that was provided, where these are just some representative shots we created
while we were writing up the general purpose tutorial to help everyone.

Given I'm the initiator of the topic, the onus is upon me to respond to all
but the trolls, where I have created for you and for others representative
shots which show each of the four discussed GUIs in further detail.
<https://i.postimg.cc/Pf6k82q2/spell01.jpg> balabolka GUI in use
<Loading Image...> espeak/ttsapp GUI in use
<Loading Image...> gvim spellchecker in use
<Loading Image...> tinyspell settings GUI

Having not prior published those screenshots created for the tutorial,
I also apologize for my hasty typing of the subject line, where it's purely
my fault that there is confusion around spell checking & spell "learning".

Note I don't have screenshots of my extensive tests of Herbert's kind and
very detailed and conscientious help, as I couldn't get it to work yet.
I spent _hours_ on his detailed suggestions, but alas, I'm not a good coder.

The good news is the trolls forsook this thread (so far anyway), so we were
able to learn from multiple purposefully helpful people who pitched in, and
indeed, a free spell-checking utility _was_ discussed; but not everyone was
on that tangent at the time it was discussed, as shown below with a C&P...

tinySpell Revision 1.9.64 August 2021
For Windows 7/8/10
https://www.tinyspell.com/
https://www.tinyspell.com/#download
{exe, zip, portable}
C:\Program Files (x86)\tinySpell

Note that it is a dumb program installer that doesn't ask where it belongs.

Occasionally you need to check spelling in an application that does not
include a spelling checker and you don't want to launch your word processor
just for that. This is when tinySpell becomes handy. It is a small utility
that allows you to easily and quickly check and correct the spelling in any
Windows application.

tinySpell can watch your typing on the fly and alert you whenever it detects
a misspelled word.

It can also check the spelling of text that you copy to the clipboard.
tinySpell installs itself in the taskbar notification area for easy access.

Note that tinyspell makes a mess of gvim editing though, which is becuase it
inserts an extra keystroke, so either get used to that addition or figure
out a way around it (I haven't tried to solve it yet though).
Post by Stan Brown
BTW, for plain text I use Vim's spell checker. It has a feature that
e.g. Word seems to lack: you can mark a valid word to be flagged as
possibly erroneous. I do this with words that i commonly mistype,
such as "ting" for "thing".
I also use gvim for all my editing tasks, even for my Usenet posts.

Here's where I keep gvim, but be advised it makes a messy hierarchy:
ARCHIVE: c:\archives\editors\text\vim\
INSTALL: c:\apps\editors\text\vim\{vim insists on two folder levels}
TASKBAR: c:\menus\editors\text\vim.lnk <== this is rarely exercised

I'm well aware of the built-in spell-checker capability inside of gvim.
:set spell
But others may not be aware that gvim has a ":set spell" option.
So it's _wonderful_ that you pitched in to volunteer that extra advice.

The gvim editor redsquiggles all misspelled words in the file being edited.
a. In Gvim you rightclick on a redsquiggled word
b. That gives you a pullout menu with three main options
Change "pliars" to >
Add "pliars" to Word List
Ignore "pliars"
c. Hitting the further pullout on the top gives you a choice
pliers

See this screenshot I just made for you and for everyone else to benefit.
<https://i.postimg.cc/T2j2FtX5/spell03.jpg> gvim spellchecker in use

Those turd files drive me nuts, so I've changed them in the _vimrc file.
(This is cut out from my gvim tutorial posted elsewhere in the past.)

a. Find out the $VIMRUNTIME variable value inside of any vim session
<esc><:>echo $VIMRUNTIME
Mine reported: C:\app\editor\txt\vim\vim82

b. Then add this line to the _vimrc file
NOTE: The vimrc is usually located at "C:\app\editor\txt\vim\_vimrc"
source $VIMRUNTIME/my_vimrc_changes.vim

c. Then edit your my_vimrc_changes.vim
vim C:\app\editor\txt\vim\vim82\my_vimrc_changes.vim

And put these lines in there:
set directory=C:\\tmp\vim\directory//,%TMP%,C:\WINDOWS\Temp//,$HOME,.
set backupdir=C:\\tmp\vim\backupdir//,%TMP%,C:\WINDOWS\Temp//,$HOME,.
set undodir=C:\\tmp\vim\undodir//,%TMP%,C:\WINDOWS\Temp//,$HOME,.
--
Every thread to Usenet should add value so that everyone always benefits
from kind-hearted helpful people (although the trolls hate that fact).
Herbert Kleebauer
2022-02-10 10:56:01 UTC
Permalink
Post by Andy Burnelli
Note I don't have screenshots of my extensive tests of Herbert's kind and
very detailed and conscientious help, as I couldn't get it to work yet.
I spent_hours_ on his detailed suggestions, but alas, I'm not a good coder.
Just save the code below in a file called "spell.bat" in the same
directory where you have stored your "spell.txt" file containing
the list of words. Then start spell.bat, either be a double click
in explorer or open a cmd window, "cd" to this directory and
type spell.bat. Then just wait a few seconds until the reading
starts. But it only works in 64 bit Windows because there
seems to be no 32 bit version of the Microsoft screen reader.

@echo off
if [%1]==[] goto :l1
for /f %%i in (spell.txt) do (
echo %%i
timeout /t 4 >nul)
exit

:l1
set p=
if exist %windir%\SysNative\cmd.exe set p=%windir%\SysNative\cmd.exe /c start ""
start "" %p% /min %windir%\system32\narrator.exe
timeout /t 4 >nul
start "" "%~f0" xxx
exit



As an alternative you can start the Microsoft screen reader manually
by using the hotkey <WIN>>CTRL><RETURN> and then only use
the first part of the above code to feed every 4 seconds
a word from spell.txt to the screen reader.

@echo off
for /f %%i in (spell.txt) do (
echo %%i
timeout /t 4 >nul)
Kerr-Mudd, John
2022-02-10 15:49:39 UTC
Permalink
On Thu, 10 Feb 2022 11:56:01 +0100
Post by Herbert Kleebauer
Post by Andy Burnelli
Note I don't have screenshots of my extensive tests of Herbert's kind and
very detailed and conscientious help, as I couldn't get it to work yet.
I spent_hours_ on his detailed suggestions, but alas, I'm not a good coder.
Just save the code below in a file called "spell.bat" in the same
directory where you have stored your "spell.txt" file containing
the list of words. Then start spell.bat, either be a double click
in explorer or open a cmd window, "cd" to this directory and
type spell.bat. Then just wait a few seconds until the reading
starts. But it only works in 64 bit Windows because there
seems to be no 32 bit version of the Microsoft reader.
Oh? there is on my (32bit) XP machine; but it only "says" each letter, not words, AFAICT

Ah, it does say "Foreground Window [the subject line] - Compose *
(which is the window title)

(but I can't see how to say selected text)
--
Bah, and indeed Humbug.
Herbert Kleebauer
2022-02-10 17:06:38 UTC
Permalink
Post by Kerr-Mudd, John
Post by Herbert Kleebauer
starts. But it only works in 64 bit Windows because there
seems to be no 32 bit version of the Microsoft reader.
Oh? there is on my (32bit) XP machine; but it only "says" each letter, not words, AFAICT
Ah, it does say "Foreground Window [the subject line] - Compose *
(which is the window title)
(but I can't see how to say selected text)
It should read the text in the foreground window. Therefore
I added a 4 second delay between starting the reader and
starting the cmd window which echoes the words. This should
allow the reader to finish loading before the cmd window
is opened, which makes the cmd window topmost. On a very slow
computer maybe you should increase this delay time. Alternatively
you can just click on the cmd window to make it topmost after
the speech starts.


start "" %p% /min %windir%\system32\narrator.exe
timeout /t 4 >nul
start "" "%~f0" xxx
exit
Kerr-Mudd, John
2022-02-10 19:11:22 UTC
Permalink
On Thu, 10 Feb 2022 18:06:38 +0100
Post by Herbert Kleebauer
Post by Kerr-Mudd, John
Post by Herbert Kleebauer
starts. But it only works in 64 bit Windows because there
seems to be no 32 bit version of the Microsoft reader.
Oh? there is on my (32bit) XP machine; but it only "says" each letter, not words, AFAICT
Ah, it does say "Foreground Window [the subject line] - Compose *
(which is the window title)
(but I can't see how to say selected text)
It should read the text in the foreground window. Therefore
[]

Well the version I have on XP seems to not read the text displayed in a cmd box, just it's title.
(I had to replace 'SysNative' with olde 'system32')
Post by Herbert Kleebauer
I added a 4 second delay between starting the reader and
[]
I increased the delays, and got a cmd window showing the first word of each line in my spell.txt, but narrator doesn't pick them up. It *is* only version 1.5 !

Ah well. Not to worry.
WAUE, W10 groups dropped
--
Bah, and indeed Humbug.
Andy Burnelli
2022-04-07 20:35:37 UTC
Permalink
Post by Herbert Kleebauer
Post by Kerr-Mudd, John
Post by Herbert Kleebauer
starts. But it only works in 64 bit Windows because there
seems to be no 32 bit version of the Microsoft reader.
Oh? there is on my (32bit) XP machine; but it only "says" each letter, not words, AFAICT
Ah, it does say "Foreground Window [the subject line] - Compose *
(which is the window title)
(but I can't see how to say selected text)
It should read the text in the foreground window. Therefore
I added a 4 second delay between starting the reader and
starting the cmd window which echoes the words. This should
allow the reader to finish loading before the cmd window
is opened, which makes the cmd window topmost. On a very slow
computer maybe you should increase this delay time. Alternatively
you can just click on the cmd window to make it topmost after
the speech starts.
start "" %p% /min %windir%\system32\narrator.exe
timeout /t 4 >nul
start "" "%~f0" xxx
exit
I only now saw this where the four seconds works well for me
timeout /t 4 >nul

I was previously using a pause which required user action whenever
a word was misspelled twice but which gave time for introspection.
pause

The four seconds still allow for introspection of any errors.
And it has the advantage of not requiring user action after that.

Here's the current use model and setup on Windows 10.
a. To add a redsquiggled word, run "spell".
b. To run audible challenges for rote memorization, run "spellit".
c. Misspelled words are automatically repeated by design of the script.

OPTIONAL: (Create a "Win+R > spell" command to save redsquiggled words).
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\spell.exe
@default = c:\pathto\spelltxt.txt

OPTIONAL: (Create a "Win+R > spellit" command to exercise rote learning).
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\spellit.exe
@default = c:\pathto\spellit.bat

c:\pathto\spellit.bat
@echo off
REM spellit.bat for Windows 10, originally by Herbert Kleebauer 20220211
REM A self-test of redsquiggled words with a self-reinforcing misspelled DB.
REM Newsgroups: alt.comp.os.windows-10,alt.msdos.batch,alt.usage.english
REM Message-ID: <su5ifp$300$***@gioia.aioe.org>
REM Summary: To add a redsquiggled word, run "spell".
REM To run audible challenges for rote memorization, run "spellit".
REM Strategy: It absolutely must be efficient & easy or you won't do it!
REM Tactic: Presents words that you misspelled in the frequency you err.
REM Win+R > spellit
REM Randomly speaks words giving you two chances to type them correctly.
REM Purposefully uses audio in order to force memory recall.
REM After two mistakes the word is reinforced in a separate error file.
REM
REM Recommended one-time setup for efficiency:
REM 1. Set up an AppPath for a quick command: "Win+R > spell"
REM (Use that Run command to add redsquiggled words into spelltxt.txt)
REM HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\spell.exe
REM @default = c:\pathto\spelltxt.txt
REM 2. Set up an AppPath for a quick command: "Win+R > spellit"
REM (Use that Run command to initiate the audio-visual testing process)
REM HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\spellit.exe
REM @default = c:\pathto\spellit.bat
REM 3. Optionally, choose a filespecs for the spell txt, err & tmp files
REM Explicit paths are optional (it can be %TEMP% as the default).
REM "spelltxt.txt" is a list of redsquiggled misspelled words
REM "spelltxt.err" is a dynamic error file autocreated & automaintained
REM "spelltxt.tmp" is a dynamic tmp file autocreated by this script
REM Note: %TEMP% defaults to C:\Users\<username>\AppData\Local\Temp\
REM Recommended use model
REM 4. Ad hoc, as words are redsquiggled, rightclick, correct & copy...
REM Run > spell
REM Paste the now-correctly-spelled redsquiggle into that spell.txt file
REM Note: Most people pin a "Run" shortcut icon to their Win10 taskbar.
REM Note: Otherwise, they press "Windows+R" keys to pop up the Run box.
REM 5. Periodically, as needed, to refresh & reinforce spelling memory...
REM Run > spellit
REM a. First speaks words you _repeatedly_ misspelled (in spellerr.txt)
REM (if you spell it incorrectly, yet another entry is added)
REM (if you spell it correctly, only one entry is removed each time)
REM b. Then randomly speaks the misspelled words (in spelltxt.txt)
REM c. Each time a word is presented you have two spelling chances.
REM When incorrect, there is a 4-second introspection of errors.
REM Pressing "x" will end the session (as will "Control+C" keys).
REM
REM Please choose a filespec for the spelling text, error & temp files.
REM set spelltxtfile=%TEMP%\spelltxt.txt
REM set spellerrfile=%TEMP%\spellerr.txt
REM set spelltmpfile=%TEMP%\spelltmp.txt
set spelltxtfile=c:\pathto\spelltxt.txt
set spellerrfile=c:\pathto\spellerr.txt
set spelltmpfile=c:\pathto\spelltmp.txt
REM The user does not need to modify anything below this line.
MODE CON: COLS=50 LINES=10
color f0
cls
echo createobject("sapi.spvoice").speak wsh.arguments(0)>speak.vbs

for /f "tokens=*" %%i in (%spelltxtfile%) do call echo %%random%%
%%i>>%spellerrfile%
sort /o %spelltmpfile% %spellerrfile%
del %spellerrfile%
set /a ok=0
set /a not_ok=0

for /f "tokens=1*" %%i in (%spelltmpfile%) do call :sub %%j
:end
del speak.vbs
del %spelltmpfile%
echo.
echo %ok% words correct, %not_ok% words incorrect
echo.
pause
exit

:sub
echo.
set /a n=0
:sub1
set /a n=n+1
if %n%==3 goto :sub2
cscript //nologo speak.vbs "%*"
set a=
set /p a=
if /i "%a%"=="x" goto :end
if /i not "%*"=="%a%" goto :sub1
set /a ok=ok+1
goto :eof

:sub2
echo 0 %*>>%spellerrfile%
echo ---------- %*
REM Sets a four-second delay for error introspection
timeout /t 4 >nul
set /a not_ok=not_ok+1
---< Above is the spellit.bat script >---
---< Below is a sample spelltxt.txt list >---
abscissa
abysmal
accommodate
accommodations
admittance
Afghani
aficionados
anachronism
annihilate
anomaly
ante
antediluvian
appalled
archaic
arithmetic
assessments
bankruptcy
belligerent
boreal
Bruscietta
bureaucracy
cacophony
Cannoli
cinnabar
clientele
colloquial
commingled
concise
concomitant
contagious
corroborating
credulity
de rigueur
debuted
deficit
disastrous
discretion
disingenuous
disparage
disparity
duplicitous
echelon
egregious
emanated
emanates
eminently
etymological
euphemism
euphemistically
exemplary
exhilarating
exorbitant
extol
fascists
felicitously
Fettuccini
fluorescent
foresaw
foresee
foreseeable
frivolity
geneticist
gratefully
guaranteed
gynecologist
horsd'oeuvres
ignominiously
imbue
immaculate
immiscible
impedance
incipient
inherited
insightful
lavender
lectern
liaison
lieu
Linguini
mannequin
marshal
masquerading
matriarchal
mayonnaise
medieval
methodically
millennium
mosquito
neutralize
obsolescence
occurrence
Panini
paraplegic
parroting
phenomenal
phenomenally
pleasurable
pliers
preceded
preceding
programmatically
proletariat
Prosciutto De Parma
remunerate
sanctity
scholarships
semblance
senesce
shish kebab
supersedes
surreptitiously
symmetric
sympathetic
tassels
thereabouts
tragedy
triptych
ubiquitous
ubiquity
unnecessarily
unnecessary
Vallejo
vicious
viscous
---< Above is a sample spelltxt.txt list >---

See also: <https://en.wikipedia.org/wiki/Commonly_misspelled_English_words>
Stan Brown
2022-02-10 16:13:03 UTC
Permalink
Post by Andy Burnelli
Post by Stan Brown
But I haven't seen any mention of spell checkers; the thread seems to
be all about text-to-speech. Am I missing something?
You bring up a good point; I apologize for my inadvertent tactical error.
[big snip by Stan]
Thanks, Andy, for that recap!
--
Stan Brown, Tehachapi, California, USA https://BrownMath.com/
Shikata ga nai...
Andy Burnelli
2022-02-10 17:35:14 UTC
Permalink
Post by Stan Brown
Thanks, Andy, for that recap!
What came in on another offshoot was this post, which followed up on my
first tests (three days ago) of Herbert's very kind & detailed advice.

(begin copy of post from JJ earlier today)
Post by Stan Brown
@echo off
if [%1]==[] goto :l1
for /f %%i in (spell.txt) do (
echo %%i
timeout /t 4 >nul)
exit
:l1
start /min %windir%\system32\narrator.exe
timeout /t 4 >nul
start "" "%~f0" xxx
exit
The use model is to feed the tool a text file with one word per line.
The tool would speak the word and give the user time to write it down.
Somehow the user would check if he spelled it right (visually?)
Then the tool would move on to the next spoken word in the file.
Windows built in TTS can be automated using at least VBScript.
It can be combined with a batch file if you're not familiar with VBScript.

@echo off
setlocal
set tf="%temp%\speak.vbs"
echo createobject("sapi.spvoice").speak wsh.arguments(0)>%tf%
for /f "delims=" %%i in (spell.txt) do (
echo %%i
cscript //nologo %tf% "%%i"
)
del %tf%
timeout 2 >nul
exit

(end copy of post from JJ today)
--
Every post to Usenet should strive to be a team sport value addition.
Herbert Kleebauer
2022-02-10 19:32:17 UTC
Permalink
Post by Andy Burnelli
Windows built in TTS can be automated using at least VBScript.
It can be combined with a batch file if you're not familiar with VBScript.
@echo off
setlocal
set tf="%temp%\speak.vbs"
Based on that, here a version which speaks a word and you
have to type the word (if it is wrong, you have one retry).
It's up to you, to add code for statistics and to prefer
words which have been spelled wrong in the past.


@echo off
MODE CON: COLS=50 LINES=10
color f0
cls
echo createobject("sapi.spvoice").speak wsh.arguments(0)>speak.vbs
for /f "delims=" %%i in (spell.txt) do call :sub %%i
del speak.vbs
echo.
goto :eof

:sub
echo.
set /a n=0
:sub1
set /a n=n+1
if %n%==3 echo ---------- %*&goto :eof
cscript //nologo speak.vbs "%*"
set a=
set /p a=
if /i not "%*"=="%a%" goto :sub1
Andy Burnelli
2022-02-10 23:48:40 UTC
Permalink
Post by Herbert Kleebauer
Based on that, here a version which speaks a word and you
have to type the word (if it is wrong, you have one retry).
It's up to you, to add code for statistics and to prefer
words which have been spelled wrong in the past.
OMG! Thank you! On behalf of me, and for all people who wish to
_efficiently_ remember how to spell words they themselves misspelled!
<Loading Image...> Fantastic spelltest GUI!
<Loading Image...> Windows TTS visual basic script
<https://i.postimg.cc/159RQD9C/spell04.jpg> TinySpell free spellchecker
<https://i.postimg.cc/T2j2FtX5/spell03.jpg> Gvim spellchecker in use
<https://i.postimg.cc/T1xdhDnP/spell02.jpg> Espeak/TTSapp GUI in use
<https://i.postimg.cc/Pf6k82q2/spell01.jpg> Balabolka GUI in use

[EDIT] This post is written to be used as its own tutorial which anyone
should be able to follow step by step, to have this running in minutes.

This thread is a perfect example of all that is good with Usenet today!
a. Kind-hearted purposefully helpful knowledgeable people
b. Solving a problem that everyone has so it's of general use to all
c. Each person pitching in as a team mate when and where they add value

The strategic goal has been achieved!
a. Learn using audio cues while typing the answers to the quiz
b. Seeing both what is typed and, if typed wrong, what the correct answer is
c. Without _looking_ first (i.e., you hear it, type it, and then you see it)!

Perfect!
It's a perfect learning tool now.

Efficient.
(Very clearly please note if it's not efficient, it's not going to be done.)
It's just not.

At this point, it's two commands:
1. Run > spell
2. Run > spelltest

That's it.
Nothing else is needed to be done by the user!

It's that efficient!
Kewl!

I have to admit the previous "narrator" tests were troublesome because
the narrator would speak, at least on my system, whatever Windows wanted
it to speak, but that was filled with background notifications too. :(

So, if, for example, I was downloading a file in the background,
the narrator spoke that even as I was in the middle of it speaking
a list.

Especially since I'm not a coder (although I use what people create).

Herbert started with this audio challenge from JJ earlier today:
<https://i.postimg.cc/5NPBCrqm/spell05.jpg> Windows TTS visual basic script
Turning it into this audio/visual test/response script that is perfect!
<https://i.postimg.cc/hPcwgMnB/spell06.jpg> Fantastic spelltest GUI!

This helpful modification of yours, on the other hand, is _perfect_.
No longer do we need a pause between letters in the spell.txt file.
No longer do we need to have _both_ spellings in the spell.txt file.
No longer do we need to manually type separate letters into the file.
No longer do we need to fish around for the pause button.
No longer do we need to write it down on a separate piece of paper.

If desired, one can even find a list of commonly misspelled words.
They can use _that_ as their "spell.txt" (instead of what I use,
which is a list of only the words that I have personally misspelled
(which is already long enough, mind you).

The use model is _fantastic_ for _exactly_ what we're asking for here!
I believe it will be of general use to _everyone_ who cares about spelling!

Setup:
A. Modify the attached batch script to point to the full path to spell.txt.
B. Save the batch script anywhere under any name that makes sense to you.
INSTALL: c:\apps\databases\tts\spelltest.bat
USRMENU: Taskbar > menus > databases > tts > spelltest (rarely used)
COMMAND: Win+R > spelltest <== Note the "Run" icon is pinned to taskbar
DATFILE: c:\data\databases\tts\spell.txt
ARCHIVE: c:\archives\databases\tts\spelltest.bat.7z {includes a readme}
Note: Consider encrypting archives to keep them away from a-virus scans.
Note: Every archive _always_ gets a readme (often it's a Usenet thread).
B. Add any keyword to create a personal command in the Windows registry.
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\spelltest.exe
@Default = c:\apps\databases\tts\spelltest.bat
D. Separately populate the spell.txt file with a log of your redsquiggles.
Win+R > spell <== Note this can be any keyword not already employed
Where that keyword has been previously defined in your Windows registry.
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\spell.exe
@Default = c:\data\databases\tts\spell.txt

USEMODEL:
1. When you want to add a redsquiggled word to the spell.txt file, run:
{spell}
2. When you want to test yourself to improve your word memory, run:
{spelltest}
3. That will run the spelltest.bat script pointing to the spell.txt file.
a. A grey command window pops up
b. You will hear the first line spoken (which should be one word)
c. You _type_ the presumed spelling into that grey command box
d. You will have _two_ chances to get the correct spelling right
e. And you can _see_ what you are typing (which reinforces visual memory)
f. When you get both tries wrong - the results are pushed aside
g. So that the _correct_ answer stands out in your visual memory!
h. Later on you can copy the whole log using control+A control+C
i. And you can paste the results using Control+P to edit results
j. Leaving the results file of only the incorrect words for re-testing

This is great! Thank you Herbert Kleebauer for adding the testing stuff!

That matters because it's all about the strategy of _visual_ reinforcement!
a. You hear the word - but see nothing.
b. You type the word - and you see _only_ what you typed.
c. If you get it right - you move on to the next word.
d. If you get it wrong - you get a second chance to type it.
e. If you _still_ get it wrong - it will _show_ you where you were wrong!

Woo hoo!
This is fantastic.

The goal, always, is a tool that _everyone_ can use, that is general purpose
(so that it can be customized by the user, if desired) and which does the
job as efficiently as is humanly possible! <== efficiency is critical!
A. It has to be non visual (aka audio) for the test
B. But the test should be as visual as possible (which it is!).

Voila!
Great thanks to everyone, especially JJ & Herbert Kleebauer today alone,
but there were _many_ kind-hearted good natured people who pitched in!
--
Usenet is supposed to be a pleasant learning experience for all of us.

--- --- cut here for spelltest.bat --- ---
@echo off
MODE CON: COLS=50 LINES=10
color f0
cls
echo createobject("sapi.spvoice").speak wsh.arguments(0)>speak.vbs
REM Please modify the next line for your spell.txt filespec
for /f "delims=" %%i in (c:\data\databases\tts\spellcheck\spell.txt) do call :sub %%i
del speak.vbs
echo.
goto :eof
REM
:sub
echo.
set /a n=0
:sub1
set /a n=n+1
if %n%==3 echo ---------- %*&goto :eof
cscript //nologo speak.vbs "%*"
set a=
set /p a=
if /i not "%*"=="%a%" goto :sub1
--- --- cut here for spelltest.bat --- ---

--- --- cut here for a sample spell.txt --- ---
Afghani
abscissa
accommodations
anomaly
annihilate
appalled
assessments
bureaucracy
clientele
colloquial
commingled
concomittent
credulity
debuted
de rigueur
discretion
disparage
disastrous
duplicitous
egregious
imbue
eminently
echelon
extol
foresee
foreseeable
gaffe
hors d'oeuvres
immiscible
inherited
masquerading
mayonnaise
medieval
methodically
paraplegic
phenomenal
pliers
preceded
programmatically
semblance
shish kebab
symmetric
tragedy
ubiquitous
Vallejo
viscous
--- --- cut here for a sample spell.txt --- ---
Herbert Kleebauer
2022-02-11 00:29:03 UTC
Permalink
Post by Andy Burnelli
A. Modify the attached batch script to point to the full path to spell.txt.
B. Save the batch script anywhere under any name that makes sense to you.
INSTALL: c:\apps\databases\tts\spelltest.bat
USRMENU: Taskbar > menus > databases > tts > spelltest (rarely used)
COMMAND: Win+R > spelltest <== Note the "Run" icon is pinned to taskbar
DATFILE: c:\data\databases\tts\spell.txt
ARCHIVE: c:\archives\databases\tts\spelltest.bat.7z {includes a readme}
Note: Consider encrypting archives to keep them away from a-virus scans.
Note: Every archive_always_ gets a readme (often it's a Usenet thread).
B. Add any keyword to create a personal command in the Windows registry.
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\spelltest.exe
@Default = c:\apps\databases\tts\spelltest.bat
D. Separately populate the spell.txt file with a log of your redsquiggles.
Win+R > spell <== Note this can be any keyword not already employed
Where that keyword has been previously defined in your Windows registry.
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\spell.exe
@Default = c:\data\databases\tts\spell.txt
Isn't that a bit to complicated for such a simple script? Just copy
spell.bat together with spell.txt in any directory you like. Then put
a link to spell.bat on the desktop (drag it with the <ALT> key pressed
to the desktop). In the property of the link you can select the font and,
much more important, the font size you prefer.
Andy Burnelli
2022-02-11 01:44:58 UTC
Permalink
Post by Herbert Kleebauer
Isn't that a bit to complicated for such a simple script?
Yes.

Yours is a valid observation, where I see your simplification below.

As you would likely infer, I, like you I'm sure, would rather _not_ be
forced to need to specify the full path to the spell.txt file inside the
spelltest.bat script (because then it's not portable to everyone
automatically).

However...

The problem I had was my "finger-memory" use model employs about a hundred
(or so) keywords in the registry AppPaths key, where I use the "RUN" icon
attached to the top of my task bar all day, every day, hundreds of times.
RUN > keyword

The problem with using the Windows AppPaths registry key was that, by that
method, I couldn't get the spelltest.bat file to _find_ the spell.txt file
even if _both_ spell.txt & the spelltest.bat were found in the same
directory. Sigh. (Did I mention I'm not a coder type person yet?)

When the registry AppPaths key runs, the default seems to be the %comspec%
as far as I can tell, so the spelltest.bat was looking for spell.txt here:
c:\windows\system32\.
I think.

Thinking about it with the hat of a person writing a general purpose tool
though, I easily agree with you that your shortcut method is far more
intuitive to most people than my method (honed since WinXP days) of using
the AppPaths registry key to make every command I use often to be always
just one keyword away at all times:
Taskbar:Run > keyword
Post by Herbert Kleebauer
Just copy
spell.bat together with spell.txt in any directory you like. Then put
a link to spell.bat on the desktop
While nothing ever goes on _my_ desktop other than "My PC" & a "Recycle"
bin, I get it that the general user can put the shortcut in their Start Menu
or pin it to their taskbar (so the desktop is just one of many locations).

I did what you suggested, only, of course, I put it where it belongs, in:
c:\menus\databases\tts\spelltest.lnk
Which is a folder hierarchy that is pinned to the taskbar as a pullout menu.
This way it is _also_ available to me via my accordion-style cascade menu:
Taskbar:menus > databases > tts > spelltest

Note: "Where it belongs" is a personal thing where it's the same as where
your knives, forks, and spoons belong. They have a place in every kitchen
where each and every one of us knows _exactly_ where they belong, don't we?]

Note: I never use filespec plurals but I added them for general readability.
Post by Herbert Kleebauer
(drag it with the <ALT> key pressed to the desktop).
Niiiiiice! I didn't know about that "alt-drag" trick.
a. Rightclick-drag-bat-to-desktop > Create shortcuts here
b. Alt+Leftclick-drag-bat-to-desktop
Post by Herbert Kleebauer
In the property of the link you can select the font and,
much more important, the font size you prefer.
I am happy you realize the fontsize is critical, because the name of the
game is to visually reinforce that which you hear for a learning process.

While I always find and or create a custom icon for all my batch scripts,
I wasn't aware you could change the resultant font so thanks for that.

The need to be _visual_ after the audio is critical for the visual memory to
work so 'hugifying the fonts is a good idea... only in my quick test, it
forced the grey command window to be in a corner that was _under_ the
taskbar (so I had to _move_ the grey type-in window every time).

Can the grey type-in window be auto-positioned further from the taskbar when
the user changes the fonts to a larger font? (I had used Courier New, 36)?
--
Regarding custom icons for the spelltest.bat shortcut, I looked here:
<https://www.flaticon.com/search?word=spelling&type=icon>
Where any of these might be a decent icon, don't you think?
<https://www.flaticon.com/premium-icon/spelling-bee_3819659>
<https://www.flaticon.com/premium-icon/spell-check_3682488>
<https://www.flaticon.com/premium-icon/spell-check_2901269>
<https://www.flaticon.com/premium-icon/spell-check_4426506>
<https://www.flaticon.com/premium-icon/spell-check_4426288>

The astute reader may note, for example, the custom "killswitch" icon I have
just below the taskbar RUN icon, and the "killapps" icon just below that.
<https://i.postimg.cc/hPcwgMnB/spell06.jpg> Note the custom batch icons!
Maybe people noticed the customized clock display on the bottom?
And the lack of space-wasting Cortana and Notification icons.
The taskbar is on a side as up:down space is more precious than side:side.
Herbert Kleebauer
2022-02-11 08:18:44 UTC
Permalink
Post by Andy Burnelli
The problem with using the Windows AppPaths registry key was that, by that
method, I couldn't get the spelltest.bat file to _find_ the spell.txt file
even if _both_ spell.txt & the spelltest.bat were found in the same
directory. Sigh. (Did I mention I'm not a coder type person yet?)
Then you also should use the %temp% directory to create
the vbs file as it was done in the original post (I prefer
a different order scheme for my files).
Post by Andy Burnelli
Post by Herbert Kleebauer
In the property of the link you can select the font and,
much more important, the font size you prefer.
forced the grey command window to be in a corner that was _under_ the
taskbar (so I had to _move_ the grey type-in window every time).
In the properties of the link you can also specify the window position.
If you also use it to specify the window size and color, you have to remove

MODE CON: COLS=50 LINES=10 -> sets the size of the window to 50x10
color f0 -> sets the color of the window to black on white

from the batch code.
Nobody
2022-02-11 01:57:13 UTC
Permalink
Post by Herbert Kleebauer
Post by Andy Burnelli
A. Modify the attached batch script to point to the full path to spell.txt.
B. Save the batch script anywhere under any name that makes sense to you.
INSTALL: c:\apps\databases\tts\spelltest.bat
USRMENU: Taskbar > menus > databases > tts > spelltest (rarely used)
COMMAND: Win+R > spelltest <== Note the "Run" icon is pinned to taskbar
DATFILE: c:\data\databases\tts\spell.txt
ARCHIVE: c:\archives\databases\tts\spelltest.bat.7z {includes a readme}
Note: Consider encrypting archives to keep them away from a-virus scans.
Note: Every archive_always_ gets a readme (often it's a Usenet thread).
B. Add any keyword to create a personal command in the Windows registry.
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\spelltest.exe
@Default = c:\apps\databases\tts\spelltest.bat
D. Separately populate the spell.txt file with a log of your redsquiggles.
Win+R > spell <== Note this can be any keyword not already employed
Where that keyword has been previously defined in your Windows registry.
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\spell.exe
@Default = c:\data\databases\tts\spell.txt
Isn't that a bit to complicated
Spillchucker alert! Isn't that a bit *too* complicated...

<g>
J. P. Gilliver (John)
2022-02-11 11:42:05 UTC
Permalink
[long set of instructions]
Post by Nobody
Post by Herbert Kleebauer
Isn't that a bit to complicated
[yes]
Post by Nobody
Spillchucker alert! Isn't that a bit *too* complicated...
<g>
Interesting question - was that a spelling error or a grammar error?
<g>
--
J. P. Gilliver. UMRA: 1960/<1985 MB++G()AL-IS-Ch++(p)***@T+H+Sh0!:`)DNAf

Veni, Vidi, Vera (I came, I saw, we'll meet again) - Mik from S+AS Limited
(***@saslimited.demon.co.uk), 1998
Andy Burnelli
2022-02-11 18:02:10 UTC
Permalink
Post by Herbert Kleebauer
Isn't that a bit to complicated
[yes]
J.P. Gilliver,

I'm going to try to be as gentle with you as I possibly can because even
though you didn't add any value (so you wasted our time), I recognize some
people are on Usenet purely for the amusement value (not me, but some).

I'm here to either add tremendous value, or to obtain it (as we did from
Herbert who basically, with JJ, crafted a solution that works perfectly!).

My first rhetorical question, being gentle, John, is this basic question:
Why do you _always_ respond to the trolls, but you don't try to add value?

But moving on (since Usenet is water under the bridge), allow me to post
this response to you & to him together since I don't see Nobody's trolls.

I'm going to next make an _adult_ observation, which is not so much for you,
but for everyone out there to benefit from, since Usenet is a team sport.

Whenever something rather simple, and yet, detailed (so it's long) is
posted, there is _always_ a troll whose brain fogged over after the first
line, who then claims it's "complicated" (this happens all the time on the
iKook newsgroups so I'm well aware that detail confuses them to no end).

They can't comprehend that the detail is there so that everyone can do it.
That's because they use Usenet purely for their own sadistic amusement.

They don't _care_ one bit about the topic.
They don't care one bit about _solving_ the problem.
They are only on Usenet for their own amusement, John.

They're attention whores.

Even the ones who aren't trolls may want "Apple-like" instructions:
STEP 1. Type "spell" to add to the file, otherwise "spelltest" to test it.

That's it.
It's _that_ simple.

Now. Having written those instructions, are you satisfied John?
Are they now a lot simpler, John?
a. Run the file

That's it.
That's the instructions.
(Seriously, John, it _is_ that easy!)

BTW, the trolls are trying to derail the thread because they are attention
whores, where I suggest you get back to the kind-hearted purposefully
helpful people who made far better comments you _could_ have responded to.

To that end, I'll test Herbert's simplification, where the goal is always:
a. *Extreme efficiency* (to the max!) [Always a _single_ step!]
b. *Extreme generality* (to the max!) [Always using freeware anyone can use]

Thanks to Herbert & JJ, we have met that goal in an exemplary fashion.

To run the spelltest, just type "spelltest".
--
That may be too complex for the trolls, but not for intelligent people.
Kerr-Mudd, John
2022-02-11 19:26:04 UTC
Permalink
On Fri, 11 Feb 2022 18:02:10 -0000 (UTC)
Post by Andy Burnelli
Post by Herbert Kleebauer
Isn't that a bit to complicated
[yes]
J.P. Gilliver,
I'm going to try to be as gentle with you as I possibly can because even
though you didn't add any value (so you wasted our time), I recognize some
people are on Usenet purely for the amusement value (not me, but some).
[Lot's of words]
Please don't talk down to a regular contributor to amb. Especially as Herbert has been so kind.

HTH
Post by Andy Burnelli
--
That may be too complex for the trolls, but not for intelligent people.
Hmm.


FU set to just alt.comp.os.windows-10, as I think that's where you're possibly a regular. (Well it ain't the other 2!)
--
Bah, and indeed Humbug.
Herbert Kleebauer
2022-02-11 21:03:19 UTC
Permalink
Post by Andy Burnelli
Post by Nobody
Post by Herbert Kleebauer
Isn't that a bit to complicated
[yes]
I'm going to try to be as gentle with you as I possibly can because even
though you didn't add any value (so you wasted our time), I recognize some
people are on Usenet purely for the amusement value (not me, but some).
Not even a little bit humor?
Post by Andy Burnelli
Post by Nobody
Spillchucker alert! Isn't that a bit *too* complicated...
<g>
We are talking about a tool to improve correct spelling so
I find this comment very appropriate.
Post by Andy Burnelli
Interesting question - was that a spelling error or a grammar error?
<g>
And that too. Just enter both words, "to" and "too" in your spell.txt
and tell us if you have written both words correct after you heard
them spoken.

I read this thread only in alt.msdos.batch so I can't say anything
about the other two (add "two" also to spell.txt) groups (but they
are also alt.* groups). alt.msdos.batch is completely dead. So even
an off topic post with some sort of humor would be very welcome here.

I'm glad that you forwarded the line

echo createobject("sapi.spvoice").speak wsh.arguments(0)>%tf%

to alt.msdos.batch because the OP seems to have removed a.m.b
from the crosspost. This is the most interesting information
I got in the last years in this group.
Post by Andy Burnelli
Post by Nobody
Post by Herbert Kleebauer
Isn't that a bit to complicated
[yes]
a.m.b is a group to provide information, help and discussion
about batch problems. The goal is not to provide ready to
use solutions and give step by step instructions at the
lowest level. Nobody learns anything by just copy&paste
or following instructions word by word without understanding
them.

For a program you want, batch is a completely inappropriate
language. Just use Google to search for a compiled exe program,
there should be plenty of them. I just wanted to find out
if at least very simple version could be made with batch code.
But it's only a proof of concept and not real usable code.
But it was worth the effort, batch code which starts speaking
(as a one liner) is real cool.
Herbert Kleebauer
2022-02-11 11:49:12 UTC
Permalink
Post by Andy Burnelli
Post by Herbert Kleebauer
It's up to you, to add code for statistics and to prefer
words which have been spelled wrong in the past.
Especially since I'm not a coder (although I use what people create).
I added a few lines of code for you. This version stores any
misspelled word in "spellerr.txt". Next time you start the
batch, first all words in "spellerr.txt" are presented and
then all words in "spell.txt" in a random order. You can
exit the batch any time by entering "x".

It's up to you, to add a full path or %temp% to the
temporary generated files (I prefer all in the same directory).


@echo off
MODE CON: COLS=50 LINES=10
color f0
cls
echo createobject("sapi.spvoice").speak wsh.arguments(0)>speak.vbs

for /f "tokens=*" %%i in (spell.txt) do call echo %%random%% %%i>>spellerr.txt
sort /o spelltmp.txt spellerr.txt
del spellerr.txt
set /a ok=0
set /a not_ok=0

for /f "tokens=1*" %%i in (spelltmp.txt) do call :sub %%j
:end
del speak.vbs
del spelltmp.txt
echo.
echo %ok% words correct, %not_ok% words incorrect
echo.
pause
exit

:sub
echo.
set /a n=0
:sub1
set /a n=n+1
if %n%==3 goto :sub2
cscript //nologo speak.vbs "%*"
set a=
set /p a=
if /i "%a%"=="x" goto :end
if /i not "%*"=="%a%" goto :sub1
set /a ok=ok+1
goto :eof

:sub2
echo 0 %*>>spellerr.txt
echo ---------- %*
set /a not_ok=not_ok+1
Andy Burnelli
2022-04-01 16:56:00 UTC
Permalink
Post by Herbert Kleebauer
Post by Andy Burnelli
Post by Herbert Kleebauer
It's up to you, to add code for statistics and to prefer
words which have been spelled wrong in the past.
Especially since I'm not a coder (although I use what people create).
I added a few lines of code for you. This version stores any
misspelled word in "spellerr.txt". Next time you start the
batch, first all words in "spellerr.txt" are presented and
then all words in "spell.txt" in a random order. You can
exit the batch any time by entering "x".
It's up to you, to add a full path or %temp% to the
temporary generated files (I prefer all in the same directory).
@echo off
MODE CON: COLS=50 LINES=10
color f0
cls
echo createobject("sapi.spvoice").speak wsh.arguments(0)>speak.vbs
for /f "tokens=*" %%i in (spell.txt) do call echo %%random%% %%i>>spellerr.txt
sort /o spelltmp.txt spellerr.txt
del spellerr.txt
set /a ok=0
set /a not_ok=0
for /f "tokens=1*" %%i in (spelltmp.txt) do call :sub %%j
:end
del speak.vbs
del spelltmp.txt
echo.
echo %ok% words correct, %not_ok% words incorrect
echo.
pause
exit
:sub
echo.
set /a n=0
:sub1
set /a n=n+1
if %n%==3 goto :sub2
cscript //nologo speak.vbs "%*"
set a=
set /p a=
if /i "%a%"=="x" goto :end
if /i not "%*"=="%a%" goto :sub1
set /a ok=ok+1
goto :eof
:sub2
echo 0 %*>>spellerr.txt
echo ---------- %*
set /a not_ok=not_ok+1
Thank you Herbert Kleebauer, on behalf of all who wish to spell better.
The goal is to lessen the redsquiggles in an efficient & timely manner.

I apologize for not having responded sooner as I was dealing with other
technical issues on the various platforms (iOS, Android, Windows, etc.).

Below is my annotated modification of your helpful spelling script.
a. I added strategic & tactical background commentary (and instructions).
b. I added a user-defined location variable for the 3 {txt,err,tmp} files.
c. I added a misspelling pause & action (adds time to reflect on errors).

---< begin spellit.bat >---
@echo off
REM spellit.bat for Windows 10, originally by Herbert Kleebauer 20220211
REM A self-test of redsquiggled words with a self-reinforcing misspelled DB.
REM Newsgroups: alt.comp.os.windows-10,alt.msdos.batch,alt.usage.english
REM Message-ID: <su5ifp$300$***@gioia.aioe.org>
REM Randomly speaks words giving you a chance to type them correctly.
REM Strategy being it _must_ be quick & easy; otherwise you won't do it.
REM Purposefully uses audio instead of a visual to present the word.
REM Strategically, this uses a visual to reinforce the correct spelling.
REM Logic being that seeing it _before_ trying to spell it taints memory.
REM Logic being seeing it _after_ an attempt tends to reinforce memory.
REM Tactic is auto-honing of just the words _you_ have recently misspelled.
REM Tactic is repetition specifically for the words _you_ misspelled most.
REM Recommended one-time setup:
REM 1. Set up an AppPath for a quick command: "Run > spell"
REM (Use that command to add redsquiggled words into spelltxt.txt)
REM HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\spell.exe
REM @default = C:\data\db\tts\spelltxt.txt
REM 2. Set up an AppPath for a quick command: "Run > spellit"
REM (Use that command to initiate the audio-visual testing process)
REM HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\spellit.exe
REM @default = C:\data\db\tts\spellit.bat
REM 3. Optionally, choose a filespecs for the spell txt, err & tmp files
REM Note any explicit path is optional (it can be %TEMP% as the default).
REM spelltxt.txt is manually maintained redsquiggled words (1 per line)
REM spelltxt.err is a dynamic error file autocreated & automainained
REM spelltxt.tmp is a dynamic tmp file autocreated by this script
REM Note: %TEMP% defaults to C:\Users\<username>\AppData\Local\Temp\
REM Recommended daily-use model
REM 4. Ad hoc, as words are redsquiggled, rightclick, correct & copy...
REM Run > spell
REM Paste the now-correctly-spelled redsquiggle into that spell.txt file
REM Note: Most people pin a "Run" shortcut icon to their Win10 taskbar.
REM Note: Otherwise, they press "Windows+R" to pop up the Run box.
REM 5. Periodically, as needed, to refresh & reinforce spelling memory...
REM Run > spellit
REM a. Speaks words you previously doubly misspelled (in spellerr.txt)
REM (if you spell it incorrectly, another entry is added)
REM (if you spell it correctly, only one entry is removed)
REM b. Then randomly speaks the list of misspelled words (in spelltxt.txt)
REM (if you spell it incorrectly, one entry is added to the error file)
REM (if you spell it correctly, it moves on to the next word in the file)
REM The more you misspell a word, the more it shows up in the error file.
REM Each time a word is presented you have two chances to spell it out.
REM The more you correctly spell it, the less it shows up in the error file.
REM When incorrect, a "pause" allows timely introspection of errors.
REM Pressing "x" will end the session (as will pressing "Control+C").
REM
REM Please choose a desired filespec for the spelling text, error & temp files.
set spelltxtfile=%TEMP%\spelltxt.txt
set spellerrfile=%TEMP%\spellerr.txt
set spelltmpfile=%TEMP%\spelltmp.txt
REM set spelltxtfile=C:\data\db\tts\spelltxt.txt
REM set spellerrfile=C:\data\db\tts\spellerr.txt
REM set spelltmpfile=C:\data\db\tts\spelltmp.txt
REM
MODE CON: COLS=50 LINES=10
color f0
cls
echo createobject("sapi.spvoice").speak wsh.arguments(0)>speak.vbs

for /f "tokens=*" %%i in (%spelltxtfile%) do call echo %%random%% %%i>>%spellerrfile%
sort /o %spelltmpfile% %spellerrfile%
del %spellerrfile%
set /a ok=0
set /a not_ok=0

for /f "tokens=1*" %%i in (%spelltmpfile%) do call :sub %%j
:end
del speak.vbs
del %spelltmpfile%
echo.
echo %ok% words correct, %not_ok% words incorrect
echo.
pause
exit

:sub
echo.
set /a n=0
:sub1
set /a n=n+1
if %n%==3 goto :sub2
cscript //nologo speak.vbs "%*"
set a=
set /p a=
if /i "%a%"=="x" goto :end
if /i not "%*"=="%a%" goto :sub1
set /a ok=ok+1
goto :eof

:sub2
echo 0 %*>>%spellerrfile%
echo ---------- %*
pause
set /a not_ok=not_ok+1
REM <end of spellit.bat>
---< end spellit.bat >---
---< begin sample spelltxt.txt >---
Afghani
Vallejo
abscissa
abysmal
accommodations
admittance
aficionados
anachronism
annihilate
anomaly
ante
appalled
archaic
arithmetic
assessments
belligerent
boreal
bureaucracy
cacophony
cinnabar
clientele
colloquial
commingled
concise
concomitant
contagious
corroborating
credulity
debuted
deficit
de rigueur
disastrous
discretion
disparage
disparity
duplicitous
echelon
egregious
emanated
emanates
eminently
etymological
euphemism
euphemistically
exemplary
exhilarating
exorbitant
extol
fascists
felicitously
fluorescent
foresaw
foresee
foreseeable
frivolity
geneticist
gratefully
guaranteed
gynecologist
hoi polloi
hors d'oeuvre
ignominiously
imbue
immaculate
immiscible
impedance
incipient
inherited
insightful
lavender
lectern
liaison
lieu
marshal
masquerading
matriarchal
mayonnaise
medieval
methodically
mosquito
neutralize
obsolescence
occurrence
paraplegic
parroting
phenomenal
pliers
preceded
preceding
programmatic
proletariat
remunerate
sanctity
scholarships
semblance
senesce
shish kebab
supersedes
surreptitiously
symmetric
sympathetic
tassels
thereabouts
tragedy
triptych
ubiquitous
ubiquity
unnecessarily
unnecessary
vicious
viscous
---< end sample spelltxt.txt >---
Loading...