Internationalization of Windows espeak and espeakedit installers. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@54 d46cf337-b52f-0410-862d-fd96e6ae7743master
//maintainer: Willem van der Walt | |||||
//maintainer: Willem van der Walt | |||||
// email: [email protected] | // email: [email protected] | ||||
// tel: +27 12 8413996 | // tel: +27 12 8413996 | ||||
// Meraka Institute, CSIR | // Meraka Institute, CSIR | ||||
ceylon s@lOn | ceylon s@lOn | ||||
china S'ina | china S'ina | ||||
engeland 'EN@lant | engeland 'EN@lant | ||||
kanada kanad%a | |||||
kongo kONgu | kongo kONgu | ||||
mesopotamië mEsuput'A:mi@ | mesopotamië mEsuput'A:mi@ | ||||
mosambiek musamb'ik | mosambiek musamb'ik | ||||
breytenbach breIt@nbax2 | breytenbach breIt@nbax2 | ||||
carl kA:r@L | carl kA:r@L | ||||
charles _^_EN | charles _^_EN | ||||
chopin S%OpA~ | |||||
chris krIs | chris krIs | ||||
christo krIstu | christo krIstu | ||||
christian krIstian | christian krIstian | ||||
gerhard x2&rart | gerhard x2&rart | ||||
grange x2rA:nsi | grange x2rA:nsi | ||||
gustav gustaf | gustav gustaf | ||||
haydn hAId@n | |||||
helena hil'e@na | |||||
jacobus jako@bWs | jacobus jako@bWs | ||||
jacques ZA:k | jacques ZA:k | ||||
jane _^_EN | jane _^_EN | ||||
jesus ji:sWs | jesus ji:sWs | ||||
joey dZ@Ui | joey dZ@Ui | ||||
john _^_EN | john _^_EN | ||||
lategan lA:t@x2an | |||||
le l@ | le l@ | ||||
leandra li'andra | leandra li'andra | ||||
leroux l@ru | leroux l@ru | ||||
maria mar'ia | maria mar'ia | ||||
martin m'A:rt@n | martin m'A:rt@n | ||||
michiel $2 | michiel $2 | ||||
mostert m'Ost@rt | |||||
mostert m'Ost@rt | |||||
mozart mo@tsart | |||||
natasha n%at'aSa | natasha n%at'aSa | ||||
paul p@Ul | paul p@Ul | ||||
paulus p@UlWs | paulus p@UlWs | ||||
philip fIl@p | |||||
pierre p'e@r | pierre p'e@r | ||||
petrus pe@trWs | petrus pe@trWs | ||||
phoebe fi:bi | phoebe fi:bi | ||||
scheepers ske@p@rs | scheepers ske@p@rs | ||||
schoor sko@r | schoor sko@r | ||||
shakespeare _^_EN | shakespeare _^_EN | ||||
tania tanja | |||||
terblanche t@rblA:nS | terblanche t@rblA:nS | ||||
theron tr'On | theron tr'On | ||||
viljoen $2 | viljoen $2 | ||||
sodat $pause | sodat $pause | ||||
voordat $pause | voordat $pause | ||||
nadat $pause | nadat $pause | ||||
ofskoon $2 $pause | |||||
totdat tOdat $pause | totdat tOdat $pause | ||||
as ,as $pause | as ,as $pause | ||||
soos $pause | soos $pause | ||||
aanbid $2 | aanbid $2 | ||||
aanstaande $2 | aanstaande $2 | ||||
agenda ax2'Enda | agenda ax2'Enda | ||||
aikôna %aik'O:na | |||||
algaande $2 | |||||
algehele alx2@h,e@l@ | algehele alx2@h,e@l@ | ||||
alles al@s | alles al@s | ||||
alternatiewe $4 | alternatiewe $4 | ||||
bewe be@v@ | bewe be@v@ | ||||
bewend be@v@nt | bewend be@v@nt | ||||
bewering b@ve@rIN | bewering b@ve@rIN | ||||
biblioteek $4 | |||||
bostaande b'o@stA:nd@ | bostaande b'o@stA:nd@ | ||||
dadelik dA:d@lIk | dadelik dA:d@lIk | ||||
hallo h'Il,@U | hallo h'Il,@U | ||||
hanteer $2 | hanteer $2 | ||||
hardop hart?Op | |||||
heeltemal he@lt@mal | heeltemal he@lt@mal | ||||
heengaan he@nx2A:n | heengaan he@nx2A:n | ||||
hek h&k | hek h&k | ||||
hekke h&k@ | hekke h&k@ | ||||
helaas he@l'A:s | helaas he@l'A:s | ||||
hele he@l@ | |||||
here he@r@ | here he@r@ | ||||
hoewel huv'&l | hoewel huv'&l | ||||
hoofsaaklik $2 | hoofsaaklik $2 | ||||
ietwat itvat | ietwat itvat | ||||
ignoreer ix2no@r'e@r | ignoreer ix2no@r'e@r | ||||
inagneming @nax2ne@m@N | inagneming @nax2ne@m@N | ||||
inderdaad @nd@rd'A:t | |||||
ingang Inx2aN | ingang Inx2aN | ||||
inkluis $2 | |||||
intens @nt'Ens | intens @nt'Ens | ||||
intensiteit $4 | intensiteit $4 | ||||
kritiek krIt'ik | kritiek krIt'ik | ||||
kultuur $2 | kultuur $2 | ||||
kunsmatige kWnsm'A:t@x2@ | kunsmatige kWnsm'A:t@x2@ | ||||
kwansuis $2 | |||||
latere l'A:t@r@ | latere l'A:t@r@ | ||||
lekker l&k@r | lekker l&k@r | ||||
omtrent Omtr'Ent | omtrent Omtr'Ent | ||||
onbegrip $1 | onbegrip $1 | ||||
onderstebo On@rst@b,o@ | |||||
onderweg $3 | |||||
onderwyser $3 | onderwyser $3 | ||||
ongeag $1 | ongeag $1 | ||||
ongeduld $1 | ongeduld $1 | ||||
onrus $1 | onrus $1 | ||||
oorkom $2 | oorkom $2 | ||||
oorleef $2 | oorleef $2 | ||||
oorsee $2 | |||||
oorsese $2 | |||||
oorspronklike $2 | oorspronklike $2 | ||||
oranje $2 | oranje $2 | ||||
sombere s'Omb@r@ | sombere s'Omb@r@ | ||||
sodra so@dr'A: | sodra so@dr'A: | ||||
sogenaamde s'o@x2@n,A:md@ | sogenaamde s'o@x2@n,A:md@ | ||||
soldaat $2 | |||||
soldate $2 | |||||
sononder sOn,On@r | |||||
sonop sOn,Op | |||||
sononder sOn_On@r | |||||
sonop sOn_Op | |||||
sover so@f&r | sover so@f&r | ||||
spesmaas $2 | spesmaas $2 | ||||
stabiel stab'il | stabiel stab'il | ||||
vaarwel fA:rv'&l | vaarwel fA:rv'&l | ||||
vanaf fanaf | vanaf fanaf | ||||
vandag $2 | |||||
vandaan $2 | |||||
vanjaar $2 | |||||
vanoggend fan'Ox2@nt | |||||
vanuit fan'Yyt | |||||
vandat $1 | |||||
veraf f&r_af | veraf f&r_af | ||||
verafgeleë f&rafx2@le@@ | verafgeleë f&rafx2@le@@ | ||||
verantwoordelikheid f@rantv'o@rd@l@keIt | verantwoordelikheid f@rantv'o@rd@l@keIt | ||||
voorkom $2 | voorkom $2 | ||||
voormalige fo@rm'A:l@x2@ | voormalige fo@rm'A:l@x2@ | ||||
voorsien $2 | voorsien $2 | ||||
vorendag $3 | |||||
vorige fo@r@x2@ | vorige fo@r@x2@ | ||||
vrek fr&k | vrek fr&k | ||||
// 1. Change ['i:] to [=I@] at end of word | // 1. Change ['i:] to [=I@] at end of word | ||||
// Letters | |||||
//======== | |||||
// Characters | |||||
//=========== | |||||
// If a letter has a "word" pronunciation which is different from its | // If a letter has a "word" pronunciation which is different from its | ||||
// "letter" name, then include the letter name here, with the letter | // "letter" name, then include the letter name here, with the letter | ||||
// prefixed by a _ character. | // prefixed by a _ character. | ||||
// Include a _ before a character if it's name should only be | |||||
// spoken when "speak punctuation" option is on. | |||||
_. pUnkt | _. pUnkt | ||||
_, kOma | _, kOma | ||||
€ OY*o: | |||||
£ paUnd | |||||
% p@-*o:ts'Ent | |||||
& Unt | |||||
@ kl'ame:*,af@ | |||||
# nUm3 | |||||
+ plUs | |||||
= glaIC | |||||
~ tIld@ | |||||
\ bEkslES | |||||
_| paIp | |||||
_: d'Op@lp,UNkt | |||||
_; St@-*'ICpUNkt | |||||
__ ,Unt3St@-*'IC | |||||
_- b'IndEst@-*,IC | |||||
_! 'aUs_|@-*,u:fe:ts,aIC@n | |||||
_? f@-*'Age:ts,aIC@n | |||||
_' 'apOst@-*,Of | |||||
_" 'anf,y:*UNsts,aIC@n | |||||
_/ S@-*'Egst@-*IC | |||||
_( kl'am3||_|'aUf | |||||
_) kl'am3||ts'u: | |||||
_{ g@Sv'aIft@kl'am3||_|'aUf | |||||
_} g@Sv'aIft@kl'am3||ts'u: | |||||
_[ 'EkIg@kl'am3||_|'aUf | |||||
_] 'ECIg@kl'am3||ts'u: | |||||
_< klaIn3 | |||||
_> g@-*Ws3 | |||||
_` g@-*A:v | |||||
_^ sI*kUmflEks | |||||
_— g@d'ank@nSt@-*,IC | |||||
// Numbers | // Numbers | ||||
//======== | //======== |
é e: | é e: | ||||
ée 'e: | ée 'e: | ||||
é (_ 'e: | é (_ 'e: | ||||
æ E | |||||
ø W | |||||
ç s | |||||
č tS | |||||
š S | |||||
ž Z | |||||
, (D kOma | , (D kOma | ||||
/ slaS | |||||
% p@-*o:ts'Ent | |||||
$ dOl@ | |||||
€ OY*o: | |||||
£ paUnd | |||||
$ dOl'A: | |||||
. pUnkt | . pUnkt | ||||
. (. _: | . (. _: | ||||
\.) . | \.) . | ||||
* StE*n | |||||
*) * (* | |||||
** | |||||
**) * (_ _:: | |||||
: b c C d dZ f g | : b c C d dZ f g | ||||
h j J k l m n N | h j J k l m n N | ||||
n^ p R s S s2 t tS | |||||
ts v z Z | |||||
n^ p R R2 s S s2 t | |||||
tS ts v z Z | |||||
Dictionary it_dict | Dictionary it_dict |
holy hoUlI2 | holy hoUlI2 | ||||
homepage hoUmpeIdZ | homepage hoUmpeIdZ | ||||
hominem h0mInEm | hominem h0mInEm | ||||
hopi hoUpi: | |||||
horizontal $3 | horizontal $3 | ||||
hospitable h0sp'It@b@L | hospitable h0sp'It@b@L | ||||
hostage h0stIdZ | hostage h0stIdZ |
f) all (a al | f) all (a al | ||||
f) all (ib al | f) all (ib al | ||||
_C) all (ow al | _C) all (ow al | ||||
h) all (w O:l | |||||
h) all (C O:l | |||||
sm) all O:l | sm) all O:l | ||||
st) all O:l | st) all O:l | ||||
t) all O:l | t) all O:l | ||||
_) re (dC rE | _) re (dC rE | ||||
_) re (dr r%i: | _) re (dr r%i: | ||||
_) re (eduP2 r%i: | _) re (eduP2 r%i: | ||||
_) re (eqP2 r%i: | |||||
_) re (emP2 r%i: | |||||
_) re (enP2 r%i: | _) re (enP2 r%i: | ||||
_) re (eqP2 r%i: | |||||
_) re (exP2 r%i: | _) re (exP2 r%i: | ||||
referend rEf@r'End | referend rEf@r'End | ||||
re (fug rE | re (fug rE |
mlle mad@mwaz'El | mlle mad@mwaz'El | ||||
mme mad'am | mme mad'am | ||||
mr m@sj'Y | mr m@sj'Y | ||||
p.s pOstkRipt'Om | |||||
p.s pOftkRipt'Om | |||||
ratp 'ER:'a:t'e:p'e | ratp 'ER:'a:t'e:p'e | ||||
s.t.p s'il:t'@:pl'E | s.t.p s'il:t'@:pl'E | ||||
s.v.p s'il:v'u:pl'E | s.v.p s'il:v'u:pl'E | ||||
// auxillary verbs (be, have, can, etc) | // auxillary verbs (be, have, can, etc) | ||||
suis $u+ $verb | suis $u+ $verb | ||||
est E $u+ | |||||
est Et2 $u+ | |||||
d'est d'Est | |||||
sommes $u+ | sommes $u+ | ||||
êtes $u+ | êtes $u+ | ||||
sont $u+ | sont $u+ | ||||
scient si | scient si | ||||
bénéficient benefisi $verb | bénéficient benefisi $verb | ||||
président pRezidA~t2 | |||||
président pRezid'A~ | |||||
président pRezidt2 $verb | président pRezidt2 $verb | ||||
résident Rezid'A~ | |||||
résident Rezidt2 $verb | |||||
évident evid'A~ | |||||
évident evidt2 $verb | |||||
couvent k'uvt2 $verb | |||||
// MAIN WORD DICTIONARY | // MAIN WORD DICTIONARY | ||||
mars maRs | mars maRs | ||||
pays pEi | pays pEi | ||||
pourcent puRs'A~ | pourcent puRs'A~ | ||||
absent abs'A~ | |||||
ardent ard'A~ | |||||
prudent pRyd'A~ | |||||
imprudent E~pRyd'A~ | |||||
discident disid'A~ | |||||
accident aksid'A~ | |||||
occident Oksid'A~ | |||||
l'occident lOksid'A~ | |||||
orient Orj'A~ | |||||
l'orient lOrj'A~ | |||||
secret sYkR'E | |||||
secrets sYkR'E | |||||
sens sA~s | sens sA~s | ||||
c'est sEt2 $u | c'est sEt2 $u | ||||
qu'à ka | qu'à ka |
A) r (A R | A) r (A R | ||||
C) r (A R | C) r (A R | ||||
r (C R | r (C R | ||||
r (ó_ R2 | |||||
rr RR | rr RR | ||||
_) richa (rd RiCa: | _) richa (rd RiCa: |
a a $atend | a a $atend | ||||
e E $atend // assume letter-e at end of sentence | e E $atend // assume letter-e at end of sentence | ||||
o O $atend | o O $atend | ||||
à ,agR'avi $atend | |||||
é ,e||&g'udU $atend | |||||
á ,a||&g'udU | |||||
â ,a||sirkuNfl'EksU | |||||
ã ,atS'iU | |||||
ç s,esed'elj& | |||||
è ,egR'avi | |||||
ê ,e||sirkuNfl'EksU | |||||
í ,i&g'udU | |||||
ó ,o&g'udU | |||||
ô ,o||sirkuNfl'EksU | |||||
õ ,otS'iU | |||||
ú ,u&g'udU | |||||
ü ,utR'em& | |||||
à a $atend | |||||
é E $atend | |||||
_á ,a||&g'udU | |||||
_â ,a||sirkuNfl'EksU | |||||
_ã ,atS'iU | |||||
_ç s,esed'elj& | |||||
_è ,egR'avi | |||||
_ê ,e||sirkuNfl'EksU | |||||
_í ,i&g'udU | |||||
_ó ,o&g'udU | |||||
_ô ,o||sirkuNfl'EksU | |||||
_õ ,otS'iU | |||||
_ú ,u&g'udU | |||||
_ü ,utR'em& | |||||
// some common adjectives and adverbs | // some common adjectives and adverbs |
phoneme U | phoneme U | ||||
vowel starttype (u) endtype (u) | |||||
vowel starttype (o) endtype (o) | |||||
length 150 | length 150 | ||||
formants vowel/uu | formants vowel/uu | ||||
endphoneme | endphoneme |
phoneme U | phoneme U | ||||
vowel starttype (u) endtype (u) | |||||
vowel starttype (o) endtype (o) | |||||
length 150 | length 150 | ||||
formants vowel/u | formants vowel/u | ||||
endphoneme | endphoneme |
phoneme U | phoneme U | ||||
vowel starttype (u) endtype (u) | |||||
vowel starttype (o) endtype (o) | |||||
length 150 | length 150 | ||||
formants vowel/o-_3 | formants vowel/o-_3 | ||||
endphoneme | endphoneme |
phoneme U | phoneme U | ||||
vowel starttype (u) endtype (u) | |||||
vowel starttype (o) endtype (o) | |||||
length 150 | length 150 | ||||
formants vowel/8_2 | formants vowel/8_2 | ||||
endphoneme | endphoneme |
phoneme i: | phoneme i: | ||||
vowel starttype (i) endtype (i) | vowel starttype (i) endtype (i) | ||||
length 200 | |||||
length 220 | |||||
formants vowel/i | formants vowel/i | ||||
// linkout ; | // linkout ; | ||||
endphoneme | endphoneme | ||||
phoneme e: | phoneme e: | ||||
vowel starttype (e) endtype (e) | vowel starttype (e) endtype (e) | ||||
length 240 | |||||
length 250 | |||||
formants vowel/e_3 | formants vowel/e_3 | ||||
endphoneme | endphoneme | ||||
vowelout f1=0 f2=1600 -300 250 f3=-100 80 rms=20 | vowelout f1=0 f2=1600 -300 250 f3=-100 80 rms=20 | ||||
lengthmod 2 | lengthmod 2 | ||||
wave ustop/t_dnt%50 | wave ustop/t_dnt%50 | ||||
before _ ustop/t_dnt%35 | |||||
before _ ustop/t_dnt%45 | |||||
switchvoicing d | switchvoicing d | ||||
endphoneme | endphoneme | ||||
vowelout f1=0 f2=1600 -300 250 f3=-100 80 rms=20 | vowelout f1=0 f2=1600 -300 250 f3=-100 80 rms=20 | ||||
lengthmod 2 | lengthmod 2 | ||||
wave ustop/t_dnt%60 | wave ustop/t_dnt%60 | ||||
before _ ustop/t_dnt%30 | |||||
before _ ustop/t_dnt%35 | |||||
before r ustop/tr | before r ustop/tr | ||||
switchvoicing d | switchvoicing d | ||||
endphoneme | endphoneme |
vowelout f1=0 f2=1600 -300 250 f3=-100 80 rms=20 | vowelout f1=0 f2=1600 -300 250 f3=-100 80 rms=20 | ||||
lengthmod 2 | lengthmod 2 | ||||
wave ustop/t_dnt%50 | wave ustop/t_dnt%50 | ||||
before _ ustop/t_dnt%25 | |||||
before _ ustop/t_dnt%35 | |||||
before r ustop/tr | before r ustop/tr | ||||
switchvoicing d[ | switchvoicing d[ | ||||
endphoneme | endphoneme | ||||
include ph_swahili | include ph_swahili | ||||
//phonemetable f_en base | |||||
//phonemetable basef base | |||||
//include pf | |||||
//phonemetable f_en basef | |||||
//include pf_english | //include pf_english |
CompileInit(); | CompileInit(); | ||||
exit(0); | exit(0); | ||||
} | } | ||||
if(strcmp(param,"--lex=ru")==0) | |||||
{ | |||||
if(LoadPhData() != 1) | |||||
{ | |||||
fprintf(stderr,"Failed to load phoneme data\n"); | |||||
exit(1); | |||||
} | |||||
CompareLexicon(MENU_LEXICON_RU); | |||||
exit(0); | |||||
} | |||||
} | } | ||||
gui_flag = 1; | gui_flag = 1; | ||||
case MENU_SPEAK_VOICE: | case MENU_SPEAK_VOICE: | ||||
transldlg->ReadVoice(); | transldlg->ReadVoice(); | ||||
if(voicedlg != NULL) | |||||
voicedlg->WriteParams(); | |||||
// if(voicedlg != NULL) | |||||
// voicedlg->WriteParams(); | |||||
SetVoiceTitle(voice_name); | SetVoiceTitle(voice_name); | ||||
break; | break; | ||||
} | } |
void OnSaveAs(wxCommandEvent& event); | void OnSaveAs(wxCommandEvent& event); | ||||
void OnSaveSelect(wxCommandEvent& event); | void OnSaveSelect(wxCommandEvent& event); | ||||
void OnSavePitchenv(wxCommandEvent& event); | void OnSavePitchenv(wxCommandEvent& event); | ||||
void OnVoiceDlg(wxCommandEvent& event); | |||||
// void OnVoiceDlg(wxCommandEvent& event); | |||||
DECLARE_EVENT_TABLE() | DECLARE_EVENT_TABLE() | ||||
}; | }; |
// FILE MENU | // FILE MENU | ||||
file_menu = new wxMenu; | file_menu = new wxMenu; | ||||
file_menu->Append(MENU_SPECTRUM, _T("&Open")); | |||||
file_menu->Append(MENU_SPECTRUM2, _T("O&pen2")); | |||||
file_menu->Append(MENU_SPECTRUM, _("&Open")); | |||||
file_menu->Append(MENU_SPECTRUM2, _("O&pen2")); | |||||
// file_menu->Append(MENU_PROSODY, _T("&Prosody window")); | // file_menu->Append(MENU_PROSODY, _T("&Prosody window")); | ||||
if(type==0) | if(type==0) | ||||
{ | { | ||||
else | else | ||||
if(type==1) | if(type==1) | ||||
{ | { | ||||
file_menu->Append(SPECTSEQ_SAVE, _T("&Save")); | |||||
file_menu->Append(SPECTSEQ_SAVEAS, _T("Save &As")); | |||||
file_menu->Append(SPECTSEQ_SAVESELECT, _T("Save Selection")); | |||||
file_menu->Append(SPECTSEQ_SAVE, _("&Save")); | |||||
file_menu->Append(SPECTSEQ_SAVEAS, _("Save &As")); | |||||
file_menu->Append(SPECTSEQ_SAVESELECT, _("Save Selection")); | |||||
// file_menu->Append(SPECTSEQ_SAVEPITCH, _T("Save Pitch &Envelope")); | // file_menu->Append(SPECTSEQ_SAVEPITCH, _T("Save Pitch &Envelope")); | ||||
file_menu->Append(SPECTSEQ_CLOSE, _T("&Close")); | |||||
file_menu->Append(SPECTSEQ_CLOSE, _("&Close")); | |||||
// file_menu->Append(MENU_CLOSE_ALL, _T("Close &All")); | // file_menu->Append(MENU_CLOSE_ALL, _T("Close &All")); | ||||
} | } | ||||
else | else | ||||
if(type==2) | if(type==2) | ||||
{ | { | ||||
file_menu->Append(SPECTSEQ_SAVE, _T("&Save")); | |||||
file_menu->Append(SPECTSEQ_SAVEAS, _T("Save &As")); | |||||
file_menu->Append(SPECTSEQ_SAVE, _("&Save")); | |||||
file_menu->Append(SPECTSEQ_SAVEAS, _("Save &As")); | |||||
// file_menu->Append(SPECTSEQ_SAVEPITCH, _T("Save Pitch &Envelope")); | // file_menu->Append(SPECTSEQ_SAVEPITCH, _T("Save Pitch &Envelope")); | ||||
file_menu->Append(SPECTSEQ_CLOSE, _T("&Close")); | |||||
file_menu->Append(SPECTSEQ_CLOSE, _("&Close")); | |||||
// file_menu->Append(MENU_CLOSE_ALL, _T("Close &All")); | // file_menu->Append(MENU_CLOSE_ALL, _T("Close &All")); | ||||
} | } | ||||
file_menu->Append(MENU_QUIT, _T("&Quit")); | |||||
file_menu->Append(MENU_QUIT, _("&Quit")); | |||||
// SPEAK_MENU | // SPEAK_MENU | ||||
speak_menu = new wxMenu; | speak_menu = new wxMenu; | ||||
speak_menu->Append(MENU_SPEAK_TRANSLATE, _T("&Translate")); | |||||
speak_menu->Append(MENU_SPEAK_RULES, _T("Show &Rules")); | |||||
speak_menu->Append(MENU_SPEAK_TEXT, _T("&Speak")); | |||||
speak_menu->Append(MENU_SPEAK_TRANSLATE, _("&Translate")); | |||||
speak_menu->Append(MENU_SPEAK_RULES, _("Show &Rules")); | |||||
speak_menu->Append(MENU_SPEAK_TEXT, _("&Speak")); | |||||
speak_menu->AppendSeparator(); | speak_menu->AppendSeparator(); | ||||
speak_menu->Append(MENU_SPEAK_FILE, _T("Speak &file")); | |||||
speak_menu->Append(MENU_SPEAK_PAUSE, _T("&Pause")); | |||||
speak_menu->Append(MENU_SPEAK_STOP, _T("St&op")); | |||||
speak_menu->Append(MENU_SPEAK_FILE, _("Speak &file")); | |||||
speak_menu->Append(MENU_SPEAK_PAUSE, _("&Pause")); | |||||
speak_menu->Append(MENU_SPEAK_STOP, _("St&op")); | |||||
// VOICE MENU | // VOICE MENU | ||||
voice_menu = new wxMenu; | voice_menu = new wxMenu; | ||||
voice_menu->Append(MENU_SPEAK_VOICE, _T("Select &Voice")); | |||||
voice_menu->Append(MENU_SPEAK_VOICE, _("Select &Voice")); | |||||
// DATA MENU | // DATA MENU | ||||
data_menu = new wxMenu; | data_menu = new wxMenu; | ||||
data_menu->Append(MENU_COMPILE_PH, _T("Compile &phoneme data")); | |||||
data_menu->Append(MENU_COMPILE_DICT, _T("Compile &dictionary")); | |||||
data_menu->Append(MENU_COMPILE_MBROLA, _T("Compile &mbrola phonemes list")); | |||||
data_menu->Append(MENU_COMPILE_PH, _("Compile &phoneme data")); | |||||
data_menu->Append(MENU_COMPILE_DICT, _("Compile &dictionary")); | |||||
data_menu->Append(MENU_COMPILE_MBROLA, _("Compile &mbrola phonemes list")); | |||||
// OPTIONS MENU | // OPTIONS MENU | ||||
paths_menu = new wxMenu; | paths_menu = new wxMenu; | ||||
paths_menu->Append(MENU_PATH1, _T("Phoneme data source")); | |||||
paths_menu->Append(MENU_PATH2, _T("Dictionary data source")); | |||||
paths_menu->Append(MENU_PATH3, _T("Synthesized sound WAV file")); | |||||
paths_menu->Append(MENU_PATH1, _("Phoneme data source")); | |||||
paths_menu->Append(MENU_PATH2, _("Dictionary data source")); | |||||
paths_menu->Append(MENU_PATH3, _("Synthesized sound WAV file")); | |||||
speak_menu->AppendSeparator(); | speak_menu->AppendSeparator(); | ||||
paths_menu->Append(MENU_PATH4, _T("Voice file to modify formant peaks")); | |||||
paths_menu->Append(MENU_PATH4, _("Voice file to modify formant peaks")); | |||||
option_menu = new wxMenu; | option_menu = new wxMenu; | ||||
option_menu->Append(MENU_PATHS, _T("Set &paths"), paths_menu); | |||||
option_menu->Append(MENU_PARAMS, _T("Speed")); | |||||
option_menu->Append(MENU_PATHS, _("Set &paths"), paths_menu); | |||||
option_menu->Append(MENU_PARAMS, _("Speed")); | |||||
// TOOLS | // TOOLS | ||||
vowelchart_menu = new wxMenu; | vowelchart_menu = new wxMenu; | ||||
vowelchart_menu->Append(MENU_VOWELCHART1, _T("From compiled phoneme data")); | |||||
vowelchart_menu->Append(MENU_VOWELCHART2, _T("From list of formants")); | |||||
vowelchart_menu->Append(MENU_VOWELCHART3, _T("From directory of vowel files")); | |||||
vowelchart_menu->Append(MENU_VOWELCHART1, _("From compiled phoneme data")); | |||||
vowelchart_menu->Append(MENU_VOWELCHART2, _("From list of formants")); | |||||
vowelchart_menu->Append(MENU_VOWELCHART3, _("From directory of vowel files")); | |||||
lexicon_menu = new wxMenu; | lexicon_menu = new wxMenu; | ||||
lexicon_menu->Append(MENU_LEXICON_RU, _T("Russian (lexicon.dict)")); | |||||
lexicon_menu->Append(MENU_LEXICON_DE, _T("German")); | |||||
lexicon_menu->Append(MENU_LEXICON_RU, _("Russian (lexicon.dict)")); | |||||
lexicon_menu->Append(MENU_LEXICON_DE, _("German")); | |||||
tools_menu = new wxMenu; | tools_menu = new wxMenu; | ||||
tools_menu->Append(MENU_VOWELCHART, _T("Make &Vowels Chart"), vowelchart_menu); | |||||
tools_menu->Append(MENU_VOWELCHART, _("Make &Vowels Chart"), vowelchart_menu); | |||||
// tools_menu->Append(MENU_LOAD_WAV, _T("Analyse WAV file")); | // tools_menu->Append(MENU_LOAD_WAV, _T("Analyse WAV file")); | ||||
tools_menu->Append(MENU_LEXICON, _T("Compare &Lexicon"), lexicon_menu); | |||||
tools_menu->Append(MENU_TO_UTF8, _T("Convert file to &UTF8")); | |||||
tools_menu->Append(MENU_COUNT_WORDS, _T("Count word &frequencies")); | |||||
tools_menu->Append(MENU_TEST , _T("Test (temporary)")); | |||||
tools_menu->Append(MENU_LEXICON, _("Compare &Lexicon"), lexicon_menu); | |||||
tools_menu->Append(MENU_TO_UTF8, _("Convert file to &UTF8")); | |||||
tools_menu->Append(MENU_COUNT_WORDS, _("Count word &frequencies")); | |||||
tools_menu->Append(MENU_TEST , _("Test (temporary)")); | |||||
// tools_menu->Append(MENU_TEST2 , _T("Test2")); | // tools_menu->Append(MENU_TEST2 , _T("Test2")); | ||||
// HELP MENU | // HELP MENU | ||||
help_menu = new wxMenu; | help_menu = new wxMenu; | ||||
help_menu->Append(MENU_ABOUT, _T("&About")); | |||||
help_menu->Append(MENU_ABOUT, _("&About")); | |||||
wxMenuBar *menu_bar = new wxMenuBar; | wxMenuBar *menu_bar = new wxMenuBar; | ||||
menu_bar->Append(file_menu, _T("&File")); | |||||
menu_bar->Append(speak_menu, _T("&Speak")); | |||||
menu_bar->Append(voice_menu, _T("&Voice")); | |||||
menu_bar->Append(option_menu, _T("&Options")); | |||||
menu_bar->Append(tools_menu, _T("&Tools")); | |||||
menu_bar->Append(data_menu, _T("&Compile")); | |||||
menu_bar->Append(help_menu, _T("&Help")); | |||||
menu_bar->Append(file_menu, _("&File")); | |||||
menu_bar->Append(speak_menu, _("&Speak")); | |||||
menu_bar->Append(voice_menu, _("&Voice")); | |||||
menu_bar->Append(option_menu, _("&Options")); | |||||
menu_bar->Append(tools_menu, _("&Tools")); | |||||
menu_bar->Append(data_menu, _("&Compile")); | |||||
menu_bar->Append(help_menu, _("&Help")); | |||||
return(menu_bar); | return(menu_bar); | ||||
} // end of MakeMenu | } // end of MakeMenu |
wxString path_pitches; | wxString path_pitches; | ||||
wxString path_wave; | wxString path_wave; | ||||
wxString path_speech; | wxString path_speech; | ||||
wxString path_voices; | |||||
wxString path_phsource; | wxString path_phsource; | ||||
wxString path_dictsource; | wxString path_dictsource; | ||||
wxString path_speaktext; | wxString path_speaktext; | ||||
pConfig->Read(_T("/pitchpath"),&path_pitches,basedir+_T("/pitch")); | pConfig->Read(_T("/pitchpath"),&path_pitches,basedir+_T("/pitch")); | ||||
pConfig->Read(_T("/wavepath"),&path_wave,wxEmptyString); | pConfig->Read(_T("/wavepath"),&path_wave,wxEmptyString); | ||||
pConfig->Read(_T("/speechpath"),&path_speech,wxEmptyString); | pConfig->Read(_T("/speechpath"),&path_speech,wxEmptyString); | ||||
pConfig->Read(_T("/voicepath"),&path_voices,basedir+_T("/voices")); | |||||
pConfig->Read(_T("/voicename"),&string,wxEmptyString); | pConfig->Read(_T("/voicename"),&string,wxEmptyString); | ||||
strcpy(voice_name,string.mb_str(wxConvLocal)); | strcpy(voice_name,string.mb_str(wxConvLocal)); | ||||
pConfig->Read(_T("/phsource"),&path_phsource,basedir+_T("/phsource")); | pConfig->Read(_T("/phsource"),&path_phsource,basedir+_T("/phsource")); | ||||
pConfig->Write(_T("/pitchpath"),path_pitches); | pConfig->Write(_T("/pitchpath"),path_pitches); | ||||
pConfig->Write(_T("/wavepath"),path_wave); | pConfig->Write(_T("/wavepath"),path_wave); | ||||
pConfig->Write(_T("/speechpath"),path_speech); | pConfig->Write(_T("/speechpath"),path_speech); | ||||
pConfig->Write(_T("/voicepath"),path_voices); | |||||
pConfig->Write(_T("/voicename"),wxString(voice_name,wxConvLocal)); | pConfig->Write(_T("/voicename"),wxString(voice_name,wxConvLocal)); | ||||
pConfig->Write(_T("/phsource"),path_phsource); | pConfig->Write(_T("/phsource"),path_phsource); | ||||
pConfig->Write(_T("/dictsource"),path_dictsource); | pConfig->Write(_T("/dictsource"),path_dictsource); |
extern wxString path_spectload; | extern wxString path_spectload; | ||||
extern wxString path_spectload2; | extern wxString path_spectload2; | ||||
extern wxString path_pitches; | extern wxString path_pitches; | ||||
extern wxString path_voices; | |||||
extern wxString path_phsource; | extern wxString path_phsource; | ||||
extern wxString path_dictsource; | extern wxString path_dictsource; | ||||
extern wxString path_modifiervoice; | extern wxString path_modifiervoice; |
#define phPLACE 0xf0000 | #define phPLACE 0xf0000 | ||||
#define phPLACE_pla 0x60000 | #define phPLACE_pla 0x60000 | ||||
#define N_PHONEME_TABS 50 // number of phoneme tables | |||||
#define N_PHONEME_TABS 100 // number of phoneme tables | |||||
#define N_PHONEME_TAB 256 // max phonemes in a phoneme table | #define N_PHONEME_TAB 256 // max phonemes in a phoneme table | ||||
#define N_PHONEME_TAB_NAME 32 // must be multiple of 4 | #define N_PHONEME_TAB_NAME 32 // must be multiple of 4 | ||||
case espeakPITCH: | case espeakPITCH: | ||||
if(new_value > 99) new_value = 99; | if(new_value > 99) new_value = 99; | ||||
if(new_value < 0) new_value = 0; | |||||
embedded_value[EMBED_P] = new_value; | embedded_value[EMBED_P] = new_value; | ||||
break; | break; | ||||
static void PitchAdjust(int pitch_adjustment) | static void PitchAdjust(int pitch_adjustment) | ||||
{//========================================== | {//========================================== | ||||
int ix, factor; | int ix, factor; | ||||
extern unsigned char pitch_adjust_tab[100]; | |||||
voice->pitch_base = (voice->pitch_base * pitch_adjust_tab[pitch_adjustment])/128; | voice->pitch_base = (voice->pitch_base * pitch_adjust_tab[pitch_adjustment])/128; | ||||
HKEY RegKey; | HKEY RegKey; | ||||
unsigned long size; | unsigned long size; | ||||
unsigned long var_type; | unsigned long var_type; | ||||
char *env; | |||||
unsigned char buf[100]; | unsigned char buf[100]; | ||||
if((env = getenv("espeak-path")) != NULL) | |||||
{ | |||||
sprintf(path_home,"%s/espeak-data",env); | |||||
if(GetFileLength(path_home) == -2) | |||||
return; // an espeak-data directory exists | |||||
} | |||||
buf[0] = 0; | buf[0] = 0; | ||||
RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Speech\\Voices\\Tokens\\eSpeak", 0, KEY_READ, &RegKey); | RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Speech\\Voices\\Tokens\\eSpeak", 0, KEY_READ, &RegKey); | ||||
size = sizeof(buf); | size = sizeof(buf); | ||||
sprintf(path_home,"%s\\espeak-data",buf); | sprintf(path_home,"%s\\espeak-data",buf); | ||||
#else | #else | ||||
char *env; | |||||
if((env = getenv("ESPEAK-DATA-PATH")) != NULL) | |||||
{ | |||||
snprintf(path_home,sizeof(path_home),"%s/espeak-data",env); | |||||
if(GetFileLength(path_home) == -2) | |||||
return; // an espeak-data directory exists | |||||
} | |||||
snprintf(path_home,sizeof(path_home),"%s/espeak-data",getenv("HOME")); | snprintf(path_home,sizeof(path_home),"%s/espeak-data",getenv("HOME")); | ||||
if(access(path_home,R_OK) != 0) | if(access(path_home,R_OK) != 0) | ||||
{ | { |
HKEY RegKey; | HKEY RegKey; | ||||
unsigned long size; | unsigned long size; | ||||
unsigned long var_type; | unsigned long var_type; | ||||
char *env; | |||||
unsigned char buf[100]; | unsigned char buf[100]; | ||||
if(path != NULL) | if(path != NULL) | ||||
sprintf(path_home,"%s/espeak-data",path); | sprintf(path_home,"%s/espeak-data",path); | ||||
return; | return; | ||||
} | } | ||||
if((env = getenv("espeak-path")) != NULL) | |||||
{ | |||||
sprintf(path_home,"%s/espeak-data",env); | |||||
if(GetFileLength(path_home) == -2) | |||||
return; // an espeak-data directory exists | |||||
} | |||||
buf[0] = 0; | buf[0] = 0; | ||||
RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Speech\\Voices\\Tokens\\eSpeak", 0, KEY_READ, &RegKey); | RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Speech\\Voices\\Tokens\\eSpeak", 0, KEY_READ, &RegKey); | ||||
size = sizeof(buf); | size = sizeof(buf); | ||||
sprintf(path_home,"%s\\espeak-data",buf); | sprintf(path_home,"%s\\espeak-data",buf); | ||||
#else | #else | ||||
char *env; | |||||
if(path != NULL) | if(path != NULL) | ||||
{ | { | ||||
snprintf(path_home,sizeof(path_home),"%s/espeak-data",path); | snprintf(path_home,sizeof(path_home),"%s/espeak-data",path); | ||||
return; | return; | ||||
} | } | ||||
if((env = getenv("ESPEAK-DATA-PATH")) != NULL) | |||||
{ | |||||
snprintf(path_home,sizeof(path_home),"%s/espeak-data",env); | |||||
if(GetFileLength(path_home) == -2) | |||||
return; // an espeak-data directory exists | |||||
} | |||||
snprintf(path_home,sizeof(path_home),"%s/espeak-data",getenv("HOME")); | snprintf(path_home,sizeof(path_home),"%s/espeak-data",getenv("HOME")); | ||||
if(access(path_home,R_OK) != 0) | if(access(path_home,R_OK) != 0) | ||||
{ | { |
menu_spectdisplay->Append(207,_T("Hide Interpolation CTRL+SHIFT+Q")); | menu_spectdisplay->Append(207,_T("Hide Interpolation CTRL+SHIFT+Q")); | ||||
menu_spectdisplay->Append(205,_T("Zero Peaks CTRL+Z")); | menu_spectdisplay->Append(205,_T("Zero Peaks CTRL+Z")); | ||||
menu_spectdisplay->Append(210,_T("Toggle Marker"),menu_markers); | menu_spectdisplay->Append(210,_T("Toggle Marker"),menu_markers); | ||||
menu_spectdisplay->Append(211,_T("Apply the formant adjustments from current voice")); | |||||
menu_spectdisplay->Append(211,_T("Apply the formant adjustments from a voice file")); | |||||
menu_spectdisplay->AppendSeparator(); | menu_spectdisplay->AppendSeparator(); | ||||
menu_spectdisplay->Append(208,_T("Play Selected Frame F1")); | menu_spectdisplay->Append(208,_T("Play Selected Frame F1")); | ||||
menu_spectdisplay->Append(209,_T("Play All F2")); | menu_spectdisplay->Append(209,_T("Play All F2")); |
#include "translate.h" | #include "translate.h" | ||||
#include "wave.h" | #include "wave.h" | ||||
const char *version_string = "1.26.09 20.Jun.07"; | |||||
const char *version_string = "1.26.10 23.Jun.07"; | |||||
const int version_phdata = 0x012601; | const int version_phdata = 0x012601; | ||||
int option_device_number = -1; | int option_device_number = -1; |
int n_soundicon_tab=0; | int n_soundicon_tab=0; | ||||
SOUND_ICON soundicon_tab[N_SOUNDICON_TAB]; | SOUND_ICON soundicon_tab[N_SOUNDICON_TAB]; | ||||
#define RMS1 16 // | |||||
#define RMS2 20 // 16 - 20 | |||||
#define RMS_GLOTTAL1 35 // vowel before glottal stop | #define RMS_GLOTTAL1 35 // vowel before glottal stop | ||||
#define RMS_START 28 // 14 - 30 | #define RMS_START 28 // 14 - 30 | ||||
extern unsigned char env_rise[128]; | extern unsigned char env_rise[128]; | ||||
extern unsigned char env_frise[128]; | extern unsigned char env_frise[128]; | ||||
#define MAX_PITCH_VALUE 101 | |||||
extern unsigned char pitch_adjust_tab[MAX_PITCH_VALUE+1]; | |||||
// queue of commands for wavegen | // queue of commands for wavegen | ||||
#define WCMD_AMPLITUDE 1 | #define WCMD_AMPLITUDE 1 |
// use this table if vowel is not the last in the word | // use this table if vowel is not the last in the word | ||||
static unsigned char length_mods_en[100] = { | static unsigned char length_mods_en[100] = { | ||||
/* a , t s n d z r N <- next */ | /* a , t s n d z r N <- next */ | ||||
100,120,100,105, 95,110,110,100, 95, 100, /* a <- next2 */ | |||||
100,120,100,105,100,110,110,100, 95, 100, /* a <- next2 */ | |||||
105,120,105,110,125,130,135,115,125, 100, /* , */ | 105,120,105,110,125,130,135,115,125, 100, /* , */ | ||||
105,120, 75,100, 75,105,120, 85, 75, 100, /* t */ | 105,120, 75,100, 75,105,120, 85, 75, 100, /* t */ | ||||
105,120, 85,105, 95,115,120,100, 95, 100, /* s */ | 105,120, 85,105, 95,115,120,100, 95, 100, /* s */ | ||||
// if(found || (dictionary_flags2 != 0)) | // if(found || (dictionary_flags2 != 0)) | ||||
// prefix_flags = 1; // ?? this looks wrong | // prefix_flags = 1; // ?? this looks wrong | ||||
if((found==0) && (dictionary_flags2 != 0)) | |||||
prefix_flags = 1; | |||||
} | } | ||||
if(found == 0) | if(found == 0) | ||||
{ | { |
break; | break; | ||||
case VD_LOAD: | case VD_LOAD: | ||||
Load(); | |||||
// Load(); | |||||
break; | break; | ||||
case VD_SAVE: | case VD_SAVE: | ||||
Save(); | |||||
// Save(); | |||||
break; | break; | ||||
case VD_USEPITCH: | case VD_USEPITCH: | ||||
ReadParams(); | ReadParams(); | ||||
} | } | ||||
#ifdef deleted | |||||
void VoiceDlg::Save() | void VoiceDlg::Save() | ||||
{//================== | {//================== | ||||
int pk; | int pk; | ||||
SetSpinCtrl(voicedlg->vd_pitch2,pitch2); | SetSpinCtrl(voicedlg->vd_pitch2,pitch2); | ||||
ReadParams(); | ReadParams(); | ||||
} // end of VoiceDlg::Load | } // end of VoiceDlg::Load | ||||
#endif | |||||
void VoiceDlg::SetFromSpect(SpectSeq* spect) | void VoiceDlg::SetFromSpect(SpectSeq* spect) | ||||
{//========================================= | {//========================================= |
// pitch,speed, | // pitch,speed, | ||||
int embedded_default[N_EMBEDDED_VALUES] = {0,50,170,100,50, 0,50, 0,170,0,0,0,0,0}; | int embedded_default[N_EMBEDDED_VALUES] = {0,50,170,100,50, 0,50, 0,170,0,0,0,0,0}; | ||||
static int embedded_max[N_EMBEDDED_VALUES] = {0,99,360,300,99,99,99, 0,360,0,0,0,0,4}; | |||||
static int embedded_max[N_EMBEDDED_VALUES] = {0,0x7fff,360,300,99,99,99, 0,360,0,0,0,0,4}; | |||||
#define N_CALLBACK_IX N_WAV_BUF-2 // adjust this delay to match display with the currently spoken word | #define N_CALLBACK_IX N_WAV_BUF-2 // adjust this delay to match display with the currently spoken word | ||||
int current_source_index=0; | int current_source_index=0; | ||||
// set from y = pow(2,x) * 128, x=-1 to 1 | // set from y = pow(2,x) * 128, x=-1 to 1 | ||||
unsigned char pitch_adjust_tab[100] = { | |||||
unsigned char pitch_adjust_tab[MAX_PITCH_VALUE+1] = { | |||||
64, 65, 66, 67, 68, 69, 70, 71, | 64, 65, 66, 67, 68, 69, 70, 71, | ||||
72, 73, 74, 75, 76, 77, 78, 79, | 72, 73, 74, 75, 76, 77, 78, 79, | ||||
80, 81, 82, 83, 84, 86, 87, 88, | 80, 81, 82, 83, 84, 86, 87, 88, | ||||
174,176,179,181,184,186,189,191, | 174,176,179,181,184,186,189,191, | ||||
194,197,199,202,205,208,211,214, | 194,197,199,202,205,208,211,214, | ||||
217,220,223,226,229,232,236,239, | 217,220,223,226,229,232,236,239, | ||||
242,246,249,252 }; | |||||
242,246,249,252, 254,255 }; | |||||
int WavegenFill(int fill_zeros); | int WavegenFill(int fill_zeros); | ||||
int command; | int command; | ||||
int ix; | int ix; | ||||
int factor; | int factor; | ||||
int pitch_value; | |||||
command = control & 0x1f; | command = control & 0x1f; | ||||
if((control & 0x60) == 0x60) | if((control & 0x60) == 0x60) | ||||
case EMBED_P: | case EMBED_P: | ||||
case EMBED_T: | case EMBED_T: | ||||
// adjust formants to give better results for a different voice pitch | // adjust formants to give better results for a different voice pitch | ||||
factor = 256 + (25 * (embedded_value[EMBED_P] - 50))/50; | |||||
if((pitch_value = embedded_value[EMBED_P]) > MAX_PITCH_VALUE) | |||||
pitch_value = MAX_PITCH_VALUE; | |||||
factor = 256 + (25 * (pitch_value - 50))/50; | |||||
for(ix=0; ix<=5; ix++) | for(ix=0; ix<=5; ix++) | ||||
{ | { | ||||
wvoice->freq[ix] = (wvoice->freq2[ix] * factor)/256; | wvoice->freq[ix] = (wvoice->freq2[ix] * factor)/256; | ||||
int x; | int x; | ||||
int base; | int base; | ||||
int range; | int range; | ||||
int pitch_value; | |||||
#ifdef LOG_FRAMES | #ifdef LOG_FRAMES | ||||
f_log=fopen("log-espeakedit","a"); | f_log=fopen("log-espeakedit","a"); | ||||
pitch2 = x; | pitch2 = x; | ||||
} | } | ||||
base = (wvoice->pitch_base * pitch_adjust_tab[embedded_value[EMBED_P]])/128; | |||||
if((pitch_value = embedded_value[EMBED_P]) > MAX_PITCH_VALUE) | |||||
pitch_value = MAX_PITCH_VALUE; | |||||
if(pitch_value < 0) | |||||
pitch_value = 0; | |||||
base = (wvoice->pitch_base * pitch_adjust_tab[pitch_value])/128; | |||||
range = (wvoice->pitch_range * embedded_value[EMBED_R])/50; | range = (wvoice->pitch_range * embedded_value[EMBED_R])/50; | ||||
// compensate for change in pitch when the range is narrowed or widened | // compensate for change in pitch when the range is narrowed or widened |
[Setup] | [Setup] | ||||
AppName=eSpeak | AppName=eSpeak | ||||
AppVerName=eSpeak version 1.26 | |||||
AppVerName=eSpeak version 1.26.10 | |||||
DefaultDirName={pf}\eSpeak | DefaultDirName={pf}\eSpeak | ||||
DefaultGroupName=eSpeak | DefaultGroupName=eSpeak | ||||
OutputBaseFilename=setup_espeak | OutputBaseFilename=setup_espeak | ||||
Compression=lzma | Compression=lzma | ||||
SolidCompression=yes | SolidCompression=yes | ||||
ShowLanguageDialog=auto | |||||
[InstallDelete] | [InstallDelete] | ||||
Type: files; Name: "{app}\espeak.dll" | Type: files; Name: "{app}\espeak.dll" | ||||
Root: HKLM; Subkey: "Software\Microsoft\Speech\PhoneConverters\Tokens\eSpeak"; Flags: deletekey uninsdeletekey | Root: HKLM; Subkey: "Software\Microsoft\Speech\PhoneConverters\Tokens\eSpeak"; Flags: deletekey uninsdeletekey | ||||
[Languages] | |||||
Name: "en"; MessagesFile: "compiler:Default.isl" | |||||
Name: "af"; MessagesFile: "compiler:Languages\Afrikaans.isl" | |||||
Name: "cs"; MessagesFile: "compiler:Languages\Czech.isl" | |||||
Name: "de"; MessagesFile: "compiler:Languages\German.isl" | |||||
Name: "el"; MessagesFile: "compiler:Languages\Greek.isl" | |||||
Name: "es"; MessagesFile: "compiler:Languages\Spanish.isl" | |||||
Name: "fi"; MessagesFile: "compiler:Languages\Finnish.isl" | |||||
Name: "fr"; MessagesFile: "compiler:Languages\French.isl" | |||||
Name: "hr"; MessagesFile: "compiler:Languages\Croatian.isl" | |||||
Name: "hu"; MessagesFile: "compiler:Languages\Hungarian.isl" | |||||
Name: "it"; MessagesFile: "compiler:Languages\Italian.isl" | |||||
Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl" | |||||
Name: "pl"; MessagesFile: "compiler:Languages\Polish.isl" | |||||
Name: "pt"; MessagesFile: "compiler:Languages\Portuguese.isl" | |||||
Name: "ro"; MessagesFile: "compiler:Languages\Romanian.isl" | |||||
Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl" | |||||
Name: "sk"; MessagesFile: "compiler:Languages\Slovak.isl" | |||||
Name: "sr"; MessagesFile: "compiler:Languages\Serbian.isl" | |||||
[CustomMessages] | |||||
v1=Select which voices to install | |||||
v2=or press Enter to accept defaults | |||||
v3=Enter voice names, eg: (for Portuguese) pt, or with a variant, eg: pt+13 | |||||
pt.v1=Seleccione as vozes que pretende instalar | |||||
pt.v2=ou precione enter para aceitar as predefinidas. | |||||
pt.v3=Introduza os nomes das vozes, ex: (Brazil) pt (ou Portugal) pt-pt, ou com outras características, ex: pt+13 | |||||
[Code] | [Code] | ||||
var | var | ||||
$41: Result := 'sw'; | $41: Result := 'sw'; | ||||
$52: Result := 'cy'; | $52: Result := 'cy'; | ||||
end; | end; | ||||
// is there a match on the full language code? | |||||
case language of | |||||
$816: Result := 'pt-pt'; | |||||
$81a: Result := 'sr'; | |||||
$c1a: Result := 'sr'; | |||||
end; | |||||
end; | end; | ||||
'ro': value := $418; | 'ro': value := $418; | ||||
'ru': value := $419; | 'ru': value := $419; | ||||
'sk': value := $41b; | 'sk': value := $41b; | ||||
'sr': value := $81a; | |||||
'sv': value := $41d; | 'sv': value := $41d; | ||||
'sw': value := $441; | 'sw': value := $441; | ||||
'vi': value := $42a; | 'vi': value := $42a; | ||||
begin | begin | ||||
// Create the language selection page | // Create the language selection page | ||||
lang := ActiveLanguage; | lang := ActiveLanguage; | ||||
Page := CreateInputQueryPage(wpSelectDir, | |||||
'Select which voices to install', 'or press Enter to accept defaults', | |||||
'Enter voice names, eg: (for Portuguese) pt, or with a variant, eg: pt+13'); | |||||
Page := CreateInputQueryPage(wpSelectDir,CustomMessage('v1'),CustomMessage('v2'),CustomMessage('v3')); | |||||
// Add items (False means it's not a password edit) | // Add items (False means it's not a password edit) | ||||
Page.Add('', False); | Page.Add('', False); | ||||
Page.Add('', False); | Page.Add('', False); |
[Setup] | [Setup] | ||||
AppName=eSpeakEdit | AppName=eSpeakEdit | ||||
AppVerName=eSpeakEdit version 1.26 | |||||
AppVerName=eSpeakEdit version 1.26.10 | |||||
DefaultDirName={pf}\eSpeak | DefaultDirName={pf}\eSpeak | ||||
DefaultGroupName=eSpeak | DefaultGroupName=eSpeak | ||||
OutputBaseFilename=setup_espeakedit | OutputBaseFilename=setup_espeakedit | ||||
Compression=lzma | Compression=lzma | ||||
SolidCompression=yes | SolidCompression=yes | ||||
DirExistsWarning=no | DirExistsWarning=no | ||||
ShowLanguageDialog=auto | |||||
[Files] | [Files] | ||||
Source: "espeakedit.exe"; DestDir: "{app}" | Source: "espeakedit.exe"; DestDir: "{app}" | ||||
;Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme | ;Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme | ||||
[Languages] | |||||
Name: "en"; MessagesFile: "compiler:Default.isl" | |||||
Name: "af"; MessagesFile: "compiler:Languages\Afrikaans.isl" | |||||
Name: "cs"; MessagesFile: "compiler:Languages\Czech.isl" | |||||
Name: "de"; MessagesFile: "compiler:Languages\German.isl" | |||||
Name: "el"; MessagesFile: "compiler:Languages\Greek.isl" | |||||
Name: "es"; MessagesFile: "compiler:Languages\Spanish.isl" | |||||
Name: "fi"; MessagesFile: "compiler:Languages\Finnish.isl" | |||||
Name: "fr"; MessagesFile: "compiler:Languages\French.isl" | |||||
Name: "hr"; MessagesFile: "compiler:Languages\Croatian.isl" | |||||
Name: "hu"; MessagesFile: "compiler:Languages\Hungarian.isl" | |||||
Name: "it"; MessagesFile: "compiler:Languages\Italian.isl" | |||||
Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl" | |||||
Name: "pl"; MessagesFile: "compiler:Languages\Polish.isl" | |||||
Name: "pt"; MessagesFile: "compiler:Languages\Portuguese.isl" | |||||
Name: "ro"; MessagesFile: "compiler:Languages\Romanian.isl" | |||||
Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl" | |||||
Name: "sk"; MessagesFile: "compiler:Languages\Slovak.isl" | |||||
Name: "sr"; MessagesFile: "compiler:Languages\Serbian.isl" | |||||