Browse Source

[1.47.07a]

Use internal data for iswalpha(), towlower() for characters up to U+024F.
Language changes: es, nl, pt, tr, vi.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@346 d46cf337-b52f-0410-862d-fd96e6ae7743
master
jonsd 12 years ago
parent
commit
93cc76768c

+ 15
- 15
dictsource/dict_phonemes View File

ts v x z ts v x z




Dictionary en_dict 2013-04-18
Dictionary en_dict 2013-04-23


0 0# 3 3: @ @- @2 @5 0 0# 3 3: @ @- @2 @5
@L a a# A: A@ aa aI aI3 @L a a# A: A@ aa aI aI3
x z Z x z Z




Dictionary es_dict 2013-03-29
Dictionary es_dict 2013-04-22


@ a aI aU e E eI eU @ a aI aU e E eI eU
i o O oI u i o O oI u
t.# v w x z t.# v w x z




Dictionary nl_dict 2013-04-12
Dictionary nl_dict 2013-04-23


8 @ @- a A a: A~ e 8 @ @- a A a: A~ e
E e# E2 e: EI eU i I E e# E2 e: EI eU i I
ts; v w x z Z Z; ts; v w x z Z Z;




Dictionary pt_dict 2013-04-18
Dictionary pt_dict 2013-04-23


& &/ &U~ &~ @ @- a A & &/ &U~ &~ @ @- a A
aI aU e E eI EI eU EU aI aU e E eI EI eU EU
v v# w z v v# w z




Dictionary tr_dict 2011-09-16
Dictionary tr_dict 2013-04-20


@ a e E i I o O @ a e E i I o O
u U W y Y u U W y Y


* : b c d dZ f g * : b c d dZ f g
G h j J k l m n
p Q r R s S t tS
v w z Z
G h j J k l L m
n p Q r R s S t
tS v w z Z




Dictionary ur_dict 2013-03-28 Dictionary ur_dict 2013-03-28
v w x z Z z. v w x z Z z.




Dictionary vi_dict 2013-03-16
Dictionary vi_dict 2013-04-21


@ @: @:I @:U @I @U a a:
a:I a:U aI aU e E eU EU
i i@ iE iU o O o# O#
o& o@ OI oI u u@ uI y
y@ yI
@ @- @: @:I @:U @I @U a
a: a:I a:U aI aU e E eU
EU i i@ iE iU o O o#
O# o& O- o@ OI oI Oi u
u- u@ uI y y@ yI


b c cr d D f g h b c cr d D f g h
j J J^ k kh l m n j J J^ k kh l m n
N n^ p Q s s. t t[ N n^ p Q s s. t t[
v w x z Z z.
tS tS; v w x z Z z.




Dictionary zh_dict 2013-01-25 Dictionary zh_dict 2013-01-25

+ 40
- 29
dictsource/en_list View File

// ?8 Use full vowel, not schwa in some word endings // ?8 Use full vowel, not schwa in some word endings


// $alt1 use strong ending (-an, -table, -inal, -ier) // $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#] // $alt3 use weak first vowel, a->[a#], e->[@], o->[0#]
// $alt4 separate 'h', not 'th' // $alt4 separate 'h', not 'th'
// $alt6 'to' // $alt6 'to'
_zh tS'aIni:z _zh tS'aIni:z


// Cyrillic letters // Cyrillic letters
а a
б bE
в vE
г gE
д dE
е jE
ё jo
ж ZE
з zE
и I
а a:
б bE:
в vE:
г gE:
д dE:
е jE:
ё jo:
ж ZE:
з zE:
и I:
й ,Ik@-*'atkOji й ,Ik@-*'atkOji
к ka
к ka:
л El/1 л El/1
м Em м Em
н En н En
о o
п pE
о o:
п pE:
р Er р Er
с Es с Es
т tE
у u
т tE:
у u|:
ф Ef ф Ef
х xa
ц tsE
ч tSE
ш Sa
щ StSa
х xa:
ц tsE:
ч tSE:
ш Sa:
щ StSa:
ъ jEr ъ jEr
ы j'Eru ы j'Eru
ь j'eri ь j'eri
э E
ю ju
я ja
ћ tS;E
ђ djE
ќ kjE
э E:
ю ju|:
я ja:
ћ tS;E:
ђ djE:
ќ kjE:




// Arabic letters // Arabic letters
_5o f'If _5o f'If
_20o tw'Enti@ _20o tw'Enti@
_30o T'3:ti@ _30o T'3:ti@
?3 _30o T'IRti@
?5 _30o T'IRti@
_40o f'o@ti@ _40o f'o@ti@
_50o f'Ifti@ _50o f'Ifti@
_60o s'Iksti@ _60o s'Iksti@
adieus a#dju:z adieus a#dju:z
adieux a#dju:z adieux a#dju:z
adios aDj'o:s adios aDj'o:s
adjective $1
admirable adm@r@b@L admirable adm@r@b@L
admirably adm@r@bli admirably adm@r@bli
admonition adm@n'IS@n admonition adm@n'IS@n
antichrist $1 antichrist $1
anticline $1 anticline $1
antidote $1 antidote $1
antifreze $1
antifreeze $1
antigen $1 antigen $1
antihero $1 antihero $1
antilog $1 antilog $1
cosmos k0zm0s cosmos k0zm0s
?3 cosmos k0zmoUs ?3 cosmos k0zmoUs
cougar ku:g3 cougar ku:g3
counteract $3
countered kaUnt3d countered kaUnt3d
(coup de grâce) ku:d@||gr'A: (coup de grâce) ku:d@||gr'A:
coupon ku:p0n coupon ku:p0n
facade f@sA:d facade f@sA:d
façade f@sA:d façade f@sA:d
facetious $alt3 facetious $alt3
faculty fak@Lt2i
faeces fi:si:z faeces fi:si:z
fahrenheit far@nhaIt fahrenheit far@nhaIt
fairest fe@r@st fairest fe@r@st
henceforth hEnsfo@T henceforth hEnsfo@T
?3 herb 3:b ?3 herb 3:b
hercules h3:kjUli:z hercules h3:kjUli:z
heredity h3rEdI2ti
?3 hereford h3:f3d ?3 hereford h3:f3d
heretical hI2rEtI2k@L heretical hI2rEtI2k@L
hereto hi@3'tu: hereto hi@3'tu:
Belize bEl'i:z Belize bEl'i:z
Bengal b,Eng'O:l Bengal b,Eng'O:l
Benin bEnIn Benin bEnIn
Berkeley b3:kli
Bhutan bu:t'an Bhutan bu:t'an
Bideford bIdIf@d Bideford bIdIf@d
Bogota b0g@t'A: Bogota b0g@t'A:
Cyprus saIpr@s Cyprus saIpr@s
Dahomey $alt3 Dahomey $alt3
Dallas dal@s Dallas dal@s
Dagestan dA:gIst'A:n
Damascus $alt3 Damascus $alt3
Dakota $alt3 Dakota $alt3
Danish deInIS Danish deInIS
Gurmukhi gU@mUki Gurmukhi gU@mUki
Harare ha#rA:ri Harare ha#rA:ri
Hanoi han'OI Hanoi han'OI
Harvard $alt2
Havana ha#van@ Havana ha#van@
Hawaii h@w'aIi: Hawaii h@w'aIi:
Hawai'i h@w'aIi: Hawai'i h@w'aIi:
?3 Korean k3r'i:@n ?3 Korean k3r'i:@n
Kosovo k0s@voU Kosovo k0s@voU
Kuala kwA:la# Kuala kwA:la#
Kyrgyz k3:rgIz
Kyrgyzstan k3:rgIst'A:n
Lagos leIg0s Lagos leIg0s
Lahore $alt3 Lahore $alt3
Lebanon lEb@n0n Lebanon lEb@n0n
Giovanni dZ@v'A:ni Giovanni dZ@v'A:ni
Graeme greI@m Graeme greI@m
Graham greI@m Graham greI@m
Gruffydd grIfIT
Guido gwi:doU Guido gwi:doU
Guinevere gwInI#vi@3 Guinevere gwInI#vi@3
Hadrian heIdri:@n Hadrian heIdri:@n
(at once) a#t_w0ns (at once) a#t_w0ns
?6 (at once) a#t_wVns ?6 (at once) a#t_wVns
(at will) a#t_w'Il (at will) a#t_w'Il
(at & t) 'eIt2i:@nt'i:


with wID $u with wID $u
(with the) w%IDD@2 $nounf (with the) w%IDD@2 $nounf

+ 9
- 5
dictsource/en_rules View File

_) ani anI _) ani anI
_) ani (on anaI _) ani (on anaI
&) ani (_ 'A:nI &) ani (_ 'A:nI
@st) ani (_S1 =i
an (ia 'eIn an (ia 'eIn
ania (c_ 'eInIa ania (c_ 'eInIa
ania (c a#naI@ ania (c a#naI@
_t) ar (_ A@ _t) ar (_ A@
&) ar (dis 3 &) ar (dis 3
&) ar (diz 3 &) ar (diz 3
&) ar (d_$w_alt2 3
&d) ar (d_ 3 &d) ar (d_ 3
gg) ar (d_ 3 gg) ar (d_ 3
&h) ar (d_ 3 &h) ar (d_ 3
co (rro k@ co (rro k@
co (rrup k@ co (rrup k@
_) costar koUstA@ _) costar koUstA@
_) counter (@P7 k'aUnt@ // prefix
_) counter (@P7 k'aUnt3 // prefix


.group d .group d
d d d d
iss (a_ 'Is iss (a_ 'Is
issimo (_ 'IsImoU issimo (_ 'IsImoU
chr) is (t_ aIs chr) is (t_ aIs
@) istan (_ =Istan
@) istani (_ Ist'A:nI
@) istan (_ =IstA:n
@) istan (_N =Istan
@) iste (_ 'i:st @) iste (_ 'i:st
@) is (tic_ 'Is @) is (tic_ 'Is
r) is (y_ =@s r) is (y_ =@s
oea (_ 'i@ oea (_ 'i@
_) oe (d i: _) oe (d i:
p) oe (m oUI p) oe (m oUI
oer oU@
oer oU3
_) oe (s i: _) oe (s i:
&) oe (s_S2 z &) oe (s_S2 z
oesopha I2s0f@ oesopha I2s0f@
th (ern_ D th (ern_ D
_) thio T,aIoU _) thio T,aIoU
th (ith D th (ith D
th (old th
th (ole th th (ole th
_) th (om@ t _) th (om@ t
ph) th T ph) th T
C) yes (_ aIz C) yes (_ aIz
_) yes jEs _) yes jEs
yeah jEh yeah jEh
yew ju:
@C) y (gen I @C) y (gen I
?!3 d) y (nas I ?!3 d) y (nas I
s) ynch Ink s) ynch Ink
E (ntu 'E E (ntu 'E
E (ntous 'E E (ntous 'E
E (o_ I2 E (o_ I2
Eous (_ =j@s
Eous (_ =i@s
l) E (ps E l) E (ps E
l) E (pt E l) E (pt E
Eri (A 'i@rI2 Eri (A 'i@rI2

+ 3
- 0
dictsource/es_rules View File

_) d (rA d _) d (rA d
_) d (A d _) d (A d
d (A D d (A D
d (_ D
d (cY D d (cY D
d (L03 D d (L03 D
d (v D
m) d d m) d d
n) d d n) d d
l) d d l) d d
_) gn (A n _) gn (A n
_) g (A g _) g (A g
g (A Q g (A Q
g (_ Q
g (cY Q g (cY Q
g (L03 Q g (L03 Q
m) g g m) g g

+ 11
- 1
dictsource/nl_list View File

_7X z'e:v@nt@x _7X z'e:v@nt@x
_8X t'Axt@x _8X t'Axt@x
_9X n'e:g@nt@x _9X n'e:g@nt@x
_0C h'OndErt
_0C h'Ond@rt
_0M1 d'WyzEnt _0M1 d'WyzEnt
_0M2 m'iljun _0M2 m'iljun
_0M3 m'iljArt _0M3 m'iljArt
loochen $alt loochen $alt
oefen $alt oefen $alt
open $alt open $alt
reden $alt
regen $alt regen $alt
reken $alt reken $alt
schepen $alt schepen $alt
gispel $alt gispel $alt
gniffel $alt gniffel $alt
goochel $alt goochel $alt
googel $alt
gorgel $alt gorgel $alt
grabbel $alt grabbel $alt
grendel $alt grendel $alt
accessoire aksEsw'ar@ accessoire aksEsw'ar@
accessoires aksEsw'ar@s accessoires aksEsw'ar@s
actiepunt Aksip8nt actiepunt Aksip8nt
actieve Akt'iv@
adhesie Ath'e:zi adhesie Ath'e:zi
agenda $2 agenda $2
aldus Ald'8s aldus Ald'8s
desillusie dEsIlyzi desillusie dEsIlyzi
dieet $2 dieet $2
diesel diz@l diesel diz@l
diner din'e:
//discussie $2 //discussie $2
divers div'Ers divers div'Ers
diftongering dIft,ON'e:rIN diftongering dIft,ON'e:rIN
elfstedentocht ,Elf'ste:d@ntoQt elfstedentocht ,Elf'ste:d@ntoQt
embouchuur A~buS'yr // embouchure embouchuur A~buS'yr // embouchure
enorm $2 enorm $2
enquête A~k'Et@ $alt2
erosie e:r'o:zi erosie e:r'o:zi
eucharistie $4 eucharistie $4
explosie $2 explosie $2
januari $3 januari $3
kadaster $2 kadaster $2
leesregel le:sre:Q@l leesregel le:sre:Q@l
lunch l8nS
lunches l8nS@s
mangat $alt3 mangat $alt3
materie ma:t'e:ri materie ma:t'e:ri
maatregel ma:tre:Q@l $alt2 maatregel ma:tre:Q@l $alt2
partijvoorzitters $2 partijvoorzitters $2
periferie pI:rifI:r'i periferie pI:rifI:r'i
pistache pist'AS pistache pist'AS
privilege privil'e:Z@ $alt2
proces $2 proces $2
projectielen $3 projectielen $3
renaissance rEne:s'A~s@ renaissance rEne:s'A~s@
sms'jes EsEm'Es_j@s sms'jes EsEm'Es_j@s
spektakel $2 spektakel $2
tegennatuur $4 tegennatuur $4
tralie $1
travestie $3 travestie $3
verderop $3 verderop $3
vergezicht vErQ@zIxt vergezicht vErQ@zIxt
verste vErst@ verste vErst@
verte vErt@ verte vErt@
volledig $2 volledig $2
voordeel $1
vrouwengek $alt3 vrouwengek $alt3
waarschijnlijk $2 waarschijnlijk $2
wanen v#a:n@n wanen v#a:n@n

+ 41
- 11
dictsource/nl_rules View File



@@C) a (_ =a: @@C) a (_ =a:
_) aan (@P3 'a:n _) aan (@P3 'a:n
@) aar (_S3 a:r
@) aard (_S4 a:rt
&) aar (_S3 a:r
&) aard (_S4 a:rt
aa (rd_ 'a: aa (rd_ 'a:
aa (C_ 'a: aa (C_ 'a:
z) aa (m_ a: z) aa (m_ a:
t) a (bleau a: t) a (bleau a:
@) abel (_ 'a:b@l @) abel (_ 'a:b@l
@) abele (_ 'a:b@l@ @) abele (_ 'a:b@l@
@) ace (_ e:s // ?? interface
m) ach (in %a:S m) ach (in %a:S
_) actie (@P5 'Aksi _) actie (@P5 'Aksi
_) af (C@P2 'Af _) af (C@P2 'Af
_) be (zem be: _) be (zem be:
_) be (zig be: _) be (zig be:
_) beu bY: _) beu bY:
_) bezoekers (@P9 b@z'uk@rs




.group c .group c
@) ci (ë S @) ci (ë S
ci (o S ci (o S
ck k ck k
ces (_ s'Es
coach ko:tS coach ko:tS

_) computer (@P8 kOmpj'ut@r _) computer (@P8 kOmpj'ut@r
_) congres kOnQr'Es _) congres kOnQr'Es
_) concentratie (@P12 kOnsEntr'a:tsi
co (ncert k%O co (ncert k%O




&) end (_ @nd &) end (_ @nd
&) ende (_S1 @ &) ende (_S1 @
&) enden (_S2 @n &) enden (_S2 @n
eden e:d@n
eden (_ e:d@n // ??
@) ent (_ 'Ent @) ent (_ 'Ent
@) ent (e_ 'Ent @) ent (e_ 'Ent
@) ent (en_ 'Ent @) ent (en_ 'Ent
@z) es (_S1 s @z) es (_S1 s
@) es (_S2qd 'Es // double the previous vowel @) es (_S2qd 'Es // double the previous vowel
@) es (_$w_alt2S1 s // just remove 's' @) es (_$w_alt2S1 s // just remove 's'
@) e (s_$p_alt2+S1 s
KAC) es (_S2e @s KAC) es (_S2e @s
mb) es (_S1 s mb) es (_S1 s
nd) es (_S1 s nd) es (_S1 s
@) eur (_ 'Y:r @) eur (_ 'Y:r


&) e (nB@ E2 &) e (nB@ E2
&) e (ntig @
_p) e (nibel e: _p) e (nibel e:
id) e (nt E id) e (nt E
pres) e (nt E pres) e (nt E
er (ij_ @r er (ij_ @r
tol) er (abel @r tol) er (abel @r
mis) er (abel @r mis) er (abel @r
hond) er (d_ @r
_) erger ErQ@r // ergeren _) erger ErQ@r // ergeren
&) era (_ @ra: &) era (_ @ra:
@) er (aar_ @r @) er (aar_ @r
&) er (C@ E2r &) er (C@ E2r


.group ê
ê E


.group f .group f
f f f f
@) gi (eus Z @) gi (eus Z
@) gi (euz Z @) gi (euz Z
reli) gi (eu Qij reli) gi (eu Qij
_) goog (el gu:g


.group ge .group ge
_) ge (@P2 Q@ _) ge (@P2 Q@
ge (bied Q@ ge (bied Q@
_) gebruikers (@P10 Q@br'Wyk@rs
_) gee Qe: _) gee Qe:
_) gei QEI _) gei QEI
gener (aal Q,e:n@r gener (aal Q,e:n@r
&) ika (_ =ika: &) ika (_ =ika:
&) iko (_ =iko: &) iko (_ =iko:
_) in (C@P2 'In _) in (C@P2 'In
// _) in (gP2 'In
_) in (do In _) in (do In
ine (_ 'in@ ine (_ 'in@
ines (_ 'in@s ines (_ 'in@s
_) inn (@P2 'I // ?? inneren
_) inter Int@r
io (nage iO io (nage iO
io (de_ i'o: io (de_ i'o:
iodes (_ i'o:d@s iodes (_ i'o:d@s
@) isme (_ 'Ism@ @) isme (_ 'Ism@
@) ist (_ 'Ist @) ist (_ 'Ist
@) isten (_ 'Ist@n @) isten (_ 'Ist@n
_) inn (@P2 'I // ?? inneren


.group j .group j
j j j j
_) jaar (@P4 j'a:r
jaar (lijk ja:r
jou (rna Zu jou (rna Zu




&) lijker (_S6 l@k@r &) lijker (_S6 l@k@r
&) lijkere (_S7 l@k@r@ &) lijkere (_S7 l@k@r@
&) lijkheid (_S8 l@khEIt &) lijkheid (_S8 l@khEIt
&) lijkheden (_S9 l@khe:d@n
// &) lijks@ (_ l@ks@
&) lijkst (_S6 l@kst &) lijkst (_S6 l@kst
&) lijkste (_S7 l@kst@ &) lijkste (_S7 l@kst@




management ma:nIdZm@nt management ma:nIdZm@nt
_) mee (@P3 m'e: _) mee (@P3 m'e:
_) mee (rC mI:
menu (_ m@ny menu (_ m@ny
_) mi (cro mi _) mi (cro mi
_) mi (s@ m%I _) mi (s@ m%I
_) mis (loP3 m'Is _) mis (loP3 m'Is
_) mis (tA m'Is _) mis (tA m'Is
_) misver (@ m'Isf@r _) misver (@ m'Isf@r
_) muziek (@P6 myz'ik


.group n .group n
n n n n
_) na (C@N n'a: _) na (C@N n'a:
_) na (C% nA _) na (C% nA
_) na (cht nA _) na (cht nA
_) najaars (@P7 n'a:ja:rs
_) narci (s n%ArsI _) narci (s n%ArsI
_) na (rc n%A _) na (rc n%A
_) na (der na: _) na (der na:
na (vig n%a: na (vig n%a:
_) na (vr na: _) na (vr na:
_) na (volg@ n%a: _) na (volg@ n%a:
_) noord (@P5 no:rd
_) nieuws (@P6 n'iws _) nieuws (@P6 n'iws
@@) nis (_S3 nIs @@) nis (_S3 nIs
@@) nisen (_S5 nIs@n @@) nisen (_S5 nIs@n
_) noord (@P5 no:rd
_) notitie (@P7 no:t'itsi




.group o .group o
tr) ou (vail u tr) ou (vail u
ouve (rtu uvE ouve (rtu uvE
_) over (@P4 ,o:v@r _) over (@P4 ,o:v@r
_) overigen o:v@r@Q@n
_) overheid 'o:v@rhEIt _) overheid 'o:v@rhEIt
t) ou (r u: t) ou (r u:


C) r (A r C) r (A r
rr *r rr *r


recherch r@SErS
revanch r@vA~nS
route rut@ // route(s) route rut@ // route(s)


.group re .group re
_) re (geren r@ _) re (geren r@
_) re (geer r@ _) re (geer r@
_) regel re:Q@l
_) re (cent r@ _) re (cent r@
_) re (cept r@ _) re (cept r@
_) re (ceptief re: _) re (ceptief re:
_) re (ces r@
_) re (clam r@ _) re (clam r@
_) register r@Q'Ist@r
reme (die r@m'e:
_) re (serve_ r@ _) re (serve_ r@
_) re (cord re' _) re (cord re'
_) regering r@Q'I:rIN
_) regering r@Q'I:rIN
repre (saill re:pre: repre (saill re:pre:
recherch r@SErS
revanch r@vA~nS




.group s .group s
CAr) sie (_ =zi CAr) sie (_ =zi


_) stads (@P5 st'Ats _) stads (@P5 st'Ats
_) stage (@P5 st'a:Z@
_) standaard (@P9 st'Anda:rt _) standaard (@P9 st'Anda:rt
_) start (@P5 st'Art _) start (@P5 st'Art
@) straat (_S6 stra:t @) straat (_S6 stra:t
_) verkeers (@P8 v@rk'I:rs _) verkeers (@P8 v@rk'I:rs
// _) verge (@P5 vErg@ // _) verge (@P5 vErg@
// _) verge (le v@rQ'e: // _) verge (le v@rQ'e:
_) voorjaars (@P9 v'O:rja:rs
_) voort (@P5 v'O:rt _) voort (@P5 v'O:rt
_) vrijwilligers (@P13 vrEIv#'Il@Q@rs




.group w .group w
_) weg (@P3 v#'EQ _) weg (@P3 v#'EQ
_) weg (en v#e:Q _) weg (en v#e:Q
_) weg (e_ v#e:Q // bewegelijk _) weg (e_ v#e:Q // bewegelijk
_) werk (@P4 v#'Erk
_) west (@P4 v#Est _) west (@P4 v#Est
_) wr vr
_) woon (@P4 v#'o:n
_) wr (@ vr




.group x .group x

+ 71
- 39
dictsource/pt_list View File

+ maIs# $max3 + maIs# $max3
% pors'eINtU $max3 % pors'eINtU $max3
& _'e_ & _'e_
@ &x'ob&
@ ax'ob&
¤ 'eU*U ¤ 'eU*U
€ 'eU*U € 'eU*U
£ l'ibR&
§ p&*'agRafU § p&*'agRafU




_¿ ,iNtex,ogas,&U~,iNvertS'id& _¿ ,iNtex,ogas,&U~,iNvertS'id&


_" 'abRi;'asp&||d'upl&s# _" '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 ° gR'aU




?2 _9X nov'eINt& ?2 _9X nov'eINt&
_1C0 s'eIN _1C0 s'eIN
?1_0C s'eINtus# ?1_0C s'eINtus#
?2_0C s'eINtUs#
?2_0C s'eINtUz
_1C s'eINtu _1C s'eINtu
?1_2C duz'eINtus# ?1_2C duz'eINtus#
?2_2C duz'eINtUz ?2_2C duz'eINtUz
// articles // articles
o $u+ $nounf o $u+ $nounf
a $u+ $nounf a $u+ $nounf
os Us $u+ $nounf
os $u+ $nounf
as $u+ $nounf as $u+ $nounf
?1 a & $u+ $nounf ?1 a & $u+ $nounf


para $u // for,to para $u // for,to
pro pRU $u $nounf pro pRU $u $nounf
pra $u $nounf pra $u $nounf
pros pRUs $u $nounf
pros $u $nounf
pras $u $nounf pras $u $nounf
prò $u $nounf prò $u $nounf
prà $u $nounf prà $u $nounf
// conjunctions // conjunctions
?1 e i $u // and ?1 e i $u // and
?2 e i $u // and ?2 e i $u // and
se $u+ $verbf // if
se $u+ // if




?2 mas $u // but ?2 mas $u // but
pudemos $u+ pudemos $u+
puderam $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) // ir - to go (used to make future tense)
aeroportos $alt aeroportos $alt
alcateia $alt alcateia $alt
alcova $alt2 alcova $alt2
alegro $alt2 $noun
alferes $alt alferes $alt
almoço $alt $verb almoço $alt $verb
ameba $alt ameba $alt
amores $alt2 amores $alt2
amorno $alt amorno $alt
amuleto $alt2
ampere $alt
ampola $alt2 ampola $alt2
ampulheta $alt2 ampulheta $alt2
andorra $alt2 andorra $alt2
arroto $alt2 $noun arroto $alt2 $noun
arroz $alt2 arroz $alt2
assembleia $alt assembleia $alt
assopro $alt2 $noun
ateia $alt ateia $alt
aterro $alt2 aterro $alt2
aterro $alt $verb aterro $alt $verb
azedo $alt $verb azedo $alt $verb
bairro b'aIxU bairro b'aIxU
baqueta $alt2 baqueta $alt2
banqueta $alt2
banquete $alt2
bastonete $alt2
beco $alt2 beco $alt2
besta $alt2 besta $alt2
bilhete $alt2 bilhete $alt2
bissulfeto $alt2
boca $alt2 boca $alt2
boceta $alt2 boceta $alt2
bochecha $alt2
bofe $alt
bojo $alt2 bojo $alt2
boleia $alt boleia $alt
bolero $alt bolero $alt
camelha $alt camelha $alt
camelo $alt2 camelo $alt2
camiseta $alt2 camiseta $alt2
canaleta $alt2
canhoto $alt2 canhoto $alt2
cantora $alt2 cantora $alt2
capacete $alt2 capacete $alt2
chupeta $alt2 chupeta $alt2
clamores $alt2 clamores $alt2
clero $alt clero $alt
cloreto $alt2
coche $alt2 coche $alt2
coco $alt2 coco $alt2
cofre $alt cofre $alt
conforto $alt $verb conforto $alt $verb
console $alt2 $noun console $alt2 $noun
consolo $alt2 $noun consolo $alt2 $noun
constroem $alt
controle $alt2 $noun controle $alt2 $noun
controles $alt2 controles $alt2
controles $alt $verb controles $alt $verb
corto $alt corto $alt
corveta $alt2 corveta $alt2
corvos $alt corvos $alt
costeleta $alt2
coto $alt2 coto $alt2
cotovelo $alt2 cotovelo $alt2
cratera $alt cratera $alt
credo $alt credo $alt
crepe $alt crepe $alt
decore $alt decore $alt
decoro $alt2 $noun
decoro $alt2 $noun
degelo $alt2 degelo $alt2
desapego $alt2 $noun desapego $alt2 $noun
descordo $alt descordo $alt
desespero $alt $verb desespero $alt $verb
desfecho $alt2 desfecho $alt2
desmantelo $alt2 $noun desmantelo $alt2 $noun
despojo $alt2 $noun
despojos $alt
desporto $alt2 desporto $alt2
desportos $alt desportos $alt
desprezo $alt2 $noun desprezo $alt2 $noun
diarreia $alt diarreia $alt
diego $alt2 diego $alt2
discordo $alt discordo $alt
dissabores $alt2
dispneia dZIspyn'EI& dispneia dZIspyn'EI&
dobro $alt2 dobro $alt2
dobro $alt $verb dobro $alt $verb
enredo $alt $verb enredo $alt $verb
enrosco $alt $verb enrosco $alt $verb
enterro $alt2 $noun enterro $alt2 $noun
entorto $alt
entroso $alt
entorto $alt
entroso $alt
envelope $alt envelope $alt
envolto $alt2 envolto $alt2
enxaqueca $alt2 enxaqueca $alt2
estrela $alt2 estrela $alt2
estrofe $alt estrofe $alt
estrogonofe $alt estrogonofe $alt
eta $alt2
eta $alt2
etiqueta $alt2 etiqueta $alt2
europa $alt europa $alt
europeia $alt europeia $alt
exagero $alt $verb exagero $alt $verb
explore $alt explore $alt
faceta $alt2 faceta $alt2
falangeta $alt2
falangeta $alt2
farofa $alt farofa $alt
farolete $alt2 farolete $alt2
febre $alt febre $alt
fezes $alt fezes $alt
filete $alt2 filete $alt2
?1 fixe fiSy ?1 fixe fiSy
flerte $alt2 $noun
foda $alt2 $verb foda $alt2 $verb
fodo $alt2
fodo $alt2
fogos $alt fogos $alt
foguete $alt2 foguete $alt2
foice $alt2 foice $alt2
fora $alt fora $alt
fora $alt2 $verb fora $alt2 $verb
forca $alt2 forca $alt2
força $alt2 $noun
forças $alt2
força $alt2
força $alt $verb
forço $alt forço $alt
formos $alt2 formos $alt2
forro $alt $verb forro $alt $verb
gelo $alt $verb gelo $alt $verb
genebra $alt genebra $alt
gesso $alt2 gesso $alt2
gloso $alt
gloso $alt
gonorreia $alt gonorreia $alt
gol gow
gol gow
golpe $alt golpe $alt
gorda $alt2 gorda $alt2
gorjeta $alt2 gorjeta $alt2
gosto $alt $verb gosto $alt $verb
gota $alt2 gota $alt2
governo $alt2
governo $alt2
governo $alt $verb governo $alt $verb
gozo $alt2 $noun gozo $alt2 $noun
graveto $alt2 graveto $alt2
interesse $alt $verb interesse $alt $verb
iodo $alt2 iodo $alt2
ioga $alt ioga $alt
jereba $alt
jogo $alt2 jogo $alt2
jogo $alt $verb jogo $alt $verb
jogos $alt jogos $alt
?2 lhe l^y ?2 lhe l^y
lingueta $alt2 lingueta $alt2
lodo $alt2 lodo $alt2
logro $alt
logro $alt
lopes $alt lopes $alt
macete $alt2 macete $alt2
maior $alt maior $alt
maleta $alt2 maleta $alt2
maniçoba $alt maniçoba $alt
marieta $alt2
marieta $alt2
marreta $alt2 marreta $alt2
megera $alt megera $alt
melhor $alt melhor $alt
paexa paeSa paexa paeSa
paella pa'el^& paella pa'el^&
palacete $alt2 palacete $alt2
paleta $alt2
palheta $alt2 palheta $alt2
panfleto $alt2 panfleto $alt2
pangeia $alt pangeia $alt
pantera $alt pantera $alt
papoco $alt2 $noun
parede $alt2 parede $alt2
pastora $alt2 pastora $alt2
peba $alt
pedra $alt pedra $alt
pela $alt $verb pela $alt $verb
pelo $alt2 pelo $alt2
pelo $alt $verb pelo $alt $verb
pereba $alt
peroba $alt peroba $alt
peseta $alt2
peso $alt $verb peso $alt $verb
piloto $alt2 $noun piloto $alt2 $noun
pintora $alt2 pintora $alt2
pior $alt pior $alt
pipoco $alt2 $noun
pirueta $alt2 pirueta $alt2
plaqueta $alt2 plaqueta $alt2
plateia $alt plateia $alt
polca $alt polca $alt
pompeia $alt pompeia $alt
porcos $alt porcos $alt
porque $alt2
porque $alt2
porra $alt2 porra $alt2
porreta $alt2
porrete $alt2 porrete $alt2
porto $alt2 porto $alt2
portos $alt portos $alt
poxa p'oS& poxa p'oS&
primavera $alt primavera $alt
primores $alt2 primores $alt2
proso $alt
proso $alt
prosopopeia $alt prosopopeia $alt
proveta $alt2
quarteto $alt2 quarteto $alt2
queda $alt queda $alt
quede $alt2 quede $alt2
quitinete $alt
quinteto $alt2 quinteto $alt2
ramalhete $alt2
ramalhete $alt2
raposa $alt2 raposa $alt2
recomeço $alt $verb recomeço $alt $verb
reconstroem $alt
recordo $alt recordo $alt
recorto $alt recorto $alt
rede $alt2 rede $alt2
rego $alt2 $noun rego $alt2 $noun
reitora $alt2 reitora $alt2
relevo $alt2 $noun relevo $alt2 $noun
remoem $alt
remoem $alt
remorso $alt remorso $alt
renovo $alt $verb renovo $alt $verb
retorno $alt $verb retorno $alt $verb
reuva x'EUv& reuva x'EUv&
rigores $alt2 rigores $alt2
risoto $alt2
rock $alt rock $alt
roem $alt roem $alt
rola $alt2 $noun rola $alt2 $noun
rolo $alt2 $noun rolo $alt2 $noun
rota $alt2 rota $alt2
rota $alt $noun rota $alt $noun
rubores $alt2
rubores $alt2
rumores $alt2 rumores $alt2
sabonete $alt2 sabonete $alt2
sabores $alt2
sabores $alt2
saibro s'aIbRU saibro s'aIbRU
saleta $alt2 saleta $alt2
sarjeta $alt2 sarjeta $alt2
suborno $alt $verb suborno $alt $verb
sufoco $alt2 $noun sufoco $alt2 $noun
sufocos $alt2 sufocos $alt2
sulfeto $alt2
sulfureto $alt2
super s'Uper super s'Uper
suporto $alt suporto $alt
suor swOr suor swOr
sutiã sutSi'&~N
sutiã sutSi'&~N
tapete $alt2 tapete $alt2
temores $alt2 temores $alt2
tempero $alt2 $noun tempero $alt2 $noun
terrores $alt2 terrores $alt2
teta $alt2 teta $alt2
toga $alt toga $alt
topo $alt $verb
topo $alt2 $noun
torno $alt $verb torno $alt $verb
tornozelo $alt2 tornozelo $alt2
torre $alt2 $noun torre $alt2 $noun
torres $alt2 torres $alt2
torro $alt torro $alt
tortos $alt tortos $alt
toso $alt
transtorno $alt $verb
toso $alt
transtorno $alt $verb
traqueia $alt traqueia $alt
travesso $alt2 travesso $alt2
tremores $alt2 tremores $alt2
tumores $alt2 tumores $alt2
valeta $alt2 valeta $alt2
vanessa $alt2 vanessa $alt2
vareta $alt2
vera $alt vera $alt
verbete $alt2 verbete $alt2
violeta $alt2 violeta $alt2
laptop lEptOp laptop lEptOp
?1 line l'ain ?1 line l'ain
layout l'eI,aUt layout l'eI,aUt
?2 login logiN
?2 logo l'OgU ?2 logo l'OgU
?1 lock l'Ok ?1 lock l'Ok
mail m'eIl mail m'eIl




// common person names // common person names
alan 'al@n
alan 'al@N
louis _^_FR louis _^_FR




?1 cleverson kl'Evyrs&N ?1 cleverson kl'Evyrs&N
?2 cleverson kl'EversoN ?2 cleverson kl'EversoN
?1 elton 'Elt&N ?1 elton 'Elt&N
?2 elton 'EUton
emerson 'emE*@-soN emerson 'emE*@-soN
?1 halison &l'is&N ?1 halison &l'is&N
klein kl'aIn // Very common on southern Brazil. klein kl'aIn // Very common on southern Brazil.

+ 28
- 11
dictsource/pt_rules View File

óCC) a (CA_ & óCC) a (CA_ &
óC) a (CCA_ & óC) a (CCA_ &
úC) a (CA_ & úC) a (CA_ &
?2 ation (_ 'eIS&~N
?2 action (_ 'EkS&~N




.group â .group â
?2 d (i dZ ?2 d (i dZ
?2 d (í dZ ?2 d (í dZ
?2 d (e_ dZ ?2 d (e_ dZ
?2 A) de (o_ dZj




.group e .group e
e (sL02_ E e (sL02_ E


e (ssL04_ E e (ssL04_ E

e (ss_ E // stress and english words
?2 ection (_ 'EkS&~N
e (stL04_ E e (stL04_ E


e (strL04_ E e (strL04_ E
?1 l) e (ta 'E // eg: bicicleta, atleta. ?1 l) e (ta 'E // eg: bicicleta, atleta.


sf) e (ra_ E // esfera, biosfera sf) e (ra_ E // esfera, biosfera
ef) e (tuL02_ e
t) e (tra E t) e (tra E


âC) e (CA_ e âC) e (CA_ e
óC) e (Ca_ e óC) e (Ca_ e
óCC) e (CA_ e óCC) e (CA_ e
úC) e (CA_ e úC) e (CA_ e
úC) el (_ eU


//sort //sort
_d) e (L05_ E _d) e (L05_ E
_corro) e (L07_ e _corro) e (L07_ e
_interromp) e (L07_ e _interromp) e (L07_ e
_troux) e (L07_ E _troux) e (L07_ E
_ens) e (bL03_ E
_amanc) e (bL03_ E
qu) e (brL04_ E qu) e (brL04_ E
_cel) e (brL04_ E _cel) e (brL04_ E
_boch) e (chL04_ e
_ex) e (crL04_ E _ex) e (crL04_ E
_enr) e (dL01_ E _enr) e (dL01_ E
_n) eu (trL03_ 'eU
_v) e (dL03_ E _v) e (dL03_ E
_arr) e (dL03_ E _arr) e (dL03_ E
_depr) e (dL03_ E _depr) e (dL03_ E
_gal) e (gL03_ e _gal) e (gL03_ e
_pel) e (gL03_ e _pel) e (gL03_ e
_n) e (grL03_ e _n) e (grL03_ e
_ch) e (guL02_ e
estr) ei (L04_ EI estr) ei (L04_ EI
_r) e (jL03_ E _r) e (jL03_ E
_inv) e (jL04_ E _inv) e (jL04_ E
?2 el (ton_ 'EU
tr) e (pL04_ E // es- tr) e (pL04_ E // es-
_dec) e (pL04_ E _dec) e (pL04_ E
_in) e (ptL03_ E _in) e (ptL03_ E
ad) e (quL04_ E ad) e (quL04_ E
_imp) e (rL03_ E
_sev) e (rL03_ E _sev) e (rL03_ E
_reit) e (rL03_ E _reit) e (rL03_ E
_sinc) e (rL03_ E _sinc) e (rL03_ E
gen) e (rL04_ E // de- re- gen) e (rL04_ E // de- re-
_alt) e (rL04_ E _alt) e (rL04_ E
_enc) e (rL04_ E _enc) e (rL04_ E
_imp) e (rL04_ E
_min) e (rL04_ E _min) e (rL04_ E
_sug) e (rL04_ E _sug) e (rL04_ E
_sup) e (rL04_ E _sup) e (rL04_ E
_p) e (rdL02_ E _p) e (rdL02_ E
_l) e (rdL03_ E _l) e (rdL03_ E
_h) e (rdL04_ E _h) e (rdL04_ E
_des) e (rdL04_ E
_) e (rgL03_ e _) e (rgL03_ e
_re) e (rgL03_ e _re) e (rgL03_ e
_bez) e (rrL03_ e _bez) e (rrL03_ e
_obsol) e (tL03_ e _obsol) e (tL03_ e
_sol) e (trL03_ E _sol) e (trL03_ E
_pen) e (trL04_ E _pen) e (trL04_ E
_n) eu (trL03_ 'eU
_d) e (vL03_ e _d) e (vL03_ e
scr) e (vL03_ e // e- in- pre- ree- de- scr) e (vL03_ e // e- in- pre- ree- de-
_atr) e (vL03_ e _atr) e (vL03_ e
?1 _) i (ntern 'i //inter ?1 _) i (ntern 'i //inter
?1 @) ing (_ _^_EN ?1 @) ing (_ _^_EN
?1 @) ings (_ _^_EN ?1 @) ings (_ _^_EN
ilton 'iUtoN
?2 il (ton_ 'iU
?2 i (rton_ 'i




.group í .group í
o (s_ =U o (s_ =U
_) o (_C U _) o (_C U
_) o (_A u _) o (_A u

?2 _) os (_ Us
?2 _) os (_A Uz
?2 _) os (_G Uz
ou ow ou ow
oi oI oi oI
oi ($w_alt OI oi ($w_alt OI
o (quL02_ O o (quL02_ O


A_l) o (_ U A_l) o (_ U
p) o (dL04_ O


o (g_ O o (g_ O
o (gs_ O o (gs_ O
?1 interr) o (g u // eg: interrogação ?1 interr) o (g u // eg: interrogação
?1 f) o (rmulá u // eg: formulário, formulários. ?1 f) o (rmulá u // eg: formulário, formulários.
?1 v) o (lt O ?1 v) o (lt O

o (Cuem_ o
o (luem_ o
o (CCuem_ o o (CCuem_ o
êC) o (CA_ o êC) o (CA_ o
êCC) o (CA_ o êCC) o (CA_ o
m) o (lhL04_ O m) o (lhL04_ O
ent) o (pL02_ O ent) o (pL02_ O
_c) o (pL03_ O _c) o (pL03_ O
_t) o (pL04_ O
_ens) o (pL04_ O _ens) o (pL04_ O
_gal) o (pL04_ O _gal) o (pL04_ O
_s) o (prL04_ O _s) o (prL04_ O
_al) o (prL04_ O
_ass) o (prL04_ O
_) o (ptL04_ O _) o (ptL04_ O
p) o (rL02_ o p) o (rL02_ o
_dev) o (rL02_ O _dev) o (rL02_ O
_inod) o (rL03_ O _inod) o (rL03_ O
_inson) o (rL03_ O _inson) o (rL03_ O
_comem) o (rL04 O _comem) o (rL04 O
_enam) o (rL04_ O
_aprim) o (rL04_ O _aprim) o (rL04_ O
_remem) o (rL04_ O _remem) o (rL04_ O
f) o (rmL03_ O f) o (rmL03_ O
c) o (rrL01_ o // incorra, corra, etc. c) o (rrL01_ o // incorra, corra, etc.
_m) o (rrL01_ o _m) o (rrL01_ o
p) o (rtL03_ O // im- trans- de- re- com- a- ex- 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 _r) o (snL04_ O
_c) o (spL02_ O _c) o (spL02_ O
_enr) o (squL02_ O _enr) o (squL02_ O
p) ostos (_ Ost=Us# // dispostos etc. p) ostos (_ Ost=Us# // dispostos etc.
_gar) o (tL03_ o _gar) o (tL03_ o
_mar) o (tL03_ O
_mar) o (tL03_ o
_escr) o (tL03_ o _escr) o (tL03_ o
_ch) o (vL01_ o _ch) o (vL01_ o
pr) o (vL03_ O pr) o (vL03_ O
_r) o (çL03_ O _r) o (çL03_ O
tr) o (çL03_ O // des- tr) o (çL03_ O // des-
_ad) o (çL03_ O _ad) o (çL03_ O
_emp) o (çL03_ O
_end) o (çL03_ O _end) o (çL03_ O
//endsort //endsort


?2 t (e_ tS ?2 t (e_ tS
?1 th _^_EN ?1 th _^_EN
?1 tion (_ _^_EN ?1 tion (_ _^_EN
?2 A) te (o_ tSj




.group u .group u

+ 16
- 16
dictsource/tr_list View File

//_lig //_lig
_acu vURg'UimI _acu vURg'UimI
_ac2 tS'IftvURg'UimI _ac2 tS'IftvURg'UimI
_brv k@s'altmaimI
_brv k@s'aLtmaimI
_ced h'aRf _ced h'aRf
_cir Sapk'a _cir Sapk'a
_dia Umla'Ut
_dia UmLa'Ut
_dot YstnOkt'a _dot YstnOkt'a
_grv 'aksanimI _grv 'aksanimI
_hac t'ERsSapk'a _hac t'ERsSapk'a
_mcn uz'atmaimI _mcn uz'atmaimI
_ogo ogon'Ek _ogo ogon'Ek
_rng halk'a
_rng haLk'a
//_stk //_stk
_tld tIld'E _tld tIld'E


// symbols // symbols
_. nOkt'a _. nOkt'a
_, vIRJ'Yl _, vIRJ'Yl
_; nOktal'@vIRJ'Yl
_; nOktaL'@vIRJ'Yl
_: ik'InOkt'a _: ik'InOkt'a
_… 'YtSnOkt'a _… 'YtSnOkt'a
_? soR'UiSa*et,I _? soR'UiSa*et,I
_^ IndZ'EltmEiSa*et'I _^ IndZ'EltmEiSa*et'I
& _!v'E & _!v'E
_& v'EiSa*et'I _& v'EiSa*et'I
_@ kUjRUkl'U'a
_@ kUjRUkL'U'a
_\ t'ERs||ej,IktSIzg'I _\ t'ERs||ej,IktSIzg'I
_( atSpa*ant'Ez _( atSpa*ant'Ez
_) kapapa*ant'Ez _) kapapa*ant'Ez
§ tSEnJ'El § tSEnJ'El
° de*edZ'E ° de*edZ'E
_# dij'Ez _# dij'Ez
_~ jaklaS'@k
__ ,alttSIzg'I
* j'@ld@z $max3
_~ jakLaS'@k
__ ,aLttSIzg'I
* j'@Ld@z $max3
= ESIt $max3 = ESIt $max3
% jYzdE $max3 % jYzdE $max3
+ aRt@ $max3 + aRt@ $max3
_3 'ytS _3 'ytS
_4 d'WRt _4 d'WRt
_5 b'ES _5 b'ES
_6 alt'@
_6 aLt'@
_7 jed'i _7 jed'i
_8 sec'Iz _8 sec'Iz
_9 d'okuz _9 d'okuz
_3X ot'uz _3X ot'uz
_4X k'@Rk _4X k'@Rk
_5X ell'i _5X ell'i
_6X altm'@S
_6X aLtm'@S
_7X jetm'iS _7X jetm'iS
_8X seks'En _8X seks'En
_9X doks'an _9X doks'an
Edirne $2 Edirne $2
Hakkari $1 Hakkari $1
Hatay $1 Hatay $1
Iğdır $1
İngiltere $3
İskenderun $2
ığdır $1
ingiltere $3
iskenderun $2
Isparta $2 Isparta $2
İstanbul $2
İsveç $1
İzmir $1
istanbul $2
isveç $1
izmir $1
Kastamonu $1 Kastamonu $1
Kayseri $1 Kayseri $1
Kilis $1 Kilis $1

+ 37
- 23
dictsource/tr_rules View File

// ?1 mbrola voices // ?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 .replace
` ' ` '
@) acak (_S4 adZak @) acak (_S4 adZak
@) acakmış (_S7 adZakm%@S @) acakmış (_S7 adZakm%@S
@) ayım (_S4 aj@m @) ayım (_S4 aj@m
@) alım (_S4 al@m
@) alım (_S4 aL@m
@) asın (_S4 as@n @) asın (_S4 as@n


@) avru (pa avr'u @) avru (pa avr'u


.group c .group c
c dZ c dZ
ce (_S2 dZ%E


.group ç .group ç
ç tS ç tS
çe (_S2 tS%E


.group d .group d
d d d d
dın (_S3 d@n dın (_S3 d@n
dınız (_S5 d@n@z dınız (_S5 d@n@z
dı (_S2 d@ dı (_S2 d@
dılar (_S5 d@laR
dılar (_S5 d@LaR
dum (_S3 dum dum (_S3 dum
duk (_S3 duk duk (_S3 duk
dun (_S3 dun dun (_S3 dun
dunuz (_S5 dunuz dunuz (_S5 dunuz
du (_S2 du du (_S2 du
dular (_S5 dular
dular (_S5 duLar
düm (_S3 dym düm (_S3 dym
dük (_S3 dyk dük (_S3 dyk
dün (_S3 dyn dün (_S3 dyn


.group g .group g
g g g g
g (i J
g (e J
g (ü J
g (ö J
g (L03 J
L03) g (K J



.group ğ .group ğ
ğ Q ğ Q
A) ğ :||
?1 A) ğ G // mbrola
A) ğ :
?1 A) ğ (+ G // mbrola

a) ğa :
o) ğo :
u) ğu :
ö) ğö :
ü) ğü :
i) ğ j i) ğ j
e) ğ j e) ğ j


.group h .group h
h h h h


@) ıyor (_S4 @j%oR @) ıyor (_S4 @j%oR
@) ın (_S2 @n @) ın (_S2 @n


.group î
î @


.group j .group j
j Z j Z


.group k .group k
k k k k
k (i c
k (e c
k (ü c
k (ö c
k (L03 c
L03) k (K c


ken (_S3 %cen ken (_S3 %cen




.group l .group l
l l l l
l (L02 L
L02) l (K L


la (_S2 %la
la (_S2 %La
le (_S2 %le le (_S2 %le


lar (_S3 laR
lar (_S3 LaR
ler (_S3 leR ler (_S3 leR


li (_S2 li li (_S2 li
lı (_S2 l@
lu (_S2 lu
lı (_S2 L@
lu (_S2 Lu
lü (_S2 ly lü (_S2 ly


lik (_S3 lik lik (_S3 lik
lık (_S3 l@k
luk (_S3 luk
lık (_S3 L@k
luk (_S3 Luk
lük (_S3 lyk lük (_S3 lyk




yunuz (_S5 %junuz yunuz (_S5 %junuz
yünüz (_S5 %jynyz yünüz (_S5 %jynyz


yla (_S3 %jla
yla (_S3 %jLa
yle (_S3 %jle yle (_S3 %jle


yacak (_S5 jadZak yacak (_S5 jadZak
yecekmiş (_S8 jedZekm%iS yecekmiş (_S8 jedZekm%iS


yayım (_S5 jaj@m yayım (_S5 jaj@m
yalım (_S5 jal@m
yalım (_S5 jaL@m
yasın (_S5 jas@n yasın (_S5 jas@n
yeyim (_S5 jejim yeyim (_S5 jejim
yelim (_S5 jelim yelim (_S5 jelim

+ 404
- 273
dictsource/vi_rules
File diff suppressed because it is too large
View File


+ 6
- 0
espeak-data/voices/asia/ko View File

name Korean
language ko
gender male
pitch 80 118
intonation 2


+ 17
- 0
espeak-data/voices/asia/ms View File

// Last updated: 14 October 2010, Jason Ong ([email protected])
name malay
language ms
gender male
phonemes id

translator id

stressLength 160 200 180 180 0 0 220 240
stressAmp 16 18 18 18 0 0 22 21
intonation 3 // Less intonation, and comma does not raise the pitch.

// Nuance - Peninsula Malaysia
// replace 3 a @ // change 'saya' to 'saye'
// (only the last phoneme of a word, only in unstressed syllables)
consonants 80 80

+ 12
- 0
espeak-data/voices/asia/vi-sgn View File

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

+ 37
- 16
phsource/compile_report View File



90 phoneme tables
91 phoneme tables
new total new total
base 109 109 base 109 109
consonants 11 119 consonants 11 119
bg 14 124 bg 14 124
it 19 129 it 19 129
la 21 126 la 21 126
es 15 125
es 16 125
es-la 1 125 es-la 1 125
ca 11 127 ca 11 127
an 4 125 an 4 125
sv 22 129 sv 22 129
no 28 134 no 28 134
is 42 141 is 42 141
vi 53 147
vi-hue 8 147
vi 57 150
vi-hue 15 150
vi-sgn 17 150
zhy 41 138 zhy 41 138
zh 64 155 zh 64 155
sw 9 110 sw 9 110
tr 19 128
tr 20 129
ku 18 129 ku 18 129
id 16 128 id 16 128
sq 33 127 sq 33 127
envelope/i_risefall [11] zh envelope/i_risefall [11] zh
envelope/i_risefall2 [+2] rw envelope/i_risefall2 [+2] rw
envelope/p_214 [5] vi envelope/p_214 [5] vi
[5] vi-hue
[214] zh [214] zh
envelope/p_512 [+] pa envelope/p_512 [+] pa
[6] vi [6] vi
[4] vi-hue [4] vi-hue
[5] vi-hue
[6] vi-hue [6] vi-hue
[6] vi-sgn
envelope/p_fall [2] vi envelope/p_fall [2] vi
[7] vi [7] vi
[2] vi-hue [2] vi-hue
[2] vi-sgn
[7] vi-sgn
[4] zhy [4] zhy
[7] zhy [7] zhy
[21] zh [21] zh
[53] zh [53] zh
[+] rw [+] rw
envelope/p_fallrise [4] vi envelope/p_fallrise [4] vi
[3] vi-hue
envelope/p_level [1] vi envelope/p_level [1] vi
[1] vi-hue [1] vi-hue
[7] vi-hue [7] vi-hue
[1] vi-sgn
[1] zhy [1] zhy
[3] zhy [3] zhy
[6] zhy [6] zhy
[55] zh [55] zh
envelope/p_rise [3] vi envelope/p_rise [3] vi
[3] vi-hue
[3] vi-sgn
[4] vi-sgn
[5] vi-sgn
[2] zhy [2] zhy
[5] zhy [5] zhy
[44] zh [44] zh
[35] zh [35] zh
envelope/vi_5amp [5] vi envelope/vi_5amp [5] vi
[5] vi-hue
envelope/vi_6amp [6] vi envelope/vi_6amp [6] vi
[2] vi-hue [2] vi-hue
[5] vi-hue
[6] vi-hue [6] vi-hue
g2/xg [g#] hi g2/xg [g#] hi
g/g [g] base g/g [g] base
[n#] is [n#] is
[n] zh [n] zh
n/n#_ [n#] is n/n#_ [n#] is
[n] vi
n^/n^a [n^] base n^/n^a [n^] base
[n;] lt [n;] lt
[n#] ru [n#] ru
[n] zh [n] zh
n/_nr [n.] base n/_nr [n.] base
n/nr_ [n.] base n/nr_ [n.] base
[n] vi
n/nr@ [n.] base n/nr@ [n.] base
n/nra [n.] base n/nra [n.] base
n/nre [n.] base n/nre [n.] base
[t] hr [t] hr
ustop/t_dnt2 [t] base2 ustop/t_dnt2 [t] base2
[d] kn [d] kn
[t] es
ustop/t_hi [t[] base ustop/t_hi [t[] base
[t] et [t] et
[t^] et [t^] et
[t] zh [t] zh
vdiph/0i [OI] pt vdiph/0i [OI] pt
[OI] grc [OI] grc
[OI] vi
vdiph/0i_2 [OI] en-sc vdiph/0i_2 [OI] en-sc
[OI] en-wi [OI] en-wi
[AI] no [AI] no
[@I] cy [@I] cy
[@Y] cy [@Y] cy
[@] am [@] am
vdiph/&i_2 [aI] vi
vdiph/i@_2 [e@] af vdiph/i@_2 [e@] af
[e@] tn [e@] tn
vdiph/@i_3 [eI] en-wm vdiph/@i_3 [eI] en-wm
[@I] ro [@I] ro
[@-] vi
[ai] zhy [ai] zhy
vdiph/ii [iI] ro vdiph/ii [iI] ro
vdiph/i#i [yI] ro vdiph/i#i [yI] ro
[oi] mt [oi] mt
vdiph/ooi_2 [OI] af vdiph/ooi_2 [OI] af
[oI] eo [oI] eo
[Oi] vi-hue
[Oi] vi-sgn
vdiph/ooi_3 [OI] en-us vdiph/ooi_3 [OI] en-us
[OI] en-rp [OI] en-rp
[aI] en-wm [aI] en-wm
[OI] vi
[Oi] vi
vdiph/ooi_4 [OI] sq vdiph/ooi_4 [OI] sq
vdiph/oou [oU] cs vdiph/oou [oU] cs
[OU] grc [OU] grc
vdiph/Vu_2 [oU] en-wm vdiph/Vu_2 [oU] en-wm
vdiph/&y [&y] fi vdiph/&y [&y] fi
[Wy] nl [Wy] nl
[aI] vi
vdiph/yi [yi] fi vdiph/yi [yi] fi
[yi] et [yi] et
[yI] grc [yI] grc
vdiph/y#y_2 [Yy] af vdiph/y#y_2 [Yy] af
[eoi] zhy [eoi] zhy
vdiph/y#y_3 [Y:] nl vdiph/y#y_3 [Y:] nl
vietnam/a [a:] vi
vietnam/a [a:] vi-sgn
vietnam/_c [kh] vi vietnam/_c [kh] vi
vietnam/ch [c] vi vietnam/ch [c] vi
vietnam/dd [d] vi vietnam/dd [d] vi
vnasal/i_n2 [i~] hi vnasal/i_n2 [i~] hi
vnasal/&_n [a~] hi vnasal/&_n [a~] hi
vnasal/oi_n [oI~] pt vnasal/oi_n [oI~] pt
[O-] vi
vnasal/o_n [o~] hi vnasal/o_n [o~] hi
[o~] pt [o~] pt
[O~] ht [O~] ht
vnasal/u_n [U~] hi vnasal/u_n [U~] hi
[u~] hi [u~] hi
[u~] pt [u~] pt
[u] vi
[u] zh [u] zh
vnasal/V_n [V~] hi vnasal/V_n [V~] hi
vnasal/W_n [E~] fr vnasal/W_n [E~] fr
[O] hi [O] hi
[O] pt [O] pt
[O] grc [O] grc
[O] vi-hue
[O] vi-sgn
vowel/0_2 [0] en-n vowel/0_2 [0] en-n
[O] pt-pt [O] pt-pt
[O] vi
[o] sw [o] sw
[O] sl [O] sl
[o] nso [o] nso
[a] ht [a] ht
vowel/a_8 [a] en vowel/a_8 [a] en
[a] sk [a] sk
[a:] vi
[A] da [A] da
[?A] da [?A] da
vowel/aa [a:] et vowel/aa [a:] et
[A] sq [A] sq
[A] prs [A] prs
vowel/aa_4 [A:] sv vowel/aa_4 [A:] sv
[O] vi
vowel/aa_5 [A:] en-n vowel/aa_5 [A:] en-n
[A@] en-n [A@] en-n
[A:] en-wm [A:] en-wm
[E] ko [E] ko
vowel/ee_6 [&] sk vowel/ee_6 [&] sk
[E3] sv [E3] sv
[&] tr
[E] ku [E] ku
[&] si [&] si
[&:] si [&:] si
[o] pt-pt [o] pt-pt
[o] grc [o] grc
[o:] sv [o:] sv
[o] vi
[o] id [o] id
[o] hy [o] hy
[o] rw [o] rw
[o:] hu [o:] hu
[o:] la [o:] la
[o:] no [o:] no
[o] vi
[o] da [o] da
[?o] da [?o] da
vowel/o-_2 [V] en-n vowel/o-_2 [V] en-n
vowel/o-_3 [U] en-rp vowel/o-_3 [U] en-rp
vowel/o-_4 [o] ro vowel/o-_4 [o] ro
[o] am [o] am
vowel/o_5 [O] da
vowel/o_5 [o] vi-sgn
[O] da
[?O] da [?O] da
vowel/o_6 [O] nl vowel/o_6 [O] nl
[O:] nl [O:] nl
[u] am [u] am
[u] wo [u] wo
vowel/u#_2 [u-] sv vowel/u#_2 [u-] sv
vowel/u_3 [u-] vi
vowel/u#_3 [U] ta vowel/u#_3 [U] ta
[U:] ta [U:] ta
vowel/u#_4 [U] en-sc vowel/u#_4 [U] en-sc
[u:] en-sc [u:] en-sc
[y] ml [y] ml
[y] vi-sgn
vowel/u_5 [U1] et vowel/u_5 [U1] et
[u] vi
[u] sw [u] sw
[u] nso [u] nso
[u] az [u] az

+ 23
- 8
phsource/ph_spanish View File



phoneme a phoneme a
vowel starttype #a endtype #a vowel starttype #a endtype #a
length 180
length 200
FMT(vowel/a_4) FMT(vowel/a_4)
endphoneme endphoneme


phoneme e phoneme e
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 190
length 200
FMT(vowel/e_mid2) FMT(vowel/e_mid2)
endphoneme endphoneme


phoneme E phoneme E
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 190
length 200
FMT(vowel/e_mid2) FMT(vowel/e_mid2)
endphoneme endphoneme


phoneme i phoneme i
vowel starttype #i endtype #i vowel starttype #i endtype #i
length 170
length 190
IfNextVowelAppend(;) IfNextVowelAppend(;)
FMT(vowel/i) FMT(vowel/i)
endphoneme endphoneme


phoneme o phoneme o
vowel starttype #o endtype #o vowel starttype #o endtype #o
length 190
length 200
FMT(vowel/oo) FMT(vowel/oo)
endphoneme endphoneme


phoneme O phoneme O
vowel starttype #o endtype #o vowel starttype #o endtype #o
length 190
length 200
FMT(vowel/oo) FMT(vowel/oo)
endphoneme endphoneme


phoneme u phoneme u
vowel starttype #u endtype #u vowel starttype #u endtype #u
length 180
length 200
FMT(vowel/u_bck2) FMT(vowel/u_bck2)
endphoneme endphoneme


voicingswitch T voicingswitch T
CALL base/D CALL base/D
IF nextPh(isPause2) THEN 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 ENDIF
WAV(ustop/t_dnt2, 70)

endphoneme endphoneme





phoneme s phoneme s
vls alv frc sibilant vls alv frc sibilant
lengthmod 3 lengthmod 3

+ 37
- 17
phsource/ph_turkish View File



phoneme i phoneme i
vowel starttype #i endtype #i vowel starttype #i endtype #i
length 150
length 180
IF thisPh(isTranslationGiven) THEN IF thisPh(isTranslationGiven) THEN
// don't reduce the vowel if phonemes are explicitly given // don't reduce the vowel if phonemes are explicitly given
ELSE ELSE


phoneme I phoneme I
vowel starttype #i endtype #i vowel starttype #i endtype #i
length 150
length 180
FMT(vowel/ii_5) FMT(vowel/ii_5)
endphoneme endphoneme




phoneme y phoneme y
vowel starttype #u endtype #u vowel starttype #u endtype #u
length 155
length 180
IF thisPh(isTranslationGiven) THEN IF thisPh(isTranslationGiven) THEN
// don't reduce the vowel if phonemes are explicitly given // don't reduce the vowel if phonemes are explicitly given
ELSE ELSE


phoneme Y phoneme Y
vowel starttype #u endtype #u vowel starttype #u endtype #u
length 155
length 180
FMT(vowel/u#) FMT(vowel/u#)
endphoneme endphoneme




phoneme e phoneme e
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 180
length 200
IF thisPh(isTranslationGiven) THEN IF thisPh(isTranslationGiven) THEN
// don't reduce the vowel if phonemes are explicitly given // don't reduce the vowel if phonemes are explicitly given
ELSE 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 IF thisPh(isFinalVowel) THEN
ChangePhoneme(E) ChangePhoneme(E)
ENDIF ENDIF


phoneme E phoneme E
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 180
length 200
FMT(vowel/e_mid) FMT(vowel/e_mid)
endphoneme endphoneme


phoneme &
vowel starttype #a endtype #a
length 200
FMT(vowel/ee_6)
endphoneme



phoneme W phoneme W
vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
length 180
length 200
FMT(vowel/y#) FMT(vowel/y#)
endphoneme endphoneme




phoneme a phoneme a
vowel starttype #a endtype #a vowel starttype #a endtype #a
length 190
length 200
FMT(vowel/a#_4) FMT(vowel/a#_4)
endphoneme endphoneme




phoneme u phoneme u
vowel starttype #u endtype #u vowel starttype #u endtype #u
length 150
length 180
IF thisPh(isTranslationGiven) THEN IF thisPh(isTranslationGiven) THEN
// don't reduce the vowel if phonemes are explicitly given // don't reduce the vowel if phonemes are explicitly given
ELSE ELSE


phoneme U phoneme U
vowel starttype #u endtype #u vowel starttype #u endtype #u
length 150
length 180
FMT(vowel/uu_2) FMT(vowel/uu_2)
endphoneme endphoneme


phoneme @ phoneme @
vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
ipa ɯ ipa ɯ
length 150
length 180
FMT(vowel/u#_7) FMT(vowel/u#_7)
endphoneme endphoneme




phoneme o phoneme o
vowel starttype #o endtype #o vowel starttype #o endtype #o
length 190
length 200
IF thisPh(isTranslationGiven) THEN IF thisPh(isTranslationGiven) THEN
// don't reduce the vowel if phonemes are explicitly given // don't reduce the vowel if phonemes are explicitly given
ELSE ELSE


phoneme O phoneme O
vowel starttype #o endtype #o vowel starttype #o endtype #o
length 190
length 200
FMT(vowel/oo) FMT(vowel/oo)
endphoneme endphoneme


endphoneme endphoneme




phoneme l
import_phoneme en/l
endphoneme

phoneme G phoneme G
import_phoneme en/r/ import_phoneme en/r/
lengthmod 7 lengthmod 7
endphoneme 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
phsource/ph_vietnam View File



phoneme 3 // sắc Tone(rising phoneme 3 // sắc Tone(rising
stress stress
Tone(25, 50, envelope/p_rise, NULL) // 25
Tone(30, 60, envelope/p_rise, NULL) // 25 50
endphoneme endphoneme




phoneme 4 // hỏi Tone(curve (dipping rising) phoneme 4 // hỏi Tone(curve (dipping rising)
stress stress
Tone(30, 5, envelope/p_fallrise, NULL)
Tone(40, 5, envelope/p_fallrise, NULL) //30
endphoneme endphoneme






phoneme a phoneme a
vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
length 120
length 140
FMT(vowel/a_6) //a_4) FMT(vowel/a_6) //a_4)
endphoneme endphoneme


phoneme a: phoneme a:
vowel starttype #a endtype #a vowel starttype #a endtype #a
length 200 //280
FMT(vietnam/a) //FMT(vowel/a_6)
length 240 //280
FMT(vowel/a_8)
endphoneme endphoneme




phoneme E phoneme E
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 200
length 240
FMT(vowel/ee_3) FMT(vowel/ee_3)
endphoneme endphoneme


phoneme e phoneme e
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 200
length 140
FMT(vowel/e) FMT(vowel/e)
endphoneme endphoneme




phoneme i phoneme i
vowel starttype #i endtype #i vowel starttype #i endtype #i
length 190
length 240
IfNextVowelAppend(;) IfNextVowelAppend(;)
IF prevPhW(w) THEN IF prevPhW(w) THEN
VowelStart(w/wi) VowelStart(w/wi)
ELSE ELSE
length 200 length 200
ENDIF ENDIF
FMT(vowel/aa_4)
FMT(vowel/0_2) //aa_4)
endphoneme endphoneme


phoneme o phoneme o
ELSE ELSE
length 200 length 200
ENDIF ENDIF
FMT(vowel/o_2)
FMT(vowel/o) // o_2)
endphoneme endphoneme




IF nextPh(kh) OR nextPh(N) THEN // hear as ung sound IF nextPh(kh) OR nextPh(N) THEN // hear as ung sound
length 120 length 120
ELSE ELSE
length 200
length 240
ENDIF ENDIF
FMT(vnasal/u_n) //vowel/u_7)
FMT(vowel/u_5)
endphoneme endphoneme


phoneme y phoneme y
IF nextPh(kh) OR nextPh(N) THEN IF nextPh(kh) OR nextPh(N) THEN
length 120 length 120
ELSE ELSE
length 200
length 180
ENDIF ENDIF
FMT(vowel/u#_5) FMT(vowel/u#_5)
endphoneme endphoneme


phoneme @ phoneme @
vowel starttype #@ endtype #a 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 length 120
ELSE ELSE
length 170
length 200
ENDIF ENDIF
FMT(vowel/V) //vowel/@_2) FMT(vowel/V) //vowel/@_2)
endphoneme endphoneme


phoneme @: phoneme @:
vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
length 280
length 200
FMT(vowel/@_2) FMT(vowel/@_2)
endphoneme endphoneme




phoneme aI phoneme aI
vowel starttype #a endtype #i vowel starttype #a endtype #i
length 200 //250
FMT(vdiph/&y)
length 140 //250
FMT(vdiph/&i_2)
endphoneme endphoneme






phoneme eI phoneme eI
vowel starttype #e endtype #i vowel starttype #e endtype #i
length 200
length 140
FMT(vdiph/ei) FMT(vdiph/ei)
endphoneme endphoneme




phoneme EI phoneme EI
vowel starttype #e endtype #i vowel starttype #e endtype #i
length 200
length 140
FMT(vdiph/eei) FMT(vdiph/eei)
endphoneme endphoneme


phoneme OI phoneme OI
vowel starttype #o endtype #i vowel starttype #o endtype #i
length 200 length 200
FMT(vdiph/0i)
FMT(vdiph/ooi_3)
endphoneme endphoneme






phoneme aU phoneme aU
vowel starttype #a endtype #u vowel starttype #a endtype #u
length 210
length 200
FMT(vdiph/aau_4) FMT(vdiph/aau_4)
endphoneme endphoneme




phoneme a:U phoneme a:U
vowel starttype #a endtype #u vowel starttype #a endtype #u
length 230 //270
length 200 //270
FMT(vdiph/au) FMT(vdiph/au)
endphoneme endphoneme




phoneme iU phoneme iU
vowel starttype #i endtype #u vowel starttype #i endtype #u
length 200
length 140
FMT(vdiph2/iu) FMT(vdiph2/iu)
endphoneme endphoneme


phoneme @U phoneme @U
vowel starttype #@ endtype #u vowel starttype #@ endtype #u
length 200
length 140
FMT(vdiph/@u_3) FMT(vdiph/@u_3)
endphoneme endphoneme


phoneme @:U phoneme @:U
vowel starttype #@ endtype #u vowel starttype #@ endtype #u
length 270
length 140
FMT(vdiph/@u) FMT(vdiph/@u)
endphoneme endphoneme




phoneme i@ phoneme i@
vowel starttype #i endtype #@ vowel starttype #i endtype #@
length 240
length 140
FMT(vdiph2/ii@_3) FMT(vdiph2/ii@_3)
endphoneme endphoneme


phoneme y@ phoneme y@
vowel starttype #i endtype #@ vowel starttype #i endtype #@
length 200
length 140
FMT(vdiph2/y-y#) FMT(vdiph2/y-y#)
endphoneme endphoneme


phoneme u@ phoneme u@
vowel starttype #u endtype #@ vowel starttype #u endtype #@
length 150 //200
length 100 //200
FMT(vdiph2/uu@) FMT(vdiph2/uu@)
endphoneme endphoneme




phoneme o# // ông phoneme o# // ông
vowel starttype #o endtype #o vowel starttype #o endtype #o
length 200
length 140
FMT(vnasal/a#u_n) FMT(vnasal/a#u_n)
endphoneme endphoneme


phoneme O# // ong phoneme O# // ong
vowel starttype #o endtype #o vowel starttype #o endtype #o
length 200
length 140
FMT(vnasal/&u_n) FMT(vnasal/&u_n)
endphoneme endphoneme




phoneme o@ phoneme o@
vowel starttype #o endtype #o vowel starttype #o endtype #o
length 160
length 140
FMT(vdiph2/oa) FMT(vdiph2/oa)
endphoneme endphoneme


phoneme o& phoneme o&
vowel starttype #o endtype #o vowel starttype #o endtype #o
length 160
length 140
FMT(vietnam/oe) FMT(vietnam/oe)
endphoneme endphoneme


phoneme iE // iê : viết, giệc phoneme iE // iê : viết, giệc
vowel starttype #i endtype #e vowel starttype #i endtype #e
length 190
length 140
FMT(vietnam/ie_2) FMT(vietnam/ie_2)
endphoneme 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 phoneme kh
vls vel frc vls vel frc
lengthmod 3 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 Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20
WAV(vietnam/_c,5) //ufric/x, 50) WAV(vietnam/_c,5) //ufric/x, 50)
endphoneme endphoneme


phoneme l phoneme l
liquid liquid
lengthmod 7
Vowelin f1=0 f2=1700 -300 300 f3=-100 80 len=30
//lengthmod 7
//IF nextPh(isNotVowel) THEN //IF nextPh(isNotVowel) THEN
// ChangePhoneme(l/2) // ChangePhoneme(l/2)
//ENDIF //ENDIF

//CALL vowelstart_l //CALL vowelstart_l


FMT(l/l_vi) FMT(l/l_vi)
vls alv stop vls alv stop
//voicingswitch d //voicingswitch d
lengthmod 2 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 Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20


WAV(vietnam/th, 50) WAV(vietnam/th, 50)
vls pla afr sibilant vls pla afr sibilant
//voicingswitch dZ //voicingswitch dZ
lengthmod 2 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) WAV(vietnam/tr,10)


phoneme d phoneme d
vcd alv stop 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) WAV(vietnam/dd)
endphoneme endphoneme
vls pal stop palatal vls pal stop palatal
//voicingswitch J //voicingswitch J
lengthmod 2 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) WAV(vietnam/ch,5)


phoneme n phoneme n
vcd alv nasal 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 lengthmod 4
FMT(n/n#_)
length 75
FMT(n/nr_)
endphoneme endphoneme


phoneme t[ // dental variant of /t/ phoneme t[ // dental variant of /t/
vls dnt stop vls dnt stop
voicingswitch d[ voicingswitch d[
lengthmod 2 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 IF nextPh(isPause2) THEN
WAV(ustop/t_unasp2, 5) WAV(ustop/t_unasp2, 5)

+ 42
- 5
phsource/ph_vietnam_hue View File



phoneme 1 // ngang tone: level phoneme 1 // ngang tone: level
stress stress
Tone(30, 2, envelope/p_level, NULL) // similar Hue dialect tone
Tone(40, 5, envelope/p_level, NULL) // similar Hue dialect tone
endphoneme endphoneme




phoneme 2 // huyền tone: low falling phoneme 2 // huyền tone: low falling
stress 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 endphoneme




phoneme 3 // sắc Tone(rising phoneme 3 // sắc Tone(rising
stress stress
Tone(2, 10, envelope/p_rise, NULL) // 25 50 45 75
Tone(2, 10, envelope/p_fallrise, NULL) // 2 10
endphoneme endphoneme




phoneme 4 // hỏi Tone(curve (dipping rising) phoneme 4 // hỏi Tone(curve (dipping rising)
stress 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 endphoneme




phoneme 5 // ngã tone: broken (creaking rising) phoneme 5 // ngã tone: broken (creaking rising)
stress 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 endphoneme




Tone(5, 40, envelope/p_level, NULL) //Tone(99, 50, envelope/p_fall, NULL) // 40 20 Tone(5, 40, envelope/p_level, NULL) //Tone(99, 50, envelope/p_fall, NULL) // 40 20
endphoneme 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
- 0
phsource/phonemes View File

phonemetable vi-hue vi phonemetable vi-hue vi
include ph_vietnam_hue include ph_vietnam_hue


phonemetable vi-sgn vi
include ph_vietnam_sgn

phonemetable zhy base phonemetable zhy base
include ph_zh_yue include ph_zh_yue



BIN
phsource/ustop/t_hi.wav View File


BIN
phsource/vdiph/ooi View File


BIN
phsource/vdiph/ooi_2 View File


BIN
phsource/vdiph/ooi_3 View File


BIN
phsource/vdiph/ooi_4 View File


BIN
phsource/vowel/a_4 View File


BIN
phsource/vowel/u#_5 View File


BIN
phsource/vowel/u#_7 View File


+ 7
- 1
src/dictionary.cpp View File



if(count==0) if(count==0)
c1 = c; c1 = c;
count++;

if((c == '\'') && (tr->langopts.param[LOPT_UNPRONOUNCABLE] == 3))
{
// don't count apostrophe
}
else
count++;


if(IsVowel(tr, c)) if(IsVowel(tr, c))
{ {

+ 70
- 2
src/extras.cpp View File



#endif #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."; const char* text1 = "Hello world. Testing.";
espeak_SetSynthCallback(TestSynthCallback); espeak_SetSynthCallback(TestSynthCallback);
espeak_SetUriCallback(TestUriCallback); 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(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));
// espeak_Synth(text1, strlen(text1)+1, 0, POS_CHARACTER, 0, espeakSSML|espeakCHARS_UTF8, &unique_identifier, (void *)(user_data+1));


espeak_SetParameter(espeakPUNCTUATION, 1, 0); espeak_SetParameter(espeakPUNCTUATION, 1, 0);
espeak_Synchronize(); espeak_Synchronize();

+ 1
- 1
src/menus.cpp View File

option_menu = new wxMenu; option_menu = new wxMenu;
option_menu->Append(MENU_PATHS, _("Set &paths"), paths_menu); option_menu->Append(MENU_PATHS, _("Set &paths"), paths_menu);
option_menu->Append(MENU_OPT_SPEED, _("Speed...")); 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")); option_menu->Append(MENU_OPT_SPELL, _("Speak character names"));


// TOOLS // TOOLS

+ 119
- 49
src/readclause.cpp View File

0, // voice type 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 // 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) // use ctype.h functions for Latin1 (character < 0x100)
int iswalpha(int c) int iswalpha(int c)
{ {
if(c < 0x100)
if(c < 0x80)
return(isalpha(c)); return(isalpha(c));
if((c > 0x3040) && (c <= 0xa700)) if((c > 0x3040) && (c <= 0xa700))
return(1); // japanese, chinese characters return(1); // japanese, chinese characters
if(c > MAX_WALPHA) if(c > MAX_WALPHA)
return(0); return(0);
return(walpha_tab[c-0x100]);
return(walpha_tab[c-0x80]);
} }


int iswdigit(int c) int iswdigit(int c)
{ {
if(c < 0x100)
if(c < 0x80)
return(isdigit(c)); return(isdigit(c));
return(0); return(0);
} }
int towlower(int c) int towlower(int c)
{ {
int x; int x;
if(c < 0x100)
int ix;

if(c < 0x80)
return(tolower(c)); 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 return(c + x); // convert to lower case
} }


int towupper(int c) 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 return(c); // no
} }


int iswupper(int c) int iswupper(int c)
{ {
int x; int x;
if(c < 0x100)
if(c < 0x80)
return(isupper(c)); 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(0);
return(1); return(1);
} }


int iswlower(int c) int iswlower(int c)
{ {
if(c < 0x100)
if(c < 0x80)
return(islower(c)); return(islower(c));
if((c > MAX_WALPHA) || (walpha_tab[c-0x100] != 0xff))
if((c > MAX_WALPHA) || (walpha_tab[c-0x80] != 0xff))
return(0); return(0);
return(1); return(1);
} }


int iswspace(int c) int iswspace(int c)
{ {
if(c < 0x100)
if(c < 0x80)
return(isspace(c)); return(isspace(c));
if(c == 0xa0)
return(1);
return(0); return(0);
} }


} }
#endif #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 towlower2(unsigned int c)
{ {
int x;
int ix;

// check for non-standard upper to lower case conversions // check for non-standard upper to lower case conversions
if(c == 'I') if(c == 'I')
{ {
c = 0x131; // I -> ı c = 0x131; // I -> ı
} }
} }
#ifdef __WIN32__
if(c == 0x130) // uppercase i-dot
return('i');
#endif
return(towlower(c));

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
src/synthdata.cpp View File

#include "translate.h" #include "translate.h"
#include "wave.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; const int version_phdata = 0x014701;


int option_device_number = -1; int option_device_number = -1;

+ 1
- 0
src/tr_languages.cpp View File

tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.stress_rule = STRESSPOSN_1L;
tr->langopts.numbers = 1; tr->langopts.numbers = 1;
tr->langopts.accents = 2; // 'capital' after letter name tr->langopts.accents = 2; // 'capital' after letter name
tr->langopts.param[LOPT_UNPRONOUNCABLE] = 3; // don't count apostrophe
} }
break; break;



+ 5
- 2
src/translate.cpp View File

0 0
}; };


if(iswalpha(c))
if(iswalpha2(c))
return(1); return(1);


if(c < 0x300)
return(0);

if((c >= 0x901) && (c <= 0xdf7)) if((c >= 0x901) && (c <= 0xdf7))
{ {
// Indic scripts: Devanagari, Tamil, etc // Indic scripts: Devanagari, Tamil, etc
if(UpperCaseInWord(tr, &sbuf[ix], c) == 1) if(UpperCaseInWord(tr, &sbuf[ix], c) == 1)
{ {
// convert to lower case and continue // convert to lower case and continue
c = towlower(c);
c = towlower2(c);
} }
else else
{ {

+ 1
- 0
src/translate.h View File

int IsDigit09(unsigned int c); int IsDigit09(unsigned int c);
int IsAlpha(unsigned int c); int IsAlpha(unsigned int c);
int IsVowel(Translator *tr, int c); int IsVowel(Translator *tr, int c);
int iswalpha2(int c);
int isspace2(unsigned int c); int isspace2(unsigned int c);
int towlower2(unsigned int c); int towlower2(unsigned int c);
void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa); void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa);

+ 1
- 1
src/voices.cpp View File



// which directory to look for a named voice. List of voice names, must end in a space. // which directory to look for a named voice. List of voice names, must end in a space.
static const char *voices_asia = 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 = 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 "; "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 ";



Loading…
Cancel
Save