mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
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.
169 lines
1.9 KiB
Plaintext
169 lines
1.9 KiB
Plaintext
// 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 þ
|
||
|
||
.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
|
||
|
||
.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
|
||
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
|
||
|
||
.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 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
|
||
oi (+ 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:
|
||
|
||
.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
|
||
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
|