[1.43.16]

git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@242 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
jonsd
2010-04-03 22:20:25 +00:00
parent 805c5dfdee
commit 19b774ffc6
46 changed files with 3918 additions and 1186 deletions
+32 -22
View File
@@ -1,4 +1,4 @@
59 phoneme tables
60 phoneme tables
new total
base 99 99
consonants 9 107
@@ -17,10 +17,10 @@ consonants 9 107
jbo 2 111
nci 3 120
fi 40 130
fr 54 137
fr 55 137
fr_ca 11 137
hi 58 145
ta 20 148
ta 21 149
hu 24 116
lv 29 122
nl 24 119
@@ -53,12 +53,13 @@ consonants 9 107
id 15 122
sq 33 121
hy 23 114
da 20 114
da 23 116
rw 15 127
ml 13 147
ne 18 153
pa 14 147
prs 8 106
gd 6 99
Data file Used by
b/b [b] base
@@ -103,6 +104,7 @@ d/dr [*] base
[d[] base
[d] base2
[d] fi
[d] fr
[d.] hi
[dh.] hi
[d] hu
@@ -122,6 +124,7 @@ d/xd [d] base
[d] base2
[d] fi
[d] fr
[z] fr
[d.] hi
[dh] hi
[dh.] hi
@@ -269,6 +272,7 @@ j/xj [j] base
[j] de
[j] zh
klatt/b [b] base
[b] fr
klatt/bh [B] base
klatt/dz_pzd [J] base
klatt/dz_pzd_ [J] base
@@ -512,7 +516,6 @@ r3/r_uvl.wav [r"] base
r3/rx [*] base
[r/] base
[r/] af
[r] fr
[r/2] fr
[R] fr_ca
[x] pt_pt
@@ -594,6 +597,7 @@ ufric/s_ [s] base
[s2] consonants
[s] fr
[z] fr
[z2] fr
[s] es
[z;] ro
[z] sq
@@ -671,7 +675,6 @@ ustop/kl [k] base
[k] zhy
ustop/kr [k] base
[k] base2
[k] fr
[k] el
[k] zhy
ustop/k_unasp [k] base
@@ -706,7 +709,6 @@ ustop/pr [p] base
[p-] consonants
[ph] consonants
[p] base2
[p] fr
ustop/p_unasp [p] base
[p-] consonants
[p] base2
@@ -1122,6 +1124,7 @@ voc/z [z] base
voc/z_ [z] base
[dz] consonants
[z] fr
[z2] fr
[z;] ro
[z] sq
voc/zh [Z] base
@@ -1158,6 +1161,7 @@ vowel/& [a] en_rp
[&] lv
[&:] lv
[&] sv
[&#] da
vowel/0 [0] en
[O] hi
[O] pt
@@ -1571,6 +1575,7 @@ vowel/o [o] base2
[oU] en_n
[oU] en_wi
[o:] de
[o] fr
[o2] fr
[o] hi
[o] ta
@@ -1606,6 +1611,7 @@ vowel/o_5 [O] nl
vowel/o_6 [O:] nl
vowel/o_7 [o] ku
vowel/o_8 [o] fr
[o2] fr
vowel/oe [W] af
[W] de
[W] hy
@@ -1618,9 +1624,6 @@ vowel/o_mid [U@] en_rp
[o] tr
[o] ne
vowel/o_mid2 [O] fr
[o] fr
[O2] fr
[o2] fr
vowel/oo [O:] en_sc
[O] en_wi
[O:] en_wi
@@ -1769,6 +1772,7 @@ vowel/uu_bck [U] en_wi
[u] zhy
[U] pa
vowel/V [3] en_sc
[W#] da
vowel/V_2 [V] en
[a] af
[V] ru
@@ -1868,31 +1872,31 @@ vwl_fr/r [r] fr
vwl_fr/_r [r] fr
vwl_fr/r_ [r/2] fr
vwl_fr/r_@ [r/2] fr
vwl_fr/r@ [Ég] fr
vwl_fr/r@ [ j] fr
vwl_fr/@R [x] pt_pt
vwl_fr/_r2 [r] fr
vwl_fr/r_2 [r/2] fr
vwl_fr/@R2 [R] fr_ca
vwl_fr/ra [Ég] fr
vwl_fr/ra [ j] fr
vwl_fr/r_a [r/2] fr
vwl_fr/raa [A~] fr
vwl_fr/r_an [A~] fr
vwl_fr/re [Ég] fr
vwl_fr/re [ j] fr
vwl_fr/r_e [r/2] fr
vwl_fr/ri [Ég] fr
vwl_fr/r_e2 [E] fr
vwl_fr/ri [ j] fr
vwl_fr/r_i [r/2] fr
vwl_fr/ro [Ég] fr
vwl_fr/r_o [o] fr
[o2] fr
[r/2] fr
vwl_fr/ru [Ég] fr
vwl_fr/ro [ j] fr
vwl_fr/r_o [r/2] fr
vwl_fr/ro2 [O] fr
vwl_fr/r_o2 [O] fr
vwl_fr/ru [ j] fr
vwl_fr/r_u [r/2] fr
vwl_fr/ry [y] fr
[w^i] fr
vwl_fr/r_y [y] fr
vwl_fr/tr [r] fr
vwl_fr/trr [r/2] fr
vwl_fr/xr [r] fr
[r2] fr
vwl_fr/xr [ j] fr
vwl_hi/l-voc [l-] base
[l-] sk
[l:] sk
@@ -1955,12 +1959,16 @@ w/iw_ [w] base
w/_w [w] base
w/w_ [w] base
w/w@ [w] base
[w] fr
w/w2 [w2] base2
[w] pl
[w] sq
w/wa [w] base
[w] fr
w/we [w] base
[w] fr
w/wi [w] base
[w] fr
[i] vi
w/wi2 [i:] en
[i:] en_n
@@ -1972,7 +1980,9 @@ w/wi2 [i:] en
[i:] sv
[i:] no
w/wo [w] base
[w] fr
w/wu [w] base
[w] fr
w/xw [w] base
x/b [b] base
[b] fr
+25 -3
View File
@@ -14,8 +14,6 @@ phoneme 3
FMT(vowel/a#_3)
endphoneme
phoneme i
vowel starttype #i endtype #i
length 150
@@ -41,6 +39,13 @@ phoneme &
FMT(vowel/ee_2)
endphoneme
// PB added for the æ in "dræbt"
phoneme &#
vowel starttype #e endtype #e
length 120
FMT(vowel/&)
endphoneme
phoneme a
vowel starttype #a endtype #a
length 150
@@ -102,10 +107,23 @@ phoneme W
FMT(vowel/oe)
endphoneme
// PB added for the ø in "røv", "røg", "øje" instead of [V3]
phoneme W#
vowel starttype #@ endtype #@
length 150
FMT(vowel/V)
endphoneme
// CONSONANTS
// PB added l/3
phoneme l
liquid
lengthmod 7
ChangePhoneme(l/3)
CALL base/l
endphoneme
phoneme v // approximant, not fricative
import_phoneme base/v#
voicingswitch f
@@ -115,6 +133,9 @@ endphoneme
phoneme r // used for 'r' after a vowel (to create a diphthong)
liquid
lengthmod 7
IF nextPhW(isVowel) THEN
ChangePhoneme(R)
ENDIF
FMT(r/a_)
endphoneme
@@ -124,3 +145,4 @@ phoneme R
FMT(r/aa)
endphoneme
+215 -140
View File
@@ -1,7 +1,7 @@
//====================================================
// French
//====================================================
// Updated 2010-03-12 Michel Such <michel.such@free.fr>
// Updated 2010-04-01 Michel Such <michel.such@free.fr>
phoneme #l virtual
// Used for l and l/
@@ -17,15 +17,30 @@ phoneme : // Lengthen previous vowel by "length"
endphoneme
procedure vowelstart_r
NextVowelStarts
VowelStart(vwl_fr/r@)
VowelStart(vwl_fr/ra, -30)
VowelStart(vwl_fr/re)
VowelStart(vwl_fr/ri)
VowelStart(vwl_fr/ro)
VowelStart(vwl_fr/ru)
EndSwitch
procedure pre_post_r
IF prevPh(isVowel) THEN
VowelEnding(vwl_fr/xr)
ENDIF
IF nextPhW(isFinalVowel) OR next2Ph(isFinalVowel) THEN
NextVowelStarts
VowelStart(vwl_fr/r@, -10)
VowelStart(vwl_fr/ra, -15)
VowelStart(vwl_fr/re, -10)
VowelStart(vwl_fr/ri, -20)
VowelStart(vwl_fr/ro, -10)
VowelStart(vwl_fr/ru, -10)
EndSwitch
ELSE
NextVowelStarts
VowelStart(vwl_fr/r@)
VowelStart(vwl_fr/ra)
VowelStart(vwl_fr/re)
VowelStart(vwl_fr/ri)
VowelStart(vwl_fr/ro)
VowelStart(vwl_fr/ru)
EndSwitch
ENDIF
endprocedure
@@ -38,41 +53,22 @@ phoneme r
ChangePhoneme(r/2)
ENDIF
IF nextPh(isStressed) THEN
length 40
CALL pre_post_r
IF thisPh(isWordStart) OR prevPhW(r/2) THEN
Vowelout len=50
FMT(vwl_fr/_r, -30)
ELIF prevPhW(g) OR prevPhW(k) OR prevPhW(p) THEN
FMT(vwl_fr/tr, -40)
ELIF prevPhW(d) OR prevPhW(t) THEN
FMT(vwl_fr/tr, -30)
ELIF prevPhW(f) OR prevPhW(v) OR prevPhW(S) THEN
FMT(vwl_fr/tr, -30)
ELIF prevPhW(b) THEN
FMT(vwl_fr/tr, -20)
ENDIF
VowelEnding(vwl_fr/xr)
CALL vowelstart_r
IF prevPh(isPause) OR prevPhW(r/2) THEN
FMT(vwl_fr/_r)
ELIF prevPhW(p) OR prevPhW(k) THEN
IF nextPh(isNotStressed) THEN
length 50
ENDIF
FMT(vwl_fr/tr)
ELIF prevPhW(t) THEN
IF nextPh(isNotStressed) THEN
length 60
ENDIF
FMT(vwl_fr/tr) addWav(r3/rx,30)
ELIF prevPhW(f) OR prevPhW(v) THEN
length 40
ELIF prevPhW(g) OR prevPh(b) THEN
IF nextPh(isNotStressed) THEN
length 60
ENDIF
ENDIF
IF thisPh(isWordStart) THEN
IF prevPh(isVowel) OR prevPh(isPause) OR prevPh(#l) OR prevPh(r/2) THEN
FMT(vwl_fr/_r)
ENDIF
FMT(vwl_fr/_r2) addWav(r3/rx, 15)
ENDIF
FMT(vwl_fr/r) addWav(r3/rx,25)
FMT(vwl_fr/r)
endphoneme
@@ -87,17 +83,16 @@ phoneme r2 // silent unless followed by vowel
ChangePhoneme(NULL)
ENDIF
VowelEnding(vwl_fr/xr)
CALL vowelstart_r
CALL pre_post_r
FMT(vwl_fr/r)
endphoneme
phoneme r/2 // variant of [r] when not preceding a vowel
liquid rhotic uvl
liquid rhotic vel
starttype #r endtype #r
Vowelout f1=2 f2=1600 -300 300 f3=-300 100 len=50
Vowelout f1=2 f2=1600 -300 300 f3=-300 100 len=40
lengthmod 2
PrevVowelEndings
@@ -109,32 +104,34 @@ phoneme r/2 // variant of [r] when not preceding a vowel
VowelEnding(vwl_fr/r_u)
EndSwitch
IF prevPh(t) OR prevPh(p) OR prevPh(k) THEN
FMT(vwl_fr/trr)
IF prevPh(isVowel) THEN
IF nextPh(isPause) THEN
FMT(vwl_fr/r_2) addWav(r3/rx, 20)
ELSE
FMT(vwl_fr/r_, -30) addWav(r3/rx, 20)
ENDIF
ENDIF
IF thisPh(isWordEnd) THEN
IF prevPhW(v) THEN
length 40
IF prevPhW(t) OR prevPhW(p) OR prevPhW(k) THEN
FMT(vwl_fr/trr) addWav(r3/rx, 15)
ELIF prevPhW(v) THEN
FMT(vwl_fr/r_, -40)
ELIF prevPhW(f) THEN
length 60
FMT(vwl_fr/r_, -10) addWav(r3/rx, 15)
ELIF prevPhW(d) THEN
length 80
FMT(vwl_fr/r_) addWav(r3/rx, 15)
ENDIF
FMT(vwl_fr/r_) addWav(r3/rx, 15)
ENDIF
IF prevPh(isVowel) THEN
length 80
FMT(vwl_fr/r_) addWav(r3/rx, 20)
ENDIF
FMT(vwl_fr/r_)
endphoneme
phoneme l
liquid
starttype #l endtype #l
lengthmod 7
IF nextPh(isNotVowel) THEN
@@ -178,6 +175,7 @@ endphoneme
phoneme l/ // used for [l] when not before a vowel
liquid
starttype #l endtype #l
lengthmod 7
IF nextPh(isVowel) THEN
@@ -190,13 +188,14 @@ phoneme l/ // used for [l] when not before a vowel
VowelEnding(l/l_e)
VowelEnding(l/l_i)
VowelEnding(l/l_o)
VowelEnding(l/l_u, -20)
VowelEnding(l/l_u)
EndSwitch
IF prevPh(i) THEN
FMT(l/l_)
IF prevPh(#r) THEN
FMT(l/_l)
ENDIF
FMT(l/_l)
FMT(l/l_)
endphoneme
@@ -224,8 +223,7 @@ phoneme a
VowelStart(l/la, -15)
ENDIF
IF prevPhW(u) THEN
length 140
IF prevPhW(w) OR prevPhW(w/) THEN
FMT(vowel/a_5)
ENDIF
@@ -252,6 +250,14 @@ phoneme E
vowel starttype #e endtype #e
length 170
IF nextPh(r/2) THEN
VowelEnding(vwl_fr/r_e2)
ENDIF
IF nextPhW(j) THEN
length 190
ENDIF
FMT(vowel/e_mid)
endphoneme
@@ -296,14 +302,27 @@ phoneme o
vowel starttype #o endtype #o
length 170
ChangeIfUnstressed(o2)
IF nextPh(r/2) THEN
VowelEnding(vwl_fr/r_o)
FMT(vowel/o_mid2)
IF thisPh(isFinalVowel) THEN
IF thisPh(isWordEnd) THEN
FMT(vowel/o_8)
ELIF nextPh(p2) OR nextPh(t2) OR nextPh(z2) THEN
FMT(vowel/o_8)
ELSE
ChangePhoneme(O)
ENDIF
ELSE
IF nextPhW(isLiquid) AND next2Ph(isNotVowel) THEN
ChangePhoneme(O)
ELIF nextPhW(isNasal) AND next2Ph(isNotVowel) THEN
ChangePhoneme(O)
ELIF nextPhW(isNotVowel) AND next2Ph(isNasal) THEN
ChangePhoneme(O)
ELIF nextPhW(t) AND next2Ph(isLiquid) AND nextVowel(isFinalVowel) THEN
ChangePhoneme(O)
ELSE
FMT(vowel/o)
ENDIF
ENDIF
FMT(vowel/o_8)
endphoneme
@@ -311,32 +330,29 @@ phoneme o2
vowel starttype #o endtype #o
length 170
IF nextPh(r/2) THEN
VowelEnding(vwl_fr/r_o)
FMT(vowel/o_mid2)
ENDIF
IF nextPh(l/) THEN
VowelEnding(l/l_o)
FMT(vowel/o_mid2)
ENDIF
FMT(vowel/o)
IF thisPh(isFinalVowel) THEN
FMT(vowel/o_8)
ELSE
FMT(vowel/o)
ENDIF
endphoneme
phoneme O
vowel starttype #o endtype #o
length 170
length 180
ChangeIfUnstressed(o2)
IF prevPhW(#r) THEN
VowelStart(vwl_fr/ro2)
ENDIF
FMT(vowel/o_mid2)
endphoneme
phoneme O2 // Like O but no reduceto
vowel starttype #o endtype #o
length 170
IF nextPhW(r/2) THEN
VowelEnding(vwl_fr/r_o2)
ENDIF
FMT(vowel/o_mid2)
endphoneme
@@ -350,14 +366,7 @@ endphoneme
phoneme u
vowel starttype #u endtype #u
length 170
IF nextPh(i) THEN
Length 50
ENDIF
IF nextPhW(a) THEN
length 110
ENDIF
length 180
FMT(vowel/u_bck2)
endphoneme
@@ -377,38 +386,27 @@ phoneme y
IF nextPh(l/) THEN
VowelEnding(l/l_y, -30)
ENDIF
IF prevPh(#r) THEN
VowelStart(vwl_fr/ry)
IF thisPh(isFinalVowel) THEN
VowelStart(vwl_fr/ry, -10)
ELSE
VowelStart(vwl_fr/ry)
ENDIF
ENDIF
IF nextPh(r/2) THEN
VowelEnding(vwl_fr/r_y)
ENDIF
IF nextPh(E~) THEN
Length 120
IF nextPhW(E~) THEN
FMT(vowel/y_2, -30)
ENDIF
FMT(vowel/y_2)
endphoneme
phoneme Y
vowel starttype #@ endtype #@
length 170
ChangeIfUnstressed(W)
IF prevPh(l) THEN
VowelStart(l/l@, -20)
ENDIF
IF nextPh(l/) THEN
VowelEnding(l/l_@, -20)
ENDIF
FMT(vowel/y#)
endphoneme
phoneme W
vowel starttype #@ endtype #@
length 180
@@ -425,14 +423,70 @@ phoneme W
endphoneme
phoneme Y
vowel starttype #@ endtype #@
length 170
IF prevPh(l) THEN
VowelStart(l/l@, -20)
ENDIF
IF nextPh(l/) THEN
VowelEnding(l/l_@, -20)
ENDIF
IF thisPh(isFinalVowel) THEN
IF thisPh(isWordEnd) THEN
FMT(vowel/y#)
ELIF nextPh(z2) OR nextPh(t2) THEN
FMT(vowel/y#)
ELSE
ChangePhoneme(W)
ENDIF
ELSE
IF nextPhW(isNotVowel) AND next2Ph(isLiquid) THEN
FMT(vowel/y#)
ELIF nextPhW(isNotVowel) AND next2Ph(isNotVowel) THEN
ChangePhoneme(W)
ELSE
FMT(vowel/y#)
ENDIF
ENDIF
endphoneme
phoneme w
vowel starttype #u endtype #u
IF prevPhW(#r) OR prevPhW(#l) THEN
NextVowelStarts
VowelStart(w/w@)
VowelStart(w/wa, -10)
VowelStart(w/we)
VowelStart(w/wi)
VowelStart(w/wo)
VowelStart(w/wu)
EndSwitch
ELSE
ChangePhoneme(w/)
ENDIF
endphoneme
phoneme w/
import_phoneme base/w
endphoneme
phoneme w^i
vowel starttype #u endtype #i
length 240
IF prevPh(l) THEN
IF prevPhW(l) THEN
VowelStart(l/lu, -20)
ENDIF
IF prevPh(#r) THEN
IF prevPhW(#r) THEN
VowelStart(vwl_fr/ry)
ENDIF
@@ -446,8 +500,13 @@ phoneme A~
IF nextPh(r/2) THEN
VowelEnding(vwl_fr/r_an)
ENDIF
IF prevPh(#r) THEN
VowelStart(vwl_fr/raa, -10)
IF prevPhW(#r) THEN
IF thisPh(isFinalVowel) THEN
VowelStart(vwl_fr/raa, -15)
ELSE
VowelStart(vwl_fr/raa, -10)
ENDIF
ENDIF
FMT(vnasal/aa_n4)
@@ -516,8 +575,11 @@ phoneme b
Vowelout f1=2 f2=1000 -500 -300 f3=-300 80 brk
IF KlattSynth THEN
CALL base/b
RETURN
Vowelin f1=1 f2=1000 -500 -300 f3=-300 80
IF nextPh(isPause2) THEN
FMT(klatt/b) addWav(x/b_)
ENDIF
FMT(klatt/b) addWav(x/b)
ENDIF
IF PreVoicing THEN
@@ -545,8 +607,8 @@ phoneme d
IF nextPh(isPause2) OR nextPh(isPause) THEN
FMT(d/d_) addWav(x/d_, 50)
// ELIF nextPh(#r) THEN
// FMT(d/dr) addWav(x/d, 30)
ELIF nextPh(#r) THEN
FMT(d/dr) addWav(x/d, 30)
ELIF prevPh(isPause) THEN
FMT(d/d) addWav(x/d, 50)
ENDIF
@@ -577,32 +639,31 @@ endphoneme
phoneme k
vls vel stop
voicingswitch g
length 50
lengthmod 2
Vowelin f1=0 f2=2300 200 400 f3=-100 80
Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20
IF nextPh(isPause2) THEN
WAV(ustop/k_)
ELIF nextPh(#r) THEN
length 50
WAV(ustop/kr, 40)
ELIF nextPh(#i) OR nextPh(;) THEN
WAV(ustop/ki, 45)
ELIF nextPh(#l) THEN
WAV(ustop/kl, 45)
WAV(ustop/kl, 40)
ENDIF
WAV(ustop/k, 40)
WAV(ustop/k, 35)
endphoneme
phoneme n2
vcd alv nasal
IF nextPh(isNotVowel) THEN
IF nextPh(w) OR nextPh(isVowel) THEN
ChangePhoneme(n)
ELSE
ChangePhoneme(NULL)
ENDIF
ChangePhoneme(n)
endphoneme
@@ -619,8 +680,6 @@ phoneme p
WAV(ustop/p_unasp, 60)
ELIF nextPh(#l) THEN
WAV(ustop/pl, 30)
ELIF nextPh(#r) THEN
WAV(ustop/pr, 25)
ENDIF
WAV(ustop/p_unasp_, 90)
endphoneme
@@ -663,6 +722,10 @@ phoneme S
Vowelin f1=0 f2=1900 100 300 f3=-100 80
Vowelout f1=0 f2=1900 100 300 f3=-100 80
IF prevPhW(t) THEN
length 60
ENDIF
IF nextPh(isPause) THEN
WAV(ufric/sh_, 45)
ENDIF
@@ -683,8 +746,8 @@ phoneme t
ELIF nextPh(r/2) THEN
WAV(ustop/t_short, 50)
ENDIF
WAV(ustop/t_short, 40)
WAV(ustop/t_short, 40)
endphoneme
@@ -694,11 +757,12 @@ phoneme t2 // silent unless followed by vowel
Vowelout f1=0 f2=1600 -300 250 f3=-100 80 rms=20
lengthmod 2
IF nextPh(isNotVowel) THEN
IF nextPh(isVowel) OR nextPh(w) THEN
WAV(ustop/t_short, 30)
ELSE
ChangePhoneme(NULL)
ENDIF
WAV(ustop/t_short, 30)
endphoneme
@@ -733,8 +797,10 @@ phoneme v
ENDIF
IF thisPh(isWordStart) AND nextPhW(isLiquid) THEN
Length 70
ELIF nextPhW(w) THEN
Length 50
ENDIF
FMT(voc/v) addWav(vocw/v, 75)
FMT(voc/v) addWav(vocw/v, 60)
endphoneme
@@ -744,17 +810,26 @@ phoneme z
lengthmod 6
Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50
IF nextPhW(z) THEN
FMT(d/xd)
ENDIF
IF nextPh(isPause2) OR nextPh(isPause) THEN
FMT(voc/z_) addWav(ufric/s_, 45)
ENDIF
IF prevPhW(t) THEN
length 60
ENDIF
FMT(voc/z) addWav(ufric/s_, 45)
endphoneme
phoneme z2 // silent unless followed by vowel
vcd alv frc sibilant
IF nextPh(isVowel) THEN
ChangePhoneme(z)
IF nextPh(isVowel) OR nextPh(w/) THEN
FMT(voc/z_, -20) addWav(ufric/s_, 40)
ELSE
ChangePhoneme(NULL)
ENDIF
@@ -765,7 +840,7 @@ phoneme z3 // "six" and "dix". [s] before pause, [z] before vowel, else []
vcd alv frc sibilant
IF nextPh(isPause) THEN
ChangePhoneme(s)
ELIF nextPh(isVowel) THEN
ELIF nextPh(isVowel) OR nextPh(w/) THEN
ChangePhoneme(z)
ELSE
ChangePhoneme(NULL)
+9
View File
@@ -17,6 +17,15 @@ phoneme V
FMT(vowel/V_3)
endphoneme
phoneme V# // omit if the next phoneme is a vowel
vowel starttype #@ endtype #@
length 130
IF nextPhW(isVowel) THEN
ChangePhoneme(NULL)
ENDIF
ChangePhoneme(V)
endphoneme
phoneme a:
vowel starttype #a endtype #a
+3
View File
@@ -1676,3 +1676,6 @@ include ph_punjabi
phonemetable prs base
include ph_dari
phonemetable gd base
include ph_s_gaelic
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.