[1.43.31]

*_list files: added attribute $sentence.
*_rules files: added attributes $w_alt, $p_alt.
phoneme definitions: added attribute no_pause.

-X command-line option: Show the matching of multiple-word entries in *_list files.

espeakedit: Add menu option to compile the intonation data file (the data is not yet used).

Start language: Bulgarian.

lang=bg (Bulgarian): Add feature in espeakedit to make bg_listx from a lexicon of words which have stress position mark-up.

espeakedit: Change the frame-length field from Spin Control to Text Control to allow better access from screen-readers.

Language options: add an option to the Regressive Voicing option to de-voice the final consonant of words.

Don't speak "dot" if an ellipsis is followed by a dot.

Intonation: change the internal pitch unit to give finer control, and align with the values displayed in the espeakedit Prosody window.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@243 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
jonsd
2010-05-21 23:21:06 +00:00
parent 19b774ffc6
commit cec2c415da
113 changed files with 13695 additions and 5592 deletions
+97 -56
View File
@@ -1,4 +1,4 @@
60 phoneme tables
62 phoneme tables
new total
base 99 99
consonants 9 107
@@ -17,7 +17,7 @@ consonants 9 107
jbo 2 111
nci 3 120
fi 40 130
fr 55 137
fr 56 137
fr_ca 11 137
hi 58 145
ta 21 149
@@ -42,7 +42,7 @@ consonants 9 107
grc 12 124
sv 23 121
no 28 125
is 32 125
is 42 135
ru 39 130
vi 41 136
zhy 41 133
@@ -59,7 +59,9 @@ consonants 9 107
ne 18 153
pa 14 147
prs 8 106
sl 6 130
gd 6 99
bg 10 115
Data file Used by
b/b [b] base
@@ -104,7 +106,6 @@ d/dr [*] base
[d[] base
[d] base2
[d] fi
[d] fr
[d.] hi
[dh.] hi
[d] hu
@@ -199,6 +200,7 @@ envelope/p_rise [3] vi
[35] zh
envelope/vi_5amp [5] vi
envelope/vi_6amp [6] vi
g2/g [g] fr
g2/xg [gh] hi
g/g [g] base
[g-] en
@@ -251,22 +253,28 @@ j/j_ [j] base
[j] zh
j/j@ [j] base
[j] de
[j/] fr
[j] zh
j/ja [j] base
[j] de
[j/] fr
[j] zh
j/je [j] base
[j] de
[j/] fr
[j] zh
j/ji [j] base
[j] de
[j/] fr
[j] zh
j/jo [j] base
[j] de
[j/] fr
[j] zh
j/_j_short [j] de
j/ju [j] base
[j] de
[j/] fr
[j] zh
j/xj [j] base
[j] de
@@ -322,12 +330,10 @@ l/l_ [l/] base
[l/] fr
l/l_@ [l/3] base
[W] fr
[Y] fr
[l/] fr
l/l@ [] base
[L] base
[W] fr
[Y] fr
[l] fr
l/L1_aL [l/] base
[l/] de
@@ -353,7 +359,6 @@ l/l_3 [l/] de
l/l_4 [ll] sq
l/la [] base
[L] base
[a] fr
[l] fr
l/l_a [l/3] base
[l/] fr
@@ -373,6 +378,8 @@ l/li [] base
l/l_i [l/3] base
[l/] fr
[i] sq
ll/ll [L] bg
ll/_ll [L] bg
l/l_long [l] base
[l] fr
l/lo [] base
@@ -380,15 +387,14 @@ l/lo [] base
[l] fr
l/l_o [l/3] base
[l/] fr
[o2] fr
l^/l_rfx [l.] base
l/lu [] base
[L] base
[l] fr
[w^i] fr
l/l_u [l/3] base
[l/] fr
l/l_vi [l] vi
ll/xll [L] bg
l/l_y [y] fr
l/tl [l] base
[l] fr
@@ -516,6 +522,8 @@ r3/r_uvl.wav [r"] base
r3/rx [*] base
[r/] base
[r/] af
[r] fr
[r/] fr
[r/2] fr
[R] fr_ca
[x] pt_pt
@@ -590,6 +598,7 @@ ufric/ll [L] base
[l#] is
ufric/s [s] base
[s] fr
[z2] fr
[s] es
[z] sq
ufric/s_ [s] base
@@ -597,7 +606,6 @@ ufric/s_ [s] base
[s2] consonants
[s] fr
[z] fr
[z2] fr
[s] es
[z;] ro
[z] sq
@@ -773,6 +781,7 @@ ustop/t_short [t] fr
[t] lv
[t] sk
[t] el
ustop/t_short_ [t] fr
ustop/tsh_pzd [tS;] zh
ustop/tsh_pzd_unasp [tS;] zh
ustop/tsh_sr [tS] sr
@@ -835,7 +844,7 @@ vdiph2/o@ [o@] af
vdiph2/oa [Oa] ro
[ua] zh
vdiph2/o_oo [o@] en_wi
[o] is
[O:] is
[o] zh
vdiph2/u#@ [U@] en_sc
vdiph2/uaa [uo] lv
@@ -867,6 +876,8 @@ vdiph/aai_2 [AI] af
vdiph/aai_3 [ai] fi
vdiph/aau [au] fi
[au] lv
[aU] is
[aU:] is
vdiph/aau_2 [aU] en_wi
[aU] de
[VU] nl
@@ -900,6 +911,7 @@ vdiph/ai_6 [aI] en_rp
vdiph/ai_7 [aI] en_sc
[aI2] en_sc
[aI] is
[aI:] is
vdiph/ai_8 [aI] ta
vdiph/aoo [aU] en_us
vdiph/au [aU] en
@@ -914,7 +926,6 @@ vdiph/au_4 [aU] base2
[aU] eo
[aU] sk
[aU] it
[aU] is
[aU] id
vdiph/ee-e [E:] hi
vdiph/eei [EI] base2
@@ -946,6 +957,7 @@ vdiph/ei [eI] base2
[eI] la
[eI] pt
[eI] is
[eI:] is
[eI] vi
[ei] zhy
vdiph/eu [eU] base2
@@ -971,11 +983,13 @@ vdiph/@i_3 [eI] en_wm
vdiph/&i_3 [aI] vi
vdiph/ii [iI] ro
vdiph/i#i [yI] ro
vdiph/oa_fr [w^a] fr
vdiph/oi [oI] base2
[OI] en_wm
[OY] de
[oI] it
[OI] la
[OI] is
[oI] vi
[oI] ne
vdiph/oi_2 [oI] af
@@ -1001,7 +1015,7 @@ vdiph/ou [ou] fi
vdiph/ou_2 [oU] sk
[oU] ro
vdiph/ou_3 [oU] is
[oU2] is
[oU:] is
vdiph/@u [u:] en_wm
[@U] vi
[@:U] vi
@@ -1034,6 +1048,7 @@ vdiph/yi [yi] fi
[yi] zh
vdiph/y#i [Yi] fi
vdiph/y#i_2 [Yy] is
[Yy:] is
vdiph/yi_fr [w^i] fr
vdiph/y#y [Yy] fi
vdiph/y#y_2 [Yy] af
@@ -1119,12 +1134,12 @@ vocw/zh [Z] base
vocw/zh_rfx [z.] base
voc/z [z] base
[z] fr
[z2] fr
[z;] ro
[z] sq
voc/z_ [z] base
[dz] consonants
[z] fr
[z2] fr
[z;] ro
[z] sq
voc/zh [Z] base
@@ -1153,6 +1168,7 @@ vowel/@ [@] base
[@4] hi
[@] hy
[@] ml
[@] sl
vowel/@- [@-] base
[r*] hr
vowel/& [a] en_rp
@@ -1221,6 +1237,7 @@ vowel/a [a] en
[a] it
[a] zh
[a] id
[a] bg
vowel/a# [a] base2
[a/] base2
[a2] en_sc
@@ -1242,7 +1259,7 @@ vowel/a_2 [a] base2
vowel/a#_2 [a#] pl
[&] hr
[a2] sv
[&] is
[a] is
[a/] sw
vowel/a_3 [a] en_sc
[a/] en_sc
@@ -1252,7 +1269,6 @@ vowel/a_3 [a] en_sc
[a:] lv
[a:] cs
[a:] la
[a] is
[A] zh
[a] sq
[A] da
@@ -1278,17 +1294,17 @@ vowel/a#_3 [a2] en
[a] ml
vowel/a_4 [a/] el
[a] vi
vowel/a_5 [a] fr
[a:] ta
vowel/a#_4 [a] bg
vowel/a_5 [a:] ta
[a/] it
[a] la
[a] sv
[a] sw
[a] tr
[a:] ml
vowel/a_6 [a] fr
[a] ca
vowel/a_6 [a] ca
[a:] vi
vowel/a_7 [a] fr
vowel/aa [A] fr_ca
[A] no
[A:] no
@@ -1316,6 +1332,7 @@ vowel/aa_6 [A] de
vowel/aa_7 [A] nl
vowel/aa_8 [0] en_us
[A:] en_us
[a:] is
vowel/aa_9 [a] fi
[a:] hi
[a] ne
@@ -1326,6 +1343,7 @@ vowel/@_bck [@] hi
[V] ne
[@/] ne
[@] pa
[@] bg
vowel/e [e] base2
[e:] en
[eI] en_n
@@ -1353,6 +1371,7 @@ vowel/e [e] base2
[e] ml
[e:] ml
[e] ne
[e] sl
vowel/e# [I] en_sc
vowel/e_2 [eI] en_sc
[e:] de
@@ -1371,7 +1390,7 @@ vowel/e_9 [E2] fr
vowel/ee [E] en_n
[E] sv
vowel/e_e [E] en_sc
[e] is
[E:] is
vowel/ee# [E#] pl
vowel/ee_1 [E] base2
[e@] en
@@ -1381,6 +1400,7 @@ vowel/ee_1 [E] base2
[E:] sv
[E:] no
[e] zhy
[E] sl
vowel/ee_2 [E] cy
[E2] nl
[E] zh
@@ -1422,6 +1442,7 @@ vowel/e_mid [E] en_rp
[E2] id
[e] hy
[E] prs
[e] bg
vowel/e_mid2 [E] af
[E] de
[E2] de
@@ -1438,11 +1459,11 @@ vowel/e_mid2 [E] af
[e] tr
[e] sq
[E] da
[e] bg
vowel/@_fnt [@] en_wi
[@2] en_wi
[@2] hr
vowel/@_fr [3] en_n
[@2] fr
vowel/@_hgh [@] fr
[@] hr
vowel/i [i] base2
@@ -1471,8 +1492,6 @@ vowel/i [i] base2
vowel/i# [y:] cy
vowel/i_2 [i2] de
[i:] de
[i] fr
[i-] fr
[i] nl
[i:] la
[i:] sv
@@ -1482,7 +1501,7 @@ vowel/i_3 [i] af
vowel/i_4 [i] fi
[i] hu
[I] it
[i] is
[i:] is
[i] vi
[i] da
vowel/i_5 [i:] en_sc
@@ -1498,10 +1517,12 @@ vowel/i_6 [i] hi
[i] ku
[i] id
[i] ml
[i] bg
vowel/i#_6 [i.] zh
vowel/i_7 [i] pl
[i] sq
vowel/i#_7 [i[] zh
vowel/i_8 [i] fr
vowel/i_en [i:] en
[i:] en_us
vowel/i_fnt [i:] en_wi
@@ -1517,6 +1538,7 @@ vowel/ii [I] en_n
[I] fr_ca
[I] nl
[I] is
[I:] is
[i] zhy
[I] ku
[I#] sq
@@ -1542,6 +1564,7 @@ vowel/ii_4 [I2] en
[I] en_us
vowel/ii_5 [I] la
[i] zh
[i] bg
vowel/ii_6 [I] en_wm
[I] en_wi
[I2] en_wi
@@ -1549,6 +1572,7 @@ vowel/ii_6 [I] en_wm
[I] pt
[y] pt
[i/] pt
[i] is
[I] sq
vowel/ii_en [i] en
[i] sq
@@ -1594,6 +1618,7 @@ vowel/o [o] base2
[o] ml
[o:] ml
[o:] pa
[o] sl
vowel/o_2 [o:] cy
[o:] hi
[o:] hu
@@ -1623,6 +1648,7 @@ vowel/o_mid [U@] en_rp
[o] hu
[o] tr
[o] ne
[o] bg
vowel/o_mid2 [O] fr
vowel/oo [O:] en_sc
[O] en_wi
@@ -1639,6 +1665,7 @@ vowel/oo [O:] en_sc
[O] tr
[O] id
[o] prs
[o] bg
vowel/oo_1 [O:] en_n
[O:] en_rp
[O@] en_rp
@@ -1668,6 +1695,7 @@ vowel/oo_4 [O] base2
vowel/oo_5 [O] pl
[O] is
[O] sq
[O] sl
vowel/oo_en [O] en
[O:] en
[O@] en
@@ -1705,7 +1733,9 @@ vowel/u_2 [u1] fi
[u] sk
[U] hr
[u] ro
[u] is
[u] tr
[u] bg
vowel/u#_2 [u-] ta
[u-] sv
vowel/u#_3 [U] ta
@@ -1737,7 +1767,7 @@ vowel/u_bck [u] base2
[u] pt
[u:] sv
[u:] no
[u] is
[u:] is
[u] zhy
[u] zh
[u] sq
@@ -1747,6 +1777,7 @@ vowel/u_bck [u] base2
[u#] rw
[u] ne
[u] pa
[u] bg
vowel/u_bck2 [u] fr
[u:] fr
[u:] la
@@ -1773,6 +1804,7 @@ vowel/uu_bck [U] en_wi
[U] pa
vowel/V [3] en_sc
[W#] da
[@] bg
vowel/V_2 [V] en
[a] af
[V] ru
@@ -1782,6 +1814,7 @@ vowel/V_3 [V] en_rp
[V] hi
[V] ta
[V] pa
[a] bg
vowel/V_4 [V] en_sc
[V] da
vowel/V_6 [V] en_us
@@ -1789,6 +1822,7 @@ vowel/V_6 [V] en_us
vowel/y [y] base2
[y:] de
[y] fi
[y] fr
[y:] hu
[y] nl
[y] la
@@ -1804,14 +1838,14 @@ vowel/y# [Y] base2
[8] nl
[Y] ro
[oe] zhy
vowel/y## [y#] is
vowel/y_2 [y] fr
[y:] la
vowel/y## [y] is
vowel/y_2 [y:] la
[y] zh
vowel/y#_2 [Y] hu
[Y:] sv
vowel/y_3 [y] af
vowel/y#_3 [W] is
[W:] is
vowel/y_4 [y:] no
vowel/y_5 [y:] sv
[y] tr
@@ -1823,7 +1857,8 @@ vowel/yy_3 [y] sv
vowel/yy_4 [y] de
[y] hu
[y] grc
[y] is
[y:] is
[yI] is
[y] hy
vwl_af/@ [@] af
vwl_af/I [I] af
@@ -1867,36 +1902,42 @@ vwl_en_us/oor [0] en_us
vwl_en_us/or [o@] en_us
[O:] en_sc
vwl_en_us/ur [U@] en_us
vwl_fr/@2r [é”] fr
vwl_fr/a2r [é”] fr
vwl_fr/aa2r [é”] fr
vwl_fr/e2r [é”] fr
vwl_fr/ee2r [é”] fr
vwl_fr/i2r [é”] fr
vwl_fr/o2r [é”] fr
vwl_fr/oo2r [é”] fr
vwl_fr/r [r] fr
[r2] fr
vwl_fr/_r [r] fr
vwl_fr/r_ [r/2] fr
vwl_fr/r_@ [r/2] fr
vwl_fr/r@ [ j] fr
vwl_fr/r_ [r/] fr
vwl_fr/r_@ [r/] fr
vwl_fr/r@ [é”] fr
vwl_fr/@R [x] pt_pt
vwl_fr/r_2 [r/2] fr
vwl_fr/@R2 [R] fr_ca
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 [ j] fr
vwl_fr/r_e [r/2] fr
vwl_fr/r_e2 [E] fr
vwl_fr/ri [ j] fr
vwl_fr/r_i [r/2] 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 [ j] fr
vwl_fr/ra [é”] fr
vwl_fr/r_a [r/] fr
vwl_fr/raa [é”] fr
vwl_fr/re [é”] fr
vwl_fr/r_e [r/] fr
vwl_fr/ree [é”] fr
vwl_fr/ri [é”] fr
vwl_fr/r_i [r/] fr
vwl_fr/rj [é”] fr
vwl_fr/r_n [r/] fr
vwl_fr/ro [é”] fr
vwl_fr/r_o [r/] fr
vwl_fr/roo [é”] fr
vwl_fr/rr [r/] fr
vwl_fr/ru [é”] fr
vwl_fr/r_u [r/] fr
vwl_fr/ry [é”] fr
vwl_fr/tr [r/2] fr
vwl_fr/trr [r/] fr
vwl_fr/u2r [é”] fr
vwl_fr/y2r [é”] fr
vwl_hi/l-voc [l-] base
[l-] sk
[l:] sk
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+7 -3
View File
@@ -29,7 +29,11 @@ phoneme l // use dark [l/2] before not-vowel
lengthmod 7
IF nextPh(isNotVowel) THEN
ChangePhoneme(l/2)
IF prevPh(isNotVowel) THEN
ChangePhoneme(l/)
ELSE
ChangePhoneme(l/2)
ENDIF
ENDIF
CALL base/l
@@ -130,7 +134,7 @@ endphoneme
phoneme a
vowel starttype #a endtype #a
length 150
length 160
ChangeIfDiminished(a2)
FMT(vowel/a)
endphoneme
@@ -146,7 +150,7 @@ endphoneme
phoneme aa // 'bath' etc.
vowel starttype #a endtype #a
length 150
length 190
IfNextVowelAppend(r-)
FMT(vowel/a)
endphoneme
+188 -168
View File
@@ -1,14 +1,14 @@
//====================================================
// French
//====================================================
// Updated 2010-04-01 Michel Such <michel.such@free.fr>
// Updated 2010-05-19 Michel Such <michel.such@free.fr>
phoneme #l virtual
// Used for l and l/
endphoneme
phoneme #r virtual
// Used for r and r/2
// Used for r, r2 and r/
endphoneme
phoneme : // Lengthen previous vowel by "length"
@@ -18,20 +18,36 @@ endphoneme
procedure pre_post_r
IF prevPh(isVowel) THEN
VowelEnding(vwl_fr/xr)
IF prevPh(y) THEN
VowelEnding(vwl_fr/y2r)
ELIF prevPh(A~) THEN
VowelEnding(vwl_fr/aa2r)
ELIF prevPh(E~) OR prevPh(W~) THEN
VowelEnding(vwl_fr/ee2r)
ELIF prevPh(O~) OR prevPh(W~) THEN
VowelEnding(vwl_fr/oo2r)
ELIF prevPh(isVowel) THEN
PrevVowelEndings
VowelEnding(vwl_fr/@2r)
VowelEnding(vwl_fr/a2r)
VowelEnding(vwl_fr/e2r)
VowelEnding(vwl_fr/i2r)
VowelEnding(vwl_fr/o2r)
VowelEnding(vwl_fr/u2r)
EndSwitch
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
IF nextPh(A~) THEN
VowelStart(vwl_fr/raa)
ELIF nextPh(E~) OR nextPh(W~) THEN
VowelStart(vwl_fr/ree)
ELIF nextPh(y) THEN
VowelStart(vwl_fr/ry)
ELIF nextPh(O~) THEN
VowelStart(vwl_fr/roo)
ELIF nextPh(j/) THEN
VowelStart(vwl_fr/rj)
ELIF nextPh(isVowel) THEN
NextVowelStarts
VowelStart(vwl_fr/r@)
VowelStart(vwl_fr/ra)
@@ -45,27 +61,27 @@ endprocedure
phoneme r
liquid rhotic uvl
liquid rhotic vel nopause
starttype #r endtype #r
lengthmod 7
Vowelin f1=0 f2=1200 -500 500 f3=-200 100 len=65
Vowelout f1=0 f2=1200 -500 500 f3=200 100 len=50
lengthmod 2
IF nextPh(isNotVowel) THEN
ChangePhoneme(r/2)
ChangePhoneme(r/)
ENDIF
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)
IF thisPh(isWordStart) THEN
length 80
FMT(vwl_fr/r) addWav(r3/rx, 25)
ELIF prevPhW(p) OR prevPhW(k) OR prevPhW(t) OR prevPhW(S) THEN
ChangePhoneme(r/2)
ELIF prevPhW(b) OR prevPhW(d) OR prevPhW(g) THEN
ChangePhoneme(r/2)
ELIF prevPhW(f) OR prevPhW(v) THEN
ChangePhoneme(r/2)
ENDIF
FMT(vwl_fr/r)
@@ -73,11 +89,11 @@ endphoneme
phoneme r2 // silent unless followed by vowel
liquid rhotic uvl
liquid rhotic vel
starttype #r endtype #r
lengthmod 7
Vowelin f1=0 f2=1600 -300 300 f3=-200 80
Vowelout f1=2 f2=1600 -300 300 f3=-300 80
Vowelin f1=0 f2=1200 -500 500 f3=-200 100 len=65
Vowelout f1=0 f2=1200 -500 500 f3=200 100 len=50
lengthmod 2
IF nextPh(isNotVowel) THEN
ChangePhoneme(NULL)
@@ -89,48 +105,51 @@ phoneme r2 // silent unless followed by vowel
endphoneme
phoneme r/2 // variant of [r] when not preceding a vowel
phoneme r/ // variant of [r] when not preceding a vowel
liquid rhotic vel
starttype #r endtype #r
Vowelout f1=2 f2=1600 -300 300 f3=-300 100 len=40
Vowelout f1=0 f2=1150 -500 500 f3=200 100 len=30
lengthmod 2
PrevVowelEndings
VowelEnding(vwl_fr/r_@)
VowelEnding(vwl_fr/r_a)
VowelEnding(vwl_fr/r_e)
VowelEnding(vwl_fr/r_i)
VowelEnding(vwl_fr/r_o)
VowelEnding(vwl_fr/r_u)
EndSwitch
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(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
FMT(vwl_fr/r_, -10) addWav(r3/rx, 15)
ELIF prevPhW(d) THEN
FMT(vwl_fr/r_) addWav(r3/rx, 15)
ELIF prevPh(isNotVowel) THEN
FMT(vwl_fr/rr) addWav(r3/rx, 15)
ENDIF
FMT(vwl_fr/r_) addWav(r3/rx, 15)
ENDIF
FMT(vwl_fr/r_)
IF prevPh(isVowel) THEN
PrevVowelEndings
VowelEnding(vwl_fr/r_@)
VowelEnding(vwl_fr/r_a)
VowelEnding(vwl_fr/r_e)
VowelEnding(vwl_fr/r_i)
VowelEnding(vwl_fr/r_o)
VowelEnding(vwl_fr/r_u)
EndSwitch
ENDIF
IF nextPhW(n) OR nextPhW(n^) THEN
FMT(vwl_fr/r_n) addWav(r3/rx, 25)
ENDIF
FMT(vwl_fr/r_) addWav(r3/rx, 30)
endphoneme
phoneme r/2
liquid rhotic
starttype #r endtype #r
palatal
Vowelin f1=0 f2=1200 -500 500 f3=-200 100 len=75
CALL pre_post_r
FMT(vwl_fr/tr) addWav(r3/rx, 25)
endphoneme
phoneme l
liquid
liquid nopause
starttype #l endtype #l
lengthmod 7
@@ -154,10 +173,9 @@ phoneme l
ENDIF
IF prevPh(isPause) OR thisPh(isWordStart) THEN
VowelEnding(NULL)
FMT(l/_l)
ENDIF
IF prevPh(r/2) THEN
IF prevPh(isRhotic) THEN
FMT(l/_l)
ENDIF
@@ -208,32 +226,25 @@ phoneme @
endphoneme
phoneme @2
vowel starttype #@ endtype #@
length 160
FMT(vowel/@_fr)
endphoneme
phoneme a
vowel starttype #a endtype #a
length 170
IF prevPh(l) THEN
VowelStart(l/la, -15)
IF nextPh(isVowel) THEN
length 220
ELSE
length 170
ENDIF
IF prevPhW(w) OR prevPhW(w/) THEN
FMT(vowel/a_5)
ENDIF
FMT(vowel/a_6)
FMT(vowel/a_7)
endphoneme
phoneme e
vowel starttype #e endtype #e
length 170
IF nextPh(isVowel) THEN
length 220
ELSE
length 170
ENDIF
IF nextPh(l/) THEN
VowelEnding(l/xl, -20)
@@ -250,10 +261,6 @@ 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
@@ -272,19 +279,18 @@ endphoneme
phoneme i
vowel starttype #i endtype #i
length 160
IF prevPhW(#r) AND nextPhW(isVowel) THEN
ChangePhoneme(j/)
ELIF nextPhW(isVowel) THEN
ChangePhoneme(j)
ELSE
length 160
ENDIF
IfNextVowelAppend(;)
FMT(vowel/i_2)
endphoneme
phoneme i- // shorter
vowel starttype #i endtype #i
length 110
FMT(vowel/i_2)
FMT(vowel/i_8)
endphoneme
@@ -298,40 +304,70 @@ phoneme i: // longer than i
endphoneme
phoneme j/ // Short "i" between "r" and a vowel
vowel starttype #i endtype #i
palatal
IF nextPh(isVowel) THEN
NextVowelStarts
VowelStart(j/j@)
VowelStart(j/ja)
VowelStart(j/je)
VowelStart(j/ji)
VowelStart(j/jo)
VowelStart(j/ju)
EndSwitch
ELSE
ChangePhoneme(NULL)
ENDIF
endphoneme
phoneme o
vowel starttype #o endtype #o
length 170
IF nextPh(isVowel) THEN
length 220
ELSE
length 170
ENDIF
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)
ELIF nextPh(z) THEN
FMT(vowel/o)
ELSE
ChangePhoneme(O)
ENDIF
ELSE
IF nextPhW(isLiquid) AND next2Ph(isNotVowel) THEN
ChangePhoneme(O)
ELIF nextPhW(isNasal) AND next2Ph(isNotVowel) THEN
ELIF nextPhW(n) AND next2Ph(j) THEN
FMT(vowel/o)
ELIF nextPhW(isNasal) AND next2Ph(isLiquid) THEN
ChangePhoneme(O)
ELIF nextPhW(isNotVowel) AND next2Ph(isNasal) THEN
ChangePhoneme(O)
ELIF nextPhW(d) AND next2Ph(isNotVowel) THEN
ChangePhoneme(O)
ELIF nextPhW(t) AND next2Ph(isLiquid) AND nextVowel(isFinalVowel) THEN
ChangePhoneme(O)
ELSE
FMT(vowel/o)
ENDIF
FMT(vowel/o)
ENDIF
endphoneme
phoneme o2
vowel starttype #o endtype #o
length 170
IF nextPh(l/) THEN
VowelEnding(l/l_o)
IF nextPh(isVowel) THEN
length 220
ELSE
length 170
ENDIF
IF thisPh(isFinalVowel) THEN
@@ -344,15 +380,12 @@ endphoneme
phoneme O
vowel starttype #o endtype #o
length 180
IF prevPhW(#r) THEN
VowelStart(vwl_fr/ro2)
IF nextPhW(#r) THEN
length 200
ELSE
length 170
ENDIF
IF nextPhW(r/2) THEN
VowelEnding(vwl_fr/r_o2)
ENDIF
FMT(vowel/o_mid2)
endphoneme
@@ -366,7 +399,11 @@ endphoneme
phoneme u
vowel starttype #u endtype #u
length 180
IF nextPh(isVowel) OR nextPh(j) THEN
length 220
ELSE
length 180
ENDIF
FMT(vowel/u_bck2)
endphoneme
@@ -381,29 +418,19 @@ endphoneme
phoneme y
vowel starttype #u endtype #u
length 170
IF nextPh(isVowel) THEN
length 200
ELSE
length 170
ENDIF
IF nextPh(l/) THEN
VowelEnding(l/l_y, -30)
VowelEnding(l/l_y)
ELIF nextPhW(E~) THEN
FMT(vowel/y, -30)
ENDIF
IF prevPh(#r) THEN
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 nextPhW(E~) THEN
FMT(vowel/y_2, -30)
ENDIF
FMT(vowel/y_2)
FMT(vowel/y)
endphoneme
@@ -427,14 +454,6 @@ 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#)
@@ -458,8 +477,7 @@ endphoneme
phoneme w
vowel starttype #u endtype #u
IF prevPhW(#r) OR prevPhW(#l) THEN
IF prevPh(#r) OR prevPhW(#l) THEN
NextVowelStarts
VowelStart(w/w@)
VowelStart(w/wa, -10)
@@ -479,16 +497,19 @@ phoneme w/
endphoneme
phoneme w^a
vowel starttype #o endtype #a
length 200
FMT(vdiph/oa_fr)
endphoneme
phoneme w^i
vowel starttype #u endtype #i
length 240
IF prevPhW(l) THEN
VowelStart(l/lu, -20)
ENDIF
IF prevPhW(#r) THEN
VowelStart(vwl_fr/ry)
ENDIF
IfNextVowelAppend(;)
FMT(vdiph/yi_fr)
endphoneme
@@ -497,17 +518,6 @@ endphoneme
phoneme A~
vowel starttype #a endtype #a
length 190
IF nextPh(r/2) THEN
VowelEnding(vwl_fr/r_an)
ENDIF
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)
endphoneme
@@ -586,8 +596,13 @@ phoneme b
FMT(b/xb)
ENDIF
IF nextPh(isPause2) OR nextPh(#l) THEN
IF nextPh(isPause2) OR nextPh(l) THEN
FMT(b/b_) addWav(x/b_)
ELIF nextPh(l/) THEN
FMT(b/b)
ELIF nextPh(#r) THEN
length 40
FMT(b/b) addWav(x/b, 50)
ENDIF
FMT(b/b) addWav(x/b, 70)
@@ -605,12 +620,8 @@ phoneme d
FMT(d/xd)
ENDIF
IF nextPh(isPause2) OR nextPh(isPause) THEN
IF nextPh(isPause2) THEN
FMT(d/d_) addWav(x/d_, 50)
ELIF nextPh(#r) THEN
FMT(d/dr) addWav(x/d, 30)
ELIF prevPh(isPause) THEN
FMT(d/d) addWav(x/d, 50)
ENDIF
FMT(d/d) addWav(x/d, 40)
@@ -630,6 +641,8 @@ phoneme g
IF nextPh(isPause2) THEN
FMT(g/g_) addWav(x/g_)
ELIF nextPhW(#r) THEN
FMT(g2/g) addWav(x/g, 20)
ENDIF
FMT(g/g) addWav(x/g, 20)
@@ -650,9 +663,12 @@ phoneme k
WAV(ustop/ki, 45)
ELIF nextPh(#l) THEN
WAV(ustop/kl, 40)
ELIF nextPh(#r) THEN
length 50
WAV(ustop/k, 50)
ENDIF
WAV(ustop/k, 35)
WAV(ustop/k, 40)
endphoneme
@@ -680,6 +696,9 @@ phoneme p
WAV(ustop/p_unasp, 60)
ELIF nextPh(#l) THEN
WAV(ustop/pl, 30)
ELIF nextPh(#r) THEN
length 40
WAV(ustop/p_, 60)
ENDIF
WAV(ustop/p_unasp_, 90)
endphoneme
@@ -738,13 +757,14 @@ phoneme t
vls alv stop
voicingswitch d
lengthmod 2
Vowelin f1=0 f2=1600 -300 300 f3=-100 80
Vowelout f1=0 f2=1600 -300 250 f3=-100 80 brk
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
IF nextPh(isPause2) THEN
WAV(ustop/t_, 40)
ELIF nextPh(r/2) THEN
WAV(ustop/t_short, 50)
ELIF nextPh(#r) THEN
length 40
WAV(ustop/t_short_, 40)
ENDIF
WAV(ustop/t_short, 40)
@@ -757,7 +777,7 @@ phoneme t2 // silent unless followed by vowel
Vowelout f1=0 f2=1600 -300 250 f3=-100 80 rms=20
lengthmod 2
IF nextPh(isVowel) OR nextPh(w) THEN
IF nextPh(isVowel) OR nextPh(w) OR nextPh(j) THEN
WAV(ustop/t_short, 30)
ELSE
ChangePhoneme(NULL)
@@ -797,7 +817,7 @@ phoneme v
ENDIF
IF thisPh(isWordStart) AND nextPhW(isLiquid) THEN
Length 70
ELIF nextPhW(w) THEN
ELIF nextPhW(w) OR nextPhW(#r) THEN
Length 50
ENDIF
FMT(voc/v) addWav(vocw/v, 60)
@@ -828,8 +848,8 @@ endphoneme
phoneme z2 // silent unless followed by vowel
vcd alv frc sibilant
IF nextPh(isVowel) OR nextPh(w/) THEN
FMT(voc/z_, -20) addWav(ufric/s_, 40)
IF nextPh(isVowel) OR nextPh(w/) OR nextPh(j) THEN
FMT(voc/z, -20) addWav(ufric/s, 40)
ELSE
ChangePhoneme(NULL)
ENDIF
+105 -26
View File
@@ -17,10 +17,19 @@ phoneme i
vowel starttype #i endtype #i
length 130
IfNextVowelAppend(;)
FMT(vowel/ii_6)
endphoneme
phoneme i:
vowel starttype #i endtype #i
length 230
IfNextVowelAppend(;)
ChangeIfNotStressed(i)
FMT(vowel/i_4)
endphoneme
phoneme I
vowel starttype #i endtype #i
length 130
@@ -28,77 +37,101 @@ phoneme I
FMT(vowel/ii)
endphoneme
phoneme e
vowel starttype #e endtype #e
length 130
ChangeIfNotStressed(E)
FMT(vowel/e_e)
phoneme I:
vowel starttype #i endtype #i
length 230
IfNextVowelAppend(;)
ChangeIfNotStressed(I)
FMT(vowel/ii)
endphoneme
phoneme E
vowel starttype #e endtype #e
length 130
FMT(vowel/e_mid)
endphoneme
phoneme a
vowel starttype #a endtype #a
phoneme E:
vowel starttype #e endtype #e
length 130
ChangeIfNotStressed(&)
FMT(vowel/a_3)
FMT(vowel/e_e)
endphoneme
phoneme &
phoneme a
vowel starttype #@ endtype #@
length 130
FMT(vowel/a#_2)
endphoneme
phoneme o
vowel starttype #o endtype #o
length 130
ChangeIfNotStressed(O)
FMT(vdiph2/o_oo)
phoneme a:
vowel starttype #a endtype #a
length 230
ChangeIfNotStressed(a)
FMT(vowel/aa_8)
endphoneme
phoneme O
vowel starttype #o endtype #o
length 130
FMT(vowel/oo_5)
endphoneme
phoneme O:
vowel starttype #o endtype #o
length 230
ChangeIfNotStressed(O)
FMT(vdiph2/o_oo)
endphoneme
phoneme u
vowel starttype #u endtype #u
length 130
FMT(vowel/u_2)
endphoneme
phoneme u:
vowel starttype #u endtype #u
length 230
ChangeIfNotStressed(u)
FMT(vowel/u_bck)
endphoneme
phoneme y
vowel starttype #i endtype #i
length 130
FMT(vowel/yy_4)
endphoneme
phoneme y#
vowel starttype #@ endtype #@
length 130
FMT(vowel/y##)
endphoneme
phoneme y:
vowel starttype #i endtype #i
length 230
ChangeIfNotStressed(y)
FMT(vowel/yy_4)
endphoneme
phoneme W
vowel starttype #@ endtype #@
length 130
FMT(vowel/y#_3)
endphoneme
phoneme W:
vowel starttype #@ endtype #@
length 130
ChangeIfNotStressed(W)
FMT(vowel/y#_3)
endphoneme
phoneme aI
vowel starttype #a endtype #i
@@ -106,36 +139,82 @@ phoneme aI
FMT(vdiph/ai_7)
endphoneme
phoneme aI:
vowel starttype #a endtype #i
length 230
ChangeIfNotStressed(aI)
FMT(vdiph/ai_7)
endphoneme
phoneme eI
vowel starttype #e endtype #i
length 170
FMT(vdiph/ei)
endphoneme
phoneme eI:
vowel starttype #e endtype #i
length 230
ChangeIfNotStressed(eI)
FMT(vdiph/ei)
endphoneme
phoneme aU
vowel starttype #a endtype #u
length 170
FMT(vdiph/au_4)
FMT(vdiph/aau)
endphoneme
phoneme aU:
vowel starttype #a endtype #u
length 230
ChangeIfNotStressed(aU)
FMT(vdiph/aau)
endphoneme
phoneme oU
vowel starttype #o endtype #u
length 170
FMT(vdiph/ou_3)
endphoneme
phoneme oU2 // long version for óf
phoneme oU: // long version for óf
vowel starttype #o endtype #u
length 230
ChangeIfNotStressed(oU)
FMT(vdiph/ou_3)
endphoneme
phoneme Yy
vowel starttype #@ endtype #i
length 150
FMT(vdiph/y#i_2)
endphoneme
phoneme Yy:
vowel starttype #@ endtype #i
length 220
ChangeIfNotStressed(Yy)
FMT(vdiph/y#i_2)
endphoneme
phoneme OI
vowel starttype #o endtype #i
length 210
FMT(vdiph/oi)
endphoneme
phoneme yI
vowel starttype #i endtype #i
length 180
FMT(vowel/yy_4)
endphoneme
// Consonants
+6
View File
@@ -1677,5 +1677,11 @@ include ph_punjabi
phonemetable prs base
include ph_dari
phonemetable sl sk
include ph_slovenian
phonemetable gd base
include ph_s_gaelic
phonemetable bg pl
include ph_bulgarian
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
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.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 71 KiB

BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
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.
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.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.