From 347ff0e5bb1c4e12c18399247375c7bb9e52b0c4 Mon Sep 17 00:00:00 2001 From: jonsd Date: Mon, 20 Dec 2010 10:29:42 +0000 Subject: [PATCH] 1.44.19 Changes for numbers lang=vi Undo a change for lang=hu which broke oridinal numbers. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@256 d46cf337-b52f-0410-862d-fd96e6ae7743 --- dictsource/de_rules | 15 ++++--- dictsource/dict_phonemes | 10 ++--- dictsource/fr_list | 1 - dictsource/fr_rules | 6 ++- dictsource/hu_list | 54 +++++++++++++++++++++- dictsource/hu_rules | 15 ++++++- dictsource/nl_list | 4 ++ dictsource/nl_rules | 62 +++++++++++++++---------- dictsource/ta_list | 5 ++- dictsource/ta_rules | 87 +++++++++++++++++++++++++++++++++--- phsource/compile_report | 26 +++++++---- phsource/ph_french | 38 ++++++++++++++-- phsource/ustop/percus02.wav | Bin 0 -> 1664 bytes phsource/vdiph2/8@ | Bin 0 -> 4534 bytes phsource/vwl_fr/tr | Bin 1264 -> 1678 bytes src/Makefile | 4 +- src/Makefile.espeakedit | 2 +- src/dictionary.cpp | 2 +- src/numbers.cpp | 63 ++++++++++++++++---------- src/synthdata.cpp | 2 +- src/tr_languages.cpp | 2 +- src/translate.h | 13 +++--- 22 files changed, 316 insertions(+), 95 deletions(-) create mode 100644 phsource/ustop/percus02.wav create mode 100644 phsource/vdiph2/8@ diff --git a/dictsource/de_rules b/dictsource/de_rules index 673371ac..68301a51 100644 --- a/dictsource/de_rules +++ b/dictsource/de_rules @@ -160,7 +160,8 @@ _) b (eHC b _) be (C% bE _) bei b'aI - _) beige be:S + _) beige (_ be:S + _) beige (@ baIg@ _) be (inhP2 b@ _) beo (b b,@o: @@ -261,6 +262,7 @@ dt t ddt t + soun) d d _) darüber (@P7 dar'y:b@r _) darum (@P5 dar'Um _) darunter (@P8 dar'Unt@r @@ -324,7 +326,7 @@ @@) e (kt_ E &) el (_ @l &) eln (_NS1 n - &) elnd (_S2 nt + &) elnd (_ @lnd &) e (lt_ @ &) em (_NS2 @m &) em (_ 'e:m @@ -488,7 +490,7 @@ _) g (eHC g // hC, lC, mC, nC, rC - + massa) g Z @) ght (_ _^_EN graph grAf graph (_ gr'A:f @@ -569,7 +571,7 @@ _) hoch (@P4 h'o:x hoch ho:x homogen h,o:mo:ge:n - _) hyper _^_EN + _) hyper (@P5 h'y:p3 .group i @@ -729,7 +731,7 @@ formal) ie =I@ _) leb (C le:p _) leb (C@@P3 'le:p _) leben (dig le:b'En - _) lehr (CP4 l'e:r + _) lehr (C@P4 l'e:r _) leit (@P4 l'aIt _) lern (@@P4 l'Ern _) lexi (@ lEksi: @@ -1011,7 +1013,6 @@ formal) ie =I@ soldat z%OldA:t so (rt_ s_|O - sound _^_EN speed _^_EN stau) ss s @) straße (_S6 str,A:s@ @@ -1246,7 +1247,7 @@ formal) ie =I@ .group z _) z (_ tsEt z ts - z) z + z (z _) z (den z _) z (wA ts // allow _zw diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index fb304be9..2f2673f0 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -66,7 +66,7 @@ s S t T tS v w x z -Dictionary hu_dict 2010-12-02 +Dictionary hu_dict 2010-12-19 a A a: E e: i i: o o: u u: Y y y: Y: @@ -77,7 +77,7 @@ n n^ p r R R2 s S s2 t t2 tS ts v z Z -Dictionary de_dict 2010-08-25 +Dictionary de_dict 2010-12-19 3 3: @ @- a A A: aI aU E E2 E: e: EI i I @@ -150,7 +150,7 @@ l m n N p r s S s2 t v w Z -Dictionary fr_dict 2010-11-15 +Dictionary fr_dict 2010-12-10 @ @- a A~ e E E: E~ i I o O O~ u u: w @@ -200,7 +200,7 @@ q r r. s S s. t T t. th th. v w x z -Dictionary ta_dict 2010-12-01 +Dictionary ta_dict 2010-12-19 a a: aI aU e E e: i I i: o o: u U u2 u: @@ -325,7 +325,7 @@ k l m n p R s S t tS v w x -Dictionary nl_dict 2010-12-03 +Dictionary nl_dict 2010-12-19 8 @ @- a A a: A~ E E2 e: EI eU i I o O diff --git a/dictsource/fr_list b/dictsource/fr_list index 7780cba9..0c01daa5 100755 --- a/dictsource/fr_list +++ b/dictsource/fr_list @@ -962,4 +962,3 @@ venezuela venezyEla wallis walis futuna futuna zimbabwe zimbabwe - diff --git a/dictsource/fr_rules b/dictsource/fr_rules index c64c662e..8ce7fe0f 100755 --- a/dictsource/fr_rules +++ b/dictsource/fr_rules @@ -27,7 +27,7 @@ // http://www.fluxnic.net/cicero // // Rules are now maintained by Michel Such -// Last update: 2010-10-15 Michel Such +// Last update: 2010-12-06 Michel Such // // Letter classes: @@ -869,7 +869,8 @@ AC) k (X _^_en // bank _) lorsqu' (P7 lorsk // group l: English section - ld (_ _^_en // could +o) ld (_ _^_en // old +u) ld (_ _^_en // could less (_ _^_en // noiseless %C) l (eX _^_en ff) l (eX l @@ -1222,6 +1223,7 @@ L13) ston (_ _^_en peti) t (_ t2 th (L12++ t th (ArA++ t + th (oCA t or) th (++ t _) th (erm t ts (_S1 z2 // silent at end of word unless next word starts with a vowel diff --git a/dictsource/hu_list b/dictsource/hu_list index 1165e13e..0f971cc2 100755 --- a/dictsource/hu_list +++ b/dictsource/hu_list @@ -124,7 +124,7 @@ _#-re e:R2E $alt2 _#-én e:n //need remove the $alt2 attribute with this line _#-ai Ai $alt2 _#-ei Ei $alt2 -_#-től e:tY:l $alt2 +_#-től e:tY:l //$alt2 _#-tól a:to:l $alt2 _#-ig e:ig $alt2 //special date ordinal numbers for example elsejéig, negyedikéig etc. _#-éről e:R2Y:l @@ -240,6 +240,7 @@ _#-ikának a:nAk (0-st) nul:a:St (1-gyet) EJ:Et (1-gyes) EJ:ES +(1-gyel) EJ:El (2-szer) ke:ts:ER2 (2-őt) kEt:Y:t (2-őn) kEt:Y:n @@ -1228,6 +1229,55 @@ elnök $unstressend itthon $unstressend otthon $unstressend köszönhető $unstressend +tudják $unstressend +magunkat $unstressend +állítják $unstressend +utasítás $unstressend +cikknek $unstressend +jelenti $unstressend +év $unstressend +állja $unstressend +elő $unstressend +szerint $unstressend +képest $unstressend +számát $unstressend +kezdődött $unstressend +ígért $unstressend +közölte $unstressend +közölték $unstressend +adása $unstressend +nyújtani $unstressend +során $unstressend +bír $unstressend +szolgálja $unstressend +jelent $unstressend +rémlik $unstressend +rendszert $unstressend +oldalra $unstressend +szóval $unstressend +helyezhető $unstressend +csere $unstressend +információ $unstressend +terve $unstressend +tudhatják $unstressend +mondanunk $unstressend +találunk $unstressend +teljesítményű $unstressend +mobilok $unstressend +látjuk $unstressend +kerül $unstressend +platform $unstressend +fok $unstressend +szánt $unstressend +központ $unstressend +udvaros $unstressend +rendelkező $unstressend +árú $unstressend +bajt $unstressend +helyiség $unstressend +úton $unstressend +való $unstressend +fakad $unstressend // word pairs @@ -1489,3 +1539,5 @@ CD-m) cédém (%-kal) százalékkal (ÁFÁ-t) áfát (MB-al) megabájttal +(EU-n) eun + diff --git a/dictsource/hu_rules b/dictsource/hu_rules index dcc68e25..e7035523 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -268,6 +268,11 @@ standar) d (jegy d ebé) d (jeg d szaba) d (jeg d //szabadjegy, szabadjeggyel words need spokening single d phoneme tize) d (száz d //for example tizedszázalék word need single d and s phoneme + föl) d (szerű d //this word need spokening single d before s phoneme + va) d (sztrájk d //this word need spokening single d before s phoneme + kar) d (szerű d //this word need spokening single d before s phoneme + kö) d (szirén d //this word need spokening single d before s phoneme + rekor) d (szerkez d //this word need spokening single d before s phoneme .group dz fogó) dz (kod ts @@ -296,6 +301,7 @@ mentegető) dz z mahara) dzs (A dZ: bri) dzs (A dZ: ?1 kambo) dzs (A dZ: //a town name with need spokening dZ: phoneme + _do) dzs (A dZ: //for example dodzsemautó need spokening dZ: phoneme dz dz: C) dzs dZ borsó) dz z @@ -506,6 +512,7 @@ harmince) gy (edik J: tár) gy (jutal J e) gys (áv J|S //egysáv beginning words for example need spokening single J and S phoneme. _e) gy (ablak J: +összee) gy (esít J: .group h h h @@ -716,6 +723,7 @@ eredmé) ny (j n^ //for example eredményjelző word need spokening esemé) ny (jel n^ helybe) n (jár n polle) n (jelen n + idé) ny (jel n^ .group o o o @@ -766,6 +774,7 @@ helybe) n (jár n rrr R2R2 //not need spokening three R2 phoneme te) rr (ier R2 te) rr (ori R2 + rr (-L01 R2 .group s s S @@ -802,6 +811,7 @@ erőforrá) s (zabál S működé) s (zava S viselkedé) s (zava S alkalmazá) s (szerver S + fá) s (szárú S .group ss ssz ss2 @@ -986,7 +996,7 @@ rendelteté) ssz (er Ss ssz (-L01 s //if have a consonant after the - character, need spokening one sz phoneme ss (-L01 S //if have a consonant after the - character, need spokening one S letter települé) ssz (er Ss //for example településszerkezet word need spokening single S and s phoneme. - + gyor) ssz (űr Ss //for example gyorsszűrő word need spokening single S and s phoneme .group sz sz s @@ -1330,7 +1340,7 @@ terüle) ts (áv t|S _ha) tsz (ob t|s //same as prewious rule _hé) tsz (ob t|s //same as prewious rule gyakorla) ts (oroz t|S - +támogato) ts (ág tS: .group tt tt t: @@ -1524,6 +1534,7 @@ szellő) z (tet s győ) z (t s kötö) z (kö s árví) z (súj z //for example árvízsújtott word need spokening single z phoneme, not Z phoneme +magyará) z (kod s .group $ dolla:R2 diff --git a/dictsource/nl_list b/dictsource/nl_list index 87f8804a..00c3b553 100644 --- a/dictsource/nl_list +++ b/dictsource/nl_list @@ -1257,6 +1257,9 @@ dynastie $3 eensgelijks e:nsQ@l'EIks emaille ,e:m'Aij@ eucharistie $4 +fiche fiS@ +gamasche Qa:m'AS +gouache Qu'AS inductie $2 ingewikkeld $3 ingrijpend $2 @@ -1276,6 +1279,7 @@ ongemakkelijk $3 ongelukkig $3 ongerieflijk $3 ongrondwettig $3 +pistache pist'AS proces $2 renaissance rEne:s'A~s@ reservoir re:zErvv#'a:r diff --git a/dictsource/nl_rules b/dictsource/nl_rules index 303bebe9..5cd96f36 100644 --- a/dictsource/nl_rules +++ b/dictsource/nl_rules @@ -17,6 +17,7 @@ @) abel (_ 'a:bE2l @) abele (_ 'a:b@l@ _) af (C@P2 'Af + _) affich Af'iS age (_N 'a:Z@ ages (_S1 s age (_$w_alt a:Q@ @@ -63,28 +64,6 @@ c (i s c (y s c k - ch x - _) ch S - _) ch (ador tS - _) ch (ao x - _) chang (e SA~Z - _) chaperon S,Ap@rO~n - _) charg (@ SArZ - _) ch (ari x - _) ch (arter tS - _) chau (ffe S%o: - _) chau (vin S,o: - _) ch (emi x - _) cheque SEk - _) cherry tSEri - _) chi (cane S%i - _) ch (ip tS - _) ch (lo x - _) ch (ole x - _) cho (que SO - _) ch (or x - _) ch (r x - &) che (_ =S ci (a S @) ci (eel S @) ci (ë S @@ -97,6 +76,39 @@ _) congres kOnQr'Es +.group ch + ch x + _) ch S + _) ch (ador tS + _) ch (ao x + _) chang (e SA~Z + _) chaperon S,Ap@rO~n + _) charg (@ SArZ + _) ch (ari x + _) ch (arter tS + _) chau (ffe S%o: + _) chau (vin S,o: + ch (é S + &) che (_ =S + _) ch (emi x + _) cheque SEk + _) cherry tSEri + _) chi (cane S%i + _) ch (ip tS + _) ch (lo x + _) ch (ole x + _) cho (que SO + _) ch (or x + _) ch (r x + blan) ch S + bro) ch (e S + brun) ch S + deta) ch S + ma) ch (in S' + mar) ch S + para) chut S'yt + _po) ch (e S + .group d d d // auto-devoice at end-of-word d) d @@ -229,6 +241,7 @@ @) ibele (_ 'ib@l@ &) ica (_ =ika: &) ico (_ =iko: + i (che_ i ie (X 'i ie (ren_ 'i ie (rd_ 'i @@ -314,6 +327,8 @@ _) open (@P4 'o:p@n _) op (era 'o:p _) op (tion Op + ou (che_ u + ouch (en_ uS _) over (@P4 'o:v@r @@ -498,7 +513,8 @@ .group é e: - éé e: + é (_ 'e: + éé e: $ d'OlAr , (D k'Oma: __) - (_D m'In diff --git a/dictsource/ta_list b/dictsource/ta_list index e16dff04..be434042 100644 --- a/dictsource/ta_list +++ b/dictsource/ta_list @@ -285,6 +285,7 @@ tamil தமிழ் $text ப்யூனஸ் $alt பவுத்த $alt பவுத்தம் $alt +பிட் $alt (பி . ஏ) bije: @@ -340,6 +341,9 @@ tamil தமிழ் $text தாவே $alt தருமமும் $alt தராவி $alt +தேவநேய $alt +தங்கர் $alt +தவக் $alt // initial ட @@ -404,7 +408,6 @@ tamil தமிழ் $text கேட்டின் $alt கேட்டுக்கு $alt கம்முனு $alt -குஜால் $alt diff --git a/dictsource/ta_rules b/dictsource/ta_rules index b9d4ae6e..b747d837 100644 --- a/dictsource/ta_rules +++ b/dictsource/ta_rules @@ -121,6 +121,7 @@ _) க (வர்னர gV _) க (வர்ன்மெண்ட gV _) க (வாஸ்கர gV + _) க (வுர gV _) க (ாண்டாமிருக g _) க (ாண்டீப g _) காண்டேக (ர ga:n.d.e:kV @@ -143,6 +144,7 @@ _) கி (ராக்கி g _) கி (ராதக k _) கி (ராம g + _) கி (ரிகோரிய g _) க (ிரிஜா g _) க (ிரிதர g _) கி (ரீட k @@ -155,6 +157,7 @@ _) கி (ரௌண்ட g _) கி (ளாஸ g _) கி (ளினிக் k + _) கிளியோப (ாட்ரா klijo:p _) க (ீதல k _) க (ீத்த k _) க (ுகநாத g @@ -162,6 +165,7 @@ _) க (ுகராஜ g _) க (ுகை g _) க (ுஜராத g + _) க (ுஜால g _) க (ுடியாத்த g _) க (ுடுகுடு g _) க (ுணங் g @@ -213,8 +217,9 @@ _) க (ுருவுடை g _) க (ுருவை g _) க (ுருவோட g - _) க (ுறட்டை g + _) குவாலிட(ி kva:lit. _) கு (வாலியர g + _) க (ுஸ்தி g _) க (ூகிள g _) க (ூகுள g _) க (ூடலூர g @@ -233,7 +238,6 @@ _) க (ேட்டைத் g _) க (ேட்டைப் g _) க (ேலி g - _) க (ொறட்ட g _) கோக (ிலா go:k _) க (ோகுல g _) க (ோதாவரி g @@ -274,6 +278,7 @@ _) க (ௌட்டில்ய k _) க (ௌவ k _) க் (ரவுண்ட g + _) க் (ரிகோரிய g _) க் (ரூப g _) க் (ரௌண்ட g _) க் (வாலியர g @@ -293,6 +298,7 @@ _கல்) க (த்தா kV கொல்) க (த்தா kV மோ) க (ன HV + _லிங்) க (ன kV _வீண்) க (னவ kV _வெல்) க (ம kV தின) க (ர kV @@ -329,7 +335,10 @@ _வலை) க (ாப் k தொல்) க (ாப்பி k மூல) க (ாரண k - @) க (ாரி k + _பூ) க (ாரி k + _பால்) க (ாரி k + _கடை) க (ாரி k +_சமையல்) க (ாரி k _சம) க (ால k அந்திம) க (ால k கோயில்) க (ாளை k @@ -402,6 +411,7 @@ _வி) க்க (ினம்_ gg அ) க்க (ினி gg கோபா) க்க (ினி gg +_கவிதா) க்க (ினி gg _யோ) க்க (ிய gg அயோ) க்க (ிய gg ஆரோ) க்க (ிய gg @@ -491,6 +501,8 @@ _சேஷா) ச (ல tSV _தணிகா) ச (ல tSV அருணா) ச (ல tSV +வெங்கடா) ச (ல tSV +வேங்கடா) ச (ல tSV _) ச (ாணக்கிய tS ச (ாந்தி s. _தே) ச (ாந்திர s @@ -531,6 +543,10 @@ _தணிகா) ச (ல tSV _) சி (நே s _) சி (னே s _) ச (ின் tS + _) சிப் (கள tSip + _) ச (ிப்பு tS + _) ச (ிப்பை tS + _) ச (ிப்ஸ tS சி (ரம s _) சிரு (ஷ்டி sri _) ச (ிற்றம்பல tS @@ -545,6 +561,7 @@ _தணிகா) ச (ல tSV சீ (னிவாச sri: _ஈ) சு s _) ச (ுடிதார tS + _) ச (ுட்டிப் tS _) சு (லோக s கே) சு (வ s மே) சு (வ s @@ -556,7 +573,9 @@ _தணிகா) ச (ல tSV _) சு (வாச s சு (வாதீன s சு (வாமி s + _) சுவாரசி (ய sva:rVs சு (வாரஸ்ய s + _) சு (விட்ச s _) ச (ெட்டிப்பாளைய tS _) ச (ெட்டியார tS ச (ெண்பக s. @@ -568,6 +587,7 @@ _தணிகா) ச (ல tSV _) ச (ெல்லப்ப tS _) ச (ெல்லமா tS _) ச (ெஸ் tS + _கோட்) ச (ே s _) ச (ேனல tS _) ச (ேரி tS _) ச (ேலஞ் tS @@ -587,6 +607,7 @@ _தணிகா) ச (ல tSV ஞ n^V ஞ (B n^ + _கா) ஞ்ச (னா ntSV .group ட ட d.V @@ -605,7 +626,7 @@ _தணிகா) ச (ல tSV அர்ஜெண்) ட t.V# _மில்) ட (ன t.V _) ட (ன் t.V - ிங்) ட (ன் t.V // -ington + ங்) ட (ன் t.V // -ington _) ட (ம்ப்லர t.V _) ட (ம்ப்ளர t.V _) ட (யரில t.V @@ -625,8 +646,13 @@ _தணிகா) ச (ல tSV _) டாங்க (ி t.a:Nk _) டாட (ா t.a:t. அண்) டார்டிக t.a:rt.ikV# + _) ட (ாலமி t. _) ட (ால்ஸ்டாய t. _டியூ) ட (ி t. + _ராயல்) ட (ி t. +_க்வாலி) ட (ி t. +_நாவல்) ட (ி t. + _) டி(ரையல t. _) ட (ிஃபன t. _போர்) ட (ிகோ t. ஆர்) டிக் t.ik @@ -645,10 +671,14 @@ _தணிகா) ச (ல tSV _) டி (ராலி t. _) டி (ராவல t. _) டி (ராவெல t. + _) டிரெயி(லர t.rej _) டி (ரெயின t. _) டி (ரெய்லர t. _) டி (ரெஸ d. _) டிரேயின (ை t.re:jn + _) ட (ிரை_செஞ்ச t. + _) ட (ிரை_செய்ய t. + _) ட (ிரை_பண்ண t. _) டி (ரைவர d. கண்) டி (ரோல t. _) ட (ிவிய t. @@ -661,6 +691,7 @@ _தணிகா) ச (ல tSV _) ட (ெலிவிஷன t. _) ட (ெல்_அவீவ t. // tel aviv _) டெஸ்ட t.est.V# + _) ட (ேக் t. _) டேங்க (ர t.e:NkV _) ட (ேப t. _) ட (ேஸ்ட t. @@ -670,6 +701,7 @@ _தணிகா) ச (ல tSV _) ட (ோக்கன t. _) ட (ோக்கியோ t. _) டோரண்ட (ோ t.o:rVn.t. + _ப்ரி) ட (ோரிய t. _ல) ட்ட d.d.V# _ரெ) ட்ட (ியா d.d. இ) ட்ட (ிலி d.d. @@ -683,6 +715,7 @@ _தணிகா) ச (ல tSV _) ட் (ராவெல t. _) ட்ரெயி (லர t.rej _) ட் (ரெய்லர t. + _) ட் (ரையல t. _பெ) ட் (ரோ t. கண்) ட் (ரோல t. _வீ) ட் (ல t. @@ -793,6 +826,7 @@ _தணிகா) ச (ல tSV _) த (ர்பை dV _) த (ர்ம dV _) த (லித் dV + _) த (வக்கோல dV _) த (வத்த dV _) த (வப் dV _) த (வம dV @@ -822,6 +856,7 @@ _தணிகா) ச (ல tSV _) த (ாவணி d _) த (ாவா d _) த (ாவேய d + _) த (ாஸ d _) த (ிகில d _) த (ிகுதிகு d _) த (ிக்கில d @@ -871,6 +906,7 @@ _தணிகா) ச (ல tSV _) த (ிவால d _) த (ிவ்ய d _) த (ிவ்விய d + _) த (ீக்ஷிதர d _) த (ீட்சண்ய d _) த (ீட்சித d _) த (ீட்சை d @@ -883,8 +919,8 @@ _தணிகா) ச (ல tSV _) த (ீரமில்ல d _) த (ீரமுட d _) த (ீரம்மிக d + _) த (ீரர d _) த (ீரரை d - _) த (ீரர் d _) த (ீர்க d _) த (ீர்க்க t _) த (ீர்க்கமா d @@ -915,6 +951,7 @@ _தணிகா) ச (ல tSV _) த (ூப d _) த (ூம d _) த (ூர d + _) த (ூரன t _) த (ூரிகை t _) த (ூர்_ t _) த (ூர்ந் t @@ -927,6 +964,7 @@ _தணிகா) ச (ல tSV _) த (ேச d _) த (ேவகான d _) த (ேவகி d + _) த (ேவகுல d _) த (ேவக் d _) த (ேவசேன d _) த (ேவதை d @@ -965,6 +1003,7 @@ _தணிகா) ச (ல tSV _மேல்) த (ட்ட tV பிள்ளை) த (ன tV முட்டாள்) த (ன tV + _கௌ) த (ம tV _கௌ) த (மி tV _கீ) த (ா t _சீ) த (ா t @@ -979,6 +1018,7 @@ _தணிகா) ச (ல tSV _புஷ்பல) த (ா t பிரேமல) த (ா t _மும்) த (ாஜ t + _நே) த (ாஜி t _சுல்) த (ான t _முல்) த (ான t _சும) த (ி t @@ -1115,6 +1155,7 @@ _பார்வ) த (ி t _) ப (ங்கார bV _) ப (சவகல்யாண bV _) ப (ச்சன bV + _) ப (ச்சான b _) ப (ஜ bV _) ப (ட்சண bV _) ப (ட்சிக்க bV @@ -1167,6 +1208,7 @@ _பார்வ) த (ி t _) ப (லத்தினுட bV _) ப (லத்துட bV _) ப (லத்தை bV + _) ப (லப்பட bV _) ப (லப்படு bV _) ப (லப்பரீட்சை bV _) ப (லம bV @@ -1191,6 +1233,7 @@ _பார்வ) த (ி t _) ப (ல்பு bV _) ப (ல்பை bV _) ப (ளு bV + _) ப (வன bV _) ப (வாணி bV _) ப (வானி bV _) பவுண்ட (ன faUn.t.V @@ -1202,6 +1245,7 @@ _பார்வ) த (ி t _) ப (ஹ்ரெய bV _) ப (ாகங்க b _) ப (ாகத b + _) ப (ாகப் b _) ப (ாகம b _) ப (ாகவதர b _) ப (ாகீரதி b @@ -1267,6 +1311,7 @@ _பார்வ) த (ி t _) ப (ாலின் p _) ப (ாலியத்த b _) ப (ாலிவுட் b + _) ப (ாலுசாமி b _) ப (ாலுடன் p _) ப (ாலும்_ p _) ப (ாலுவ b @@ -1276,10 +1321,13 @@ _பார்வ) த (ி t _) பால்க (னி ba:lkV _) ப (ால்ய b _நேய_) ப (ாவ b + _ராக_) ப (ாவ b _சிநேக_) ப (ாவ b _சினேக_) ப (ாவ b _முக_) ப (ாவ b _முகத்தின்_) ப (ாவ b +_ராகங்களின்_) ப (ாவ b +_ராகத்தின்_) ப (ாவ b முகங்களினுடைய_) ப (ாவ b முகங்களின்_) ப (ாவ b முகங்களிலிருந்த_) ப (ாவ b @@ -1290,6 +1338,7 @@ _முகத்தின்_) ப (ாவ b _) ப (ாவனா b _) ப (ாவனை b _) ப (ாவிக்கப்பட b + _) ப (ாவிக்கின்ற b _) ப (ாவிக்கிற b _) ப (ாவிக்கும்போத b _) ப (ாவித்த b @@ -1312,11 +1361,13 @@ _முகத்தின்_) ப (ாவ b _) ப (ிங்கர்_ f _) ப (ிசினஸ b _) ப (ிசிய b + _) ப (ிட்டடி b _) ப (ினாமி b _) ப (ினிஷ f _) ப (ின்லாந்த f _) ப (ிபிசி b // bbc _) ப (ிம்ப b + இயற்) ப (ியல b _) பி (யூனஸ்_ b _) ப (ிரகதீ b _) பி (ரகதீ b @@ -1329,6 +1380,7 @@ _முகத்தின்_) ப (ாவ b _) பி (ரசங் p _) பி (ரசன்ந p _) பி (ரசன்ன p + _) பி (ரசல்ஸ b _) பி (ரசவ p _) பி (ரசாத p _) பி (ரசாந்தி p @@ -1373,6 +1425,7 @@ _முகத்தின்_) ப (ாவ b _) பி (ரவேச p _) பி (ரவேசி p _) பி (ரஷ்ட p + _) பி (ரஸல்ஸ b _) பி (ரஸாத p _) பி (ரஸ்தா p _) பி (ரஹலாத p @@ -1402,12 +1455,14 @@ _முகத்தின்_) ப (ாவ b _) பி (ரார்தன p _) பி (ரார்தி p _) பி (ரார்த்த p + _) பி (ராவ b _) பி (ராவின b _) பி (ராவிற் b _) பி (ராவில b _) பி (ராவுக்கு b _) பி (ராவை b _) பி (ரிட b + _) பிரிட (ோரிய prit. _) ப (ிரித்தானி b _) பி (ரித்தானி b _) பிரின்சிப (ால prinsip @@ -1513,6 +1568,7 @@ _முகத்தின்_) ப (ாவ b _) ப (ெங்கால b _) பெஞ்ச bentSV# _) ப (ெஞ்சமின b + _) பெஞ்ச (மின ben^dZV _) பெட்ட (ுக்கு bed.d. _) ப (ெட்ரூம b _) ப (ெப்ரவரி f @@ -1557,8 +1613,10 @@ _சந்திர_) ப (ோஸ b _) பௌண்ட (ன faUn.t.V _) ப (ௌதிக b _) ப (ௌத்த b + _) ப் (ரசல்ஸ b _) ப் (ரம்ம b _) ப் (ரவுச b + _) ப் (ரஸல்ஸ b _) ப் (ராவ b _) ப்ரிஸ்ப (ேன brisb _) ப் (ரெஞ்ச் f @@ -1634,6 +1692,7 @@ _சந்திர_) ப (ோஸ b _ஒலி) ப (ரப் pV _ஒளி) ப (ரப் pV வீர) ப (ராக்கிரம pV + ஆ) ப (ரேஷன pV கரம்) ப (ற் pV ப (ற்றி_ pV _பக்கப்) ப (ல bV @@ -1685,10 +1744,12 @@ _ப்ரின்சி) ப (ால p கோ) ப (ி p சித்தப்) பி(ரமை b _கன்) ப (ிகர f + ஆ) பி (கராம b _பசி) ப (ிக் f கண்டு) ப (ிடி p திமிர்) ப (ிடி p ராவல்) ப (ிண்டி p + அன்) ப (ின் b ர்) ப (ின்_ b @) ப (ின்_ p ம்) ப (ின்_ b @@ -1703,6 +1764,7 @@ _ப்ரின்சி) ப (ால p பி (ரத p வீண்) பி (ரமை b துஷ்) பி (ரயோக p + ஆ) பி (ரஹாம b பயப்) பி (ராந்தி b மனப்) பி (ராந்தி b பி (ராய p @@ -1713,6 +1775,7 @@ _ப்ரின்சி) ப (ால p ப (ிறகு+ p தேய்) ப (ிறை p வளர்) ப (ிறை p + _சிம்) ப (ிள p சிறு) ப (ிள்ளை p ஆண்) ப (ிள்ளை p பெண்) ப (ிள்ளை p @@ -1727,6 +1790,7 @@ _ப்ரின்சி) ப (ால p வில்லி) ப (ுத்தூர p ம்) ப (ுரா b _தர்ம) ப (ுரி p + _மர) ப (ுரிமை b இன்) ப (ுற b _துன்) ப (ுற b ப (ுறK p @@ -1736,6 +1800,8 @@ _ப்ரின்சி) ப (ால p அ) ப (ூர்வ b இன்ஸ்) ப (ெக்டர p இளம்) ப (ெண் p + _வட) ப (ெண்ணை p + _தென்) ப (ெண்ணை p _கம்) ப (ெனி p இடம்) ப (ெயர p _புலம்) ப (ெயர p @@ -1751,10 +1817,10 @@ _ப்ரின்சி) ப (ால p _வெல்) ப (ேர f ப (ேரில்_ p ப (ேர்_ p + _வன்) ப (ொரு p + _மென்) ப (ொரு p _பழம்) ப (ொருள p _தொல்) ப (ொருள p - வன்) ப (ொருள் p - மென்) ப (ொருள் p வீண்) ப (ொழுத p ப (ொழுதிலா_+ p ப (ொழுதிலும்_+ p @@ -1798,6 +1864,7 @@ _ப்ரின்சி) ப (ால p _கம்) ப (ோஸ p _டே) ப (் p ஆ) ப் (கானிஸ்தான f +_மைக்ரோசா) ப் (ட f கர்) ப்ப bbV# _நவா) ப்ப bbV# L03) ப்ப (ங்களா bbV @@ -1824,6 +1891,7 @@ _ப்ரின்சி) ப (ால p துர்) ப்ப (ோதனை bb கம்) ப்யூட (ர pjU:t.V _மா) ப் (ள p + ப் (ஸ p //endsort // If ப+ appearing in the middle of a word is followed by ட+ @@ -1922,6 +1990,7 @@ _ப்ரின்சி) ப (ால p ள l.V ள (B l. + _மக்க) ள்த (ொகை t.t .group ழ ழ z.V @@ -1983,9 +2052,12 @@ _ப்ரின்சி) ப (ால p இ (ராட்சஷ இ (ராணி இ (ராணுவ + இ (ராதாகி + இ (ராதாவ இ (ராத்த இ (ராப்பிச்சை இ (ராம + இ (ராமல்_ i இ (ராயபுர இ (ராவண இ (ராவுத்த @@ -1997,6 +2069,7 @@ _ப்ரின்சி) ப (ால p இ (லட்சம இ (லட்சா இ (லட்சிய + இ (லட்சுமி இ (லண்டன இ (லவங்க இ (லாப diff --git a/phsource/compile_report b/phsource/compile_report index f2b77608..f0fe0a52 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -17,7 +17,7 @@ consonants 9 115 jbo 2 114 nci 3 123 fi 40 133 - fr 58 140 + fr 59 140 fr-ca 11 140 hi 59 150 ta 21 153 @@ -300,6 +300,7 @@ klatt/m [m] base klatt/m_ [m] base klatt/m-syl [m-] base klatt/n [n] base + [n] fr klatt/n^ [n^] base klatt/n^@ [n^] base klatt/nn [N] base @@ -346,7 +347,7 @@ l/l_ [l] base [l/] fr l/l_@ [l/3] base [l/] fr -l/l@ [há] base +l/l@ [hVt] base [l#] base [l] fr [l/2] fr @@ -379,14 +380,14 @@ 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á] base +l/la [hVt] base [l#] base [l] fr [l/2] fr [K] nso l/l_a [l/3] base [l/] fr -l/le [há] base +l/le [hVt] base [l#] base [l] fr [l/2] fr @@ -397,7 +398,7 @@ l/L_eL_af [&] af [&:] af l/l_front [L] sq l/l_front_ [l/4] sq -l/li [há] base +l/li [hVt] base [l#] base [l] fr [l/2] fr @@ -410,7 +411,7 @@ ll/ll [L] bg ll/_ll [L] bg l/l_long [l] base [l] fr -l/lo [há] base +l/lo [hVt] base [l#] base [l] fr [l/2] fr @@ -418,7 +419,7 @@ l/lo [h l/l_o [l/3] base [l/] fr l^/l_rfx [l.] base -l/lu [há] base +l/lu [hVt] base [l#] base [l] fr [l/2] fr @@ -455,32 +456,39 @@ n^/n^_ [n^] base n^/n^@ [n^] base n^/n^#_ [n^#] is n/_n [n] base + [n] fr [n] zh n/n_ [n] base n/n@ [n] base [n.] base + [n] fr [n#] is [n] zh n/n#_ [n#] is n^/n^a [n^] base n/na [n] base [n.] base + [n] fr [n#] is [n] zh n^/n^e [n^] base n/ne [n] base [n.] base + [n] fr [n#] is [n] zh n^/n^i [n^] base n/ni [n] base [n.] base + [n] fr [n#] is [n] zh nn/inn [N] base n/nj [n] base [n.] base -n/n_long_ [n] zh + [n] fr +n/n_long_ [n] fr + [n] zh nn/_nn [N] base [N] zh nn/nn_ [N] base @@ -510,6 +518,7 @@ nn/nnu [N] base n^/n^o [n^] base n/no [n] base [n.] base + [n] fr [n#] is [n] zh n/_nr [n.] base @@ -518,6 +527,7 @@ n/n-syl [n-] base n^/n^u [n^] base n/nu [n] base [n.] base + [n] fr [n#] is [n] zh r/@_ [V#] de diff --git a/phsource/ph_french b/phsource/ph_french index 7de54e40..71ee67ba 100644 --- a/phsource/ph_french +++ b/phsource/ph_french @@ -1,7 +1,7 @@ //==================================================== // French //==================================================== -// Updated 2010-07-25 Michel Such +// Updated 2010-11-19 Michel Such phoneme #l virtual // Used for l and l/ @@ -702,6 +702,35 @@ phoneme k endphoneme +phoneme n + vcd alv nasal + Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk + lengthmod 4 + + IF KlattSynth THEN + Vowelin f1=0 f2=1500 -200 200 f3=0 80 + FMT(klatt/n) + ENDIF + + NextVowelStarts + VowelStart(n/n@) + VowelStart(n/na) + VowelStart(n/ne) + VowelStart(n/ni) + VowelStart(n/no) + VowelStart(n/nu) + EndSwitch + + IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN + FMT(n/nj) + ELIF prevPh(isPause) OR prevPh(n) THEN + FMT(n/_n) + ELIF nextPh(isNotVowel) THEN + length 120 + FMT(n/n_long_) + ENDIF +endphoneme + phoneme n2 vcd alv nasal @@ -726,10 +755,10 @@ phoneme p ELIF nextPh(@-) THEN WAV(ustop/p_unasp, 70) ELIF nextPh(#l) THEN - WAV(ustop/pl, 40) + WAV(ustop/pl, 50) ELIF nextPh(#r) THEN length 40 - WAV(ustop/p_, 70) + WAV(ustop/p_, 80) ENDIF WAV(ustop/p_unasp_, 90) endphoneme @@ -761,6 +790,7 @@ phoneme s ELIF nextPh(p) OR nextPh(t) OR nextPh(k) THEN WAV(ufric/s!, 45) ENDIF + WAV(ufric/s, 45) endphoneme @@ -797,7 +827,7 @@ phoneme t WAV(ustop/t_, 40) ELIF nextPh(#r) THEN length 40 - WAV(ustop/t_short_, 40) + WAV(ustop/t_short_, 50) ENDIF WAV(ustop/t_short, 40) diff --git a/phsource/ustop/percus02.wav b/phsource/ustop/percus02.wav new file mode 100644 index 0000000000000000000000000000000000000000..f6c1f1fe302392ab53e65b1c9ee5b1aa35149109 GIT binary patch literal 1664 zcmYLJdu$YC5TD(>yWQDqS3q%j{=piYgR>7)q>WptA1EYmgNX&F35mxhNjIP8N*ZFG^T zXLSF6-AsNO-x4ulDMZj)rsvEKeW$_9%&V6pS$&$5Onh)IcnUR}=t;3OVSBzJhS)FB#t1k3G$(|B1 zBs(=>k|IC*H~&EX3}+eYmPzbyK8M7}6y#hvrq#Z7^uww0-p+ns-3?F$bax%vI= zAMc-3zO|kW9w?iw@Rgkkd7Q5cCuW|WC>x6Rc3t_afAyWO)rI!+zE>i>r88w)=jRqG zPEJct)DHjFKiJ4!&N2D+>aoR>m*TrYvi9Wc z%j?WDd72$H@+VwpviJVH@z+Mp7+)USt8C}qacCMA+e&iIn+ zQtv2&HUQrV0m~_|NLnNAGV{V(m{up0y4l02D=AL-Ctb`MxgA2EX`8vx95o#ke&x=y zdun_7oN`d{q&f95?KpdaJHdAfHq&LnCaBz>aFiX?`qdWoJ@pT@Mcc&IKsk4gV_X)0 zovY)1fkN2N!mL;ONsDUbtes7;h0qB5p#$E96|ewY_zSmy4Xn7c@f1PAGh3G|$U^PJ zh=kjTenJ1g8ecv-X0KjXy@w~Iz2cG K&6=azHux7vd5-x2 literal 0 HcmV?d00001 diff --git a/phsource/vdiph2/8@ b/phsource/vdiph2/8@ new file mode 100644 index 0000000000000000000000000000000000000000..3cc72a479b280880f6b95362bea43fc9b936f2bd GIT binary patch literal 4534 zcmeH~c~lff0>*pl?(XTH9++WN$GM@Id!K z_cB*r7Any;UIoDy_<{ni6bOtB0gTlui1$T0rd0DP2)#frP^(PTqQOK>5O#rGzbO1w z;X$)n<-zkW)F@-!8!P_a^_AF~PR|ejUmGv3hN!QiX2lf8xh8y^;7FJsUmSlU;ng<5 z?Ixw1aXfS!PbqHqUK`JZH8F!*kBHb4)-gm3st&N)#``_-DYUlqzSv@^=M;}m-2L2{ zdxrZR_cD)5p5L_S@7339b&D9!c=sEwQ<`?Qylr+hF=wk&rg5US%iv)sRadCn)C=k} zl^E`-pQ~@EMs>MjRp#ldp@&f?iHwuW6}E@F(BCdP|KaUbi$uF>JtM9-3aWH0%gtRQ*BN-p57cs(w~-{I@H z0zbnBVkbRF0r>|}X&N0x3wRkx9hB0|#6foB=C~J{1SL2TMxrAq5zoeZ@CE!mfBQT> zfe+#Rcpv@>e~Gu?Wq2wcf-`Xfj>d^N1NX4n2hllHj=tyR2CuhJ1*%3EE7%E}cvUdM)#xF5fSw?NU9b(u z;&j{%Cq6neh$F@i&O7#~ZJ`>TYmSDzcc>Nld5R!NOMnZk<^8s9n7}~3u`_56YI)c2 zJYfbBOmX0nu9o+5ngeEt`N}2TC0#Au*-9G7*9&r;GE1ufi`0CvPO14|ch`Jeqcq^1 zk6T~y_x7!){1NYa!bi4DiX73pNA#4KX0e-M&GAbU@3+lNVQC+y-$^e^o8{==?%Sl) zcoyT997mT^ORy`m2yD2 zt;njTK2&xp1C@vR33{L}l!N3mQjwG?A?Xt_QQXhc*%>;GzQkuj7N>eTokv&Fb#x~^ zNg+#P%NY`fhzG>x(m-jhv{Bk3Etm48E>bh;oH$SHBv!E%%)##QIW(4L(;PmVis)*( ziGD^mbFG-GnY1}A=d)xJ*-x&K3UYybM3Tw3cp#_mGCGZ}b7m;kW05nY!w}1yA9w7A zjralDkEWprbP^7O&hR2A=S*~l)8Q6)3RXad%*d4&7o;H(0rVK&gx|uoa6D`WHFyi0 zN5dWP2R@<`QcxAV0{8Ns z(_t>`4ilgsAFUEx28Y3CUJqkHTv(vGPpI(i*Hd z@5PI3wXNUf9n|yphP+qnavSmPj;A)_J%TOLHROH0vP9RA_bg3Ajd}0H8uK2}p8I<} zx@&&|oe{mRcljbusd6gj+;v%)4iz1)r&px*PwAKZb7DqZ zZq&kvR$()O*9K0sZwRQeh1t^m`}r;PjrHx}d&l>dpS!I~Kv(;Z_DXwC`_DG!ztE?` zE7@~{TdJ!|(*Vm{^DCy|&g-3kQ*UFb)=qnBcx13^leKa!(Kyw(#dySc)VRTzW4y0* z(((=S)z!)-{T}(0bXSzcVD=h4L#B~_B!#pf<@iJHPFK)sv=UuInfMsaBL5laqK*On+EU^=aBw<#56LPd`ONG z$XAr^bTBWSsTaM#oj;QM>|ETF)BFS4&OJ62spvbnjMJD2lb{3kg>S(k?y*Ijzf?~6 zd9WT7fRSJj7!1aPkHJ;o3kSi)@M~BO?{hwn!xH#9=kWyZ;{q<|s&x+V0XPJ1fk)sT zpB*=W0yE%8@G;Cli_m4{hCAUA_#HeCFXZdQ3_J!8#(i)WuLE!n&cnla$>Xa>4$j6e zm>(6Z;(#{OQHfbxY>R_E^&WD6P)w5~7w-HwL|=TN>=_zQn;!_sv_ML}QZ-9<{0 z?gM?2RHuAtCb7V%S-%5KtGJWH)2E@T4!39Ug} zP$lYsi+Bd9;5o=jqDeP0k}M!!k=w*V<7gkAhi3AXW))v4zMu!_A%0#$2T(=}iH;1y zM^PHO%E^Bnra^D`1f1k9eHIwuOMJGRgw;?(&PYZCnNR}CM@Kp7*?1A&g?HjYPVsiW zDvX07lwm)(2fCtcv>5F}=lN_u%enp(%|TPqWK@9WqZMcsT7nAEM4o+KMOmm9uf5SL zs1HB)Mt%94d1x%}U5FN-k9gn2$7k&kzv2D&^Gv^AW`Q8QC6v;}yyvUk8}J^AlZ^fi zc#jhE>(O1qd%nK3UV5qFeTphH;=Q+P(x2qL^^5=fZGQhh@BibxS1k_vmG`2^y)Q_q zZ8Xg9b-a%eN=Y5>3K%HpL6Xw*1@CRSzmLO7n&%7NlUb^+nhEuIe_x5z;I# zhgw6Yg=7TJ3Cs@I>$l%Jx5X&;b*^KY9=FVOdEZ=Oy6T+moa$WQESu(=oXvyHv(4|C zhnhpo*G+Rw5vIM)t(^;;b{W6cJ~O(f^ z>?YQUO<)_@Gd4ktmBM6)exNd3?PsuQUu$v3$;PF|4~zqiF2;>othUWyGt5z+DnpdB z`o8){d{xMobLAoOV7b5CMQ$xyi{m z)cqYi1kXbmrEpK($#;ep+!l|<+c6`(NeQ`0JouhBo4!fkGRk(* zZuAsSWdh#~oWOUnO58{jepiN9;gNhNo5GXIJA4gsB3Wb+InDRc(X7P zjXV~yj3UL8$YO%p9F;W9k0C{siwOyXT8nrV8R{*XvxsoZh3A8!LszjRI{2jqjUt1_ z0poE>F;hk1|47P}bWdKv&c|ElR;@iWVe1Y5X+p+!PJGICTSR7cNFzPV&0NEhSz@Wj!!193c0V4||0|N*%FudY!U_uso z_dkJ;0Y!v?;eqr420x(K7oZLhW?e zVWObqWC>P*dIl~lrcF%9PG#UQVA_G=R0ft;j7dx=PGv=Q7|5yUjt4rG8CA^#X$D4A PcQHs}IMqRZ;=OAC2s%X| diff --git a/src/Makefile b/src/Makefile index 4fb26d13..c3870b66 100644 --- a/src/Makefile +++ b/src/Makefile @@ -50,13 +50,13 @@ endif speak_SOURCES = speak.cpp compiledict.cpp dictionary.cpp intonation.cpp \ readclause.cpp setlengths.cpp numbers.cpp synth_mbrola.cpp \ synthdata.cpp synthesize.cpp translate.cpp mbrowrap.cpp \ - tr_languages.cpp voices.cpp wavegen.cpp phonemelist.cpp klatt.cpp + tr_languages.cpp voices.cpp wavegen.cpp phonemelist.cpp klatt.cpp sonic.cpp libespeak_SOURCES = speak_lib.cpp compiledict.cpp dictionary.cpp intonation.cpp \ readclause.cpp setlengths.cpp numbers.cpp synth_mbrola.cpp \ synthdata.cpp synthesize.cpp translate.cpp mbrowrap.cpp \ tr_languages.cpp voices.cpp wavegen.cpp phonemelist.cpp \ - espeak_command.cpp event.cpp fifo.cpp $(WAVE) debug.cpp klatt.cpp + espeak_command.cpp event.cpp fifo.cpp $(WAVE) debug.cpp klatt.cpp sonic.cpp SRCS1=$(speak_SOURCES) OBJS1=$(patsubst %.cpp,%.o,$(SRCS1)) diff --git a/src/Makefile.espeakedit b/src/Makefile.espeakedit index 861676bd..5257d09d 100644 --- a/src/Makefile.espeakedit +++ b/src/Makefile.espeakedit @@ -6,7 +6,7 @@ SRCS= compiledata.cpp compiledict.cpp debug.cpp dictionary.cpp espeak_command.cp prosodydisplay.cpp readclause.cpp setlengths.cpp speak_lib.cpp spect.cpp \ spectdisplay.cpp spectseq.cpp synthdata.cpp synthesize.cpp synth_mbrola.cpp \ translate.cpp transldlg.cpp tr_languages.cpp voicedlg.cpp voices.cpp vowelchart.cpp \ - wave.cpp wavegen.cpp + wave.cpp wavegen.cpp sonic.cpp OBJS=$(patsubst %.cpp,%.o,$(SRCS)) diff --git a/src/dictionary.cpp b/src/dictionary.cpp index 93a9a2cd..47ba7181 100644 --- a/src/dictionary.cpp +++ b/src/dictionary.cpp @@ -3338,7 +3338,7 @@ int LookupDictList(Translator *tr, char **wordptr, char *ph_out, unsigned int *f } else { - flags[0] &= ~FLAG_SKIPWORDS; +// flags[0] &= ~FLAG_SKIPWORDS; // check lang=hu január 21.-ig (error: suffix repeated ??) } ph_out[0] = 0; diff --git a/src/numbers.cpp b/src/numbers.cpp index af663767..e7b63f1d 100644 --- a/src/numbers.cpp +++ b/src/numbers.cpp @@ -1361,6 +1361,7 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null int ix; int exact; int ordinal; + int say_zero_hundred=0; char string[12]; // for looking up entries in **_list char buf1[100]; char buf2[100]; @@ -1379,7 +1380,12 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null ph_thousands[0] = 0; ph_thousand_and[0] = 0; - if(hundreds > 0) + if((tr->langopts.numbers & NUM_ZERO_HUNDRED) && ((control & 1) || (hundreds >= 10))) + { + say_zero_hundred = 1; // lang=vi + } + + if((hundreds > 0) || say_zero_hundred) { found = 0; if(ordinal && (tensunits == 0)) @@ -1420,14 +1426,14 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null sprintf(ph_thousands,"%s%s",ph_digits,ph_10T); hundreds %= 10; - if(hundreds == 0) + if((hundreds == 0) && (say_zero_hundred == 0)) ph_100[0] = 0; suppress_null = 1; } ph_digits[0] = 0; - if(hundreds > 0) + if((hundreds > 0) || say_zero_hundred) { if((tr->langopts.numbers & NUM_AND_HUNDRED) && ((control & 1) || (ph_thousands[0] != 0))) { @@ -1452,28 +1458,35 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null } } - if((!found) && (tensunits == 0)) + if((hundreds == 0) && say_zero_hundred) { - // is there a special pronunciation for exactly n00 ? - sprintf(string,"_%dC0",hundreds); - found = Lookup(tr, string, ph_digits); - } - - if(!found) - { - sprintf(string,"_%dC",hundreds); - found = Lookup(tr, string, ph_digits); // is there a specific pronunciation for n-hundred ? - } - - if(found) - { - ph_100[0] = 0; + Lookup(tr, "_0", ph_digits); } else { - if((hundreds > 1) || ((tr->langopts.numbers & NUM_OMIT_1_HUNDRED) == 0)) + if((!found) && (tensunits == 0)) { - LookupNum2(tr, hundreds, 0, ph_digits); + // is there a special pronunciation for exactly n00 ? + sprintf(string,"_%dC0",hundreds); + found = Lookup(tr, string, ph_digits); + } + + if(!found) + { + sprintf(string,"_%dC",hundreds); + found = Lookup(tr, string, ph_digits); // is there a specific pronunciation for n-hundred ? + } + + if(found) + { + ph_100[0] = 0; + } + else + { + if((hundreds > 1) || ((tr->langopts.numbers & NUM_OMIT_1_HUNDRED) == 0)) + { + LookupNum2(tr, hundreds, 0, ph_digits); + } } } } @@ -1484,9 +1497,12 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null ph_hundred_and[0] = 0; if(tensunits > 0) { - if((tr->langopts.numbers & NUM_HUNDRED_AND) && ((value > 100) || ((control & 1) && (thousandplex==0)))) + if((value > 100) || ((control & 1) && (thousandplex==0))) { - Lookup(tr, "_0and", ph_hundred_and); + if((tr->langopts.numbers & NUM_HUNDRED_AND) || ((tr->langopts.numbers & NUM_HUNDRED_AND_DIGIT) && (tensunits < 10))) + { + Lookup(tr, "_0and", ph_hundred_and); + } } if((tr->langopts.numbers & NUM_THOUSAND_AND) && (hundreds == 0) && ((control & 1) || (ph_thousands[0] != 0))) { @@ -1622,8 +1638,9 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned word[ix] = 0; } - if(ordinal == 0) + if((ordinal == 0) || (tr->translator_name == L('h','u'))) { +// NOTE lang=hu, allow both dot and ordinal suffix, eg. "december 21.-én" // look for an ordinal number suffix after the number ix++; hyphen = 0; diff --git a/src/synthdata.cpp b/src/synthdata.cpp index d9689d68..0f746359 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.44.18 03.Dec.10"; +const char *version_string = "1.44.19 20.Dec.10"; const int version_phdata = 0x014415; int option_device_number = -1; diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp index 346f9902..313da652 100644 --- a/src/tr_languages.cpp +++ b/src/tr_languages.cpp @@ -1207,7 +1207,7 @@ SetLengthMods(tr,3); // all equal tr->letter_groups[0] = tr->letter_groups[7] = vowels_vi; tr->langopts.tone_language = 1; // Tone language, use CalcPitches_Tone() rather than CalcPitches() tr->langopts.unstressed_wd1 = 2; - tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_HUNDRED_AND | NUM_DFRACTION_4; + tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_HUNDRED_AND_DIGIT | NUM_DFRACTION_4 | NUM_ZERO_HUNDRED; } break; diff --git a/src/translate.h b/src/translate.h index 38eba700..5da4ffaa 100644 --- a/src/translate.h +++ b/src/translate.h @@ -395,13 +395,14 @@ typedef struct { #define NUM_NOPAUSE 0x20000 #define NUM_AND_HUNDRED 0x40000 #define NUM_THOUSAND_AND 0x80000 -#define NUM_VIGESIMAL 0x100000 +#define NUM_VIGESIMAL 0x100000 #define NUM_OMIT_1_THOUSAND 0x200000 - -#define NUM_ROMAN 0x1000000 +#define NUM_ZERO_HUNDRED 0x400000 +#define NUM_HUNDRED_AND_DIGIT 0x800000 +#define NUM_ROMAN 0x1000000 #define NUM_ROMAN_CAPITALS 0x2000000 -#define NUM_ROMAN_AFTER 0x4000000 -#define NUM_ROMAN_ORDINAL 0x8000000 +#define NUM_ROMAN_AFTER 0x4000000 +#define NUM_ROMAN_ORDINAL 0x8000000 // bits0-1=which numbers routine to use. // bit2= thousands separator must be space @@ -423,6 +424,8 @@ typedef struct { // bit19= 'and' after thousands if there are no hundreds // bit20= vigesimal number, if tens are not found // bit21= omit "one" before "thousand" + // bit22= say "zero" before hundred + // bit23= add "and" after hundreds and thousands, only if there are digits and no tens // bit24= recognize roman numbers // bit25= Roman numbers only if upper case