diff --git a/dictsource/en_list b/dictsource/en_list index c8847247..a4e3affe 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -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:_ diff --git a/dictsource/fr_list b/dictsource/fr_list index 94960bee..49411c61 100755 --- a/dictsource/fr_list +++ b/dictsource/fr_list @@ -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 diff --git a/dictsource/hu_list b/dictsource/hu_list index a36e7c88..5676709c 100644 --- a/dictsource/hu_list +++ b/dictsource/hu_list @@ -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 diff --git a/dictsource/hu_rules b/dictsource/hu_rules index f13aaab5..75837c42 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -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 diff --git a/dictsource/it_list b/dictsource/it_list index 6d948d1e..91b0bc4f 100644 --- a/dictsource/it_list +++ b/dictsource/it_list @@ -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 \ No newline at end of file diff --git a/dictsource/pt_list b/dictsource/pt_list index 03f190ad..fd7b6f54 100755 --- a/dictsource/pt_list +++ b/dictsource/pt_list @@ -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@ diff --git a/dictsource/pt_rules b/dictsource/pt_rules index 5669ee60..d4be496b 100755 --- a/dictsource/pt_rules +++ b/dictsource/pt_rules @@ -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 diff --git a/phsource/compile_report b/phsource/compile_report index b6f278fe..a43d5136 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -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 diff --git a/phsource/ph_base2 b/phsource/ph_base2 index ce372878..c0db1771 100644 --- a/phsource/ph_base2 +++ b/phsource/ph_base2 @@ -3,12 +3,6 @@ // Italian //==================================================== -phoneme : // Lengthen previous vowel by "length" - virtual - length 70 -endphoneme - - phoneme a diff --git a/phsource/ph_italian b/phsource/ph_italian index 67d86834..59ab0ce4 100644 --- a/phsource/ph_italian +++ b/phsource/ph_italian @@ -3,6 +3,11 @@ // Italian //==================================================== +phoneme : // Lengthen previous vowel by "length" + virtual + length 40 +endphoneme + phoneme a vowel starttype (a) endtype (a) diff --git a/phsource/phonemes b/phsource/phonemes index 0d56d376..6e17244b 100644 --- a/phsource/phonemes +++ b/phsource/phonemes @@ -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 diff --git a/src/espeakedit.h b/src/espeakedit.h deleted file mode 100755 index 59dfbf1e..00000000 --- a/src/espeakedit.h +++ /dev/null @@ -1,55 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2004 by Jonathan Duddington * - * jonsd@users.sourceforge.net * - * * - * 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 - * @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_ diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 725e01c2..3a76c84c 100755 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -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; diff --git a/src/synthesize.cpp b/src/synthesize.cpp index ef12fa5e..9e27e32c 100755 --- a/src/synthesize.cpp +++ b/src/synthesize.cpp @@ -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; diff --git a/src/voice.h b/src/voice.h index 19cccf56..1aeb8296 100644 --- a/src/voice.h +++ b/src/voice.h @@ -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 diff --git a/src/voices.cpp b/src/voices.cpp index ff317d26..80988935 100755 --- a/src/voices.cpp +++ b/src/voices.cpp @@ -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 diff --git a/src/wavegen.cpp b/src/wavegen.cpp index 4706a11a..749dc074 100755 --- a/src/wavegen.cpp +++ b/src/wavegen.cpp @@ -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