From 1284a5334cea12fe3a1eb2077769e56310170e2d Mon Sep 17 00:00:00 2001 From: jonsd Date: Tue, 24 May 2011 13:06:41 +0000 Subject: [PATCH] [1.45.28] Amplitude changes now apply also to mbrola voices. "voicing" attribute is now used in mbrola voice files to set the voice loudness. SSML commands such as and were ignored if they were inside a multiword group (defined in *_list). This is now fixed so that the command is processed at the end of the group. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@267 d46cf337-b52f-0410-862d-fd96e6ae7743 --- dictsource/de_list | 8 +- dictsource/de_rules | 64 +++++--- dictsource/dict_phonemes | 15 +- dictsource/en_list | 280 ++++++++++++++++---------------- dictsource/fr_list | 2 +- dictsource/fr_rules | 11 +- dictsource/ta_list | 3 + dictsource/ta_rules | 42 +++++ espeak-data/voices/grc | 8 - espeak-data/voices/jbo | 3 - espeak-data/voices/mb/mb-br1 | 2 + espeak-data/voices/mb/mb-br3 | 3 +- espeak-data/voices/mb/mb-br4 | 2 + espeak-data/voices/mb/mb-cr1 | 1 + espeak-data/voices/mb/mb-de2 | 1 + espeak-data/voices/mb/mb-de4 | 2 + espeak-data/voices/mb/mb-de4-en | 2 + espeak-data/voices/mb/mb-de7 | 1 + espeak-data/voices/mb/mb-en1 | 1 + espeak-data/voices/mb/mb-fr1 | 2 + espeak-data/voices/mb/mb-fr1-en | 1 + espeak-data/voices/mb/mb-fr4 | 1 + espeak-data/voices/mb/mb-fr4-en | 1 + espeak-data/voices/mb/mb-gr2 | 1 + espeak-data/voices/mb/mb-gr2-en | 1 + espeak-data/voices/mb/mb-hu1 | 1 + espeak-data/voices/mb/mb-hu1-en | 1 + espeak-data/voices/mb/mb-ic1 | 1 + espeak-data/voices/mb/mb-id1 | 1 + espeak-data/voices/mb/mb-it3 | 1 + espeak-data/voices/mb/mb-it4 | 1 + espeak-data/voices/mb/mb-nl2 | 2 + espeak-data/voices/mb/mb-nl2-en | 2 + espeak-data/voices/mb/mb-pl1 | 1 + espeak-data/voices/mb/mb-pt1 | 3 +- espeak-data/voices/mb/mb-sw1 | 2 + espeak-data/voices/mb/mb-sw1-en | 2 + espeak-data/voices/mb/mb-sw2 | 2 + espeak-data/voices/mb/mb-sw2-en | 2 + espeak-data/voices/mb/mb-tr2 | 2 + espeak-data/voices/mb/mb-us2 | 1 + espeak-data/voices/mb/mb-us3 | 1 + phsource/compile_report | 26 +-- phsource/mbrola/af1 | 2 + phsource/mbrola/cr1 | 1 - phsource/mbrola/de4 | 2 +- phsource/mbrola/en1 | 2 +- phsource/mbrola/fr1 | 2 +- phsource/mbrola/gr2 | 2 +- phsource/mbrola/hu1 | 1 - phsource/mbrola/id1 | 1 - phsource/mbrola/it3 | 1 + phsource/mbrola/pt1 | 2 + phsource/mbrola/ptbr | 2 + phsource/mbrola/sv | 2 +- phsource/mbrola/sv2 | 2 +- phsource/ph_german | 31 ++++ phsource/phonemes | 2 +- src/dictionary.cpp | 19 ++- src/phoneme.h | 8 +- src/synth_mbrola.cpp | 48 ++++-- src/synthdata.cpp | 2 +- src/synthesize.cpp | 4 +- src/synthesize.h | 2 +- src/translate.cpp | 23 ++- src/translate.h | 1 + src/wavegen.cpp | 2 +- 67 files changed, 432 insertions(+), 242 deletions(-) delete mode 100755 espeak-data/voices/grc delete mode 100644 espeak-data/voices/jbo diff --git a/dictsource/de_list b/dictsource/de_list index 1d1ab836..c2b9dd3a 100644 --- a/dictsource/de_list +++ b/dictsource/de_list @@ -49,6 +49,8 @@ _[ 'EkIg@kl'am3||_|'aUf _] 'EkIg@kl'am3||ts'u: _< klaIn3 _> grY:s3 +_« 'anfy:RUNsts,aIC@n +_» 'anfy:RUNsts,aIC@n||ts'u: _` grA:v _^ tsIrkUmflEks _— g@d'aNk@nStr,IC @@ -188,7 +190,7 @@ oder o:d3 $u+ $pause sondern $pause denn dEn $u+ $pause weil $pause -als $u+ $brk +als als $u+ $brk bevor b@fo:r $2 $pause also $pause wenn ,vEn $pause $strend @@ -362,7 +364,7 @@ hätten h,Et@n $only war %vA:r $only warst %vA:rst $only wart %vA:rt $only -waren 'vA:r@n +waren %vA:r@n will %vIl $only willst %vIlst $only @@ -536,6 +538,7 @@ bronchie $alt changier SaNZ'i:r ciao tSaU +clique kli:k@ coup ku: dahlie $alt @@ -568,6 +571,7 @@ erde e:rd@ erst e:rst ersten e:rst@n erstmal e:rstma:l +erzgebirg e:rtsg@bIrg extravagant $1 extrem Ekstr'e:m diff --git a/dictsource/de_rules b/dictsource/de_rules index 45d6aaae..37863d7e 100644 --- a/dictsource/de_rules +++ b/dictsource/de_rules @@ -21,6 +21,7 @@ .L01 l r .L02 c f h k p q s t z // unvoiced, except s+vowel .L03 a ä +.L04 o ö // This file is UTF-8 encoded @@ -38,6 +39,7 @@ a (CC a a (sch a a (x a + a (ph A: &CC) a (_ =A: ai aI @@ -161,11 +163,11 @@ .group b _) b (_ be: _) b (L01A b // allow bl br at start of word + _) b (jA b // allow bj b b b) b b (_N p b (L02 p - blich plIC b (sA b bt (_N pt @@ -221,7 +223,7 @@ c) c ck k - _) c (el S + _) c (el ts fa) c (et ts _) cey tsaI chef (_ SEf @@ -280,7 +282,6 @@ d) d d (_N t d (L02 t - dlich tlIC d (sA d ds (_ ts dt t @@ -345,6 +346,7 @@ e (CC E e (sch E e (x E + e (ph e: ei aI eu OY @@ -427,6 +429,7 @@ h) ee (_ 'e: _) e (ff %E l) e (g_ 'e: + kr) e (ier e: eih (_ aI _) eil (aP3 'aIl _) eil (fP3 'aIl @@ -518,7 +521,6 @@ g (g g (_N k g (L02 k - glich klIC g (sA g gd (_N kt _) gh (A g @@ -547,7 +549,7 @@ ungs) ge (C@ g@ _) ge (beX ge: geben ge:b@n - ge(birg g@ + gebirge (_S7 g@bIrg@ _) gegen (@P5 ge:g@n gegen ge:g@n gegn ge:gn @@ -631,6 +633,7 @@ i (CC I i (sch I i (x I + i (ph i: @) i (ng I &CC) i (_ =i: @@ -786,24 +789,24 @@ formal) ie =I@ _) leit (@P4 l'aIt _) lern (@@P4 l'Ern _) lexi (@ lEksi: - &) lich (_S4 lIC - &) liche (_S5 lIC@ - &) lichem (_S6 lIC@m - &) lichen (_S6 lIC@n - &) licher (_S6 lIC3 - &) liches (_S6 lIC@s - &) lichere (_S7 lIC@r@ - &) licherem (_S8 lIC@r@m - &) licheren (_S8 lIC@r@n - &) licherer (_S8 lIC@r@3 - &) licheres (_S8 lIC@r@s - &) lichste (_S7 lICst@ - &) lichstem (_S8 lICst@m - &) lichsten (_S8 lICst@n - &) lichster (_S8 lICst@r - &) lichstes (_S8 lICst@s - &) lichkeit (_S8 lICkaIt - &) lichung (_S7 lIC%UN + &) lich (_S4 l2IC // [l2] means devoice previous consonant + &) liche (_S5 l2IC@ + &) lichem (_S6 l2IC@m + &) lichen (_S6 l2IC@n + &) licher (_S6 l2IC3 + &) liches (_S6 l2IC@s + &) lichere (_S7 l2IC@r@ + &) licherem (_S8 l2IC@r@m + &) licheren (_S8 l2IC@r@n + &) licherer (_S8 l2IC@r@3 + &) licheres (_S8 l2IC@r@s + &) lichste (_S7 l2ICst@ + &) lichstem (_S8 l2ICst@m + &) lichsten (_S8 l2ICst@n + &) lichster (_S8 l2ICst@r + &) lichstes (_S8 l2ICst@s + &) lichkeit (_S8 l2ICkaIt + &) lichung (_S7 l2IC%UN @) lo (gisch l'o: _) luft (CP4 l'Uft @@ -860,6 +863,8 @@ formal) ie =I@ &) ness (_N _^_EN news _^_EN nieder ni:d3 + nord (L04st n%Ort + nord (west n%Ort .group o _) o (_ o: @@ -874,6 +879,7 @@ formal) ie =I@ o (CC O o (sch O o (x O + o (ph o: &CC) o (_ =o: o (Co_ 'o: o (lo_ o: @@ -934,7 +940,8 @@ formal) ie =I@ _) peri p,e:ri: _) perio p,e:rIo: _) periphe p,e:ri:fe: - _) personen (@P8 pErs'o:n@n + _) personen (@P8 pErz'o:n@n + person p%Erzo:n philie f'i:li: _) photo f,o:to: _) pro (@ %pro: @@ -966,6 +973,7 @@ formal) ie =I@ q k qu kv @) que (_ =k + @) quen (_ =k@n .group r @@ -1040,6 +1048,7 @@ formal) ie =I@ &C) sten (_S4 st@n &C) ster (_S4 st3 &C) stes (_S4 st@s + &n) st (_ st // needs more work _be) st St _ge) st St @@ -1081,8 +1090,11 @@ formal) ie =I@ @) straße (_S6 str,A:s@ _) street _^_EN style _^_EN + süd (L04st z%y:t + süd (west z%y:t synthesi _^_EN - system z%Iste:m + system z%yste:m + s (system s .group t @@ -1425,6 +1437,6 @@ formal) ie =I@ $ dOl'A: __) - (_D mi:nUs - D_) - (_D daS + D_) - (_D StrIC _) - (_D _ diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index f057d304..159c8d31 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -77,7 +77,7 @@ n n^ p r R R2 s S s2 t t2 tS ts v z Z -Dictionary de_dict 2011-05-14 +Dictionary de_dict 2011-05-23 3 @ @- a A A: aI aU A~ E E2 E: e: EI i I @@ -85,9 +85,10 @@ i2 i: n- o O o: OY U u: W y y: Y: * : ; b C d D dZ -f g g# h j k l m -n N p pF r s S t -tS ts v w x z Z +f g g# h j k l l2 +m n N p pF r R s +S t tS ts v w x z +Z Dictionary el_dict 2011-05-19 @@ -100,7 +101,7 @@ p Q r R s s; t T ts v x z -Dictionary en_dict 2011-05-18 +Dictionary en_dict 2011-05-24 0 3 3: @ @- @2 @5 @L a a# A: A@ aa aI aI@ aU @@ -150,7 +151,7 @@ l m n N p r s S s2 t v w Z -Dictionary fr_dict 2011-04-15 +Dictionary fr_dict 2011-05-21 @ @- a A~ e E E: E~ i I o O O~ u u: w @@ -200,7 +201,7 @@ q r r. s S s. t T t. th th. v w x z -Dictionary ta_dict 2011-05-08 +Dictionary ta_dict 2011-05-23 a a: aI aU e E e: i I i: o o: u U u2 u: diff --git a/dictsource/en_list b/dictsource/en_list index 629d51b1..af5938f7 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -390,6 +390,7 @@ un $abbrev $allcaps url $abbrev usa $abbrev usb $abbrev +ussr $abbrev utc $abbrev VI $abbrev wwii dVb@Lju:dVb@Lju:t'u: @@ -423,16 +424,16 @@ no noU $allcaps -abbey abI +abbey abi abdomen abd@m@n abed a#bEd abet a#bEt abhor a#bho@ abler eIbl3 ablest eIbl@st -ability a#bIl@tI +ability a#bIl@ti ablaut ablaUt -aborigine ab@r'IdZ@nI +aborigine ab@r'IdZ@ni abracadabra abr@k@d'abr@ absence abs@ns absent abs'Ent @@ -444,7 +445,7 @@ absolutely $3 $verbf abstemious a#bst'i:mi@s abstract abstrakt $only abstract a#bstr'akt $verb -academe a#kad@mI +academe a#kad@mi access aksEs $onlys access aksEs $verb accouchement a#ku:SmO~ @@ -456,7 +457,7 @@ accursed a#k3:sI2d ?5 accursed a#kVRsI2d achille a#kIli: aching eIkI2N -achy eIkI +achy eIki adam ad@m adamant ad@m@nt add ad @@ -470,8 +471,8 @@ adios aDj'o:s admirable adm@r@b@L admonition adm@n'IS@n ado a#du: -adobe a#doUbI -adversary adv3s@rI +adobe a#doUbi +adversary adv3s@ri advert a#dv3:t $verb advertise adv3taIz advertiser adv3taIz3 @@ -552,23 +553,22 @@ analogue an@l0g analyses a#nal@si:z analyses an@laIzI2z $verb analysis a#nal@sIs -anenome a#nEn@mI +anenome a#nEn@mi angel eIndZ@L anecdote anIkdoUt anecdotal anIkd'oUt@L anemometer anIm'0mI2t3 -anemone a#nEn@mI anew a#nju: ?3 anew a#nu: anime anImeI anion aneI@n anise anIs -anniversary anIv'3:s@rI +anniversary anIv'3:s@ri anon a#n0n anonymous $2 another a#nVD3 answer aans3 -ante antI +ante anti antecedent antIs'i:d@nt antibody $1 antichrist $1 @@ -581,17 +581,17 @@ antilog $1 antimatter $1 antimony $2 antioch $1 -antipathy ant'Ip@TI +antipathy ant'Ip@Ti antiphonal ant'If@n@L antique ant'i:k antithesis ant'IT@sIs antitheses ant'IT@si:z anus eInVs -anxiety aNz'aI@tI +anxiety aNz'aI@ti anxious aNS@s anymore $3 anything EnI2TIN -apache a#patSI +apache a#patSi apostle a#p0s@L apron eIpr@n appal a#pO:l @@ -628,38 +628,38 @@ atlas atl@s atop a#t0p attache at'aSeI $only attaches a#tatSI2z -attorney a#t3:nI -?5 attorney a#tVRnI +attorney a#t3:ni +?5 attorney a#tVRni attribute atrIbju:t attribute $2 $verb au ,oU aubergine oUb3Zi:n auger O:g3 aurora $2 -aussie 0zI +aussie 0zi austere O:st'i@3 -authority a#T0rI2tI +authority a#T0rI2ti authoritative O:T'0rI2t@tIv autograph O:t@graf auto O:toU -autocracy O:t'0kr@sI +autocracy O:t'0kr@si automobile O:t@m@bi@l -autopsy O:t0psI +autopsy O:t0psi avalanche av@laanS average av@-rI2dZ -aviary eIvi@rI +aviary eIvi@ri awry a#raI axes aksI2z backend bak'End -backstory baksto@rI +backstory baksto@ri ballad bal@d ballast bal@st ballet baleI ?3 ballet bal'eI balloon b@lu:n ballot bal@t -baloney b@loUnI +baloney b@loUni bagel beIg@L banal beIn@L banana b@nA:n@ @@ -687,7 +687,7 @@ biased baI@st bible baIb@L bidet bi:deI bijou bi:Zu: -bikini bIk'i:nI +bikini bIk'i:ni binman bInman biped baIpEd bipedal baIp'i:d@L @@ -707,7 +707,7 @@ bombard $2 bonbon b0nb0n bonhomie b0n@mi: bonjour bO:nZ'U@ -boogie b'u:gI +boogie b'u:gi bosom bUz@m bosun boUs@n boutique bu:t'i:k @@ -730,7 +730,7 @@ brooch broUtS budgerigar bVdZ@rIgA@ buffet bVfeI bunion bVnI2@n -bureaucracy bjU@'0kr@sI +bureaucracy bjU@'0kr@si bursar b3:s3 bus bVs buses bVsI2z @@ -755,7 +755,7 @@ calve kA:v cameo kamIoU campus kamp@s // campuses canal k@nal -canary k@ne@rI +canary k@ne@ri canine keInaIn canoe k@nu: canoes k@nu:z @@ -771,7 +771,7 @@ caress k@rEs carpel kA@p@l cascade $2 cashmere kaSm'i@3 -catastrophe ka#tastr@f%I +catastrophe ka#tastr@f%i catarrh k@tA@ caterer keIt3r3 catholic kaTlIk @@ -858,9 +858,9 @@ commend k@mEnd comment k0mEnt commentary k0m@ntrI commie k0mI -committee k@mItI +committee k@mIti communique k@mju:nI2keI -community k@mju:nI2tI +community k@mju:nI2ti compat k@mpat // for compatible competed k@mp'i:tId competing k@mp'i:tI2N @@ -917,7 +917,7 @@ coupon ku:p0n couscous ku:sku:s covert koUv'3:t coworker koUw3:k3 -coyote kaI'oUtI +coyote kaI'oUti creature kri:tS3 crevasse kr@vas crisis kraIsIs @@ -936,7 +936,7 @@ cutaway kVt@weI cutoff kVt0f cutout kVtaUt cyan saI'an -cymru kVmrI +cymru kVmri dahlia deIli:@ dais deIIs @@ -958,7 +958,7 @@ decry dI2kraI defens dI2fEns // for defensible deficit dEfI2sIt definitive dI2fInI2tIv -deity deI@tI +deity deI@ti deja deIZA: $only deli dElI deliberate dI2lIb@r@t @@ -969,7 +969,7 @@ demon di:m@n demoness di:m@nEs demo dEmoU demonstrative $2 -dengue dEngI +dengue dEngi denier dI2naI3 denouement deIn'u:mO~ deny dI2naI @@ -995,11 +995,11 @@ diehard daIhA@d dielectric daI@l'EktrIk diesel di:z@L dilemma daIl'Em@ -dinghy dINgI +dinghy dINgi dingy dIndZI dinosaur daIn@sO@ diode daIoUd -diplomacy dIpl'oUm@sI +diplomacy dIpl'oUm@si dipole daIpoUl disconsolate dIsk'0ns@l@t disc dIsk // for discs @@ -1053,7 +1053,7 @@ efile i:faIl egg Eg // egging eh eI el ,El -electricity I2lEktr'IsI2tI +electricity I2lEktr'IsI2ti electrode I2lEktroUd electron I2lEktr0n electrocute $2 @@ -1124,7 +1124,7 @@ extradite Ekstr@daIt // extradited extrem Ekstr'i:m // extremism extremist Ekstr'i:mIst extricate $1 -eyrie i@rI +eyrie i@ri facade f@sA:d façade f@sA:d @@ -1141,7 +1141,7 @@ favorite feIv@-rI2t // sp. favourite feIv@-rI2t favorites feIv@-rI2ts // sp. favourites feIv@-rI2ts -feisty faIstI +feisty faIsti feline fi:laIn feminine fEm@nIn fete feIt @@ -1150,7 +1150,7 @@ fi f,aI // as in "hi-fi" fiasco fi:'askoU fiat fi:@t fiery faI@rI -finale fI2nA:lI +finale fI2nA:li finance faInans $only finance $verb finess fI2nEs // for finessed @@ -1191,7 +1191,7 @@ frontpage fr'Vntp,eIdZ fruition fru:'IS@n frustrate $2 fuchsia fju:S@ -furore fju:r'O:rI +furore fju:r'O:ri furthermore f3:D3m'o@ $pause ?5 furthermore fVRD3m'o@ $pause fuscia fju:S@ @@ -1199,7 +1199,7 @@ fuselage fju:z@lA:Z futon fu:t0n gala gA:l@ -galaxy gala#ksI +galaxy gala#ksi galileo galI2l'eIoU galore ga#lo@ gases gasI2z @@ -1208,7 +1208,7 @@ gauge geIdZ gecko gEkoU geese gi:s gemini dZEmI2naI -geni dZi:nI +geni dZi:ni genome dZi:noUm genre Z0nr@ ?!3 genuine dZEnju:In @@ -1218,7 +1218,7 @@ gibbon gIb@n gig gIg gigantic dZaIg'antIk gilead g'IlIad -gimme gImI +gimme gImi giraffe dZI2raaf goin ,goUI2n $only // for goin' goodbye $2 @@ -1229,15 +1229,15 @@ goto goUtu: gourmet gU@meI graduate gradju:@t graduate gradju:eIt $verb -graffiti gra#fi:tI +graffiti gra#fi:ti gredient gri:di@nt // ingredient grenade gr@neId griffon grIf@n grosvenor groUv@n3 -groupie gru:pI +groupie gru:pi guacamole gwA:ka#m'oUli: -gui gu:I -guinea gInI +gui gu:i +guinea gIni gurus gu:ru:z haggis hagIs @@ -1306,7 +1306,7 @@ hussar hVz'A@ huzza hVz'A: huzzah hVz'A: hyperbola haIp'3:b@l@ -hyperbole haIp'3:b@lI +hyperbole haIp'3:b@li hypothesis haIp'0T@sIs hypotheses haIp'0T@si:z hypotenuse haIp'0t@nju:s @@ -1334,18 +1334,18 @@ indeterminate IndI2t'3:mI2n@t indicative $2 indices IndI2si:z indict Ind'aIt -indie IndI +indie Indi indiscriminate IndI2skr'ImI2n@t indo IndoU indoor $1 $only industry IndVstrI -indy IndI +indy Indi infamous Inf@m@s infer Inf'3: inference Inf@r@ns influenza Influ:'Enz@ infrastructure $1 -ingenuity IndZI2n'ju:I2tI +ingenuity IndZI2n'ju:I2ti inherit Inh'ErIt // inherited innard In3d inner In3 @@ -1392,7 +1392,7 @@ jukebox dZu:kb0ks july dZu:l'aI kaput ka#pUt -karate k@rA:tI +karate k@rA:ti kebab k@bab kefir ki:f3 hiatus haI'eIt@s @@ -1403,7 +1403,7 @@ kiwi ki:wi: knavish neIvIS koala koU'A:l@ koan koUA:n -kopje k0pI +kopje k0pi kosher koUS3 la ,la $only @@ -1423,12 +1423,12 @@ lawyer lOI3 lava lA:v@ le l@_| $only lead li:d -leafy li:fI +leafy li:fi leant lEnt leapt lEpt lego lEgoU leisure l'EZ3 -lemme lEmI // let me +lemme lEmi // let me lemonade $3 leo li:oU leopard lEp@d @@ -1440,11 +1440,11 @@ lichen laIk@n lier laI3 // outlier ligate li:geIt lilac laIl@k -lily lIlI +lily lIli limit lImI2t // limited limo lImoU limousine lIm@zi:n -lingerie l0nZ@rI +lingerie l0nZ@ri linen lInI2n liqueur lI2kjU@ liter li:t3 @@ -1472,7 +1472,7 @@ lunchroom lVntS||ru:m lychee li:tSi: macabre m@kA:br@ -machete ma#SEtI +machete ma#SEti machismo ma#tSIzmoU mademoiselle mad@m@zEl magazine $3 @@ -1481,7 +1481,7 @@ magpies magpaIz (main st) m'eInstr,i:t maintain $2 maintainer $2 -majority m@dZ0rI2tI +majority m@dZ0rI2ti malic malIk malice malI2s mall mal @@ -1513,7 +1513,7 @@ medicine mEds@n melon mEl@n menus mEnju:z memo mEmoU -menagerie m@n'adZj@rI +menagerie m@n'adZj@ri meow mi'aU mercedes m3:s'eIdi:z mercenary m3:s@n@rI @@ -1597,14 +1597,14 @@ negate nI2geIt neglect nI2glEkt negligee nEglIZeI neon ni:0n -nepenthe nI2pEnTI +nepenthe nI2pEnTi nescience nEsI@ns -nicety naIs@tI +nicety naIs@ti niche ni:S ninja nIndZ@ noah noUV nobly noUblI $verbf -nobody 'noUb0dI +nobody 'noUb0di nocturnal $2 nomenclature n@mENkl@tS3 nonsense n0ns@ns @@ -1620,7 +1620,7 @@ nowhere noUwe@ oases oU'eIsi:z oasis oU'eIsI2s obelisk 0b@lI2sk -obesity oUb'i:s@tI +obesity oUb'i:s@ti obey oUb'eI obituary 0b'ItSU@I object $1 $onlys @@ -1715,7 +1715,7 @@ passerby pas3b'aI passersby pas3zb'aI pasted peIstI2d pasting peIstI2N -pastry peIstrI +pastry peIstri pate pateI pathos peIT0s paypal peIpal @@ -1742,7 +1742,7 @@ petite p@ti:t petroleum p@troUli:@m pharaoh fe@roU philistine fIlI2staIn -philosophy fI2l0s@fI +philosophy fI2l0s@fi phoenix fi:nIks photographer f@t'0gr@f@ piano pI'anoU @@ -1758,7 +1758,7 @@ pioneer paI@n'i@3 pious paI@s pipette pIp'Et piquant pi:k@nt -piracy paI@r@sI +piracy paI@r@si piranha p@rA:n@ pirate paIr@t pisces paIsi:z @@ -1776,7 +1776,7 @@ polls poUlz polyamide p0lI'eImaId polythene $1 portend po@t'End -posse p0sI +posse p0si postage poUstI2dZ practise praktI2s prayer pre@ @@ -1802,10 +1802,10 @@ prestige prEst'i:Z ?3 pretense pri:tEns pretext pri:tEkst pretrial pri:tr'aI|@L -pretty prItI +pretty prIti privation praIv'eIS@n privilege prIvI2lI2dZ -privy prIvI +privy prIvi prix pri: proactive proU'aktIv pros proUz @@ -1813,7 +1813,7 @@ proceed proUsi:d $onlys proceed $verb proceed $only produce pr0dju:s $noun -progeny pr0dZ@nI +progeny pr0dZ@ni progress proUgrEs $only ?3 progress pr0grEs $only progress $verb @@ -1838,7 +1838,7 @@ psychosis saIk'oUsIs psychotic saIk'0tIk pud pUd // and pudding punative pju:n@tIv -puny pju:nI +puny pju:ni purist pju:r-Ist purport p3:p'o@t purportedly p3p'o@tI2dlI $verbf @@ -1864,7 +1864,7 @@ rainforest r'eInf,0rI2st rajah rA:dZA: rapier reIpi@3 rapport rap'o@ -rarity re@r@tI +rarity re@r@ti rascal raask@L ratatouille rat@t'u:I ?!3 rather rA:D3 @@ -1926,7 +1926,7 @@ relative rEl@tIv relic rElIk relish rElI2S rely rI2laI -remedy rEm@dI +remedy rEm@di remit ri:mIt remit ri:m'It $verb remnant rEmn@nt @@ -1978,7 +1978,7 @@ rout raUt // for routed routine $2 row roU row raU $noun -ruby ru:bI +ruby ru:bi rugged rVgI2d ruin ru:I2n // for ruining @@ -1989,7 +1989,7 @@ sabre seIb3 sachet saSeI sacred seIkr@d sacrifice sakrI2faIs -safety seIftI +safety seIfti saga sA:g@ salad sal@d saline seIlaIn @@ -1999,7 +1999,7 @@ sardine $2 satan seIt@n satanist seIt@nIst saucepan sO:sp@n -saudi saUdI +saudi saUdi saute sO:teI says sEz scaly skeIlI @@ -2020,7 +2020,7 @@ sealion si:laI@n seance seI0ns secant si:k@nt seconded sEk'0ndI2d -secrecy si:kr@sI +secrecy si:kr@si secret si:kr@t secretive si:kr@tIv secretary sEkr@trI @@ -2044,7 +2044,7 @@ series si:ri:z serenade sErI2n'eId serene s@ri:n sergeant sA@dZ@nt -sesame sEsa#mI +sesame sEsa#mi settee $2 severe sI2v'i@3 $only severely sI2v'i@3lI2 $verbf @@ -2088,7 +2088,7 @@ skied ski:d skua sku:@ slavish sleIvIS snooker snu:k3 -society s@saI@tI +society s@saI@ti sofa soUf@ soiree swA:reI soldier soUldZ3 @@ -2104,7 +2104,7 @@ sooth su:D soundbite saUndbaIt souvenir su:v@n'i@3 sorbet sO@beI -spaghetti spag'EtI +spaghetti spag'Eti spasm spas@m specific sp@sIfIk specimen spEsI2m@n @@ -2115,7 +2115,7 @@ squirrel skwIr@L standby standbaI stagnate $2 stampede $2 -starry stA:ri +starry stA:rI stiletto stI2lEtoU strychnine str'Ikni:n sterile stEraIl @@ -2180,7 +2180,7 @@ tear ti@3 $onlys tear te@ $verb teargas ti@3gas teddybear t'EdIb,e@ -telephony tEl'Ef@nI +telephony tEl'Ef@ni ten tEn // untenable termini t3:mInaI terrain t@reIn @@ -2199,12 +2199,12 @@ tho DoU thousand TaUz@nd throughout $2 tidal taId@L -tidy taIdI +tidy taIdi tikka ti:k@ tilde tIld@ timetable taImteIb@L timider tImId3 -tiny taInI +tiny taIni tirade taIr'eId tis tIz titan taIt@n @@ -2228,16 +2228,16 @@ transport transpo@t $only transport $verb transports transpo@t|s $nounf trajectory tr@dZEkt@rI -travesty trav@stI +travesty trav@sti treatise tri:tIz triage tri:A:Z tribunal traIb'ju:n@L -trilogy trIl@dZI +trilogy trIl@dZi trio tri:oU trojan troUdZ@n -trophy troUfI +trophy troUfi troubadour tru:b@do@ -truely tru:lI2 $verbf +truely tru:lI $verbf truest tru:@st tryst trIst tudor tju:d3 @@ -2252,7 +2252,7 @@ twos tu:z typo taIpoU tyr taI@ -ukulele ju:k@l'eIlI +ukulele ju:k@l'eIli ultraviolet $3 umbrella $2 unable Vn'eIb@L @@ -2261,13 +2261,13 @@ uncle VNk@L undeny VndIn'aI undermine Vnd3m'aIn undo Vnd'u: -uni ju:nI +uni ju:ni uninterest Vn'Int@r@st -university ju:nIv'3:sI2tI +university ju:nIv'3:sI2ti unless Vnl'Es unread Vnr'Ed $only unsure VnS'U@ -untidy Vnt'aIdI +untidy Vnt'aIdi untie Vnt'aI unty Vnt'aI // for untying unwind Vnw'aInd @@ -2298,7 +2298,7 @@ vagary veIg@rI vagina v@dZaIn@ (van den) vandEn (van der) vand3: -variety v@raI@tI +variety v@raI@ti ?!3 vase vA:z vaseline vas@li:n veg vEdZ @@ -2312,11 +2312,12 @@ vertices v3:tIsi:z vestige vEstI2dZ vex vEks // for vexed vicar vIk3 -vigilante vIdZI2l'antI2 +vigilante vIdZI2l'anti vignette vInj'Et villi vIlaI vineyard vInj3d vinyl vaInI2l +viola vaI'oUl@ violin $2 virus vaI@r@s viral vaI@r@L @@ -2332,7 +2333,7 @@ wastage weIstI2dZ wast weIst // wasted watershed wO:t3SEd watson w0t|s@n -waxy waksI +waxy waksi webpage wEbpeIdZ wehrmacht ve@maxt website wEbsaIt @@ -2346,7 +2347,7 @@ whol hoUl // for wholly whore ho@ wicked wIkI2d wilderness wIld3nEs -winding waIndI2N // verb +winding waIndIN // verb wind waInd $verb (wind power) w'Ind||p'aU3 (wind up) w'aInd||'Vp @@ -2368,7 +2369,7 @@ wounded wu:ndI2d wretched rEtSI2d writable raIt@b@L writh raID -wrongdoing r0Ndu:I2N +wrongdoing r0Ndu:IN wuss wUs wysiwyg wIzi:wIg @@ -2388,7 +2389,7 @@ zulus zu:lu:z // place names Altrincham O:ltrIN@m -Anglesey aNg@LsI +Anglesey aNg@Lsi Argyle A@g'aIl Argyll A@g;aIl Bacup beIk@p @@ -2406,7 +2407,7 @@ Dover doUv3 Dumfries dVmfr'i:s Dyfed d'VvId Edinburgh EdInb%Vr@ -Ely i:lI +Ely i:li Exeter EksIt3 Exmoor EksmU@ Fylde faIld @@ -2415,7 +2416,8 @@ Glenrothes gl,Enr'0TI2s Greenwich grEnItS Harwich harIdZ Hasting heIstI2N -Kirkcaldy kIRk'0dI +Inverness Inv3n'Es +Kirkcaldy kIRk'0di Leven li:v@n Lincoln lInk@n Malvern mO:lv3n @@ -2425,7 +2427,7 @@ Norwich n0rI2tS Plymouth plIm@T Regis ri:dZI2s Rhyl rIl -Salisbury sO:lsbrI +Salisbury sO:lsbri Southend sA:f'End Stonehenge st,oUnh'EndZ Suffolk sVf@k @@ -2443,7 +2445,7 @@ Aegean $2 Afghan afgan Aires aIrIz Alamo al@moU -Albuquerque alb@k'3:kI +Albuquerque alb@k'3:ki Algiers $2 Amman a#m'A:n Andes andi:z @@ -2475,7 +2477,7 @@ Bologna b@loUn;@ Bucharest bu:ka#r'Est Budapest bu:d@p'Est Buenos bweIn0s -Burundi bUr'UndI +Burundi bUr'Undi Brazil braz'Il Cadiz $2 Cairo kaIroU @@ -2486,8 +2488,8 @@ Carolina kar@l'aIn@ Caribbean kar@b'i@n Ceylon $2 Cheyenne SaI'an -Chile tSIlI -Cincinnati sInsIn'atI +Chile tSIli +Cincinnati sInsIn'ati Cologne k@loUn Columbus $2 Congo $1 @@ -2498,9 +2500,9 @@ Cyprus saIpr@s Dahomey $2 Damascus da#mask@s Danish deInIS -Delhi dElI +Delhi dEli Dhabi dA:bi -Djibouti dZIb'u:tI +Djibouti dZIb'u:ti Donegal d0nI2g'O:l Durham dVr@m Egyptian IdZ'IpS@n @@ -2510,7 +2512,7 @@ Erie i@ri Geneva dZ@ni:v@ Gdansk g@-dansk Gomera goUm'e@r@ -Harare ha#rA:rI +Harare ha#rA:ri Hanoi han'OI Hawaii h@w'aIi: Hawai'i h@w'aIi: @@ -2523,15 +2525,15 @@ Idaho $1 Illinois Il@n'OI Indochina IndoUtS'aIn@ Ipanema Ipa#n'i:m@ -Israeli Izr'eIlI +Israeli Izr'eIli Istanbul ,Ist,anb'Ul Italia It'alI2@ // Italian(s) Jakarta $2 Jerusalem dZ@ru:s@l@m Johannesburg $2 -Kalgoorlie kalgU@lI +Kalgoorlie kalgU@li Kannada kA:n@d@ -Karachi ka#rA@tSI +Karachi ka#rA@tSi Kentucky $2 Kiev ki:Ev Khmer kmi@3 @@ -2549,9 +2551,9 @@ Lvov l@-v0v Madagascar mad@g'ask3 Madras m@draas Madrid m@drId -Malawi ma#lA:wI +Malawi ma#lA:wi Maldives mO:ld'i:v -Mali mA:lI +Mali mA:li Manhatten $2 Massachusetts $3 Maya maI@ @@ -2560,18 +2562,18 @@ Melbourne mElb3n Memphis mEmfI2s Merced m3:s'Ed Mexico $1 -Miami maI'amI +Miami maI'ami Michigan mISIg@n Milan $2 Mindanao mInd@n'aU Minneapolis mIni:'ap@lI2s -Missouri mIz'U@rI +Missouri mIz'U@ri Monaco m0n@koU Montreal m0ntrI'O:l Morocco m@r0koU Moroccan m@r0k@n Munich mju:nIk -Nairobi naIr'oUbI +Nairobi naIr'oUbi Naples neIp@Lz Nauru naUru: Nebraska $2 @@ -2598,11 +2600,11 @@ Portuguese po@tju:g'i:z Potomac $2 Prague prA:g Provence pr0v'A~s -Punjabi pVndZ'A:bI +Punjabi pVndZ'A:bi Pyrenees pIr@n'i:z Qatar katA@ Quebec kwI2bEk -Raleigh rA:lI +Raleigh rA:li Reno ri:noU Rio ri:oU Sahel sA:h'El @@ -2613,13 +2615,13 @@ Savoy sa#vOI Seattle si:'at@L Seychelle seIS'El Shanghai $2 -Sicily sIsI2lI +Sicily sIsI2li Slovak sloUvak Seoul soUl Sri sr,i: // Sri Lanka(n) Sudan su:d'an Suez su:I2z -Sulawesi su:la#w'eIsI +Sulawesi su:la#w'eIsi Suriname sU@rIn'am Taipei t,aIp'eI Taiwan taI'wan @@ -2631,7 +2633,7 @@ Toronto t@r0ntoU Timor ti:mo@ Tokyo toUkIoU Toulouse tu:l'u:z -Tripoli trIp@lI +Tripoli trIp@li Ukraine ju:kr'eIn Ural ju:@r@L Utah ju:t2A: @@ -2641,12 +2643,13 @@ Vancouver $2 Vegas veIg@s Vermont $2 Vienna vI'En@ +Wichita wItSI2t@ Winnipeg wInI2pEg Wisconsin wI2sk'0nsIn Wyoming waI'oUmI2N Xhosa kO:s@ zaire zaI'i@3 -zimbabwe zI2mbA:bwI +zimbabwe zI2mbA:bwi zimbabwean zI2mbA:bwI@n Aaliyah @li:@ @@ -2812,7 +2815,7 @@ Llewellyn l#@w'ElIn Llywelyn l#@w'ElIn Loinnir lVni@ Lois loUIs -Louis lu:I +Louis lu:i Louise lu:w'i:z Luis lu:Is Lupe lu:peI @@ -2915,17 +2918,18 @@ Andromeda andr'0mId@ Beethoven beItoUv@n Buchanan bju:k'an@n Campbell kamb@l -Carnegie kA@nEgI +Carnegie kA@nEgi Cohen koU@n Cthulhu k@-Tu:l#u: Chrysler kraIzl3 -Disney dIznI +Disney dIzni Dolce d0ltSeI Dvorak d@-vo@Zak Gibson gIbs@n Guinness gInIs Hades heIdi:z Mackenna m@kEn@ +Montague m0nt@gju: Niro ni@roU Patel pa#tEl Prescot prEsk0t @@ -2944,7 +2948,7 @@ zhivago ZI2vA:goU -(de jure) deIdZ'U@rI +(de jure) deIdZ'U@ri (en masse) ,0n||m'as (en route) ,0n||r'u:t (each of) i:tS||@v $pause @@ -2958,7 +2962,7 @@ zhivago ZI2vA:goU (such as) sVtS||_a#z $pause (too few) t'u:||f,ju: -(too many) t'u:||m,EnI +(too many) t'u:||m,Eni (too much) t'u:||m,VtS //************************************************************************* @@ -2971,7 +2975,7 @@ zhivago ZI2vA:goU so ,soU $strend2 $verbf (so far) s'oU||f,A@ $strend2 -(so many) s,oU||m'EnI +(so many) s,oU||m'Eni (so much) s'oU||m,VtS //prepositions @@ -2994,7 +2998,7 @@ for fO@ $u (for one) fO@w0n $2 $atend to t@5 $verbf // @ change to U before vowel -(to be) t@b%I $pastf +(to be) t@b%i $pastf (to be) t@||'bi: $atend (to to) %tU_t@5 $verbf (to and fro) tu:@ndfr'oU @@ -3303,7 +3307,7 @@ now $verbf now naU $verbf $allcaps soon $verbf still $verbf -already O:lrEdI $u2 $verbf $strend2 +already O:lrEdi $u2 $verbf $strend2 not ,n0t $verbextend $only $strend (not have) n0ta#v $pastf $u1 @@ -3311,10 +3315,10 @@ not ,n0t $verbextend $only $strend (not have to) ,n0thavt@5 $pastf $strend (not a) ,n0t@ $nounf not n0t $allcaps $verbextend // don't spell "NOT"; speak it with stress -only oUnlI $verbextend +only oUnli $verbextend -any ,EnI $nounf $only -many mEnI $nounf +any ,Eni $nounf $only +many mEni $nounf (many of) mEnI|@v some ,sVm $nounf $unstressend $only (some one) sVmw0n @@ -3399,7 +3403,7 @@ like laIk $strend2 ?3 beta beIt@ ?3 caffeine $2 ?3 comrade k0mrad -?3 commentary k0m@ntErI +?3 commentary k0m@ntEri ?3 current k'3@nt ?3 depot di:poU ?3 detail $2 @@ -3411,13 +3415,13 @@ like laIk $strend2 ?3 herb 3:b ?3 hurricane h3:@keIn ?3 investigative Inv,EstI2g'eItIv -?3 laboratory labr@tO:rI +?3 laboratory labr@tO:ri ?3 launch lA:ntS ?3 lost lOst ?3 multi mVltaI ?3 pasta pA:st@ ?3 patent pat@nt -?3 privacy praIv@sI +?3 privacy praIv@si ?3 respite rEspI2t ?3 semi sEmaI ?3 sojourn soUdZ3:n diff --git a/dictsource/fr_list b/dictsource/fr_list index 9e4e0fbb..00c080d2 100755 --- a/dictsource/fr_list +++ b/dictsource/fr_list @@ -1,4 +1,4 @@ -/ + // *************************************************************************** // * Copyright (C) 2005 to 2010 by Jonathan Duddington * // * email: jonsd@users.sourceforge.net * diff --git a/dictsource/fr_rules b/dictsource/fr_rules index e59dc09b..b800eaab 100755 --- a/dictsource/fr_rules +++ b/dictsource/fr_rules @@ -1,7 +1,7 @@ // French translation rules for Espeak // *************************************************************************** -// * Copyright (C) 2005 to 2010 by Jonathan Duddington * +// * Copyright (C) 2005 to 2011 by Jonathan Duddington * // * email: jonsd@users.sourceforge.net * // * * // * This program is free software; you can redistribute it and/or modify * @@ -27,7 +27,7 @@ // http://www.fluxnic.net/cicero // // Rules are now maintained by Michel Such -// Last update: 2011-04-15 Michel Such +// Last update: 2011-05-20 Michel Such // // Letter classes: @@ -72,6 +72,12 @@ .L14 be in up ut .L15 c f g h +// Hours +.L16 0 1 2 3 4 5 6 7 8 9 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 + +// Minutes +.L17 0 1 2 3 4 5 + .group a @@ -1518,6 +1524,7 @@ nC) y (_ _^_en // symbols that are normally spoken when reading text // , (D pilk:u +_L16_) : (_L17D_ Wr // Say time $ dOlar ° d@gre _n_) ° // n° diff --git a/dictsource/ta_list b/dictsource/ta_list index 46725bb1..9d70a6a5 100644 --- a/dictsource/ta_list +++ b/dictsource/ta_list @@ -298,6 +298,9 @@ tamil தமிழ் $text போரடிக்காம $alt பரத் $alt பாஷா $alt +பூட் $alt +படுக $alt +படுகா $alt (பி . ஏ) bije: diff --git a/dictsource/ta_rules b/dictsource/ta_rules index a3932ff4..ddfc7b7e 100644 --- a/dictsource/ta_rules +++ b/dictsource/ta_rules @@ -128,6 +128,7 @@ _) க (ந்தர்வ gV _) க (னக்க gV _) க (னத் gV + _) க (னபாடி gV _) க (னம gV _) கப் (L04ா gVp _) கப்ச (ிப் gVptS @@ -167,6 +168,7 @@ _) க (ானா g க (ாரன k க (ாரர k + _) க (ார்டன g _) க (ிடுகிடு g _) க (ின்னஸ g _) க (ின்னென்ற g @@ -205,6 +207,7 @@ _) கி (ளாL04ை k _) கி (ளாஸ்_ g _) கிளிட kl.it.V# + _) கிளிண்ட (ன klint.V _) கி (ளினிக் k _) கிளிப் (_ kl.ip _) கி (ளிப்பில k @@ -430,8 +433,10 @@ _சூரிய) க (லா kV _தாலு) க (ா k _ராதி) க (ா k _லங்) க (ா k + ஆஷி) க (ா k இலா) க (ா k _கீர்த்தி) க (ா k + _கேஷி) க (ா k _தாலூ) க (ா k _தேவி) க (ா k _யுரே) க (ா k @@ -444,6 +449,7 @@ _மோனி) க (ா k _மௌனி) க (ா k _ஸ்ரீலங்) க (ா k _ஹன்L04ி) க (ா k +அனாமி) க (ா k _ஹாங்) க (ாங் k _தென்) க (ாசி k _நேர்) க (ாணல k @@ -645,6 +651,7 @@ _துப்பாக்கி) க்க (ுண்ட gg ச (ந்திர tSV _ஹட்) ச (ன sV _வாட்) ச (ன sV +_டேவிட்) ச (ன sV _) ச (ப்பா tSV _) ச (ப்பி tSV _) ச (ப்பு tSV @@ -786,6 +793,8 @@ _தணிகா) ச (ல tSV _) ச (ேலஞ் tS _) ச (ேஷ்டை tS _) ச (ைத்திய tS + _) ச (ைனா tS + _) ச (ைனா_நேவால s _) ச (ைனாவ tS _) ச (ைனீஸ tS _) ச (ௌதரி tS @@ -819,6 +828,7 @@ _தணிகா) ச (ல tSV //sort + _வால்) ட t.V# _கமெண்) ட t.V# _ரிப்போர்) ட t.V# அL04ால்) ட t.V# @@ -830,6 +840,7 @@ _ரிப்போர்) ட t.V# ங்) ட (ன t.V // -ington _நியூ) ட (ன t.V _மில்) ட (ன t.V + _) ட (னல t.V _) ட (ன் t.V _) ட (ப்_ t.V _) டப்ப (ில t.Vbb @@ -840,6 +851,7 @@ _ரிப்போர்) ட t.V# _) ட (யரு t.V _) ட (யர் t.V _ப்ரிண்) ட (ர t.V + _ஷெல்) ட (ர t.V _ஸ்கூ) ட (ர t.V என்கவுண்) ட (ர t.V என்கௌண்) ட (ர t.V @@ -878,6 +890,7 @@ _ரிப்போர்) ட t.V# _டியூ) ட (ி t. _ட்யூ) ட (ி t. _சேஃப்) ட (ி t. + _பேண்) ட (ி t. _ராயல்) ட (ி t. _க்வாலி) ட (ி t. _நாவல்) ட (ி t. @@ -896,6 +909,7 @@ _நாவல்) ட (ி t. _) டி (யூசன t. _) டியூட (ி d.jU:t. _) டி (யூன t. + _) டி (யூப t. _) டி (யூஷன t. _) டி (ரங் t. _) டி (ரங்கு t. @@ -931,6 +945,7 @@ _நாவல்) ட (ி t. _) டி (ரெயின t. _) டி (ரெய்லர t. _) டி (ரெஸ d. + இண்) டி (ரெஸ்ட t. _) டிரேயின (ை t.re:jn _) டி (ரை_ d. _) டி (ரை_செஞ்ச t. @@ -986,6 +1001,7 @@ _லான்_) ட (ென்னிஸ t. _) டோரண்ட (ோ t.o:rVn.t. _ப்ரி) ட (ோரிய t. @மெண்) ட் t. // -ment + _பேண்) ட் t. இண்டர்நெ) ட் t. _ல) ட்ட d.d.V# _ரெ) ட்ட (ியா d.d. @@ -993,6 +1009,7 @@ _லான்_) ட (ென்னிஸ t. அப்பாயிண்) ட்மெண்ட t.men.t.V# _) ட் (யூசன t. _) ட் (யூன t. + _) ட் (யூப t. ஸ்) ட் (ர _|t. // ?? make t. distinct _) ட் (ரங் t. _) ட் (ரங்கு t. @@ -1018,6 +1035,7 @@ _லான்_) ட (ென்னிஸ t. _) ட் (ராலி t. _) ட் (ராவல t. _) ட் (ராவெல t. + எண்) ட் (ரி t. _) ட்ரிக (ர t.riggV _) ட்ரிக் t.rik _) ட்ரிக்க (ர t.riggV @@ -1028,6 +1046,7 @@ _லான்_) ட (ென்னிஸ t. _போ) ட் (ரு t. _) ட்ரெயி (லர t.rej _) ட் (ரெய்லர t. + இண்) ட் (ரேஸ்ட t. _) ட் (ரை_செஞ்ச t. _) ட் (ரை_செய் t. _) ட் (ரை_பண் t. @@ -1110,6 +1129,7 @@ _நடுரோ) ட் (ல t. _) த (டிமாட dV _) த (டியன dV _) த (டியர dV + _) த (டியான dV _) த (ட்சசீல dV _) த (ட்சன dV _) த (ட்சிண dV @@ -1339,6 +1359,7 @@ _நடுரோ) ட் (ல t. _) த (ேச d _) த (ேவகான d _) த (ேவகி d + _) த (ேவகுரு d _) த (ேவகுல d _) த (ேவக் d _) த (ேவசேன d @@ -1425,6 +1446,7 @@ _பிரசார்_பார) த (ி t _பிர) த (ீ t த (ுறை t வீண்) த (ேவை t +_நிவேதி) த (ை t வீண்) த (ொல்லை t அம்பே) த்க tkV# யு) த்த ddV# @@ -1481,6 +1503,7 @@ _சிறை) த்த (ண்டனை ddV வி) த்த (ையால்_ dd வி) த்த (ையி dd வி) த்த (ையை dd + _ஜெ) த் (மலானி t ச) த (்ய t நி) த (்ய t இ) த் (யாதி t @@ -1561,6 +1584,8 @@ _காமசூ) த் (ர t _) ப (ச்சன bV _) ப (ச்சான bV _) ப (ஜ bV + _) ப (டுகாக்கள bV + _) ப (டுகாவ bV _) ப (ட்சண bV _) ப (ட்சிக்க bV _) ப (ட்சிப்ப bV @@ -1613,6 +1638,8 @@ _சொந்த_) ப (ந்த bV _) ப (ர்கர bV _) ப (ர்த் bV _) ப (ர்னாலா bV + _) பர்னிச (ர fVrnitSV + _) ப (ர்னிச்சர fV _) ப (ர்மா bV _) ப (ர்லாங் fV _) ப (லகீன bV @@ -1724,11 +1751,14 @@ _சொந்த_) ப (ந்த bV _) ப (ாமாவ b _) ப (ாமினி b _) ப (ாம்பே b +_ஆடு_) ப (ாம்பே p +_விளையாடு_) ப (ாம்பே p _) ப (ாரத b _) ப (ாரதி b _) ப (ாரத்த b _) ப (ாரம b _) ப (ாரம்பரிய p + _) ப (ாரவி b _) ப (ாராமுல்லா b _) ப (ாரிஸ்டர b _) ப (ார்L04லோனா b @@ -1812,6 +1842,7 @@ _ராகத்தின்_) ப (ாவ b _) ப (ிட்டடி b _) ப (ினாமி b _) ப (ினிஷ f + _) பின் (_லேடன b _) ப (ின்லாந்த f _) பிப (ி bip _) ப (ிபிசி b // bbc @@ -1892,6 +1923,7 @@ _ராகத்தின்_) ப (ாவ b _) பி (ராண்ட p _) பி (ராண்ட்_ b _) பி (ராதித் p + _) பி (ராத்தல b _) பி (ராந்தி_ b _) பி (ராந்தியங் p _) பி (ராந்தியத் p @@ -1936,6 +1968,7 @@ _ராகத்தின்_) ப (ாவ b _) பி (ரிஸ்டல b _) பிரிஸ்ப (ேன brisb _) பிரு (கன்நளை bri + _) பி (ருகு b _) பிரு (ந்தா bri _) பிரெஞ்ச fren^tSV# _) பிரெட்ரிக் fred.rik @@ -1948,6 +1981,8 @@ _ராகத்தின்_) ப (ாவ b _) பி (ரைல b _) பி (ரோகிதர p _) பி (ரௌச b + _) பி (ரௌன b + _) ப (ில்டப் b _) ப (ில்டிங் b _) ப (ில்லியன b _) பி (ளவுஸ b @@ -2076,6 +2111,7 @@ _பெனசீர்_) ப (ுட்டோ b _) ப (ேகத் b _) ப (ேகம b _) ப (ேக்கரி b + _) ப (ேங்க் b _) ப (ேச்சலர b _) ப (ேச்சிலர b _) ப (ேச்சுலர b @@ -2098,6 +2134,7 @@ _பெனசீர்_) ப (ுட்டோ b _) ப (ொம்மன b _) ப (ொம்மல b _) ப (ொம்மை b + _) ப (ோஃபோர் b _) ப (ோக_L11 b _) ப (ோகங்க b _) ப (ோகத்த b @@ -2126,6 +2163,7 @@ _பெனசீர்_) ப (ுட்டோ b _) ப (ோன்கள f _) ப (ோன்ஸ்லே b _) போப (ால bo:p + _) போப (ோர் bo:f _) ப (ோரடிக்காமலா b _) ப (ோரடிக்குத b _) ப (ோரடிக்கும b @@ -2146,6 +2184,7 @@ _சந்திர_) ப (ோஸ b _) ப் (ரவுச b _) ப் (ரஷ் b _) ப் (ரஸல்ஸ b + _) ப் (ராத்தல b _) ப் (ரான்சிஸ்க f _) ப் (ரான்ஸ f _) ப் (ராவ b @@ -2162,6 +2201,7 @@ _சந்திர_) ப (ோஸ b _) ப் (ரோக்கர b _) ப்ரோட (ான pro:t _) ப் (ரௌச b + _) ப் (ரௌன b _) ப் (ளவுஸ b _) ப் (ளோரிடா f _) ப் (ளௌஸ b @@ -2342,6 +2382,7 @@ _ப்ரின்சி) ப (ால p கண்டு) ப (ிடி p திமிர்) ப (ிடி p ராவல்) ப (ிண்டி p + _டால்) ப (ின f ஒ) ப (ினியன p அன்) ப (ின் b _பண்) ப (ின் b @@ -2690,6 +2731,7 @@ _சந்தேக) ப்ப (ுத்தி bb இ (ரசிக்க இ (ரசித்த இ (ரத்த + இரப்ப (ர irVbbV இ (ரயில இ (ராக இ (ராச diff --git a/espeak-data/voices/grc b/espeak-data/voices/grc deleted file mode 100755 index ffa94206..00000000 --- a/espeak-data/voices/grc +++ /dev/null @@ -1,8 +0,0 @@ -name greek-ancient -language grc -gender male - -stressLength 170 170 190 190 0 0 230 240 -dictrules 1 -words 3 - diff --git a/espeak-data/voices/jbo b/espeak-data/voices/jbo deleted file mode 100644 index ebab1a87..00000000 --- a/espeak-data/voices/jbo +++ /dev/null @@ -1,3 +0,0 @@ -name lojban -language jbo - diff --git a/espeak-data/voices/mb/mb-br1 b/espeak-data/voices/mb/mb-br1 index ba7c42cc..370a5ea1 100755 --- a/espeak-data/voices/mb/mb-br1 +++ b/espeak-data/voices/mb/mb-br1 @@ -1,7 +1,9 @@ language pt 7 name brazil-mbrola-1 gender male + pitch 82 117 +voicing 80 dictrules 2 3 4 diff --git a/espeak-data/voices/mb/mb-br3 b/espeak-data/voices/mb/mb-br3 index 8479e658..0cf9daa5 100644 --- a/espeak-data/voices/mb/mb-br3 +++ b/espeak-data/voices/mb/mb-br3 @@ -1,9 +1,10 @@ language pt 7 name brazil-mbrola-3 gender male -pitch 82 117 +pitch 80 120 dictrules 2 3 4 +voicing 120 mbrola br3 ptbr_phtrans diff --git a/espeak-data/voices/mb/mb-br4 b/espeak-data/voices/mb/mb-br4 index d3d77200..1cc596d8 100644 --- a/espeak-data/voices/mb/mb-br4 +++ b/espeak-data/voices/mb/mb-br4 @@ -1,7 +1,9 @@ language pt 7 name brazil-mbrola-4 gender female + pitch 140 220 +voicing 80 dictrules 2 3 4 diff --git a/espeak-data/voices/mb/mb-cr1 b/espeak-data/voices/mb/mb-cr1 index 9b280bf8..1f0ab08a 100755 --- a/espeak-data/voices/mb/mb-cr1 +++ b/espeak-data/voices/mb/mb-cr1 @@ -5,5 +5,6 @@ gender male dictionary hbs dictrules 1 +voicing 150 pitch 82 117 mbrola cr1 cr1_phtrans diff --git a/espeak-data/voices/mb/mb-de2 b/espeak-data/voices/mb/mb-de2 index c0a5475e..39e3c434 100755 --- a/espeak-data/voices/mb/mb-de2 +++ b/espeak-data/voices/mb/mb-de2 @@ -1,6 +1,7 @@ name german-mbrola-2 language de 6 gender male +voicing 80 mbrola de2 de2_phtrans diff --git a/espeak-data/voices/mb/mb-de4 b/espeak-data/voices/mb/mb-de4 index 31bd479a..abd8713d 100755 --- a/espeak-data/voices/mb/mb-de4 +++ b/espeak-data/voices/mb/mb-de4 @@ -2,5 +2,7 @@ name german-mbrola-4 language de 6 gender male +voicing 130 + mbrola de4 de4_phtrans diff --git a/espeak-data/voices/mb/mb-de4-en b/espeak-data/voices/mb/mb-de4-en index 8fd4a63a..5980fbf0 100755 --- a/espeak-data/voices/mb/mb-de4-en +++ b/espeak-data/voices/mb/mb-de4-en @@ -2,5 +2,7 @@ name en-german language en 9 gender male +voicing 130 + mbrola de4 de4_phtrans diff --git a/espeak-data/voices/mb/mb-de7 b/espeak-data/voices/mb/mb-de7 index aa80edaa..d51583c8 100755 --- a/espeak-data/voices/mb/mb-de7 +++ b/espeak-data/voices/mb/mb-de7 @@ -2,6 +2,7 @@ name german-mbrola-7 language de 7 gender female +voicing 150 pitch 140 220 mbrola de7 de6_phtrans 22050 diff --git a/espeak-data/voices/mb/mb-en1 b/espeak-data/voices/mb/mb-en1 index fc60f416..8de8e01c 100755 --- a/espeak-data/voices/mb/mb-en1 +++ b/espeak-data/voices/mb/mb-en1 @@ -3,5 +3,6 @@ language en-uk 3 language en 2 gender male +voicing 150 pitch 82 117 mbrola en1 en1_phtrans diff --git a/espeak-data/voices/mb/mb-fr1 b/espeak-data/voices/mb/mb-fr1 index 7cbdab33..04651527 100755 --- a/espeak-data/voices/mb/mb-fr1 +++ b/espeak-data/voices/mb/mb-fr1 @@ -5,5 +5,7 @@ gender male dictrules 1 stressLength 180 180 180 180 0 0 220 220 pitch 82 117 +voicing 70 + mbrola fr1 fr1_phtrans diff --git a/espeak-data/voices/mb/mb-fr1-en b/espeak-data/voices/mb/mb-fr1-en index 36665314..47cb1825 100755 --- a/espeak-data/voices/mb/mb-fr1-en +++ b/espeak-data/voices/mb/mb-fr1-en @@ -4,5 +4,6 @@ gender male dictrules 1 pitch 82 117 +voicing 70 mbrola fr1 fr1_phtrans diff --git a/espeak-data/voices/mb/mb-fr4 b/espeak-data/voices/mb/mb-fr4 index c276bec0..8e3c3921 100755 --- a/espeak-data/voices/mb/mb-fr4 +++ b/espeak-data/voices/mb/mb-fr4 @@ -4,5 +4,6 @@ gender female dictrules 1 pitch 140 220 +voicing 90 mbrola fr1 fr1_phtrans diff --git a/espeak-data/voices/mb/mb-fr4-en b/espeak-data/voices/mb/mb-fr4-en index b8f78294..8126770b 100755 --- a/espeak-data/voices/mb/mb-fr4-en +++ b/espeak-data/voices/mb/mb-fr4-en @@ -4,5 +4,6 @@ gender female dictrules 1 pitch 140 220 +voicing 90 mbrola fr1 fr1_phtrans diff --git a/espeak-data/voices/mb/mb-gr2 b/espeak-data/voices/mb/mb-gr2 index 30dea892..92d2f20f 100755 --- a/espeak-data/voices/mb/mb-gr2 +++ b/espeak-data/voices/mb/mb-gr2 @@ -3,4 +3,5 @@ language el 7 gender male pitch 82 117 +voicing 65 mbrola gr2 gr2_phtrans diff --git a/espeak-data/voices/mb/mb-gr2-en b/espeak-data/voices/mb/mb-gr2-en index b48b1788..d30970d2 100755 --- a/espeak-data/voices/mb/mb-gr2-en +++ b/espeak-data/voices/mb/mb-gr2-en @@ -3,4 +3,5 @@ language en 7 gender male pitch 82 117 +voicing 65 mbrola gr2 gr2_phtrans diff --git a/espeak-data/voices/mb/mb-hu1 b/espeak-data/voices/mb/mb-hu1 index b8519559..195ea330 100755 --- a/espeak-data/voices/mb/mb-hu1 +++ b/espeak-data/voices/mb/mb-hu1 @@ -3,4 +3,5 @@ language hu 7 gender female pitch 140 220 +voicing 160 mbrola hu1 hu1_phtrans diff --git a/espeak-data/voices/mb/mb-hu1-en b/espeak-data/voices/mb/mb-hu1-en index 73ac62a4..28ce3754 100755 --- a/espeak-data/voices/mb/mb-hu1-en +++ b/espeak-data/voices/mb/mb-hu1-en @@ -3,4 +3,5 @@ language en 10 gender female pitch 140 220 +voicing 160 mbrola hu1 hu1_phtrans diff --git a/espeak-data/voices/mb/mb-ic1 b/espeak-data/voices/mb/mb-ic1 index 19fd69d3..b08b53a2 100644 --- a/espeak-data/voices/mb/mb-ic1 +++ b/espeak-data/voices/mb/mb-ic1 @@ -2,5 +2,6 @@ name mbrola-icelandic language is 6 gender male +voicing 180 mbrola ic1 ic1_phtrans diff --git a/espeak-data/voices/mb/mb-id1 b/espeak-data/voices/mb/mb-id1 index b86f5930..aa57c315 100755 --- a/espeak-data/voices/mb/mb-id1 +++ b/espeak-data/voices/mb/mb-id1 @@ -3,5 +3,6 @@ language id 7 gender male pitch 82 117 +voicing 120 mbrola id1 id1_phtrans diff --git a/espeak-data/voices/mb/mb-it3 b/espeak-data/voices/mb/mb-it3 index 00e88867..89f7dcd4 100755 --- a/espeak-data/voices/mb/mb-it3 +++ b/espeak-data/voices/mb/mb-it3 @@ -3,6 +3,7 @@ language it 7 gender male pitch 82 117 +voicing 65 mbrola it3 it3_phtrans replace 03 i I // final unstressed "i" diff --git a/espeak-data/voices/mb/mb-it4 b/espeak-data/voices/mb/mb-it4 index f2130ba4..cb3a6ffb 100755 --- a/espeak-data/voices/mb/mb-it4 +++ b/espeak-data/voices/mb/mb-it4 @@ -3,6 +3,7 @@ language it 7 gender female pitch 140 220 +voicing 60 mbrola it4 it3_phtrans replace 03 i I // final unstressed "i" diff --git a/espeak-data/voices/mb/mb-nl2 b/espeak-data/voices/mb/mb-nl2 index fc377156..273f98b6 100755 --- a/espeak-data/voices/mb/mb-nl2 +++ b/espeak-data/voices/mb/mb-nl2 @@ -3,5 +3,7 @@ name dutch-mbrola-2 gender male pitch 82 117 +voicing 130 + mbrola nl2 nl_phtrans diff --git a/espeak-data/voices/mb/mb-nl2-en b/espeak-data/voices/mb/mb-nl2-en index 0c2d13a6..ad0ac406 100755 --- a/espeak-data/voices/mb/mb-nl2-en +++ b/espeak-data/voices/mb/mb-nl2-en @@ -3,5 +3,7 @@ name en-dutch gender male pitch 82 117 +voicing 130 + mbrola nl2 nl_phtrans diff --git a/espeak-data/voices/mb/mb-pl1 b/espeak-data/voices/mb/mb-pl1 index 4e2b9d23..cedeb46b 100755 --- a/espeak-data/voices/mb/mb-pl1 +++ b/espeak-data/voices/mb/mb-pl1 @@ -3,4 +3,5 @@ language pl 7 gender female pitch 140 220 +voicing 120 mbrola pl1 pl1_phtrans diff --git a/espeak-data/voices/mb/mb-pt1 b/espeak-data/voices/mb/mb-pt1 index ebd92ffb..a2168959 100644 --- a/espeak-data/voices/mb/mb-pt1 +++ b/espeak-data/voices/mb/mb-pt1 @@ -1,9 +1,10 @@ language pt 7 name portugal-mbrola-1 gender female -pitch 140 220 +pitch 145 240 dictrules 1 +voicing 70 mbrola pt1 pt1_phtrans diff --git a/espeak-data/voices/mb/mb-sw1 b/espeak-data/voices/mb/mb-sw1 index 4c623926..57ee32a9 100755 --- a/espeak-data/voices/mb/mb-sw1 +++ b/espeak-data/voices/mb/mb-sw1 @@ -3,5 +3,7 @@ language sv 7 gender male pitch 82 117 +voicing 120 + mbrola sw1 sv_phtrans diff --git a/espeak-data/voices/mb/mb-sw1-en b/espeak-data/voices/mb/mb-sw1-en index 52692c38..627af2fb 100755 --- a/espeak-data/voices/mb/mb-sw1-en +++ b/espeak-data/voices/mb/mb-sw1-en @@ -3,5 +3,7 @@ language en 11 gender male pitch 82 117 +voicing 120 + mbrola sw1 sv_phtrans diff --git a/espeak-data/voices/mb/mb-sw2 b/espeak-data/voices/mb/mb-sw2 index c632e263..55cfa0d7 100755 --- a/espeak-data/voices/mb/mb-sw2 +++ b/espeak-data/voices/mb/mb-sw2 @@ -3,5 +3,7 @@ language sv 8 gender female pitch 140 220 +voicing 130 + mbrola sw2 sv2_phtrans diff --git a/espeak-data/voices/mb/mb-sw2-en b/espeak-data/voices/mb/mb-sw2-en index f2033dc1..19dbea5d 100755 --- a/espeak-data/voices/mb/mb-sw2-en +++ b/espeak-data/voices/mb/mb-sw2-en @@ -3,5 +3,7 @@ language en gender female pitch 140 220 +voicing 130 + mbrola sw2 sv2_phtrans diff --git a/espeak-data/voices/mb/mb-tr2 b/espeak-data/voices/mb/mb-tr2 index 9b06e0bd..158a0440 100644 --- a/espeak-data/voices/mb/mb-tr2 +++ b/espeak-data/voices/mb/mb-tr2 @@ -3,6 +3,8 @@ language tr 7 gender female pitch 140 220 +voicing 170 + mbrola tr2 tr1_phtrans dictrules 1 diff --git a/espeak-data/voices/mb/mb-us2 b/espeak-data/voices/mb/mb-us2 index f9624b31..de799f06 100755 --- a/espeak-data/voices/mb/mb-us2 +++ b/espeak-data/voices/mb/mb-us2 @@ -9,4 +9,5 @@ dictrules 3 6 stressLength 170 135 205 205 0 0 245 275 pitch 82 117 +voicing 80 mbrola us2 us_phtrans diff --git a/espeak-data/voices/mb/mb-us3 b/espeak-data/voices/mb/mb-us3 index 740601d1..c538b134 100755 --- a/espeak-data/voices/mb/mb-us3 +++ b/espeak-data/voices/mb/mb-us3 @@ -8,5 +8,6 @@ dictrules 3 6 stressLength 170 135 205 205 0 0 245 275 +voicing 150 pitch 82 117 mbrola us3 us3_phtrans diff --git a/phsource/compile_report b/phsource/compile_report index 7b30f1e2..9a51d7ef 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -12,7 +12,7 @@ consonants 10 116 en-wi 30 150 af 39 136 cy 29 132 - de 37 138 + de 41 139 eo 13 114 jbo 2 114 nci 3 123 @@ -368,8 +368,8 @@ l/l_ [l] base [l/] fr l/l_@ [l/3] base [l/] fr -l/l@ [h†s] base - [l#] base +l/l@ [l#] base + [”¦] base [l] fr [l/2] fr [K] nso @@ -402,16 +402,16 @@ l/L2_oL [l/2] base l/L2_uL [l/2] base l/l_3 [l/] de l/l_4 [ll] sq -l/la [h†s] base - [l#] base +l/la [l#] base + [”¦] base [l] fr [l/2] fr [K] nso [K] tn l/l_a [l/3] base [l/] fr -l/le [h†s] base - [l#] base +l/le [l#] base + [”¦] base [l] fr [l/2] fr [K] nso @@ -422,8 +422,8 @@ l/L_eL_af [&] af [&:] af l/l_front [L] sq l/l_front_ [l/4] sq -l/li [h†s] base - [l#] base +l/li [l#] base + [”¦] base [l] fr [l/2] fr [l] zh @@ -436,8 +436,8 @@ ll/ll [L] bg ll/_ll [L] bg l/l_long [l] base [l] fr -l/lo [h†s] base - [l#] base +l/lo [l#] base + [”¦] base [l/2] fr [K] nso [K] tn @@ -446,8 +446,8 @@ l/l_o [l/3] base l^/l_rfx [l.] base [l] ru [l^] ru -l/lu [h†s] base - [l#] base +l/lu [l#] base + [”¦] base [l] fr [l/2] fr [K] nso diff --git a/phsource/mbrola/af1 b/phsource/mbrola/af1 index c2e75250..ef8d1eef 100644 --- a/phsource/mbrola/af1 +++ b/phsource/mbrola/af1 @@ -1,3 +1,5 @@ +volume 16 + 0 l/2 NULL 0 l 0 l/ NULL 0 l 0 r/ NULL 0 r diff --git a/phsource/mbrola/cr1 b/phsource/mbrola/cr1 index 1c417ea0..2916bc42 100644 --- a/phsource/mbrola/cr1 +++ b/phsource/mbrola/cr1 @@ -1,4 +1,3 @@ -volume 16 0 l/2 NULL 0 l 0 l/ NULL 0 l diff --git a/phsource/mbrola/de4 b/phsource/mbrola/de4 index d387559f..bb79f7b6 100644 --- a/phsource/mbrola/de4 +++ b/phsource/mbrola/de4 @@ -51,7 +51,7 @@ 0 O~ NULL 0 o~ 16 _| VWL 0 ? -16 _! VWL 0 ? +//16 _! VWL 0 ? // phonemes for English words 0 @L NULL 0 L diff --git a/phsource/mbrola/en1 b/phsource/mbrola/en1 index b6ea279c..ca3ce58d 100644 --- a/phsource/mbrola/en1 +++ b/phsource/mbrola/en1 @@ -1,4 +1,4 @@ -//volume 29 + 0 oU NULL 0 @U 0 a# NULL 0 @ 0 @2 NULL 0 @ diff --git a/phsource/mbrola/fr1 b/phsource/mbrola/fr1 index 39f2dc3b..b4a07e7d 100644 --- a/phsource/mbrola/fr1 +++ b/phsource/mbrola/fr1 @@ -1,4 +1,4 @@ -volume 15 + 0 l/2 NULL 0 l 0 l/ NULL 0 l 0 l2 NULL 0 l diff --git a/phsource/mbrola/gr2 b/phsource/mbrola/gr2 index 6e6c7ac3..8eea2222 100644 --- a/phsource/mbrola/gr2 +++ b/phsource/mbrola/gr2 @@ -1,4 +1,4 @@ -volume 16 +volume 15 0 l/2 NULL 0 l 0 l/ NULL 0 l diff --git a/phsource/mbrola/hu1 b/phsource/mbrola/hu1 index 116d6c2a..c51bb592 100644 --- a/phsource/mbrola/hu1 +++ b/phsource/mbrola/hu1 @@ -1,4 +1,3 @@ -volume 32 0 l/2 NULL 0 l 0 l/ NULL 0 l diff --git a/phsource/mbrola/id1 b/phsource/mbrola/id1 index 0833d0c8..3fe9587a 100644 --- a/phsource/mbrola/id1 +++ b/phsource/mbrola/id1 @@ -1,4 +1,3 @@ -volume 32 // CR1 doesn't like same phonemes twice 0 e E 5 e _ diff --git a/phsource/mbrola/it3 b/phsource/mbrola/it3 index dd3d22bd..2c12887c 100644 --- a/phsource/mbrola/it3 +++ b/phsource/mbrola/it3 @@ -1,4 +1,5 @@ // for voices "it3" "it4" +volume 15 0 r/ NULL 0 r 0 w/ NULL 0 w diff --git a/phsource/mbrola/pt1 b/phsource/mbrola/pt1 index 107bcc47..8319b96b 100644 --- a/phsource/mbrola/pt1 +++ b/phsource/mbrola/pt1 @@ -1,3 +1,5 @@ +volume 15 + 0 l/ NULL 0 w 0 l/2 w 0 l 0 l/2 j 0 l diff --git a/phsource/mbrola/ptbr b/phsource/mbrola/ptbr index 3a332d26..909a646b 100644 --- a/phsource/mbrola/ptbr +++ b/phsource/mbrola/ptbr @@ -1,3 +1,5 @@ +volume 15 + 0 l/ NULL 0 w 0 l/2 w 0 l 0 l/2 j 0 l diff --git a/phsource/mbrola/sv b/phsource/mbrola/sv index 1fecd9ea..acff6ecd 100644 --- a/phsource/mbrola/sv +++ b/phsource/mbrola/sv @@ -67,7 +67,7 @@ 0 aU@ NULL 70 A: u0 0 T VWL 0 th 0 T NULL 0 t -0 D NULL 0 z +0 D NULL 0 d 0 w NULL 0 v 0 z NULL 0 s 0 tS NULL 50 t rs diff --git a/phsource/mbrola/sv2 b/phsource/mbrola/sv2 index 0f0e95ce..0e82dade 100644 --- a/phsource/mbrola/sv2 +++ b/phsource/mbrola/sv2 @@ -63,7 +63,7 @@ 0 aU@ NULL 70 A: u0 0 T VWL 0 th 0 T NULL 0 t -0 D NULL 0 z +0 D NULL 0 d 0 w NULL 0 v 0 z NULL 0 s 0 tS NULL 50 t s diff --git a/phsource/ph_german b/phsource/ph_german index 2e20c68e..198ecc00 100755 --- a/phsource/ph_german +++ b/phsource/ph_german @@ -400,6 +400,37 @@ phoneme A~ FMT(vnasal/aa_n4) endphoneme + +phoneme l2 // as [l] but devoice previous phoneme + liquid lengthmod 7 + ChangePhoneme (l) +endphoneme + +phoneme b + vcd alv frc sibilant + IF nextPh(l2) THEN + ChangePhoneme(p) + ENDIF + CALL base/b +endphoneme + +phoneme d + vcd alv stop + IF nextPh(l2) THEN + ChangePhoneme(t) + ENDIF + CALL base/d +endphoneme + +phoneme g + vcd vel stop + IF nextPh(l2) THEN + ChangePhoneme(k) + ENDIF + CALL base/g +endphoneme + + // translate from English to German phonemes equivalents NULL // disable this table 0 O diff --git a/phsource/phonemes b/phsource/phonemes index d0517ce1..284b87df 100644 --- a/phsource/phonemes +++ b/phsource/phonemes @@ -54,7 +54,7 @@ endphoneme phoneme || // End Word pause - lengthmod 1 + lengthmod 9 // no effect endphoneme phoneme _ // Short pause diff --git a/src/dictionary.cpp b/src/dictionary.cpp index 0964ae32..a4e8bf22 100644 --- a/src/dictionary.cpp +++ b/src/dictionary.cpp @@ -536,6 +536,13 @@ static void WritePhMnemonic(char **buf, PHONEME_TAB *ph, PHONEME_LIST *plist) phon_out = *buf; + if(ph->code == phonEND_WORD) + { + // ignore + phon_out[0] = 0; + return; + } + if(option_phonemes == 3) { // has an ipa name been defined for this phoneme ? @@ -2920,6 +2927,7 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor const char *word_end; const char *word1; int wflags = 0; + int wflags2; char word_buf[N_WORD_BYTES+1]; if(wtab != NULL) @@ -3014,11 +3022,16 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor skipwords = flag - 80; // don't use the contraction if any of the words are emphasized - for(ix=0; ix <= skipwords; ix++) + // or has an embedded command, such as MARK + if(wtab != NULL) { - if(wflags & FLAG_EMPHASIZED2) + for(ix=0; ix <= skipwords; ix++) { - condition_failed = 1; + if(wtab[ix].flags & FLAG_EMPHASIZED2) +// if(((wflags2 = wtab[ix].flags) & FLAG_EMPHASIZED2) || ((ix > 0) && (wflags2 & FLAG_EMBEDDED))) + { + condition_failed = 1; + } } } diff --git a/src/phoneme.h b/src/phoneme.h index 85b11ebd..d834d4b3 100644 --- a/src/phoneme.h +++ b/src/phoneme.h @@ -47,9 +47,7 @@ #define phVOWEL2 0x100 // liquid that is considered a vowel #define phPALATAL 0x200 #define phSINGLE_INSTN 0x1000 // this phoneme has a single instruction program, with an implicit Return -#define phAPPENDPH 0x2000 // always insert another phoneme (link_out) after this one #define phBRKAFTER 0x4000 // [*] add a post-pause -#define phBEFOREPAUSE 0x8000 // replace with the link_out phoneme if the next phoneme is a pause #define phNONSYLLABIC 0x100000 // don't count this vowel as a syllable when finding the stress position #define phLONG 0x200000 @@ -106,14 +104,14 @@ extern const unsigned char pause_phonemes[8]; // 0, vshort, short, pause, long, // main table of phonemes, index by phoneme number (1-254) typedef struct { - unsigned int mnemonic; // 1st char is in the l.s.byte + unsigned int mnemonic; // Up to 4 characters. The first char is in the l.s.byte unsigned int phflags; // bits 16-19 place of articulation - unsigned short program; + unsigned short program; // index into phondata file unsigned char code; // the phoneme number unsigned char type; // phVOWEL, phPAUSE, phSTOP etc unsigned char start_type; unsigned char end_type; - unsigned char std_length; // for vowels, in mS/2; for phSTRESS, the stress/tone type + unsigned char std_length; // for vowels, in mS/2; for phSTRESS phonemes, this is the stress/tone type unsigned char length_mod; // a length_mod group number, used to access length_mod_tab } PHONEME_TAB; diff --git a/src/synth_mbrola.cpp b/src/synth_mbrola.cpp index f3d74ae5..6d1841a9 100644 --- a/src/synth_mbrola.cpp +++ b/src/synth_mbrola.cpp @@ -139,15 +139,18 @@ espeak_ERROR LoadMbrolaTable(const char *mbrola_voice, const char *phtrans, int if(GetFileLength(path) <= 0) { sprintf(path,"/usr/share/mbrola/%s",mbrola_voice); + + if(GetFileLength(path) <= 0) + { + sprintf(path,"/usr/share/mbrola/%s/%s",mbrola_voice,mbrola_voice); + + if(GetFileLength(path) <= 0) + { + sprintf(path,"/usr/share/mbrola/voices/%s",mbrola_voice); + } + } } - if(GetFileLength(path) <= 0) - { - sprintf(path,"/usr/share/mbrola/%s/%s",mbrola_voice,mbrola_voice); - } - if(GetFileLength(path) <= 0) - { - sprintf(path,"/usr/share/mbrola/voices/%s",mbrola_voice); - } + close_MBR(); #endif #ifdef PLATFORM_WINDOWS if(load_MBR() == FALSE) // load mbrola.dll @@ -478,7 +481,8 @@ int MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, int resume, FILE *f_mbr else len = (80 * speed.wav_factor)/256; - DoMarker(espeakEVENT_PHONEME, (p->sourceix & 0x7ff) + clause_start_char, 0, ph->mnemonic); + if(ph->code != phonEND_WORD) + DoMarker(espeakEVENT_PHONEME, (p->sourceix & 0x7ff) + clause_start_char, 0, ph->mnemonic); ptr += sprintf(ptr,"%s\t",WordToString(name)); @@ -645,12 +649,15 @@ int MbrolaGenerate(PHONEME_LIST *phoneme_list, int *n_ph, int resume) } -int MbrolaFill(int length, int resume) -{//=================================== -// Read audio data from Mbrola (length is in milisecs) +int MbrolaFill(int length, int resume, int amplitude) +{//================================================== +// Read audio data from Mbrola (length is in millisecs) static int n_samples; int req_samples, result; + int ix; + short value16; + int value; if (!resume) n_samples = samplerate * length / 1000; @@ -661,7 +668,20 @@ int MbrolaFill(int length, int resume) result = read_MBR((short *)out_ptr, req_samples); if (result <= 0) return 0; - out_ptr += result*2; + + for(ix=0; ix < result; ix++) + { + value16 = out_ptr[0] + (out_ptr[1] << 8); + value = value16 * amplitude; + value = value / 40; // adjust this constant to give a suitable amplitude for mbrola voices + if(value > 0x7fff) + value = 0x7fff; + if(value < -0x8000) + value = 0x8000; + out_ptr[0] = value; + out_ptr[1] = value >> 8; + out_ptr += 2; + } n_samples -= result; return n_samples ? 1 : 0; } @@ -688,7 +708,7 @@ int MbrolaGenerate(PHONEME_LIST *phoneme_list, int *n_ph, int resume) return(0); } -int MbrolaFill(int length, int resume) +int MbrolaFill(int length, int resume, int amplitude) { return(0); } diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 48ce9956..2bc04739 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.45.27 19.May.11"; +const char *version_string = "1.45.28 24.May.11"; const int version_phdata = 0x014500; int option_device_number = -1; diff --git a/src/synthesize.cpp b/src/synthesize.cpp index 1ee4c5dc..0bb71d4e 100644 --- a/src/synthesize.cpp +++ b/src/synthesize.cpp @@ -1393,7 +1393,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume) // DoMarker(espeakEVENT_END, count_characters, 0, count_sentences); // end of clause if(p->newword & 1) - DoMarker(espeakEVENT_WORD, sourceix, p->sourceix >> 11, clause_start_word + word_count++); + DoMarker(espeakEVENT_WORD, sourceix, p->sourceix >> 11, clause_start_word + word_count++); // NOTE, this count doesn't include multiple-word pronunciations in *_list. eg (of a) } EndAmplitude(); @@ -1401,7 +1401,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume) if(p->prepause > 0) DoPause(p->prepause,1); - if(option_phoneme_events && (p->type != phVOWEL)) + if(option_phoneme_events && (p->type != phVOWEL) && (p->ph->code != phonEND_WORD)) { // Note, for vowels, do the phoneme event after the vowel-start DoMarker(espeakEVENT_PHONEME, sourceix, 0, p->ph->mnemonic); diff --git a/src/synthesize.h b/src/synthesize.h index eac934cb..384b0caf 100644 --- a/src/synthesize.h +++ b/src/synthesize.h @@ -553,7 +553,7 @@ espeak_ERROR LoadMbrolaTable(const char *mbrola_voice, const char *phtrans, int void SetParameter(int parameter, int value, int relative); int MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, int resume, FILE *f_mbrola); int MbrolaGenerate(PHONEME_LIST *phoneme_list, int *n_ph, int resume); -int MbrolaFill(int length, int resume); +int MbrolaFill(int length, int resume, int amplitude); void MbrolaReset(void); void DoEmbedded(int *embix, int sourceix); void DoMarker(int type, int char_posn, int length, int value); diff --git a/src/translate.cpp b/src/translate.cpp index eb129a01..39170a19 100644 --- a/src/translate.cpp +++ b/src/translate.cpp @@ -1672,9 +1672,20 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa } while((embedded_cmd & 0x80) == 0); } - if(word[0] == 0) + if((word[0] == 0) || (word_flags & FLAG_DELETE_WORD)) { - // nothing to translate + // nothing to translate. Add a dummy phoneme to carry any embedded commands + if(embedded_flag) + { + ph_list2[n_ph_list2].phcode = phonEND_WORD; + ph_list2[n_ph_list2].stresslevel = 0; + ph_list2[n_ph_list2].wordstress = 0; + ph_list2[n_ph_list2].tone_ph = 0; + ph_list2[n_ph_list2].synthflags = embedded_flag; + ph_list2[n_ph_list2].sourceix = 0; + n_ph_list2++; + embedded_flag = 0; + } word_phonemes[0] = 0; return(0); } @@ -3175,6 +3186,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre else { pre_pause = 0; + dict_flags = TranslateWord2(tr, word, &words[ix], words[ix].pre_pause, words[ix+1].pre_pause); if(pre_pause > words[ix+1].pre_pause) @@ -3206,7 +3218,12 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre if(dict_flags & FLAG_SKIPWORDS) { - ix += dictionary_skipwords; // dictionary indicates skip next word(s) + // dictionary indicates skip next word(s) + while(dictionary_skipwords > 0) + { + words[ix+dictionary_skipwords].flags |= FLAG_DELETE_WORD; + dictionary_skipwords--; + } } } diff --git a/src/translate.h b/src/translate.h index 7c8b7ee6..9a0f781c 100644 --- a/src/translate.h +++ b/src/translate.h @@ -109,6 +109,7 @@ #define FLAG_COMMA_AFTER 0x20000 // comma after this word #define FLAG_MULTIPLE_SPACES 0x40000 // word is preceded by multiple spaces, newline, or tab #define FLAG_INDIVIDUAL_DIGITS 0x80000 // speak number as individual digits +#define FLAG_DELETE_WORD 0x100000 // don't speak this word, it has been spoken as part of the previous word #define FLAG_SUFFIX_VOWEL 0x08000000 // remember an initial vowel from the suffix #define FLAG_NO_TRACE 0x10000000 // passed to TranslateRules() to suppress dictionary lookup printout diff --git a/src/wavegen.cpp b/src/wavegen.cpp index 56948585..944233fc 100644 --- a/src/wavegen.cpp +++ b/src/wavegen.cpp @@ -1966,7 +1966,7 @@ int WavegenFill2(int fill_zeros) break; case WCMD_MBROLA_DATA: - result = MbrolaFill(length, resume); + result = MbrolaFill(length, resume, (general_amplitude * wvoice->voicing)/64); break; case WCMD_FMT_AMPLITUDE: