[espeak-ng:master] new issue: eSpeak does not restore the language after speaking particular characters that forceably use a different language #github


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Issue Created by michaelDCurran:
#950 eSpeak does not restore the language after speaking particular characters that forceably use a different language

Originally reported in nvaccess/nvda#12465

It seems that for certain characters such as (u+13af, CHEROKEE LETTER HI), eSpeak switches to a specific language when speaking the character. However, as of commit 19e2f69 , eSpeak no longer resets the language back to the language most recently set by ssml or the user.

Test case:

echo "Ꭿ This is a test" | espeak-ng

After the first character, espeak then speaks "This is a test" in a strange accent, a bit like "thos os au tost".

If reading a word or line with this character in NVDA with eSpeak, eSpeak remains in this strange accent until the NVDA user either resets their configuration or restarts NVDA.

Looking at the commit, I think there was an assumption that the language can only change due to ssml or by the user. But in this case, the language is changed by the actual characterset itself.

Unless there were other reasons for this commit other than code cleanup, I think this commit should be reverted.