Add initial files for lang-gd (Sottish Gaelic).

git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@372 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
jonsd
2014-02-02 11:19:16 +00:00
parent 16a90bd323
commit 350f12bdc0
3 changed files with 903 additions and 0 deletions
+136
View File
@@ -0,0 +1,136 @@
// Letter names (temporary English names)
_a eI
b bi: $atend
c si:
d di: $atend
_e i:
f Ef
g dZi: $atend
h eItS $atend
_i aI
j dZeI
k keI
l El
m Em $atend
n En $atend
_o o:
p pi:
q kju:
r aR
_s Es
t ti: $atend
_u ju:
v vi:
w d'O#b@lju:
x Eks
y waI
z zEd
_à $accent
_á $accent
_è $accent
_é $accent
_ì $accent
_ò $accent
_ó $accent
_ù $accent
_acu akj'u:t
_grv 'aksEnt
// Numbers
_0 n'OnI
_1 'u-:n
_2 Q'a
_3 t*;'i
_4 k;'ehI*;
_5 k'O:g;
_6 S'i@
_7 S'Exg
_8 'Oxg
_9 n['u-I
_10 d;'eC
_11 'u-:nd;,iag
_12 Q'aQ,iag
_13 t*;'id;,iag
_14 k;'ehI*;d;,iag
_15 k'O:g;d;,iag
_16 S'i@d;,iag
_17 S'Exgd;,iag
_18 'Oxgd;,iag
_19 n['u-Id;,iag
_20 f'iC@d
_30 t*;'iC@d
_40 k;'Eh*@d
_50 k'O:g;@d
_60 S'esg@d
_70 S'Exg@d
_80 'Oxg@d
_90 n['u-:xg@d
_2X f'iC@ds@h#
_3X t*;'iC@ds@h#
_4X k;'Eh*@ds@h#
_5X k'O:g;@ds@h#
_6X S'esg@ds@h#
_7X S'Exg@ds@h#
_8X 'Oxg@ds@h#
_9X n['u-:xg@ds@h#
_0C k;'iad
_0M1 m'il@
_0M2 m'il^@n
_dpt _st'adf'u-n^u-g; // ?? full-stop
// Unstressed words
// articles
a $u+
an $u+
am $u+
na $u+
nan $u+
nam $u+
gun $u+
gu $u+
gum $u+
gur $u+
// personal pronouns
mi $u+
thu $u+
tu $u+
e E: $u+
i i: $u+
sinn $u+
sibh $u+
iad $u+
// possessive adjectives
mo m@
do d@
ar $u
ur $u
// prepositions
á a2 $u+
ag $u+
gu $u+
sa $u+
san $u+
// verbs
bu b@
// Pronunciation exceptions
// $alt1 silent ending (-bh, -gh)
+410
View File
@@ -0,0 +1,410 @@
// Based on:
// http://en.wikipedia.org/wiki/Scottish_Gaelic_orthography
// front vowels
.L01 e è é i ì
// back vowels
.L02 a à á o ò ó u ù
// slender consonant followed by a back vowel
.L03 eall eann earr earn eadh eahg eo eò ioll ionn iu iù
.L04 b bh g gh m mh
.L05 ll m nn
.L06 l n r // cause epenthetic vowel
.L07 l r s ch // epenthetic after 'm'
// NOTES:
// Use phoneme [#] for possible preaspiration
// Use phoneme [&] for epenthetic vowel
.group a
a a
a (dh_ o-
a (dhA o-
a (gh_ o-
a (ghA o-
a (L05K aU
a (rrK a:
a (rd a:
a (rn a:
a (g_ a2 // don't reduce to [@]
ai (l_ a2
@) ai I
ai a
ai (L05K aI
ai (mL07 E // ? aimsir
ai (bhC aI
ai (mhC aI
ai (rrK a:
ai (rd a:
ai (rn a:
ao u-:
aoi u-I
abh (C a_|u
amh (C a_|u
adh (C o-:
agh (C o-:
aidh (C a_|i
aigh (C o-_|i
.group à
à a:
ài a: // or E: ??
.group á
á a:
ái a:
.group e
e e
@) ea (g_ a2 // unstressed
@) ea @
ea E
ea (dh_ o-
ea (gh_ o-
ea (d e
ea (g e
ea (s e
ea (llK aU
ea (nnK aU
ea (rrK a:
ea (rn a:
_) ea (llA ja
_) ea (nnA ja
_) ea (rrA ja
ea (llA a
ea (nnA a
ea (rrA a
eagh (C o-: // ?? or O:
eamh (C E_|u
ei e
@) ei I // unstressed
ei (L05K eI
eo O
_) eò jO:
_) eòi jO:
eò O:
eòi O:
eu ia
eu (m e:
.group è
è E: // or e:
èi E: // or e:
èa ia
.group é
é e:
éi e:
.group i
i i
i (L05K i:
i (mL07 i
i (mh i
ia i@ // or ia
io i
_) io (llK ju
_) io (nnK ju
io (llK u:
io (nnK u:
iodh (C i_|@
iogh (C i_|@
_) iu ju
iu u
iu (rr u:
iu (rs u:
iù u:
iùi u:
.group ì
ì i:
ìo i@
.group o
o O
o (L04 o
o (L05K OU
o (mh o
o (rrK O:
o (rd O:
o (rn O:
ogh (C o:
oibh (C o-_i
oigh (C o-_i
oimh (C O_i
oi o- // or O
oi (L04 o
oi (mh o
oi (L05K @I
.group ò
ò O: // or o:
òi O: // or o:
.group ó
ó o:
ói o:
.group u
u u
u (L05K u:
u (rn u:
u (rr u:
u (_ u:
ua u@ // [ua] if followed by m or n ?
uai u@
ui u
ui (m u-
ui (n u-
ui (s u-
ui (dh u-I
ui (L05K u-I
ui (L05 u-
uimh (C u_|i
.group ù
ù u:
ùi u:
.group b
b b
b (L03 bj // try b;
L06) b &b // insert epenthetic vowel
L06) b (L03 &bj
.group bh
bh v
bh (_ v
bh (_+$w_alt1 // null
bh (L03 vj
// bh sometimes null between vowels or word-final
L06) bh &v
L06) bh (_ &v
L06) bh (L03 &vj
.group c
c k
A) c (L02 #k
A) c (_ #g
C) c (_ g
c (L01 k;
A) c (L01 #k;
L01) c (_ #g;
L01C) c (_ g;
ch x
L01) ch C
ch (L01 C
chd #g
L06) ch &x
L01L06) ch &C
L06) ch (L01 &C
cn kR
.group d
d d
L01) d d;
d (L01 d;
dh Q
A) dh (L02 Q // or null
dh (L01 J^
L01) dh J^
A) dh (L01
ai) dh (_
éi) dh (_
.group f
f f
f (L03 fj
fh
.group g
g g
L01) g g;
g (L01 g;
L06) g &g
L01L06) g &g;
L06) g (L01 &g;
gh Q
gh (_+$w_alt1 // null
A) gh (L02 Q // or null
L01) gh J^
gh (L01 J^
A) gh (L01
L06) gh &Q
L01L06) gh &J^
L06) gh (L01 &J^
gn gR
.group h
h h
.group j
j dZ
.group k
k k
.group l
l L
L01) l l
l (L01 l
_) l (L01 l^
ll L
L01) ll l^
ll (L01 l^
.group m
m m
m (L03 mj
L06) m &m // epenthetic
L06) m (L03 &mj
m (L07 m&
mh v
mh (L03 vj
// mh between vowels sometimes null
L06) mh &v
L06) mh (L03 &vj
.group n
n n
_) n (L02 n[
L02L01) n n^ // slender after a back vowel
L02L01C) n n^
L02L01CC) n n^
ng Ng
L01) ng ng;
ng (L01 ng;
n (gh n
nn n[
L01) nn (+ n^
nn (L01 n^
.group p
p p
A) p (A #p
A) p (_ #b
C) p (_ b
p (L03 bj
A) p (L03 #bj
ph f
ph (L03 fj
.group q
q kw
.group r
r *
L01) r *;
r (L01 *;
_) r R
rr R
rt (_ *Sd
rd (_ *Sd
.group s
s s
L01) s S
s (L01 S
sh h
sh (L03 hj
.group t
t t
A) t (L02 #t
A) t (_ #d
C) t (_ d
t (L01 t;
A) t (L01 #t;
L01) t (_ #d;
L01C) t (_ d;
L01CC) t (_ d;
th h
th (L03 hj
th (_ // ?
// th between vowels may be null
.group v
v v
.group w
w w
.group x
x ks
_) x z
.group y
y i
y (A j
A) y j
.group z
z z
+357
View File
@@ -0,0 +1,357 @@
// Phoneme table for Scottish Gaelic (lang=gd)
// Vowels
phoneme I
vowel starttype #i endtype #i
unstressed
length 130
FMT(vowel/ii)
endphoneme
phoneme @
vowel starttype #@ endtype #@
unstressed
length 130
FMT(vowel/@_6)
endphoneme
phoneme i:
vowel starttype #i endtype #i long
length 240
ChangeIfUnstressed(i)
FMT(vowel/i)
endphoneme
phoneme i
vowel starttype #i endtype #i
length 130
ChangeIfUnstressed(I)
FMT(vowel/i_6)
endphoneme
phoneme e:
vowel starttype #e endtype #e long
length 240
ChangeIfUnstressed(@)
FMT(vowel/e)
endphoneme
phoneme e
vowel starttype #e endtype #e
length 130
ChangeIfUnstressed(@)
FMT(vowel/e)
endphoneme
phoneme E:
vowel starttype #e endtype #e long
length 240
FMT(vowel/ee)
endphoneme
phoneme E
vowel starttype #e endtype #e
length 130
FMT(vowel/ee)
endphoneme
phoneme a:
vowel starttype #a endtype #a long
length 240
ChangeIfUnstressed(a)
FMT(vowel/aa_8)
endphoneme
phoneme a
vowel starttype #a endtype #a
length 130
ChangeIfUnstressed(@)
FMT(vowel/a)
endphoneme
phoneme a2 // doesn't reduce to [@]
vowel starttype #a endtype #a
length 130
FMT(vowel/a)
endphoneme
phoneme O:
vowel starttype #o endtype #o long
length 240
FMT(vowel/oo_2)
endphoneme
phoneme O
vowel starttype #o endtype #o
length 130
FMT(vowel/oo_2)
endphoneme
phoneme o:
vowel starttype #o endtype #o long
length 240
FMT(vowel/o)
endphoneme
phoneme o
vowel starttype #o endtype #o
length 130
FMT(vowel/o_2)
endphoneme
phoneme u:
vowel starttype #u endtype #u long
length 240
ChangeIfUnstressed(u)
FMT(vowel/u_bck2)
endphoneme
phoneme u
vowel starttype #u endtype #u
length 130
FMT(vowel/u_bck2)
endphoneme
phoneme u-
vowel starttype #@ endtype #@
ipa ɯ
length 240
FMT(vowel/u_bck2)
endphoneme
phoneme u-
vowel starttype #@ endtype #@ long
ipa ɯ
length 130
FMT(vowel/u_bck2)
endphoneme
phoneme o-
vowel starttype #@ endtype #@ long
ipa ɤ
length 240
ChangeIfUnstressed(@)
FMT(vowel/8_7)
endphoneme
phoneme o-
vowel starttype #@ endtype #@
ipa ɤ
length 130
ChangeIfUnstressed(@)
FMT(vowel/8_7)
endphoneme
// Diphthongs
phoneme i@
vowel starttype #i endtype #@ long
length 240
ChangeIfNotStressed(@)
FMT(vdiph2/i@)
endphoneme
phoneme ia
vowel starttype #i endtype #@ long
length 240
ChangeIfNotStressed(@)
FMT(vdiph2/i@_3)
endphoneme
phoneme u@
vowel starttype #u endtype #@ long
length 240
FMT(vdiph2/u@)
endphoneme
phoneme aI
vowel starttype #a endtype #i long
length 240
ChangeIfUnstressed(@)
FMT(vdiph/ai)
endphoneme
phoneme eI
vowel starttype #e endtype #i long
length 240
FMT(vdiph/ei)
endphoneme
phoneme @I
vowel starttype #@ endtype #i long
length 240
FMT(vdiph/@i)
endphoneme
phoneme u-I
vowel starttype #@ endtype #i long
ipa ɯɪ
length 240
FMT(vdiph/u-i)
endphoneme
phoneme aU
vowel starttype #a endtype #u long
length 240
ChangeIfUnstressed(@)
FMT(vdiph/aau_4)
endphoneme
phoneme OU
vowel starttype #@ endtype #u long
length 240
FMT(vdiph/Vu)
endphoneme
// Consonants
phoneme b
import_phoneme is/b
endphoneme
phoneme d
import_phoneme is/d
endphoneme
phoneme d;
import_phoneme hi/c
endphoneme
phoneme g
import_phoneme is/g
endphoneme
phoneme g;
vls vel stop
Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
Vowelout f1=1 f2=2700 400 600 f3=200 70 len=50 colr=1
WAV(ustop/ki_ejc, 130)
endphoneme
phoneme k;
vls vel stop
Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
Vowelout f1=1 f2=2700 400 600 f3=200 70 len=50 colr=1
WAV(ustop/ki)
endphoneme
phoneme t
import_phoneme hi/t#
endphoneme
phoneme t;
import_phoneme hi/c#
endphoneme
phoneme S
vls pal frc sibilant palatal
CALL base/S;
ipa ʃ
endphoneme
phoneme n[ // temporary
import_phoneme n
endphoneme
phoneme * // reduced [t] as in "city"
vcd alv stop
ipa ɾ
lengthmod 5
Vowelin f1=1 f2=1700 -300 300 f3=-100 80
Vowelout f1=2 f2=1700 -300 300 f3=-100 80
IF KlattSynth THEN
IF PreVoicing THEN
FMT(klatt/x_tap)
ENDIF
FMT(klatt/tap2) addWav(x/d, 70)
ENDIF
IF PreVoicing THEN
FMT(d/x_tap)
ENDIF
FMT(d/tap2) addWav(x/d, 25)
endphoneme
phoneme *;
import_phoneme D
endphoneme
phoneme R
import_phoneme R2
endphoneme
phoneme & // the epenthetic vowel
vowel starttype #@ endtype #@
unstressed
length 130
IF prevVowel(a) THEN
ChangePhoneme(a)
ELSEIF prevVowel(E) THEN
IF prevPh(*) THEN
ChangePhoneme(a)
ELSE
ChangePhoneme(E)
ENDIF
ELSEIF prevVowel(O) THEN
ChangePhoneme(O)
ELSEIF prevVowel(i) THEN
ChangePhoneme(i)
ELSEIF prevVowel(e) THEN
ChangePhoneme(e)
ELSEIF prevVowel(u) THEN
ChangePhoneme(u)
ELSEIF prevVowel(u-) THEN
ChangePhoneme(u-)
ELSEIF prevVowel(o-) THEN
ChangePhoneme(o-)
ENDIF
ChangePhoneme(NULL)
endphoneme
phoneme # // used for pre-aspiration
vls glt apr
IF NOT prevPhW(isVowel) OR thisPh(isNotStressed) OR prevVowel(isLong) THEN
ChangePhoneme(NULL)
ELSE
IF nextPhW(g;) OR nextPhW(k;) THEN
ChangePhoneme(C)
ELSEIF nextPhW(g) OR nextPhW(k) THEN
ChangePhoneme(x)
ELSE
ChangePhoneme(h)
ENDIF
ENDIF
endphoneme
// [h] only if followed by a vowel
phoneme h#
vls glt apr
IF nextPh(isVowel) THEN
ChangePhoneme(h)
ELSE
ChangePhoneme(NULL)
ENDIF
endphoneme