Browse Source

[1.29.06] Adjust some vowels in en-sc, en-r, en-rp, en-wm

Windows: Fix problem with mbrola voices stopping in Jaws screenreader.
--compile. Don't read and report faults in previous *-dict file.
Added phoneme translation for German mbrola "de6" voice.
Fix to phoneme translation for German voices.
lang=zhy.  Assume word boundary between an ideagraph and an English word.
lang=pt.  Update pt_rules


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@85 d46cf337-b52f-0410-862d-fd96e6ae7743
master
jonsd 17 years ago
parent
commit
41fb54859d

+ 30
- 14
dictsource/pt_list View File

nos $u nos $u
//se $u //se $u


este $u+ // this
este $u+ 'estSi // this
estes $u+ 'estSis // these
esta 'Est& $brk $u+ esta 'Est& $brk $u+
esse $u+ // that
esse $u+ 'esi // that
essa 'Es& $brk $u+ essa 'Es& $brk $u+
aquele $u+ // that aquele $u+ // that
aquela $u+ aquela $u+
sua $u+ sua $u+
seus $u+ seus $u+
suas $u+ suas $u+
nosso $u+
nossa $u+
nossos $u+
nossas $u+
nosso $u+ n'OsU
nossa $u+ n'Os&
nossos $u+ n'OsUs
nossas $u+ n'Os&s
dele $u+ dele $u+
dela $u+ dela $u+
deles $u+ deles $u+


por $u $brk // by,for,through por $u $brk // by,for,through
pelo $u $brk pelo $u $brk
pela $u $brk
pela $u $brk p'el&
pelos $u $brk pelos $u $brk
pelas $u $brk
pelas $u $brk p'el&s


a $u $brk // to,at a $u $brk // to,at
?1 a & $u $brk ?1 a & $u $brk
// estar - to be // estar - to be
estar $u estar $u
estou $u estou $u
está $u
está $u est'a
estamos $u estamos $u
estais $u estais $u
estão $u estão $u
esteve $u esteve $u
estivemos $u estivemos $u
estiveram $u estiveram $u
estiver $u estSiv'Er


estarei $u estarei $u
estará $u estará $u


// foreign words // foreign words
?1 alt 'alt ?1 alt 'alt
?2 agosto &g'ostU
?1 back b'Ek ?1 back b'Ek
?1 blind bl'aind ?1 blind bl'aind
?1 braille b:r'aily ?1 braille b:r'aily
?2 Braille bR'aili
?1 cancel k'&ns'El ?1 cancel k'&ns'El
?1 caps k'aps ?1 caps k'aps
?1 com kom ?1 com kom
?1 google g'u:g&l ?1 google g'u:g&l
?2 google g'ugol ?2 google g'ugol
?1 hardware 'ard,w'Er- ?1 hardware 'ard,w'Er-
?2 hardware x'ardwe@-
?2 hardware h'ardwe@-
?1 home 'omy ?1 home 'omy
?2 home x'owmi
?2 home h'owmi
?1 hotmail h'Otm'eIl ?1 hotmail h'Otm'eIl
?2 hotmail xotm'eIl
?2 hotmail hotm'eIl
?1 install ,inst'al ?1 install ,inst'al
?2 internet iNtern'Et ?2 internet iNtern'Et
?2 Intranet iNtRan'Et ?2 Intranet iNtRan'Et
?2 inveja iNv'EZ&
?1 kernel k'Ern,El ?1 kernel k'Ern,El
?2 kernel k'Ern@l ?2 kernel k'Ern@l
?1 line l'ain ?1 line l'ain
layout l'eI,aUt layout l'eI,aUt
?2 logo l'OgU
?1 lock l'Ok ?1 lock l'Ok
mail m'eIl mail m'eIl
mails m'eIls
?1 maior m,&j'Or- ?1 maior m,&j'Or-
?2 maior maI'Or ?2 maior maI'Or
?2 maiores maI'O*is
?1 menor myn'Or- ?1 menor myn'Or-
?2 menor men'Or ?2 menor men'Or
?2 menores men'O*is
?2 melhor melj'Or
?2 melhores melj'O*is
?2 mouse m'aUzi ?2 mouse m'aUzi
?1 menu menu ?1 menu menu
?1 next n'Ekst ?1 next n'Ekst
?1 ovo 'ovu ?1 ovo 'ovu
?1 pause p'au:z ?1 pause p'au:z
page p'eIdZ page p'eIdZ
python p'aIT&~N
?2 pior pi'Or
?2 piores pi'O*is
python p'aIT&~N
?1 readme r'i:dmi: ?1 readme r'i:dmi:
?1 sapi s,ap'i ?1 sapi s,ap'i
?1 scanner sk'En&r ?1 scanner sk'En&r
?1 telemóveis t,El,Em'OveIs# ?1 telemóveis t,El,Em'OveIs#
?1 up &p ?1 up &p
?1 upload &pl'oud ?1 upload &pl'oud
?2 web w'Eb
?2 verbete verb'etSi
?2 verbetes verb'etSis
?1 yahoo 'i,ah'u ?1 yahoo 'i,ah'u
?2 yahoo iax'u
?2 yahoo iah'u
?1 yes j'Es ?1 yes j'Es





+ 73
- 42
dictsource/pt_rules View File

?2 alh alj ?2 alh alj


a (m &~ a (m &~
a (mA@ &
a (n &~ a (n &~
a (nA@ &
am (_ =&~N am (_ =&~N
am (C &~m am (C &~m
an (K &~N an (K &~N


?1 e (e i //eg: candeeiro ?1 e (e i //eg: candeeiro
?2 ee i ?2 ee i
?2 pr) ee (n ee


?2 el (K EU ?2 el (K EU
?2 elh elj ?2 elh elj


e (be_ E e (be_ E
e (bem_ E e (bem_ E
e (bes_ E


e (ca_ E e (ca_ E
e (ce_ E e (ce_ E
e (cem_ E e (cem_ E
e (ces_ E


e (clA_ E e (clA_ E
e (clAs_ E
e (clAm_ E e (clAm_ E
e (co_ E e (co_ E


e (de_ E
e (dem_ E

e (fa_ E

e (gA_ E
e (gAm_ E

e (grA_ E
e (grAm_ E

h) e (gA_ e
h) e (gAm_ e

e (gue_ E
e (guem_ E

e (la_ E e (la_ E
e (las_ E


e (rA_ E e (rA_ E
e (rAm_ E e (rAm_ E
e (rAs_ E

l) e (rA_ e
l) e (rAm_ e


e (rsA_ E e (rsA_ E
e (rsAm_ E e (rsAm_ E
e (rsAs_ E

e (se_ E
e (sem_ E

e (ssA_ E
e (ssAm_ E

e (stA_ E e (stA_ E
e (stAm_ E e (stAm_ E
e (stAs_ E
e (strA_ E e (strA_ E


e (rnA_ E e (rnA_ E
e (rnAm_ E e (rnAm_ E
e (rnAs_ E


e (rtA_ E e (rtA_ E
e (rtAm_ E e (rtAm_ E
e (rtAs_ E


e (rrA_ E e (rrA_ E
e (rrAm_ E e (rrAm_ E
e (rrAs_ E


e (rvA_ E e (rvA_ E
e (rvAm_ E e (rvAm_ E
e (rvAs_ E


e (ve_ E
e (vem_ E
e (ves_ E

e (rrAs_ E
e (tA_ E
e (tAm_ E


e (vA_ E
e (vAm_ E


e (rrAs_ E


e (x_ E e (x_ E
e (xA_ E e (xA_ E
e (xAm_ E e (xAm_ E
e (xAs_ E
?2 _n) e (t E ?2 _n) e (t E


em (C eIm em (C eIm


j) e (tA_ E j) e (tA_ E
j) e (tAm_ E j) e (tAm_ E
j) e (tAs_ E


?1 _) es (C@@ S // drop initial "e". ?1 _) es (C@@ S // drop initial "e".
?1 _) e (f i // efectuar, etc. ?1 _) e (f i // efectuar, etc.
oi (s oI oi (s oI
o (iCK o o (iCK o
oo u oo u
c) oo oo
?1 C) oo (_ ow // eg: voo, enjoo, etc... ?1 C) oo (_ ow // eg: voo, enjoo, etc...
oy OI oy OI


o (g_ O
o (gs_ O
o (Ca_ O
o (cA_ O
o (cAm_ O

o (que_ O
o (quem_ O

p) o (dA_ O
p) o (dAm_ O

o (g_ O

o (ge_ O
o (gem_ O

o (jA_ O
o (jAm_ O

o (ldA_ O
o (ldAm_ O

o (ltA_ O
o (ltAm_ O

o (sA_ O
o (sAm_ O

o (ssA_ O
o (ssAm_ O

o (va_ O
o (vAm_ O
o (veCs_ O

?1 o (l_ 'O ?1 o (l_ 'O
?2 ol (_ Ow ?2 ol (_ Ow
?2 olh olj ?2 olh olj


o (brA_ O o (brA_ O
o (brAm_ O o (brAm_ O
o (brAs_ O


o (rCA_ O o (rCA_ O
o (rCAm_ O o (rCAm_ O
o (rCAs_ O
o (stA_ O o (stA_ O
o (stAm_ O o (stAm_ O
o (stAs_ O

o (tA_ O
o (tAm_ O


?2 ox (_ Oks ?2 ox (_ Oks
?1 oz (_ Os# ?1 oz (_ Os#
?2 oz (_ Oz ?2 oz (_ Oz
o (zes_ O o (zes_ O
o (ra_ O o (ra_ O
o (ras_ O
?1 _) o (C O // eg: olá, orla, opção, etc... ?1 _) o (C O // eg: olá, orla, opção, etc...
?1 _C) o (CACAC u // Documento, documentação, localizar, etc. ?1 _C) o (CACAC u // Documento, documentação, localizar, etc.
?1 f) o (rmat u // formatar, formato. ?1 f) o (rmat u // formatar, formato.
=) = (= =) = (=
==) = (_ _:: ==) = (_ _::




















+ 1
- 1
espeak-data/voices/!v/f2 View File

name female2 name female2
gender female gender female


pitch 140 220
pitch 145 200
formant 0 105 80 150 formant 0 105 80 150
formant 1 110 80 160 formant 1 110 80 160
formant 2 110 70 150 formant 2 110 70 150

+ 1
- 1
espeak-data/voices/!v/f4 View File

formant 7 110 75 150 formant 7 110 75 150
formant 8 110 75 150 formant 8 110 75 150


stressAdd -20 -20 -20 -20 0 0 60 90
stressAdd -20 -20 -20 -20 0 0 60 80
stressAmp 18 16 20 20 20 20 20 20 stressAmp 18 16 20 20 20 20 20 20

+ 2
- 1
espeak-data/voices/en/en View File

gender male gender male


pitch 82 117 pitch 82 117
replace 03 I i
replace 03 I2 i


formant 0 100 100 105 formant 0 100 100 105


+ 2
- 0
espeak-data/voices/en/en-rp View File

replace 00 o@ O@ replace 00 o@ O@
replace 03 I i replace 03 I i
replace 03 I2 i replace 03 I2 i
replace 03 @ a2
replace 03 3 a2

+ 6
- 0
espeak-data/voices/mb/mb-de6 View File

name german-mbrola-6
language de 6
gender male

mbrola de6 de5_phtrans


+ 1
- 1
espeak-data/voices/mb/mb-us3 View File

stressLength 170 135 205 205 0 0 245 275 stressLength 170 135 205 205 0 0 245 275


pitch 82 117 pitch 82 117
mbrola us3
mbrola us3 us3_phtrans

+ 1
- 1
espeak-data/voices/zhy View File

name cantonese-test name cantonese-test
language zh
language zh-yue
phonemes zhy phonemes zhy
dictionary zhy dictionary zhy
gender male gender male

+ 16
- 16
phsource/compile_report View File

1 vdiph2/eo ro 1 vdiph2/eo ro
1 vdiph2/e[u ro 1 vdiph2/e[u ro
1 vdiph2/i@ en_n 1 vdiph2/i@ en_n
1 vdiph2/i@_2 en_wm
1 vdiph2/ie fi 1 vdiph2/ie fi
1 vdiph2/ii@ en 1 vdiph2/ii@ en
1 vdiph2/ii@_2 en_wm
1 vdiph2/ii@_3 vi 1 vdiph2/ii@_3 vi
3 vdiph2/iu base2 vi zhy 3 vdiph2/iu base2 vi zhy
1 vdiph2/iu_2 fi 1 vdiph2/iu_2 fi
1 vdiph/i#i ro 1 vdiph/i#i ro
6 vdiph/oi base2 en_wm de it la vi 6 vdiph/oi base2 en_wm de it la vi
1 vdiph/oi_2 af 1 vdiph/oi_2 af
10 vdiph/ooi en en_n en_us en_rp cy eo fi no zhy
9 vdiph/ooi en en_n en_us cy eo fi no zhy
1 vdiph/ooi_2 af 1 vdiph/ooi_2 af
1 vdiph/ooi_3 en_wm
2 vdiph/ooi_3 en_rp en_wm
1 vdiph/oou cs 1 vdiph/oou cs
2 vdiph/ou fi zhy 2 vdiph/ou fi zhy
2 vdiph/ou_2 sk ro 2 vdiph/ou_2 sk ro
1 voc/zh_2 sk 1 voc/zh_2 sk
2 voc/z_pzd base 2 voc/z_pzd base
2 voc/z_pzd_ base 2 voc/z_pzd_ base
14 vowel/@ base en en_us en_rp cy hi hr
13 vowel/@ base en en_us en_rp cy hi hr
1 vowel/@- base 1 vowel/@- base
4 vowel/& en_rp fi hi sv 4 vowel/& en_rp fi hi sv
4 vowel/0 base2 en hi pt 4 vowel/0 base2 en hi pt
3 vowel/aa_2 en cy 3 vowel/aa_2 en cy
1 vowel/aa_3 af 1 vowel/aa_3 af
2 vowel/aa_4 sv vi 2 vowel/aa_4 sv vi
2 vowel/aa_5 en_n
3 vowel/aa_5 en_n en_wm
2 vowel/aa_6 de 2 vowel/aa_6 de
1 vowel/aa_7 nl 1 vowel/aa_7 nl
2 vowel/aa_8 en_us 2 vowel/aa_8 en_us
1 vowel/@_fnt hr 1 vowel/@_fnt hr
1 vowel/@_hgh no 1 vowel/@_hgh no
18 vowel/i base2 en_n en_rp en_wm cy eo fr hu pl it pt pt_pt ++ 18 vowel/i base2 en_n en_rp en_wm cy eo fr hu pl it pt pt_pt ++
1 vowel/i# cy
2 vowel/i# en_rp cy
5 vowel/i_2 de nl la sv 5 vowel/i_2 de nl la sv
3 vowel/i_3 af fr sk 3 vowel/i_3 af fr sk
4 vowel/i_4 fi hu it is 4 vowel/i_4 fi hu it is
1 vowel/i_6 hr 1 vowel/i_6 hr
3 vowel/i_en en en_us vi 3 vowel/i_en en en_us vi
2 vowel/i_fnt hi 2 vowel/i_fnt hi
10 vowel/ii en_wm cy de fr_ca nl is zhy
12 vowel/ii en_rp en_wm cy de fr_ca nl is zhy
3 vowel/ii# cy pl ru 3 vowel/ii# cy pl ru
1 vowel/ii_2 la 1 vowel/ii_2 la
7 vowel/ii_3 en_rp fi hi sk hr sv no
7 vowel/ii_4 en en_n en_rp
6 vowel/ii_3 fi hi sk hr sv no
5 vowel/ii_4 en en_n
2 vowel/ii_6 en_wm
1 vowel/ii_en en 1 vowel/ii_en en
5 vowel/@_low hi ro no
10 vowel/@_low en_rp hi ro no
11 vowel/o base2 en en_wm de hi it la pt_pt sv 11 vowel/o base2 en en_wm de hi it la pt_pt sv
4 vowel/o_2 cy hi hu no 4 vowel/o_2 cy hi hu no
2 vowel/o-_2 en_n en_wm 2 vowel/o-_2 en_n en_wm
4 vowelr/r-voc hi sk hr 4 vowelr/r-voc hi sk hr
2 vowelr/V3_r en en_sc 2 vowelr/V3_r en en_sc
1 vowelr/V_r en 1 vowelr/V_r en
7 vowel/u en_n cy de eo fr cs la
6 vowel/u cy de eo fr cs la
5 vowel/u# en en_sc 5 vowel/u# en en_sc
5 vowel/u_2 fi fr sk hr ro 5 vowel/u_2 fi fr sk hr ro
1 vowel/u#_2 sv 1 vowel/u#_2 sv
1 vowel/u_4 en_n 1 vowel/u_4 en_n
2 vowel/u#_4 en_sc 2 vowel/u#_4 en_sc
1 vowel/u_5 sw 1 vowel/u_5 sw
3 vowel/u_6 en_rp pt_pt
2 vowel/u_6 pt_pt
1 vowel/u_7 vi 1 vowel/u_7 vi
17 vowel/u_bck base2 cy fi fr_ca hi hu nl pl sk hr it pt ++ 17 vowel/u_bck base2 cy fi fr_ca hi hu nl pl sk hr it pt ++
1 vowel/u_fnt en_rp
2 vowel/uu en en_wm 2 vowel/uu en en_wm
3 vowel/uu_2 base2 de la 3 vowel/uu_2 base2 de la
1 vowel/uu_3 af 1 vowel/uu_3 af
2 vowel/uu_4 fi sv 2 vowel/uu_4 fi sv
7 vowel/uu_bck fr_ca hi hu pt no zhy
8 vowel/uu_bck en_n fr_ca hi hu pt no zhy
1 vowel/V en_sc 1 vowel/V en_sc
4 vowel/V_2 en af ru 4 vowel/V_2 en af ru
3 vowel/V_3 en_rp hi vi 3 vowel/V_3 en_rp hi vi
5 vwl_en/aU@ en en_n en_us en_sc en_wm 5 vwl_en/aU@ en en_n en_us en_sc en_wm
12 vwl_en/@L en en_us en_sc en_rp en_wm af 12 vwl_en/@L en en_us en_sc en_rp en_wm af
3 vwl_en/@L_2 en_sc 3 vwl_en/@L_2 en_sc
1 vwl_en_n/aa_5 en_n
1 vwl_en_n/O@ en_n 1 vwl_en_n/O@ en_n
1 vwl_en_n/u_ en_n 1 vwl_en_n/u_ en_n
4 vwl_en_rp/@ en_rp
3 vwl_en_rp/aa en_rp 3 vwl_en_rp/aa en_rp
1 vwl_en_rp/aU@ en_rp 1 vwl_en_rp/aU@ en_rp
1 vwl_en_rp/e@ en_rp 1 vwl_en_rp/e@ en_rp
3 vwl_en_us/or en_us en_sc 3 vwl_en_us/or en_us en_sc
1 vwl_en_us/ur en_us 1 vwl_en_us/ur en_us
1 vwl_en_us/V en_us 1 vwl_en_us/V en_us
2 vwl_en_wm/aa en_wm
1 vwl_en_wm/i en_wm 1 vwl_en_wm/i en_wm
2 vwl_en_wm/ii en_wm
3 vwl_fr/@R fr pt_pt 3 vwl_fr/@R fr pt_pt
1 vwl_fr/@R2 fr_ca 1 vwl_fr/@R2 fr_ca
1 vwl_hi/A hi 1 vwl_hi/A hi

+ 2
- 1
phsource/mbrola/de4 View File

0 y NULL 0 Y 0 y NULL 0 Y
0 W NULL 0 9 0 W NULL 0 9
0 A: NULL 0 a: 0 A: NULL 0 a:
0 A NULL 0 a:
0 Y: NULL 0 2: 0 Y: NULL 0 2:
0 OI NULL 0 OY 0 OI NULL 0 OY
0 3 NULL 0 6 0 3 NULL 0 6
0 _! NULL 0 ?
0 _| NULL 0 ?
0 pF NULL 0 pf 0 pF NULL 0 pf
0 r NULL 0 R 0 r NULL 0 R



+ 3
- 1
phsource/mbrola/de5 View File

0 y NULL 0 Y 0 y NULL 0 Y
0 W NULL 0 9 0 W NULL 0 9
0 A: NULL 0 a: 0 A: NULL 0 a:
0 A NULL 0 a:
0 Y: NULL 0 2: 0 Y: NULL 0 2:
0 OI NULL 0 OY 0 OI NULL 0 OY
0 3 NULL 0 6 0 3 NULL 0 6
0 _! NULL 0 ?
//0 _! NULL 0 ?
0 _| NULL 0 ?
0 pF NULL 0 pf 0 pF NULL 0 pf
0 r NULL 0 R 0 r NULL 0 R



+ 4
- 4
phsource/ph_english_n View File

phoneme U phoneme U
vowel starttype (o) endtype (o) vowel starttype (o) endtype (o)
length 150 length 150
formants vowel/u
formants vowel/uu_bck
endphoneme endphoneme






phoneme A@ phoneme A@
vowel starttype (a) endtype (@) vowel starttype (a) endtype (@)
length 240
formants vowel/aa_5
length 250
formants vwl_en_n/aa_5
linkout r- linkout r-
endphoneme endphoneme






phoneme oU phoneme oU
vowel starttype (o) endtype (u)
vowel starttype (o) endtype (o)
length 210 length 210
formants vowel/o_4 formants vowel/o_4
endphoneme endphoneme

+ 18
- 17
phsource/ph_english_rp View File

phoneme @ // Schwa phoneme @ // Schwa
vowel starttype (@) endtype (@) vowel starttype (@) endtype (@)
formants vowel/@ formants vowel/@
before _ vwl_en_rp/@
before _ vowel/@_low
unstressed unstressed
linkout r- linkout r-
length 140 length 140
phoneme 3 // Schwa, used for rhotic schwa in American phoneme 3 // Schwa, used for rhotic schwa in American
vowel starttype (@) endtype (@) vowel starttype (@) endtype (@)
formants vowel/@ formants vowel/@
before _ vwl_en_rp/@
before _ vowel/@_low
unstressed unstressed
linkout r- linkout r-
beforevowel @ beforevowel @


phoneme @2 // Schwa, changes to I before a vowel phoneme @2 // Schwa, changes to I before a vowel
vowel starttype (@) endtype (@) vowel starttype (@) endtype (@)
formants vwl_en_rp/@
formants vowel/@_low
unstressed unstressed
beforevowel I beforevowel I
length 120 length 120


phoneme @5 // Schwa, changes to U before a vowel phoneme @5 // Schwa, changes to U before a vowel
vowel starttype (@) endtype (@) vowel starttype (@) endtype (@)
formants vwl_en_rp/@
formants vowel/@_low
unstressed unstressed
beforevowelpause U beforevowelpause U
length 140 length 140
phoneme I phoneme I
vowel starttype (i) endtype (i) vowel starttype (i) endtype (i)
length 130 length 130
formants vowel/ii_4
formants vowel/ii
linkout ; linkout ;
endphoneme endphoneme


phoneme I2
vowel starttype (i) endtype (i)
unstressed
length 140
formants vowel/ii
linkout ;
endphoneme


phoneme i // optional variant of [I] for end of words phoneme i // optional variant of [I] for end of words
vowel starttype (i) endtype (i) vowel starttype (i) endtype (i)
length 140 length 140
formants vowel/ii_3
formants vowel/i#
linkout ; linkout ;
endphoneme endphoneme


endphoneme endphoneme




phoneme I2
vowel starttype (i) endtype (i)
unstressed
length 140
formants vowel/ii_4
linkout ;
endphoneme



phoneme a2 phoneme a2
vowel starttype (@) endtype (@) vowel starttype (@) endtype (@)
unstressed unstressed
length 150 length 150
formants vowel/@
formants vowel/@_low
linkout r- linkout r-
endphoneme endphoneme


phoneme u: phoneme u:
vowel starttype (u) endtype (u) vowel starttype (u) endtype (u)
length 190 length 190
formants vowel/u_6
formants vowel/u_fnt
before l/2 vwl_en/u_L-40+l/L2_uL before l/2 vwl_en/u_L-40+l/L2_uL
endphoneme endphoneme


phoneme OI phoneme OI
vowel starttype (o) endtype (i) vowel starttype (o) endtype (i)
length 230 length 230
formants vdiph/ooi
formants vdiph/ooi_3
endphoneme endphoneme





+ 1
- 1
phsource/ph_english_sc View File



phoneme 0 phoneme 0
vowel starttype (o) endtype (o) vowel starttype (o) endtype (o)
length 180
length 200
formants vowel/oo_2 formants vowel/oo_2
reduceto @ 0 reduceto @ 0
endphoneme endphoneme

+ 15
- 14
phsource/ph_english_wm View File

phoneme I phoneme I
vowel starttype (i) endtype (i) vowel starttype (i) endtype (i)
length 140 length 140
formants vwl_en_wm/ii
formants vowel/ii_6
before l vowel/ii before l vowel/ii
linkout ; linkout ;
endphoneme endphoneme



phoneme I2
vowel starttype (i) endtype (i)
unstressed
length 140
formants vowel/ii_6
before l vowel/ii
linkout ;
endphoneme


phoneme i // optional variant of [I] for end of words phoneme i // optional variant of [I] for end of words
vowel starttype (i) endtype (i) vowel starttype (i) endtype (i)
length 220 length 220
endphoneme endphoneme




phoneme I2
vowel starttype (i) endtype (i)
unstressed
length 140
formants vwl_en_wm/ii
before l vowel/ii
linkout ;
endphoneme


phoneme a2 phoneme a2
vowel starttype (@) endtype (@) vowel starttype (@) endtype (@)
unstressed unstressed
phoneme A: phoneme A:
vowel starttype (a) endtype (a) vowel starttype (a) endtype (a)
length 240 length 240
formants vwl_en_wm/aa
formants vowel/aa_5
linkout r- linkout r-
endphoneme endphoneme


phoneme A@ phoneme A@
vowel starttype (a) endtype (a) vowel starttype (a) endtype (a)
length 240 length 240
formants vwl_en_wm/aa
formants vowel/aa_5
linkout r- linkout r-
endphoneme endphoneme


phoneme i@ phoneme i@
vowel starttype (i) endtype (@) vowel starttype (i) endtype (@)
length 240 length 240
formants vdiph2/ii@_2
formants vdiph2/i@_2
linkout r- linkout r-
endphoneme endphoneme



BIN
phsource/vdiph/@u_2 View File


BIN
phsource/vdiph/ae_2 View File


BIN
phsource/vdiph/ooi_3 View File


BIN
phsource/vdiph/oou View File


BIN
phsource/vdiph2/i@_2 View File


BIN
phsource/vowel/V_3 View File


BIN
phsource/vowel/e# View File


BIN
phsource/vowel/i# View File


BIN
phsource/vowel/i#_3 View File


phsource/vwl_en_wm/ii → phsource/vowel/ii_6 View File


BIN
phsource/vowel/o_4 View File


BIN
phsource/vowel/u_fnt View File


BIN
phsource/vowel/vowelchart.png View File


BIN
phsource/vwl_en_wm/aa → phsource/vwl_en_n/aa_5 View File


BIN
phsource/vwl_en_wm/i View File


+ 10
- 10
platforms/windows/windows_sapi/ttsengobj.cpp View File

Event = &Events[n_Events++]; Event = &Events[n_Events++];
Event->eEventId = SPEI_TTS_BOOKMARK; Event->eEventId = SPEI_TTS_BOOKMARK;
Event->elParamType = SPET_LPARAM_IS_STRING; Event->elParamType = SPET_LPARAM_IS_STRING;
Event->ullAudioStreamOffset = ((event->audio_position + audio_offset) * 441)/10; // ms -> bytes
Event->ullAudioStreamOffset = ((event->audio_position + audio_offset) * srate)/10; // ms -> bytes
Event->lParam = (long)event->id.name; Event->lParam = (long)event->id.name;
Event->wParam = wcstol((wchar_t *)event->id.name,&tailptr,10); Event->wParam = wcstol((wchar_t *)event->id.name,&tailptr,10);
} }
if(event->type == espeakEVENT_SENTENCE) if(event->type == espeakEVENT_SENTENCE)
{ {
Event = &Events[n_Events++]; Event = &Events[n_Events++];
Event->eEventId = SPEI_SENTENCE_BOUNDARY;
Event->elParamType = SPET_LPARAM_IS_UNDEFINED;
Event->ullAudioStreamOffset = (event->audio_position * 441)/10; // ms -> bytes
Event->lParam = event->text_position-1 + text_offset;
Event->wParam = 0; // TEMP
Event->eEventId = SPEI_SENTENCE_BOUNDARY;
Event->elParamType = SPET_LPARAM_IS_UNDEFINED;
Event->ullAudioStreamOffset = ((event->audio_position + audio_offset) * srate)/10; // ms -> bytes
Event->lParam = 0;
Event->wParam = 0; // TEMP
} }
#endif #endif
} }
int FAR PASCAL CompileDictionary(const char *voice, const char *path_log) int FAR PASCAL CompileDictionary(const char *voice, const char *path_log)
{//=========================================================== {//===========================================================
FILE *f_log;
FILE *f_log3;
char fname[120]; char fname[120];
f_log = fopen(path_log,"w");
f_log3 = fopen(path_log,"w");
sprintf(fname,"%s/",path_install); sprintf(fname,"%s/",path_install);
espeak_SetVoiceByName(voice); espeak_SetVoiceByName(voice);
espeak_CompileDictionary(fname,f_log);
fclose(f_log);
espeak_CompileDictionary(fname,f_log3);
fclose(f_log3);
return(0); return(0);
} }

+ 18
- 15
src/compiledict.cpp View File

char *p; char *p;
int count=0; int count=0;
FILE *f_in; FILE *f_in;
char buf[256];
char buf[sizeof(path_home)+45];
char dict_line[128]; char dict_line[128];
sprintf(buf,"%s%s",path,filename); sprintf(buf,"%s%s",path,filename);






int CompileDictionary(const char *dsource, const char *dict_name, FILE *log, char *fname)
{//======================================================================================
int CompileDictionary(const char *dsource, const char *dict_name, FILE *log, char *fname_err)
{//==========================================================================================
// fname: space to write the filename in case of error // fname: space to write the filename in case of error


FILE *f_in; FILE *f_in;
FILE *f_out; FILE *f_out;
int offset_rules=0; int offset_rules=0;
int value; int value;
char fname_buf[sizeof(path_home)+15];
char fname_in[sizeof(path_home)+45];
char fname_out[sizeof(path_home)+15];
char fname_temp[sizeof(path_home)+15]; char fname_temp[sizeof(path_home)+15];
char path[sizeof(path_home)+40]; // path_dsource+20 char path[sizeof(path_home)+40]; // path_dsource+20




if(dsource == NULL) if(dsource == NULL)
dsource = ""; dsource = "";
if(fname == NULL)
fname = fname_buf;


f_log = log; f_log = log;
//f_log = fopen("log2.txt","w"); //f_log = fopen("log2.txt","w");
f_log = stderr; f_log = stderr;


sprintf(path,"%s%s_",dsource,dict_name); sprintf(path,"%s%s_",dsource,dict_name);
sprintf(fname_in,"%srules",path);
f_in = fopen_log(fname_in,"r");
if(f_in == NULL)
{
if(fname_err)
strcpy(fname_err,fname_in);
return(-1);
}


sprintf(fname,"%s%c%s_dict",path_home,PATHSEP,dict_name);
if((f_out = fopen_log(fname,"wb+")) == NULL)
sprintf(fname_out,"%s%c%s_dict",path_home,PATHSEP,dict_name);
if((f_out = fopen_log(fname_out,"wb+")) == NULL)
{ {
if(fname_err)
strcpy(fname_err,fname_in);
return(-1); return(-1);
} }
sprintf(fname_temp,"%s%ctemp",path_home,PATHSEP); sprintf(fname_temp,"%s%ctemp",path_home,PATHSEP);
compile_dictlist_end(f_out); compile_dictlist_end(f_out);
offset_rules = ftell(f_out); offset_rules = ftell(f_out);
sprintf(fname,"%srules",path);
fprintf(f_log,"Compiling: '%s'\n",fname);
f_in = fopen_log(fname,"r");
if(f_in == NULL)
{
return(-1);
}
fprintf(f_log,"Compiling: '%s'\n",fname_in);


compile_dictrules(f_in,f_out,fname_temp); compile_dictrules(f_in,f_out,fname_temp);
fclose(f_in); fclose(f_in);

+ 3
- 0
src/dictionary.cpp View File



strcpy(dictionary_name,name); // currently loaded dictionary name strcpy(dictionary_name,name); // currently loaded dictionary name


if(no_error) // don't load dictionary, just set the dictionary_name
return(1);

// Load a pronunciation data file into memory // Load a pronunciation data file into memory
// bytes 0-3: offset to rules data // bytes 0-3: offset to rules data
// bytes 4-7: number of hash table entries // bytes 4-7: number of hash table entries

+ 12
- 9
src/speak.cpp View File



initialise(); initialise();


if(voicename[0] == 0)
strcpy(voicename,"default");

if(SetVoiceByName(voicename) != EE_OK)
{
fprintf(stderr,"%svoice '%s'\n",err_load,voicename);
exit(2);
}



if(flag_compile) if(flag_compile)
{ {
LoadVoice(voicename,5);

#ifdef PLATFORM_DOS #ifdef PLATFORM_DOS
char path_dsource[sizeof(path_home)+20]; char path_dsource[sizeof(path_home)+20];
strcpy(path_dsource,path_home); strcpy(path_dsource,path_home);
exit(0); exit(0);
} }



if(voicename[0] == 0)
strcpy(voicename,"default");

if(SetVoiceByName(voicename) != EE_OK)
{
fprintf(stderr,"%svoice '%s'\n",err_load,voicename);
exit(2);
}

SetParameter(espeakRATE,speed,0); SetParameter(espeakRATE,speed,0);
SetParameter(espeakVOLUME,amp,0); SetParameter(espeakVOLUME,amp,0);
SetParameter(espeakCAPITALS,option_capitals,0); SetParameter(espeakCAPITALS,option_capitals,0);

+ 6
- 2
src/synth_mbrola.cpp View File

void MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, FILE *f_mbrola) void MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, FILE *f_mbrola)
{//====================================================================== {//======================================================================
// Generate a mbrola pho file // Generate a mbrola pho file
int name;
unsigned int name;
int phix; int phix;
int len; int len;
int len1; int len1;
{ {
MbrolaEmbedded(embedded_ix, p->sourceix); MbrolaEmbedded(embedded_ix, p->sourceix);
} }
if(p->newword & 4)
MbrolaMarker(espeakEVENT_SENTENCE, (p->sourceix & 0x7ff) + clause_start_char, 0, count_sentences);

if(p->newword & 1) if(p->newword & 1)
MbrolaMarker(espeakEVENT_WORD, (p->sourceix & 0x7ff) + clause_start_char, p->sourceix >> 11, clause_start_word + word_count++); MbrolaMarker(espeakEVENT_WORD, (p->sourceix & 0x7ff) + clause_start_char, p->sourceix >> 11, clause_start_word + word_count++);
#endif #endif
if(name == 0) if(name == 0)
continue; // ignore this phoneme continue; // ignore this phoneme


if(ph->type == phPAUSE)
if((ph->type == phPAUSE) && (name == ph->mnemonic))
{ {
// a pause phoneme, which has not been changed by the translation
name = '_'; name = '_';
len = (p->length * speed_factor1)/256; len = (p->length * speed_factor1)/256;
// if(len == 0) continue; // if(len == 0) continue;

+ 6
- 6
src/synthdata.cpp View File

#include "translate.h" #include "translate.h"
#include "wave.h" #include "wave.h"


const char *version_string = "1.29.04 11.Sep.07";
const char *version_string = "1.29.06 11.Sep.07";
const int version_phdata = 0x012901; const int version_phdata = 0x012901;


int option_device_number = -1; int option_device_number = -1;
} }
break; break;
case 1: case 1:
if(control==0)
if(control==0)
{ {
seq_len_adjust = value2 >> 8;
seq_len_adjust = value2 >> 8;
} }
break; break;
case 2: case 2:
if(control==0)
if(control==0)
{ {
seq_len_adjust = value2 >> 8;
seq_len_adjust = -seq_len_adjust;
seq_len_adjust = value2 >> 8;
seq_len_adjust = -seq_len_adjust;
} }
break; break;
case 3: case 3:

+ 1
- 1
src/translate.cpp View File

else else
if(IsAlpha(c)) if(IsAlpha(c))
{ {
if(!IsAlpha(prev_out) || (langopts.ideographs && (c >= 0x3000)))
if(!IsAlpha(prev_out) || (langopts.ideographs && ((c >= 0x3000) || (prev_out >= 0x3000))))
{ {
if(prev_out != '\'') if(prev_out != '\'')
letter_count = 0; // don't reset count for an apostrophy within a word letter_count = 0; // don't reset count for an apostrophy within a word

+ 0
- 1
src/voices.cpp View File

static char voice_name[40]; // voice name for voice_selected static char voice_name[40]; // voice name for voice_selected
static char voice_languages[100]; // list of languages and priorities for voice_selected static char voice_languages[100]; // list of languages and priorities for voice_selected



strcpy(voicename,vname); strcpy(voicename,vname);
if(voicename[0]==0) if(voicename[0]==0)
strcpy(voicename,"default"); strcpy(voicename,"default");

Loading…
Cancel
Save