Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo


#94 Primary and secondary stress markers in IPA output


The primary and secondary stress markers in IPA output are placed in a wrong manner. They should be before the syllable start rather before the vowel. Note that some of the IPA output can be processed by IPA syllabification scripts (such as https://github.com/codyrobbins/syllabify\), which should be quite trivial to port. But to use them, one would also need to distinguish tied glyphs (i.e., distinguish between /t͡ʃ/ and /tʃ/, cf. nutch and nutshell). Adding those should be easy enough, though this is maybe a feature request. But the stress marker thing is a bug.


    • assigned_to: nobody --> jonsd
  • eSpeak doesn't know whether a consonant belongs to the syllable of the previous vowel or the next vowel. The rules for syllabification are language dependent, and perhaps ambiguous in some cases. eSpeak cirrently does not have this information.

    I expect that it will be rare for someone to need correct placement of stress markers in eSpeak's IPA output. But if so then he can run a syllabification program, such as the one which you mention.

    eSpeak could be changed to produce IPA output which removes the ambiguities of multi-character phoneme codes. This could be either with a U+0361 tie or by separating the individual phonemes with a character such a zero-width space. The latter would be simpler to implement, and perhaps simpler to interpret.

  • Well, I guess it would be enough to add the warning (in the docs) that eSpeak does not move stress markers in the IPA output.

    I'm not sure why you say that zero-width space would be simpler than U+0361 tie, as both are simple Unicode chars. Adding a zero-width space is not really a standard, so probably the tie would be better, though any of them is fine as far as they are used consistently.

  • Ties are now in eSpeak 1.47. Use option --ipa=1.

    Accurate syllabification is beyond the abilities of eSpeak. It requires more knowledege about the individual languages, and is often ambiguous.

    • status: open --> closed-fixed
  • In eSpeak 1.45.05,
    The --ipa option can take a value

    --ipa=1 Use ties (U+0361) for phoneme names of more than one letter.
    --ipa=2 Use Zero Width Joiner for phoneme names of more than none letter.
    --ipa=3 Separate phoneme names with underscore characters.