For ⟨ae⟩, we used to use the Latin [[aI]] phoneme, which sounds like
/ae/. Call that phoneme [[aE]] for us and introduce a separate [[aI]]
one, which sounds more like /ai/ (since Sindarin has both, and they’re
supposed to sound different, though Appendix E of The Lord of the Rings
notes that there is nothing closely corresponding to ⟨ae⟩ in English and
that it may be pronounced like ⟨ai⟩). Furthermore, for ⟨oe⟩, just remove
the TODO – the Latin phoneme is called [[OI]] but sounds more like /oe/
than /oi/, so it’s actually just fine for our purposes. Finally, the
⟨ui⟩ diphthong is copied from Finnish, just like in Quenya.
Both are copied from the Finnish phonemes, since Finnish was a major
inspiration for Quenya. This means that the ⟨iu⟩ diphthong is a
“falling” one – according to Appendix E of The Lord of the Rings, this
is the original pronunciation, but by the Third Age (the time in which
The Lord of the Rings is set) it had become a “rising” one, so I may
change the phoneme later, not sure.
Also, inherit the Elvish phonemes from Latin, because Esperanto doesn’t
have /y/. (Quenya doesn’t need that – ⟨y⟩ is a consonant there – so
maybe I’ll separate their phonemes at some point. For now, Latin works
well enough for both as far as I can tell.)
This prepares the languages of Quenya and Sindarin, setting up their
infrastructure without declaring a lot of rules yet – just enough for
“Eä” (a Quenya word, but I can’t think of a similarly simple one for
Sindarin). Phonemes are inherited from Esperanto for now.
There is no fr-CA language dialect dialect file, nor has there
been in the espeak/espeak-ng history.
The fr-CA phoneme table defined the additional phonemes [U], [y"],
[E:], and [A]. The fr-FR phoneme table mapped these to [u], [y],
[E], and [a] respectively. This meant to describe the phonemes that
have not been merged in fr-CA, but have merged in fr-FR, as described
in https://en.wikipedia.org/wiki/Quebec_French_phonology.
The only use of these phonemes in the French dictionary was with
the word "tramway" using [E:]. This has been replaced with [E] to
match the rest of the dictionary file transcriptions, and those
phonemes for fr-CA have been removed.
If fr-CA is supported in the future, the French dictionary would
need to be modified to reverse the merger of the phonemes that are
not merged in fr-CA, with the merge logic being performed in the
fr-FR phoneme table like in the code being removed in this commit.
Remove the IPA phoneme table and associated und-fonipa voice.
Supporting phoneme-based voices in espeak-ng is currently complex,
and has issues that need to be fixed in the core code before
adding support for them.