diff --git a/dictsource/da_list b/dictsource/da_list index 336c29a6..9755ab89 100644 --- a/dictsource/da_list +++ b/dictsource/da_list @@ -151,11 +151,11 @@ _12o tVlfd3 // 12. tolvte _2Xo t'yv@n@ // 25. _3Xo tr'&#ft@ //36. _4Xo fWV'tyv@n@ // 42. -_5Xo halt*'Esenstyv@n@ // 52. +_5Xo h<*'Esenstyv@n@ // 52. _6Xo tr'Esenstyv@n@ // 62. _7Xo h&lfj'&rsenstyv@n@ // 72. _8Xo firsenstyv@n@ // 82. -_9Xo half'Emsenstyv@n@ // 95. +_9Xo h&lf'Emsenstyv@n@ // 95. // function words @@ -362,25 +362,24 @@ warrior _^_EN // PB names august OgOsd $capital -austin _^_EN $alt -bailey _^_EN $alt -bbc _^_EN $alt -boston _^_EN $alt -bronx _^_EN $alt -boyle _^_EN $alt +austin _^_EN +bailey _^_EN +bbc _^_EN +boston _^_EN +bronx _^_EN +boyle _^_EN cyrus _^_EN -cia _^_EN $alt +cia _^_EN fox _^_EN -leroy _^_EN $alt -luke _^_EN $alt -mansfield _^_EN $alt -mahoney _^_EN $alt -montreal _^_EN $alt -oregon _^_EN $alt +leroy _^_EN +luke _^_EN +mansfield _^_EN +mahoney _^_EN +montreal _^_EN +oregon _^_EN piccadilly _^_EN -reynolds _^_EN $alt -//purvis _^_EN -white _^_EN $alt +reynolds _^_EN +white _^_EN // PB French words croquis _^_FR @@ -581,7 +580,6 @@ hydrant $alt ignorant $alt immigrant $alt imposant $alt -//infant $alt informant $alt injuriant $alt insinuant $alt @@ -1157,12 +1155,11 @@ monoman $alt2 morian $alt2 mytoman $alt2 narkoman $alt2 -//norman $alt2 nymfoman $alt2 obsidian $alt2 ocean $alt2 oktan $alt2 -Oman $alt2 +oman $alt2 organ $alt2 orkan $alt2 osman $alt2 @@ -1194,7 +1191,6 @@ Taiwan $alt2 talisman $alt2 tarlatan $alt2 tartan $alt2 -//timian $alt2 titan $alt2 tukan $alt2 tulipan $alt2 @@ -1521,6 +1517,7 @@ evidens $alt excellens $alt filipens $alt fluorescens $alt +flatulens $alt fosforescens $alt frekvens $alt imens $alt @@ -2159,7 +2156,6 @@ etik $alt eugenik $alt excentrik $alt fabrik $alt -//falkeblik $alt folkloristik $alt fonetik $alt fysik $alt @@ -2862,7 +2858,7 @@ monogami $alt origami oreg'ami $alt pandemi $alt polygami $alt -salami sal'&mi $alt +salami s&l'&mi $alt socionomi $alt sodomi $alt stomi $alt @@ -2911,7 +2907,6 @@ dessin des'EN $alt dioxin $alt disciplin $alt doktrin $alt -//(drive-in) drajv'in $alt dusin $alt endokrin $alt endorfin $alt @@ -5429,6 +5424,7 @@ ynkværdig $alt ærefrygtig $alt ærgerrig $alt ærværdig $alt +øjeblikkelig $alt ømfindtlig $alt ømtålelig $alt ømtålig $alt @@ -5824,6 +5820,7 @@ amper $alt amputer $alt analogiser $alt analysere $alt +psykoanalysere $alt angliser $alt animer $alt annekter $alt @@ -6412,6 +6409,7 @@ invalidere $alt inventer $alt inverter $alt invester $alt +geninvester $alt inviter $alt involver $alt ioniser $alt @@ -6965,6 +6963,7 @@ ratihaber $alt rationaliser $alt rationere $alt reager $alt +afreager $alt reaktiver $alt realiser $alt reassumer $alt @@ -8951,6 +8950,7 @@ bastion $alt benediktion $alt billion $alt centralisation $alt +centurion $alt cirkulation $alt citation $alt civilisation $alt @@ -10673,6 +10673,7 @@ prosektor $alt protektor $alt radiator $alt reaktor $alt +rektor $alt receptor $alt recitator $alt reflektor $alt @@ -11128,12 +11129,11 @@ egne a:in@ enter entV ide id'e // idea idé id'e // idea -//igen igen +tune tun3 $capital // PB Tune lufthavn - not "tune a car" [tjune] ny ny // new også Vs@ // also idet id'e // in so far as (rub og stub) R'Ob||V||sd'Ob -slags sl'ags // sort, type tre tr'e // the number 3 rejicere rejis'eV // PB should not be pronounced [raje] rejicerer rejis'eV // PB diff --git a/dictsource/da_rules b/dictsource/da_rules index cf30d096..d955b666 100644 --- a/dictsource/da_rules +++ b/dictsource/da_rules @@ -42,9 +42,12 @@ // PB consonant + a + consonant => a: C) a (Ce &: // PB plade, base, mase C) a (rL04 A // PB karismatisk + t) abernak abVn'ak // PB tabernakel, tabernakler mil) a (no '&: // PB stressed C) a (rL11 a // PB bare r) a (C+ A // PB drab + _der) af (_ ,& // PB + a (nstreng+ & // PB overanstreng a (ntal+ & // PB meterantal a (ttach+ & // PB militærattache hvor) af =,& // PB @@ -52,6 +55,7 @@ oreg) a (no '&: // PB stressed laud) a (num '& // PB stressed w) a (ter O // PB + arapahoe &r'&p&hOw // PB // PB consonant + a + double consonant => & C) a (C% & // PB pladder, basser, masser @@ -60,6 +64,7 @@ v) a (cc a // PB vaccinere s) a (bbat & // PB grim) a (sse '& // PB stressed + _c) annes &:n: // PB French city // PB amm => [a] a (mm+ a // PB kammerat, amme @@ -85,6 +90,7 @@ br) a (C A // PB Abraham _br) ando &ndOw // PB M b'ol;SE +_< m'en;SE +_« 'otkr uglof +_» z'akr uglof +_! v'oskl; +_? vopr'os +_. t'otS;ka +_, zVpit'aja +_` akts'Ent +_" kVv'ytS;ka +_' ap'ostrVf +_; t'otS;kzap +_: dvVet'otS;ie // prepositions @@ -170,3 +207,4 @@ _с Es // exceptions радио r'ad;Io + diff --git a/espeak-data/voices/fr b/espeak-data/voices/fr index a372fb17..a0b4986e 100644 --- a/espeak-data/voices/fr +++ b/espeak-data/voices/fr @@ -1,5 +1,6 @@ -language fr name french +language fr-fr +language fr gender male dictrules 1 diff --git a/phsource/compile_report b/phsource/compile_report index 8257acd1..cb072821 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -3,13 +3,13 @@ base 107 107 consonants 10 116 base2 26 123 - en 52 152 - en-n 32 152 - en-us 38 153 - en-sc 39 154 - en-rp 33 152 - en-wm 30 152 - en-wi 30 152 + en 53 153 + en-n 33 153 + en-us 39 154 + en-sc 40 155 + en-rp 34 153 + en-wm 31 153 + en-wi 30 153 af 39 136 cy 29 132 de 41 139 @@ -394,7 +394,7 @@ l/l_ [l] base [l/] fr l/l_@ [l/3] base [l/] fr -l/l@ [hæx] base +l/l@ [haþ] base [l#] base [l] fr [l/2] fr @@ -428,7 +428,7 @@ 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æx] base +l/la [haþ] base [l#] base [l] fr [l/2] fr @@ -436,7 +436,7 @@ l/la [h [K] tn l/l_a [l/3] base [l/] fr -l/le [hæx] base +l/le [haþ] base [l#] base [l] fr [l/2] fr @@ -448,7 +448,7 @@ l/L_eL_af [&] af [&:] af l/l_front [L] sq l/l_front_ [l/4] sq -l/li [hæx] base +l/li [haþ] base [l#] base [l] fr [l/2] fr @@ -462,7 +462,7 @@ ll/ll [L] bg ll/_ll [L] bg l/l_long [l] base [l] fr -l/lo [hæx] base +l/lo [haþ] base [l#] base [l/2] fr [K] nso @@ -472,7 +472,7 @@ l/l_o [l/3] base l^/l_rfx [l.] base [l] ru [l^] ru -l/lu [hæx] base +l/lu [haþ] base [l#] base [l] fr [l/2] fr @@ -2279,6 +2279,7 @@ vwl_en_us/3_us [3] en-us vwl_en_us/3_us2 [3:] en-us vwl_en_us/a [a] en-us vwl_en_us/ai@ [aI@] en-us +vwl_en_us/ai3 [aI3] en-us vwl_en_us/ar [A:] en-us [A@] en-us vwl_en_us/aU@ [aU@] en-us diff --git a/phsource/mbrola/us b/phsource/mbrola/us index 896e3a7a..54e73394 100644 --- a/phsource/mbrola/us +++ b/phsource/mbrola/us @@ -15,7 +15,8 @@ 0 g- NULL 0 NULL 0 x NULL 0 k_h 0 @- NULL 0 NULL -0 aI@ NULL 60 AI r +0 aI@ NULL 60 AI @ +0 aI3 NULL 60 AI r= 0 aU@ NULL 75 aU r diff --git a/phsource/mbrola/us3 b/phsource/mbrola/us3 index 169d5106..10762892 100644 --- a/phsource/mbrola/us3 +++ b/phsource/mbrola/us3 @@ -15,7 +15,8 @@ 0 g- NULL 0 NULL 0 x NULL 0 k 0 @- NULL 0 NULL -0 aI@ NULL 60 AI r +0 aI@ NULL 60 AI @ +0 aI3 NULL 60 AI r= 0 aU@ NULL 75 aU r diff --git a/phsource/ph_english b/phsource/ph_english index 785913c2..b0dc616b 100644 --- a/phsource/ph_english +++ b/phsource/ph_english @@ -429,6 +429,13 @@ phoneme aI@ endphoneme +phoneme aI3 + vowel starttype #a endtype #@ + length 280 + ChangePhoneme(aI@) +endphoneme + + phoneme aU@ vowel starttype #a endtype #@ length 280 diff --git a/phsource/ph_english_n b/phsource/ph_english_n index 24a3e127..bd3bd128 100644 --- a/phsource/ph_english_n +++ b/phsource/ph_english_n @@ -255,6 +255,13 @@ phoneme aI@ endphoneme +phoneme aI3 + vowel starttype #a endtype #@ + length 280 + ChangePhoneme(aI@) +endphoneme + + phoneme aU@ vowel starttype #a endtype #@ length 280 diff --git a/phsource/ph_english_rp b/phsource/ph_english_rp index 090dc8da..b4e82192 100644 --- a/phsource/ph_english_rp +++ b/phsource/ph_english_rp @@ -269,6 +269,13 @@ phoneme aI@ endphoneme +phoneme aI3 + vowel starttype #a endtype #@ + length 280 + ChangePhoneme(aI@) +endphoneme + + phoneme aU@ vowel starttype #a endtype #@ length 270 diff --git a/phsource/ph_english_sc b/phsource/ph_english_sc index a111c828..b7a3134a 100644 --- a/phsource/ph_english_sc +++ b/phsource/ph_english_sc @@ -344,6 +344,13 @@ phoneme aI@ endphoneme +phoneme aI3 + vowel starttype #a endtype #@ + length 280 + ChangePhoneme(aI@) +endphoneme + + phoneme @L vowel starttype #@ endtype l ipa əl diff --git a/phsource/ph_english_us b/phsource/ph_english_us index 2de4b557..a33c70fb 100644 --- a/phsource/ph_english_us +++ b/phsource/ph_english_us @@ -313,15 +313,21 @@ endphoneme phoneme aI@ vowel starttype #a endtype #@ length 300 - ipa aɪəɹ - IF nextPhW(r-) THEN - ipa aɪə - ENDIF + ipa aɪə IfNextVowelAppend(r-) FMT(vwl_en_us/ai@) endphoneme +phoneme aI3 + vowel starttype #a endtype #@ + length 300 + ipa aɪɚ + IfNextVowelAppend(r-) + FMT(vwl_en_us/ai3) +endphoneme + + phoneme aU@ vowel starttype #a endtype #@ length 300 diff --git a/phsource/ph_english_wm b/phsource/ph_english_wm index 342b06cb..eb61edff 100644 --- a/phsource/ph_english_wm +++ b/phsource/ph_english_wm @@ -241,6 +241,14 @@ phoneme aI@ endphoneme +phoneme aI3 + vowel starttype #a endtype #@ + length 280 + ChangePhoneme(aI@) +endphoneme + + + phoneme aU@ vowel starttype #a endtype #@ length 280 diff --git a/phsource/ph_german b/phsource/ph_german index 198ecc00..e034e565 100644 --- a/phsource/ph_german +++ b/phsource/ph_german @@ -408,6 +408,7 @@ endphoneme phoneme b vcd alv frc sibilant + voicingswitch p IF nextPh(l2) THEN ChangePhoneme(p) ENDIF @@ -416,6 +417,7 @@ endphoneme phoneme d vcd alv stop + voicingswitch t IF nextPh(l2) THEN ChangePhoneme(t) ENDIF @@ -424,6 +426,7 @@ endphoneme phoneme g vcd vel stop + voicingswitch k IF nextPh(l2) THEN ChangePhoneme(k) ENDIF diff --git a/phsource/vwl_en_us/ai@ b/phsource/vwl_en_us/ai@ index be7996db..b47fc0aa 100644 Binary files a/phsource/vwl_en_us/ai@ and b/phsource/vwl_en_us/ai@ differ diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 2d1a23f0..8263debb 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.45.46 04.Oct.11"; +const char *version_string = "1.45.47 24.Oct.11"; const int version_phdata = 0x014500; int option_device_number = -1; diff --git a/src/translate.cpp b/src/translate.cpp index 6aa382a1..917cb0f9 100644 --- a/src/translate.cpp +++ b/src/translate.cpp @@ -1441,7 +1441,7 @@ if(dictionary_flags2[0] & FLAG_ABBREV) // lang=Hungarian, If the last two words of a clause have capital letters (eg. a person name), unstress the last word. if((wflags & (FLAG_LAST_WORD | FLAG_FIRST_UPPER | FLAG_ALL_UPPER | FLAG_FIRST_WORD)) == (FLAG_LAST_WORD | FLAG_FIRST_UPPER)) { - if((wtab[-1].flags & (FLAG_FIRST_UPPER | FLAG_ALL_UPPER)) == FLAG_FIRST_UPPER) + if(((wtab[-1].flags & (FLAG_FIRST_UPPER | FLAG_ALL_UPPER)) == FLAG_FIRST_UPPER) && ((tr->clause_terminator != 0x90028) || (wflags & FLAG_HAS_DOT))) { ChangeWordStress(tr,word_phonemes,3); } diff --git a/src/translate.h b/src/translate.h index 6c843efd..49d8f013 100644 --- a/src/translate.h +++ b/src/translate.h @@ -183,6 +183,7 @@ // Punctuation types returned by ReadClause() // bits 0-7 pause x 10mS, bits 12-14 intonation type, +// bits12-14 intonation type // bit 15- don't need space after the punctuation // bit 19=sentence, bit 18=clause, bits 17=voice change // bit 16 used to distinguish otherwise identical types