mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-15 10:02:42 +00:00
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.
120 lines
1.4 KiB
Plaintext
120 lines
1.4 KiB
Plaintext
.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 þ
|
||
|
||
.group a
|
||
a a
|
||
// light penultimate syllable: put stress on antepenultimate
|
||
a (AX =a
|
||
a (CAX =a
|
||
|
||
.group b
|
||
b b
|
||
|
||
.group c
|
||
c k
|
||
// recall that ch was replaced with x earlier
|
||
|
||
.group x
|
||
x x
|
||
|
||
.group d
|
||
d d
|
||
// recall that dh was replaced with ð earlier
|
||
|
||
.group ð
|
||
ð D
|
||
|
||
.group e
|
||
e e
|
||
// light penultimate syllable: put stress on antepenultimate
|
||
e (AX =e
|
||
e (CAX =e
|
||
|
||
.group f
|
||
f f
|
||
f (_ v
|
||
|
||
.group g
|
||
g g
|
||
|
||
.group h
|
||
h h
|
||
// TODO ht, hl, hr, hw, hy
|
||
|
||
.group i
|
||
i i
|
||
// light penultimate syllable: put stress on antepenultimate
|
||
i (AX =i
|
||
i (CAX =i
|
||
|
||
// j and k do not occur in Quenya
|
||
|
||
.group l
|
||
l l
|
||
|
||
.group m
|
||
m m
|
||
|
||
.group n
|
||
n n
|
||
|
||
.group ng
|
||
ng Ng
|
||
ng (_ N
|
||
|
||
.group o
|
||
o o
|
||
// light penultimate syllable: put stress on antepenultimate
|
||
o (AX =o
|
||
o (CAX =o
|
||
|
||
.group p
|
||
p p
|
||
|
||
.group ph
|
||
ph f
|
||
|
||
.group qu
|
||
qu kw
|
||
|
||
.group r
|
||
r R
|
||
|
||
.group s
|
||
s s
|
||
|
||
.group t
|
||
t t
|
||
// recall that th was replaced with þ earlier
|
||
|
||
.group þ
|
||
þ T
|
||
|
||
.group ty
|
||
ty tj
|
||
|
||
.group u
|
||
u u
|
||
// light penultimate syllable: put stress on antepenultimate
|
||
u (AX =u
|
||
u (CAX =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
|