qya: sjn: Add Tolkien’s Elvish languages Quenya and Sindarinmaster
@@ -412,6 +412,7 @@ phsource/phonemes.stamp: \ | |||
phsource/ph_punjabi \ | |||
phsource/ph_pyash \ | |||
phsource/ph_quechua \ | |||
phsource/ph_quenya \ | |||
phsource/ph_romanian \ | |||
phsource/ph_russian \ | |||
phsource/ph_russian_lv \ | |||
@@ -419,6 +420,7 @@ phsource/phonemes.stamp: \ | |||
phsource/ph_serbian \ | |||
phsource/ph_setswana \ | |||
phsource/ph_shan \ | |||
phsource/ph_sindarin \ | |||
phsource/ph_sindhi \ | |||
phsource/ph_sinhala \ | |||
phsource/ph_slovak \ | |||
@@ -589,11 +591,13 @@ dictionaries: \ | |||
espeak-ng-data/qdb_dict \ | |||
espeak-ng-data/qu_dict \ | |||
espeak-ng-data/quc_dict \ | |||
espeak-ng-data/qya_dict \ | |||
espeak-ng-data/ro_dict \ | |||
espeak-ng-data/ru_dict \ | |||
espeak-ng-data/sd_dict \ | |||
espeak-ng-data/shn_dict \ | |||
espeak-ng-data/si_dict \ | |||
espeak-ng-data/sjn_dict \ | |||
espeak-ng-data/sk_dict \ | |||
espeak-ng-data/sl_dict \ | |||
espeak-ng-data/smj_dict \ | |||
@@ -861,6 +865,9 @@ espeak-ng-data/qu_dict: dictsource/qu_list dictsource/qu_rules dictsource/qu_ext | |||
quc: espeak-ng-data/quc_dict | |||
espeak-ng-data/quc_dict: dictsource/quc_list dictsource/quc_rules dictsource/quc_extra dictsource/quc_emoji | |||
qya: espeak-ng-data/qya_dict | |||
espeak-ng-data/qya_dict: dictsource/qya_list dictsource/qya_rules | |||
ro: espeak-ng-data/ro_dict | |||
espeak-ng-data/ro_dict: dictsource/ro_list dictsource/ro_rules dictsource/ro_extra dictsource/ro_emoji | |||
@@ -882,6 +889,9 @@ espeak-ng-data/shn_dict: dictsource/shn_list dictsource/shn_rules dictsource/shn | |||
si: espeak-ng-data/si_dict | |||
espeak-ng-data/si_dict: dictsource/si_list dictsource/si_rules dictsource/si_extra dictsource/si_emoji | |||
sjn: espeak-ng-data/sjn_dict | |||
espeak-ng-data/sjn_dict: dictsource/sjn_list dictsource/sjn_rules | |||
sk: espeak-ng-data/sk_dict | |||
espeak-ng-data/sk_dict: dictsource/sk_list dictsource/sk_rules dictsource/sk_extra dictsource/sk_emoji | |||
@@ -0,0 +1,31 @@ | |||
// words with a single light syllable which should not be stressed | |||
// conjunctions: | |||
a $u | |||
an $u | |||
ar $u | |||
hya $u | |||
i $u | |||
mal $u | |||
nan $u | |||
o $u | |||
qui $u | |||
ta $u | |||
var $u | |||
// prepositions: | |||
et $u | |||
han $u | |||
ho $u | |||
lo $u | |||
mi $u | |||
mil $u | |||
no $u | |||
nu $u | |||
or $u | |||
pa $u | |||
po $u | |||
tar $u | |||
ter $u | |||
va $u | |||
ve $u | |||
yo $u |
@@ -0,0 +1,180 @@ | |||
// syllable nuclei: vowels (any length) and diphthongs | |||
.L01 i e a o u í é á ó ú î ê â ô û ui oi ai iu eu au | |||
// front vowels (finally): after these, ht is [çt] | |||
.L02 i e í é î ê ui oi ai | |||
// back vowels (finally): after these, ht is [xt] | |||
.L03 a o u á ó ú â ô û iu eu au | |||
.replace | |||
// turn x into cs, both because that’s how it’s pronounced | |||
// and to free up x as a single letter for ch (see immediately below) | |||
x cs | |||
// turn ch, dh, th into single consonants for stress purposes | |||
ch x | |||
dh ð | |||
th þ | |||
// turn k into c: both letters are equivalent in Tolkien’s languages, | |||
// with c usually reserved for Eldarin languages and k for others | |||
k c | |||
.group a | |||
a a | |||
ai (+ aI | |||
au (+ aU | |||
// light penultimate syllable: put stress on antepenultimate | |||
a (L01X =a | |||
a (CL01X =a | |||
.group á | |||
á a: | |||
.group â | |||
â a:: | |||
.group b | |||
b b | |||
bb b: | |||
.group c | |||
c k | |||
cc k: | |||
// recall that ch was replaced with x earlier | |||
.group x | |||
x X | |||
.group d | |||
d d | |||
db d: | |||
// recall that dh was replaced with ð earlier | |||
.group ð | |||
ð D | |||
.group e | |||
e E | |||
eu (+ EU | |||
// light penultimate syllable: put stress on antepenultimate | |||
e (L01X =E | |||
e (CL01X =E | |||
.group é | |||
é e: | |||
.group ê | |||
ê e:: | |||
.group f | |||
f f | |||
f (_ v | |||
.group g | |||
g g | |||
gg g: | |||
.group h | |||
h h | |||
L02) ht Ct | |||
L03) ht xt | |||
hl l# | |||
hr hR | |||
hw w# | |||
hy C | |||
.group i | |||
i I | |||
iu (+ iu | |||
// light penultimate syllable: put stress on antepenultimate | |||
i (L01X =I | |||
i (CL01X =I | |||
.group í | |||
í i: | |||
.group î | |||
î i:: | |||
// j does not occur in Quenya | |||
// recall that k was replaced with c earlier | |||
.group l | |||
l l | |||
.group m | |||
m m | |||
.group n | |||
n n | |||
.group ng | |||
ng Ng | |||
ng (_ N | |||
.group o | |||
o O | |||
oi (+ OI | |||
// light penultimate syllable: put stress on antepenultimate | |||
o (L01X =O | |||
o (CL01X =O | |||
.group ó | |||
ó o: | |||
.group ô | |||
ô o:: | |||
.group p | |||
p p | |||
pp p: | |||
.group ph | |||
ph f | |||
A) ph (A f: | |||
.group q | |||
q kw // (immature) Qenya | |||
qu kw | |||
.group r | |||
r R | |||
.group s | |||
s s | |||
.group t | |||
t t | |||
tt t: | |||
// recall that th was replaced with þ earlier | |||
.group þ | |||
þ T | |||
.group ty | |||
ty tj | |||
.group u | |||
u u | |||
ui (+ uI | |||
// light penultimate syllable: put stress on antepenultimate | |||
u (L01X =u | |||
u (CL01X =u | |||
.group ú | |||
ú u: | |||
.group û | |||
û u:: | |||
.group v | |||
v v | |||
.group w | |||
w w | |||
// recall that x was replaced with cs earlier | |||
.group y | |||
y j | |||
// z does not occur in Quenya |
@@ -0,0 +1,32 @@ | |||
// potential “muta cum liquida” rule: | |||
// the use of these words in poems suggests that they are stressed on the antepenultimate syllable, | |||
// rather than the penultimate one, even though the penultimate syllable is heavy; | |||
// see <https://menegroth.github.io/stress-in-sindarin.html> for details | |||
imladris $1 // Seek for the Sword that was broken, line 2 | |||
menegroþ $1 // Lay of Leithian Recommenced, line 65 | |||
nargoþrond $1 // The world was young, the mountains green, line 13 | |||
// words with a single light syllable which should not be stressed | |||
// conjunctions: | |||
// a – exception: also an interjection, should still be stressed then | |||
ach $u | |||
ah $u | |||
ir $u | |||
sui $u | |||
// prepositions: | |||
am $u | |||
an $u | |||
ben $u | |||
bo $u | |||
dan $u | |||
na $u | |||
ned $u | |||
nef $u | |||
nu $u | |||
o $u | |||
or $u | |||
os $u | |||
pen $u | |||
vi $u |
@@ -0,0 +1,183 @@ | |||
// syllable nuclei: vowels (any length) and diphthongs | |||
.L01 i e a o u y í é á ó ú ý î ê â ô û ŷ ae ai ei oe ui au | |||
.replace | |||
// turn x into cs, both because that’s how it’s pronounced | |||
// (strictly speaking only in some Quenya, but let’s do it here too) | |||
// and to free up x as a single letter for ch (see immediately below) | |||
x cs | |||
// turn ch, dh, th into single consonants for stress purposes | |||
ch x | |||
dh ð | |||
th þ | |||
// turn k into c: both letters are equivalent in Tolkien’s languages, | |||
// with c usually reserved for Eldarin languages and k for others | |||
k c | |||
.group a | |||
a a | |||
ae (+ aE | |||
ai (+ aI | |||
au (+ aU | |||
// light penultimate syllable: put stress on antepenultimate | |||
a (L01X =a | |||
a (CL01X =a | |||
.group á | |||
á a: | |||
.group â | |||
â a:: | |||
.group b | |||
b b | |||
bb b: | |||
.group c | |||
c k | |||
cc c: | |||
// recall that ch was replaced with x earlier | |||
.group x | |||
x X | |||
.group d | |||
d d | |||
dd d: | |||
// recall that dh was replaced with ð earlier | |||
.group ð | |||
ð D | |||
.group e | |||
e E | |||
ei (+ EI | |||
// light penultimate syllable: put stress on antepenultimate | |||
e (L01X =E | |||
e (CL01X =E | |||
.group é | |||
é E: | |||
.group ê | |||
ê E:: | |||
.group f | |||
f f | |||
f (_ v | |||
.group g | |||
g g | |||
gg g: | |||
.group h | |||
h h | |||
hw w# | |||
.group i | |||
i I | |||
_) i (A+ j | |||
// light penultimate syllable: put stress on antepenultimate | |||
i (L01X =I | |||
i (CL01X =I | |||
.group í | |||
í i: | |||
.group î | |||
î i:: | |||
// j does not occur in Sindarin | |||
// recall that k was replaced with c earlier | |||
.group l | |||
l l | |||
lh l# | |||
.group m | |||
m m | |||
.group n | |||
n n | |||
.group ng | |||
ng Ng | |||
ng (_ N | |||
.group o | |||
o O | |||
oe (+ OI | |||
// light penultimate syllable: put stress on antepenultimate | |||
o (L01X =O | |||
o (CL01X =O | |||
.group ó | |||
ó O: | |||
.group ô | |||
ô O:: | |||
.group p | |||
p p | |||
pp p: | |||
.group ph | |||
ph f | |||
A) ph (A f: | |||
.group q | |||
q _^_qya // q does not occur in Sindarin | |||
.group r | |||
r R | |||
rh hR | |||
.group s | |||
s s | |||
.group t | |||
t t | |||
tt t: | |||
// recall that th was replaced with þ earlier | |||
.group þ | |||
þ T | |||
.group ty | |||
ty tj | |||
.group u | |||
u u | |||
ui (+ uI | |||
// light penultimate syllable: put stress on antepenultimate | |||
u (L01X =u | |||
u (CL01X =u | |||
.group û | |||
û u:: | |||
.group ú | |||
ú u: | |||
.group v | |||
v v | |||
.group w | |||
w w | |||
// recall that x was replaced with cs earlier | |||
.group y | |||
y y | |||
// light penultimate syllable: put stress on antepenultimate | |||
y (L01X =y | |||
y (CL01X =y | |||
.group ý | |||
ý y: | |||
.group ŷ | |||
ŷ y:: | |||
// z does not occur in Sindarin |
@@ -0,0 +1,4 @@ | |||
name Quenya | |||
language qya | |||
stressRule 2 | |||
// rule=penultimate, with qya_rules for light penultimate syllables to move primary stress to the preceding (antepenultimate) syllable |
@@ -0,0 +1,4 @@ | |||
name Sindarin | |||
language sjn | |||
stressRule 2 | |||
// rule=penultimate, with sjn_rules for light penultimate syllables to move primary stress to the preceding (antepenultimate) syllable |
@@ -0,0 +1,51 @@ | |||
phoneme n | |||
IF nextPhW(isVelar) THEN // /n/ is velarized to /N/ when before velar stops | |||
ChangePhoneme(N) | |||
ENDIF | |||
CALL base1/n | |||
endphoneme | |||
phoneme O | |||
vwl starttype #o endtype #o | |||
length 200 | |||
FMT(vowel/oo) | |||
endphoneme | |||
phoneme w# | |||
vls glt apr // [h] | |||
ipa ʍ | |||
IF nextPh(isVowel) THEN | |||
NextVowelStarts | |||
VowelStart(w/w@) | |||
VowelStart(w/wa) | |||
VowelStart(w/we) | |||
VowelStart(w/wi) | |||
VowelStart(w/wo) | |||
VowelStart(w/wu) | |||
EndSwitch | |||
ENDIF | |||
WAV(h/hu, 70) | |||
endphoneme | |||
phoneme aI | |||
vwl starttype #a endtype #i | |||
length 240 | |||
FMT(vdiph/ai) | |||
endphoneme | |||
phoneme uI | |||
vwl starttype #u endtype #i | |||
length 290 | |||
lng | |||
FMT(vdiph/ui) | |||
endphoneme | |||
phoneme iu | |||
vwl starttype #i endtype #u | |||
length 280 | |||
lng | |||
FMT(vdiph2/iu_2) | |||
endphoneme |
@@ -0,0 +1,56 @@ | |||
phoneme n | |||
IF nextPhW(isVelar) THEN // /n/ is velarized to /N/ when before velar stops | |||
ChangePhoneme(N) | |||
ENDIF | |||
CALL base1/n | |||
endphoneme | |||
phoneme O | |||
vwl starttype #o endtype #o | |||
length 200 | |||
FMT(vowel/oo) | |||
endphoneme | |||
phoneme w# | |||
vls glt apr // [h] | |||
ipa ʍ | |||
IF nextPh(isVowel) THEN | |||
NextVowelStarts | |||
VowelStart(w/w@) | |||
VowelStart(w/wa) | |||
VowelStart(w/we) | |||
VowelStart(w/wi) | |||
VowelStart(w/wo) | |||
VowelStart(w/wu) | |||
EndSwitch | |||
ENDIF | |||
WAV(h/hu, 70) | |||
endphoneme | |||
phoneme aE | |||
vwl starttype #a endtype #e | |||
length 270 | |||
FMT(vdiph/ae) | |||
endphoneme | |||
phoneme aI | |||
vwl starttype #a endtype #i | |||
length 240 | |||
FMT(vdiph/ai) | |||
endphoneme | |||
phoneme EI | |||
vwl starttype #e endtype #i | |||
length 230 | |||
FMT(vdiph/eei) | |||
endphoneme | |||
phoneme uI | |||
vwl starttype #u endtype #i | |||
length 290 | |||
lng | |||
FMT(vdiph/ui) | |||
endphoneme |
@@ -1920,6 +1920,12 @@ include ph_lojban | |||
phonemetable py eo | |||
include ph_pyash | |||
phonemetable qya la | |||
include ph_quenya | |||
phonemetable sjn la | |||
include ph_sindarin | |||
phonemetable es-la es | |||
include ph_spanish_la | |||
@@ -186,6 +186,7 @@ S'a | |||
'OksidU | |||
p'or- | |||
z'&~Ng&U~_:_: ,E*&U~ p,&l'avR&Z dU p,u*@-tug'es#" "Luís argüia à Júlia que «brações, fé, chá, óxido, pôr, zângão» eram palavras do português." "Latn" | |||
test_phon qya ",aInul'Indal,E ald'INga aNk'alIm,a and'u:RIl at'akwE k,alak'IRja k,uIvI;'e:nEn ,EaR'EndIl El'EndIl ,ElEnt'a:RI; El'EssaR 'ENkwI;,E E'OnwE ER'EssE,a h,ElkaR'aksE w#'Esta C'aRmEn Is'IlduR l'ap:a m'axtan nam'a:RI;,E n'at:IR,a n,u:mEn'o:RE 'OROm,E Ot'OkwE pEl'Ek:O pEl'o:RI s'aUROn tan'IkwEt,Il t,Elum'ECtaR t'ulkas tuR'ambaR und'o:mI;,El ut'umnO" "Ainulindalë aldinga ancalima Andúril ataquë Calacirya Cuiviénen Eärendil Elendil Elentári Elessar enquië Eönwe Eressëa Helcaraxë hwesta Hyarmen Isildur lappa Mahtan Namárië nattira Númenórë Orome otoquë pelecco Pelóri Sauron Taniquetil Telumehtar Tulkas Turambar Undómiel Utumno" "Quenya" | |||
test_phon ro "m,uzikol'og@_! yn b'eZ v'ynd wh'iski Si tekw'ila | |||
p@-*'ets f'iks" "Muzicologă în bej vând whisky și tequila, preț fix." "Latn" | |||
test_phon ru "Syr'okVja E#l;ikt@-r;if;ik'Atsyja 'juZnyx gub;'ern;ij d'Ast m'oS;nyj tVltS;'ok pVdj'8mu s;'elskVvV xVz;'Ajstva#" "Широкая электрификация южных губерний даст мощный толчок подъёму сельского хозяйства." "Cyrl" | |||
@@ -193,6 +194,7 @@ test_phon sd "s'Indhi b'o:li; 'Ind.o: jo:R'Vpi xa:nd'a:n s'a~: t[a:l'Vq R,@k#@nd | |||
J'Vnhn t['e: ,aRb'i: bo:l'i:;a J'o: b'I t[@m'a:m v'Vd.o: as'VR ,a:he: | |||
h'Ina v'aqt s'Indhi b'o:li s'Indh J'e: m'Vk# b'o:li_! 'ae~ d,@f@t['VRi z@b'a:n ,a:he:" "سنڌي ٻولي انڊو يورپي خاندان سان تعلق رکندڙ آريائي ٻولي آھي، جنھن تي عربي ٻوليءَ جو بہ تمام وڏو اثر آهي. هن وقت سنڌي ٻولي سنڌ جي مک ٻولي ۽ دفتري زبان آھي." "Arab" | |||
test_phon si "t'aw@t st#'a:n@ k'i:p@j,@kin w'a:rta: w'u: s'ul.u p'ipiri:m s'ah@ d'e:s@p,a:l@n@ p'akS@ k r'ija:k,a:ri:n 'at@r@ '&tiwu: g'&t.um h'e:tuwen 'ek 'ajeku m'ij@gos k'i:p@ d'eneku t'uwa:l@ l'aba: t'ibe:" "තවත් ස්ථාන කීපයකින් වාර්තා වූ සුළු පිපිරීම් සහ දේශපාලන පක්ෂ ක්රියාකාරීන් අතර ඇතිවූ ගැටුම් හේතුවෙන් එක් අයෙකු මියගොස් කීප දෙනෙකු තුවාල ලබා තිබේ." "Sinh" | |||
test_phon sjn "'alf 'aman 'amaRT 'amOn 'aRag,ORn aRn'OIdI;,ad 'aRvEd,uI bEl'ERI;,and b'OROm,IR bRag'OllaX bR'ETIl bRIT'OmbaR bR'uInEn k'aIR kaR'aDRas k,ElEbR'i:an kRIss'aEgRIm d'EnET,OR dR'ENgIst d'u::n EkT'ElI;,On 'Emyn ER'I;ad,OR f'Ean,OR fInd'uIlas f'INgOn fINg'OlfIn fIn'aRfIn f'OROX,El g'alaD,On gal'adRI;,El gR'Ond gw'aIhIR w#'and j'aRwaIn 'ImladR,Is j'ORET IT'IlI;,En l#'u::n lOTl'O:RI;,En m'EnEgR,OT mIT'EITEl mITR'andIR mOR'annOn m'ORI;,a n'aRgOTR,Ond OR'OffIn Osg'IlI;,aT pal'anti:R p,alant'i:RI pEl'EnnOR p,ERI;'annaT hR'u::n sIl'IvREn TOR'OndOR" "alph Aman Amarth Amon Aragorn Arnoediad Arvedui Beleriand Boromir Bragollach Brethil Brithombar Bruinen Cair Caradhras Celebrían Crissaegrim Denethor Drengist dûn Ecthelion Emyn Eriador Fëanor Finduilas Fingon Fingolfin Finarfin Forochel Galadhon Galadriel Grond Gwaihir hwand Iarwain Imladris Ioreth Ithilien lhûn Lothlórien Menegroth Mitheithel Mithrandir Morannon Moria Nargothrond Orophin Osgiliath Palantír Palantíri Pelennor Periannath rhûn Silivren Thorondor" "Sindarin" | |||
test_phon sk "k'r:d;el^ St;'astni:Q d;'atl^ow 'utSi: pR'i;u:st;i: v'a:hu m'l:kveho k'on^a 'ophRi:zat; k'uoRu_:_: a ZR'at; tS'eRstve: m'eso | |||
p'et;ti:Zdn^,ove: v'l:tSata: n'eRvo:zn^e St;'ekaju: n'amu,ojho d;'atl^a_! v_ t'r:n^i:" "Kŕdeľ šťastných ďatľov učí pri ústí Váhu mĺkveho koňa obhrýzať kôru a žrať čerstvé mäso. Päťtýždňové vĺčatá nervózne štekajú na môjho ďatľa v tŕní." "Latn" | |||
test_phon sl "xiSn'i:tSin bR'a:tEts uzg'a:ja p'o:wZE p'o:t fik'u:sOm" "Hišničin bratec vzgaja polže pod fikusom." "Latn" |