[espeak-ng:master] reported: broken symbol substitution #github


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

[espeak-ng:master] New Comment on Issue #874 broken symbol substitution
By jaacoppi:

https://github.com/espeak-ng/espeak-ng/blob/b19e8017339b4e11d4fde884b23bec5c98d84542/src/libespeak-ng/dictionary.c#L461-L466

Here's the code that prints the (en), (fr) and (base) with -x option. phoneme_tab_list[plist->tone_ph].name should be en, but it's base.


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

[espeak-ng:master] New Comment on Issue #874 broken symbol substitution
By jaacoppi:

https://github.com/espeak-ng/espeak-ng/blob/b19e8017339b4e11d4fde884b23bec5c98d84542/src/libespeak-ng/translate.c#L805-L809

https://github.com/espeak-ng/espeak-ng/blob/b19e8017339b4e11d4fde884b23bec5c98d84542/src/libespeak-ng/translate.c#L1625-L1632

Doing a simple printf debug, it seems that these two blocks get executed when copyright is define like it currently is. With all other combos I debugged, like removing either definition or using other ^ words from fr_list these blocks are not executed.


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

[espeak-ng:master] New Comment on Issue #874 broken symbol substitution
By jaacoppi:

These diffs for fr_emoji produce different results: 1. This would work: -© symbole Copyright // [00A9] text|emoji +© symbole // [00A9] text|emoji

  1. This doesn't speak "Copyright" at all, but no garbage either: -© symbole Copyright // [00A9] text|emoji +© Copyright // [00A9] text|emoji

  2. Works (but is wrong): -© symbole Copyright // [00A9] text|emoji +© symbole copyrig // [00A9] text|emoji

  3. Leaves out the second word (even though it's missing a t so it shouldn't happen): -© symbole Copyright // [00A9] text|emoji +© symbole copyrigh // [00A9] text|emoji

The keyword in the code seems to be phonSWITCH but I don't really understand how it works.


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

[espeak-ng:master] New Comment on Issue #874 broken symbol substitution
By npitre:

Actually, the problem occurs whenever one word in the emoji translation file is to be pronounced in another language. For example, here fr_emoji has "symbole copyright". But "copyright" normally triggers a switch to the en voice. And when that happens from the emoji translation file then it produces garbage.


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

[espeak-ng:master] New Comment on Issue #874 broken symbol substitution
By npitre:

The copyright symbol in frlist is the only one with "^_en". All the others are complete words. Could that be a recursion problem?

Although, if I comment out the one in fr_emoji then it works fine.

If I comment out the one in fr_list instead, keeping the one in fr_emoji then it fails again.