From 062df03e9efae339b41784a9f4ce043ff2ad0887 Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Sat, 3 Feb 2018 09:14:05 +0000 Subject: [PATCH] de: revert the phoneme and dictionary changes --- CHANGELOG.md | 1 - dictsource/de_list | 361 +++++++++++++------------------------------ dictsource/de_rules | 110 ++++--------- phsource/ph_german | 334 ++++++++++++++++----------------------- tests/languages.test | 2 +- 5 files changed, 273 insertions(+), 535 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 68bfe735..d8c90c1b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,7 +20,6 @@ new languages: updated languages: * af (Afrikaans) -- Christo de Klerk -* de (German) -- Karl Eick * fi (Finnish) -- Juho Hiltunen * fr (French) -- Shallowmallow, Karl Eick * hak (Hakka Chinese) -- Chen Chien-ting diff --git a/dictsource/de_list b/dictsource/de_list index 869a70e7..610252f0 100644 --- a/dictsource/de_list +++ b/dictsource/de_list @@ -1,4 +1,3 @@ - // This file is UTF-8 encoded // all words lower case @@ -16,32 +15,32 @@ // Include a _ before a character if it's name should only be // spoken when "speak punctuation" option is on. -_. pUNkt +_. pUnkt * StErn $max3 % pro:ts'Ent $max3 + plUs $max3 = glaIC $max3 # nUm3 $max3 € OYro: -£ pFUnd -& Unt1 -@ Et1 +£ paUnd +& Unt +@ kl'am3_,af@ ~ tIld@ -\ bEkslES +\ bakslaS ° grA:t ± pl'Us||m'i:nUs -_, kOmA: +_, kOma _| paIp _: d'Op@lp,UNkt _; Str'ICpUNkt __ ,Unt3Str'IC -_- b'Ind@Str,IC +_- b'Ind@str,IC _! 'aUs_|r,u:f@ts,aIC@n _? fr'Ag@ts,aIC@n _' ,apo:str'Of _" tsi:t'A:t -_/ Sr'E:kStrIC +_/ Sr'e:gStrIC _( kl'am3||_|'aUf _) kl'am3||ts'u: _{ g@Sv'aIft@kl'am3||_|'aUf @@ -62,41 +61,33 @@ _— g@d'aNk@nStr,IC _#9 t,abu:l'A:to:3 _#32 l'e:rts'aIC@n _?? zymb'o:l -_?A b'u:xStA:b@ +_?A b'u:xstA:b@ _cap gr'o:s -_sub t,i:fg@St,Elt -_sup h,o:xg@St,Elt -½ aInh'alp -¢ sEnt -¼ 'aInfIrt@l -¬ nICtzOrt'i:rtsaIC@n -¾ dr'aIfIrt@l -¶ paragr'A:f -¤ Int3natsjo:nA:l@sv'E:rUNstsaIC@n -¥ jEn +_sub 'Unt@R|3_!,IndEks|| +_sup 'o:b@R|3_!,IndEks|| // accent names -_lig li:gat'u:r -_acu aksA~tEg'y: +_lig l'i:gat,u:3 +_acu ak'u:t _ac2 d'Op@lak,u:t -_brv br'E:v@ +_brv b@-*'E:v@ _ced se:d'i:j _cir ts'IrkUmflEks _dia 'UmlaUt -_dot p'UNkt +_dot p'Unkt _grv gr'A:vIs _hac h'atSEk _mcn m'A:krOn _ogo 'o:gOn,Ek _rng kr'o:wZEk -_stk Sr'E:kStrIC +_stk Sr'e:gstrIC _tld t'Ild@ æ $accent é $accent ç $accent -? $accent +č $accent š $accent ž $accent @@ -104,16 +95,10 @@ _tld t'Ild@ v faU x Iks -// Character names -_braille p'UNkt|Sr,Ift - // Alphabets -_eth amh'A:rIS -_ar ar'AbIS -_cyr ky:r'IlIS +_ar aR'AbIS +_cyr ky:R'IlIS _he hEbr'E:IS -_ja jap'A:nIS -_ko ko:re:'A:nIS _zh Ci:n'e:zIS @@ -140,71 +125,44 @@ _16 'zECtse:n _17 'zi:ptse:n _18 '_axtse:n _19 'nOYntse:n -_2X 'tsvantsIg# -_3X 'draIsIg# -_4X 'fIrtsIg# -_5X 'fynftsIg# -_6X 'zECtsIg# -_7X 'zi:ptsIg# -_8X '_axtsIg# -_9X 'nOYntsIg# - -_0C 'h,Und3t -_0M1 't,aUz@nt -_0M2 ||mIlj'o:n@n -_1M2 _'aIn@||mIlj'o:n -_0M3 ||mIlj'ard@n -_1M3 _'aIn@||mIlj'ard@ -_0M4 bIlj'o:n@n -_1M4 'aIn@||bIlj'o:n -_0M5 bIlj'ard@n -_1M5 'aIn@||bIlj'ard@ -_0M6 trIlj'o:n@n -_1M6 'aIn@||trIlj'o:n -_0M7 trIlj'ard@n -_1M7 'aIn@||trIlj'ard@ -_0M8 kvadrIlj'o:n@n -_1M8 'aIn@||kvadrIlj'o:n -_0M9 kvadrIlj'ard@n -_1M9 'aIn@||kvadrIlj'ard@ -_0M10 kvIntIlj'o:n@n -_1M10 'aIn@||kvIntIlj'o:n -_0M11 kvIntIlj'ard@n -_1M11 'aIn@||kvIntIlj'ard@ -_0M12 zEkstIlj'o:n@n -_1M12 'aIn@||zEkstIlj'o:n -_0M13 zEkstIlj'ard@n -_1M13 'aIn@||zEkstIlj'ard@ -_0M14 zEptIlj'o:n@n -_1M14 'aIn@||zEptIlj'o:n -_0M15 zEptIlj'ard@n -_1M15 'aIn@||zEptIlj'ard@ -_0M16 _OktIlj'o:n@n -_1M16 'aIn@||OktIlj'o:n -_0M17 _OktIlj'ard@n -_1M17 'aIn@||OktIlj'ard@ -_0M18 n,o:nIlj'o:n@n -_1M18 'aIn@||n,o:nIlj'o:n -_0M19 n,o:nIlj'ard@n -_1M19 'aIn@||n,o:nIlj'ard@ -_0M20 de:tsIlj'o:n@n -_1M20 'aIn@||de:tsIlj'o:n +_2X 'tsvantsIC +_3X 'draIsIC +_4X 'fIrtsIC +_5X 'fynftsIC +_6X 'zECtsIC +_7X 'zi:ptsIC +_8X '_axtsIC +_9X 'nOYntsIC +_0C 'hUnd3t +_0M1 'taUz@nt +_0M2 ||mIlI'o:n@n +_1M2 _'aIn@||mIlI'o:n +_0M3 ||mIlI'ard@n +_1M3 _'aIn@||mIlI'ard@ +_0M4 bIlI'o:n _0and ||_|Unt -_roman rY:mIS -_dpt _kOmA: -_#er 3 +_dpt _kOma + +// ordinal numbers +_ord t@ // default ending +_ord20 st@ // 20,30,etc +_1o _'e:rst@ +_3o dr'It@ +_7o z'i:bt@ +_8o _'axt@ +_0Co 'hUnd3tst@ // Abbreviations //============== (a . a . o .) A:||A:||_o: allg 'alg@maIn -abb 'apb,IldUN +abb 'abb,IldUN anm 'anm,ErkUN bd band bde bEnd@ bzw b@tsi:UNsvaIz@ -chr krIstUs -dr d'Okto:r +chr k@rIstUs +dr dOkt'o:r evtl e:vEntu:'El od o:d3 $only fr fraU @@ -233,8 +191,8 @@ derselb $2 desselb dEsz'Elb dieselb $2 dasselb dasz'Elb -demselb de:mz'Elb -denselb de:nz'Elb +demselb $2 +denselb $2 // conjunctions und Unt $u+ $pause @@ -279,7 +237,7 @@ nach nA:x $u+ $brk neben $u+ $brk ob ,Ob $pause $strend $only per pEr $u+ $brk -pro %pro: +pro ,pro: $pause von fOn $u+ $brk //(von dem) %fOn%de:m $brk vom fOm $u+ $brk @@ -287,7 +245,7 @@ vor ,fOr $strend zu tsu: $u+ $brk zum tsUm $u+ $pause zur tsu:r $u+ $pause -über ,y:b3 $pause $strend +über ,yb3 $pause $strend unter ,Unt3 $pause $strend $only um Um $u+ $brk //(um die) %Umd%i: $brk @@ -296,15 +254,13 @@ während $pause // misc so zo: $u+ -(auch nicht) aUxnICt doch dOx $u+ -(noch kein) nOxk'aIn -(noch keine) nOxk'aIn@ +noch $pause (noch nicht) n'Ox||n'ICt $brk (nicht mehr) n'ICt||,me:r (nicht mehr) n,ICt||m'e:r $atend (nicht nur) n'ICt||n'u:r $pause -(gar nicht) g'A:rnICt +(gar nicht) g,A:rn'ICt // should these be in the Rules if they can be a prefix in a // compound verb ? @@ -326,7 +282,7 @@ mir $u+ $only du $u $only dich $u+ $only dir $u+ $only -er Er $u $only +er Er $u $brk $only es Es $u $only ihn $u+ $only ihm $u+ $only @@ -364,12 +320,11 @@ sein $u // can also be verb "to be" seine $u+ unsre Unzr@ $u -unsere Unz@r@ $u +unsere Unzr@ $u unser Unz3 $u -unserm Unz3m $u -unserem Unz@r@m $u -unseren Unz@r@n $u -unserer Unz@r3 $u +unserm Uns3m $u +unserem Uns@r@m $u + ihre i:r@ $u ihrem i:r@m $u @@ -406,14 +361,14 @@ sind zInt $u seit zaIt $u $only habe %hA:b@ $only -habest hA:b@st $only $u +habest hA:bEst $only $u hast %hast $only hat %hat $only haben h,A:b@n $only $strend2 hatte h,at@ $only hatten h,at@n $only hätte h,Et@ $only -hättest h,Et@st +hättest h,EtEst $only hättet h,Et@t $only hätten h,Et@n $only @@ -427,15 +382,14 @@ willst %vIlst $only wollen %vOl@n $only wollt %vOlt -werden v,Erd@n +werden v,Erd@n $strend2 werde v,Erd@ wirst v,Irst wird v,Ird werdet v,Erd@t -worden vOrd@n $u wurden v,Urd@n wurde v,Urd@ -wurdest v,Urd@st +wurdest v,UrdEst wurdet v,Urd@t können ,kWn@n $only $strend2 @@ -459,45 +413,34 @@ kam ,kA:m // de_rules includes the words ending in "-ing" access _^_EN account _^_EN -aid _^_EN +aid _^_EN // aids appeal _^_EN apple _^_EN association _^_EN baseball _^_EN bbc _^_EN -beat _^_EN +beat _^_EN $only browser _^_EN byte _^_EN -bytes _^_EN camcorder _^_EN -certificate _^_EN change _^_EN chart _^_EN chat _^_EN -cleaner _^_EN coach _^_EN coke _^_EN -computer kOmpj'u:t3 +computer _^_EN cool _^_EN -copy _^_EN couch _^_EN cursor _^_EN -date _^_EN debugger _^_EN -desktop d'EsktOp -dj d'i:dZEI +dj _^_EN download _^_EN -downloads _^_EN email _^_EN enterprise _^_EN -espeak _^_EN event _^_EN -execute _^_EN -explorer Ekspl'Or3r -file _^_EN -firefox _^_EN firewall _^_EN foul _^_EN +foyer _^_EN frame _^_EN freak _^_EN gin _^_EN @@ -506,7 +449,6 @@ hip _^_EN homepage _^_EN hooligan _^_EN interface _^_EN -jaws _^_EN jean _^_EN jet _^_EN job _^_EN @@ -522,29 +464,23 @@ look _^_EN macho _^_EN mail _^_EN message _^_EN -move _^_EN my _^_EN mysql _^_EN -notebook _^_EN offline _^_EN online _^_EN out _^_EN -overwrite _^_EN pair _^_EN penthouse _^_EN pidgin _^_EN plot _^_EN poster _^_EN receiver _^_EN -registry _^_EN -release _^_EN -remake _^_EN research _^_EN +remake _^_EN roadie _^_EN roastbeef _^_EN quiz _^_EN run _^_EN -save _^_EN scanner _^_EN science _^_EN server _^_EN @@ -554,44 +490,30 @@ sexy _^_EN shirt _^_EN show _^_EN single _^_EN -size _^_EN slip _^_EN slum _^_EN small _^_EN -smiley _^_EN snob _^_EN song _^_EN sorry _^_EN source _^_EN spam _^_EN -speak _^_EN spirit _^_EN squaw _^_EN -stream _^_EN suite _^_EN sweatshirt _^_EN -sync _^_EN talk _^_EN -team _^_EN teaser _^_EN tech _^_EN terminal _^_EN -thunderbird _^_EN time _^_EN trip _^_EN tuner _^_EN unix _^_EN update _^_EN -updates _^_EN venture _^_EN -verify _^_EN -voice _^_EN -voices _^_EN -weather _^_EN -web w'Eb $only website _^_EN window _^_EN -wipe _^_EN word _^_EN @@ -601,55 +523,49 @@ abort ab'Ort absentier apzEnt'i:r abstinent $3 achso axz'o: -adress $2 akazie $alt -alarm $2 allein $2 -allgemein 'alg@maIn -amerika $2 andre andr@ // andere -aneinander an1aIn'and3 anomalie $2 antik ant'i:k archaik arC'A:Ik arie $alt arpeggier arpEdZ'i:r -arrangier araNZ'i:r +arrangier araNZ'i:@ Art A:rt // capital arterie $alt asphalt $2 -atommüll at'o:mmyl +atommüll $1 ausgeschamt aUsg@SA:mt außerdem 'aUs3d,e:m -automatisch $3 aventurin avEntu:r'i:n ave A:vE balkan $1 balkon $2 -bandagier bandaZ'i:r +bandagier bandaZ'i:@ beben be:b@n beere be:r@ bestie bEstI@ best bEst -bestem b'Est@m beten be:t@n -bibliothek bi:bli:o:t'e:k -bisschen b'IsC@n bizarr $2 blamage $alt bronchie $alt -buchstabierfunktion $3 -bürostuhl by:r'o:Stu:l +buch b'u:x +buchen b'u:x@n +bucht b'u:xt +bucht b'Uxt $capital $verbf +buchte b'u:xt@ +buchten b'u:xt@n +buchten b'Uxt@n $capital $verbf changier SaNZ'i:r -cembalo tS'Embalo: ciao tSaU clique klIk@ coup ku: dahlie $alt -dazwishen $2 debatte $2 deshalb $2 detail de:t'aI @@ -659,7 +575,6 @@ dient di:nt dividend di:vi:d'Ent dragier draZ'i:r dritte drIt@ -dschungel dZ'UN@l duett du:'Et ebendaher e:b@ndah'e:r @@ -668,45 +583,38 @@ ebenso $1 einander aIn'and3 einerlei aIn@rlaI einher aInh'e:r -einig aInIg# +einig aInIC $only einige aInIg@ $u+ einiges aInIg@s $u+ -einzig 'aIntsIg# -elektronisch e:lEktr'o:nIS -elementansicht e:l@m'Ent_|anzICt engagier aNgaZ'i:r endivie $alt endlich EntlIC -ensemble A~s'A~b@l +ensemble Ons'Omb@l episkopal e:pIsko:p'A:l erde e:rd@ erst e:rst ersten e:rst@n -erstmal e:rstmA:l -erzgebirg Ertsg@bIrg +erstmal e:rstma:l +erzgebirg e:rtsg@bIrg expedient Ekspe:dI'Ent extravagant $1 extrem Ekstr'e:m -fenster f'Enst3 -foyer fOj'e: +feuerrot $3 friedvoll fr'i:tf,Ol furchen fUrC@n furie $alt geben ge:b@n gebt ge:bt -gegenstand $1 -gegenständ $1 -gegenüber ge:g@n_|'y:b3 +gegenüber ge:g@n'y:b3 geglichen g@glIC@n gemein g@maIn -genial ge:nj'A:l +genial ge:nI'al geranie ge:r'A:nI@ gessen gEs@n geste ge:st@ gestern gEst3n -gitarre $2 glorie $alt grazie $alt @@ -718,19 +626,21 @@ herberg hErbErg hi haI historie $alt hm h@m +horsam hO3zA:m hostie $alt -humor $2 hrhr harhar +husten h'u:st@n illegitim Ile:gi:t'i:m illiberal Ili:b@r'A:l +illoyal IlOajA:l immobilie $alt indem Ind'e:m inden Ind'e:n inder Ind3 indes Ind'Es indessen Ind'Es@n -ingenieur IndZ@nj'Y:r +ingenieur IndZ@nj'u:r injurie $alt inka INkA: inkaisch INkA:IS @@ -739,27 +649,19 @@ insbesondere $3 interess Int@r'Es intern Int'Ern internet Int@rnEt -internetzugriff 'Int3nEtts,u:grIf -inzwischen $2 -jahrhundert $2 januar janu:A:r -Kamel kam'e:l kamelie $alt -kanäl $2 kanoe kan'u: kartonage $alt kastanie $alt kid kId -kombinationsfeld $4 komödie $alt -kompass $1 -konservativ k'OnzErvat,i:v +konservativ $1 konsul $1 -konto $1 +kuchen k'u:x@n kurie $alt -küchentisch k'yC@ntIS kwaß kvas lappalie $alt @@ -770,19 +672,13 @@ luetisch lu:'e:tIS machen max@n marginalie $alt -massage $2 materie $alt -meldung m'EldUN menuette mEnu:'Et -menü $2 minut $2 mikrofiche mi:kro:fi:S miteinander $1 modell mo:d'El modem mo:dEm -modern $2 -monat $1 -monitor $1 monoton $3 monsun $2 montag mo:ntA:k @@ -793,21 +689,16 @@ nachdem naxd'e:m nage $alt nebulos $3 negligent ne:gli:dZ'Ent -netzbetrieb n'Etsb@tri:b nisch ni:S -normal $2 -november $2 numero $1 oboe o:b'o:@ orgie $alt ok o:k'e: -oktober $2 -optimal $3 ödem Y:d'e:m paradies $3 -passage $alt +passage pas'aZ@ perplex $2 petersilie $alt pinie $alt @@ -816,32 +707,20 @@ pochier pOS'i:r pochs pOxs präsident $3 prämie $alt -privatisier pri:vA:ti:z'i:r -problematisier $5 -protokoll $3 +privatisier $4 +problematisier $3 //pro:ble:m'a:tIzi:r -refrain rEfr'W~ reliquie $alt -rendezvous rA~de:v'u: -restaurant rEsto:r'A~ risik $1 rupie $alt sabbat zabat sagt zA:gt salopp $2 -schieberegler S'i:b@re:gl3 -schreibung Sr'aIbUN schult Su:lt -schulter S'Ult3 -schultern S'Ult3n -sekund $2 selbst zElpst -september $2 -serie $alt -service _^_EN -ski S'i: -sodass %zo:d,as +serie se:rI;@ +service sErvIs soeben zo:_'e:b@n sofort $2 sogar $2 @@ -855,78 +734,52 @@ subjekt $1 tag tA:g telegen te:le:g'e:n -temporär $3 -terrain tEr'W~ the D@ // English theater te:'A:t3 tja tjA: tonnage $alt tragödie $alt train tre:n -trolley tr'Oli: -tsunami tsu:n'A:mi: -turin tu:r'i:n +tsunami tsu:n'a:mi: +turin $2 -umgehen $2 -umrahmen $2 +umweg $1 unten Unt@n -untermenü 'Unt3me:n,y: -urin u:r'i:n -übrig 'y:brIg# -verein fEr_|'aIn +verein fEr'aIn vielbesprochen $3 -vielleicht fIl'aICt +vielleicht $2 vorherig fo:rh'e:rIg# vorig fo:rIg# -wahrscheinlich $2 +//wahrscheinlich $2 warum vA:r'Um wasserung vas@rUN // because -ung isn't marked as a suffix +weiterung vaIt@rUN weither vaIth'Er weitum vaIt_|'Um -willkommen $2 woher vo:h'e:r zloty slOti: zoom zu:m +zugegen tsu:g'e:g@n zudem tsu:'de:m zugegen tsu:g'e:g@n zurück $2 -zustand ts'u:Stand $only -zuständ ts'u:StEnd zymbal $1 // Names -Armin $1 Djakarta dZak'artA: -Djibouti dZi:b'u:ti: -Fruecht fr'yCt +Djibouti dZib'u:ti: Georg ge:Ork $only George dZO:rdZ -john dZ'On -Josef j'o:zEf -Klango kl'aNgo: Khmer kme:r -liam _^_EN -Mc %mEk -Moradi $2 +Mc m@-k Neumexiko $2 Neuseeland $2 Rwanda rU'andA: -Sri %sri: -steve _^_EN +Sri sr,i: Tom tOm $only Tim tIm $only -// Stress on final ur -figur $2 -gravur $2 -klausur $2 -kultur $4 -natur $2 -retur $2 -tastatur $3 -temperatur $4 -zensur $2 diff --git a/dictsource/de_rules b/dictsource/de_rules index 00c6d45b..2376bb5f 100644 --- a/dictsource/de_rules +++ b/dictsource/de_rules @@ -1,4 +1,4 @@ - + // *************************************************************************** // * Copyright (C) 2006 to 2010 by Jonathan Duddington * // * email: jonsd@users.sourceforge.net * @@ -26,14 +26,6 @@ // This file is UTF-8 encoded - -// Hours -.L05 0 1 2 3 4 5 6 7 8 9 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 - -// Minutes -.L06 0 1 2 3 4 5 - - .group a _) a (_ A: a A @@ -44,7 +36,7 @@ ae (CC E a (C% a -a a (CC a + a (CC a a (sch a a (x a a (ph A: @@ -53,7 +45,6 @@ a a (CC a ai aI ay aI au aU -auer aU3 auh (_ aU ab (t_ A:p @@ -85,7 +76,6 @@ auer aU3 _) an (a %an _) a (natioP1 'A: _) anath anat -ein) ander 'and3 _) an (der an _) angli (C aNgli: _) anglo (@ ,aNglo: @@ -132,6 +122,8 @@ ein) ander 'and3 g) al (_ 'A:l k) al (_ 'A:l n) al (_ 'A:l + &kan) al (_ ,A:l + &sign) al (_ ,A:l r) al (_ 'A:l t) al (_ 'A:l _) aller (@P5 'al@r @@ -188,6 +180,7 @@ ein) ander 'and3 _) beige (_ be:S _) beige (@ baIg@ _) be (inhP2 b@ + _) beo (b b,@o: _) ba (lA b%a _) ba (ll@ b%a @@ -202,10 +195,7 @@ ein) ander 'and3 _) b (eet b _) b (enzin b _) b (erC b - be (ding b@ be (reich b@ - be (recht b@ -be (richt b@ _) b (esen b _) b (ess b _) b (esten b @@ -218,19 +208,16 @@ be (richt b@ baby _^_EN beten be:t@n _) bike _^_EN -binde bInd@ _) bis (hP3 b%Is _) blue _^_EN board _^_EN _) boom _^_EN bo (sh bo: -buchstab bu:xStA:b _) bundes b'Und@s -bücher by:C3r .group c - _) c (_ tse: + _) c (_ se: _) c (L01A k // allow cl cr at start of word c k c) c @@ -271,7 +258,6 @@ bücher by:C3r ü) chen (_ C@n chs ks -ei) chs Cz chance SA~s@ chara (kt k%ara _) ch (ic S @@ -304,7 +290,7 @@ ei) chs Cz soun) d d _) dabei (P5 dA:'baI - _) dafür (P5 dA:f'y:r + _) dafür (P5 dA:f'yr _) daher (P5 dA:h'Er _) dahin (P5 dA:h'In _) dahinter (P8 dA:h'Int3 @@ -332,7 +318,6 @@ ei) chs Cz design (_ d%IzaIn dge (_ _^_EN _) dia d,i:a -dialogf di:al'o:kf _) diver d%i:vEr _) dort (C@P4 d'Ort drive _^_EN @@ -366,13 +351,13 @@ dialogf di:al'o:kf ei aI eu OY - ey i: - ey (_ aI + ey aI + ey (_ e: eb (t_ e:p eg (t_ e:k - een (_ 'e:n + een (_ 'e:n- ell (_ 'El ll) e (l e: &) e (_S1 @ @@ -450,6 +435,7 @@ dialogf di:al'o:kf _) eil (aP3 'aIl _) eil (fP3 'aIl _) ein (@P3 _!'aIn + ein (and _|%aIn _) eine (r@ aIn@ _) einig aInIg m) eir (_ aI3 @@ -497,7 +483,7 @@ dialogf di:al'o:kf @) ett (_ 'Et eum (_ 'e:Um @@) eum (_ =e:Um - _) eur (op %OYr + _) eur (op %OY @) eur (_ 'Y:r euse (_ 'Y:z@ eusen (_ 'Y:z@n @@ -517,10 +503,8 @@ dialogf di:al'o:kf _) farb (l@P4 f'arb _) farc fars _) fein (@P4 f'aIn -fenster fEnst@r - _) fertig (C@P6 f'ErtIC + _) fertig (C@P6 f'ErtiC _) fest (@P4 f'Est -festig fEstIg# _) flug fl'u:g foto fo:to: _) free _^_EN @@ -530,7 +514,6 @@ festig fEstIg# _) froh (@P4 fr'o: _) frohlock fro:l'Ok _) fung (A fUNg -fügbar fy:kbA:r .group g @@ -543,8 +526,8 @@ fügbar fy:kbA:r g (sA g gd (_N kt _) gh (A g - _) g (nA g // allow _gn - B) gn (A gn + _) g (nA g@- // allow _gn + B) gn (A g@-n i) gt (_ Ct ei) gt (_ kt @@ -554,13 +537,10 @@ fügbar fy:kbA:r _) g (eHC g // hC, lC, mC, nC, rC massa) g Z -gabe gA:b@ -gehr ge:r @) ght (_ _^_EN graph grAf graph (_ gr'A:f green _^_EN -groß gro:s guide _^_EN gue (_ k _) güte (@P4 g'y:t@ @@ -589,13 +569,11 @@ groß gro:s general (is ge:n@ral _) ge (ner gE _) geo g,e:o: - geo (pf g@_'O _) ge (orP2 g@ _) ge (org g%e: ge (rman gE ge (rät g@ ge (strig gE -gestalt g@Stalt .group h @@ -812,10 +790,10 @@ formal) ie =I@ _) leb (C@@P3 'le:p _) leben (dig le:b'En _) lehr (C@P4 l'e:r - _) leit laIt + _) leit (@P4 l'aIt _) lern (@@P4 l'Ern _) lexi (@ lEksi: - &) lich (_S4 l2IC // [l] means devoice previous consonant + &) lich (_S4 l2IC // [l2] means devoice previous consonant &) liche (_S5 l2IC@ &) lichem (_S6 l2IC@m &) lichen (_S6 l2IC@n @@ -841,11 +819,9 @@ formal) ie =I@ m m m) m - manager mEnIdZ3r + manager manEdZ3r _) manch manC // for 'manchen' marine mA:r'i:n@ -maschin maS'i:n -meldung m,EldUN _) meß (@P3 m'Es _) menag m%e:nA:Z _) met (all m%e:t @@ -875,7 +851,10 @@ meldung m,EldUN u) ng (i Ng ng (r Ng nk Nk + nk (A nk + fu) nk Nk + _) natur (C@P5 nA:t'u:r _) na (tür n%A: nce (_ _^_EN nces (_ _^_EN @@ -886,12 +865,10 @@ meldung m,EldUN neglig ne:gli:Z neglige ne:gli:Z &) ness (_N _^_EN - new _^_EN - nieder ni:d@r -nk Nk + news _^_EN + nieder ni:d3 nord (L04st n%Ort nord (west n%Ort -nummer nUm@r .group o _) o (_ o: @@ -931,7 +908,7 @@ nummer nUm@r @A) o (n_ 'o: one (_ 'o:n@ onen (_ 'o:n@n - zitr) on 'o:n + zitr) on 'on @) oo (_ u: r) oo (m u: z) oo (m u: @@ -962,7 +939,6 @@ nummer nUm@r _) p (tol p pake (t p%ake: -papier pap'i:r _) para (@ p,ara passagie pasaZ'i: _) peri p,e:ri: @@ -970,12 +946,10 @@ papier pap'i:r _) periphe p,e:ri:fe: _) personen (@P8 pErz'o:n@n person p%Erzo:n - persön p%ErzY:n philie f'i:li: _) photo f,o:to: _) pro (@ %pro: _) probe pro:b@ -prüf pry:f po (em p%o: po (et p%o: @@ -1015,7 +989,6 @@ prüf pry:f rangier rA:NZ'i:r _) re (d re: -register re:g'Ist@r ressourc rEs'Urs revers r%e:vErs @@ -1038,7 +1011,6 @@ register re:g'Ist@r _) sch (mA S _) sch (nA S _) sch (w S -ssch sS _) sh (A S _) sh (rA S _) s (kA s // allow _sk @@ -1054,14 +1026,11 @@ ssch sS _) s (quA s _) s (tA S _) s (trA S -strich StrIC _) s (ve s _) s (wA s _) s (zA s sch S -seg (n ze:g - _) software(@P s'OftwE:r sh (K S sou (nd saU p) s (a s @@ -1091,12 +1060,10 @@ seg (n ze:g ste (ll StE a) ste (ll stE st (ah St - st (art St st (ä St st (eh St st (ö St st (ü St -st (uf St st (uh St st (ung st @@ -1115,7 +1082,6 @@ st (uf St täu) schen S@n schein (lich S'aIn -schreibung Sr,aIbUN _) schul (@P5 S'u:l _) schul (d S'Ul @@ -1125,7 +1091,6 @@ schreibung Sr,aIbUN _) selbst (@@P6 z'Elpst service (_S7 z%Ervi:s shop _^_EN -signal zIgn'A:l _) sky _^_EN soldat z%OldA:t &) so (rt_ s_|O @@ -1191,16 +1156,14 @@ signal zIgn'A:l _) teen _^_EN _) tele (@ t,e:le: _) thermo tErmo: -these t'e:z@ -sprachsyn) these t,e:z@ tuerei (_ tu:@r'aI thrill _^_EN _pa) th t the (era te: _) tief (@P4 t'i:f - @) tient (_ tsj'Ent - @) tion tsj,o:n - @) tion (_ tsj'o:n + @) tient (_ tsI'Ent + @) tion tsI,o:n + @) tion (_ tsI'o:n _) trail _^_EN _) tranqu _^_EN traver tr%avEr @@ -1227,7 +1190,7 @@ sprachsyn) these t,e:z@ ug (t_ u:k _) ueber (@P5 _|,y:b3 - _) um (@P2 'Um + _) um (@P2 Um _) umbe (@P4 'Umb@ _) umge (@P4 'Umg@ _) umge (b Umg'e: @@ -1305,7 +1268,6 @@ sprachsyn) these t,e:z@ _) vehe ve:he: velv (er vElv _) ver (@P3 f%Er -vergeb fErg'e:b v (er f _A) v (er v a) v (er v @@ -1343,7 +1305,7 @@ vergeb fErg'e:b _) voll (ko f%Ol _) voll (stre f%Ol _) voll (z f%Ol - vorder fOrd@r + vorder fOrd3 -) vorha (nd fo:rh'a _) vor (ne 'fo:r _) vor (n fOr @@ -1353,8 +1315,7 @@ vergeb fErg'e:b _) voraus (P6 fo:r'aUs _) vorbei (P6 fo:r'baI _) vorher (P6 fo:rh'e:r -vorhersag fo:rh,e:rz,A:g - _) vorüber (P7 fo:r'y:b3 + _) vorüber (P7 fo:r'yb3 .group w @@ -1372,9 +1333,7 @@ vorhersag fo:rh,e:rz,A:g _) weg (C@P3 v'e:k _) weit (C@P4 v'aIt _) weiter (@P6 v'aIt@r -weiterung vaIt@rUN _) weither vaIthe:r -wetter vEt3 _) wieder (@P6 vi:d3 _) wo (hin v%o: _) wovor vo:f'o:r @@ -1413,7 +1372,6 @@ wetter vEt3 ziell tsj'El _) zie (ge@P3 ts'i: _) zeit (@P4 ts'aIt -zeitung tsaItUN _) ziel (@P4 ts'i:l _) zier (@P4 ts'i:r _) zigaretten (@P10 tsi:gar'Et@n @@ -1426,7 +1384,6 @@ zeitung tsaItUN _) zu (nC tsU _) zurück (@P6 tsu:r'yk _) zusammen (@P8 tsu:z'am@n -zwinkern tsvINk3n _) zyklo (@P5 ,tsy:klo: zylin ts%i:lIn @@ -1471,7 +1428,6 @@ zwinkern tsvINk3n _) über (@P4 _|,y:b3 _) über (be@P4 _!'y:b3 _) über (gangs y:b3 -übrig y:brIg# .group ß @@ -1486,7 +1442,7 @@ zwinkern tsvINk3n æ E ø W ç s - ? tS + č tS š S ž Z @@ -1497,7 +1453,3 @@ zwinkern tsvINk3n D_) - (_D StrIC _) - (_D _ - -// symbols that are normally spoken when reading text -_L05_) : (_L06D_ %u:r // Say time - diff --git a/phsource/ph_german b/phsource/ph_german index 2aa282fc..1b81192f 100644 --- a/phsource/ph_german +++ b/phsource/ph_german @@ -1,4 +1,4 @@ - + //========================================================= // German @@ -9,148 +9,34 @@ phoneme @ // Schwa vwl starttype #@ endtype #@ unstressed - length 80 + length 120 IF nextPh(r) THEN IF next2Ph(isVowel) THEN ELSE ChangePhoneme(3) ENDIF ENDIF - IF nextPh(n) THEN - length 15 - ENDIF FMT(vowel/@_4) endphoneme -phoneme A~ - vwl starttype #a endtype #a - length 260 - FMT(vnasal/aa_n4) -endphoneme - - -phoneme l2 // as [l] but devoice previous phoneme - liquid lengthmod 7 - ChangePhoneme (l) -endphoneme - - -phoneme b - vcd blb stp - voicingswitch p - IF nextPh(l2) THEN - ChangePhoneme(p) - ENDIF - CALL base1/b -endphoneme - - -phoneme d - vcd alv stp - voicingswitch t - IF nextPh(l2) THEN - ChangePhoneme(t) - ENDIF - lengthmod 5 - Vowelin f1=1 f2=1700 -300 300 f3=-100 80 - Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk - - IF PreVoicing THEN - FMT(d/xd) - ENDIF - - IF nextPh(isPause2) THEN - FMT(d/d_) addWav(x/d_) - ELIF nextPh(r) THEN - FMT(d/dr) addWav(x/d) - ENDIF - - FMT(d/d) addWav(x/d) -endphoneme - -phoneme g - vcd vel stp - voicingswitch k - IF nextPh(l2) THEN - ChangePhoneme(k) - ENDIF - CALL base1/g -endphoneme - - -phoneme k - vls vel stp - voicingswitch g - lengthmod 2 - Vowelin f1=0 f2=2300 200 300 f3=-200 80 - Vowelout f1=0 f2=2300 300 400 f3=-200 80 rms=20 - - IF KlattSynth THEN - Vowelout f1=0 f2=2300 200 300 f3=-200 80 rms=20 - ENDIF - - IF nextPh(isPause2) THEN - WAV(ustop/k_) - ELIF nextPh(r) OR nextPh(R) OR nextPh(R2) THEN - WAV(ustop/k_) - ELIF nextPh(i:) OR nextPh(;) THEN - WAV(ustop/ki) - ELIF nextPh(l) THEN - WAV(ustop/kl) - ELIF nextPh(@-) THEN - WAV(ustop/k_unasp, 70) - ENDIF - WAV(ustop/k) -endphoneme - - -phoneme p - vls blb stp - voicingswitch b - lengthmod 2 - Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11 - Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22 - - IF nextPh(isPause2) THEN - WAV(ustop/p_) - ELIF nextPh(r) THEN - WAV(ustop/p) - ELIF nextPh(@-) THEN - WAV(ustop/p_unasp) - ELIF nextPh(l) THEN - WAV(ustop/pl) - ENDIF - WAV(ustop/p) -endphoneme - - -phoneme 3 // Schwa+r - vwl starttype #a endtype #a +phoneme 3 // open Schwa+r + vwl starttype #@ endtype #@ unstressed flag1 - length 140 - IF thisPh(isWordEnd) THEN - FMT(vowel/V_3) - ELSE - FMT(vowel/V_3) - ENDIF -endphoneme - -phoneme 3: // Schwa+r - vwl starttype #a endtype #a - unstressed flag1 - length 220 - IF thisPh(isWordEnd) THEN - FMT(vowel/V_3) - ELSE - FMT(vowel/a#_3) + length 160 + IF thisPh(isFinalVowel) THEN + length 210 ENDIF + FMT(vowel/a#_3) // in eSpeak 1.44, this used vowel/V_3 at end-of-word endphoneme phoneme a vwl starttype #a endtype #a length 110 + IF nextPh(isRhotic) THEN + length 125 + ENDIF FMT(vowel/a) endphoneme @@ -158,6 +44,9 @@ endphoneme phoneme E vwl starttype #e endtype #e length 120 + IF nextPh(*) THEN + length 135 + ENDIF FMT(vowel/e_mid2) endphoneme @@ -166,6 +55,9 @@ phoneme E2 // as[E] but reduces to @ if unstressed vwl starttype #e endtype #e length 120 ChangeIfDiminished(@) + IF nextPh(*) THEN + length 135 + ENDIF FMT(vowel/e_mid2) endphoneme @@ -173,6 +65,9 @@ endphoneme phoneme I vwl starttype #i endtype #i length 120 + IF nextPh(*) THEN + length 135 + ENDIF IfNextVowelAppend(;) FMT(vowel/ii) endphoneme @@ -185,18 +80,12 @@ phoneme I: endphoneme -phoneme iR // TEST "vier" = [f'iR] not successful - vwl starttype #i endtype #@ - ipa i? - flag1 - length 240 - FMT(vdiph2/i@_3) -endphoneme - - phoneme O vwl starttype #o endtype #o length 120 + IF nextPh(*) THEN + length 135 + ENDIF FMT(vowel/oo) endphoneme @@ -204,11 +93,12 @@ endphoneme phoneme U vwl starttype #u endtype #u length 120 - IF nextPh(r) THEN - IF next2Ph(isVowel) THEN - ELSE - ChangePhoneme(UR) - ENDIF + IF nextPh(*) THEN + length 135 + ENDIF + + IF nextPh(r) AND next2Ph(isNotVowel) THEN + ChangePhoneme(UR) ENDIF FMT(vowel/uu_2) endphoneme @@ -235,6 +125,10 @@ phoneme i: IF prevPh(w) THEN VowelStart(w/wi2) ENDIF + +// IF nextPh(r) AND next2Ph(isNotVowel) THEN +// ChangePhoneme(iR) +// ENDIF FMT(vowel/i_2) endphoneme @@ -272,15 +166,17 @@ endphoneme phoneme EI -import_phoneme en-us/eI + vwl starttype #e endtype #i + length 210 + FMT(vdiph/eei) endphoneme phoneme OY - vwl starttype #o endtype #e + vwl starttype #o endtype #i length 220 - FMT(vwl_de/eu) + FMT(vdiph/oi) endphoneme @@ -313,23 +209,29 @@ endphoneme phoneme y - vwl starttype #@ endtype #u - ipa ? + vwl starttype #u endtype #u + ipa ʏ length 110 - FMT(vwl_de/ue_short) + IF nextPh(*) THEN + length 115 + ENDIF + FMT(vowel/yy_4) endphoneme phoneme Y: - vwl starttype #@ endtype #u - length 220 - FMT(vwl_de/y#) + vwl starttype #@ endtype #@ + length 180 + FMT(vowel/y#) endphoneme phoneme W vwl starttype #@ endtype #@ length 150 + IF nextPh(*) THEN + length 160 + ENDIF FMT(vowel/oe) endphoneme @@ -338,9 +240,8 @@ endphoneme // CONSONANTS //=========== - phoneme t - vls alv stp + vls alv stp voicingswitch d lengthmod 2 Vowelin f1=0 f2=1700 -300 300 f3=-100 80 @@ -357,13 +258,14 @@ phoneme t endphoneme + phoneme ts import_phoneme consonants/ts endphoneme phoneme pF - vls blb afr + vls bld afr ipa pf Vowelout f1=0 f2=1000 -500 -350 f3=-200 80 lengthmod 2 @@ -422,7 +324,7 @@ phoneme j VowelEnding(j/xj, -30) IF prevPh(isPause) THEN - FMT(j/_j_short) // difference from base/j + FMT(j/_j_short) // difference from base1/j ENDIF ELSE // no vowel follows @@ -432,77 +334,109 @@ phoneme j endphoneme -phoneme r - liquid uvl - ipa ʀ +phoneme r // note, following consonant must be 'ustop/t_' not 'ustop/tr' etc. + liquid alv rhotic lengthmod 6 - length 110 - IF nextPhW(isVowel) THEN - FMT(r3/r_uvl) addWav(r3/r_uvl.wav, 50) + + IF prevPhW(@-) THEN ELSE - IF prevPh(isFlag1) THEN - ChangePhoneme(NULL) // 'r' is already included in the previous vowel - ELSE - ChangePhoneme(V#) - ENDIF + IF nextPhW(isVowel) THEN + IF prevPhW(isVowel) THEN + ChangePhoneme(R) + ELSE + IF prevPhW(t) THEN + PauseBefore 30 + ELSEIF prevPhW(d) OR prevPhW(b) OR prevPhW(g) OR prevPhW(k) OR prevPhW(p) THEN + PauseBefore 15 + ELSE + InsertPhoneme(@-) + ENDIF + ENDIF + ENDIF ENDIF + + IF prevPh(isFlag1) THEN + ChangePhoneme(NULL) // 'r' is already included in the previous vowel + ENDIF + + CALL base1/* endphoneme -phoneme V# // used for 'r' after a vowel (to create a diphthong) - liquid - lengthmod 7 - IF nextPhW(isVowel) THEN - ChangePhoneme(r) - ENDIF - ipa ? - IF prevPh(#a) THEN - FMT(r/V_2_) - ENDIF - IF prevPh(e:) OR prevPh (Y:) THEN - FMT(vowel/V_3) -ENDIF - IF prevPh(E) THEN - FMT(r/V_2_) -ENDIF - IF prevPh(#u) THEN - FMT(r/@_) - ENDIF - FMT(r/V_) +phoneme iR // TEST "vier" = [f'iR] not successful + vwl starttype #i endtype #@ + ipa iɐ + flag1 + length 240 + FMT(vdiph2/i@_3) endphoneme phoneme UR vwl starttype #u endtype #@ - ipa ?? + ipa ʊɐ flag1 length 180 FMT(vwl_de/uu_@) endphoneme -phoneme r2 - vcd alv flp - - IF prevPhW(isVowel) THEN - ChangePhoneme(*) - ENDIF - - InsertPhoneme(@-) - ChangePhoneme(*) -endphoneme - phoneme oU // for English words import_phoneme en-us/oU endphoneme - -phoneme W~ - vwl starttype #@ endtype #@ -length 200 -FMT(vnasal/W_n) +phoneme A~ + vwl starttype #a endtype #a + length 260 + FMT(vnasal/aa_n4) endphoneme + +phoneme l2 // as [l] but devoice previous phoneme + liquid lengthmod 7 + ChangePhoneme (l) +endphoneme + +phoneme b + vcd alv frc sib + voicingswitch p + IF nextPh(l2) THEN + ChangePhoneme(p) + ENDIF + CALL base1/b +endphoneme + +phoneme d + vcd alv stp + voicingswitch t + IF nextPh(l2) THEN + ChangePhoneme(t) + ENDIF + lengthmod 5 + Vowelin f1=1 f2=1700 -300 300 f3=-100 80 + Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk + + IF PreVoicing THEN + FMT(d/xd) + ENDIF + + IF nextPh(isPause2) THEN + FMT(d/d_) addWav(x/d_) + ELIF nextPh(r) THEN + FMT(d/dr) addWav(x/d) + ENDIF + + FMT(d/d) addWav(x/d) +endphoneme + +phoneme g + vcd vel stp + voicingswitch k + IF nextPh(l2) THEN + ChangePhoneme(k) + ENDIF + CALL base1/g +endphoneme diff --git a/tests/languages.test b/tests/languages.test index 0b68c357..eba2b00e 100755 --- a/tests/languages.test +++ b/tests/languages.test @@ -46,7 +46,7 @@ test_lang() { # 3. copy the correct hash onto the test line; # 4. re-run the tests to ensure they pass. -test_lang de 7398fed8c160ddd373418753474c907b7937b12e "drucker lampe computer stern sterne" +test_lang de 8f9bd0211a8d0d7a4f78970b8ac8ed7a50242bb0 "drucker lampe computer stern sterne" test_lang en 13464f360acc31b7d266164245c15b11e2fb6145 "foot strut north force cure thought lot cloth trap bath" test_lang en-029 7587e73b30806a360d40088d4f00fa158472fbab "foot strut north force cure thought lot cloth trap bath"