diff --git a/dictsource/de_list b/dictsource/de_list index 1c1d9030..b3e32aac 100644 --- a/dictsource/de_list +++ b/dictsource/de_list @@ -379,6 +379,7 @@ noch $pause (noch nicht) n'Ox||n,ICt $brk (nicht mehr) n'ICt||,me:* (nicht mehr) n,ICt||m'e:* $atend +(nicht nur) nICt||nu:* $pause (gar nicht) g,A:*n'ICt // should these be in the Rules because they can be a prefix in a diff --git a/dictsource/de_rules b/dictsource/de_rules index 071a0c5d..ed9d095e 100644 --- a/dictsource/de_rules +++ b/dictsource/de_rules @@ -22,6 +22,8 @@ _) abzu 'abtsu: _) an (@P2 'an _) an (der an + _) anti (@P4 ,antI + _) an (tw an _) auf (@P3 'aUf _) aus (@P3 'aUs diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index 75db70fc..cc19b5ae 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -138,10 +138,10 @@ t.h th v w x z Dictionary hr_dict -& 8 @ @- @2 a A a: -aI aU E e e: eI i I -i: iI l- o o: oI oU O~ -r- u U u: uI +& @ @- @2 a A a: aI +aU E e e: eI i I i: +iI l- o o: oI oU O~ r- +u U u: uI * b d dZ dZ; f g h j k l l^ m n N n^ @@ -222,21 +222,6 @@ s# s; t tS ts v w x z Z -Dictionary ro_dict - -@ @- @I @U a aI aU e -ea eI eo eU i i/ I^ iI -iU o Oa oI oU u uI y -Y yI yU - -* *; b b; C d d; dZ -f f; g h j k l l; -m m; n N n; p p; r -s S s; S; t t; tS ts -ts; v v; w w2 z Z z; -Z; - - Dictionary ru_dict 8 @- A a E e E# E2 @@ -309,6 +294,21 @@ l m n N p r s t tS v w z +Dictionary ro_dict + +@ @- @I @U a aI aU e +ea eI eo eU i i/ I^ iI +iU o Oa oI oU u uI y +Y yI yU + +* *; b b; c C d d; +dZ f f; g h j k l +l; m m; n N n; p p; +r s S s; S; t T t; +tS ts ts; v v; w w2 z +Z z; Z; + + Dictionary is_dict & @- a aI aU e E eI diff --git a/dictsource/hr_list b/dictsource/hr_list index 21a17003..467b74cb 100644 --- a/dictsource/hr_list +++ b/dictsource/hr_list @@ -20,13 +20,13 @@ m m@ n n@ nj n^@ p p@ -q kv@ // new -r R@ // new +q kv@ +r R@ _s s@ š S@ t t@ v v@ -w dv'ost@-*Uko||v@ +w dvost@-*uko||v@ x iks y ipsilon z z@ @@ -365,3 +365,4 @@ u u $atend utf u||te||ef + diff --git a/dictsource/hr_rules b/dictsource/hr_rules index f01f7760..6c591c50 100644 --- a/dictsource/hr_rules +++ b/dictsource/hr_rules @@ -71,7 +71,6 @@ o o ou oU oj (K oI - &) o (r_ 8 .group p p p @@ -87,7 +86,7 @@ rr R r (_ R - K) r (K r- + K) r (K 'r- .group s @@ -195,3 +194,4 @@ ώ omeg&_||tonos ό omi_k@-*on_||tonos + diff --git a/dictsource/hu_list b/dictsource/hu_list index e8f80134..6d27a1a8 100644 --- a/dictsource/hu_list +++ b/dictsource/hu_list @@ -78,7 +78,7 @@ ha $u $pause // if // Negative -nem $u+ +nem $alt2 $strend ne $u+ diff --git a/dictsource/hu_rules b/dictsource/hu_rules index 2cec9ec8..bbda0f9e 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -130,6 +130,7 @@ _minde) gy (ik J: ny (k N ny (g N + _) nem (- n,Em // has $alt2 attribute in hu_list, combine with the next word .group o @@ -236,6 +237,9 @@ _minde) gy (ik J: _ré) zs (ó zS _há) zs (or zS _vá) zs (or zS +_szára) zs (ág zS + _kö) zs (ég zS + .group % sa:zAle:k diff --git a/dictsource/ro_list b/dictsource/ro_list index 74fd6afd..54ea185c 100644 --- a/dictsource/ro_list +++ b/dictsource/ro_list @@ -1,4 +1,5 @@ + // This file in UTF8 encoded // Letters @@ -137,34 +138,42 @@ s.a.m.d Se|aSamaIdeparte // articles un $u o $u -nişte $u -unui $u -unei $u -unor $u -unele $u // some +nişte $u1 +una $u1+ +unul $u1+ +unuia $u1+ +uneia $u1+ +unui $u1 +unei $u1 +unor $u1 +unora $u1+ +unele $u1 // some ăsta $u1+ // this asta $u+ acest $u+ // this +aceşti $u +aceştia $u +acestora $u2+ aceasta $u+ această $u+ acel $u+ // that acea $u+ // that acei $u+ // those -acele $u+ // those +acele $u1+ // those cei $u+ // the, those cel $u+ // that, he who cea $u+ // that, she who -cele $u+ // those +cele $u1+ // those // pronouns eu jeU $u+ tu $u+ el jel $u+ ea ja $u+ -//noi $u+ +noi $u+ voi $u+ ele jele $u+ @@ -183,6 +192,10 @@ se $u mi $u şi $u +însuşi $u1+ +ânsăşi $u1+ +însumi $u1+ + care $u $brk // who that which what ceea $u $brk // that @@ -191,23 +204,23 @@ ceea $u $brk // that meu $u+ mei $u+ mea $u+ -//mele $u+ +mele $u1+ tău $u+ tăi $u+ ta $u+ -tale $u+ +tale $u1+ său $u+ săi $u+ sa $u+ -sale $u+ +sale $u1+ lui $u+ ei jeI $u+ -//nostru $u+ -noştri $u+ -noastră $u+ -//noastre $u+ +nostru $u1+ +noştri noSt*i $u1+ +noastră $u1+ +noastre $u1+ vostru $u+ -voştri $u+ +voştri voSt*i $u1+ voastră $u+ voastre $u+ lor $u+ @@ -277,7 +290,7 @@ nu $u+ // some common adjectives and adverbs aşa $2 $brk // so, thus -orice $u3+ // any +orice $u3+ // any totuşi $1 $brk // never, though, nevertheless totusi $1 $brk // (totuşi) unde $brk // where @@ -337,30 +350,193 @@ trebuie $2 // @- // Final "i" is stressed -absolvi $3 -ciocni $2 -citi $2 -dărui d@*w'i -deosebi $3 -descoperi $4 -deveni $3 -întâlni $3 -izbi $2 -lovi $2 -opri $2 -pocni $2 -răsuci $3 -teori $2 +absolvi $3 +afurisi $4 +agonisi $4 +ameţi $3 +blagoslovi $4 +borbi $2 +boţi $2 +buşi $2 +călăuzi $4 +căptuşi $2 +cârmi $2 +catadicsi $4 +cerşi $2 +ciocni $2 +citi $2 +cloci $2 +cuveni $3 +dărui d@*w'i +deosebi $3 +depăsi $3 +descoperi $4 +desluşi $2 +deveni $3 +dormi $2 +feri $2 +fugi $2 +gândi $2 +găsi $2 +grăbi $4 +greşi $2 +hăcui $3 +îmbâcsi $3 +împărţi $3 +încălzi $3 +încreţi $3 +înghiţi $3 +îngriji $3 +întâlni $3 +înteţi $3 +învârti $3 +izbi $2 +linguşi $3 +lovi $2 +mânji $2 +mirosi $2 +moleşi $3 +necăji $3 +opri $2 +pândi $2 +păşi $2 +păzi $2 +plăti $2 +pocni $2 +povesti $3 +prăbuşi $3 +prăji $2 +primi $2 +răci $2 +râfni $2 +răguşi $3 +răscoli $3 +răspândi $3 +răsuci $3 +risipi $3 +rotunji $2 +săvârşi $3 +sclifosi $3 +sfârşi $2 +sfriji $2 +slobozi $3 +suci $2 +ticsi $2 +trezi $2 +ursi $2 +urzi $2 +veşteji $3 +vrăji $2 + + +// final "a" or "ea" is stressed(verbs) +agonisea $2 +agrea ag@-*e'a +ajuta $3 +alerga $3 +apăra $3 +ataca $2 +băga $2 +călăuzea $4 +călca $2 +cânta $2 +căsca $2 +căuta $2 +cerşea $2 +continua kontinu'a +crea k@-*e'a +credea $3 +creştea $2 +dădea $2 +depista $3 +desfunda $2 +distra $2 +dorea $2 +dormea $2 +făcea $2 +ferea $2 +fugea $2 +furişa $2 +gândea $2 +hăcuia $3 +îmbâcsea $3 +împărţea $3 +încalzea $3 +încărca $3 +încerca $3 +închega $2 +încreţea $3 +înfăşura $4 +înfunda $2 +întâmpla $3 +interesa $4 +înteţea $2 +înteţea $3 +intra $2 +întreba $3 +învârtea $3 +învingea $2 +invita $2 +juca $2 +lăsa $2 +lingea $2 +mânca $2 +mângâia $3 +memora $2 +mergea $2 +merita $3 +negocia negotSi'a +paraliza $4 +părea $2 +pavea pave'a +păzea $2 +pleca $2 +povestea $2 +prepara $3 +răbda $2 +răcea $2 +rămânea $3 +răscolea $3 +răsucea $2 +repara $3 +repera $3 +respira $3 +reuşea $3 +revenea $2 +săpa $2 +scotea $2 +sfărâma $3 +spăla $2 +spera $2 +stăpânea $2 +stătea $2 +strica $2 +sucea $2 +suda $2 +supăra $3 +trăgea $2 +trezea $2 +valora $3 +vâna $2 +vedea $2 +vira $2 +vorbea $2 +zbura $2 // hyphenated contractions (să l) s@l $u (să i) s@I $u (să şi) s@S;I^ $u +(care l) carel $u (să mi) s@m;I^ $u (te am) team $u (te ai) teaj $u -(ne am) team $u +(ne am) neam $u +(n o) no $u +(n aS) naS $u +(n a) na $u +(c o) co $u (l a) la $u (l au) laU $u (l am) lam $u @@ -383,16 +559,22 @@ adventice $3 aer aIer aici a'itSI^ altceva $3 +america $2 +americii $2 +americile $2 apoi $2 artefice $3 asemenea $2 +adu $1 biseric $2 +capete $1 capitol $2 careva $3 cândva $2 câteva $3 +câtorva $3 cerbice $2 ceva $2 cicatrice $3 // @- @@ -401,6 +583,7 @@ chimi $alt chimic $1 complice $2 contrazice $3 +consideră $3 creier $1 // @- deja $2 @@ -411,6 +594,7 @@ destul $2 dincolo $1 director $2 dori $2 +doctor $1 edit $1 egale $2 @@ -427,6 +611,7 @@ filozofii $4 fizic $1 fizicul $1 folosi $3 +fiind fi'ind gastronomi $alt gâgâlice $3 @@ -437,10 +622,17 @@ gimnaziu dZimn'azju imagin $2 înainte yna'inte +legături $3 +legătură $3 +legăturile $3 +înjurătură $4 +înjurături $4 +înjurăturile $4 interzice $3 latice $2 limit $1 + lipsi $2 logic $1 @@ -450,26 +642,40 @@ maximum $1 merit $1 mia m'ia mie m'ie -minum $1 -minumum $1 +minim $1 +minimum $1 murdărie murd@*'ie muzik $1 +mării $1 +mişto $1 +metri met*i nimic $2 novice $2 numai $1 // only +număr $1 +numărul $1 -oareşice $4 +oameni $1 +oareşice oa*eSTSe $4 obişnuit obiSnw'it ocol $2 ordin $1 -orice $3 -ovidiu ovidj'u +dezordine $2 +orice o*I^tSe $2 +oricare o*I^ka*e $3 +oricând o*I^kynd $3 +ovidiu ov'idju pagin $1 parodi pa*od'i parodii $3 plânger $1 +plăcere $2 +plăceri $2 +plăcerilor $2 +polonic $3 +polonicul $3 politic $2 pricin $1 prieten $2 @@ -477,21 +683,31 @@ prietenie p@-*jeten'ie privi $3 propice $2 protocol $4 +promitem $2 regul $1 reguli $1 repede $1 repezi $1 -români romyn'i +români rom'ynI^ rotocol $3 sadic $1 +scrieri $1 +scrierile $1 +scrierilor $1 sâmbătă $1 securice $3 -sergiu sergj'u +secol $1 +secolul $1 +secolele $1 +secolului $1 +secolelor $1 +sergiu s'ergju sigur $1 simbolic $2 spaţiu spatsju +spuneţi sp'unetsI^ tanti tanti târcol $2 @@ -509,3 +725,5 @@ vinovăţii $4 virgulă $1 virus $1 +zarzări $1 + diff --git a/dictsource/ro_rules b/dictsource/ro_rules index d4313a37..46c010c3 100644 --- a/dictsource/ro_rules +++ b/dictsource/ro_rules @@ -71,13 +71,14 @@ eu (_ 'eU ea ea &) ea (_S2q ea - eai eaj + &) eSi eaj eau eaw eoa 'eOa eo eo e (AAA e - &) e (_S1q e + @) eş (_S2t eS +// &) es (_S1q e &C) e (re_ %e _ac) ee (a eI @@ -134,13 +135,11 @@ &) ic (_ =ik &) ice (_ =itSe + &) icile (_ =itSile // ?? + &) icilor (_ =itSilor // ?? &) ing (_ %iNg // foreign words i (t_ 'i - @ic) ii (_S2q ilor - @ic) ilor (_S4q ilor - - .group î î y @@ -172,6 +171,7 @@ m m @) m (i_ m; _) m (-a m +@-_) mi mI^ // ?? .group n @@ -228,12 +228,19 @@ &) sprezece (_S8t sp@-*ez,etSe + @) sem (_S3t sem + @) seră (_S4t se*@ + @) serăm (_S5t se*@m + @) serăţi (_S6t se*@tsI^ + @) seşi (_S4t seSI^ + .group ş ş S @) ş (i_ S; + .group t t t tt (_ t @@ -303,18 +310,18 @@ .group ö Y - - % prosent // ?? + D_) % la_sut@ + % protSent $ dolar + plus - & perlwet + & ampersand @ a*'ond / sleS € 'eU*o - , (D v'irgol@ + , (D v'irgul@ - . puntk + . punkt . (. _: \.) . @@ -327,3 +334,4 @@ *) * (* ** **) * (_ _:: + diff --git a/phsource/compile_report b/phsource/compile_report index 590614f1..f84c47ba 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -474,11 +474,12 @@ 2 vowel/o_3 en_sc 1 vowel/o-_3 en_rp 1 vowel/o_4 en_n + 1 vowel/o-_4 ro 1 vowel/o_6 nl 4 vowel/oe en af de fr 1 vowel/oe_2 no 1 vowel/oe_4 sv - 3 vowel/o_mid fr hu ro + 2 vowel/o_mid fr hu 8 vowel/oo en_sc de eo es el sv no zh_yue 11 vowel/oo_1 en_n en_rp en_wm af fi sk hr vi 3 vowel/oo_2 en_sc cy cs diff --git a/phsource/ph_af b/phsource/ph_af index 86a26eea..e55dc048 100644 --- a/phsource/ph_af +++ b/phsource/ph_af @@ -280,11 +280,12 @@ endphoneme phoneme R liquid - vowelin f1=2 f2=70 -300 300 f3=-300 80 dnt - vowelout f1=2 f2=70 -300 300 f3=-300 80 brk - formants r3/r_trill+r3/r_trill3.wav%55 - before _ r3/r_trill+r3/r_trill3.wav%50 - trill + length 60 + vowelin f1=2 f2=2700 -300 -200 f3=-1300 80 + vowelout f1=2 f2=1700 -300 -200 f3=-1300 80 + formants r3/r_trill+r3/r_trill3.wav%99 + before _ r3/r_trill+r3/r_trill3.wav%99 + trill lengthmod 6 endphoneme diff --git a/phsource/ph_romanian b/phsource/ph_romanian index 6855b9be..aee37195 100644 --- a/phsource/ph_romanian +++ b/phsource/ph_romanian @@ -53,7 +53,7 @@ endphoneme phoneme o vowel starttype (o) endtype (o) length 170 - formants vowel/o_mid + formants vowel/o-_4 endphoneme phoneme u diff --git a/phsource/phonemes b/phsource/phonemes index 20c292b2..67f6809d 100644 --- a/phsource/phonemes +++ b/phsource/phonemes @@ -397,13 +397,14 @@ phoneme R2 // this is [R] from Slovak/Czech lengthmod 6 endphoneme -phoneme R3 // Afrikaans +phoneme R3 // Afrikaans liquid - vowelin f1=2 f2=70 -300 300 f3=-300 80 dnt - vowelout f1=2 f2=70 -300 300 f3=-300 80 brk - formants r3/r_trill+r3/r_trill3.wav%55 - before _ r3/r_trill+r3/r_trill3.wav%50 - trill + length 60 + vowelin f1=2 f2=2700 -300 -200 f3=-1300 80 + vowelout f1=2 f2=1700 -300 -200 f3=-1300 80 + formants r3/r_trill+r3/r_trill3.wav%99 + before _ r3/r_trill+r3/r_trill3.wav%99 + trill lengthmod 6 endphoneme diff --git a/phsource/vowel/8_2 b/phsource/vowel/8_2 index 900e9e2b..4bf827d5 100644 Binary files a/phsource/vowel/8_2 and b/phsource/vowel/8_2 differ diff --git a/phsource/vowel/o-_2 b/phsource/vowel/o-_2 index 4528be62..51d7ab01 100644 Binary files a/phsource/vowel/o-_2 and b/phsource/vowel/o-_2 differ diff --git a/phsource/vowel/o-_3 b/phsource/vowel/o-_3 index e7cd0ad6..fc1e4f4f 100644 Binary files a/phsource/vowel/o-_3 and b/phsource/vowel/o-_3 differ diff --git a/phsource/vowel/o-_4 b/phsource/vowel/o-_4 new file mode 100644 index 00000000..6057a310 Binary files /dev/null and b/phsource/vowel/o-_4 differ diff --git a/phsource/vowel/vowelchart.png b/phsource/vowel/vowelchart.png index 167950c9..b57de6d3 100644 Binary files a/phsource/vowel/vowelchart.png and b/phsource/vowel/vowelchart.png differ diff --git a/src/dictionary.cpp b/src/dictionary.cpp index 7dab1cea..1afc59f2 100755 --- a/src/dictionary.cpp +++ b/src/dictionary.cpp @@ -892,6 +892,7 @@ void Translator::SetWordStress(char *output, unsigned int dictionary_flags, int int mnem; int post_tonic; int opt_length; + int done; unsigned char vowel_stress[N_WORD_PHONEMES/2]; char syllable_type[N_WORD_PHONEMES/2]; @@ -1131,6 +1132,7 @@ void Translator::SetWordStress(char *output, unsigned int dictionary_flags, int } #endif + done = 0; for(v=1; vlangopts.vowel_pause = 0x20; tr->langopts.stress_rule = 0; - tr->langopts.stress_flags = 0x36; + tr->langopts.stress_flags = 0x8036; tr->langopts.unstressed_wd1 = 2; tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x4; // don't propagate over word boundaries tr->langopts.param[LOPT_IT_DOUBLING] = 1; + tr->langopts.param[LOPT_COMBINE_WORDS] = 99; // combine some prepositions with the following word tr->langopts.long_stop = 130; tr->langopts.numbers = 0x1809; @@ -347,7 +348,7 @@ Translator *SelectTranslator(const char *name) tr = new Translator(); SetupTranslator(tr,stress_lengths_is,stress_amps_is); - tr->langopts.stress_rule = 1; + tr->langopts.stress_rule = 0; tr->langopts.stress_flags = 0x10; tr->langopts.param[LOPT_IT_LENGTHEN] = 0x11; // remove lengthen indicator from unstressed vowels tr->langopts.param[LOPT_KEEP_UNSTR_VOWEL] = 1; diff --git a/src/translate.h b/src/translate.h index 37dc06b9..80c8dd3d 100755 --- a/src/translate.h +++ b/src/translate.h @@ -262,6 +262,7 @@ typedef struct { // bit9=stress last syllable if it doesn't end in vowel or "s" or "n" LANG=Spanish // bit12= In a 2-syllable word, if one has primary stress then give the other secondary stress // bit13= If there is only one syllable before the primary stress, give it a secondary stress +// bit15= Give stress to the first unstressed syllable // bit16= Don't diminish consecutive syllables within a word. int stress_flags; diff --git a/src/voices.cpp b/src/voices.cpp index adab327d..b4633fd6 100755 --- a/src/voices.cpp +++ b/src/voices.cpp @@ -575,8 +575,11 @@ voice_t *LoadVoice(char *vname, int control) strcpy(phonemes_name,language_type); - if((v = VoiceLookup(voicename)) != NULL) - voice = v; + if(!tone_only) + { + if((v = VoiceLookup(voicename)) != NULL) + voice = v; + } VoiceReset(tone_only); if(!tone_only)