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-fd96e6ae7743master
| @@ -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:_ | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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@ | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -3,12 +3,6 @@ | |||
| // Italian | |||
| //==================================================== | |||
| phoneme : // Lengthen previous vowel by "length" | |||
| virtual | |||
| length 70 | |||
| endphoneme | |||
| phoneme a | |||
| @@ -3,6 +3,11 @@ | |||
| // Italian | |||
| //==================================================== | |||
| phoneme : // Lengthen previous vowel by "length" | |||
| virtual | |||
| length 40 | |||
| endphoneme | |||
| phoneme a | |||
| vowel starttype (a) endtype (a) | |||
| @@ -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 | |||
| @@ -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_ | |||
| @@ -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; | |||
| @@ -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; | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||