diff --git a/dictsource/bn_rules b/dictsource/bn_rules index 66b685af..8be6d6df 100644 --- a/dictsource/bn_rules +++ b/dictsource/bn_rules @@ -146,7 +146,10 @@ ক kV ক (B k - + ক্ষ k#k#V // or [k#:] ? + ক্ষ (B k#k# + + .group খ খ k#V খ (B k# diff --git a/dictsource/en_list b/dictsource/en_list index b14e8dff..cbfa271f 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -1,4 +1,4 @@ - + // You can use the en_extra file, rather than this one // to add your own pronunciation definitions. @@ -16,7 +16,7 @@ // ?7 Scottish // ?8 Use full vowel, not schwa in some word endings -// $alt1 use strong ending (-table, -inal) +// $alt1 use strong ending (-table, -inal, -ier) // $alt2 use weak ending // $alt3 use weak first vowel, a->[a#], e->[@], o->[0#] // $alt6 'to' @@ -567,6 +567,7 @@ ie aIi:_! $pause $only i.e aIi:_! $pause imo $abbrev inlb $abbrev +ios $abbrev irc $abbrev irs $abbrev itx $abbrev @@ -662,8 +663,7 @@ ability a#bIl@ti ablaut ablaUt aborigine ab@r'IdZ@ni abracadabra abr@k@d'abr@ -absence abs@ns -absent $1 +absentee $3 absent abs'Ent $verb absentia abs'Ent2i:@ absinthe absInT @@ -759,7 +759,7 @@ allover O:l'oUv3 alm A:m almost O:lmoUst allspice $1 -alt 0lt //not abbrev +alt 0lt // not abbrev alternate O:lt'3:n@t $only alternate O:lt3neIt $verb alternately O:lt'3:n@tlI $verbf @@ -876,6 +876,7 @@ attribute atrIbju:t attribute $alt3 $verb au ,oU aubergine oUb3Zi:n +audi aUdi auger O:g3 augmentation O:gmEnt'eIS@n august O:g@st @@ -974,6 +975,7 @@ blurry bl3:rI boing bOIN bolognese b0l@n'eIz bombard $2 +bombardier b0mb3d'i@3 (bon voyage) b0n||vOI'A:Z bonbon b0nb0n bonhomie b0n@mi: @@ -1056,7 +1058,7 @@ capita kapIt@ capitol kapIt@L caprice ka#pri:s carafe ka#raf -caramel kar@mEl +?!3 caramel kar@mEl $onlys caravan kar@van carburetor kA@b@r'Et3 ?3 carburetor kA@b@reIt3 @@ -1077,7 +1079,7 @@ cathedral $alt3 catholic kaTlIk carotid $alt3 cartel kA@t'El -cavalier $3 +cavalier $alt1 caveat kavIat ?3 caveat kavIA:t caviar kavIA@ @@ -1091,6 +1093,7 @@ celebre sEl'Ebr@ censure sEnS3 ceres si@ri:z certificate s3tIfIk@t +c'est seI $u chagrin SagrIn ?3 chagrin Sa#grIn chalet SaleI @@ -1172,6 +1175,7 @@ coincide koUIns'aId cojones k@hoUneIs coliseum k0l@s'i:@m collage k0l'A:Z +collarbone k0l3boUn college k0lI2dZ collegiate k@li:dZI@t colloquial k@loUkwI@L @@ -1443,6 +1447,7 @@ edwardian Edw'O@di@n efile i:faIl egg Eg // egging egregious Igr'i:dZ@s +?!3 egret i:gr@t eh eI eid i:d el ,El $only @@ -1684,6 +1689,7 @@ habitual $alt3 haggis hagIs haha hA:h'A: halation $alt3 // in- +halberdier $alt1 halleluiah halI2'lu:j@ hallelujah halI2'lu:j@ halloween $3 @@ -1882,6 +1888,7 @@ kosher koUS3 kowtow kaUt2aU la ,la $only +(la vie) la||v'i: laboratory la#b'0r@trI ?3 laboratory labr@tO:ri labor leIb3 @@ -2079,6 +2086,7 @@ modem moUdEm ?3 modem moUd@m moderate m0d@reIt $verb mogul moUg@L +moi mwA: mojito moUh'i:toU molass $alt3 molybdenum $2 @@ -2300,6 +2308,7 @@ persona p3:s'oUn@ perspex p3:spEks perus p@ru:z peruse p@ru:z +petit p@ti: petite p@ti:t petroleum p@troUli:@m petunia $alt3 @@ -2340,6 +2349,7 @@ plethora plET3r@ plicate $2 plumber plVm3 plus plVs +pois pwA: poly p0lI politer p@l'aIt3 politic p0l@tIk $onlys @@ -2657,6 +2667,7 @@ sesame sEsa#mi settee $2 severe sI2v'i@3 $only severely sI2v'i@3lI $verbf +sewn soUn sex sEks // sexism several sEvr@L shallow SaloU @@ -2957,7 +2968,6 @@ useful ju:sf@L utan u:t'an utensil ju:t'Ens@L -valentine val@ntaIn valet valeI ?3 valet val'eI valise va#li:s @@ -3215,6 +3225,7 @@ Egyptian IdZ'IpS@n Eire e@r@ Elysee eIl'i:zeI Elysée eIl'i:zeI +Erebus ErI#b@s Erie i@ri Euphrates ju:fr'eIti:z Eyjafjalla eIja#fjatla# @@ -3426,6 +3437,7 @@ Ada eId@ $onlys Andrea $2 Adrian eIdri@n Agatha aga#T@ +Angelika $2 Aggie agi Agnes agn@s Aguilera agi:l'e@r@ @@ -3456,6 +3468,7 @@ Anthony ant@ni Anton ant0n Aoife i:f@ Aoiffe i:f@ +Aphrodite afr@d'aIti Archibald A@tSIbO:ld Archie A@tSi Ares e@ri:z @@ -3569,6 +3582,7 @@ Giovanni dZ@v'A:ni Graeme greI@m Graham greI@m Guido gwi:doU +Guinevere gwInI#vi@3 Hadrian heIdri:@n Hamish heImIS Harriet hari@t diff --git a/dictsource/en_rules b/dictsource/en_rules index c0f7f7e9..7a925456 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -239,7 +239,8 @@ ab (ruc ab ab (sce ab ab (sei ab - absen (t ,abs@n + _) ab (sen ab + _) abse (ntC ,abs@ ab (solu ab ab (sti ab ab (ular 'ab @@ -302,7 +303,7 @@ f) ac (ilit @s _m) ace (d asI m) achi (nA# @Si: - m) achina (t aSI2neI + m) achina (t akI2neI ach (rom ak ac (id_ as _) ac (i a#s @@ -516,12 +517,14 @@ _) alber (tA alb'3: _) al (c al alco (h alk@ + &) al (cy_ @l _) al (d O:l alde (hy 'aldI ale (_ eIl ale (h eIl X) al (ed al k) alei (d @laI + _v) alen (t al@n aleph alEf _) alexan alIgz'aan _) alfa alf@ @@ -634,9 +637,8 @@ t) all (e O:l thr) all O:l Av) al (en @l - w) all (A 0l + w) all (A+ 0l w) alle O:l - w) all (et 0l w) all O:l w) all (a 0l al (tAr 0l @@ -686,6 +688,7 @@ amer (ic a#mEr c) am (ero am c) am (el am + car) am (el @m am (i_ 'A:m ami (g a#mi: _d) am (i eIm @@ -960,7 +963,7 @@ sp) ar (enC ar ar' (nt A@ ar (et ar - ar (iaC_ 'e@ + ar (iaB_ 'e@ ar (ia_ 'e@ @) arily (_ 'Er@l%I ?3 @) arily (_ 'e@r@l%I @@ -1493,6 +1496,7 @@ bron) ch k ch (ute S ch (ure S + za) ch k .group co _) co (ag k%oU @@ -1979,7 +1983,7 @@ st) ea (k eI w) eapo Ep@ eager i:g3 - j) ealou El@ + j) ea (lou E &) eal (_ i@l z) ea (lo E C) ea (lt E @@ -2952,7 +2956,9 @@ iza (tion aIzeI ?3 iza (tion @zeI ize (_ aIz - ial) ize (_S3 aIz + &l) ize (_S3 aIz + &l) ized (_S4 aIzd + &l) izing (_S5 ,aIzIN ize (d_ aIz i (zen I iz (er_ aIz @@ -3055,6 +3061,7 @@ ier i@3 ier (a I'e@r &) ier (_NS2i 3 + ier (_$w_alt1 'i@3 _h) ie (r aI3 pl) ier (_ aI3 _Cr) ier aI3 @@ -3357,6 +3364,7 @@ v) ine (g InI# in (ea In in (ee In + in (esc In c) in (e In inc) in (e In g) in (e In @@ -4180,6 +4188,7 @@ t) omb (K u:m w) omb (_ u:m c) ombe (_ u:m + _tr) ombo (n %0mboU c) om (e Vm c) omm (e Vm _d) om (a @m @@ -4237,6 +4246,7 @@ pers) on (i '0n postp) on 'oUn _sp) on 0n + &s) on (an @n on (ald 0n &) on (age_ @n d) on (at %oUn @@ -4348,6 +4358,7 @@ nt) or (_ o@ vent) or (_ 3 y) or (k O@ + &) or (ant_ 3r or (arL02 3r &) or (ation 3r _) ora (to 0r@ @@ -4790,6 +4801,8 @@ prede (ces pri:dI _) pre (diP3 pr%i: _) pre (dic pr%I + _) predi (lec pr,i:dI2 +?3 _) predi (lec prEd@ _) pre (em pr%i: _) pre (fec pri: _) pre (feren prE @@ -5385,7 +5398,7 @@ @) tu (lat =tSU ?3 tu (Ant tSu: ?3 tu (Ancy tSu: - tu (ous tSu: + tu (ous =tSu: @) tur (A tS@r @) tur (al_ tS=@r &) tur (y tS@r @@ -5714,6 +5727,7 @@ ?3 _) vibra (t v'aIbreI vivi (@ vIvI viv (_ vaIv + _) vo (lC v0 .group w w w diff --git a/dictsource/hi_rules b/dictsource/hi_rules index 6e29d89f..992967df 100644 --- a/dictsource/hi_rules +++ b/dictsource/hi_rules @@ -106,6 +106,7 @@ .group ा ा a: + ा (ँ a~ ाँ (_ a~ ां (_ a~ ाव aU @@ -118,16 +119,19 @@ .group ी ी i: ी (_ i + ी (ँ i~ ीँ (_ i~ ीं (_ i~ .group ु ु U + ु (ँ u~ ुं (_ u~ ुँ (_ u~ .group ू ू u: + ू (ँ u~ ूं (_ u~ // or O~ ?? ूँ (_ u~ @@ -142,16 +146,19 @@ .group ॆ ॆ e + ॆ (ँ e~ ॆं (_ e~ ॆँ (_ e~ .group े े e: + े (ँ e~ ें (_ e~: ेँ (_ e~: .group ै ै E: // ?? [aI] [E:] [&:] + ै (ँ E~ ैं (_ E~ ैँ (_ E~ ?2 ै aI // ?? [aI] [E:] [&:] @@ -161,16 +168,19 @@ .group ॊ ॊ o + ॊ (ँ o~ ॊं (_ o~ ॊँ (_ o~ .group ो ो o: + ो (ँ o~ ों (_ o~ ोँ (_ o~ .group ौ ौ O: // [O:] or [aU] ?? + ौ (ँ O~ // [O:] or [aU] ?? ौं (_ O~ ौँ (_ O~ ?3 ौ aU // [O:] or [aU] ?? diff --git a/dictsource/hu_rules b/dictsource/hu_rules index 86932af1..570ce58b 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -773,6 +773,7 @@ _egyszere) gy (e J: _huszone) gy (e J: száze) gy (edik J: védje) gy (straté J + na) gy (sor J .group h h h @@ -1931,6 +1932,7 @@ szögle) t (szob t diva) t (cirk t álla) t (cirk t szen) t (szob t +koncer) t (jeg t .group tj C) tj c diff --git a/dictsource/pt_list b/dictsource/pt_list index 7fde30e2..bd51150c 100644 --- a/dictsource/pt_list +++ b/dictsource/pt_list @@ -298,7 +298,7 @@ dr $dot dra $dot mr $dot mrs $dot -prof pr'Of $dot +prof pR'Of $dot profº pR,ofes'or profª pR,ofes'o*& sr $dot @@ -646,11 +646,9 @@ adore $alt adorno $alt $verb aeroporto $alt2 aeroportos $alt -albatrozes $alt alcateia $alt alcova $alt2 alferes $alt -algozes $alt almoço $alt $verb ameba $alt amores $alt2 @@ -674,7 +672,6 @@ ateia $alt aterro $alt2 aterro $alt $verb atmosfera $alt -atrozes $alt autora $alt2 avesso $alt2 axé aSE @@ -712,7 +709,6 @@ cãibra k'&~IbR& caibro k'aIbRU camelha $alt camelo $alt2 -caminhonete $alt camiseta $alt2 cantora $alt2 capacete $alt2 @@ -733,6 +729,7 @@ centopeia $alt cerca $alt cerca $alt2 $noun cerco $alt $verb +cerda $alt cetro $alt chamego $alt2 chefe $alt @@ -805,6 +802,7 @@ dispneia dZIspyn'EI& dobro $alt2 $noun doce $alt2 doutora $alt2 +doze $alt2 droga $alt dueto $alt2 elixir eliSir @@ -817,7 +815,6 @@ engordo $alt enredo $alt $verb enrosco $alt $verb enterro $alt2 $noun -enumerem $alt envelope $alt envolto $alt2 enxaqueca $alt2 @@ -859,7 +856,6 @@ farolete $alt2 febre $alt fera $alt feitora $alt2 -ferozes $alt fezes $alt filete $alt2 ?1 fixe fiSy @@ -881,7 +877,6 @@ fulgores $alt2 galera $alt galileia $alt gangorra $alt2 -garçonete $alt geleia $alt gelo $alt2 gelo $alt $verb @@ -890,9 +885,11 @@ gesso $alt2 golpe $alt gonorreia $alt gorda $alt2 +gorjeta $alt2 gosto $alt $verb gota $alt2 -governo $alt2 $noun +governo $alt2 +governo $alt $verb gozo $alt2 $noun graveto $alt2 grelha $alt @@ -914,7 +911,6 @@ jogos $alt joguete $alt2 lagosta $alt2 lambreta $alt2 -lanchonete $alt lebre $alt leitora $alt2 lembrete $alt2 @@ -927,7 +923,6 @@ macete $alt2 maior $alt maleta $alt2 maniçoba $alt -marionete $alt marreta $alt2 megera $alt melhor $alt @@ -954,10 +949,6 @@ moreia $alt mortos $alt motora $alt2 mui mwi -muito mw'iNtU // -s is included as a suffix -muita mw'iNt& -mulher $alt -mulheres $alt mureta $alt2 mutreta $alt2 namoro $alt2 $noun @@ -990,7 +981,6 @@ pangeia $alt pantera $alt parede $alt2 pastora $alt2 -patinete $alt pedra $alt pela $alt $verb pelo $alt2 @@ -1034,6 +1024,7 @@ refresco $alt $verb rego $alt2 $noun reitora $alt2 relevo $alt2 $noun +remoem $alt remorso $alt renovo $alt $verb retorno $alt $verb @@ -1047,6 +1038,7 @@ rolo $alt2 $noun rota $alt2 rota $alt $noun rumores $alt2 +sabonete $alt2 saibro s'aIbRU saleta $alt2 sarjeta $alt2 @@ -1102,13 +1094,11 @@ trombeta $alt2 tumores $alt2 valeta $alt2 vanessa $alt2 -velozes $alt vera $alt verbete $alt2 violeta $alt2 violoncelo $alt voga $alt -vozes $alt xarope $alt zelo $alt2 $noun zorra $alt2 @@ -1135,11 +1125,13 @@ book buk ?1 dj d,i:dZ'eI ?1 down d'a,wn ?1 download d'a,wnl'oud -?2 download daUNl'owd +?2 download daUNl'owd +?2 downloads daUNl'owds ?3 download dau~Nl'owd drive dR'aIv driver dR'aIver -drivers dR'aIveRs?1 end 'end +drivers dR'aIveRs +?1 end 'end ?2 esc 'Esk ?3 esc 'EskI ?1 explorer ,ekspl'O:*&r- @@ -1165,11 +1157,11 @@ drivers dR'aIveRs?1 end 'end laptop lEptOp ?1 line l'ain layout l'eI,aUt -?2 logo l'OgU +?2 logo l'OgU ?1 lock l'Ok mail m'eIl - mails m'eIls -?2 mouse m'aUzi + mails m'eIls +?2 mouse m'aUzi ?1 menu menu ?1 next n'Ekst ok Ok'eI @@ -1280,9 +1272,10 @@ bernhard bern'ard darwin d'Arwin dijkstra d'ijkstrA: einstein _!'aInSt,aIn +?2 einstein _!'aInst,aIn feynman f'ainm@n -freud fr'OId -friedrich fr'i:driS +freud fR'OId +friedrich fR'i:dRiS gauss g'aUs geisel g'aIzEU gottfried g'Otfri:t @@ -1333,14 +1326,8 @@ ronchi r'OnCi: valter v'aUter vogel f'o:g@l volkmann f'Olkman +washington w'OSinton wellington w'Elynton wilton w'Iwton - - - - - - - diff --git a/dictsource/pt_rules b/dictsource/pt_rules index 81875216..da438960 100644 --- a/dictsource/pt_rules +++ b/dictsource/pt_rules @@ -263,6 +263,7 @@ m) e (tam_ e m) e (to_ e An) e (tA_ e + on) e (te_ E gaz) e (ta_ e e (tAm_ E @@ -367,111 +368,59 @@ //sort _d) e (L05_ E + em) e (L05_ e // temeram, etc. + rd) e (L05_ e // perderam, etc. _vi) e (L05_ E + end) e (L05_ e // entenderam, etc. fiz) e (L05_ E pus) e (L05_ E // com- im- de- tiv) e (L05_ E // es- _com) e (L05_ e _pud) e (L05_ E - _tem) e (L05_ e _coub) e (L05_ E _exag) e (L05_ E _houv) e (L05_ E - _perd) e (L05_ e + _mulh) e (L05_ E _quis) e (L05_ E _soub) e (L05_ E _talh) e (L05_ E - _trem) e (L05_ e +_escond) e (L05_ e _troux) e (L05_ E +respond) e (L05_ e diss) e (L06_ E // contra- - fend) e (L06_ e // de- o- - tend) e (L06_ e // a- con- en- es- - vend) e (L06_ e // re- - _mord) e (L06_ e - _rend) e (L06_ e - prend) e (L06_ e // a- rea- des- desa- -_arrepend) e (L06_ e -_depend) e (L06_ e -_escond) e (L06_ e -preend) e (L06_ e // com- a- re- sur- -respond) e (L06_ e // cor- + m) e (L07_ e // comeste, etc. + eb) e (L07_ e // recebeste, etc. + ec) e (L07_ e // pareceram, etc. + eg) e (L07_ e // elegeste, etc. + _do) e (L07_ e + _mo) e (L07_ e + _ro) e (L07_ e bat) e (L07_ e // re- com- - ceb) e (L07_ e // re- per- con- ced) e (L07_ e // pro- con- su- + end) e (L07_ e // vendeste, etc. + esc) e (L07_ e // cresceste, etc. met) e (L07_ e // co- pro- arre- re- intro- compro- sub- mex) e (L07_ e mov) e (L07_ e // re- co- + olv) e (L07_ e // devolveste, etc. + ond) e (L07_ e // escondeste, etc. + orr) e (L07_ e // correste, etc. viv) e (L07_ e // re- - _beb) e (L07_ e - _com) e (L07_ e - _tem) e (L07_ e + _ard) e (L07_ e colh) e (L07_ e // & es- - corr) e (L07_ e // per- con- in- so- dis- ench) e (L07_ e // pre- - fend) e (L07_ e // de- o- nasc) e (L07_ e // re- - tend) e (L07_ e // en- con- a- es- torc) e (L07_ e // con- venc) e (L07_ e // con- - vend) e (L07_ e // re- vert) e (L07_ e // in- re- con- - volv) e (L07_ e // de- en- re- - _desc) e (L07_ e - _eleg) e (L07_ e _ergu) e (L07_ e _mord) e (L07_ e - _morr) e (L07_ e _perd) e (L07_ e _sofr) e (L07_ e - _trem) e (L07_ e - merec) e (L07_ e // des- - padec) e (L07_ e // com- - parec) e (L07_ e // a- rea- com- desa- - prend) e (L07_ e // a- rea- des- screv) e (L07_ e // e- in- ree- pre- de- -_aborrec) e (L07_ e -_absolv) e (L07_ e -_acontec) e (L07_ e -_adoec) e (L07_ e -_adormec) e (L07_ e -_agradec) e (L07_ e -_amanhec) e (L07_ e -_amolec) e (L07_ e -_anoitec) e (L07_ e -_apodrec) e (L07_ e -_arrepend) e (L07_ e _atrev) e (L07_ e -_cresc) e (L07_ e -_depend) e (L07_ e -_desguarnec) e (L07_ e -_emagrec) e (L07_ e -_endurec) e (L07_ e -_enlouquec) e (L07_ e -_enraivec) e (L07_ e -_entorpec) e (L07_ e -_entristec) e (L07_ e -_envaidec) e (L07_ e -_envelhec) e (L07_ e -_esclarec) e (L07_ e -_escond) e (L07_ e -_escurec) e (L07_ e -_espairec) e (L07_ e -_esquec) e (L07_ e -_estremec) e (L07_ e _interromp) e (L07_ e -_perec) e (L07_ e -_rejuvenec) e (L07_ e -_resolv) e (L07_ e -_suspend) e (L07_ e _troux) e (L07_ E -abastec) e (L07_ e // re- -conhec) e (L07_ e // & re- des- -estabelec) e (L07_ e // re- -favorec) e (L07_ e // des- -obedec) e (L07_ e // des- -preend) e (L07_ e // sur- com- -proteg) e (L07_ e // des- -respond) e (L07_ e // cor- qu) e (brL04_ E _cel) e (brL04_ E _ex) e (crL04_ E @@ -509,6 +458,7 @@ respond) e (L07_ e // cor- acel) e (rL04_ E // des- _apod) e (rL04_ E _coop) e (rL04_ E + _enum) e (rL04_ E _temp) e (rL04_ E _recup) e (rL04_ E _refrig) e (rL04_ E @@ -853,7 +803,7 @@ _entorp) e (çL03_ e ?2 o (x_ O ?1 oz (_ Os# ?2 oz (_ Oz - o (zes_ O + o (ze_ O o (rA_ O b) o (re_ o c) o (re_ o @@ -884,6 +834,7 @@ _pormen) o (L05_ O _af) o (bL04_ O _esn) o (bL04_ O _engl) o (bL04_ O + _sal) o (brL03_ o _) o (cL03_ o br) o (chL04_ O _deb) o (chL04_ O @@ -1108,6 +1059,7 @@ _remem) o (rL04_ O unh u~n^ g) u (Y + _m) ui (tA_ 'wiN .group ú diff --git a/espeak-data/voices/other/en-n b/espeak-data/voices/other/en-n index 7f8ef32a..755bf5f7 100644 --- a/espeak-data/voices/other/en-n +++ b/espeak-data/voices/other/en-n @@ -1,4 +1,4 @@ -name lancashire +name english-north language en-uk-north language en-uk 3 language en 5 @@ -10,6 +10,6 @@ stressLength 160 150 180 180 220 220 290 290 replace 00 i@3 i@ replace 03 N n -//replace 03 I i -//replace 03 I2 i +replace 03 i I2 + diff --git a/phsource/ph_hindi b/phsource/ph_hindi index 6d204b12..f922c77b 100644 --- a/phsource/ph_hindi +++ b/phsource/ph_hindi @@ -13,7 +13,7 @@ phoneme @ length 130 ChangeIfDiminished(@-) - IF nextPh(H) THEN + IF nextPh(H) OR prevPh(H) THEN FMT(vowel/@_low) ENDIF FMT(vowel/@_bck) @@ -39,14 +39,10 @@ phoneme V ENDIF IF prev2PhW(isVowel) AND NOT nextVowel(isFlag1) THEN - IF thisPh(isSeqFlag1) THEN - // delete the last inherent vowel of a sequence - ChangePhoneme(NULL) + IF nextPhW(isNotVowel) AND nextPh(isWordEnd) THEN + // don't delete schwa before a word-final consonant ELSE - IF NOT thisPh(isFirstVowel) THEN - // delete if not the first vowel, and is an isolated 'a' - ChangePhoneme(NULL) - ENDIF + ChangePhoneme(NULL) ENDIF ENDIF ENDIF @@ -60,7 +56,7 @@ phoneme V ChangePhoneme(@) ENDIF - IF nextPh(H) THEN + IF nextPh(H) OR prevPh(H) THEN FMT(vowel/@_low) ENDIF ENDIF @@ -140,6 +136,9 @@ endphoneme phoneme a: vowel long starttype #a endtype #a length 190 + IF nextPhW(j) THEN + FMT(vowel/a_5) + ENDIF FMT(vowel/aa_9) endphoneme @@ -213,25 +212,25 @@ endphoneme phoneme E~ vowel long starttype #e endtype #e - length 230 + length 220 FMT(vnasal/ee_n2) endphoneme phoneme a~ vowel long starttype #a endtype #a - length 250 - FMT(vnasal/aa_n) + length 220 + FMT(vnasal/&_n) endphoneme phoneme V~ vowel long starttype #@ endtype #@ - length 250 + length 220 FMT(vnasal/V_n) endphoneme phoneme O~ vowel long starttype #o endtype #o - length 230 + length 220 FMT(vnasal/oo_n2) endphoneme @@ -249,7 +248,7 @@ endphoneme phoneme u~ vowel long starttype #u endtype #u - length 230 + length 220 FMT(vnasal/u_n) endphoneme diff --git a/src/numbers.cpp b/src/numbers.cpp index f8192a64..9d9ef206 100644 --- a/src/numbers.cpp +++ b/src/numbers.cpp @@ -578,7 +578,32 @@ void LookupLetter(Translator *tr, unsigned int letter, int next_byte, char *ph_b } // end of LookupLetter -static const char *hex_letters[] = {"'e:j","b'i:","s'i:","d'i:","'i:","'Ef"}; // using phonemes available to all languages +// unicode ranges for non-ascii digits 0-9 +static const int number_ranges[] = { + 0x660, 0x6f0, // arabic + 0x966, 0x9e6, 0xa66, 0xae6, 0xb66, 0xbe6, 0xc66, 0xce6, 0xd66, // indic + 0xe50, 0xed0, 0xf20, 0x1040, 0x1090, + 0 }; // these must be in ascending order + + +int NonAsciiNumber(int letter) +{//============================ +// Change non-ascii digit into ascii digit '0' to '9', (or -1 if not) + const int *p; + int base; + + for(p=number_ranges; (base = *p) != 0; p++) + { + if(letter < base) + break; // not found + if(letter < (base+10)) + return(letter-base+'0'); + } + return(-1); +} + + +static const char *hex_letters[] = {"'e:j","b'i:","s'i:","d'i:","'i:","'ef"}; // names, using phonemes available to all languages int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) {//========================================================================= @@ -598,6 +623,7 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) int al_offset; int al_flags; int language; + int number; int phontab_1; int speak_letter_number; char capital[20]; @@ -637,6 +663,12 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) return(0); } + if((ph_buf[0] == 0) && ((number = NonAsciiNumber(letter)) > 0)) + { + // convert a non-ascii number to 0-9 + LookupLetter(tr, number, 0, ph_buf, control & 1); + } + al_offset = 0; al_flags = 0; if((alphabet = AlphabetFromChar(letter)) != NULL) @@ -780,8 +812,8 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) speak_letter_number = 0; } - if((ph_alphabet[0] != 0) && speak_letter_number) - ph_buf[0] = 0; // don't speak "letter" if we speak alphabet name +// if((ph_alphabet[0] != 0) && speak_letter_number) +// ph_buf[0] = 0; // don't speak "letter" if we speak alphabet name if(speak_letter_number) { diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 9796548f..7699bf4c 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.47.05 08.Apr.13"; +const char *version_string = "1.47.05a 10.Apr.13"; const int version_phdata = 0x014701; int option_device_number = -1; diff --git a/src/voices.cpp b/src/voices.cpp index cac1f094..7f4ea608 100644 --- a/src/voices.cpp +++ b/src/voices.cpp @@ -539,7 +539,7 @@ static unsigned int StringToWord2(const char *string) int c; unsigned int value = 0; - for(ix=0; (ix<4) & ((c = string[ix]) != 0); ix++) + for(ix=0; (ix<4) && ((c = string[ix]) != 0); ix++) { value = (value << 8) | (c & 0xff); }