mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-05 06:45:39 +00:00
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
171 lines
2.0 KiB
Plaintext
171 lines
2.0 KiB
Plaintext
.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 (+ aI // TODO ae and ai should be different
|
||
ai (+ aI
|
||
au (+ aU
|
||
// light penultimate syllable: put stress on antepenultimate
|
||
a (AX =a
|
||
a (CAX =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 (AX =e
|
||
e (CAX =e
|
||
|
||
.group é
|
||
é e:
|
||
|
||
.group ê
|
||
ê e::
|
||
|
||
.group f
|
||
f f
|
||
f (_ v
|
||
|
||
.group g
|
||
g g
|
||
|
||
.group h
|
||
h h
|
||
// TODO hw
|
||
|
||
.group i
|
||
i i
|
||
_) i (A j
|
||
// light penultimate syllable: put stress on antepenultimate
|
||
i (AX =i
|
||
i (CAX =i
|
||
// (unless initial)
|
||
_) i (AX j
|
||
|
||
.group í
|
||
í i:
|
||
|
||
.group î
|
||
î i::
|
||
|
||
// j and k do not occur in Sindarin
|
||
|
||
.group l
|
||
l l
|
||
// TODO lh
|
||
|
||
.group m
|
||
m m
|
||
|
||
.group n
|
||
n n
|
||
|
||
.group ng
|
||
ng Ng
|
||
ng (_ N
|
||
|
||
.group o
|
||
o o
|
||
oe (+ OI // TODO oe and oi should be different
|
||
// light penultimate syllable: put stress on antepenultimate
|
||
o (AX =o
|
||
o (CAX =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
|
||
// TODO rh
|
||
|
||
.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
|
||
// TODO ui (no suitable diphthong in ph_latin)
|
||
// light penultimate syllable: put stress on antepenultimate
|
||
u (AX =u
|
||
u (CAX =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 (AX =y
|
||
y (CAX =y
|
||
|
||
.group ý
|
||
ý y:
|
||
|
||
.group ŷ
|
||
ŷ y::
|
||
|
||
// z does not occur in Sindarin
|