diff --git a/dictsource/an_list b/dictsource/an_list index 1274823f..b0bcabde 100644 --- a/dictsource/an_list +++ b/dictsource/an_list @@ -14,7 +14,7 @@ _acu akT'ento aQ'uDo _ac2 d'Ople||aQ'uDo _brv br'eu _ced TeD'il^a -_cir Tirkumfl'ekso +_cir Tirkumfl'eSo _dia djEr'esi _dac d'Ople||aQ'uDo _dot p'unto @@ -30,6 +30,7 @@ _tld t'il^a // letter names b be c Te +ç Te||TetjEl^a d de f Efe g ge @@ -59,7 +60,7 @@ ll 'El^e á 'a||akTEntw'aDa é 'e||akTEntw'aDa í 'i||akTEntw'aDa -_ó 'o||akTEntw'aDa +ó 'o||akTEntw'aDa ú 'u||akTEntw'aDa ü ,uDjEr'Esi @@ -169,16 +170,39 @@ _1M1 mil'en _0M2o mil^on'en _1M2o mil^on'en +// characters +$ d'olar +€ eUros +£ liBras +* asterisko +& ampers'an +@ aRRoBa +# sin^'alDenum'ero +% porTj'En ++ mas += iQwal +/ baRRa +\ kontraBaRRa +| b'aRRaBertik'al + +_- gj'on +! TaRR'ar||eksklamaTj'on +_¡ uBr'ir||eksklamaTj'on +_? TaRR'ar||interroQaTj'on +_¿ uBr'ir||interroQaTj'on +_[ uBr'ir||Qaf'et +_] TaRR'ar||Qaf'et +_( uBr'ir||parent'esi +_) TaRR'ar||parent'esi +_{ uBr'ir||kl'aU +_} TaRR'ar||kl'aU + // unstressed words -o $u -o $atend -a $u -a $atend -os $u -os $atend -as $u -as $atend +o $u+ +a $u+ +os $u+ +as $u+ lo $u la $u @@ -199,7 +223,270 @@ os $u les $u lis $u +con $u +de $u +en $u $brk +mi $u +pa $u +por $u $brk +pues $u +pos $u +ta $u $brk +tu $u +sin $u +su $u +ye $u +ro $u +ra $u +ros $u +ras $u +el $u +es $u +els $u +mis $u +tus $u +sus $u +bell $u +bel $u +bella $u +bells $u +bellas $u +bellos $u +que $u +qui $u +quien $u +como $u +quan $u +quando $u +on $u +aon $u +porque $u +dende $u +entre $u +contra $u +enta $u +sinde $u +per $u +pus $u +dica $u +sino $u +ni $u +pero $u +bi $u +i $u+ +ie $u +hu $u +sant $u +donya $u +don $u +he $u +has $u +ha $u +han $u +heba $u +hebas $u +heban $u +se'n sen $u + + +//abbreviations +abs $abbrev +ac $abbrev +acb $abbrev +acm $abbrev +acs $abbrev +acup $abbrev +adn $abbrev +adsl $abbrev +aea $abbrev +aeci $abbrev +aek $abbrev +aepd $abbrev +afp $abbrev +ai $abbrev +akp $abbrev +amd $abbrev +anb $abbrev +anp $abbrev +anv $abbrev +ap $abbrev +apec $abbrev +aqu $abbrev +atp $abbrev +ats $abbrev +avl $abbrev +avs $abbrev +avt $abbrev +avv $abbrev +bbva $abbrev +bce $abbrev +bme $abbrev +bop $abbrev +bopv $abbrev +ca $abbrev +cav $abbrev +cbuc $abbrev +ccaa $abbrev +ccoo $abbrev +ccuc $abbrev +cee $abbrev +ceoe $abbrev +cepyme $abbrev +cesid $abbrev +cicr $abbrev +cidui $abbrev +ciemat $abbrev +cis $abbrev +cne $abbrev +cni $abbrev +csic $abbrev +csif $abbrev +dgaia $abbrev +dlsi $abbrev +dni $abbrev +dogc $abbrev +dogv $abbrev +dya $abbrev +eads $abbrev +eaed $abbrev +eb $abbrev +ebb $abbrev +eees $abbrev +eei $abbrev +egb $abbrev +eln $abbrev +emt $abbrev +eoc $abbrev +epsv $abbrev +erc $abbrev +ets $abbrev +euia $abbrev +facua $abbrev +fao $abbrev +fapae $abbrev +fbi $abbrev +fci $abbrev +feb $abbrev +fed $abbrev +fib $abbrev +finul $abbrev +fmi $abbrev +fuoc $abbrev +gatt $abbrev +iaaf $abbrev +ibm $abbrev +icaa $abbrev +icde $abbrev +icv $abbrev +iec $abbrev +iee $abbrev +ieo $abbrev +imc $abbrev +ims $abbrev +in3 $abbrev +inc $abbrev +inem $abbrev +ing $abbrev +inm $abbrev +ip $abbrev +ipc $abbrev +ipca $abbrev +iqua $abbrev +isaf $abbrev +itcat $abbrev +itv $abbrev +iu $abbrev +iun $abbrev +ko $abbrev +lotc $abbrev +mibor $abbrev +mit $abbrev +mnac $abbrev +nba $abbrev +nyse $abbrev +ocde $abbrev +ocu $abbrev +oea $abbrev +oiea $abbrev +olp $abbrev +omc $abbrev +omg $abbrev +oms $abbrev +ong $abbrev +op $abbrev +pce $abbrev +pda $abbrev +pde $abbrev +pdi $abbrev +pec $abbrev +pga $abbrev +pge $abbrev +pgou $abbrev +pib $abbrev +pid $abbrev +pse $abbrev +psoe $abbrev +psuc $abbrev +racc $abbrev +raf $abbrev +rba $abbrev +ree $abbrev +rfec $abbrev +rne $abbrev +rsa $abbrev +rtve $abbrev +samu $abbrev +sdat $abbrev +sec $abbrev +smi $abbrev +sod $abbrev +sos $abbrev +summa $abbrev +tor $abbrev +tpi $abbrev +tse $abbrev +tsja $abbrev +tve $abbrev +ua $abbrev +uab $abbrev +uaw $abbrev +udc $abbrev +udg $abbrev +udl $abbrev +ue $abbrev +uem $abbrev +ugt $abbrev +uhf $abbrev +uib $abbrev +uicn $abbrev +uimp $abbrev +uji $abbrev +um $abbrev +umd $abbrev +ump $abbrev +upc $abbrev +upd $abbrev +upf $abbrev +upn $abbrev +ups $abbrev +upv $abbrev +url $abbrev +urss $abbrev +urv $abbrev +usb $abbrev +usfp $abbrev +uss $abbrev +uv $abbrev +uveg $abbrev +uz $abbrev +vih $abbrev +vpo $abbrev +wap $abbrev +witsa $abbrev + + // exceptions +barça b'arsa holio x'olio jazz dZ'as @@ -220,6 +507,7 @@ iphone 'aIfon (i pod) 'aIpod ipod 'aIpod hardware x'ardwer +linux $1 live l'aIB messenger m'esendZer mozilla moT'ila @@ -229,5 +517,8 @@ skype esk'aIp software s'oftwer thunderbird Tanderb'ird twitter tw'iter +unix j'uniks whatsapp was'app windows w'indows + +mobile _^_EN diff --git a/dictsource/an_rules b/dictsource/an_rules index 7f0e1ecb..22c0b893 100644 --- a/dictsource/an_rules +++ b/dictsource/an_rules @@ -17,6 +17,8 @@ au aU au (X 'aU + _) a' %a + .group b b b @@ -38,6 +40,10 @@ ch tS + +.group ç + ç T + .group d d d _) d d // phoneme definition may change it to [D] @@ -52,6 +58,9 @@ n) d (_ = // silent, but stress on last vowel + _) d' (AP2 d + _) de' d%e + .group e e e @@ -66,6 +75,9 @@ u) e E y) e E + _) ent' (AP4 ent + _) enta' ,ent%a + .group f f f @@ -92,11 +104,12 @@ .group h h // silent - + hu (e gw + hu (i gw .group i i i - i (u i + i (u_ i i (A j @@ -116,6 +129,9 @@ .group m m m + _) m' (AP2 m + _) mo' m%o + .group n n n @@ -141,10 +157,15 @@ u) o O y) o O + .group p p p _) ps s + _) p' (AP2 p + _) pa' p%a + _) pe' p%e + .group q qu (A kw @@ -174,6 +195,8 @@ s s &) s (_S1 s + _) s' (AP2 s + .group t t t @@ -186,15 +209,20 @@ ui) t (_ t# s) t (_ = // silent, but stress on last vowel + _) t' (AP2 t + _) ta' t%a + _) to' t%o + .group u u u + uix uS u (u u u (i u + r) uix uS + r) u (A u u (A w _) u (A gw - uix uS - .group v // same as 'b' @@ -234,3 +262,6 @@ ó ''o ú ''u + __) - (_D m'enos + D_) - (_D m'enos + diff --git a/dictsource/nl_rules b/dictsource/nl_rules index 288abacc..075bff33 100644 --- a/dictsource/nl_rules +++ b/dictsource/nl_rules @@ -254,6 +254,10 @@ @) es (_S2qd 'Es // double the previous vowel @) es (_$w_alt2S1 s // just remove 's' KAC) es (_S2e @s + mb) es (_S1 s + nd) es (_S1 s + rd) es (_S1 s + gt) es (_S1 s es (ie_ e:z @) essen (_S5qd 'Es@n @) eres (_S4qd @r'Es diff --git a/dictsource/pt_list b/dictsource/pt_list index a625c789..54790b97 100644 --- a/dictsource/pt_list +++ b/dictsource/pt_list @@ -369,7 +369,7 @@ sua $u+ $nounf ?2 nossas $u+ $nounf n'Os&s dele dely $u1+ dela $u+ -deles $u+ +deles delys $u1+ delas $u+ nele nely $u1+ @@ -654,7 +654,7 @@ apego $alt2 $noun apelo $alt $verb aposto $alt $verb aperto $alt2 $noun -apoio $alt $verb +apoio $alt2 $noun aprovo $alt arredores $alt arremesso $alt2 $noun @@ -717,7 +717,6 @@ chovesse $alt2 chupeta $alt2 clamores $alt2 clero $alt -crepe $alt coco $alt2 cofre $alt cogumelo $alt @@ -732,6 +731,7 @@ colore $alt começo $alt2 $noun comodo $alt2 concerto $alt2 $noun +concertos $alt2 concordo $alt conforto $alt $verb congelo $alt @@ -739,6 +739,7 @@ consolo $alt2 $noun controle $alt2 $noun controlo $alt2 $noun coreia $alt +coreto $alt2 corneta $alt2 cornos $alt corpos $alt @@ -748,6 +749,7 @@ corvos $alt coto $alt2 cratera $alt crede $alt2 +crepe $alt decore $alt desapego $alt2 $noun descabelo $alt @@ -775,6 +777,7 @@ dueto $alt2 elixir eliSir elo $alt emprego $alt2 $noun +empregos $alt2 encosto $alt $verb endereço $alt2 endereço $alt $verb @@ -793,6 +796,7 @@ erros $alt2 esboço $alt $verb escopeta $alt2 escova $alt2 $noun +escovas $alt2 escovo $alt escroto $alt2 esforço $alt $verb @@ -834,9 +838,7 @@ forca $alt2 força $alt2 $noun forças $alt2 forço $alt -fossem $alt2 forro $alt $verb -fosse $alt2 frevo $alt2 galera $alt galileia $alt @@ -1019,6 +1021,7 @@ topo $alt $verb torno $alt $verb torre $alt2 $noun torres $alt2 +torro $alt tortos $alt traqueia $alt travesso $alt2 diff --git a/dictsource/pt_rules b/dictsource/pt_rules index 58442a4c..58166adc 100644 --- a/dictsource/pt_rules +++ b/dictsource/pt_rules @@ -353,20 +353,22 @@ 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 _quis) e (L05_ E _soub) e (L05_ E + _trem) 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 -_defend) e (L06_ e _depend) e (L06_ e _escond) e (L06_ e preend) e (L06_ e // com- a- re- sur- @@ -383,6 +385,7 @@ respond) e (L06_ e // cor- 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- @@ -396,6 +399,7 @@ respond) e (L06_ e // cor- _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- @@ -410,8 +414,8 @@ _amanhec) e (L07_ e _amolec) e (L07_ e _anoitec) e (L07_ e _arrepend) e (L07_ e +_atrev) e (L07_ e _cresc) e (L07_ e -_defend) e (L07_ e _depend) e (L07_ e _desguarnec) e (L07_ e _emagrec) e (L07_ e @@ -442,6 +446,7 @@ preend) e (L07_ e // sur- com- proteg) e (L07_ e // des- respond) e (L07_ e // cor- qu) e (brL04_ E + _cel) e (brL04_ E _hosp) e (dL03_ E _gr) e (gL03_ e _gal) e (gL03_ e @@ -837,7 +842,8 @@ estabel) e (çL03_ e // re- ?1 v) o (lt O //sort - _f) o (L06_ o + _f) o (L05_ o + _f) o (L07_ o _engl) o (bL01_ O _s) o (bL02_ O _esn) o (bL04_ O @@ -849,7 +855,7 @@ _desabr) o (chL04_ O _af) o (gL04_ O _adv) o (gL04_ O _ref) o (gL04_ O - _ap) oi (L01_ OI + _ap) oi (L04_ OI _t) o (lL03_ o c) o (lhL02_ O // es- en- re- _t) o (lhL02_ O @@ -869,14 +875,19 @@ _inson) o (rL03_ O _comem) o (rL04 O _remem) o (rL04_ O _enf) o (rquL02_ O + _ext) o (rquL02_ O c) o (rrL01_ o // escorra, incorra, corra, recorra _m) o (rrL01_ o p) o (rtL03_ O // im- trans- de- re- com- a- ex- + t) o (rçL01_ O // con- _r) o (snL04_ O _c) o (spL02_ O p) ostos (_ Ost=Us# // dispostos etc. _gar) o (tL03_ o _g) o (zL04_ O + _esb) o (çL01_ O + _r) o (çL03_ O + tr) o (çL03_ O // des- _ad) o (çL03_ O _end) o (çL03_ O //endsort @@ -1162,5 +1173,6 @@ _remem) o (rL04_ O __) - (_D m'enUs + D_) - (_D m'enUs A_) - (_D _ C_) - (_D _ diff --git a/phsource/ph_portugal b/phsource/ph_portugal index a31660c4..df714512 100644 --- a/phsource/ph_portugal +++ b/phsource/ph_portugal @@ -134,11 +134,6 @@ endphoneme -phoneme R // for Portugal this is same the as [r] - import_phoneme pt/r -endphoneme - - phoneme s# // This is [s] for Brazil, [S] for Portugal CALL base/S ipa ʃ diff --git a/phsource/r/V_ b/phsource/r/V_ deleted file mode 100644 index 349d2b78..00000000 Binary files a/phsource/r/V_ and /dev/null differ diff --git a/phsource/r/V_2_ b/phsource/r/V_2_ deleted file mode 100644 index 2f189216..00000000 Binary files a/phsource/r/V_2_ and /dev/null differ diff --git a/phsource/vowel/a b/phsource/vowel/a index 7c362b12..d4c64565 100644 Binary files a/phsource/vowel/a and b/phsource/vowel/a differ diff --git a/platforms/big_endian/README b/platforms/big_endian/README index 7889b414..3fbc16b9 100644 --- a/platforms/big_endian/README +++ b/platforms/big_endian/README @@ -14,5 +14,5 @@ The 'phondata-manifest' file is produced by espeakedit when it compiles the phoneme data. If it is not present here, find it in the espeak-data directory. NOTE: -The format of espeak-data/phondata changed in eSpeak version 1.43. The utility +The format of espeak-data/phondata changed in eSpeak version 1.47. The utility has been modified for this. [jonsd] diff --git a/platforms/windows/make_espeak.iss b/platforms/windows/make_espeak.iss index 938d61a4..439e913b 100644 --- a/platforms/windows/make_espeak.iss +++ b/platforms/windows/make_espeak.iss @@ -1,8 +1,8 @@ -; This is the script for "Inno Setup 5" to create the setup_espeak.exe installer for Windows +; This is the script for "Inno Setup 5" to create the setup_espeak.exe installer for Windows [Setup] AppName=eSpeak -AppVerName=eSpeak version 1.46.47 +AppVerName=eSpeak version 1.47.01 AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). WindowVisible=yes @@ -48,18 +48,24 @@ Root: HKLM; Subkey: "Software\Microsoft\Speech\PhoneConverters\Tokens\eSpeak"; F [Languages] Name: "en"; MessagesFile: "compiler:Default.isl" Name: "af"; MessagesFile: "compiler:Languages\Afrikaans.isl" +Name: "bg"; MessagesFile: "compiler:Languages\Bulgarian.isl" Name: "bs"; MessagesFile: "compiler:Languages\Bosnian.isl" Name: "cs"; MessagesFile: "compiler:Languages\Czech.isl" +Name: "da"; MessagesFile: "compiler:Languages\Danish.isl" Name: "de"; MessagesFile: "compiler:Languages\German.isl" Name: "el"; MessagesFile: "compiler:Languages\Greek.isl" Name: "es"; MessagesFile: "compiler:Languages\Spanish.isl" +Name: "fa"; MessagesFile: "compiler:Languages\Farsi.isl" Name: "fi"; MessagesFile: "compiler:Languages\Finnish.isl" Name: "fr"; MessagesFile: "compiler:Languages\French.isl" +Name: "hi"; MessagesFile: "compiler:Languages\Hindi.islu" Name: "hr"; MessagesFile: "compiler:Languages\Croatian.isl" Name: "hu"; MessagesFile: "compiler:Languages\Hungarian.isl" Name: "id"; MessagesFile: "compiler:Languages\Indonesian-5.1.11.isl" Name: "it"; MessagesFile: "compiler:Languages\Italian.isl" -Name: "lv"; MessagesFile: "compiler:Languages\Latvian-1-5.1.11.isl" +Name: "ka"; MessagesFile: "compiler:Languages\Georgian.islu" +Name: "lv"; MessagesFile: "compiler:Languages\Latvian.isl" +Name: "ne"; MessagesFile: "compiler:Languages\Nepali.islu" Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl" Name: "no"; MessagesFile: "compiler:Languages\Norwegian.isl" Name: "pl"; MessagesFile: "compiler:Languages\Polish.isl" @@ -67,9 +73,9 @@ Name: "pt"; MessagesFile: "compiler:Languages\Portuguese.isl" Name: "ro"; MessagesFile: "compiler:Languages\Romanian.isl" Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl" Name: "sk"; MessagesFile: "compiler:Languages\Slovak.isl" -Name: "sq"; MessagesFile: "compiler:Languages\Albanian-2-5.1.11.isl" Name: "sr"; MessagesFile: "compiler:Languages\Serbian.isl" Name: "tr"; MessagesFile: "compiler:Languages\Turkish.isl" +Name: "vi"; MessagesFile: "compiler:Languages\Vietnamese.isl" Name: "zh"; MessagesFile: "compiler:Languages\ChineseSimp-12-5.1.11.isl" [CustomMessages] @@ -77,26 +83,29 @@ v1=Select which voices to install v2=or press Enter to accept defaults v3=Enter voice names, eg: (for Portuguese) pt, or with a variant, eg: pt+f3 -bs.v1=Odaberite jezik kojeg želite instalirati +bs.v1=Odaberite jezik kojeg želite instalirati bs.v2=ili pritisnite Enter za prihvat zadanih. -bs.v3=Upišite, npr. bs (za Bosanski) ili s varjantom: bs+f3 +bs.v3=Upišite, npr. bs (za Bosanski) ili s varjantom: bs+f3 -fr.v1=Sélectionnez les voix à installer -fr.v2=ou appuyez sur Entrée pour accepter les valeurs par défaut. -fr.v3=Entrez le nom des voix, ex : (pour le Français) fr, ou avec une variante ex : fr+f3 +fr.v1=Sélectionnez les voix à installer +fr.v2=ou appuyez sur Entrée pour accepter les valeurs par défaut. +fr.v3=Entrez le nom des voix, ex : (pour le Français) fr, ou avec une variante ex : fr+f3 -hr.v1=Odaberite jezik kojeg želite instalirati +hr.v1=Odaberite jezik kojeg želite instalirati hr.v2=ili pritisnite Enter za prihvat zadanih. -hr.v3=Upišite, npr. hr (za Hrvatski) ili s varjantom: hr+f3 +hr.v3=Upišite, npr. hr (za Hrvatski) ili s varjantom: hr+f3 pt.v1=Seleccione as vozes que pretende instalar pt.v2=ou precione enter para aceitar as predefinidas. pt.v3=Introduza os nomes das vozes, ex: (Brazil) pt (ou Portugal) pt-pt, ou com outras caracter?sticas, ex: pt+f3 -sr.v1=Molimo vas da odaberete glasove, koje želite da instalirate +sr.v1=Molimo vas da odaberete glasove, koje želite da instalirate sr.v2=ili pritisnite Enter za instalaciju podrazumevanih glasova. -sr.v3=Da odaberete glas, unesite ime glasa kojeg želite instalirati, na primer sr, ili sr+f3 +sr.v3=Da odaberete glas, unesite ime glasa kojeg želite instalirati, na primer sr, ili sr+f3 +ne.v1=भित्र्याउन चाहेको आवाजको चयन गर्नु होस् । +ne.v2=अथवा यसमा निर्धारण गरिएको आवाजलाई नै चयन गर्ने हो भने ईन्टर कुञ्जीलाई दबाउनु होस् । +ne.v3=आवाजको नाम प्रविष्टी गर्नु होस् , जस्तै: नेपालीका लागि ne, अथवा स्वरको पनि चयन गर्ने हो भने ne+f3 [Code] var diff --git a/platforms/windows/make_espeakedit.iss b/platforms/windows/make_espeakedit.iss index 19d31f59..ffbebf1c 100644 --- a/platforms/windows/make_espeakedit.iss +++ b/platforms/windows/make_espeakedit.iss @@ -1,7 +1,7 @@ [Setup] AppName=eSpeakEdit -AppVerName=eSpeakEdit version 1.46.01 +AppVerName=eSpeakEdit version 1.47.01 DefaultDirName={pf}\eSpeak DefaultGroupName=eSpeak OutputBaseFilename=setup_espeakedit @@ -16,6 +16,7 @@ Name: "{group}\Uninstall espeakedit"; Filename: "{uninstallexe}" [InstallDelete] Type: filesandordirs; Name: "{app}\phsource\vowelcharts" +Type: filesandordirs; Name: "{app}\espeakedit" [Files] diff --git a/platforms/windows/windows_cmd/src/speech.h b/platforms/windows/windows_cmd/src/speech.h index 5e1fd383..a5e7d7a0 100644 --- a/platforms/windows/windows_cmd/src/speech.h +++ b/platforms/windows/windows_cmd/src/speech.h @@ -30,6 +30,7 @@ #define __WIN32__ #define NEED_WCSTOF #define NEED_GETOPT +#define USE_MBROLA_LIB #define PATHSEP '\\' #define USE_PORTAUDIO diff --git a/src/Makefile b/src/Makefile index c14ed86c..f04b4c45 100644 --- a/src/Makefile +++ b/src/Makefile @@ -7,7 +7,7 @@ BINDIR=$(PREFIX)/bin INCDIR=$(PREFIX)/include/espeak LIBDIR=$(PREFIX)/lib -RELEASE = 1.46 +RELEASE = 1.47 BIN_NAME = speak BIN2_NAME = espeak LIB_NAME = libespeak.so diff --git a/src/numbers.cpp b/src/numbers.cpp index f13eb747..d9708805 100644 --- a/src/numbers.cpp +++ b/src/numbers.cpp @@ -1603,9 +1603,9 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null } if(tr->langopts.numbers2 & 0x200) - sprintf(ph_thousands,"%s%s",ph_10T,ph_digits); // say "thousands" before its number, not after + sprintf(ph_thousands,"%s%c%s%c",ph_10T,phonEND_WORD,ph_digits,phonEND_WORD); // say "thousands" before its number, not after else - sprintf(ph_thousands,"%s%s",ph_digits,ph_10T); + sprintf(ph_thousands,"%s%c%s%c",ph_digits,phonEND_WORD,ph_10T,phonEND_WORD); hundreds %= 10; if((hundreds == 0) && (say_zero_hundred == 0)) @@ -1738,7 +1738,7 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null } } - sprintf(ph_out,"%s%s%s",buf1,ph_hundred_and,buf2); + sprintf(ph_out,"%s%s%c%s",buf1,ph_hundred_and,phonEND_WORD,buf2); return(0); } // end of LookupNum3 @@ -1786,6 +1786,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned int suffix_ix; int skipwords = 0; int group_len; + int len; char *p; char string[32]; // for looking up entries in **_list char buf1[100]; @@ -2062,9 +2063,9 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned LookupNum3(tr, value, ph_buf, suppress_null, thousandplex, prev_thousands | ordinal | decimal_point); if((thousandplex > 0) && (tr->langopts.numbers2 & 0x200)) - sprintf(ph_out,"%s%s%s%s",ph_zeros,ph_append,ph_buf2,ph_buf); // say "thousands" before its number + sprintf(ph_out,"%s%s%c%s%s",ph_zeros,ph_append,phonEND_WORD,ph_buf2,ph_buf); // say "thousands" before its number else - sprintf(ph_out,"%s%s%s%s",ph_zeros,ph_buf2,ph_buf,ph_append); + sprintf(ph_out,"%s%s%s%c%s",ph_zeros,ph_buf2,ph_buf,phonEND_WORD,ph_append); while(decimal_point) @@ -2147,7 +2148,8 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned // speak any remaining decimal fraction digits individually value = word[n_digits++] - '0'; LookupNum2(tr, value, 2, buf1); - strcat(ph_out,buf1); + len = strlen(ph_out); + sprintf(&ph_out[len],"%c%s", phonEND_WORD, buf1); } // something after the decimal part ? diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 1b843f84..2a11b7ab 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,8 +35,8 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.46.53 16.Mar.13"; -const int version_phdata = 0x014640; +const char *version_string = "1.47.01 18.Mar.13"; +const int version_phdata = 0x014701; int option_device_number = -1; FILE *f_logespeak = NULL; diff --git a/src/translate.cpp b/src/translate.cpp index 3773a0a5..cc8977c1 100644 --- a/src/translate.cpp +++ b/src/translate.cpp @@ -967,7 +967,7 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt } } } - else if((found==0) && (dictionary_flags[0] & FLAG_SKIPWORDS)) + else if((found==0) && (dictionary_flags[0] & FLAG_SKIPWORDS) && !(dictionary_flags[0] & FLAG_ABBREV)) { // grouped words, but no translation. Join the words with hyphens. wordx = word1; diff --git a/src/voices.cpp b/src/voices.cpp index be300d2d..26eb44c5 100644 --- a/src/voices.cpp +++ b/src/voices.cpp @@ -395,10 +395,10 @@ void VoiceReset(int tone_only) // Set voice to the default values int pk; -// static unsigned char default_heights[N_PEAKS] = {140,128,120,110,90,90,128,128,128}; // changed for v.1.47 -// static unsigned char default_widths[N_PEAKS] = {128,128,128,160,171,171,128,128,128}; - static unsigned char default_heights[N_PEAKS] = {128,128,120,120,110,110,128,128,128}; // previous version + static unsigned char default_heights[N_PEAKS] = {130,128,120,116,100,100,128,128,128}; // changed for v.1.47 static unsigned char default_widths[N_PEAKS] = {140,128,128,160,171,171,128,128,128}; +// static unsigned char default_heights[N_PEAKS] = {128,128,120,120,110,110,128,128,128}; // previous version +// static unsigned char default_widths[N_PEAKS] = {128,128,128,160,171,171,128,128,128}; static int breath_widths[N_PEAKS] = {0,200,200,400,400,400,600,600,600}; @@ -419,7 +419,7 @@ void VoiceReset(int tone_only) voice->n_harmonic_peaks = 5; voice->peak_shape = 0; voice->voicing = 64; - voice->consonant_amp = 85; // change to 85 for v.1.47 was 100 + voice->consonant_amp = 90; // change to 85 for v.1.47 was 100 voice->consonant_ampv = 100; voice->samplerate = samplerate_native; memset(voice->klattv,0,sizeof(voice->klattv)); @@ -447,7 +447,6 @@ void VoiceReset(int tone_only) // adjust formant smoothing depending on sample rate formant_rate[pk] = (formant_rate_22050[pk] * 22050)/samplerate; } - voice->height[2] = 240; // reduce F2 slightly // This table provides the opportunity for tone control. // Adjustment of harmonic amplitudes, steps of 8Hz