Files
espeak-ng/dictsource/sjn_rules
T
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

172 lines
2.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 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 þ
.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
.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
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
.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 and k do not occur in Sindarin
.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
.group ph
ph f
A) ph (A f:
// q does not occur in Sindarin
.group r
r R
rh hR
.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
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