Reduce pause when announcing punctuation. Fix crash for list of numbers in some languages, eg: "22,23,24,25,26,27..." Recognise XLL (etc) is not a valid Roman number. espeak_Cancel(), reset punctuation echo. Don't permanently change option_phoneme_input after using [[ ]] internally. lang=af: Only recognise word "'n" as [@] when followed by a space. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@193 d46cf337-b52f-0410-862d-fd96e6ae7743master
| @@ -151,13 +151,14 @@ _roman rum'eIns@ | |||
| alaska al'aska | |||
| algerië alx2'e@re@:@- | |||
| antwerpen antv&rp@n | |||
| asië A:si@ | |||
| babilon babilOn | |||
| bangladesh baNglad'ES | |||
| bastille bast'il | |||
| bellevue b&lvju: | |||
| berlyn $2 | |||
| bermuda $2 | |||
| bethlehem bEt_liEm | |||
| boedapest budapEst | |||
| boekarest bukarEst | |||
| bonnievale _^_EN | |||
| brittanje $2 | |||
| @@ -174,6 +175,7 @@ colesberg ko@lsb&rx2 | |||
| constantia $2 | |||
| christiana kr@stij'A:na | |||
| damaskus d@maskWs | |||
| doebaai $2 | |||
| duitswes dYytsv'Es | |||
| ermelo &rm@lo@ | |||
| franschhoek frA~nsh'uk | |||
| @@ -199,6 +201,8 @@ kenia ki:nia | |||
| kimberley kimb@rli | |||
| kongo kONgu | |||
| knysna neIsna | |||
| kuruman kuruman | |||
| kwa kwa $u $only // KwaZulu, etc. | |||
| lesotho l@sutu | |||
| limpopo l@mpo@po@ | |||
| macedonië mas@d'o@ni@ | |||
| @@ -209,6 +213,7 @@ mauritius mOr'iSjWs | |||
| milaan $2 | |||
| mesopotamië mEsuput'A:mi@ | |||
| montagu mOnt@ky | |||
| moreletapark mOr@l,Etap'ark | |||
| moorreesburg mur'e@sbWrx2 | |||
| mosambiek musamb'ik | |||
| (thaba nchu) tab'A:||ntSu | |||
| @@ -220,6 +225,8 @@ pelindaba p&l@nd'A:ba | |||
| portugal $1 | |||
| potchefstroom pOtSIfstr'o@m | |||
| robertson _^_EN | |||
| sahara sah'A:ra | |||
| secunda s@kunda | |||
| senekal se@n@kal | |||
| singapoer siNgapur | |||
| soweto suw'E:tu | |||
| @@ -233,12 +240,13 @@ upington apiNt@n | |||
| vesuvius v@su:viWs | |||
| viëtnam vj'Etnam | |||
| wallonië val'o@ni@ | |||
| washington _^_EN | |||
| wellington wEliNt@n | |||
| wolseley wulsli | |||
| worcester v'ust@r | |||
| uganda ug'anda | |||
| zimbabwe zI:mb'ab_wE | |||
| zulu zulu // Kwazulu-Natal | |||
| // People names | |||
| @@ -262,6 +270,7 @@ blomerus blum'e@rWs | |||
| botha bo@ta | |||
| bouwer b@U@r | |||
| brian _^_EN | |||
| bredenkamp bre@d@nkamp | |||
| breytenbach breIt@nbax2 | |||
| brouwer bruw'&:r | |||
| caesar siz@r | |||
| @@ -288,6 +297,7 @@ darwin _^_EN | |||
| david _^_EN | |||
| debora d@bo@ra | |||
| debussy d@bus'i: | |||
| (de la) d@||la $u // de la Rey/de la Bat, etc. | |||
| der d@r | |||
| derick dErik | |||
| deventer d'e@v@nt@r | |||
| @@ -387,6 +397,7 @@ michiel $2 | |||
| mike _^_EN | |||
| miriam mIri@m | |||
| mohammed muh'am@t | |||
| morné mOrn'eI | |||
| mostert m'Ost@rt | |||
| mouton mut'On | |||
| mozart mo@tsart | |||
| @@ -473,9 +484,12 @@ khumalo kum'A:lu | |||
| zuma zu:ma | |||
| // Other proper names | |||
| absa absa | |||
| boeing _^_EN | |||
| centaurus $2 | |||
| checkers tSEk@rs | |||
| chrysler kraIsl@r | |||
| ferrari f@rA:ri | |||
| martini mart'i:ni | |||
| wimpy wImpi | |||
| @@ -595,7 +609,7 @@ my $u $verbf | |||
| jou $u $verbf | |||
| hom $u $verbf | |||
| haar $u $only $verbf | |||
| se Es@ $capital | |||
| se Es@ $capital | |||
| dis $u | |||
| @@ -620,6 +634,7 @@ aggressie $2 | |||
| agterstevoor $4 | |||
| agterweë $3 | |||
| algaande $2 | |||
| alge alx2@ | |||
| algehele alx2@h,e@l@ | |||
| allegro al'Egru | |||
| alles al@s | |||
| @@ -657,6 +672,7 @@ bourgeoisie _^_FR | |||
| cabernet kab@rn'eI | |||
| camembert kam@mb'&:r | |||
| camouflage kamufl'A:Z | |||
| casino kas'i:n@U | |||
| charisma kar'Isma | |||
| chemikalieë $3 | |||
| crescendo kr@SEndu | |||
| @@ -795,6 +811,7 @@ misbruik $2 $verb | |||
| misbruikte $2 | |||
| miskien $2 | |||
| misterie m@ste@ri | |||
| (modus operandi) m,o@dWs||o@p@r'andi | |||
| monsieur _^_FR | |||
| motore mo@t'o@r@ | |||
| motor mo@t@r | |||
| @@ -822,7 +839,9 @@ normale nOrm'A:l@ | |||
| numeri nWm@ri | |||
| oeuvre W:vr@ | |||
| oftewel Oft@v&l | |||
| omgeef $2 | |||
| ommekeer Om@ke@r | |||
| omrede $2 | |||
| omtrent Omtr'Ent | |||
| onbegrip $1 | |||
| @@ -835,6 +854,7 @@ onderwyser $3 | |||
| ondeug $1 $only | |||
| ondeugde $1 $only | |||
| onding $1 | |||
| oneer On_e@r $only | |||
| ongeag $1 | |||
| ongeduld $1 | |||
| ongeloof $1 | |||
| @@ -844,6 +864,7 @@ ongerief $1 | |||
| ongewens $1 | |||
| ongewensde $3 | |||
| ongewoons $1 | |||
| onguns $1 | |||
| onkunde $1 | |||
| onmag $1 | |||
| onmin $1 | |||
| @@ -981,7 +1002,6 @@ vrek fr&k | |||
| waarskynlik $2 | |||
| waarskynlike $2 | |||
| wangedrag vanx2@drax2 | |||
| watwo vatvo@ | |||
| watwou vatv@U | |||
| weergalm $2 | |||
| @@ -109,8 +109,8 @@ o O oI u | |||
| * ** : b B d D f | |||
| g j J J^ k l m n | |||
| N n^ p Q r R s t | |||
| T tS v v# w x z | |||
| N n^ p Q r R R2 s | |||
| t T tS v v# w x z | |||
| Dictionary fi_dict | |||
| @@ -128,9 +128,9 @@ S s2 t v Z | |||
| Dictionary fr_dict | |||
| @ @- @2 a A a2 A~ e | |||
| E E~ i i: o O o2 O2 | |||
| O~ u u: W W2 w^i wA W~ | |||
| y Y | |||
| E E2 E~ i i: o O o2 | |||
| O2 O~ u u: W W2 w^i wA | |||
| W~ y Y | |||
| : ; b c d dZ f g | |||
| h j k l m n N n2 | |||
| @@ -469,3 +469,16 @@ oi ong ou u ui yu | |||
| b c d f g h j k | |||
| l m n N p r s t | |||
| tS v w z | |||
| Dictionary ml_dict | |||
| a a: aI aU e E e: i | |||
| I i: l- o o: r- u u: | |||
| V y | |||
| : b c ch d d. dZ f | |||
| g h j J k kh l l. | |||
| m n N n. n^ p ph R | |||
| R2 s s. S; t t. t.h th | |||
| tS v w z z. | |||
| @@ -1483,6 +1483,7 @@ overage oUv@r-eIdZ | |||
| overly oUv3lI2 | |||
| overt oUv'3:t | |||
| overtly oUv'3:tlI2 | |||
| overturn $3 | |||
| oxen 0ks@n | |||
| padre pA:dreI | |||
| @@ -1995,6 +1996,7 @@ untidy Vnt'aIdI2 | |||
| untie Vnt'aI | |||
| unty Vnt'aI // for untying | |||
| unwind Vnw'aInd | |||
| unwise $2 | |||
| unwound Vnw'aUnd | |||
| update $1 $onlys | |||
| update $verb | |||
| @@ -2315,8 +2317,8 @@ Toulouse tu:l'u:z | |||
| Tripoli trIp@lI2 | |||
| Ukraine ju:kr'eIn | |||
| Ural ju:@r@L | |||
| Utah ju:tA: | |||
| ?3 Utah ju:tO: | |||
| Utah ju:t2A: | |||
| ?3 Utah ju:t2O: | |||
| Utrecht ju:trECt | |||
| Vancouver $2 | |||
| Vegas veIg@s | |||
| @@ -1,6 +1,6 @@ | |||
| // *************************************************************************** | |||
| // * Copyright (C) 2005 to 2007 by Jonathan Duddington * | |||
| // * Copyright (C) 2005 to 2008 by Jonathan Duddington * | |||
| // * email: [email protected] * | |||
| // * * | |||
| // * This program is free software; you can redistribute it and/or modify * | |||
| @@ -1004,7 +1004,7 @@ | |||
| &) at (eer_ @t | |||
| g) at (eau at | |||
| p) atrol a2troUl | |||
| ?3 p) at (r eIt | |||
| ?3 p) at (riA eIt | |||
| fr) at (ern a2t | |||
| c) atego atIg@ | |||
| c) atego (ric atIg'0 | |||
| @@ -1647,7 +1647,7 @@ | |||
| @) e (ctive 'E | |||
| _) eco (s i:koU | |||
| econo (m Ik'0n@ | |||
| econo (mic Ek@n'0 | |||
| econo (mic i:k@n'0 | |||
| &) ecy (_ @sI2 | |||
| ee i: | |||
| ee (m 'i: | |||
| @@ -1672,7 +1672,7 @@ | |||
| l) egion i:dZ@n | |||
| egy (pt i:dZI | |||
| n) e (gro i: | |||
| eh (_ eI | |||
| eh (K eI | |||
| ei eI | |||
| _) ei aI | |||
| c) ei i: | |||
| @@ -1699,7 +1699,7 @@ | |||
| ep (ox I2p | |||
| e (qual i: | |||
| _) e (qua i: | |||
| e (quat I2 | |||
| _) e (quat I2 | |||
| fr) e (q i: | |||
| _s) e (que i: | |||
| e (quip I2 | |||
| @@ -2094,6 +2094,7 @@ | |||
| &) eous (_ =i@s | |||
| th) eo (@ I2@ | |||
| th) eo (r i@ | |||
| th) eo (cracy I'0 | |||
| th) eo (logy I'0 | |||
| th) eo (logis I'0 | |||
| eover oUv@ | |||
| @@ -2208,6 +2209,7 @@ | |||
| s) er (van 3: | |||
| ery (_ @rI2 | |||
| ery @rI | |||
| ery (A 3j | |||
| _v) ery ErI2 | |||
| _ev) ery rI2 | |||
| qu) ery i@rI2 | |||
| @@ -3434,6 +3436,7 @@ | |||
| o (bstin 0 | |||
| o (bt %0 | |||
| o (bu %0 | |||
| o (by_ oU | |||
| f) o (cA oU | |||
| ff) o (cA @ | |||
| _l) o (cA oU | |||
| @@ -3568,6 +3571,7 @@ | |||
| ox (ide '0ks | |||
| oxy 0ksI | |||
| oy OI | |||
| oy (A_ 'OI | |||
| d) o (zen V | |||
| _) o (zo oU | |||
| o (zy_ oU | |||
| @@ -3976,6 +3980,7 @@ | |||
| &l) ous (_ @s | |||
| &) ous (_ @s | |||
| &) ousy (_ @sI2 | |||
| &m) ous (_ @s | |||
| &n) ous (_ @s | |||
| _) out (@P3 %aUt // prefix out | |||
| c) ou (si V | |||
| @@ -4799,11 +4804,10 @@ | |||
| _) un (@P2 %Vn // prefix | |||
| _) un (AP2 %Vn // prefix | |||
| _) unn %Vnn | |||
| _) un (u %Vn | |||
| @) un (al 'ju:n | |||
| une (_ ju:n | |||
| ?3 d) une (_ u:n | |||
| j) une (_ u:n | |||
| j) un (A u:n | |||
| l) une (_ u:n | |||
| r) une (_ u:n | |||
| ?3 t) une (_ u:n | |||
| @@ -26,6 +26,8 @@ _stk b'a*Ra // ?? | |||
| _tld t'ilde | |||
| // names of symbols | |||
| _. punto | |||
| _, koma | |||
| @@ -351,6 +353,29 @@ alguna $u | |||
| // 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. | |||
| b be | |||
| c Te | |||
| d de | |||
| f Efe | |||
| g xe | |||
| h atSe | |||
| j xOta | |||
| k ka | |||
| l Ele | |||
| m Eme | |||
| n Ene | |||
| ñ En^e | |||
| p pe | |||
| q ku | |||
| r E**e | |||
| s Ese | |||
| t te | |||
| v uBe | |||
| w ,uBe||d'OBle | |||
| x Ekis | |||
| z TEta | |||
| _a a | |||
| a a $atend | |||
| _o o | |||
| @@ -360,7 +385,8 @@ x Ekis | |||
| _y ,ig**'iEQa | |||
| y ,ig**'iEQa $atend | |||
| ch tSe | |||
| ll Ejje | |||
| ll EJ^e | |||
| ?2 ll Ej:e | |||
| á 'a||aTEntw'aDa | |||
| é 'e||aTEntw'aDa | |||
| í 'i||aTEntw'aDa | |||
| @@ -9,7 +9,6 @@ | |||
| .L02 b d g n m // change [s] to [z] before these | |||
| .group a | |||
| _) a (_ a | |||
| a a | |||
| ai aI | |||
| ay (K aI | |||
| @@ -19,7 +18,6 @@ | |||
| .group b | |||
| _) b (_ be | |||
| b B | |||
| _) b b | |||
| m) b b | |||
| @@ -29,14 +27,12 @@ | |||
| b (uA b | |||
| .group c | |||
| _) c (_ Te | |||
| c k | |||
| c (Y T // ce, ci | |||
| ch tS | |||
| .group d | |||
| _) d (_ de | |||
| d D | |||
| _) d d | |||
| m) d d | |||
| @@ -44,7 +40,6 @@ | |||
| .group e | |||
| _) e (_ e | |||
| e e | |||
| e (CK E | |||
| e (r E | |||
| @@ -58,12 +53,10 @@ | |||
| .group f | |||
| _) f (_ 'Efe | |||
| f f | |||
| .group g | |||
| _) g (_ xe | |||
| g Q | |||
| _) g g | |||
| m) g g | |||
| @@ -73,12 +66,10 @@ | |||
| .group h | |||
| _) h (_ 'atSe | |||
| h // silent | |||
| .group i | |||
| _) i (_ i | |||
| i i | |||
| i (A J^ | |||
| C) i (A j | |||
| @@ -87,29 +78,24 @@ | |||
| .group j | |||
| _) j (_ x'Ota | |||
| j x | |||
| .group k | |||
| _) k (_ ka | |||
| k k | |||
| .group l | |||
| _) l (_ Ele | |||
| l l | |||
| ll J^ | |||
| ?2 A) ll (A j: | |||
| .group m | |||
| _) m (_ Eme | |||
| m m | |||
| .group n | |||
| _) n (_ Ene | |||
| n n | |||
| n (b m | |||
| n (v m | |||
| @@ -121,7 +107,6 @@ | |||
| .group o | |||
| _) o (_ o | |||
| o o | |||
| o (CK O | |||
| o (r O | |||
| @@ -133,21 +118,18 @@ | |||
| .group p | |||
| _) p (_ pe | |||
| p p | |||
| p (t p: | |||
| .group q | |||
| _) q (_ ku | |||
| q k | |||
| qu k | |||
| .group r | |||
| _) r (_ E**e | |||
| r R | |||
| _) r R | |||
| _) r R2 | |||
| r (_ * | |||
| r (t ** | |||
| A) r (A ** | |||
| @@ -156,22 +138,19 @@ | |||
| m) r (A R | |||
| n) r (A R | |||
| s) r (A R | |||
| rr *R | |||
| rr *R2 | |||
| .group s | |||
| _) s (_ Ese | |||
| s s | |||
| &) s (_S1 s | |||
| .group t | |||
| _) t (_ te | |||
| t t | |||
| .group u | |||
| _) u (_ u | |||
| u u | |||
| u (A w | |||
| u (y_ w | |||
| @@ -182,7 +161,6 @@ | |||
| .group v | |||
| _) v (_ uBe | |||
| v B | |||
| _) v v# | |||
| ?1 m) v b | |||
| @@ -199,12 +177,10 @@ | |||
| .group w | |||
| _) w (_ ,uBe||d'OBle | |||
| w w | |||
| .group x | |||
| _) x (_ Ekis | |||
| x ks | |||
| ?1 A) x (A Qs | |||
| x (_ =Qs | |||
| @@ -212,7 +188,6 @@ | |||
| .group y | |||
| _) y (_ ,ig**'iEQa | |||
| y i | |||
| _) y J | |||
| _m) y J | |||
| @@ -223,7 +198,6 @@ | |||
| .group z | |||
| _) z (_ TEta | |||
| z T | |||
| ?2 z (L02 z | |||
| @@ -237,7 +211,6 @@ | |||
| ú ''u | |||
| ü u | |||
| ñ n^ | |||
| _)ñ (_ En^e | |||
| $ d'Olar | |||
| @@ -112,7 +112,7 @@ _# djEz | |||
| _' apOstrOf | |||
| _( 'uvr@-parA~t'Ez | |||
| _) f'Erm parA~t'Ez | |||
| _* astErisk: | |||
| _* asterisk: | |||
| _, virgyl | |||
| _- tirE | |||
| _. _|pw%E~ | |||
| @@ -125,13 +125,13 @@ _> syperjWr | |||
| _? pwE~dE~terogasj'O~ | |||
| _[ uvr@-_kroSE | |||
| _\ b'aksl'aS | |||
| _] f'Erm_kroS'E | |||
| _] f'E2rm_kroS'E | |||
| _^ sirkOnflEks | |||
| __ sulin^e | |||
| _` aks'A~_gr'av | |||
| _{ uvr_akOlad | |||
| _| bar | |||
| _} f'Erm_akOl'ad | |||
| _} f'E2rm_akOl'ad | |||
| ² pw^is'A~s||d'Y | |||
| @@ -250,25 +250,25 @@ avh aveaS | |||
| bd boulevard $text | |||
| cci $abbrev | |||
| cio $abbrev | |||
| ctrl kO~tRo2l $pause | |||
| ctrl control $text $pause | |||
| dept depart@mA~ | |||
| edf $abbrev | |||
| etc etsetera | |||
| ghz ZigaErts | |||
| ghz ZigaE2rts | |||
| hmm h@m | |||
| hz _!Erts | |||
| hz _!E2rts | |||
| ibm $abbrev | |||
| ide $abbrev | |||
| ip $abbrev | |||
| jaws dZ'O2wz | |||
| kde $abbrev | |||
| kg kilogRam | |||
| khz kiloErts | |||
| khz kiloE2rts | |||
| km kilomEtr | |||
| kw kilowat | |||
| m. m@sjY | |||
| mbrola EmbRola | |||
| mhz megaErts | |||
| mhz megaE2rts | |||
| mlle mad@mwAzEl | |||
| mme madam | |||
| mr m@sjY | |||
| @@ -553,10 +553,10 @@ tunis tynis | |||
| //********************* | |||
| (1 er) pr@mjer2 | |||
| (1 ers) pr@mi;'ez2 | |||
| (1 ère) pr@mi;'Er | |||
| (1 ères) pr@mi;'Erz2 | |||
| (1 èrement) pr@mi;'Er@-mA~ | |||
| (1 ers) pr@mjez2 | |||
| (1 ère) pr@mjEr | |||
| (1 ères) pr@mjErz2 | |||
| (1 èrement) pr@mjEr@-mA~ | |||
| monsieur m@sjY | |||
| @@ -566,7 +566,7 @@ montréal mO~real | |||
| (qu'est ce que) kEsk@ $u | |||
| absent absA~ | |||
| admin admin | |||
| airbus Erbys | |||
| airbus E2rbys | |||
| auvent ovA~ | |||
| bien bjE~n2 $u+ | |||
| bis bis | |||
| @@ -577,7 +577,7 @@ campus kA~pys | |||
| (chef d'oeuvre) chédeuvre $text | |||
| choeur kWr | |||
| cocus coky | |||
| dernier dErnjer2 | |||
| dernier dE2rnjer2 | |||
| éloquent ElokA~t2 | |||
| fier fier $verb | |||
| fuel fjul | |||
| @@ -623,7 +623,7 @@ rut ryt | |||
| scorbut skOrbyt | |||
| scout skut | |||
| stout staut | |||
| uppercut ypErkyt | |||
| uppercut ypE2rkyt | |||
| ut yt | |||
| zut zyt | |||
| @@ -683,7 +683,7 @@ emacspeak Emakspi:k | |||
| end _^_en | |||
| epson EpsOn | |||
| espeak @spi:k | |||
| ethernet etErnEt | |||
| ethernet etE2rnEt | |||
| exit egzit | |||
| (file zilla) fa2jl||zija | |||
| from _^_en $u+ | |||
| @@ -731,7 +731,7 @@ yes _^_en | |||
| constations kO~statjO~z2 | |||
| contentions kO~tA~tjO~z2 | |||
| dations datjO~z2 | |||
| désertions dezErtjO~z2 $verb | |||
| désertions dezE2rtjO~z2 $verb | |||
| exploitions EksplwAtjO~z2 | |||
| heurtions hWrtjO~z2 | |||
| partions partjO~z2 | |||
| @@ -23,7 +23,7 @@ | |||
| // 2006-11-18 Gilles Casse <[email protected]> | |||
| // | |||
| // Updated: 2008-09-13 Michel Such <[email protected]> | |||
| // Updated: 2008-09-16 Michel Such <[email protected]> | |||
| // | |||
| // Letter classes: | |||
| @@ -204,8 +204,6 @@ _) ç' (P2v s | |||
| // Define use of the final 'e' in french | |||
| e (_ | |||
| qu) e (_ =@- | |||
| qu) e (s_ =@- | |||
| elqu) e =@- | |||
| uisqu) e =@ | |||
| rsqu) e =@ | |||
| @@ -486,6 +484,7 @@ _) ç' (P2v s | |||
| %C) e (mA // actuellement guillemets | |||
| ct) e (ment @ | |||
| rC) e (ment @ | |||
| g) e (rie | |||
| AC) e (ment | |||
| u) e (ment @- | |||
| ul) e (CA | |||
| @@ -502,6 +501,7 @@ _) ç' (P2v s | |||
| Cr) eamer i:mWr | |||
| Cl) eaner i:nWr | |||
| Ack) et (_ Et | |||
| eïn (_ 'Ein | |||
| // group e: English section | |||
| @@ -1,4 +1,4 @@ | |||
| 51 phoneme tables | |||
| 52 phoneme tables | |||
| new total | |||
| base 98 98 | |||
| base2 24 117 | |||
| @@ -19,6 +19,7 @@ | |||
| fr_ca 11 134 | |||
| hi 51 135 | |||
| ta 17 138 | |||
| ml 13 137 | |||
| hu 23 114 | |||
| nl 28 121 | |||
| pl 18 111 | |||
| @@ -503,12 +504,15 @@ r3/r#_ [r#] is | |||
| r3/r_2 [r/] fr | |||
| r3/r_a [(a)] base | |||
| r3/r_e [(e)] base | |||
| [E] fr | |||
| r3/r_i [(i)] base | |||
| [i] fr | |||
| r3/r_n [r/] base | |||
| [r/] fr | |||
| [r/] ru | |||
| r3/r_o [(o)] base | |||
| [O] fr | |||
| [O2] fr | |||
| r3/r_ru [R4] ru | |||
| r3/r_ru2 [R4] ru | |||
| r3/r_trill [R2] base | |||
| @@ -602,15 +606,11 @@ r/xr [(@)] base | |||
| [(i)] base | |||
| [(o)] base | |||
| [(u)] base | |||
| [O] fr | |||
| [W] fr | |||
| [Y] fr | |||
| [a] fr | |||
| [e] fr | |||
| [i] fr | |||
| [u] fr | |||
| [y] fr | |||
| [W2] fr | |||
| [a2] fr | |||
| [i:] fr | |||
| [u:] fr | |||
| @@ -1247,6 +1247,7 @@ vowel/@ [@] base | |||
| [@] en_rp | |||
| [V] cy | |||
| [@4] hi | |||
| [@] ml | |||
| [@] sq | |||
| vowel/@- [@-] base | |||
| [r*] hr | |||
| @@ -1344,6 +1345,7 @@ vowel/a#_3 [a2] en | |||
| [3] de | |||
| [@] de | |||
| [a] hi | |||
| [a] ml | |||
| [a#] ru | |||
| [&] pt_pt | |||
| [&/] pt_pt | |||
| @@ -1354,6 +1356,7 @@ vowel/a_4 [a/] el | |||
| vowel/a_5 [a] fr | |||
| [a2] fr | |||
| [a:] ta | |||
| [a:] ml | |||
| [a/] it | |||
| [a] la | |||
| [a] sv | |||
| @@ -1404,6 +1407,8 @@ vowel/e [e] base2 | |||
| [E:] fr | |||
| [e] ta | |||
| [e:] ta | |||
| [e] ml | |||
| [e:] ml | |||
| [e] hr | |||
| [e/] it | |||
| [e:] la | |||
| @@ -1505,6 +1510,7 @@ vowel/i [i] base2 | |||
| [i] eo | |||
| [I] fr | |||
| [i:] ta | |||
| [i:] ml | |||
| [i:] hu | |||
| [i] it | |||
| [i] pt_pt | |||
| @@ -1539,6 +1545,7 @@ vowel/i#_5 [y] pt_pt | |||
| [i/] pt_pt | |||
| [y] ro | |||
| vowel/i_6 [i] ta | |||
| [i] ml | |||
| [i] hr | |||
| [i] tr | |||
| [i] ku | |||
| @@ -1564,6 +1571,7 @@ vowel/ii [I] en_rp | |||
| [i] zhy | |||
| [I] ku | |||
| vowel/ii# [Y] cy | |||
| [y] ml | |||
| [Y] ru | |||
| [I] ku | |||
| vowel/ii_2 [i] zh | |||
| @@ -1613,6 +1621,8 @@ vowel/o [o] base2 | |||
| [o] hi | |||
| [o] ta | |||
| [o:] ta | |||
| [o] ml | |||
| [o:] ml | |||
| [o] it | |||
| [o/] it | |||
| [O] la | |||
| @@ -1718,6 +1728,8 @@ vowel/u [u:] en_wi | |||
| [U] fr | |||
| [u] ta | |||
| [u:] ta | |||
| [u] ml | |||
| [u:] ml | |||
| [u:] cs | |||
| [U] la | |||
| [u] id | |||
| @@ -1890,6 +1902,8 @@ vwl_en_us/or [O:] en_us | |||
| [o@] en_us | |||
| [O:] en_sc | |||
| vwl_en_us/ur [U@] en_us | |||
| vwl_fr/r_@ [W] fr | |||
| [W2] fr | |||
| vwl_fr/@R [x] pt_pt | |||
| vwl_fr/@R2 [R] fr_ca | |||
| vwl_fr/@R3 [R] fr | |||
| @@ -1897,6 +1911,12 @@ vwl_fr/@R3 [R] fr | |||
| [r2] fr | |||
| vwl_fr/@R4 [r] fr | |||
| [r2] fr | |||
| vwl_fr/r_a [a] fr | |||
| [a2] fr | |||
| vwl_fr/r_e [E2] fr | |||
| vwl_fr/ri [i] fr | |||
| vwl_fr/r_u [u] fr | |||
| vwl_fr/r_y [y] fr | |||
| vwl_fr/w_a [wA] fr | |||
| vwl_hi/A [a:] hi | |||
| vwl_hi/l-voc [l-] jbo | |||
| @@ -33,7 +33,7 @@ endphoneme | |||
| phoneme a | |||
| vowel starttype (a) endtype (@) | |||
| vowel starttype (e) endtype (@) | |||
| length 210 | |||
| formants vwl_en_us/a | |||
| before n vnasal/ee_n2 | |||
| @@ -31,7 +31,7 @@ phoneme a | |||
| formants vowel/a_5 | |||
| after l l/la-15 | |||
| before l/ DFT-20+l/xl | |||
| before r/ DFT-30+r/xr | |||
| before r/ DFT+vwl_fr/r_a | |||
| reduceto a2 1 | |||
| endphoneme | |||
| @@ -42,7 +42,7 @@ phoneme a2 | |||
| formants vowel/a_5 | |||
| after l l/la-15 | |||
| before (r) DFT-20+r/xr | |||
| before r/ DFT-20+r/xr | |||
| before r/ DFT+vwl_fr/r_a | |||
| endphoneme | |||
| @@ -63,6 +63,7 @@ phoneme E | |||
| formants vowel/e_mid | |||
| after l l/le-15 | |||
| before l/ DFT-20+l/xl | |||
| before r/ DFT+r3/r_e | |||
| reduceto E2 1 | |||
| endphoneme | |||
| @@ -72,7 +73,7 @@ phoneme E2 | |||
| length 175 | |||
| formants vowel/e_mid | |||
| after l l/le-15 | |||
| before r/ DFT-20 | |||
| before r/ DFT+vwl_fr/r_e | |||
| endphoneme | |||
| @@ -82,6 +83,7 @@ phoneme i | |||
| formants vowel/i_3 | |||
| linkout ; | |||
| after l l/li-15 | |||
| after (r) vwl_fr/ri | |||
| before l/ DFT-20+l/L1_iL-80 | |||
| before (r) DFT+r/xr | |||
| before r/ DFT+r3/r_i | |||
| @@ -143,7 +145,7 @@ phoneme u | |||
| after l l/lu-20 | |||
| before l/ DFT-20+l/L1_uL-80 | |||
| before (r) DFT+r/xr | |||
| before r/ DFT-20+r/xr | |||
| before r/ DFT-20+vwl_fr/r_u | |||
| endphoneme | |||
| @@ -163,6 +165,7 @@ phoneme y | |||
| formants vowel/y_2 | |||
| after l l/lu-20 | |||
| before l/ DFT-20+l/L1_uL-80 | |||
| before (r) vwl_fr/r_y | |||
| before r/ DFT+r/xr-30 | |||
| endphoneme | |||
| @@ -183,7 +186,7 @@ phoneme W | |||
| formants vowel/@_5 | |||
| after l l/l@-20 | |||
| before l/ DFT-40+l/xl+15 | |||
| before r/ DFT-20+r/xr | |||
| before r/ DFT+vwl_fr/r_@ | |||
| reduceto Y 1 | |||
| endphoneme | |||
| @@ -194,7 +197,7 @@ phoneme W2 // same as W but don't reduce | |||
| formants vowel/@_3 | |||
| after l l/l@-20 | |||
| before l/ DFT-40+l/xl+15 | |||
| before r/ DFT-20+r3/r_@ | |||
| before r/ DFT+vwl_fr/r_@ | |||
| endphoneme | |||
| @@ -295,6 +298,7 @@ phoneme b | |||
| vowelout f1=0 f2=1000 -500 -300 f3=-300 80 brk | |||
| formants b/b+x/b%70 | |||
| before _ b/b_+x/b_ | |||
| before R b/b+x/b_ | |||
| after _ NULL | |||
| after @ b/xb%50 | |||
| lengthmod 5 | |||
| @@ -437,7 +441,7 @@ endphoneme | |||
| phoneme R // for beginning of words | |||
| vcd pal frc | |||
| vowelin f1=0 f2=800 -50 50 f3=-100 100 len=40 | |||
| vowelin f1=0 f2=800 -50 50 f3=-100 100 | |||
| length 100 | |||
| lengthmod 7 | |||
| beforenotvowel r/ | |||
| @@ -1190,6 +1190,9 @@ include ph_hindi | |||
| phonemetable ta hi | |||
| include ph_tamil | |||
| phonemetable ml hi | |||
| include ph_malayalam | |||
| phonemetable hu base | |||
| include ph_hungarian | |||
| @@ -265,6 +265,7 @@ wxSashLayoutWindow *win; | |||
| f_trans = stdout; | |||
| option_ssml = 1; | |||
| option_phoneme_input = 1; | |||
| // if(LoadVoice(voice_name,0) == NULL) | |||
| @@ -780,7 +780,7 @@ int Translator::TranslateRoman(char *word, char *ph_out) | |||
| else | |||
| repeat = 0; | |||
| if((prev==5) || (prev==50) || (prev==500)) | |||
| if((prev > 1) && (prev != 10) && (prev != 100)) | |||
| { | |||
| if(value >= prev) | |||
| return(0); | |||
| @@ -1353,7 +1353,7 @@ int Translator::TranslateNumber_1(char *word, char *ph_out, unsigned int *flags, | |||
| if(Lookup("_dpt2",buf1)) | |||
| strcat(ph_out,buf1); | |||
| if(c == langopts.decimal_sep) | |||
| if((c == langopts.decimal_sep) && isdigit(word[n_digits+1])) | |||
| { | |||
| Lookup("_dpt",buf1); | |||
| strcat(ph_out,buf1); | |||
| @@ -511,7 +511,7 @@ const char *Translator::LookupSpecial(const char *string, char* text_out) | |||
| SetWordStress(phonemes,flags[0],-1,0); | |||
| DecodePhonemes(phonemes,phonemes2); | |||
| sprintf(text_out,"[[%s]]",phonemes2); | |||
| option_phoneme_input = 1; | |||
| option_phoneme_input |= 2; | |||
| return(text_out); | |||
| } | |||
| return(NULL); | |||
| @@ -589,13 +589,14 @@ const char *Translator::LookupCharName(int c) | |||
| DecodePhonemes(phonemes,phonemes2); | |||
| sprintf(buf,"[[%s]] ",phonemes2); | |||
| } | |||
| option_phoneme_input |= 2; | |||
| } | |||
| else | |||
| { | |||
| strcpy(buf,"[[(X1)(X1)(X1)]]"); | |||
| option_phoneme_input |= 2; | |||
| } | |||
| option_phoneme_input = 1; | |||
| return(buf); | |||
| } | |||
| @@ -806,9 +807,9 @@ int Translator::AnnouncePunctuation(int c1, int c2, char *buf, int bufix) | |||
| } | |||
| else | |||
| { | |||
| sprintf(p,"%s %s %d %s %s [[______]]", | |||
| sprintf(p,"%s %s %d %s %s", | |||
| tone_punct_on,punctname,punct_count,punctname,tone_punct_off); | |||
| option_phoneme_input = 1; | |||
| return(CLAUSE_COMMA); | |||
| } | |||
| } | |||
| else | |||
| @@ -836,7 +837,7 @@ int Translator::AnnouncePunctuation(int c1, int c2, char *buf, int bufix) | |||
| if(iswspace(c2) && strchr_w(punct_stop,c1)!=NULL) | |||
| return(punct_attributes[lookupwchar(punct_chars,c1)]); | |||
| return(CLAUSE_COMMA); | |||
| return(CLAUSE_SHORTCOMMA); | |||
| } // end of AnnouncePunctuation | |||
| #define SSML_SPEAK 1 | |||
| @@ -490,6 +490,7 @@ int main (int argc, char **argv) | |||
| option_waveout = 0; | |||
| option_wordgap = 0; | |||
| option_endpause = 1; | |||
| option_phoneme_input = 1; | |||
| option_multibyte = espeakCHARS_AUTO; // auto | |||
| f_trans = stdout; | |||
| @@ -1065,6 +1065,7 @@ ESPEAK_API espeak_ERROR espeak_Cancel(void) | |||
| } | |||
| SHOW_TIME("espeak_Cancel > LEAVE"); | |||
| #endif | |||
| embedded_value[EMBED_T] = 0; // reset echo for pronunciation announcements | |||
| return EE_OK; | |||
| } // end of espeak_Cancel | |||
| @@ -35,7 +35,7 @@ | |||
| #include "translate.h" | |||
| #include "wave.h" | |||
| const char *version_string = "1.39 08.Sep.08"; | |||
| const char *version_string = "1.39.04 19.Sep.08"; | |||
| const int version_phdata = 0x013900; | |||
| int option_device_number = -1; | |||
| @@ -1510,6 +1510,8 @@ int SpeakNextClause(FILE *f_in, const void *text_in, int control) | |||
| } | |||
| n_phoneme_list = 0; | |||
| WcmdqStop(); | |||
| embedded_value[EMBED_T] = 0; | |||
| return(0); | |||
| } | |||
| @@ -42,11 +42,12 @@ | |||
| #define L_jbo 0x6a626f // jbo Lojban | |||
| #define L_zhy 0x7a6879 // zhy | |||
| // start of unicode pages for character sets | |||
| #define OFFSET_GREEK 0x380 | |||
| #define OFFSET_CYRILLIC 0x420 | |||
| #define OFFSET_DEVANAGARI 0x900 | |||
| #define OFFSET_TAMIL 0xb80 | |||
| #define OFFSET_MALAYALAM 0xd00 | |||
| #define OFFSET_KOREAN 0x1100 | |||
| @@ -711,6 +712,7 @@ SetLengthMods(tr,3); // all equal | |||
| break; | |||
| case L('t','a'): // Tamil | |||
| case L('m','l'): // Malayalam | |||
| { | |||
| static const short stress_lengths_ta[8] = {200, 200, 210, 210, 0, 0, 230, 230}; | |||
| static const unsigned char stress_amps_ta[8] = {18,18, 18,18, 20,20, 22,22 }; | |||
| @@ -722,6 +724,11 @@ SetLengthMods(tr,3); // all equal | |||
| tr->langopts.stress_rule = 0; | |||
| tr->langopts.stress_flags = 0x10004; // use 'diminished' for unstressed final syllable | |||
| tr->letter_bits_offset = OFFSET_TAMIL; | |||
| if(name2 == L('m','l')) | |||
| { | |||
| tr->letter_bits_offset = OFFSET_MALAYALAM; | |||
| } | |||
| tr->langopts.param[LOPT_WORD_MERGE] = 1; // don't break vowels betwen words | |||
| memset(tr->letter_bits,0,sizeof(tr->letter_bits)); | |||
| @@ -55,7 +55,7 @@ int option_sayas = 0; | |||
| int option_sayas2 = 0; // used in translate_clause() | |||
| int option_emphasis = 0; // 0=normal, 1=normal, 2=weak, 3=moderate, 4=strong | |||
| int option_ssml = 0; | |||
| int option_phoneme_input = 1; // allow [[phonemes]] in input | |||
| int option_phoneme_input = 0; // allow [[phonemes]] in input | |||
| int option_phoneme_variants = 0; // 0= don't display phoneme variant mnemonics | |||
| int option_wordgap = 0; | |||
| @@ -367,6 +367,9 @@ int IsAlpha(unsigned int c) | |||
| if((c >= 0xb81) && (c <= 0xbe5)) | |||
| return(1); // Tamil vowel signs and other signs | |||
| if((c >= 0xd01) && (c <= 0xd57)) | |||
| return(1); // Malayalam vowel signs and other signs | |||
| if((c >= 0x300) && (c <= 0x36f)) | |||
| return(1); // combining accents | |||
| @@ -1938,7 +1941,7 @@ int Translator::TranslateChar(char *ptr, int prev_in, unsigned int c, unsigned i | |||
| if(!iswalpha(prev_in)) | |||
| { | |||
| if((c == '\'') && (next_in == 'n')) | |||
| if((c == '\'') && (next_in == 'n') && isspace(ptr[1])) | |||
| { | |||
| // n preceded by either apostrophe or U2019 "right single quotation mark" | |||
| ptr[0] = ' '; // delete the n | |||
| @@ -2010,6 +2013,7 @@ void *Translator::TranslateClause(FILE *f_text, const void *vp_input, int *tone_ | |||
| int letter_count = 0; | |||
| int space_inserted = 0; | |||
| int syllable_marked = 0; | |||
| int decimal_sep_count = 0; | |||
| char *word; | |||
| char *p; | |||
| int j, k; | |||
| @@ -2030,6 +2034,7 @@ void *Translator::TranslateClause(FILE *f_text, const void *vp_input, int *tone_ | |||
| embedded_ix = 0; | |||
| embedded_read = 0; | |||
| option_phoneme_input &= 1; // clear bit 1 (temporary indication) | |||
| if((clause_start_char = count_characters) < 0) | |||
| clause_start_char = 0; | |||
| @@ -2264,6 +2269,7 @@ if((c == '/') && (langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(prev_ou | |||
| } | |||
| } | |||
| } | |||
| if(iswdigit(prev_out)) | |||
| { | |||
| if(!iswdigit(c) && (c != '.') && (c != ',')) | |||
| @@ -2272,6 +2278,13 @@ if((c == '/') && (langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(prev_ou | |||
| space_inserted = 1; | |||
| } | |||
| } | |||
| else | |||
| { | |||
| if(prev_in != ',') | |||
| { | |||
| decimal_sep_count = 0; | |||
| } | |||
| } | |||
| if((c == '[') && (next_in == '[') && option_phoneme_input) | |||
| { | |||
| @@ -2455,10 +2468,17 @@ if((c == '/') && (langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(prev_ou | |||
| { | |||
| } | |||
| else | |||
| if((prev_out != ' ') && !iswdigit(prev_out) && (prev_out != langopts.decimal_sep)) // TEST2 | |||
| if((prev_out != ' ') && !iswdigit(prev_out)) | |||
| { | |||
| c = ' '; | |||
| space_inserted = 1; | |||
| if((prev_out != langopts.decimal_sep) || ((decimal_sep_count > 0) && (langopts.decimal_sep == ','))) | |||
| { | |||
| c = ' '; | |||
| space_inserted = 1; | |||
| } | |||
| else | |||
| { | |||
| decimal_sep_count = 1; | |||
| } | |||
| } | |||
| else | |||
| if((prev_out == ' ') && IsAlpha(sbuf[ix-2]) && !IsAlpha(prev_in)) | |||
| @@ -170,7 +170,7 @@ | |||
| #define CLAUSE_VOICE 0 + 0x24000 | |||
| #define CLAUSE_PERIOD 35 + 0x80000 | |||
| #define CLAUSE_COMMA 20 + 0x41000 | |||
| #define CLAUSE_SHORTCOMMA 15 + 0x41000 | |||
| #define CLAUSE_SHORTCOMMA 5 + 0x41000 | |||
| #define CLAUSE_QUESTION 35 + 0x82000 | |||
| #define CLAUSE_EXCLAMATION 40 + 0x83000 | |||
| #define CLAUSE_COLON 30 + 0x40000 | |||