Commit Graph
1360 Commits
Author SHA1 Message Date
Lucas Werkmeister 4ed36b07ec Fix Elvish ⟨e⟩, ⟨é⟩, ⟨ê⟩ vowels
⟨e⟩ almost certainly always represents [ɛ], not [e]. Appendix E of The
Lord of the Rings describes it as the sound in English “were”, and I’m
not aware of any English dialect that pronounces “were” with an [e].

In Quenya, long ⟨é⟩ (and, presumably, ⟨ê⟩) is, according to Appendix E,
“tenser and ‘closer’”, which I assume means [e]. Several online sources
agree with this as well.

In Sindarin, Appendix E is quite clear that ⟨é⟩ has “the same quality”
as ⟨e⟩, only differring from it in length: I assume this must mean that
⟨é⟩ is [ɛː] in Sindarin. The online information on this is confusing and
sometimes contradictory even within the same page; several sources claim
that Sindarin has an [eː], but I have not seen this claim substantiated
with a source from Tolkien, and I suspect it’s simply a confusion with
Quenya. It scarcely matters, anyway: Sindarin words with ⟨é⟩ or ⟨ê⟩ seem
to be pretty rare. (I’m aware of a single word with an ⟨é⟩ – the name
Eluréd, son of Dior – and the Omikhleia Sindarin dictionary [1] features
some words with ⟨ê⟩, giving their pronunciation with [ɛː].)

The [[EI]] phoneme for Sindarin ⟨ei⟩ is copied from the base2 phonemes.

[1]: https://www.jrrvf.com/hisweloke/sindar/index.html
2021-07-18 13:28:03 +02:00
Lucas Werkmeister cc4b50f3f4 Replace Elvish [[ui]]/[[uI]] diphthong
Previously, we used vdiph/ui_4 for [[ui]]; I think the main reason for
that was that I didn’t like how the most common ⟨ui⟩, vdiph/ui, seemed
to almost vanish in “Cuiviénen”. However, vdiph/ui_4 has the curious
property that in some positions, e.g. ⟨uia⟩ in “tuia” or ⟨uil⟩
“tuilindo”, it sounds (to me) more like /ul/ than /ui/. (This also
affects Finnish, which seems to be the only other language that uses
vdiph/ui_4 [a few other languages also use it for [[ui]] but don’t seem
to emit that phoneme in their rules files] – listen to eSpeak NG
pronounce Finnish ”luiun”, for instance.) I eventually found out that
this can be worked around by substantially lengthening the phoneme
(length 500 seems to work in all positions), but this extreme length
(the absolute maximum is just 511) becomes rather noticeable whenever
the ui is used, including in positions where it had sounded just fine
before. Meanwhile, the more standard vdiph/ui can be made to sound
reasonably well in “Cuiviénen” with a much smaller increment to its
length: 290 (as also in ph_lithuanian) instead of 240 (as in ph_base2)
is enough. In this version, [[uI]] sounds acceptable enough for Elvish
⟨ui⟩ in all positions, as far as I can tell.
2021-07-18 13:28:03 +02:00
Lucas Werkmeister 9a1bb4ccf9 Add Quenya ⟨hy⟩
According to Appendix E of The Lord of the Rings, this has the same
relation to ⟨y⟩ ([j]) as ⟨hw⟩ ([ʍ]) does to ⟨w⟩ ([w]) – this probably
means the voiceless palatal fricative [ç], though Wikipedia says a
voicless palatal approximant (which would be closer to [j], the voiced
palatal approximant) is sometimes also posited.

We previously emitted [[hj]] for ⟨hy⟩, which sounds fairly close to [ç],
similar to how [[hw]] is fairly close to [ʍ] (see previous commit) –
however, translating it into [[C]] again means better --ipa output.

(In Sindarin, ⟨hy⟩ does not occur.)
2021-07-18 13:28:03 +02:00
Lucas Werkmeister 2f77829172 Add Elvish ⟨hw⟩
This is “a voiceless w, as in English white (in northern pronunciation)”
according to Appendix E of The Lord of the Rings, and so we copy the
[[w#]] phoneme from the English phonemes. I can’t actually hear much of
a difference from the previous [[hw]] (I know what the difference
between [[w]] and [[w#]] should be, but [[hw]] already sounds like
[[w#]] to me), but at least this improves the --ipa output, changing it
from [hw] to [ʍ].
2021-07-18 13:28:03 +02:00
Lucas Werkmeister a39b6b7079 Add Quenya ⟨hr⟩ and Sindarin ⟨rh⟩
Both represent a “voiceless R”, which I believe means a voiceless
alveolar trill, [r̥]. Ideally this would be one phoneme, but I’m not sure
eSpeak NG currently has a phoneme for this. The Wikipedia article [1][2]
lists occurrences in comparatively few languages, and I chose Welsh for
guidance: eSpeak NG currently turns Welsh “Rhagfyr” into [[hr'agvYr]],
and [[h]] and [[r]] are apparently just two separate phonemes, so for
now we do the same for Quenya and Sindarin, and emit hR.

[1]: https://en.wikipedia.org/wiki/Voiceless_alveolar_trill
[2]: https://en.wikipedia.org/wiki/Special:PermanentLink/1024721264
2021-07-18 13:28:03 +02:00
Lucas Werkmeister 2d47c32ba9 Add Quenya ⟨hl⟩ and Sindarin ⟨lh⟩
Both represent a “voiceless L”; Appendix E of The Lord of the Rings
notes that the Quenya ⟨hl⟩ was pronounced like /l/ by the Third Age, but
for now we reproduce the original pronunciation. (Maybe we can later use
conditional rules for different pronunciations, but I think for now I
won’t go down that road.)
2021-07-18 13:28:03 +02:00
Lucas Werkmeister 438be8ed50 Change short Elvish ⟨i⟩ from [[i]] to [[I]]
The B-side of the album Poems and Songs of Middle Earth begins with a
reading of the Sindarin poem A Elbereth Gilthoniel by J.R.R. Tolkien
himself, and in this recording, as best I can tell, he always pronounces
short i (i.e. ⟨i⟩, not ⟨í⟩ or ⟨î⟩) as /ɪ/ rather than /i/, regardless of
stress; for instance, the word “silivren” has the same i-sound twice (it
is not “silívren”). I believe this means that we should use the phoneme
[[I]], not [[i]], for ⟨i⟩ (in both Quenya and Sindarin).
2021-07-18 13:28:03 +02:00
Lucas Werkmeister 8f9c458493 Fix Quenya ⟨ch⟩ pronunciation
Appendix E of The Lord of the Rings describes it as “the sound heard in
bach (in German or Welsh)”; I think that means [χ], not [x] (voiceless
uvular rather than velar fricative), and out of the base1 phonemes,
[[X]] is closer to that than [[x]]. (The German phonemes redefine [[x]]
to be closer to [[X]], if I’m not mistaken, but I don’t think we need
that. Note also that we actually need [[x]] for Quenya ⟨ht⟩.)
2021-07-18 13:28:03 +02:00
Lucas Werkmeister 1c4aafbbfa Add Quenya ⟨ht⟩ digraph
According to Appendix E of The Lord of the Rings, “[t]he Quenya
combination ht has the sound of cht, as in German echt, acht”. As echt
and acht do not have the same cht sound in German, I assume this means
that they are allophones in Quenya just as in German, and ⟨ht⟩ means
[çt] after front vowels but [xt] after back vowels. Add tests for both:
Telumehtar, the Quenya name of the star Orion, is given in Appendix E as
an example of ⟨ht⟩; Mahtar is the father of Nerdanel, wife of Fëanor.
2021-07-18 13:28:03 +02:00
Lucas Werkmeister 74ec56a192 Add Sindarin “muta cum liquida” words to sjn_list
According to the regular stress rules from Appendix E of The Lord of the
Rings, all three of these words should be stressed on the penultimate
(second) syllable, since that syllable is followed by two consonants;
however, the way they are used in poems suggests they should actually be
stressed on the antepenultimate (first) syllable (example: “in IMlaDRIS
it DWELLS”). According to Concerning Stress Placement In Sindarin [1],
this can be attributed to a hypothetical “muta cum liquida” rule like in
Latin, where some syllables count as light even if they’re followed by
two consonants, because both consonants belong to the following syllable
(e.g. IM-la-dris instead of im-LAD-ris). However, the rule is apparently
not applied systematically: according to [2], in another poem the word
“nogothrim”, which is quite similar in structure to “Nargothrond”, is
clearly stressed on the penultimate syllable. For this reason, we don’t
try to define the “muta cum liquida” rule in sjn_rules (or qya_rules),
but only add the three names Imladris, Menegroth and Nargothrond as
exceptions to the sjn_list.

[1]: https://menegroth.github.io/stress-in-sindarin.html
[2]: https://mildred-of-midgard.dreamwidth.org/158375.html#comment-cmt49575
2021-07-18 13:28:03 +02:00
Lucas Werkmeister 9ac1a5bffb Fix treatment of diphthongs for stress in Elvish
Stress is determined based on the syllables, not the vowels, so the
diphthongs need to count as a single syllable. If there is a diphthong
at the end of a word, the penultimate syllable can still be unstressed
if it is light. (The name of Arvedui, last king of Arthedain, is one
example of this that I could think of, but I’m sure it’s not the only
one.)
2021-07-18 13:28:03 +02:00
Lucas Werkmeister 65d1ec7f1c Rearrange exception for Sindarin initial prevocalic ⟨i⟩
Using a + is simpler than an additional rule, and scales better if more
rules are introduced later. (A single + seems to be sufficient.)
2021-07-18 13:28:03 +02:00
Lucas Werkmeister ca2ca4c5cb Add Sindarin ⟨ae⟩, ⟨ai⟩, ⟨oe⟩, ⟨ui⟩ diphthongs
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.
2021-07-18 13:28:02 +02:00
Lucas Werkmeister e8fb04bb44 Add Quenya ⟨iu⟩, ⟨ui⟩ diphthongs
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.
2021-07-18 13:27:37 +02:00
Lucas Werkmeister c6e6f60154 Make ph between vowels long in Elvish
According to Appendix E of The Lord of the Rings, ⟨ph⟩ stands for /f/
when final (because ⟨f⟩ is pronounced as /v/ in that position), and
otherwise is used instead of ⟨f⟩ either because it’s derived from ⟨p⟩
(in which case it’s presumably pronounced just like ⟨f⟩), or to
represent an especially long /f/. We can’t really tell which case we
have, but from the Omikhleia Sindarin dictionary [1], it appears that
all the long ⟨ph⟩’s are between two vowels, and all the short ones have
at least one adjacent consonant, so let’s use that as a rule and hope it
works out. (The Ambar Eldaron Quenya dictionary [2] is less easily
searchable, so I’m just hoping that this rule works reasonably well for
both languages.)

[1]: https://www.jrrvf.com/hisweloke/sindar/index.html
[2]: https://ambar-eldaron.com/telechargements/quenya-engl-A4.pdf
2021-07-18 13:27:26 +02:00
Lucas Werkmeister f25fda6cd8 Define some Elvish diphthongs
Not all of the diphthongs in Quenya and Sindarin are defined in the
Latin phonemes, and for now we’re sticking to those, so some diphthongs
just get TODOs for now. Also, we’re temporarily using the same phoneme
for ⟨ae⟩/⟨ai⟩ and ⟨oe⟩/⟨oi⟩, which should really be different (though
Appendix E of The Lord of the Rings notes that ⟨ae⟩ and ⟨oe⟩ don’t have
close English equivalents, and that they “may be pronounced as ai, oi”).
2021-07-18 13:27:26 +02:00
Lucas Werkmeister ee7e057821 Fix extra-long vowels in Elvish languages
A circumflex “specially prolonged” vowels; according to Appendix E of
The Lord of the Rings, only in Sindarin, but the Ambar Eldaron Quenya
Dictionary [1] also has some very few circumflex words (sû, lîs), so
let’s support the circumflex in Quenya as well. Marking extra-long
vowels with two colons seems to work well and is also done in several
other languages.

[1]: https://ambar-eldaron.com/telechargements/quenya-engl-A4.pdf
2021-07-18 13:27:26 +02:00
Lucas Werkmeister db971c8201 Fix long vowels in Elvish languages
Long vowels, marked with an acute accent or a circumflex, are longer
than short vowels (duh) and always make a heavy syllable (i.e. we don’t
include the rules to move stress to the previous syllable). In Quenya,
⟨é⟩ and ⟨ó⟩ are “tenser and ‘closer’” than the short vowels, according
to Appendix E of The Lord of the Rings, while in Sindarin they’re
supposed to be the same; the phonemes we inherit from Latin seem to
reproduce this reasonably well for Quenya, and for now we use them for
Sindarin too, which works nicely for the most common Sindarin word with
a long o, “Lothlórien” (because Lórien is actually a Quenya name, and
therefore I assume *that* ⟨ó⟩ should actually be /o/ and not /ɔ/). I
might adjust the phonemes later (at which point Lothlórien will
presumably have to go in sjn_list).
2021-07-18 13:27:26 +02:00
Lucas Werkmeister d201e17418 Fix stress of Elvish ⟨ch⟩, ⟨dh⟩, ⟨th⟩
In Elvish languages, ⟨ch⟩, ⟨dh⟩, and ⟨th⟩ count as single consonants for
the purposes of stress, since they represent single letters in the
original scripts. The easiest way to implement this is to replace them
with single letters at the beginning – ⟨ð⟩ for ⟨dh⟩ and ⟨þ⟩ for ⟨th⟩ are
natural, and ⟨x⟩ for ⟨ch⟩ also makes some sense, though it means we need
to replace real ⟨x⟩ first (it’s not mentioned in Appendix E of The Lord
of the Rings, but does occur in some Quenya words, notably Helcaraxë).
Real ⟨x⟩ is pronounced like /ks/, but of course we need to spell that as
⟨cs⟩, since ⟨k⟩ does not occur in Elvish languages.
2021-07-18 13:27:26 +02:00
Lucas Werkmeister 3fa62f0ee3 Add basic stress rules for Quenya and Sindarin
The Elvish languages have the same general stress rule as Latin [1]:
stress falls on the penultimate syllable if that is heavy (contains a
long vowel, a diphthong, or a vowel followed by two or more consonants),
otherwise on the antepenultimate syllable. For Latin, espeak-ng
implements this by declaring “penultimate syllable” as the general
stress rule in espeak-ng-data/, and then adding rules in dictsource/
that match light syllables and move the primary stress to the previous
syllable, i.e. the antepenultimate one. We use the same basic principle
for the Elvish languages here (but using the terms “heavy” and “light”
rather than “weak” and “strong” like in the Latin files).

Note that this doesn’t fully implement the stress rules yet: we have no
concept of diphthongs, long vowels aren’t really properly handled yet,
and we also still count ⟨ch⟩, ⟨dh⟩, ⟨th⟩ as two consonants rather than
one as it should be. This will be improved separately (I prefer doing
this in small incremental steps).

[1]: https://menegroth.github.io/stress-in-sindarin.html
2021-07-18 13:27:26 +02:00
Lucas Werkmeister 74985f570f Fix rule for Sindarin initial ⟨i⟩
Sindarin ⟨i⟩ is only pronounced like ⟨j⟩ before another vowel and *at
the beginning of a word*. “Galadriel” does not have a /j/ sound.
2021-07-18 13:27:26 +02:00
Lucas Werkmeister b892a8b8c3 Add basic Quenya rules
Copied from Sindarin with only a few changes so far: initial ⟨i⟩ is not
special, ⟨qu⟩ exists, and ⟨y⟩ is a consonant.
2021-07-18 13:27:26 +02:00
Lucas Werkmeister a1c79f4c72 Add basic Sindarin rules
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.)
2021-07-18 13:27:26 +02:00
Lucas Werkmeister beeac74300 Initial setup for Elvish languages
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.
2021-07-18 13:27:26 +02:00
jaacoppi 4c7d8a013a Merge pull request #978
smj: cleaned commented lines

Also closes #927.
2021-07-12 18:37:34 +03:00
katrihiovain 45b7b8cc37 cleaned commented lines to help with debugging 2021-07-12 17:53:59 +03:00
Krzysztof Drewniak a8a804fc59 Add English pronounciation of "Krzysztof" to en_dict
This commit adds the usual English pronunciation of my name to the English dictionary.

We could, alternatively, add the native pronunciation, `kS'I2StOf` (or the closest approximation to it I could get out of the English synthesizer), but I'm not sure what the policy on that sort of thing is within the project.
2021-07-02 22:52:39 -05:00
agonzalezd fa476bb239 eu: Updated intervocalic j phoneme in Basque 2021-06-29 15:14:43 +03:00
agonzalezd 748ae2e69c eu: Updated rr and y for ES 2021-06-29 15:14:34 +03:00
agonzalezd 92c04bad3d eu: Added clarifying comment 2021-06-29 15:14:31 +03:00
agonzalezd 2fb981855b eu: Updated Basque phonetics and stress rule 2021-06-29 15:14:26 +03:00
SeanTolstoyevski 2fe8a1898f tr: Update tr_listx
Some words have been added to the dictionary for street language. But Espeak really mispronounced them.

I removed the mispronounced words.
And I wrote a better pronunciation rule for the following words:
* bağışlamak ba:@@Sla'mak
* bağışlayın ba:@@S'laj@n

These words should be lengthened by 1.5 in the first letter "i", in a subtle tone. (letter "ğ" is the reason for this. Normally there is no such rule.)
Previously, the letter "ı" (305) here was ignored.
Although the street language for Turkish looks like this, it is not. Since we have a dynamic language, it is not possible to implement all of them.

Therefore, I request you to accept these changes.
The tests were done on Windows. Pronunciations improved.
2021-06-12 13:06:47 +03:00
Juho Hiltunen 16f30f6522 fi: small changes 2021-06-06 16:30:41 +03:00
Juho Hiltunen 92b797a0e1 fi: changes to abbreviations 2021-06-06 16:30:10 +03:00
Juho Hiltunen 67086dc1da fi: add exceptions to doubling with -sti 2021-06-06 16:18:10 +03:00
Juho Hiltunen b513534995 fi: remove the english pronunciation of some loan words 2021-06-06 16:18:10 +03:00
ronaldaug 1df852a1ae add 'aWi' into vowels group 2021-05-28 14:43:42 +06:30
Juho Hiltunen 4825905835 cmn: handle latin characters as English text.
cmn now handles all latin characters as English.

The old functionality of assuming latin characters are pinyin can be
achieved with new language cmn-Latn-pinyin.
2021-05-16 19:23:34 +03:00
Valdis Vitolins 68518a6cc9 Merge pull request #940 2021-05-16 14:59:59 +03:00
Juho Hiltunen 4c7c68d5fe Merge pull request 936 2021-05-15 20:54:23 +03:00
Henry Krumb 8b29985256 de: add 'Ingenieurin', 'Ingenieurinnen' to German exception list & don't pronounce asterisk (gender star) in German text 2021-05-15 20:53:23 +03:00
Juho Hiltunen d91b7cf288 Rename zh (Mandarin) to cmn across the codebase.
See discussion in #933.
2021-05-11 20:14:54 +03:00
Juho Hiltunen 875174c3e9 Rename zhy (Cantonese) to yue across the codebase.
See discussion in #933.
2021-05-11 19:19:55 +03:00
Christianlm 6972465bf9 Updates italian source dictionaries 2021-05-10 11:23:28 +02:00
katrihiovain bffcd54356 cleaned duplicate rows from smj_list 2021-04-23 14:40:12 +03:00
katrihiovainandSebastien Le Maguer 93d3c67df6 smj: Support for new language Lule Saami
Co-authored-by: Sebastien Le Maguer <lemagues@tcd.ie>
2021-04-10 13:54:41 +03:00
Shadyar Khodayari 4967418a5c several exception words and an unknown charactor added. 2021-03-28 13:04:51 +04:30
Juho Hiltunen 1432684245 en: fix dengler and binghamton.
Pronounce dengler and binghamton the same way with and without a capital
letter.

Closes #895.
2021-03-23 18:01:32 +02:00
Juho Hiltunen f9b52b092a tr: temporarily disable a prefix and suffix rule '.
See issue #875. Words with two ' cause the first part of the word to be
lost.
2021-03-02 18:39:52 +02:00
Juho Hiltunen b9eb212217 Temporary workaround for #874
The phonSWITCH bug still exists and needs fixing.
2021-02-22 16:39:45 +02:00