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

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

+ 3
- 1
dictsource/fr_list View File

@@ -364,6 +364,8 @@ résident Rezidt2 $verb
évident evid'A~
évident evidt2 $verb
couvent k'uvt2 $verb
concurrent kO~kyR'A~
récurrent rekyR'A~


// MAIN WORD DICTIONARY
@@ -408,7 +410,7 @@ secrets sYkR'E


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

+ 64
- 23
dictsource/hu_list View File

@@ -4,7 +4,7 @@
_0 nullA
_1 EJ
_2 kEttY:
_3 ha:Rom
_3 ha:R2om
_4 ne:J
_5 Yt
_6 hAt
@@ -15,7 +15,7 @@ _10 ti:z
_1X tizEn
_20 hu:s
_2X huson
_3X hARmints
_3X hAR2mints
_4X nEJvEn
_5X YtvEn
_6X hAtvAn
@@ -25,15 +25,15 @@ _9X kilEntsvEn
_0C sa:z
_1C sa:z

_0M1 EzER
_1M1 EzER
_2M1 ke:tEzER
_0M1 EzER2
_1M1 EzER2
_2M1 ke:tEzER2
_0M2 millio:
_1M2 millio:
_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:
_1M4 billio:
_2M4 ke:tbillio:
@@ -41,11 +41,11 @@ _dpt ||_vEss2Y:_


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

a.m An^n^i||m'int $dot
dr doktoR $dot
dr doktoR2 $dot
gpu $abbrev
id idY:SEb: $dot
ill illEdvE $dot
@@ -58,11 +58,32 @@ u.n u:JnEvEzEt: $dot
vö v'EZd||_'Yss2E

ii kEttY: $abbrev
iii ha:Rom $abbrev
iii ha:R2om $abbrev
iv ne:J $abbrev
vi hAt $abbrev
vii he:t $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
@@ -141,9 +162,9 @@ közül $u
közé $u
között $u

ba $u
ba $u // into
be $u
ra $u
ra $u // onto
re $u
ik $u
as $u
@@ -151,16 +172,16 @@ es $u
os $u
ós $u
ös $u
ból $u
ból $u // from inside
ből $u
ról $u
ről $u
án $u
én $u
on $u
on $u // on
en $u
ön $u
szor $u
szor $u // times
szer $u
ször $u

@@ -174,17 +195,37 @@ se $u $pause // neither
sem $u $pause // nor
miatt $u $pause // because

ban $u
ban $u // in
ben $u
hoz $u
hez $u
höz $u
ig $u
nál $u
ig $u // up to
nál $u // by
nél $u
tól $u
tól $u // from
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

@@ -273,9 +314,9 @@ ny En^
_. pont
% sa:zAle:k
@ kukAts
€ EuRo
€ EuR2o
+ plus
§ pRARAgRAfuS
§ pR2AR2AgR2AfuS




+ 17
- 13
dictsource/hu_rules View File

@@ -15,7 +15,7 @@
bb b:

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


kilen) c (sz ts
kvar) c (sz ts
@@ -50,7 +52,7 @@ hierar) ch (i C
_szé) ché (ny tSe:
_sto) ck (holm k

_) church tSYRtS
_) church tSYR2tS


.group d
@@ -140,7 +142,7 @@ _minde) gy (ik J:
l l
ly j
lly jj
lj jj
lj lj

C) ly (_ li
_kéth) ly li
@@ -196,15 +198,11 @@ szamue) ly lli
qu kv

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

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


.group s
@@ -222,8 +220,10 @@ _munká) s S
va) s (zabl S||
_) semmelweiss sEmmElvEjs
engel) s s
mu) ss (olini ss2
_) saar sa:R2

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


.group t
@@ -258,6 +258,7 @@ _munká) s S
A) tyj (A c:

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


.group u
@@ -282,7 +283,8 @@ _munká) s S
x ks

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

.group z
@@ -301,6 +303,8 @@ _munká) s S
tű) z (sz z
ví) z (sz z
tor) z (szülött z
tor) z (ság z
_vité) z z

ga) zs (ág zS
_gá) zsz (ámla zs:
@@ -312,7 +316,7 @@ _szára) zs (ág zS


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

+ 15
- 14
dictsource/it_list View File

@@ -49,7 +49,7 @@ _2 d'ue
_3 tR'e
_4 kw2'at:Ro
_5 tS'inkw2e
_6 s'ej
_6 s'Ej
_7 s'Et:e
_8 'Ot:o
_9 n'Ove
@@ -63,7 +63,7 @@ _16 s'editSi
_17 ditSas:'Et:e
_18 ditS'Ot:o
_19 ditSann'ove
_2X v'ente
_2X v'entj
_3X t@-*'enta
_4X kw2aR'anta
_5X tSinkw2'anta
@@ -123,8 +123,8 @@ li $u+


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

// possessive adjectives
mio $u
@@ -163,9 +163,9 @@ quelle $u // those


// conjunctions
e $u $pause $double // and
e $u $pause // $double // and
ed $u $pause
o $u $pause $double // or
o $u $pause // $double // or
se $pause // if
ma $pause // but
perché $pause // because
@@ -182,7 +182,7 @@ che $u $pause // which


// prepositions
a $u $double
a $u // $double
al $u
allo $u
alla $u
@@ -218,7 +218,7 @@ negli $u $brk
nelle $u $brk
ne $u $brk

su $u $double // on
su $u //$double // on
sul $u
sullo $u
sulla $u // on the
@@ -245,13 +245,13 @@ durante $pause // during
// aux verb, to be
sono $u
sei $u
è E $u $double
è E $u //$double
siamo $u
siete $u
sono $u
fui $u
fosti $u
fu $u $double
fu $u //$double
fummo $u
foste $u
furono $u
@@ -283,9 +283,9 @@ sareste $u
sarebbero $u

// aux verb, to have
ho $u $double
hai $u $double
ha $u $double
ho $u //$double
hai $u //$double
ha $u //$double
abbiamo $u
avete $u
hanno $u
@@ -368,8 +368,9 @@ tavol $1 $stem
vent vEnt $stem

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

+ 38
- 41
dictsource/pt_list View File

@@ -6,10 +6,28 @@
// ?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

_á ,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
_?A l'etR&
_?? s'imbolU
@@ -183,20 +201,19 @@ unts $abbrev
usb $abbrev

// roman numerals
?1 ii d'oIs# $abbrev
?1 ii d'oIs# $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
o $u+
@@ -502,34 +519,12 @@ há $u+


// 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
_e E
_o O
_à ,agR'avi
_é ,e&g'udU
a a $atend
e E $atend // assume letter-e at end of sentence
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
@@ -600,7 +595,7 @@ roxo x'oSU
?1 end 'end
?1 escape Sk'eIpy
?1 explorer ,ekspl'O:r&r-
?2 explorer ekspl'O*er
?2 Explorer ekspl'O*er
?1 eyes 'aiz
?1 frame fr'eImy
?2 frame fR'eImi
@@ -627,7 +622,7 @@ roxo x'oSU
?2 maior maI'Or
?1 menor myn'Or-
?2 menor men'Or
?2 mouse m'aUzi
?2 mouse m'aUzi
?1 menu menu
?1 next n'Ekst
ok Ok'eI
@@ -645,8 +640,8 @@ roxo x'oSU
?1 scroll sk:r'ol
?1 site s'aIt
?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 sporting sp'Ort,ing
?1 tab t'ab
@@ -673,8 +668,8 @@ louis _^_FR
espeak isp'i:k
?1 espeakedit isp'i:kEd,it
?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 jaws dZ'au:z
?2 jaws dZ'Os
@@ -691,6 +686,7 @@ louis _^_FR
?1 office 'Of,is
openoffice 'opeIN|'Ofis
?1 outlook 'autl'uk
?2 Outlook ,aUtl'uk
?1 paint p'aint
?1 player pl'eI&r-
?1 point p'oint
@@ -699,9 +695,10 @@ louis _^_FR
?1 Publisher p'&bl,iS&r-
?1 reader r'id,&r-
?1 setup s'Et'&p
?1 scout sk'aut // Nero scout
?1 scout sk'aut // Nero scout
?1 skype sk'aip
slackware sl'akwe@
?2 Skype sk'aIp
Slackware sl'akwe@-
?1 smart sm'art // nero StartSmart
speak spi:k
suse z'u:ts@

+ 23
- 12
dictsource/pt_rules View File

@@ -137,7 +137,8 @@
e (be_ E
e (bem_ E
e (bes_ E
e (ca_ E

e (ca_ E
e (ce_ E
e (cem_ E
e (ces_ E
@@ -149,11 +150,15 @@

e (la_ 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 (stAm_ E
e (stAs_ E
@@ -206,6 +211,10 @@ e (rrA_ E
eu (s eU
e (uCK e

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

?1 _) es (C@@ S // drop initial "e".
?1 _) e (f i // efectuar, etc.
?1 _n) e (nhu i // eg: nenhum, nenhuma, nenhuns, nenhumas.
@@ -399,7 +408,9 @@ e (rrA_ E
?1 C) oo (_ ow // eg: voo, enjoo, etc...
oy OI

o (Ca_ O
o (g_ O
o (gs_ O
o (Ca_ O
?1 o (l_ 'O
?2 ol (_ Ow
?2 olh olj
@@ -411,11 +422,11 @@ e (rrA_ E
on (K oN
o (na_ o
onh on^
o (brA_ O
o (brAm_ O
o (brAs_ O
o (brA_ O
o (brAm_ O
o (brAs_ O
o (rCA_ O
o (rCAm_ O
o (rCAs_ O

+ 2
- 2
phsource/compile_report View File

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

+ 0
- 6
phsource/ph_base2 View File

@@ -3,12 +3,6 @@
// Italian
//====================================================

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




phoneme a

+ 5
- 0
phsource/ph_italian View File

@@ -3,6 +3,11 @@
// Italian
//====================================================

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


phoneme a
vowel starttype (a) endtype (a)

+ 7
- 7
phsource/phonemes View File

@@ -154,7 +154,7 @@ endphoneme

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

phoneme - // Indicates the previous phoneme is a syllabic consonant
@@ -295,7 +295,7 @@ phoneme (o) virtual
after l l/lo
after L l/lo
after l^ l^/j2o
after r r/ro-15
after #r r/ro-15
after r- r2/r2o
after m m/mo
after n n/no
@@ -318,7 +318,7 @@ phoneme (u) virtual
after l l/lu
after L l/lu
after l^ l^/j2u
after r r/ru-15
after #r r/ru-15
after r- r2/r2u
after m m/mu
after n n/nu
@@ -1235,8 +1235,8 @@ phonemetable sw base
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

@@ -1,55 +0,0 @@
/***************************************************************************
* 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

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

int option_device_number = -1;

+ 2
- 0
src/synthesize.cpp View File

@@ -403,6 +403,8 @@ static void AdjustFormants(frame_t *fr, int target, int min, int max, int f1_adj

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

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

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

+ 2
- 1
src/voice.h View File

@@ -36,7 +36,8 @@ typedef struct {
int echo_amp;
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 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
int freq[N_PEAKS]; // 100% = 256

+ 6
- 0
src/voices.cpp View File

@@ -366,6 +366,7 @@ void VoiceReset(int tone_only)
// default is: pitch 82,118
voice->pitch_base = 0x49000; // default, 73 << 12;
voice->pitch_range = 0x0f30; // default = 0x1000
voice->formant_factor = 256;

voice->echo_delay = 0;
voice->echo_amp = 0;
@@ -681,10 +682,15 @@ voice_t *LoadVoice(const char *vname, int control)
break;

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

case V_STRESSLENGTH: // stressLength

+ 2
- 0
src/wavegen.cpp View File

@@ -1110,6 +1110,8 @@ static int Wavegen()
hswitch = 0;
harmspect = hspect[0];
maxh2 = PeaksToHarmspect(peaks,pitch<<4,hspect[0],0);

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

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

Loading…
Cancel
Save