[Grml] Speakup and non-ascii characters

Michael Whapples mwhapples at aim.com
Sun May 24 17:32:08 CEST 2009

Firstly, sorry I made some simple mistakes which probably confused you, 
the main ideas are correct though. I think you hit the nail on the head 
when you mentioned that GRML uses unicode, I don't think the speakup 
character table is, hence the two are using different encodings, for 
example on my system when I type £ speakup will say it is an "u acute".

I gave the path /sys/modules/speakup/parameters/characters for the 
speakup character table, this should be 
/sys/module/speakup/parameters/characters (checked on my GRML HD 
installation and the GRML 2009.05RC1 CD, I believe also correct for the 
2008.11 release, earlier ones I think may differ). Although you may 
start speakup differently on GRML it still is installed as modules, 
there's just some scripts to take certain boot options like swspeak and 
then load the correct modules and set some other things (eg. raise audio 
volume to something sensible).

Anyway hopefully you will now have the speakup table, and can read its 
structure (numerical value of character in first column, text which 
should make the synth say the correct character name in the second column).

I believe it is best to not modify the original table, so to edit it 
first thing is to copy it:

$ cp /sys/module/speakup/parameters/characters 

Now edit the copy (in my above example ~/speakup_characters.customised). 
Once your happy with your modified version copy it back to the actual 
speakup table file (be certain it is what you want as once copied back 
speakup will use it).

$ cp ~/speakup_characters.customised 

Now you may wish to store your customised version of the speakup table 
somewhere it may be perminantly stored (eg. USB drive).

Now on a HD installation you can add the copy command to a script and 
have it run at start up. Simplest may be to add the command to /etc/rc.local

Now for my comment regarding speechd-up. I was thinking of speechd-up 
version 0.4 but GRML uses speechd-up 0.3. In speechd-up 0.4 I think 
there is an option -t to tell speechd-up not to overwrite the speakup 
tables, I am not quite sure what speechd-up 0.3 does. However looking at 
the help message for speechd-up on the GRML 2009.05RC1 CD there is an 
option -c or --coding to specify the coding used, may be this has 
something to do with the table it overwrites the standard speakup 
character table. One word of warning, if you may switch to another synth 
while using speakup, speechd-up will not restore the speakup table when 
it exits, and so some hardware synths may not work as you would hope, 
either copy a new table to /sys/module/speakup/parameters/characters or 
restart the machine.

I hope now I have corrected some of those mistakes things are clearer.

Michael Whapples
On -10/01/37 20:59, Hermann wrote:
> On 23.05.2009 at 23:01:54 Michael Whapples<mwhapples at aim.com>  wrote:
>> Hello,
>> This is in response to an email by Hermann, I am not doing it as a reply
>> as I get messages as a digest and lost the original message.
>> First thing to note is that speakup as far as I know has its own
>> character table which it uses for pronouncing characters when saying
>> individual characters (eg. spelling, cursoring over characters, etc).
>> This table can be found in /sys/modules/speakup/parameters/characters
>> and so can be edited there.
> Did you test this on a GRML machine? This path does not exist.
> Remember that Speakup is set up in a different way on GRML: Start with
> swspeak instead of adding a specific Speakup module to /etc/modules.
>> Speakup by default lists characters up to
>> value 255, although values beyond 127 depend on the encoding used (eg.
>> latin1, utf-8, etc) for the actual definition.
> GRML is based on unicode and so should Speakup. Perhaps this is the
> problem?
>> As far as I know espeakup
>> doesn't modify this table, speechd-up can replace the tables or leave
>> them alone (there is an option for speechd-up to specify this).
> Speechd-up relies on the settings of Speech-dispatcher, so it works in
> most cases, except the ones I discribed.
>> One way to fix this is to create a script to modify the table or copy a
>> new table into /sys/modules/speakup/parameters/characters and to do this
>> on start up.
> How could such a script look like? I'm not a scripter, and how can this
> be implemented into the startup procedure?
>> Does this help?
> Sorry, not really at the moment.
> Hermann

More information about the Grml mailing list