[espeak-ng:master] reported: 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 Comment on Issue #950 eSpeak does not restore the language after speaking particular characters that forceably use a different language
By jaacoppi:

On my machine the bug already existed on version 1.50 from 2019 and reverting 19e2f69 doesn't fix it.

Looks identical to to #915 / #929 but with a different commit. The problem is the same, there's no change on my build environment (Arch linux, gcc 11.1) so I don't know how to confirm this.

Debug info:

espeak-ng --version eSpeak NG text-to-speech: 1.50 Data at: /usr/share/espeak-ng-data

espeak-ng "Ꭿ This is a test" -X Translate 'ꭿ' Found: 'this' [DIs] $u+ $strend $verbsf $nounf Found: 'is' [Iz] $pastf $only Flags: a $nounf Translate 'a' 1 a [a] 26 ) a ( [a#]

Translate 'test' 1 t [t]

1 e [E]

1 s [s]

1 t [t]

@.*** @z '@ @.***


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

[espeak-ng:master] New Comment on Issue #950 eSpeak does not restore the language after speaking particular characters that forceably use a different language
By valdisvi:

I can confirm @jaacoppi. Reverting 19e2f697f63a20911e65f7363a2458e733fdd937 doesn't fix it for me too.


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

[espeak-ng:master] New Comment on Issue #950 eSpeak does not restore the language after speaking particular characters that forceably use a different language
By valdisvi:

@michaelDCurran, note that around that time even three parallel branches exist and, if you are using git bisect, you have to check each particular branch. Att22 I tried to linearise all pull requests in one single branch by cherry-picking commits instead of merging, but it was too much effort.


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

[espeak-ng:master] New Comment on Issue #950 eSpeak does not restore the language after speaking particular characters that forceably use a different language
By jaacoppi:

We have tests/api.c that has different calls to espeak_Synth(). Could that be utilized somehow?

I'm not an expert with the API. I guess ways to test include: 1. md5sum of the produced audio - I don't know how to get it with the API. 2. read the debug information from -x or -X executable startup parameters - I don't know if they are reachable through the API.

Since the espeak-ng executable isn't affected by the revert but the API is, can we say that there's actually two different bugs causing the same issue? 1. The executable has had the bug at least since version 1.50 and the cause is still undetected. 2. The API has had the bug since the (seemingly unrelated) faulty commit

Could this be yet another buffer overflow somewhere?