Several problems with the unicode support (was [patch 0/3] speakup: support 16bit unicode screen reading)

Chris Brannon chris at the-brannons.com
Mon Mar 13 07:20:15 EDT 2017


Samuel Thibault <samuel.thibault at ens-lyon.org> writes:

> Zahari Yurukov, on sam. 11 mars 2017 19:04:04 +0200, wrote:
>> I didn't know about the direct mode - enabling it indeed fixes the
>> problem, but has another unplesent effect - espeak doesn't read most
>> characters, i.e. punctioation, space, etc.
>
> That's not expected. Which version of espeakup are you using? Version
> 0.80 should be working fine in that regard.

Here's what you need to do to make synth punctuation spelling work in
direct mode:
echo 1 > /sys/accessibility/speakup/soft/punct
That sets espeakup's punctuation setting to "all".  There are multiple
punctuation settings in Speakup.
soft/punct is the synthesizer's punctuation level.
It is the amount of punctuation that will be spoken by the synthesizer
when it receives punctuation characters.  There's only one way to change
this: via /sys/accessibility/speakup/soft/punct.  Ordinarily, you set it
once and don't mess with it.  punclevel and reading_punc are used by
the screen reader, and control what amount of punctuation gets delivered
to the synthesizer.  These are independent of the synth punctuation
setting, and they're the ones that can be changed with keyboard
commands.  So we have three punctuation settings:

* synthesizer punctuation: what amount of the *received* punctuation is
actually spoken by the synthesizer?  Set by /sys/accessibility/soft/punct.
* punclevel: when speaking text as it is displayed on the console, what
amount of punctuation do we deliver to the synthesizer?  Set by
/sys/accessibility/speakup/punclevel, or keyboard commands.
* reading_punc: In review mode, when reviewing by line, what amount of
punctuation do we deliver to the synth?  Set by
/sys/accessibility/speakup/reading_punc, or keyboard commands.

So to make a long story short, in direct mode, set soft/punct to 1 and
forget it.  Just use punclevel and reading_punc keyboard commands to
control how much punctuation actually gets delivered to the synth.

Now here's another problem that I see.  I don't think the synth
punctuation setting was ever documented.  speechd-up does one thing,
espeakup does another.
With espeakup, 0 is no punctuation, 1 is all punctuation, and 2 is some
punctuation.
With speechd-up, 0 is all punctuation, 1 and 2 are some punctuation, 3
is no punctuation.

I don't think espeakup will speak the space character in direct mode,
and I don't know of the best way to make this happen.  It just speaks
silence when you cursor over it.

There's one more problem with direct mode and punctuation.  The various
messages that Speakup uses for help, errors, or indicating something to
the user have punctuation characters in them.  With the synth
punctuation setting set to 'all", you're going to hear those characters,
even though they should never be heard by the user.  Perhaps they need
to be stripped?

Hope this is all clear.

PS.  Zahari, I am not seeing your messages.  I'm seeing Samuel's.  Are
you subscribed to the list?  I think at one time the list was dropping
mail from non-subscribers, but I don't know whether that is still the
case.

-- Chris


More information about the Speakup mailing list