Browse Source

[1.26.10] Lengthen phoneme [n] slightly.

Internationalization of Windows espeak and espeakedit installers.

git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@54 d46cf337-b52f-0410-862d-fd96e6ae7743
master
jonsd 18 years ago
parent
commit
5414063759

+ 22
- 16
dictsource/af_list View File

@@ -1,4 +1,4 @@
//maintainer: Willem van der Walt
//maintainer: Willem van der Walt
// email: [email protected]
// tel: +27 12 8413996
// Meraka Institute, CSIR
@@ -91,6 +91,7 @@ brittanje $2
ceylon s@lOn
china S'ina
engeland 'EN@lant
kanada kanad%a
kongo kONgu
mesopotamië mEsuput'A:mi@
mosambiek musamb'ik
@@ -116,6 +117,7 @@ bothma bOtma
breytenbach breIt@nbax2
carl kA:r@L
charles _^_EN
chopin S%OpA~
chris krIs
christo krIstu
christian krIstian
@@ -137,6 +139,8 @@ george _^_EN
gerhard x2&rart
grange x2rA:nsi
gustav gustaf
haydn hAId@n
helena hil'e@na
jacobus jako@bWs
jacques ZA:k
jane _^_EN
@@ -144,6 +148,7 @@ jean ZA~n
jesus ji:sWs
joey dZ@Ui
john _^_EN
lategan lA:t@x2an
le l@
leandra li'andra
leroux l@ru
@@ -155,10 +160,12 @@ louw l'@U
maria mar'ia
martin m'A:rt@n
michiel $2
mostert m'Ost@rt
mostert m'Ost@rt
mozart mo@tsart
natasha n%at'aSa
paul p@Ul
paulus p@UlWs
philip fIl@p
pierre p'e@r
petrus pe@trWs
phoebe fi:bi
@@ -171,6 +178,7 @@ schalk sk'alk
scheepers ske@p@rs
schoor sko@r
shakespeare _^_EN
tania tanja
terblanche t@rblA:nS
theron tr'On
viljoen $2
@@ -235,6 +243,7 @@ omdat $pause
sodat $pause
voordat $pause
nadat $pause
ofskoon $2 $pause
totdat tOdat $pause
as ,as $pause
soos $pause
@@ -334,7 +343,7 @@ bv beIf'o@rbe@lt
aanbid $2
aanstaande $2
agenda ax2'Enda
aikôna %aik'O:na
algaande $2
algehele alx2@h,e@l@
alles al@s
alternatiewe $4
@@ -358,7 +367,6 @@ betekenis b@te@k@n@s
bewe be@v@
bewend be@v@nt
bewering b@ve@rIN
biblioteek $4
bostaande b'o@stA:nd@

dadelik dA:d@lIk
@@ -401,12 +409,12 @@ gomorra x2@mOra

hallo h'Il,@U
hanteer $2
hardop hart?Op
heeltemal he@lt@mal
heengaan he@nx2A:n
hek h&k
hekke h&k@
helaas he@l'A:s
hele he@l@
here he@r@
hoewel huv'&l
hoofsaaklik $2
@@ -416,8 +424,8 @@ idee $2
ietwat itvat
ignoreer ix2no@r'e@r
inagneming @nax2ne@m@N
inderdaad @nd@rd'A:t
ingang Inx2aN
inkluis $2
intens @nt'Ens
intensiteit $4

@@ -435,6 +443,7 @@ krediet kr@dit
kritiek krIt'ik
kultuur $2
kunsmatige kWnsm'A:t@x2@
kwansuis $2

latere l'A:t@r@
lekker l&k@r
@@ -472,7 +481,7 @@ numeri nWm@ri

omtrent Omtr'Ent
onbegrip $1
onderstebo On@rst@b,o@
onderweg $3
onderwyser $3
ongeag $1
ongeduld $1
@@ -491,6 +500,8 @@ onraad $1
onrus $1
oorkom $2
oorleef $2
oorsee $2
oorsese $2
oorspronklike $2
oranje $2

@@ -517,10 +528,8 @@ sobere s'o@b@r@
sombere s'Omb@r@
sodra so@dr'A:
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
spesmaas $2
stabiel stab'il
@@ -542,11 +551,7 @@ uiteindelik $2

vaarwel fA:rv'&l
vanaf fanaf
vandag $2
vandaan $2
vanjaar $2
vanoggend fan'Ox2@nt
vanuit fan'Yyt
vandat $1
veraf f&r_af
verafgeleë f&rafx2@le@@
verantwoordelikheid f@rantv'o@rd@l@keIt
@@ -571,6 +576,7 @@ voorgee fo@rx2e@
voorkom $2
voormalige fo@rm'A:l@x2@
voorsien $2
vorendag $3
vorige fo@r@x2@
vrek fr&k


+ 204
- 102
dictsource/af_rules
File diff suppressed because it is too large
View File


+ 38
- 2
dictsource/de_list View File

@@ -5,15 +5,51 @@
// 1. Change ['i:] to [=I@] at end of word


// Letters
//========
// Characters
//===========
// If a letter has a "word" pronunciation which is different from its
// "letter" name, then include the letter name here, with the letter
// prefixed by a _ character.

// Include a _ before a character if it's name should only be
// spoken when "speak punctuation" option is on.

_. pUnkt
_, 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
//========

+ 14
- 5
dictsource/de_rules View File

@@ -1079,13 +1079,22 @@
é e:
ée 'e:
é (_ 'e:
æ E
ø W
ç s
č tS
š S
ž Z

, (D kOma
/ slaS
% p@-*o:ts'Ent
$ dOl@
€ OY*o:
£ paUnd
$ dOl'A:

. pUnkt
. (. _:
\.) .

* StE*n
*) * (*
**
**) * (_ _::


+ 2
- 2
dictsource/dict_phonemes View File

@@ -159,8 +159,8 @@ o: u u: y Y y: Y:

: b c C d dZ f g
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

+ 1
- 0
dictsource/en_list View File

@@ -960,6 +960,7 @@ holster hoUlst3
holy hoUlI2
homepage hoUmpeIdZ
hominem h0mInEm
hopi hoUpi:
horizontal $3
hospitable h0sp'It@b@L
hostage h0stIdZ

+ 3
- 2
dictsource/en_rules View File

@@ -563,7 +563,7 @@
f) all (a al
f) all (ib al
_C) all (ow al
h) all (w O:l
h) all (C O:l
sm) all O:l
st) all O:l
t) all O:l
@@ -4227,8 +4227,9 @@
_) re (dC rE
_) re (dr r%i:
_) re (eduP2 r%i:
_) re (eqP2 r%i:
_) re (emP2 r%i:
_) re (enP2 r%i:
_) re (eqP2 r%i:
_) re (exP2 r%i:
referend rEf@r'End
re (fug rE

+ 23
- 3
dictsource/fr_list View File

@@ -179,7 +179,7 @@ mbrola Em'bRola
mlle mad@mwaz'El
mme mad'am
mr m@sj'Y
p.s pOstkRipt'Om
p.s pOftkRipt'Om
ratp 'ER:'a:t'e:p'e
s.t.p s'il:t'@:pl'E
s.v.p s'il:v'u:pl'E
@@ -318,7 +318,8 @@ où $pause

// auxillary verbs (be, have, can, etc)
suis $u+ $verb
est E $u+
est Et2 $u+
d'est d'Est
sommes $u+
êtes $u+
sont $u+
@@ -356,8 +357,13 @@ y i:gR'Ek $atend

scient si
bénéficient benefisi $verb
président pRezidA~t2
président pRezid'A~
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
@@ -387,6 +393,20 @@ fils fis
mars maRs
pays pEi
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
c'est sEt2 $u
qu'à ka

+ 1
- 0
dictsource/hu_rules View File

@@ -200,6 +200,7 @@ szamue) ly lli
A) r (A R
C) r (A R
r (C R
r (ó_ R2
rr RR

_) richa (rd RiCa:

+ 15
- 15
dictsource/pt_list View File

@@ -515,21 +515,21 @@ _é ,e&g'udU
a a $atend
e E $atend // assume letter-e at end of sentence
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

BIN
phsource/n/na View File


BIN
phsource/n/ne View File


BIN
phsource/n/ni View File


BIN
phsource/n/no View File


BIN
phsource/n/nu View File


+ 1
- 1
phsource/ph_english View File

@@ -175,7 +175,7 @@ endphoneme


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

+ 1
- 1
phsource/ph_english_n View File

@@ -54,7 +54,7 @@ endphoneme


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

+ 1
- 1
phsource/ph_english_rp View File

@@ -99,7 +99,7 @@ endphoneme


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

+ 1
- 1
phsource/ph_english_us View File

@@ -127,7 +127,7 @@ endphoneme


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

+ 3
- 3
phsource/ph_hungarian View File

@@ -8,7 +8,7 @@ endphoneme

phoneme i:
vowel starttype (i) endtype (i)
length 200
length 220
formants vowel/i
// linkout ;
endphoneme
@@ -27,7 +27,7 @@ endphoneme

phoneme e:
vowel starttype (e) endtype (e)
length 240
length 250
formants vowel/e_3
endphoneme

@@ -114,7 +114,7 @@ phoneme t // dental variant of /t/
vowelout f1=0 f2=1600 -300 250 f3=-100 80 rms=20
lengthmod 2
wave ustop/t_dnt%50
before _ ustop/t_dnt%35
before _ ustop/t_dnt%45
switchvoicing d
endphoneme


+ 1
- 1
phsource/ph_russian View File

@@ -75,7 +75,7 @@ phoneme t
vowelout f1=0 f2=1600 -300 250 f3=-100 80 rms=20
lengthmod 2
wave ustop/t_dnt%60
before _ ustop/t_dnt%30
before _ ustop/t_dnt%35
before r ustop/tr
switchvoicing d
endphoneme

+ 5
- 2
phsource/phonemes View File

@@ -911,7 +911,7 @@ phoneme t[ // dental variant of /t/
vowelout f1=0 f2=1600 -300 250 f3=-100 80 rms=20
lengthmod 2
wave ustop/t_dnt%50
before _ ustop/t_dnt%25
before _ ustop/t_dnt%35
before r ustop/tr
switchvoicing d[
endphoneme
@@ -1235,5 +1235,8 @@ phonemetable sw base
include ph_swahili


//phonemetable f_en base
//phonemetable basef base
//include pf

//phonemetable f_en basef
//include pf_english

BIN
phsource/voc/dh View File


BIN
phsource/voc/dh_ View File


BIN
phsource/voc/v View File


BIN
phsource/voc/v_ View File


BIN
phsource/voc/z_ View File


BIN
phsource/voc/z_pzd View File


BIN
phsource/voc/z_pzd_ View File


BIN
phsource/voc/zh_ View File


BIN
phsource/w/wo View File


BIN
phsource/w/wu View File


+ 2
- 12
src/espeakedit.cpp View File

@@ -139,16 +139,6 @@ extern void VoiceReset(int control);
CompileInit();
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;
@@ -531,8 +521,8 @@ void MyFrame::OnSpeak(wxCommandEvent& event)

case MENU_SPEAK_VOICE:
transldlg->ReadVoice();
if(voicedlg != NULL)
voicedlg->WriteParams();
// if(voicedlg != NULL)
// voicedlg->WriteParams();
SetVoiceTitle(voice_name);
break;
}

+ 1
- 1
src/main.h View File

@@ -86,7 +86,7 @@ class MyChild: public wxMDIChildFrame
void OnSaveAs(wxCommandEvent& event);
void OnSaveSelect(wxCommandEvent& event);
void OnSavePitchenv(wxCommandEvent& event);
void OnVoiceDlg(wxCommandEvent& event);
// void OnVoiceDlg(wxCommandEvent& event);

DECLARE_EVENT_TABLE()
};

+ 44
- 44
src/menus.cpp View File

@@ -41,8 +41,8 @@ wxMenuBar *MakeMenu(int type)

// FILE MENU
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"));
if(type==0)
{
@@ -50,89 +50,89 @@ wxMenuBar *MakeMenu(int type)
else
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_CLOSE, _T("&Close"));
file_menu->Append(SPECTSEQ_CLOSE, _("&Close"));
// file_menu->Append(MENU_CLOSE_ALL, _T("Close &All"));
}
else
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_CLOSE, _T("&Close"));
file_menu->Append(SPECTSEQ_CLOSE, _("&Close"));
// 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 = 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->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 = new wxMenu;
voice_menu->Append(MENU_SPEAK_VOICE, _T("Select &Voice"));
voice_menu->Append(MENU_SPEAK_VOICE, _("Select &Voice"));

// DATA MENU
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
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();
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->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
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->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->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_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"));

// HELP MENU
help_menu = new wxMenu;
help_menu->Append(MENU_ABOUT, _T("&About"));
help_menu->Append(MENU_ABOUT, _("&About"));


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);
} // end of MakeMenu

+ 0
- 3
src/options.cpp View File

@@ -45,7 +45,6 @@ wxString path_spectload2;
wxString path_pitches;
wxString path_wave;
wxString path_speech;
wxString path_voices;
wxString path_phsource;
wxString path_dictsource;
wxString path_speaktext;
@@ -162,7 +161,6 @@ void ConfigInit()
pConfig->Read(_T("/pitchpath"),&path_pitches,basedir+_T("/pitch"));
pConfig->Read(_T("/wavepath"),&path_wave,wxEmptyString);
pConfig->Read(_T("/speechpath"),&path_speech,wxEmptyString);
pConfig->Read(_T("/voicepath"),&path_voices,basedir+_T("/voices"));
pConfig->Read(_T("/voicename"),&string,wxEmptyString);
strcpy(voice_name,string.mb_str(wxConvLocal));
pConfig->Read(_T("/phsource"),&path_phsource,basedir+_T("/phsource"));
@@ -189,7 +187,6 @@ void ConfigSave(int exit)
pConfig->Write(_T("/pitchpath"),path_pitches);
pConfig->Write(_T("/wavepath"),path_wave);
pConfig->Write(_T("/speechpath"),path_speech);
pConfig->Write(_T("/voicepath"),path_voices);
pConfig->Write(_T("/voicename"),wxString(voice_name,wxConvLocal));
pConfig->Write(_T("/phsource"),path_phsource);
pConfig->Write(_T("/dictsource"),path_dictsource);

+ 0
- 1
src/options.h View File

@@ -32,7 +32,6 @@ extern void ConfigSetPaths();
extern wxString path_spectload;
extern wxString path_spectload2;
extern wxString path_pitches;
extern wxString path_voices;
extern wxString path_phsource;
extern wxString path_dictsource;
extern wxString path_modifiervoice;

+ 1
- 1
src/phoneme.h View File

@@ -85,7 +85,7 @@
#define phPLACE 0xf0000
#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_NAME 32 // must be multiple of 4


+ 1
- 0
src/setlengths.cpp View File

@@ -186,6 +186,7 @@ void SetParameter(int parameter, int value, int relative)

case espeakPITCH:
if(new_value > 99) new_value = 99;
if(new_value < 0) new_value = 0;
embedded_value[EMBED_P] = new_value;
break;


+ 17
- 1
src/speak.cpp View File

@@ -202,7 +202,6 @@ void DisplayVoices(FILE *f_out, char *language)
static void PitchAdjust(int pitch_adjustment)
{//==========================================
int ix, factor;
extern unsigned char pitch_adjust_tab[100];

voice->pitch_base = (voice->pitch_base * pitch_adjust_tab[pitch_adjustment])/128;

@@ -228,8 +227,16 @@ static void init_path(void)
HKEY RegKey;
unsigned long size;
unsigned long var_type;
char *env;
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;
RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Speech\\Voices\\Tokens\\eSpeak", 0, KEY_READ, &RegKey);
size = sizeof(buf);
@@ -238,6 +245,15 @@ static void init_path(void)

sprintf(path_home,"%s\\espeak-data",buf);
#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"));
if(access(path_home,R_OK) != 0)
{

+ 18
- 0
src/speak_lib.cpp View File

@@ -283,6 +283,7 @@ static void init_path(const char *path)
HKEY RegKey;
unsigned long size;
unsigned long var_type;
char *env;
unsigned char buf[100];

if(path != NULL)
@@ -290,6 +291,14 @@ static void init_path(const char *path)
sprintf(path_home,"%s/espeak-data",path);
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;
RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Speech\\Voices\\Tokens\\eSpeak", 0, KEY_READ, &RegKey);
size = sizeof(buf);
@@ -299,12 +308,21 @@ static void init_path(const char *path)
sprintf(path_home,"%s\\espeak-data",buf);

#else
char *env;

if(path != NULL)
{
snprintf(path_home,sizeof(path_home),"%s/espeak-data",path);
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"));
if(access(path_home,R_OK) != 0)
{

+ 1
- 1
src/spectdisplay.cpp View File

@@ -1007,7 +1007,7 @@ void InitSpectrumDisplay()
menu_spectdisplay->Append(207,_T("Hide Interpolation CTRL+SHIFT+Q"));
menu_spectdisplay->Append(205,_T("Zero Peaks CTRL+Z"));
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->Append(208,_T("Play Selected Frame F1"));
menu_spectdisplay->Append(209,_T("Play All F2"));

+ 1
- 1
src/synthdata.cpp View File

@@ -35,7 +35,7 @@
#include "translate.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;

int option_device_number = -1;

+ 0
- 2
src/synthesize.cpp View File

@@ -67,8 +67,6 @@ static voice_t *new_voice=NULL;
int n_soundicon_tab=0;
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_START 28 // 14 - 30


+ 2
- 0
src/synthesize.h View File

@@ -150,6 +150,8 @@ extern unsigned char env_fall[128];
extern unsigned char env_rise[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
#define WCMD_AMPLITUDE 1

+ 3
- 1
src/translate.cpp View File

@@ -287,7 +287,7 @@ const unsigned short *charsets[N_CHARSETS] = {
// use this table if vowel is not the last in the word
static unsigned char length_mods_en[100] = {
/* 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, 75,100, 75,105,120, 85, 75, 100, /* t */
105,120, 85,105, 95,115,120,100, 95, 100, /* s */
@@ -846,6 +846,8 @@ strcpy(phonemes2,phonemes);

// if(found || (dictionary_flags2 != 0))
// prefix_flags = 1; // ?? this looks wrong
if((found==0) && (dictionary_flags2 != 0))
prefix_flags = 1;
}
if(found == 0)
{

+ 4
- 3
src/voicedlg.cpp View File

@@ -188,11 +188,11 @@ void VoiceDlg::OnCommand(wxCommandEvent& event)
break;

case VD_LOAD:
Load();
// Load();
break;

case VD_SAVE:
Save();
// Save();
break;

case VD_USEPITCH:
@@ -260,6 +260,7 @@ void VoiceDlg::OnSpin(wxSpinEvent& event)
ReadParams();
}

#ifdef deleted
void VoiceDlg::Save()
{//==================
int pk;
@@ -326,7 +327,7 @@ void VoiceDlg::Load()
SetSpinCtrl(voicedlg->vd_pitch2,pitch2);
ReadParams();
} // end of VoiceDlg::Load
#endif

void VoiceDlg::SetFromSpect(SpectSeq* spect)
{//=========================================

+ 15
- 5
src/wavegen.cpp View File

@@ -144,7 +144,7 @@ int wcmdq_tail=0;

// pitch,speed,
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
int current_source_index=0;
@@ -303,7 +303,7 @@ static unsigned char wavemult[N_WAVEMULT] = {

// 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,
72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 86, 87, 88,
@@ -316,7 +316,7 @@ unsigned char pitch_adjust_tab[100] = {
174,176,179,181,184,186,189,191,
194,197,199,202,205,208,211,214,
217,220,223,226,229,232,236,239,
242,246,249,252 };
242,246,249,252, 254,255 };

int WavegenFill(int fill_zeros);

@@ -1440,6 +1440,7 @@ void SetEmbedded(int control, int value)
int command;
int ix;
int factor;
int pitch_value;

command = control & 0x1f;
if((control & 0x60) == 0x60)
@@ -1462,7 +1463,10 @@ void SetEmbedded(int control, int value)
case EMBED_P:
case EMBED_T:
// 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++)
{
wvoice->freq[ix] = (wvoice->freq2[ix] * factor)/256;
@@ -1521,6 +1525,7 @@ void SetPitch(int length, unsigned char *env, int pitch1, int pitch2)
int x;
int base;
int range;
int pitch_value;

#ifdef LOG_FRAMES
f_log=fopen("log-espeakedit","a");
@@ -1547,7 +1552,12 @@ f_log=NULL;
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;

// compensate for change in pitch when the range is narrowed or widened

+ 42
- 5
windows/make_espeak.iss View File

@@ -2,12 +2,13 @@
[Setup]
AppName=eSpeak
AppVerName=eSpeak version 1.26
AppVerName=eSpeak version 1.26.10
DefaultDirName={pf}\eSpeak
DefaultGroupName=eSpeak
OutputBaseFilename=setup_espeak
Compression=lzma
SolidCompression=yes
ShowLanguageDialog=auto
[InstallDelete]
Type: files; Name: "{app}\espeak.dll"
@@ -35,6 +36,36 @@ Root: HKLM; Subkey: "Software\Microsoft\Speech\Voices\Tokens\eSpeak_5"; Flags: d
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]
var
@@ -81,6 +112,13 @@ begin
$41: Result := 'sw';
$52: Result := 'cy';
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;
@@ -123,6 +161,7 @@ begin
'ro': value := $418;
'ru': value := $419;
'sk': value := $41b;
'sr': value := $81a;
'sv': value := $41d;
'sw': value := $441;
'vi': value := $42a;
@@ -283,10 +322,8 @@ var
begin
// Create the language selection page
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)
Page.Add('', False);
Page.Add('', False);

+ 23
- 1
windows/make_espeakedit.iss View File

@@ -1,13 +1,14 @@
[Setup]
AppName=eSpeakEdit
AppVerName=eSpeakEdit version 1.26
AppVerName=eSpeakEdit version 1.26.10
DefaultDirName={pf}\eSpeak
DefaultGroupName=eSpeak
OutputBaseFilename=setup_espeakedit
Compression=lzma
SolidCompression=yes
DirExistsWarning=no
ShowLanguageDialog=auto
[Files]
Source: "espeakedit.exe"; DestDir: "{app}"
@@ -18,4 +19,25 @@ Source: "docs\*"; DestDir: "{app}\docs"; Flags: recursesubdirs
;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"

Loading…
Cancel
Save