Re: how to fix pronouncing abbreviations in NVDA?

Quentin Christensen

Oh I didn't necessarily mean "try to be clever" sarcastically.  There are plenty of good examples of algorithms deciphering some complex meaning out of something.  In the case of abbreviations, it's tricky both because there can be multiple meanings of any given abbreviation and how do you know exactly which one is being referred to, and there is often not enough context to determine, even if the synthesizer was programmed to be able to tell.  I don't *think* any of them are, but in any case, reading with "say all" could theoretically work, but if you are moving word by word, then all the synthesizer would be passed is "Dr." - without any surrounding text, it's impossible to know if the meaning is "Drive" (as in the street type) or "Doctor", so in that case, it is usually better to just read the two letters (with or without the dot depending on punctuation).

The thing which makes it particularly frustrating, is that there is no way to tell the synthesizer what you want - whether you want it to make those guesses about meaning or not.  It would be really great if there was a flag we could pass it which said "make your best guess as to meaning" or "simply read the exact text passed and do not change anything" - at least if that was the case we could add an option to the voice settings and users could make their own decision.

As it is, all we can do now is use the speech dictionary to override what gets sent to the synthesizer to try to correct assumptions if they are wrong.

Even in the case of numbers, yes we know users want more control over that, and we do have at least one open issue for it, and it should be theoretically possible (I haven't looked at what technical blockers there are currently, if any) - but again, all we can do is give you the opportunity to make a blanket ruling about how you want numbers pronounced.  We can't choose, if it's a zip / post code do this, if it's a phone number, do that, if it's my bank balance (well ok, it's going to read single digits for that anyway! *grin*)...


On Fri, May 20, 2022 at 9:05 AM Brian Vogel <britechguy@...> wrote:
On Thu, May 19, 2022 at 06:28 PM, Quentin Christensen wrote:
NVDA passes the information on to the synthesizer, as it sees it ("sd" or "SD" in this case), it is up to the synth to work out how to pronounce it and unfortunately they often try to be clever and work out what abbreviations are rather than simply saying what is presented.

Not to argue with you (as what you say is accurate), but I don't consider it "being clever" for a synth to try to work out what unpronouncable character sequences might mean, and pronounce the meaning, rather than always doing a character by character reading.

To me, any of the 2-character US State abbreviations are more likely to make the most sense when announced as their state names rather than the two characters.  There are, of course, exceptions.

We see the same sort of thing when it comes to numbers.  I'd rather hear fifteen pronounced as such rather than one five.  But there are definitely contexts where huge numbers are in constant use where it's more handy to have them announced digit-by-digit, which can be achieved, but that would be the exception case rather than the rule when handed to something to pronounce.  

And, of course, context always matters.  In the case of numbers, US ZIP Codes as well as Social Security Numbers are never pronounced by human readers as a numeric value, but as a digit sequence.

Synth writers are trying to apply certain rules about what to pronounce how, and when, based on how it's generally done by most speakers.  Mistakes are, of course, inevitable, and that's the beauty of dictionaries to be able to handle these mistakes on a case-by-case or, in the case of regular expressions, class-by-class, basis.

Brian - Windows 10, 64-Bit, Version 21H2, Build 19044  

You can't crush ideas by suppressing them. You can only crush them by ignoring them.
     ~ Ursula LeGuin, The Dispossessed

Quentin Christensen
Training and Support Manager

Join to automatically receive all group messages.