Merge branch 'upstream' into development

Conflicts:
	dictsource/dict_phonemes
	espeak-data/voices/asia/ms
	phsource/compile_report
This commit is contained in:
Reece H. Dunn
2013-04-24 12:33:33 +01:00
34 changed files with 1069 additions and 545 deletions
+40 -29
View File
@@ -17,7 +17,7 @@
// ?8 Use full vowel, not schwa in some word endings
// $alt1 use strong ending (-an, -table, -inal, -ier)
// $alt2 use weak ending (ate, ery, ess, ile, men)
// $alt2 use weak ending (ard, ate, ery, ess, ile, men)
// $alt3 use weak first vowel, a->[a#], e->[@], o->[0#]
// $alt4 separate 'h', not 'th'
// $alt6 'to'
@@ -285,42 +285,42 @@ _ja dZ'ap@ni:z
_zh tS'aIni:z
// Cyrillic letters
а a
б bE
в vE
г gE
д dE
е jE
ё jo
ж ZE
з zE
и I
а a:
б bE:
в vE:
г gE:
д dE:
е jE:
ё jo:
ж ZE:
з zE:
и I:
й ,Ik@-*'atkOji
к ka
к ka:
л El/1
м Em
н En
о o
п pE
о o:
п pE:
р Er
с Es
т tE
у u
т tE:
у u|:
ф Ef
х xa
ц tsE
ч tSE
ш Sa
щ StSa
х xa:
ц tsE:
ч tSE:
ш Sa:
щ StSa:
ъ jEr
ы j'Eru
ь j'eri
э E
ю ju
я ja
ћ tS;E
ђ djE
ќ kjE
э E:
ю ju|:
я ja:
ћ tS;E:
ђ djE:
ќ kjE:
// Arabic letters
@@ -508,7 +508,7 @@ _3o T'3:
_5o f'If
_20o tw'Enti@
_30o T'3:ti@
?3 _30o T'IRti@
?5 _30o T'IRti@
_40o f'o@ti@
_50o f'Ifti@
_60o s'Iksti@
@@ -697,6 +697,7 @@ adieu a#dju:
adieus a#dju:z
adieux a#dju:z
adios aDj'o:s
adjective $1
admirable adm@r@b@L
admirably adm@r@bli
admonition adm@n'IS@n
@@ -807,7 +808,7 @@ antibody $1
antichrist $1
anticline $1
antidote $1
antifreze $1
antifreeze $1
antigen $1
antihero $1
antilog $1
@@ -1274,6 +1275,7 @@ corral k@r'al
cosmos k0zm0s
?3 cosmos k0zmoUs
cougar ku:g3
counteract $3
countered kaUnt3d
(coup de grâce) ku:d@||gr'A:
coupon ku:p0n
@@ -1546,6 +1548,7 @@ eyrie i@ri
facade f@sA:d
façade f@sA:d
facetious $alt3
faculty fak@Lt2i
faeces fi:si:z
fahrenheit far@nhaIt
fairest fe@r@st
@@ -1718,6 +1721,7 @@ hello h@loU
henceforth hEnsfo@T
?3 herb 3:b
hercules h3:kjUli:z
heredity h3rEdI2ti
?3 hereford h3:f3d
heretical hI2rEtI2k@L
hereto hi@3'tu:
@@ -3182,6 +3186,7 @@ Belgrade $2
Belize bEl'i:z
Bengal b,Eng'O:l
Benin bEnIn
Berkeley b3:kli
Bhutan bu:t'an
Bideford bIdIf@d
Bogota b0g@t'A:
@@ -3218,6 +3223,7 @@ Cruz kru:z
Cyprus saIpr@s
Dahomey $alt3
Dallas dal@s
Dagestan dA:gIst'A:n
Damascus $alt3
Dakota $alt3
Danish deInIS
@@ -3247,6 +3253,7 @@ Gomera goUm'e@r@
Gurmukhi gU@mUki
Harare ha#rA:ri
Hanoi han'OI
Harvard $alt2
Havana ha#van@
Hawaii h@w'aIi:
Hawai'i h@w'aIi:
@@ -3283,6 +3290,8 @@ Korean kOr'i:@n
?3 Korean k3r'i:@n
Kosovo k0s@voU
Kuala kwA:la#
Kyrgyz k3:rgIz
Kyrgyzstan k3:rgIst'A:n
Lagos leIg0s
Lahore $alt3
Lebanon lEb@n0n
@@ -3590,6 +3599,7 @@ Giordino dZO@d'i:noU
Giovanni dZ@v'A:ni
Graeme greI@m
Graham greI@m
Gruffydd grIfIT
Guido gwi:doU
Guinevere gwInI#vi@3
Hadrian heIdri:@n
@@ -3911,6 +3921,7 @@ at at $nounf $only $u
(at once) a#t_w0ns
?6 (at once) a#t_wVns
(at will) a#t_w'Il
(at & t) 'eIt2i:@nt'i:
with wID $u
(with the) w%IDD@2 $nounf
+9 -5
View File
@@ -789,6 +789,7 @@
_) ani anI
_) ani (on anaI
&) ani (_ 'A:nI
@st) ani (_S1 =i
an (ia 'eIn
ania (c_ 'eInIa
ania (c a#naI@
@@ -918,6 +919,7 @@
_t) ar (_ A@
&) ar (dis 3
&) ar (diz 3
&) ar (d_$w_alt2 3
&d) ar (d_ 3
gg) ar (d_ 3
&h) ar (d_ 3
@@ -1629,7 +1631,7 @@
co (rro k@
co (rrup k@
_) costar koUstA@
_) counter (@P7 k'aUnt@ // prefix
_) counter (@P7 k'aUnt3 // prefix
.group d
d d
@@ -3523,8 +3525,8 @@
iss (a_ 'Is
issimo (_ 'IsImoU
chr) is (t_ aIs
@) istan (_ =Istan
@) istani (_ Ist'A:nI
@) istan (_ =IstA:n
@) istan (_N =Istan
@) iste (_ 'i:st
@) is (tic_ 'Is
r) is (y_ =@s
@@ -4012,7 +4014,7 @@
oea (_ 'i@
_) oe (d i:
p) oe (m oUI
oer oU@
oer oU3
_) oe (s i:
&) oe (s_S2 z
oesopha I2s0f@
@@ -5360,6 +5362,7 @@
th (ern_ D
_) thio T,aIoU
th (ith D
th (old th
th (ole th
_) th (om@ t
ph) th T
@@ -5884,6 +5887,7 @@
C) yes (_ aIz
_) yes jEs
yeah jEh
yew ju:
@C) y (gen I
?!3 d) y (nas I
s) ynch Ink
@@ -5991,7 +5995,7 @@
E (ntu 'E
E (ntous 'E
E (o_ I2
Eous (_ =j@s
Eous (_ =i@s
l) E (ps E
l) E (pt E
Eri (A 'i@rI2
+3
View File
@@ -50,8 +50,10 @@ A) ck k
_) d (rA d
_) d (A d
d (A D
d (_ D
d (cY D
d (L03 D
d (v D
m) d d
n) d d
l) d d
@@ -85,6 +87,7 @@ A) ck k
_) gn (A n
_) g (A g
g (A Q
g (_ Q
g (cY Q
g (L03 Q
m) g g
+11 -1
View File
@@ -112,7 +112,7 @@ _6X z'Est@x
_7X z'e:v@nt@x
_8X t'Axt@x
_9X n'e:g@nt@x
_0C h'OndErt
_0C h'Ond@rt
_0M1 d'WyzEnt
_0M2 m'iljun
_0M3 m'iljArt
@@ -377,6 +377,7 @@ keten $alt
loochen $alt
oefen $alt
open $alt
reden $alt
regen $alt
reken $alt
schepen $alt
@@ -1098,6 +1099,7 @@ gijzel $alt
gispel $alt
gniffel $alt
goochel $alt
googel $alt
gorgel $alt
grabbel $alt
grendel $alt
@@ -1404,6 +1406,7 @@ vondel $alt
accessoire aksEsw'ar@
accessoires aksEsw'ar@s
actiepunt Aksip8nt
actieve Akt'iv@
adhesie Ath'e:zi
agenda $2
aldus Ald'8s
@@ -1453,6 +1456,7 @@ december $2
desillusie dEsIlyzi
dieet $2
diesel diz@l
diner din'e:
//discussie $2
divers div'Ers
diftongering dIft,ON'e:rIN
@@ -1462,6 +1466,7 @@ eensgelijks e:nsQ@l'EIks
elfstedentocht ,Elf'ste:d@ntoQt
embouchuur A~buS'yr // embouchure
enorm $2
enquête A~k'Et@ $alt2
erosie e:r'o:zi
eucharistie $4
explosie $2
@@ -1486,6 +1491,8 @@ invasie $2
januari $3
kadaster $2
leesregel le:sre:Q@l
lunch l8nS
lunches l8nS@s
mangat $alt3
materie ma:t'e:ri
maatregel ma:tre:Q@l $alt2
@@ -1531,6 +1538,7 @@ ongerieflijk $3
partijvoorzitters $2
periferie pI:rifI:r'i
pistache pist'AS
privilege privil'e:Z@ $alt2
proces $2
projectielen $3
renaissance rEne:s'A~s@
@@ -1548,6 +1556,7 @@ serie sI:ri
sms'jes EsEm'Es_j@s
spektakel $2
tegennatuur $4
tralie $1
travestie $3
verderop $3
vergezicht vErQ@zIxt
@@ -1556,6 +1565,7 @@ verrekijker vEr@kEIk@r
verste vErst@
verte vErt@
volledig $2
voordeel $1
vrouwengek $alt3
waarschijnlijk $2
wanen v#a:n@n
+40 -10
View File
@@ -20,14 +20,15 @@
@@C) a (_ =a:
_) aan (@P3 'a:n
@) aar (_S3 a:r
@) aard (_S4 a:rt
&) aar (_S3 a:r
&) aard (_S4 a:rt
aa (rd_ 'a:
aa (C_ 'a:
z) aa (m_ a:
t) a (bleau a:
@) abel (_ 'a:b@l
@) abele (_ 'a:b@l@
@) ace (_ e:s // ?? interface
m) ach (in %a:S
_) actie (@P5 'Aksi
_) af (C@P2 'Af
@@ -106,6 +107,7 @@
_) be (zem be:
_) be (zig be:
_) beu bY:
_) bezoekers (@P9 b@z'uk@rs
.group c
@@ -120,10 +122,12 @@
@) ci (ë S
ci (o S
ck k
coach ko:tS
ces (_ s'Es
coach ko:tS
_) computer (@P8 kOmpj'ut@r
_) congres kOnQr'Es
_) concentratie (@P12 kOnsEntr'a:tsi
co (ncert k%O
@@ -246,7 +250,7 @@
&) end (_ @nd
&) ende (_S1 @
&) enden (_S2 @n
eden e:d@n
eden (_ e:d@n // ??
@) ent (_ 'Ent
@) ent (e_ 'Ent
@) ent (en_ 'Ent
@@ -260,6 +264,7 @@
@z) es (_S1 s
@) es (_S2qd 'Es // double the previous vowel
@) es (_$w_alt2S1 s // just remove 's'
@) e (s_$p_alt2+S1 s
KAC) es (_S2e @s
mb) es (_S1 s
nd) es (_S1 s
@@ -280,6 +285,7 @@
@) eur (_ 'Y:r
&) e (nB@ E2
&) e (ntig @
_p) e (nibel e:
id) e (nt E
pres) e (nt E
@@ -322,11 +328,14 @@
er (ij_ @r
tol) er (abel @r
mis) er (abel @r
hond) er (d_ @r
_) erger ErQ@r // ergeren
&) era (_ @ra:
@) er (aar_ @r
&) er (C@ E2r
.group ê
ê E
.group f
f f
@@ -341,11 +350,13 @@
@) gi (eus Z
@) gi (euz Z
reli) gi (eu Qij
_) goog (el gu:g
.group ge
_) ge (@P2 Q@
ge (bied Q@
_) gebruikers (@P10 Q@br'Wyk@rs
_) gee Qe:
_) gei QEI
gener (aal Q,e:n@r
@@ -435,10 +446,11 @@
&) ika (_ =ika:
&) iko (_ =iko:
_) in (C@P2 'In
// _) in (gP2 'In
_) in (do In
ine (_ 'in@
ines (_ 'in@s
_) inn (@P2 'I // ?? inneren
_) inter Int@r
io (nage iO
io (de_ i'o:
iodes (_ i'o:d@s
@@ -449,10 +461,12 @@
@) isme (_ 'Ism@
@) ist (_ 'Ist
@) isten (_ 'Ist@n
_) inn (@P2 'I // ?? inneren
.group j
j j
_) jaar (@P4 j'a:r
jaar (lijk ja:r
jou (rna Zu
@@ -478,6 +492,8 @@ _) inn (@P2 'I // ?? inneren
&) lijker (_S6 l@k@r
&) lijkere (_S7 l@k@r@
&) lijkheid (_S8 l@khEIt
&) lijkheden (_S9 l@khe:d@n
// &) lijks@ (_ l@ks@
&) lijkst (_S6 l@kst
&) lijkste (_S7 l@kst@
@@ -497,6 +513,7 @@ _) inn (@P2 'I // ?? inneren
management ma:nIdZm@nt
_) mee (@P3 m'e:
_) mee (rC mI:
menu (_ m@ny
_) mi (cro mi
_) mi (s@ m%I
@@ -513,6 +530,7 @@ _) inn (@P2 'I // ?? inneren
_) mis (loP3 m'Is
_) mis (tA m'Is
_) misver (@ m'Isf@r
_) muziek (@P6 myz'ik
.group n
n n
@@ -527,6 +545,7 @@ _) inn (@P2 'I // ?? inneren
_) na (C@N n'a:
_) na (C% nA
_) na (cht nA
_) najaars (@P7 n'a:ja:rs
_) narci (s n%ArsI
_) na (rc n%A
_) na (der na:
@@ -539,10 +558,11 @@ _) inn (@P2 'I // ?? inneren
na (vig n%a:
_) na (vr na:
_) na (volg@ n%a:
_) noord (@P5 no:rd
_) nieuws (@P6 n'iws
@@) nis (_S3 nIs
@@) nisen (_S5 nIs@n
_) noord (@P5 no:rd
_) notitie (@P7 no:t'itsi
.group o
@@ -586,6 +606,7 @@ _) inn (@P2 'I // ?? inneren
tr) ou (vail u
ouve (rtu uvE
_) over (@P4 ,o:v@r
_) overigen o:v@r@Q@n
_) overheid 'o:v@rhEIt
t) ou (r u:
@@ -644,21 +665,25 @@ _) inn (@P2 'I // ?? inneren
C) r (A r
rr *r
recherch r@SErS
revanch r@vA~nS
route rut@ // route(s)
.group re
_) re (geren r@
_) re (geer r@
_) regel re:Q@l
_) re (cent r@
_) re (cept r@
_) re (ceptief re:
_) re (ces r@
_) re (clam r@
_) register r@Q'Ist@r
reme (die r@m'e:
_) re (serve_ r@
_) re (cord re'
_) regering r@Q'I:rIN
repre (saill re:pre:
recherch r@SErS
revanch r@vA~nS
.group s
@@ -695,6 +720,7 @@ _) inn (@P2 'I // ?? inneren
CAr) sie (_ =zi
_) stads (@P5 st'Ats
_) stage (@P5 st'a:Z@
_) standaard (@P9 st'Anda:rt
_) start (@P5 st'Art
@) straat (_S6 stra:t
@@ -789,7 +815,9 @@ _) inn (@P2 'I // ?? inneren
_) verkeers (@P8 v@rk'I:rs
// _) verge (@P5 vErg@
// _) verge (le v@rQ'e:
_) voorjaars (@P9 v'O:rja:rs
_) voort (@P5 v'O:rt
_) vrijwilligers (@P13 vrEIv#'Il@Q@rs
.group w
@@ -813,8 +841,10 @@ _) inn (@P2 'I // ?? inneren
_) weg (@P3 v#'EQ
_) weg (en v#e:Q
_) weg (e_ v#e:Q // bewegelijk
_) werk (@P4 v#'Erk
_) west (@P4 v#Est
_) wr vr
_) woon (@P4 v#'o:n
_) wr (@ vr
.group x
+51 -19
View File
@@ -81,9 +81,10 @@ _#9 tab
+ maIs# $max3
% pors'eINtU $max3
& _'e_
@ &x'ob&
@ ax'ob&
¤ 'eU*U
€ 'eU*U
£ l'ibR&
§ p&*'agRafU
@@ -128,10 +129,10 @@ _¡ ,eskl&mas,&U~,iNvertS'id&
_¿ ,iNtex,ogas,&U~,iNvertS'id&
_" 'abRi;'asp&||d'upl&s#
?1 _º O*@-din'almaskul'i~nU
?2 _º o*@-dZin'almaskul'i~nU
?1 _ª O*@-din'alfemin'i~nU
?2 _ª o*@-dZin'alfemin'i~nU
?1 º O*@-din'almaskul'i~nU
?2 º o*@-dZin'aUmaskul'i~nU
?1 ª O*@-din'alfemin'i~nU
?2 ª o*@-dZin'aUfemin'i~nU
° gR'aU
@@ -185,7 +186,7 @@ _8X oIt'eINt&
?2 _9X nov'eINt&
_1C0 s'eIN
?1_0C s'eINtus#
?2_0C s'eINtUs#
?2_0C s'eINtUz
_1C s'eINtu
?1_2C duz'eINtus#
?2_2C duz'eINtUz
@@ -313,7 +314,7 @@ sr $dot
// articles
o $u+ $nounf
a $u+ $nounf
os Us $u+ $nounf
os $u+ $nounf
as $u+ $nounf
?1 a & $u+ $nounf
@@ -409,7 +410,7 @@ aos $u $nounf
para $u // for,to
pro pRU $u $nounf
pra $u $nounf
pros pRUs $u $nounf
pros $u $nounf
pras $u $nounf
prò $u $nounf
prà $u $nounf
@@ -431,7 +432,7 @@ com $u // with
// conjunctions
?1 e i $u // and
?2 e i $u // and
se $u+ $verbf // if
se $u+ // if
?2 mas $u // but
@@ -597,10 +598,10 @@ pôde $u+
pudemos $u+
puderam $u+
poderei $u3+
poderá $u3+
poderemos $u+
poderão $u+
poderei p%ode*eI $u+
poderá p%ode*a $u+
poderemos p%ode*'emUs $u+
podeão p%ode*&U~ $u+
// ir - to go (used to make future tense)
@@ -653,11 +654,14 @@ aeroporto $alt2
aeroportos $alt
alcateia $alt
alcova $alt2
alegro $alt2 $noun
alferes $alt
almoço $alt $verb
ameba $alt
amores $alt2
amorno $alt
amuleto $alt2
ampere $alt
ampola $alt2
ampulheta $alt2
andorra $alt2
@@ -674,6 +678,7 @@ arrocho $alt2 $noun
arroto $alt2 $noun
arroz $alt2
assembleia $alt
assopro $alt2 $noun
ateia $alt
aterro $alt2
aterro $alt $verb
@@ -684,12 +689,16 @@ azeda $alt $verb
azedo $alt $verb
bairro b'aIxU
baqueta $alt2
banqueta $alt2
banquete $alt2
bastonete $alt2
beco $alt2
besta $alt2
bilhete $alt2
bissulfeto $alt2
boca $alt2
boceta $alt2
bochecha $alt2
bofe $alt
bojo $alt2
boleia $alt
bolero $alt
@@ -716,6 +725,7 @@ caixeta $alt2
camelha $alt
camelo $alt2
camiseta $alt2
canaleta $alt2
canhoto $alt2
cantora $alt2
capacete $alt2
@@ -747,6 +757,7 @@ chovesse $alt2
chupeta $alt2
clamores $alt2
clero $alt
cloreto $alt2
coche $alt2
coco $alt2
cofre $alt
@@ -765,6 +776,7 @@ concordo $alt
conforto $alt $verb
console $alt2 $noun
consolo $alt2 $noun
constroem $alt
controle $alt2 $noun
controles $alt2
controles $alt $verb
@@ -779,6 +791,7 @@ corpos $alt
corto $alt
corveta $alt2
corvos $alt
costeleta $alt2
coto $alt2
cotovelo $alt2
cratera $alt
@@ -796,6 +809,8 @@ desespero $alt2
desespero $alt $verb
desfecho $alt2
desmantelo $alt2 $noun
despojo $alt2 $noun
despojos $alt
desporto $alt2
desportos $alt
desprezo $alt2 $noun
@@ -810,6 +825,7 @@ dez $alt
diarreia $alt
diego $alt2
discordo $alt
dissabores $alt2
dispneia dZIspyn'EI&
dobro $alt2
dobro $alt $verb
@@ -876,6 +892,7 @@ feitora $alt2
fezes $alt
filete $alt2
?1 fixe fiSy
flerte $alt2 $noun
foda $alt2 $verb
fodo $alt2
fogos $alt
@@ -885,8 +902,8 @@ folheto $alt2
fora $alt
fora $alt2 $verb
forca $alt2
força $alt2 $noun
forças $alt2
força $alt2
força $alt $verb
forço $alt
formos $alt2
forro $alt $verb
@@ -929,6 +946,7 @@ interesse $alt2
interesse $alt $verb
iodo $alt2
ioga $alt
jereba $alt
jogo $alt2
jogo $alt $verb
jogos $alt
@@ -1001,21 +1019,27 @@ pachorra $alt2
paexa paeSa
paella pa'el^&
palacete $alt2
paleta $alt2
palheta $alt2
panfleto $alt2
pangeia $alt
pantera $alt
papoco $alt2 $noun
parede $alt2
pastora $alt2
peba $alt
pedra $alt
pela $alt $verb
pelo $alt2
pelo $alt $verb
pereba $alt
peroba $alt
peseta $alt2
peso $alt $verb
piloto $alt2 $noun
pintora $alt2
pior $alt
pipoco $alt2 $noun
pirueta $alt2
plaqueta $alt2
plateia $alt
@@ -1025,6 +1049,7 @@ pompeia $alt
porcos $alt
porque $alt2
porra $alt2
porreta $alt2
porrete $alt2
porto $alt2
portos $alt
@@ -1035,13 +1060,16 @@ primavera $alt
primores $alt2
proso $alt
prosopopeia $alt
proveta $alt2
quarteto $alt2
queda $alt
quede $alt2
quitinete $alt
quinteto $alt2
ramalhete $alt2
raposa $alt2
recomeço $alt $verb
reconstroem $alt
recordo $alt
recorto $alt
rede $alt2
@@ -1059,6 +1087,7 @@ renovo $alt $verb
retorno $alt $verb
reuva x'EUv&
rigores $alt2
risoto $alt2
rock $alt
roem $alt
rola $alt2 $noun
@@ -1094,6 +1123,8 @@ sossego $alt2 $noun
suborno $alt $verb
sufoco $alt2 $noun
sufocos $alt2
sulfeto $alt2
sulfureto $alt2
super s'Uper
suporto $alt
suor swOr
@@ -1105,7 +1136,7 @@ tenores $alt2
terrores $alt2
teta $alt2
toga $alt
topo $alt $verb
topo $alt2 $noun
torno $alt $verb
tornozelo $alt2
torre $alt2 $noun
@@ -1125,6 +1156,7 @@ trombeta $alt2
tumores $alt2
valeta $alt2
vanessa $alt2
vareta $alt2
vera $alt
verbete $alt2
violeta $alt2
@@ -1191,6 +1223,7 @@ drivers dR'aIveRs
laptop lEptOp
?1 line l'ain
layout l'eI,aUt
?2 login logiN
?2 logo l'OgU
?1 lock l'Ok
mail m'eIl
@@ -1235,7 +1268,7 @@ símbolo s'imbolU
// common person names
alan 'al@n
alan 'al@N
louis _^_FR
@@ -1347,7 +1380,6 @@ antonio &~nt'onIU
?1 cleverson kl'Evyrs&N
?2 cleverson kl'EversoN
?1 elton 'Elt&N
?2 elton 'EUton
emerson 'emE*@-soN
?1 halison &l'is&N
klein kl'aIn // Very common on southern Brazil.
+28 -11
View File
@@ -90,6 +90,8 @@
óCC) a (CA_ &
óC) a (CCA_ &
úC) a (CA_ &
?2 ation (_ 'eIS&~N
?2 action (_ 'EkS&~N
.group â
@@ -165,6 +167,7 @@
?2 d (i dZ
?2 d (í dZ
?2 d (e_ dZ
?2 A) de (o_ dZj
.group e
@@ -235,7 +238,8 @@
e (sL02_ E
e (ssL04_ E
e (ss_ E // stress and english words
?2 ection (_ 'EkS&~N
e (stL04_ E
e (strL04_ E
@@ -340,6 +344,7 @@
?1 l) e (ta 'E // eg: bicicleta, atleta.
sf) e (ra_ E // esfera, biosfera
ef) e (tuL02_ e
t) e (tra E
âC) e (CA_ e
@@ -354,6 +359,7 @@
óC) e (Ca_ e
óCC) e (CA_ e
úC) e (CA_ e
úC) el (_ eU
//sort
_d) e (L05_ E
@@ -417,11 +423,13 @@ _atrev) e (L07_ e
_corro) e (L07_ e
_interromp) e (L07_ e
_troux) e (L07_ E
_ens) e (bL03_ E
_amanc) e (bL03_ E
qu) e (brL04_ E
_cel) e (brL04_ E
_boch) e (chL04_ e
_ex) e (crL04_ E
_enr) e (dL01_ E
_n) eu (trL03_ 'eU
_v) e (dL03_ E
_arr) e (dL03_ E
_depr) e (dL03_ E
@@ -430,15 +438,14 @@ _troux) e (L07_ E
_gal) e (gL03_ e
_pel) e (gL03_ e
_n) e (grL03_ e
_ch) e (guL02_ e
estr) ei (L04_ EI
_r) e (jL03_ E
_inv) e (jL04_ E
?2 el (ton_ 'EU
tr) e (pL04_ E // es-
_dec) e (pL04_ E
_in) e (ptL03_ E
ad) e (quL04_ E
_imp) e (rL03_ E
_sev) e (rL03_ E
_reit) e (rL03_ E
_sinc) e (rL03_ E
@@ -449,6 +456,7 @@ _troux) e (L07_ E
gen) e (rL04_ E // de- re-
_alt) e (rL04_ E
_enc) e (rL04_ E
_imp) e (rL04_ E
_min) e (rL04_ E
_sug) e (rL04_ E
_sup) e (rL04_ E
@@ -470,6 +478,7 @@ _refrig) e (rL04_ E
_p) e (rdL02_ E
_l) e (rdL03_ E
_h) e (rdL04_ E
_des) e (rdL04_ E
_) e (rgL03_ e
_re) e (rgL03_ e
_bez) e (rrL03_ e
@@ -496,6 +505,7 @@ _refrig) e (rL04_ E
_obsol) e (tL03_ e
_sol) e (trL03_ E
_pen) e (trL04_ E
_n) eu (trL03_ 'eU
_d) e (vL03_ e
scr) e (vL03_ e // e- in- pre- ree- de-
_atr) e (vL03_ e
@@ -639,7 +649,8 @@ _entorp) e (çL03_ e
?1 _) i (ntern 'i //inter
?1 @) ing (_ _^_EN
?1 @) ings (_ _^_EN
ilton 'iUtoN
?2 il (ton_ 'iU
?2 i (rton_ 'i
.group í
@@ -718,7 +729,9 @@ _entorp) e (çL03_ e
o (s_ =U
_) o (_C U
_) o (_A u
?2 _) os (_ Us
?2 _) os (_A Uz
?2 _) os (_G Uz
ou ow
oi oI
oi ($w_alt OI
@@ -738,7 +751,6 @@ _entorp) e (çL03_ e
o (quL02_ O
A_l) o (_ U
p) o (dL04_ O
o (g_ O
o (gs_ O
@@ -824,8 +836,7 @@ _entorp) e (çL03_ e
?1 interr) o (g u // eg: interrogação
?1 f) o (rmulá u // eg: formulário, formulários.
?1 v) o (lt O
o (Cuem_ o
o (luem_ o
o (CCuem_ o
êC) o (CA_ o
êCC) o (CA_ o
@@ -870,9 +881,12 @@ _pormen) o (L05_ O
m) o (lhL04_ O
ent) o (pL02_ O
_c) o (pL03_ O
_t) o (pL04_ O
_ens) o (pL04_ O
_gal) o (pL04_ O
_s) o (prL04_ O
_al) o (prL04_ O
_ass) o (prL04_ O
_) o (ptL04_ O
p) o (rL02_ o
_dev) o (rL02_ O
@@ -881,19 +895,20 @@ _pormen) o (L05_ O
_inod) o (rL03_ O
_inson) o (rL03_ O
_comem) o (rL04 O
_enam) o (rL04_ O
_aprim) o (rL04_ O
_remem) o (rL04_ O
f) o (rmL03_ O
c) o (rrL01_ o // incorra, corra, etc.
_m) o (rrL01_ o
p) o (rtL03_ O // im- trans- de- re- com- a- ex-
t) o (rçL01_ O // con-
t) o (rçL03_ o // con-
_r) o (snL04_ O
_c) o (spL02_ O
_enr) o (squL02_ O
p) ostos (_ Ost=Us# // dispostos etc.
_gar) o (tL03_ o
_mar) o (tL03_ O
_mar) o (tL03_ o
_escr) o (tL03_ o
_ch) o (vL01_ o
pr) o (vL03_ O
@@ -902,6 +917,7 @@ _remem) o (rL04_ O
_r) o (çL03_ O
tr) o (çL03_ O // des-
_ad) o (çL03_ O
_emp) o (çL03_ O
_end) o (çL03_ O
//endsort
@@ -1044,6 +1060,7 @@ _remem) o (rL04_ O
?2 t (e_ tS
?1 th _^_EN
?1 tion (_ _^_EN
?2 A) te (o_ tSj
.group u
+16 -16
View File
@@ -43,16 +43,16 @@ _?A haRf
//_lig
_acu vURg'UimI
_ac2 tS'IftvURg'UimI
_brv k@s'altmaimI
_brv k@s'aLtmaimI
_ced h'aRf
_cir Sapk'a
_dia Umla'Ut
_dia UmLa'Ut
_dot YstnOkt'a
_grv 'aksanimI
_hac t'ERsSapk'a
_mcn uz'atmaimI
_ogo ogon'Ek
_rng halk'a
_rng haLk'a
//_stk
_tld tIld'E
@@ -60,7 +60,7 @@ _tld tIld'E
// symbols
_. nOkt'a
_, vIRJ'Yl
_; nOktal'@vIRJ'Yl
_; nOktaL'@vIRJ'Yl
_: ik'InOkt'a
_… 'YtSnOkt'a
_? soR'UiSa*et,I
@@ -73,7 +73,7 @@ _' apOstR'Of
_^ IndZ'EltmEiSa*et'I
& _!v'E
_& v'EiSa*et'I
_@ kUjRUkl'U'a
_@ kUjRUkL'U'a
_\ t'ERs||ej,IktSIzg'I
_( atSpa*ant'Ez
_) kapapa*ant'Ez
@@ -84,9 +84,9 @@ _‘ tEkt@Rn'ak
§ tSEnJ'El
° de*edZ'E
_# dij'Ez
_~ jaklaS'@k
__ ,alttSIzg'I
* j'@ld@z $max3
_~ jakLaS'@k
__ ,aLttSIzg'I
* j'@Ld@z $max3
= ESIt $max3
% jYzdE $max3
+ aRt@ $max3
@@ -99,7 +99,7 @@ _2 ic'i
_3 'ytS
_4 d'WRt
_5 b'ES
_6 alt'@
_6 aLt'@
_7 jed'i
_8 sec'Iz
_9 d'okuz
@@ -111,7 +111,7 @@ _2X jiRm'i
_3X ot'uz
_4X k'@Rk
_5X ell'i
_6X altm'@S
_6X aLtm'@S
_7X jetm'iS
_8X seks'En
_9X doks'an
@@ -260,13 +260,13 @@ Düzce $1
Edirne $2
Hakkari $1
Hatay $1
Iğdır $1
İngiltere $3
İskenderun $2
ığdır $1
ingiltere $3
iskenderun $2
Isparta $2
İstanbul $2
İsveç $1
İzmir $1
istanbul $2
isveç $1
izmir $1
Kastamonu $1
Kayseri $1
Kilis $1
+37 -23
View File
@@ -9,8 +9,11 @@
// ?1 mbrola voices
// unvoiced consonants
.L01 ç f h k p q s ş t
.L01 ç f h k p q s ş t // unvoiced consonants
.L02 ı a o u // back vowels
.L03 i e ö ü î â ô û // not-back vowels
.replace
` '
@@ -23,7 +26,7 @@
@) acak (_S4 adZak
@) acakmış (_S7 adZakm%@S
@) ayım (_S4 aj@m
@) alım (_S4 al@m
@) alım (_S4 aL@m
@) asın (_S4 as@n
@) avru (pa avr'u
@@ -33,9 +36,11 @@
.group c
c dZ
ce (_S2 dZ%E
.group ç
ç tS
çe (_S2 tS%E
.group d
d d
@@ -57,13 +62,13 @@
dın (_S3 d@n
dınız (_S5 d@n@z
dı (_S2 d@
dılar (_S5 d@laR
dılar (_S5 d@LaR
dum (_S3 dum
duk (_S3 duk
dun (_S3 dun
dunuz (_S5 dunuz
du (_S2 du
dular (_S5 dular
dular (_S5 duLar
düm (_S3 dym
dük (_S3 dyk
dün (_S3 dyn
@@ -96,18 +101,24 @@
.group g
g g
g (i J
g (e J
g (ü J
g (ö J
g (L03 J
L03) g (K J
.group ğ
ğ Q
A) ğ :||
?1 A) ğ G // mbrola
A) ğ :
?1 A) ğ (+ G // mbrola
a) ğa :
o) ğo :
u) ğu :
ö) ğö :
ü) ğü :
i) ğ j
e) ğ j
.group h
h h
@@ -135,37 +146,40 @@
@) ıyor (_S4 @j%oR
@) ın (_S2 @n
.group î
î @
.group j
j Z
.group k
k k
k (i c
k (e c
k (ü c
k (ö c
k (L03 c
L03) k (K c
ken (_S3 %cen
.group l
l l
l (L02 L
L02) l (K L
la (_S2 %la
la (_S2 %La
le (_S2 %le
lar (_S3 laR
lar (_S3 LaR
ler (_S3 leR
li (_S2 li
lı (_S2 l@
lu (_S2 lu
lı (_S2 L@
lu (_S2 Lu
lü (_S2 ly
lik (_S3 lik
lık (_S3 l@k
luk (_S3 luk
lık (_S3 L@k
luk (_S3 Luk
lük (_S3 lyk
@@ -308,7 +322,7 @@
yunuz (_S5 %junuz
yünüz (_S5 %jynyz
yla (_S3 %jla
yla (_S3 %jLa
yle (_S3 %jle
yacak (_S5 jadZak
@@ -317,7 +331,7 @@
yecekmiş (_S8 jedZekm%iS
yayım (_S5 jaj@m
yalım (_S5 jal@m
yalım (_S5 jaL@m
yasın (_S5 jas@n
yeyim (_S5 jejim
yelim (_S5 jelim
+154 -23
View File
@@ -79,40 +79,48 @@ ỵ ỵ
//================================
.L01 t c ne nd k x s nt ch th me te le ce ny ry e o u re nch de p pe ph sh v ve ge
.L02 n
.L03 t ch nh
.group b
b b
_) b _b
//b($w_alt2 _^_EN
␍
.group c
c g //k
c (_ kh
ch c // try [tS;] [tS] [c]
_) ch tS; // try [tS;] [tS] [c] c
?2 _) ch c
?1 _) ch c
ch (_ c
ce (_ _^_EN
_) cl _^_EN
␍
␍
␍
.group d
d J^ // try [z] [J] [dZ] [dZ;] [J^]
d (_ _^_EN
␍
␍
␍
.group đ
đ d
_) đ _d
␍
␍
␍
.group f
//f f
_) f _^_EN
f (_ _^_EN
␍
␍
.group g
g Q // try [g] [Q]
gh Q // or [g] [Q]
@@ -134,14 +142,17 @@ ỵ ỵ
ght (_ _^_EN
␍
␍
.group h
h h
␍
␍
.group j
j Z
␍
␍
.group k
k k
//k (_ kh
@@ -149,46 +160,57 @@ ỵ ỵ
k (_ _^_EN
␍
␍
.group l
l l
l (_ _^_EN
le (_ _^_EN
␍
␍
.group m
m m
␍
␍
.group n
n n
?1 n (_ N //n
?2 n (_ N
ng N
ngh N
nh n^
nd (_ _^_EN
␍
␍
.group ñ
ñ n^
␍
␍
.group p
p p
ph f
␍
␍
.group q
q k
q (_ kh
qu w //kw
␍
␍
.group r
r z. // try [z] [z.] [r] [z;]
r z // try [z] [z.] [r] [z;]
?2 r Q
?1 r z.
r (_ _^_EN
rm (_ _^_EN
␍
␍
.group s
s s. // try [s.] [s] [S]
_) sh _^_EN
@@ -197,33 +219,42 @@ ỵ ỵ
se (_ _^_EN
␍
␍
.group t
t t[
?1 t (_ g
?1 t (_ kh
?2 t (_ kh
th t
tr cr // try [cr] [tr] [tS;] [tS] [c] [dZ] [dz;]
tr tS //cr // try [cr] [tr] [tS;] [tS] [c] [dZ] [dz;]
?1 tr cr
?2 tr c
ts (_ _^_EN
te (_ _^_EN
th (_ _^_EN
tt (_ _^_EN
␍
␍
.group v
v v
?2 v J^
ve (_ _^_EN
␍
␍
.group w
w w
_) w _^_EN
w (_ _^_EN
␍
␍
.group x
x s
x (_ _^_EN
␍
␍
.group z
z z
z (_ _^_EN
@@ -235,6 +266,7 @@ ỵ ỵ
␍
␍
␍
.group a
a a:
ai a:I
@@ -244,6 +276,8 @@ ỵ ỵ
aĩ a:I5
aị a:I6
ay aI
?2 ay a:I
␍
aỳ aI2
aý aI3
aỷ aI4
@@ -256,6 +290,7 @@ ỵ ỵ
aõ a:U5
aọ a:U6
au aU
?2 au a:U
aù aU2
aú aU3
aủ aU4
@@ -265,12 +300,19 @@ ỵ ỵ
ai (L02 _^_EN
␍
␍
.group à
à a:2
ài a:I2
ày aI2
?2 ày a:I2
␍
␍
␍
␍
ào a:U2
àu aU2
?2 àu a:U2
␍
.group á
@@ -279,7 +321,8 @@ ỵ ỵ
áy aI3
áo a:U3
áu aU3
?2 áu a:U3
?2 áy a:I3
.group ả
ả a:4
@@ -287,7 +330,8 @@ ỵ ỵ
ảy aI4
ảo a:U4
ảu aU4
?2 ảu a:U4
?2 ảy a:I4
.group ã
ã a:5
@@ -295,7 +339,8 @@ ỵ ỵ
ãy aI5
ão a:U5
ãu aU5
?2 ãu a:U5
?2 ãy a:I5
.group ạ
ạ a:6
@@ -303,7 +348,8 @@ ỵ ỵ
ạy aI6
ạo a:U6
ạu aU6
?2 ạu a:U6
?2 ạy a:I6
␍
//================================
.group ă
@@ -311,26 +357,31 @@ ỵ ỵ
␍
␍
␍
.group ằ
ằ a2
␍
␍
␍
.group ắ
ắ a3
␍
␍
␍
.group ẳ
ẳ a4
␍
␍
␍
.group ẵ
ẵ a5
␍
␍
␍
.group ặ
ặ a6
␍
@@ -340,6 +391,8 @@ ỵ ỵ
â @
ây @I
âu @U1
?2 â (L03 a
?1 â (L03 a
␍
␍
@@ -347,6 +400,8 @@ ỵ ỵ
ầ @2
ầy @I2
ầu @U2
?2 ầ (L03 a2
?1 ầ (L03 a2
␍
␍
@@ -354,6 +409,8 @@ ỵ ỵ
ấ @3
ấy @I3
ấu @U3
?2 ấ (L03 a3
?1 ấ (L03 a3
␍
␍
@@ -364,6 +421,7 @@ ỵ ỵ
␍
␍
␍
.group ẫ
ẫ @5
ẫy @I5
@@ -371,11 +429,13 @@ ỵ ỵ
␍
␍
␍
.group ậ
ậ @6
ậy @I6
ậu @U6
?2 ậ (L03 a6
?1 ậ (L03 a6
␍
//===========================
.group e
@@ -390,30 +450,35 @@ ỵ ỵ
ey (_ _^_EN
␍
␍
.group è
è E2
èo EU2
␍
␍
␍
.group é
é E3
éo EU3
␍
␍
␍
.group ẻ
ẻ E4
ẻo EU4
␍
␍
␍
.group ẽ
ẽ E5
ẽo EU5
␍
␍
␍
.group ẹ
ẹ E6
ẹo EU6
@@ -421,43 +486,51 @@ ỵ ỵ
␍
//============================
␍
.group ê
ê e
êu eU1
?2 ê (L03 @:
?2 ê (L02 @:
␍
.group ề
ề e2
ều eU2
?2 ề (L03 @:2
?2 ề (L02 @:2
␍
.group ế
ế e3
ếu eU3
␍
?2 ế (L03 @:3
?2 ế (L02 @:3
.group ể
ể e4
ểu eU4
?2 ể (L03 @:4
?2 ể (L02 @:4
␍
.group ễ
ễ e5
ễu eU5
?2 ễ (L03 @:5
?2 ễ (L02 @:5
␍
.group ệ
ệ e6
ệu eU6
?2 ệ (L03 @:6
?2 ệ (L02 @:6
␍
//============================
␍
.group i
i i
//i (A j
@@ -486,27 +559,36 @@ ỵ ỵ
iễu iU5
iệu iU6
i (L01 _^_EN
?2 i (L03 @
?1 i (L03 @
?2 i (L02 @
.group ì
ì i2
ì (A j2
ìa i@2
ìu iU2
?2 ì (L03 @2
?1 ì (L03 @2
?2 ì (L02 @2
.group í
í i3
í (A j3
ía i@3
íu iU3
?2 í (L03 @3
?1 í (L03 @3
?2 í (L02 @3
.group ỉ
ỉ i4
ỉ (A j4
ỉa i@4
ỉu iU4
?2 ỉ (L03 @4
?1 ỉ (L03 @4
?2 ỉ (L02 @4
␍
.group ĩ
@@ -514,6 +596,9 @@ ỵ ỵ
ĩ (A j5
ĩa i@5
ĩu iU5
?2 ĩ (L03 @5
?1 ĩ (L03 @5
?2 ĩ (L02 @5
␍
.group ị
@@ -521,10 +606,13 @@ ỵ ỵ
ị (A j6
ịa i@6
ịu iU6
?2 ị (L03 @6
?1 ị (L03 @6
?2 ị (L02 @6
␍
//=========================
␍
.group o
o O
oa o@ // modify oa sound example: hoa,khoa // o (A w
@@ -537,6 +625,12 @@ ỵ ỵ
ong O#
oe o& // Adding oe sound example: lóe sáng,toét mắt
o (L01 _^_EN
oai Oi // oai sound
oại Oi6
oài Oi2
oái Oi3
oải Oi4
oãi Oi5
␍
.group ò
@@ -548,6 +642,7 @@ ỵ ỵ
␍
␍
␍
.group ó
ó O3
ói OI3
@@ -557,6 +652,7 @@ ỵ ỵ
␍
␍
␍
.group ỏ
ỏ O4
ỏi OI4
@@ -566,6 +662,7 @@ ỵ ỵ
␍
␍
␍
.group õ
õ O5
õi OI5
@@ -575,6 +672,7 @@ ỵ ỵ
␍
␍
␍
.group ọ
ọ O6
ọi OI6
@@ -586,16 +684,19 @@ ỵ ỵ
␍
//=============================
␍
.group ô
ô o
ôi oI
ông o# // ông sound
?2 ôi O- //south dialect
␍
.group ồ
ồ o2
ồi oI2
ồng o#2
?2 ồi O-2
␍
␍
@@ -603,6 +704,7 @@ ỵ ỵ
ố o3
ối oI3
ống o#3
?2 ối O-3
␍
␍
@@ -610,6 +712,7 @@ ỵ ỵ
ổ o4
ổi oI4
ổng o#4
?2 ổi O-4
␍
␍
@@ -618,21 +721,24 @@ ỵ ỵ
ỗi oI5
ỗng o#5
␍
?2 ỗi O-5
␍
.group ộ
ộ o6
ội oI6
ộng o#6
?2 ội O-6
␍
␍
//=============================
␍
.group ơ
ơ @:
ơi @:I
ơu @:U
?2 ơi @- //south dialect
␍
␍
@@ -640,6 +746,7 @@ ỵ ỵ
ờ @:2
ời @:I2
ờu @:U2
?2 ời @-2
␍
␍
@@ -647,6 +754,7 @@ ỵ ỵ
ớ @:3
ới @:I3
ớu @:U3
?2 ới @-3
␍
␍
@@ -654,6 +762,7 @@ ỵ ỵ
ở @:4
ởi @:I4
ởu @:U4
?2 ởi @-4
␍
␍
@@ -661,6 +770,7 @@ ỵ ỵ
ỡ @:5
ỡi @:I5
ỡu @:U5
?2 ỡi @-5
␍
␍
@@ -668,11 +778,12 @@ ỵ ỵ
ợ @:6
ợi @:I6
ợu @:U6
?2 ợi @-6
␍
␍
//=============================
␍
.group u
u u
u (A w
@@ -705,6 +816,7 @@ ỵ ỵ
u (L01 _^_EN
ui (L01 _^_EN
ua (L01 _^_EN
?2 u u-
␍
.group ù
@@ -714,6 +826,7 @@ ỵ ỵ
ùa u@2
//ùng u#2
␍
?2 ù u-2
␍
.group ú
@@ -722,6 +835,7 @@ ỵ ỵ
úi uI3
úa u@3
//úng u#3
?2 ú u-3
␍
␍
@@ -732,6 +846,7 @@ ỵ ỵ
ủa u@4
//ủng u#4
␍
?2 ủ u-4
␍
.group ũ
@@ -740,6 +855,7 @@ ỵ ỵ
ũi uI5
ũa u@5
//ũng u#5
?2 ũ u-5
␍
␍
@@ -749,10 +865,11 @@ ỵ ỵ
ụi uI6
ụa u@6
//ụng u#6
?2 ụ u-6
␍
//=============================
␍
.group ư
ư y
ưi yI
@@ -779,6 +896,7 @@ ỵ ỵ
␍
␍
␍
.group ừ
ừ y2
ừi yI2
@@ -787,6 +905,7 @@ ỵ ỵ
␍
␍
␍
.group ứ
ứ y3
ứi yI3
@@ -795,6 +914,7 @@ ỵ ỵ
␍
␍
␍
.group ử
ử y4
ửi yI4
@@ -803,6 +923,7 @@ ỵ ỵ
␍
␍
␍
.group ữ
ữ y5
ữi yI5
@@ -811,6 +932,7 @@ ỵ ỵ
␍
␍
␍
.group ự
ự y6
ựi yI6
@@ -820,6 +942,7 @@ ỵ ỵ
␍
//=============================
␍
.group y
y i
// y (A j
@@ -839,6 +962,7 @@ ỵ ỵ
␍
y (L01 _^_EN
␍
.group ỳ
ỳ i2
ỳ (A j2
@@ -846,6 +970,7 @@ ỵ ỵ
␍
␍
␍
.group ý
ý i3
ý (A j3
@@ -853,6 +978,7 @@ ỵ ỵ
␍
␍
␍
.group ỷ
ỷ i4
ỷ (A j4
@@ -860,6 +986,7 @@ ỵ ỵ
␍
␍
␍
.group ỹ
ỹ i5
ỹ (A j5
@@ -867,6 +994,7 @@ ỵ ỵ
␍
␍
␍
.group ỵ
ỵ i6
ỵ (A j6
@@ -875,6 +1003,7 @@ ỵ ỵ
␍
//=============================
␍
.group 0xce // Greek letters
// 0xce is the first byte of the utf-8 code for these characters
␍
@@ -901,6 +1030,7 @@ ỵ ỵ
␍
␍
␍
.group 0xcf // Greek letters
␍
␍
@@ -922,6 +1052,7 @@ ỵ ỵ
␍
␍
␍
.group
% f'@2n||cr'am
! _:c'@3m_|t'a:7n_:
+6
View File
@@ -0,0 +1,6 @@
name Korean
language ko
gender male
pitch 80 118
intonation 2
+12
View File
@@ -0,0 +1,12 @@
name vietnam_sgn
language vi-sgn
phonemes vi-sgn
dictrules 2
gender male
words 1
pitch 82 118 //80 118
//breath 75 75 60 40 15 10
//breathw 150 150 200 200 400 400
voicing 90 //18
flutter 20
+23 -8
View File
@@ -6,44 +6,44 @@
phoneme a
vowel starttype #a endtype #a
length 180
length 200
FMT(vowel/a_4)
endphoneme
phoneme e
vowel starttype #e endtype #e
length 190
length 200
FMT(vowel/e_mid2)
endphoneme
phoneme E
vowel starttype #e endtype #e
length 190
length 200
FMT(vowel/e_mid2)
endphoneme
phoneme i
vowel starttype #i endtype #i
length 170
length 190
IfNextVowelAppend(;)
FMT(vowel/i)
endphoneme
phoneme o
vowel starttype #o endtype #o
length 190
length 200
FMT(vowel/oo)
endphoneme
phoneme O
vowel starttype #o endtype #o
length 190
length 200
FMT(vowel/oo)
endphoneme
phoneme u
vowel starttype #u endtype #u
length 180
length 200
FMT(vowel/u_bck2)
endphoneme
@@ -107,10 +107,25 @@ phoneme D
voicingswitch T
CALL base/D
IF nextPh(isPause2) THEN
FMT(voc/dh_) addWav(vocw/dh, 40) // weaker
FMT(voc/dh_) addWav(vocw/dh, 35) // weaker
ENDIF
endphoneme
phoneme t // dental variant of /t/
vls dnt stop
voicingswitch d[
lengthmod 2
Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16
Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
IF nextPh(isPause2) THEN
WAV(ustop/t_dnt2, 35)
ENDIF
WAV(ustop/t_dnt2, 70)
endphoneme
phoneme s
vls alv frc sibilant
+37 -17
View File
@@ -2,7 +2,7 @@
phoneme i
vowel starttype #i endtype #i
length 150
length 180
IF thisPh(isTranslationGiven) THEN
// don't reduce the vowel if phonemes are explicitly given
ELSE
@@ -18,14 +18,14 @@ endphoneme
phoneme I
vowel starttype #i endtype #i
length 150
length 180
FMT(vowel/ii_5)
endphoneme
phoneme y
vowel starttype #u endtype #u
length 155
length 180
IF thisPh(isTranslationGiven) THEN
// don't reduce the vowel if phonemes are explicitly given
ELSE
@@ -41,7 +41,7 @@ endphoneme
phoneme Y
vowel starttype #u endtype #u
length 155
length 180
FMT(vowel/u#)
endphoneme
@@ -49,10 +49,16 @@ endphoneme
phoneme e
vowel starttype #e endtype #e
length 180
length 200
IF thisPh(isTranslationGiven) THEN
// don't reduce the vowel if phonemes are explicitly given
ELSE
IF nextPh(isWordEnd) OR next2PhW(isNotVowel) THEN
IF nextPh(isRhotic) OR nextPh(isNasal) OR nextPh(l) OR nextPh(L) THEN
ChangePhoneme(&)
ENDIF
ENDIF
IF thisPh(isFinalVowel) THEN
ChangePhoneme(E)
ENDIF
@@ -65,21 +71,27 @@ endphoneme
phoneme E
vowel starttype #e endtype #e
length 180
length 200
FMT(vowel/e_mid)
endphoneme
phoneme &
vowel starttype #a endtype #a
length 200
FMT(vowel/ee_6)
endphoneme
phoneme W
vowel starttype #@ endtype #@
length 180
length 200
FMT(vowel/y#)
endphoneme
phoneme a
vowel starttype #a endtype #a
length 190
length 200
FMT(vowel/a#_4)
endphoneme
@@ -87,7 +99,7 @@ endphoneme
phoneme u
vowel starttype #u endtype #u
length 150
length 180
IF thisPh(isTranslationGiven) THEN
// don't reduce the vowel if phonemes are explicitly given
ELSE
@@ -103,7 +115,7 @@ endphoneme
phoneme U
vowel starttype #u endtype #u
length 150
length 180
FMT(vowel/uu_2)
endphoneme
@@ -111,7 +123,7 @@ endphoneme
phoneme @
vowel starttype #@ endtype #@
ipa ɯ
length 150
length 180
FMT(vowel/u#_7)
endphoneme
@@ -119,7 +131,7 @@ endphoneme
phoneme o
vowel starttype #o endtype #o
length 190
length 200
IF thisPh(isTranslationGiven) THEN
// don't reduce the vowel if phonemes are explicitly given
ELSE
@@ -135,7 +147,7 @@ endphoneme
phoneme O
vowel starttype #o endtype #o
length 190
length 200
FMT(vowel/oo)
endphoneme
@@ -179,12 +191,20 @@ phoneme J
endphoneme
phoneme l
import_phoneme en/l
endphoneme
phoneme G
import_phoneme en/r/
lengthmod 7
endphoneme
phoneme R
vcd alv flp rhotic
IF prevPhW(isVowel) AND nextPhW(isVowel) THEN
CALL base/*
// ELIF prevPhW(isNotVowel) THEN
// CALL base/R
ELSE
CALL base/r
ENDIF
ipa ɾ
endphoneme
+80 -50
View File
@@ -18,13 +18,13 @@ endphoneme
phoneme 3 // sắc Tone(rising
stress
Tone(25, 50, envelope/p_rise, NULL) // 25
Tone(30, 60, envelope/p_rise, NULL) // 25 50
endphoneme
phoneme 4 // hỏi Tone(curve (dipping rising)
stress
Tone(30, 5, envelope/p_fallrise, NULL)
Tone(40, 5, envelope/p_fallrise, NULL) //30
endphoneme
@@ -54,33 +54,33 @@ endphoneme
phoneme a
vowel starttype #@ endtype #@
length 120
length 140
FMT(vowel/a_6) //a_4)
endphoneme
phoneme a:
vowel starttype #a endtype #a
length 200 //280
FMT(vietnam/a) //FMT(vowel/a_6)
length 240 //280
FMT(vowel/a_8)
endphoneme
phoneme E
vowel starttype #e endtype #e
length 200
length 240
FMT(vowel/ee_3)
endphoneme
phoneme e
vowel starttype #e endtype #e
length 200
length 140
FMT(vowel/e)
endphoneme
phoneme i
vowel starttype #i endtype #i
length 190
length 240
IfNextVowelAppend(;)
IF prevPhW(w) THEN
VowelStart(w/wi)
@@ -100,7 +100,7 @@ phoneme O
ELSE
length 200
ENDIF
FMT(vowel/aa_4)
FMT(vowel/0_2) //aa_4)
endphoneme
phoneme o
@@ -110,7 +110,7 @@ phoneme o
ELSE
length 200
ENDIF
FMT(vowel/o_2)
FMT(vowel/o) // o_2)
endphoneme
@@ -119,9 +119,9 @@ phoneme u
IF nextPh(kh) OR nextPh(N) THEN // hear as ung sound
length 120
ELSE
length 200
length 240
ENDIF
FMT(vnasal/u_n) //vowel/u_7)
FMT(vowel/u_5)
endphoneme
phoneme y
@@ -129,7 +129,7 @@ phoneme y
IF nextPh(kh) OR nextPh(N) THEN
length 120
ELSE
length 200
length 180
ENDIF
FMT(vowel/u#_5)
endphoneme
@@ -138,10 +138,10 @@ endphoneme
phoneme @
vowel starttype #@ endtype #a
IF nextPh(kh) OR nextPh(N) THEN
IF nextPh(kh) OR nextPh(N) OR nextPh(n^) OR nextPh(c) THEN
length 120
ELSE
length 170
length 200
ENDIF
FMT(vowel/V) //vowel/@_2)
endphoneme
@@ -149,7 +149,7 @@ endphoneme
phoneme @:
vowel starttype #@ endtype #@
length 280
length 200
FMT(vowel/@_2)
endphoneme
@@ -160,8 +160,8 @@ endphoneme
phoneme aI
vowel starttype #a endtype #i
length 200 //250
FMT(vdiph/&y)
length 140 //250
FMT(vdiph/&i_2)
endphoneme
@@ -188,14 +188,14 @@ endphoneme
phoneme eI
vowel starttype #e endtype #i
length 200
length 140
FMT(vdiph/ei)
endphoneme
phoneme EI
vowel starttype #e endtype #i
length 200
length 140
FMT(vdiph/eei)
endphoneme
@@ -203,7 +203,7 @@ endphoneme
phoneme OI
vowel starttype #o endtype #i
length 200
FMT(vdiph/0i)
FMT(vdiph/ooi_3)
endphoneme
@@ -231,14 +231,14 @@ endphoneme
phoneme aU
vowel starttype #a endtype #u
length 210
length 200
FMT(vdiph/aau_4)
endphoneme
phoneme a:U
vowel starttype #a endtype #u
length 230 //270
length 200 //270
FMT(vdiph/au)
endphoneme
@@ -258,19 +258,19 @@ endphoneme
phoneme iU
vowel starttype #i endtype #u
length 200
length 140
FMT(vdiph2/iu)
endphoneme
phoneme @U
vowel starttype #@ endtype #u
length 200
length 140
FMT(vdiph/@u_3)
endphoneme
phoneme @:U
vowel starttype #@ endtype #u
length 270
length 140
FMT(vdiph/@u)
endphoneme
@@ -278,19 +278,19 @@ endphoneme
phoneme i@
vowel starttype #i endtype #@
length 240
length 140
FMT(vdiph2/ii@_3)
endphoneme
phoneme y@
vowel starttype #i endtype #@
length 200
length 140
FMT(vdiph2/y-y#)
endphoneme
phoneme u@
vowel starttype #u endtype #@
length 150 //200
length 100 //200
FMT(vdiph2/uu@)
endphoneme
@@ -298,39 +298,67 @@ endphoneme
phoneme o# // ông
vowel starttype #o endtype #o
length 200
length 140
FMT(vnasal/a#u_n)
endphoneme
phoneme O# // ong
vowel starttype #o endtype #o
length 200
length 140
FMT(vnasal/&u_n)
endphoneme
phoneme o@
vowel starttype #o endtype #o
length 160
length 140
FMT(vdiph2/oa)
endphoneme
phoneme o&
vowel starttype #o endtype #o
length 160
length 140
FMT(vietnam/oe)
endphoneme
phoneme iE // iê : viết, giệc
vowel starttype #i endtype #e
length 190
length 140
FMT(vietnam/ie_2)
endphoneme
phoneme Oi // oai sound
vowel starttype #o endtype #i
length 140
FMT(vdiph/ooi_3)
endphoneme
// Vowel and Dipthong for south dialect
phoneme O- // ôi southern sound
vowel starttype #o endtype #i
length 150
FMT(vnasal/oi_n)
endphoneme
phoneme @- // ơi southern sound
vowel starttype #o endtype #i
length 150
FMT(vdiph/@i_3)
endphoneme
phoneme u- // u southern sound
vowel starttype #u endtype #u
length 150
FMT(vowel/u_3,70)
endphoneme
phoneme kh
vls vel frc
lengthmod 3
Vowelin f1=0 f2=2300 200 400 f3=200 80
Vowelin f1=0 f2=2300 200 400 f3=200 80 len=30
Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20
WAV(vietnam/_c,5) //ufric/x, 50)
endphoneme
@@ -338,11 +366,11 @@ endphoneme
phoneme l
liquid
lengthmod 7
Vowelin f1=0 f2=1700 -300 300 f3=-100 80 len=30
//lengthmod 7
//IF nextPh(isNotVowel) THEN
// ChangePhoneme(l/2)
//ENDIF
//CALL vowelstart_l
FMT(l/l_vi)
@@ -352,7 +380,7 @@ phoneme t
vls alv stop
//voicingswitch d
lengthmod 2
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
Vowelin f1=0 f2=1700 -300 300 f3=-100 80 len=30
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
WAV(vietnam/th, 50)
@@ -362,7 +390,7 @@ phoneme cr
vls pla afr sibilant
//voicingswitch dZ
lengthmod 2
Vowelin f1=0 f2=2300 200 400 f3=-100 80
Vowelin f1=0 f2=2300 200 400 f3=-100 80 len=30
WAV(vietnam/tr,10)
@@ -370,10 +398,10 @@ endphoneme
phoneme d
vcd alv stop
lengthmod 5
// lengthmod 5
Vowelin f1=1 f2=1700 -300 300 f3=-100 80
Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk
Vowelin f1=1 f2=1700 -300 300 f3=-100 80 len=30
Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk len=30
WAV(vietnam/dd)
endphoneme
@@ -381,9 +409,9 @@ WAV(vietnam/dd)
vls pal stop palatal
//voicingswitch J
lengthmod 2
length 75
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
length 2
Vowelin f1=0 f2=2700 400 600 f3=300 80 len=30 brk
Vowelout f1=1 f2=2700 400 600 f3=200 70 len=30 colr=1
WAV(vietnam/ch,5)
@@ -402,18 +430,20 @@ endphoneme
phoneme n
vcd alv nasal
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11 brk len=30
Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk len=30
lengthmod 4
FMT(n/n#_)
length 75
FMT(n/nr_)
endphoneme
phoneme t[ // dental variant of /t/
vls dnt stop
voicingswitch d[
lengthmod 2
Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16
Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
length 5
Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 len=30
Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 len=30
IF nextPh(isPause2) THEN
WAV(ustop/t_unasp2, 5)
+42 -5
View File
@@ -6,31 +6,31 @@
phoneme 1 // ngang tone: level
stress
Tone(30, 2, envelope/p_level, NULL) // similar Hue dialect tone
Tone(40, 5, envelope/p_level, NULL) // similar Hue dialect tone
endphoneme
phoneme 2 // huyền tone: low falling
stress
Tone(20, 25, envelope/p_fall,envelope/vi_6amp) // NULL) //20 8
Tone(20, 25, envelope/p_fall,envelope/vi_6amp) // NULL) //20 25
endphoneme
phoneme 3 // sắc Tone(rising
stress
Tone(2, 10, envelope/p_rise, NULL) // 25 50 45 75
Tone(2, 10, envelope/p_fallrise, NULL) // 2 10
endphoneme
phoneme 4 // hỏi Tone(curve (dipping rising)
stress
Tone(20, 5, envelope/p_512,NULL) //Tone(55, 5, envelope/p_fallrise, NULL) //30 5 m 55 5
Tone(5, 10, envelope/p_512,NULL) //20 5
endphoneme
phoneme 5 // ngã tone: broken (creaking rising)
stress
Tone(50,2, envelope/p_214, envelope/vi_5amp) // 28,58 m20 85
Tone(10, 15, envelope/p_512, envelope/vi_6amp) // 40 20
endphoneme
@@ -46,4 +46,41 @@ phoneme 7 // Tone(1 (ngang) at end of clause
Tone(5, 40, envelope/p_level, NULL) //Tone(99, 50, envelope/p_fall, NULL) // 40 20
endphoneme
// Redefine the length of vowels
phoneme i
CALL vi/i
length 150
endphoneme
phoneme E
CALL vi/E
length 150
endphoneme
phoneme a:
CALL vi/a:
length 150
endphoneme
phoneme @
CALL vi/@
length 150
endphoneme
phoneme @:
CALL vi/@:
length 150
endphoneme
phoneme O
CALL vi/O
length 150
FMT(vowel/0)
endphoneme
phoneme Oi
CALL vi/Oi
length 100
FMT(vdiph/ooi_2)
endphoneme
+3
View File
@@ -1830,6 +1830,9 @@ include ph_vietnam
phonemetable vi-hue vi
include ph_vietnam_hue
phonemetable vi-sgn vi
include ph_vietnam_sgn
phonemetable zhy base
include ph_zh_yue
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.
+6
View File
@@ -909,6 +909,12 @@ int Unpronouncable(Translator *tr, char *word, int posn)
if(count==0)
c1 = c;
if((c == '\'') && (tr->langopts.param[LOPT_UNPRONOUNCABLE] == 3))
{
// don't count apostrophe
}
else
count++;
if(IsVowel(tr, c))
+69 -1
View File
@@ -2272,6 +2272,67 @@ void Test2()
#endif
#define MAX_WALPHA 0x24f
void Make_walpha_tab()
{//===================
int ix;
int value;
int c;
short exceptions[40];
int ex = 0;
FILE *f;
f = fopen("/home/jsd1/walpha_tab.txt","w");
for(ix=0x80; ix<=MAX_WALPHA; ix++)
{
value = 0;
if(iswalpha(ix))
{
value = 0xfe; // no case
if(iswlower(ix))
{
value = 0xff;
}
else if(iswupper(ix))
{
c = towlower(ix);
if(c > 0)
value = c - ix;
if((value < 0) || (value > 0xfc))
{
exceptions[ex] = ix;
exceptions[ex+1] = c;
ex+=2;
value = 0xfd;
}
}
}
if(value > 0xfc)
fprintf(f," 0x%.2x,", value);
else
fprintf(f," %4d,", value);
if((ix % 16) == 15)
{
fprintf(f," // %.3x\n", ix & 0xfff0);
}
}
fprintf(f, "\nstatic const short wchar_tolower[] = {\n");
exceptions[ex] = 0;
exceptions[ex+1] = 0;
for(ix=0; ix<=ex; ix+=2)
{
fprintf(f,"\t0x%.3x, 0x%.3x,\n", exceptions[ix], exceptions[ix+1]);
}
fprintf(f, "};\n");
fclose(f);
}
const char* text1 = "Hello world. Testing.";
@@ -2319,7 +2380,14 @@ if(control==2)
espeak_SetSynthCallback(TestSynthCallback);
espeak_SetUriCallback(TestUriCallback);
espeak_SetVoiceByName("en");
voice.languages = "fr";
espeak_SetVoiceByProperties(&voice);
// espeak_SetVoiceByName("fr");
espeak_Synth("1", 5, 0, POS_CHARACTER, 0, espeakSSML|espeakCHARS_UTF8, &unique_identifier, (void *)user_data);
// voice.languages = "en";
// espeak_SetVoiceByProperties(&voice);
espeak_SetVoiceByName("de");
espeak_Synth(textbuf, strlen(textbuf)+1, 0, POS_CHARACTER, 0, espeakSSML|espeakCHARS_UTF8, &unique_identifier, (void *)user_data);
// espeak_Synth(text1, strlen(text1)+1, 0, POS_CHARACTER, 0, espeakSSML|espeakCHARS_UTF8, &unique_identifier, (void *)(user_data+1));
+1 -1
View File
@@ -119,7 +119,7 @@ wxMenuBar *MakeMenu(int type, const char *dict_name)
option_menu = new wxMenu;
option_menu->Append(MENU_PATHS, _("Set &paths"), paths_menu);
option_menu->Append(MENU_OPT_SPEED, _("Speed..."));
option_menu->Append(MENU_OPT_PUNCT, _("Speak punctiation"));
option_menu->Append(MENU_OPT_PUNCT, _("Speak punctuation"));
option_menu->Append(MENU_OPT_SPELL, _("Speak character names"));
// TOOLS
+118 -48
View File
@@ -213,50 +213,74 @@ const int param_defaults[N_SPEECH_PARAM] = {
0, // voice type
};
#ifdef NEED_WCHAR_FUNCTIONS
// additional Latin characters beyond the Latin1 character set
#define MAX_WALPHA 0x233
// indexed by character - 0x100
// 0=not alphabetic, 0xff=lower case, 0xfe=special case
// additional Latin characters beyond the ascii character set
#define MAX_WALPHA 0x24f
// indexed by character - 0x80
// 0=not alphabetic, 0xff=lower case, 0xfe=no case, 0xfd=use wchar_tolower
// other=value to add to upper case to convert to lower case
static unsigned char walpha_tab[MAX_WALPHA-0xff] = {
1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 100
1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 110
1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 120
0xfe,0xff, 1,0xff, 1,0xff, 1,0xff,0xff, 1,0xff, 1,0xff, 1,0xff, 1, // 130
0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff,0xff, 1,0xff, 1,0xff, 1,0xff, // 140
1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 150
1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 160
1,0xff, 1,0xff, 1,0xff, 1,0xff,0xff, 1,0xff, 1,0xff, 1,0xff,0xff, // 170
0xff, 210, 1,0xff, 1,0xff, 206, 1,0xff, 205, 205, 1,0xff,0xff, 79, 202, // 180
203, 1,0xff, 205, 207,0xff, 211, 209, 1,0xff,0xff,0xff, 211, 213,0xff, 214, // 190
1,0xff, 1,0xff, 1,0xff, 218, 1,0xff, 218,0xff,0xff, 1,0xff, 218, 1, // 1a0
0xff, 217, 217, 1,0xff, 1,0xff, 219, 1,0xff,0xff,0xff, 1,0xff,0xff,0xff, // 1b0
0xff,0xff,0xff,0xff, 2, 1,0xff, 2, 1,0xff, 2, 1,0xff, 1,0xff, 1, // 1c0
0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff,0xff, 1,0xff, // 1d0
1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 1e0
0xff, 2, 1,0xff, 1,0xff,0xff,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 1f0
1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 200
1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 210
0xff, 0, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 220
1,0xff, 1,0xff }; // 230
static unsigned char walpha_tab[MAX_WALPHA-0x7f] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 080
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 090
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xfe, 0, 0, 0, 0, 0, // 0a0
0, 0, 0, 0, 0, 0xff, 0, 0, 0, 0, 0xfe, 0, 0, 0, 0, 0, // 0b0
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, // 0c0
32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 0xff, // 0d0
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // 0e0
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // 0f0
1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 100
1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 110
1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 120
0xfd, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 0xfe, 1, 0xff, 1, 0xff, 1, 0xff, 1, // 130
0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 0xfe, 1, 0xff, 1, 0xff, 1, 0xff, // 140
1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 150
1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 160
1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 0xfd, 1, 0xff, 1, 0xff, 1, 0xff, 0xff, // 170
0xff, 210, 1, 0xff, 1, 0xff, 206, 1, 0xff, 205, 205, 1, 0xff, 0xfe, 79, 202, // 180
203, 1, 0xff, 205, 207, 0xff, 211, 209, 1, 0xff, 0xff, 0xfe, 211, 213, 0xff, 214, // 190
1, 0xff, 1, 0xff, 1, 0xff, 218, 1, 0xff, 218, 0xfe, 0xfe, 1, 0xff, 218, 1, // 1a0
0xff, 217, 217, 1, 0xff, 1, 0xff, 219, 1, 0xff, 0xfe, 0xfe, 1, 0xff, 0xfe, 0xff, // 1b0
0xfe, 0xfe, 0xfe, 0xfe, 2, 0xff, 0xff, 2, 0xff, 0xff, 2, 0xff, 0xff, 1, 0xff, 1, // 1c0
0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 0xff, 1, 0xff, // 1d0
1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 1e0
0xfe, 2, 0xff, 0xff, 1, 0xff, 0xfd, 0xfd, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 1f0
1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 200
1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 210
0xfd, 0xfe, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 220
1, 0xff, 1, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfd, 1, 0xff, 0xfd, 0xfd, 0xfe, // 230
0xfe, 1, 0xff, 0xfd, 69, 71, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff}; // 240
static const short wchar_tolower[] = {
0x130, 0x069,
0x178, 0x0ff,
0x1f6, 0x195,
0x1f7, 0x1bf,
0x220, 0x19e,
0x23a, 0x2c65,
0x23d, 0x19a,
0x23e, 0x2c66,
0x243, 0x180,
0x000, 0x000,
};
#ifdef NEED_WCHAR_FUNCTIONS
// use ctype.h functions for Latin1 (character < 0x100)
int iswalpha(int c)
{
if(c < 0x100)
if(c < 0x80)
return(isalpha(c));
if((c > 0x3040) && (c <= 0xa700))
return(1); // japanese, chinese characters
if(c > MAX_WALPHA)
return(0);
return(walpha_tab[c-0x100]);
return(walpha_tab[c-0x80]);
}
int iswdigit(int c)
{
if(c < 0x100)
if(c < 0x80)
return(isdigit(c));
return(0);
}
@@ -271,50 +295,63 @@ int iswalnum(int c)
int towlower(int c)
{
int x;
if(c < 0x100)
int ix;
if(c < 0x80)
return(tolower(c));
if((c > MAX_WALPHA) || ((x = walpha_tab[c-0x100])==0xff))
return(c); // already lower case
if(x == 0xfe)
if((c > MAX_WALPHA) || ((x = walpha_tab[c-0x80]) >= 0xfe))
return(c);
if(x == 0xfd)
{
// special cases
if(c == 0x130) // uppercase i-dot
return('i');
// special cases, lookup translation table
for(ix=0; wchar_tolower[ix] != 0; ix+=2)
{
if(wchar_tolower[ix] == c)
return(wchar_tolower[ix+1]);
}
}
return(c + x); // convert to lower case
}
int towupper(int c)
{
// check whether the previous character code is the upper-case equivalent of this character
if(tolower(c-1) == c)
return(c-1); // yes, use it
// check whether a previous character code is the upper-case equivalent of this character
if(towlower(c-32) == c)
return(c-32); // yes, use it
if(towlower(c-1) == c)
return(c-1);
if(towlower(c-2) == c)
return(c-2);
return(c); // no
}
int iswupper(int c)
{
int x;
if(c < 0x100)
if(c < 0x80)
return(isupper(c));
if(((c > MAX_WALPHA) || (x = walpha_tab[c-0x100])==0) || (x == 0xff))
if(((c > MAX_WALPHA) || (x = walpha_tab[c-0x80])==0) || (x == 0xff))
return(0);
return(1);
}
int iswlower(int c)
{
if(c < 0x100)
if(c < 0x80)
return(islower(c));
if((c > MAX_WALPHA) || (walpha_tab[c-0x100] != 0xff))
if((c > MAX_WALPHA) || (walpha_tab[c-0x80] != 0xff))
return(0);
return(1);
}
int iswspace(int c)
{
if(c < 0x100)
if(c < 0x80)
return(isspace(c));
if(c == 0xa0)
return(1);
return(0);
}
@@ -366,8 +403,26 @@ float wcstod(const wchar_t *str, wchar_t **tailptr)
}
#endif
// use internal data for iswalpha up to U+024F
// iswalpha() on Windows is unreliable (U+AA, U+BA).
int iswalpha2(int c)
{
if(c < 0x80)
return(isalpha(c));
if((c > 0x3040) && (c <= 0xa700))
return(1); // japanese, chinese characters
if(c > MAX_WALPHA)
return(iswalpha(c));
return(walpha_tab[c-0x80]);
}
int towlower2(unsigned int c)
{
int x;
int ix;
// check for non-standard upper to lower case conversions
if(c == 'I')
{
@@ -376,11 +431,26 @@ int towlower2(unsigned int c)
c = 0x131; // I -> ı
}
}
#ifdef __WIN32__
if(c == 0x130) // uppercase i-dot
return('i');
#endif
if(c < 0x80)
return(tolower(c));
if(c > MAX_WALPHA)
return(towlower(c));
if((x = walpha_tab[c-0x80]) >= 0xfe)
return(c); // this is not an upper case letter
if(x == 0xfd)
{
// special cases, lookup translation table
for(ix=0; wchar_tolower[ix] != 0; ix+=2)
{
if(wchar_tolower[ix] == (int)c)
return(wchar_tolower[ix+1]);
}
}
return(c + x); // convert to lower case
}
+1 -1
View File
@@ -35,7 +35,7 @@
#include "translate.h"
#include "wave.h"
const char *version_string = "1.47.06 15.Apr.13";
const char *version_string = "1.47.07a 23.Apr.13";
const int version_phdata = 0x014701;
int option_device_number = -1;
+1
View File
@@ -844,6 +844,7 @@ Translator *SelectTranslator(const char *name)
tr->langopts.stress_rule = STRESSPOSN_1L;
tr->langopts.numbers = 1;
tr->langopts.accents = 2; // 'capital' after letter name
tr->langopts.param[LOPT_UNPRONOUNCABLE] = 3; // don't count apostrophe
}
break;
+5 -2
View File
@@ -384,9 +384,12 @@ int IsAlpha(unsigned int c)
0
};
if(iswalpha(c))
if(iswalpha2(c))
return(1);
if(c < 0x300)
return(0);
if((c >= 0x901) && (c <= 0xdf7))
{
// Indic scripts: Devanagari, Tamil, etc
@@ -2957,7 +2960,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
if(UpperCaseInWord(tr, &sbuf[ix], c) == 1)
{
// convert to lower case and continue
c = towlower(c);
c = towlower2(c);
}
else
{
+1
View File
@@ -713,6 +713,7 @@ int IsDigit(unsigned int c);
int IsDigit09(unsigned int c);
int IsAlpha(unsigned int c);
int IsVowel(Translator *tr, int c);
int iswalpha2(int c);
int isspace2(unsigned int c);
int towlower2(unsigned int c);
void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa);
+1 -1
View File
@@ -601,7 +601,7 @@ voice_t *LoadVoice(const char *vname, int control)
// which directory to look for a named voice. List of voice names, must end in a space.
static const char *voices_asia =
"bn fa fa-pin hi hy hy-west id ka kn ku ml ms ne pa ta te tr vi vi-hue zh zh-yue ";
"bn fa fa-pin hi hy hy-west id ka kn ku ml ms ne pa ta te tr vi vi-hue vi-sgn zh zh-yue ";
static const char *voices_europe =
"an bg bs ca cs cy da de el en en-us es et fi fr fr-be ga hr hu is it lt lv mk nl no pl pt-pt ro ru sk sq sr sv ";