Browse Source

[1.26.11] Windows: look for environment variable ESPEAK-DATA-PATH for the directory which contains the espeak-data directory.

AdjustFormants(): adjust the F2 target by a factor which depends on the voice pitch.


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

+ 1
- 0
dictsource/en_list View File

eg fO@Egz'aamp@L eg fO@Egz'aamp@L
est $abbrev est $abbrev
etc Et'sEtr@ etc Et'sEtr@
eu $abbrev
eur jU@ eur jU@
hmm h@m hmm h@m
(http ://) eItSti:ti:'pi:_ (http ://) eItSti:ti:'pi:_

+ 3
- 1
dictsource/fr_list View File

évident evid'A~ évident evid'A~
évident evidt2 $verb évident evidt2 $verb
couvent k'uvt2 $verb couvent k'uvt2 $verb
concurrent kO~kyR'A~
récurrent rekyR'A~




// MAIN WORD DICTIONARY // MAIN WORD DICTIONARY




sens sA~s sens sA~s
c'est sEt2 $u
c'est sEt2 $u+
qu'à ka qu'à ka
qu'y ki qu'y ki
s'y si s'y si

+ 64
- 23
dictsource/hu_list View File

_0 nullA _0 nullA
_1 EJ _1 EJ
_2 kEttY: _2 kEttY:
_3 ha:Rom
_3 ha:R2om
_4 ne:J _4 ne:J
_5 Yt _5 Yt
_6 hAt _6 hAt
_1X tizEn _1X tizEn
_20 hu:s _20 hu:s
_2X huson _2X huson
_3X hARmints
_3X hAR2mints
_4X nEJvEn _4X nEJvEn
_5X YtvEn _5X YtvEn
_6X hAtvAn _6X hAtvAn
_0C sa:z _0C sa:z
_1C sa:z _1C sa:z


_0M1 EzER
_1M1 EzER
_2M1 ke:tEzER
_0M1 EzER2
_1M1 EzER2
_2M1 ke:tEzER2
_0M2 millio: _0M2 millio:
_1M2 millio: _1M2 millio:
_2M2 ke:tmillio: _2M2 ke:tmillio:
_0M3 millia:Rd
_1M3 millia:Rd
_1M3 ke:tmillia:Rd
_0M3 millia:R2d
_1M3 millia:R2d
_1M3 ke:tmillia:R2d
_0M4 billio: _0M4 billio:
_1M4 billio: _1M4 billio:
_2M4 ke:tbillio: _2M4 ke:tbillio:




// Abbreviations // Abbreviations
km kilo:me:tER
mm milime:tER
km kilo:me:tER2
mm milime:tER2


a.m An^n^i||m'int $dot a.m An^n^i||m'int $dot
dr doktoR $dot
dr doktoR2 $dot
gpu $abbrev gpu $abbrev
id idY:SEb: $dot id idY:SEb: $dot
ill illEdvE $dot ill illEdvE $dot
vö v'EZd||_'Yss2E vö v'EZd||_'Yss2E


ii kEttY: $abbrev ii kEttY: $abbrev
iii ha:Rom $abbrev
iii ha:R2om $abbrev
iv ne:J $abbrev iv ne:J $abbrev
vi hAt $abbrev vi hAt $abbrev
vii he:t $abbrev vii he:t $abbrev
viii n^olts $abbrev viii n^olts $abbrev
ix kilEnts $abbrev
xi tizEnEJ $abbrev
xii tizEnkEttY: $abbrev
xiii tizEnha:Rom $abbrev
xiv tizEnne:J $abbrev
xv tizEnYt $abbrev
xvi tizEnhAt $abbrev
xvii tizEnhe:t $abbrev
xviii tizEnn^olts $abbrev
xix tizEnkilEnts $abbrev
xx hu:s $abbrev
xxi husonEJ $abbrev
xxii husonkEttY: $abbrev
xxiii husonha:Rom $abbrev
xxiv husonne:J $abbrev
xxv husonYt $abbrev
xxvi husonhAt $abbrev
xxvii husonhe:t $abbrev
xxviii husonn^olts $abbrev
xxix husonkilEnts $abbrev
xxx hARmints $abbrev




// Articles // Articles
közé $u közé $u
között $u között $u


ba $u
ba $u // into
be $u be $u
ra $u
ra $u // onto
re $u re $u
ik $u ik $u
as $u as $u
os $u os $u
ós $u ós $u
ös $u ös $u
ból $u
ból $u // from inside
ből $u ből $u
ról $u ról $u
ről $u ről $u
án $u án $u
én $u én $u
on $u
on $u // on
en $u en $u
ön $u ön $u
szor $u
szor $u // times
szer $u szer $u
ször $u ször $u


sem $u $pause // nor sem $u $pause // nor
miatt $u $pause // because miatt $u $pause // because


ban $u
ban $u // in
ben $u ben $u
hoz $u hoz $u
hez $u hez $u
höz $u höz $u
ig $u
nál $u
ig $u // up to
nál $u // by
nél $u nél $u
tól $u
tól $u // from
től $u től $u


be $u //into
ki $u // out of
le $u // down
fel $u // up
föl $u // up
meg $u // finish an action
el $u // away
át $u //through
rá $u //onto
ide $u // here
oda $u // there
szét $u //apart
össze $u //connect with
vissza $u //back
ellen $u //against

volna $u // would
részén $u //on ... part of




// word pairs // word pairs


_. pont _. pont
% sa:zAle:k % sa:zAle:k
@ kukAts @ kukAts
€ EuRo
€ EuR2o
+ plus + plus
§ pRARAgRAfuS
§ pR2AR2AgR2AfuS







+ 17
- 13
dictsource/hu_rules View File

bb b: bb b:


biz (A b'iz, // bizalmas etc. biz (A b'iz, // bizalmas etc.
biedermeier bi:dER2ma:jER2
.group c .group c
c ts c ts
cc ts: cc ts:
mün) ch (en C mün) ch (en C
maso) ch (istA C maso) ch (istA C
szé) ch tS szé) ch tS
_zi) ch (y tS



kilen) c (sz ts kilen) c (sz ts
kvar) c (sz ts kvar) c (sz ts
_szé) ché (ny tSe: _szé) ché (ny tSe:
_sto) ck (holm k _sto) ck (holm k


_) church tSYRtS
_) church tSYR2tS




.group d .group d
l l l l
ly j ly j
lly jj lly jj
lj jj
lj lj


C) ly (_ li C) ly (_ li
_kéth) ly li _kéth) ly li
qu kv qu kv


.group r .group r
r R
A) r (A R
C) r (A R
r (C R
r (ó_ R2
r R2
rr RR rr RR


_) richa (rd RiCa:
_) richá (rd RiCa:
_) richa (rd R2iCa:
_) richá (rd R2iCa:




.group s .group s
va) s (zabl S|| va) s (zabl S||
_) semmelweiss sEmmElvEjs _) semmelweiss sEmmElvEjs
engel) s s engel) s s
mu) ss (olini ss2
_) saar sa:R2


_) saar sa:R
_wa) sh (ing S




.group t .group t
A) tyj (A c: A) tyj (A c:


_ka) ty (n ti _ka) ty (n ti
vörösmar) ty ti




.group u .group u
x ks x ks


.group y .group y
y j
_) y j
y i
K) y (K i K) y (K i


.group z .group z
tű) z (sz z tű) z (sz z
ví) z (sz z ví) z (sz z
tor) z (szülött z tor) z (szülött z
tor) z (ság z
_vité) z z


ga) zs (ág zS ga) zs (ág zS
_gá) zsz (ámla zs: _gá) zsz (ámla zs:




.group .group
$ dolla:R
$ dolla:R2
ä e ä e
æ e æ e
ß s ß s

+ 15
- 14
dictsource/it_list View File

_3 tR'e _3 tR'e
_4 kw2'at:Ro _4 kw2'at:Ro
_5 tS'inkw2e _5 tS'inkw2e
_6 s'ej
_6 s'Ej
_7 s'Et:e _7 s'Et:e
_8 'Ot:o _8 'Ot:o
_9 n'Ove _9 n'Ove
_17 ditSas:'Et:e _17 ditSas:'Et:e
_18 ditS'Ot:o _18 ditS'Ot:o
_19 ditSann'ove _19 ditSann'ove
_2X v'ente
_2X v'entj
_3X t@-*'enta _3X t@-*'enta
_4X kw2aR'anta _4X kw2aR'anta
_5X tSinkw2'anta _5X tSinkw2'anta




// words that double the following consonant // words that double the following consonant
qualche $double
come $double
qualche // $double
come // $double


// possessive adjectives // possessive adjectives
mio $u mio $u




// conjunctions // conjunctions
e $u $pause $double // and
e $u $pause // $double // and
ed $u $pause ed $u $pause
o $u $pause $double // or
o $u $pause // $double // or
se $pause // if se $pause // if
ma $pause // but ma $pause // but
perché $pause // because perché $pause // because




// prepositions // prepositions
a $u $double
a $u // $double
al $u al $u
allo $u allo $u
alla $u alla $u
nelle $u $brk nelle $u $brk
ne $u $brk ne $u $brk


su $u $double // on
su $u //$double // on
sul $u sul $u
sullo $u sullo $u
sulla $u // on the sulla $u // on the
// aux verb, to be // aux verb, to be
sono $u sono $u
sei $u sei $u
è E $u $double
è E $u //$double
siamo $u siamo $u
siete $u siete $u
sono $u sono $u
fui $u fui $u
fosti $u fosti $u
fu $u $double
fu $u //$double
fummo $u fummo $u
foste $u foste $u
furono $u furono $u
sarebbero $u sarebbero $u


// aux verb, to have // aux verb, to have
ho $u $double
hai $u $double
ha $u $double
ho $u //$double
hai $u //$double
ha $u //$double
abbiamo $u abbiamo $u
avete $u avete $u
hanno $u hanno $u
vent vEnt $stem vent vEnt $stem


celsius tsElsj'us celsius tsElsj'us
conoscerla $1
conoscerla $2
no nO no nO
posta pOsta posta pOsta
tesser tess'ER tesser tess'ER
uomini $1 uomini $1
internet 'internet

+ 38
- 41
dictsource/pt_list View File

// ?2 Brazilian Portuguese // ?2 Brazilian Portuguese




// Letters
// 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.




// character names // character names


_á ,a&g'udU
_à ,agR'avi
_â ,asirkuNfl'EksU
_ã ,atS'iU
_ç s,esed'elj&
_é ,e&g'udU
_ê ,asirkuNfl'EksU
_í ,i&g'udU
_ó ,o&g'udU
_ô ,osirkuNfl'EksU
_õ ,otS'iU
_ú ,u&g'udU
_ü ,utR'em&

_cap maI'uskulU _cap maI'uskulU
_?A l'etR& _?A l'etR&
_?? s'imbolU _?? s'imbolU
usb $abbrev usb $abbrev


// roman numerals // roman numerals
?1 ii d'oIs# $abbrev
?1 ii d'oIs# $abbrev
?1 iii tr'es# $abbrev ?1 iii tr'es# $abbrev
?1 iv kw'atru $abbrev

?1 iv kw'atru $abbrev


dr $dot
dra $dot
mr $dot
mrs $dot
prof pr'Of $dot
sr $dot
?1 sra ,Es;'Errj'a $dot
?2 sra $dot


dr $dot
dra $dot
mr $dot
mrs $dot
prof pr'Of $dot
sr $dot
?1 sra ,Es;'Errj'a $dot
?2 sra $dot


// articles // articles
o $u+ o $u+




// Letter names // Letter names
// 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.
// a e o à é can also be words

_a a _a a
_e E _e E
_o O _o O
_à ,agR'avi
_é ,e&g'udU
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
à 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
?1 end 'end ?1 end 'end
?1 escape Sk'eIpy ?1 escape Sk'eIpy
?1 explorer ,ekspl'O:r&r- ?1 explorer ,ekspl'O:r&r-
?2 explorer ekspl'O*er
?2 Explorer ekspl'O*er
?1 eyes 'aiz ?1 eyes 'aiz
?1 frame fr'eImy ?1 frame fr'eImy
?2 frame fR'eImi ?2 frame fR'eImi
?2 maior maI'Or ?2 maior maI'Or
?1 menor myn'Or- ?1 menor myn'Or-
?2 menor men'Or ?2 menor men'Or
?2 mouse m'aUzi
?2 mouse m'aUzi
?1 menu menu ?1 menu menu
?1 next n'Ekst ?1 next n'Ekst
ok Ok'eI ok Ok'eI
?1 scroll sk:r'ol ?1 scroll sk:r'ol
?1 site s'aIt ?1 site s'aIt
?2 site s'aItSi ?2 site s'aItSi
?1 software s'Oft,w'Er-
?2 software s'Oftwe@-
?1 software s'Oft,w'Er-
?2 software s'Oftwe@-
?1 space sp'eIsy ?1 space sp'eIsy
?1 sporting sp'Ort,ing ?1 sporting sp'Ort,ing
?1 tab t'ab ?1 tab t'ab
espeak isp'i:k espeak isp'i:k
?1 espeakedit isp'i:kEd,it ?1 espeakedit isp'i:kEd,it
?1 fedora _^_EN ?1 fedora _^_EN
?1 firefox f'ai&rfOks
?2 firefox f'ai@fOks
?1 firefox f'ai&rfOks
?2 firefox f'ai@fOks
?1 front fr'ont ?1 front fr'ont
?1 jaws dZ'au:z ?1 jaws dZ'au:z
?2 jaws dZ'Os ?2 jaws dZ'Os
?1 office 'Of,is ?1 office 'Of,is
openoffice 'opeIN|'Ofis openoffice 'opeIN|'Ofis
?1 outlook 'autl'uk ?1 outlook 'autl'uk
?2 Outlook ,aUtl'uk
?1 paint p'aint ?1 paint p'aint
?1 player pl'eI&r- ?1 player pl'eI&r-
?1 point p'oint ?1 point p'oint
?1 Publisher p'&bl,iS&r- ?1 Publisher p'&bl,iS&r-
?1 reader r'id,&r- ?1 reader r'id,&r-
?1 setup s'Et'&p ?1 setup s'Et'&p
?1 scout sk'aut // Nero scout
?1 scout sk'aut // Nero scout
?1 skype sk'aip ?1 skype sk'aip
slackware sl'akwe@
?2 Skype sk'aIp
Slackware sl'akwe@-
?1 smart sm'art // nero StartSmart ?1 smart sm'art // nero StartSmart
speak spi:k speak spi:k
suse z'u:ts@ suse z'u:ts@

+ 23
- 12
dictsource/pt_rules View File

e (be_ E e (be_ E
e (bem_ E e (bem_ E
e (bes_ 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 (ces_ E


e (la_ E e (la_ E
e (las_ E e (las_ E
e (rA_ E
e (rAm_ E
e (rAs_ E

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

e (rsA_ E
e (rsAm_ E
e (rsAs_ E
e (stA_ E e (stA_ E
e (stAm_ E e (stAm_ E
e (stAs_ E e (stAs_ E
eu (s eU eu (s eU
e (uCK e e (uCK e


j) e (tA_ 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.
?1 _n) e (nhu i // eg: nenhum, nenhuma, nenhuns, nenhumas. ?1 _n) e (nhu i // eg: nenhum, nenhuma, nenhuns, nenhumas.
?1 C) oo (_ ow // eg: voo, enjoo, etc... ?1 C) oo (_ ow // eg: voo, enjoo, etc...
oy OI oy OI


o (Ca_ O
o (g_ O
o (gs_ O
o (Ca_ O
?1 o (l_ 'O ?1 o (l_ 'O
?2 ol (_ Ow ?2 ol (_ Ow
?2 olh olj ?2 olh olj
on (K oN on (K oN
o (na_ o o (na_ o
onh on^ onh on^
o (brA_ O
o (brAm_ O
o (brAs_ O
o (brA_ O
o (brAm_ O
o (brAs_ O
o (rCA_ O o (rCA_ O
o (rCAm_ O o (rCAm_ O
o (rCAs_ O o (rCAs_ O

+ 2
- 2
phsource/compile_report View File

37 phoneme tables 37 phoneme tables
new total new total
base 96 96 base 96 96
base2 24 114
base2 23 114
en 53 144 en 53 144
en_n 29 144 en_n 29 144
en_us 37 144 en_us 37 144
hr 19 129 hr 19 129
sr 2 129 sr 2 129
ru 36 124 ru 36 124
it 16 117
it 17 117
la 21 114 la 21 114
es 6 114 es 6 114
pt 28 131 pt 28 131

+ 0
- 6
phsource/ph_base2 View File

// Italian // Italian
//==================================================== //====================================================


phoneme : // Lengthen previous vowel by "length"
virtual
length 70
endphoneme






phoneme a phoneme a

+ 5
- 0
phsource/ph_italian View File

// Italian // Italian
//==================================================== //====================================================


phoneme : // Lengthen previous vowel by "length"
virtual
length 40
endphoneme



phoneme a phoneme a
vowel starttype (a) endtype (a) vowel starttype (a) endtype (a)

+ 7
- 7
phsource/phonemes View File



phoneme : // Lengthen previous vowel by "length" phoneme : // Lengthen previous vowel by "length"
virtual virtual
length 60
length 70
endphoneme endphoneme


phoneme - // Indicates the previous phoneme is a syllabic consonant phoneme - // Indicates the previous phoneme is a syllabic consonant
after l l/lo after l l/lo
after L l/lo after L l/lo
after l^ l^/j2o after l^ l^/j2o
after r r/ro-15
after #r r/ro-15
after r- r2/r2o after r- r2/r2o
after m m/mo after m m/mo
after n n/no after n n/no
after l l/lu after l l/lu
after L l/lu after L l/lu
after l^ l^/j2u after l^ l^/j2u
after r r/ru-15
after #r r/ru-15
after r- r2/r2u after r- r2/r2u
after m m/mu after m m/mu
after n n/nu after n n/nu
include ph_swahili include ph_swahili




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


//phonemetable f_en basef
//include pf_english
phonemetable f_en basef
include pf_english

+ 0
- 55
src/espeakedit.h View File

/***************************************************************************
* Copyright (C) 2004 by Jonathan Duddington *
* [email protected] *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/

#ifndef _VOICEEDIT_H_
#define _VOICEEDIT_H_

/**
* @short Application Main Window
* @author Jonathan Duddington <[email protected]>
* @version 0.1
*/

class
voiceeditapp : public wxApp
{
public:
virtual bool OnInit();
};

class
voiceeditFrame : public wxFrame
{
public:
voiceeditFrame( const wxString& title, const wxPoint& pos, const wxSize& pos );
void OnQuit( wxCommandEvent& event );
void OnAbout( wxCommandEvent& event );

private:
DECLARE_EVENT_TABLE()
};

enum
{
Menu_File_Quit = 100,
Menu_File_About
};

#endif // _VOICEEDIT_H_

+ 1
- 1
src/synthdata.cpp View File

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


const char *version_string = "1.26.10 23.Jun.07";
const char *version_string = "1.26.11 26.Jun.07";
const int version_phdata = 0x012601; const int version_phdata = 0x012601;


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

+ 2
- 0
src/synthesize.cpp View File



//hf_reduce = 70; // ?? using fixed amount rather than the parameter?? //hf_reduce = 70; // ?? using fixed amount rather than the parameter??


target = (target * voice->formant_factor)/256;

x = (target - fr->ffreq[2]) / 2; x = (target - fr->ffreq[2]) / 2;
if(x > max) x = max; if(x > max) x = max;
if(x < min) x = min; if(x < min) x = min;

+ 2
- 1
src/voice.h View File

int echo_amp; int echo_amp;
int n_harmonic_peaks; // highest formant which is formed from adding harmonics int n_harmonic_peaks; // highest formant which is formed from adding harmonics
int peak_shape; // alternative shape for formant peaks (0=standard 1=squarer) int peak_shape; // alternative shape for formant peaks (0=standard 1=squarer)
int voicing; // 100% = 64, level of formant-synthesized sound
int voicing; // 100% = 64, level of formant-synthesized sound
int formant_factor; // adjust nominal formant frequencies by this because of the voice's pitch (256ths)


// parameters used by Wavegen // parameters used by Wavegen
int freq[N_PEAKS]; // 100% = 256 int freq[N_PEAKS]; // 100% = 256

+ 6
- 0
src/voices.cpp View File

// default is: pitch 82,118 // default is: pitch 82,118
voice->pitch_base = 0x49000; // default, 73 << 12; voice->pitch_base = 0x49000; // default, 73 << 12;
voice->pitch_range = 0x0f30; // default = 0x1000 voice->pitch_range = 0x0f30; // default = 0x1000
voice->formant_factor = 256;


voice->echo_delay = 0; voice->echo_delay = 0;
voice->echo_amp = 0; voice->echo_amp = 0;
break; break;


case V_PITCH: case V_PITCH:
{
double factor;
// default is pitch 82 118 // default is pitch 82 118
n = sscanf(p,"%d %d",&pitch1,&pitch2); n = sscanf(p,"%d %d",&pitch1,&pitch2);
voice->pitch_base = (pitch1 - 9) << 12; voice->pitch_base = (pitch1 - 9) << 12;
voice->pitch_range = (pitch2 - pitch1) * 108; voice->pitch_range = (pitch2 - pitch1) * 108;
factor = float(pitch1 - 82)/82;
voice->formant_factor = (1+factor/4) * 256;
}
break; break;


case V_STRESSLENGTH: // stressLength case V_STRESSLENGTH: // stressLength

+ 2
- 0
src/wavegen.cpp View File

hswitch = 0; hswitch = 0;
harmspect = hspect[0]; harmspect = hspect[0];
maxh2 = PeaksToHarmspect(peaks,pitch<<4,hspect[0],0); maxh2 = PeaksToHarmspect(peaks,pitch<<4,hspect[0],0);

// adjust amplitude to compensate for fewer harmonics at higher pitch
amplitude2 = (amplitude * pitch)/(100 << 12); amplitude2 = (amplitude * pitch)/(100 << 12);


// switch sign of harmonics above about 900Hz, to reduce max peak amplitude // switch sign of harmonics above about 900Hz, to reduce max peak amplitude

Loading…
Cancel
Save