espeakup: Voice change after Ctrl+F7 => Crtl+F2 if it is not a language

Samuel Thibault samuel.thibault at ens-lyon.org
Sun Mar 10 07:10:34 EDT 2019


Didier Spaier, le dim. 10 mars 2019 11:23:31 +0100, a ecrit:
> espeakup being started by a startup script like this:
> ALSA_CARD=PCH espeakup -v fr-fr 

I guess you meant -V, not -v ?

> Ctrl+Alt+F7 # Mate is started
> Ctrl+Alt+F2 # log in as regular user
> Now espeak-ng speaks with an English voice.

So it's probably the restart of voice done by reinitialize_espeak which
is erroneous.

> This doesn't happen if espeakup is started like this:
> ALSA_CARD=PCH espeakup -v fr

I am actually surprised that it's that way, what I see would be the
converse: reinitialize_espeak() uses espeak_SetVoiceByName (i.e. fr-fr
only would work).

> I have seen this commit:
> https://github.com/williamh/espeakup/commit/ee099174d849e32bf7b555e458963d27f84c64b2
> "Allow a voice to be selected by language name"
> but do not know if/why this could be related to that. 

Because it brings two ways of setting the voice: either by language or
by name.

I'd say synth_t's char *voice field should be replaced by a espeak_VOICE
voice_select field, and make set_voice fill it before just always
calling espeak_SetVoiceByProperties(), trying to use the "name" member
before trying to use the "language" member. reinitialize_espeak()
then just has to call espeak_SetVoiceByProperties on it instead of
espeak_SetVoiceByName.

Could you have a look at doing that?

Samuel


More information about the Speakup mailing list