lang=it, added dictsource/it_listx with corrections for stress position and open/close vowel type. Changes to allow compilation on WinCE (Windows Mobile), with notes in platforms/windowsMobile. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@219 d46cf337-b52f-0410-862d-fd96e6ae7743master
| @@ -180,209 +180,209 @@ demselb $2 | |||
| denselb $2 | |||
| // conjunctions | |||
| und Unt $pause $u+ | |||
| aber ,A:b3 $pause $strend | |||
| oder ,o:d3 $pause $strend | |||
| sondern $pause | |||
| denn dEn $pause $u+ | |||
| weil $pause $strend | |||
| als $pause $u+ | |||
| bevor be:f'o:* $pause | |||
| also $pause $strend | |||
| wenn ,vEn $pause $strend | |||
| sowie $2 $pause | |||
| obgleich $2 $pause | |||
| obwohl $2 $pause | |||
| deren ,dE*@n $brk | |||
| und Unt $u+ $pause | |||
| aber A:b3 $u+ $pause | |||
| oder o:d3 $u+ $pause | |||
| sondern $pause | |||
| denn dEn $u+ $pause | |||
| weil $pause | |||
| als $u+ $pause | |||
| bevor be:fo:* $2 $pause | |||
| also $pause | |||
| wenn ,vEn $pause $strend | |||
| sowie $2 $pause | |||
| obgleich $2 $pause | |||
| obwohl $2 $pause | |||
| deren dE*@n $u+ $brk | |||
| // prepositions | |||
| ab ap $u+ $brk | |||
| an an $u+ $brk | |||
| am am $u+ $brk | |||
| auf aUf $u+ $pause | |||
| aus ,aUs $brk $strend | |||
| bei baI $u+ $pause $only | |||
| beim baIm $u+ $brk | |||
| bis bIs $u+ $pause | |||
| da $u+ | |||
| durch $u+ $pause | |||
| für fy:* $u+ $pause $only | |||
| gegen ge:g@n $u+ $pause | |||
| gegend ge:g@nt | |||
| hin hIn | |||
| in In $u+ $brk | |||
| ab ap $u+ $brk | |||
| an an $u+ $brk | |||
| am am $u+ $brk | |||
| auf aUf $u+ $pause | |||
| aus ,aUs $brk $strend | |||
| bei baI $u+ $pause $only | |||
| beim baIm $u+ $brk | |||
| bis bIs $u+ $pause | |||
| da $u+ | |||
| durch $u+ $pause | |||
| für fy:* $u+ $pause $only | |||
| gegen ge:g@n $u+ $pause | |||
| gegend ge:g@nt | |||
| hin hIn | |||
| in In $u+ $brk | |||
| //(in die) %Ind%i: | |||
| //(in den) %Ind%e:n | |||
| //(in der) %Ind%E* | |||
| im Im $u+ $brk | |||
| ins Ins $u+ $brk | |||
| mit mIt $u+ $pause | |||
| nach nax $u+ $brk | |||
| ob ,Ob $pause $strend $only | |||
| pro ,p@-*o: $pause | |||
| von fOn $u+ $brk | |||
| //(von dem) %fOn%de:m $brk | |||
| vom fOm $u+ $brk | |||
| vor ,fO* $strend | |||
| zu tsu: $u+ $brk | |||
| zum tsUm $u+ $pause | |||
| zur tsu:* $u+ $pause | |||
| über ,yb3 $pause $strend | |||
| unter ,Unt3 $pause $strend | |||
| um Um $u+ $brk | |||
| //(um die) %Umd%i: $brk | |||
| //(um den) %Umd%e:m $brk | |||
| während $pause | |||
| im Im $u+ $brk | |||
| ins Ins $u+ $brk | |||
| mit mIt $u+ $pause | |||
| nach nax $u+ $brk | |||
| ob ,Ob $pause $strend $only | |||
| pro ,p@-*o: $pause | |||
| von fOn $u+ $brk | |||
| //(von dem) %fOn%de:m $brk | |||
| vom fOm $u+ $brk | |||
| vor ,fO* $strend | |||
| zu tsu: $u+ $brk | |||
| zum tsUm $u+ $pause | |||
| zur tsu:* $u+ $pause | |||
| über ,yb3 $pause $strend | |||
| unter ,Unt3 $pause $strend | |||
| um Um $u+ $brk | |||
| //(um die) %Umd%i: $brk | |||
| //(um den) %Umd%e:m $brk | |||
| während $pause | |||
| // misc | |||
| so zo: $u+ | |||
| doch dOx $u+ | |||
| noch $pause | |||
| (noch nicht) n'Ox||n,ICt $brk | |||
| (nicht mehr) n'ICt||,me:* | |||
| (nicht mehr) n,ICt||m'e:* $atend | |||
| (nicht nur) n'ICt||n'u:* $pause | |||
| (gar nicht) g,A:*n'ICt | |||
| so zo: $u+ | |||
| doch dOx $u+ | |||
| noch $pause | |||
| (noch nicht) n'Ox||n,ICt $brk | |||
| (nicht mehr) n'ICt||,me:* | |||
| (nicht mehr) n,ICt||m'e:* $atend | |||
| (nicht nur) n'ICt||n'u:* $pause | |||
| (gar nicht) g,A:*n'ICt | |||
| // should these be in the Rules because they can be a prefix in a | |||
| // compound verb ? | |||
| daran dA:*'an | |||
| darauf $2 | |||
| daraus $2 | |||
| dabei $2 | |||
| dadurch dA:d'U*x | |||
| dafür $2 | |||
| dagegen $2 | |||
| daher dA:h'Er | |||
| dahin dA:h'In | |||
| damit dA:m'It | |||
| danach $2 | |||
| daneben $2 | |||
| darein $2 | |||
| darin dA:*'In | |||
| darüber $2 | |||
| darum $2 | |||
| darunter $2 | |||
| davon dA:f'On | |||
| dazu dA:ts'u: | |||
| umher Umh'E* | |||
| umhin Umh'In | |||
| woran vo:*'an | |||
| worauf $2 | |||
| woraus $2 | |||
| worin vo:*'In | |||
| daran dA:*'an | |||
| darauf $2 | |||
| daraus $2 | |||
| dabei $2 | |||
| dadurch dA:d'U*x | |||
| dafür $2 | |||
| dagegen $2 | |||
| daher dA:h'Er | |||
| dahin dA:h'In | |||
| damit dA:m'It | |||
| danach $2 | |||
| daneben $2 | |||
| darein $2 | |||
| darin dA:*'In | |||
| darüber $2 | |||
| darum $2 | |||
| darunter $2 | |||
| davon dA:f'On | |||
| dazu dA:ts'u: | |||
| umher Umh'E* | |||
| umhin Umh'In | |||
| woran vo:*'an | |||
| worauf $2 | |||
| woraus $2 | |||
| worin vo:*'In | |||
| // pronouns | |||
| ich %IC $only | |||
| du %du: $only | |||
| er %Er $brk $only | |||
| es %Ez $only | |||
| sie %zi: $only | |||
| wir %vi:* $only | |||
| ihr %i:* | |||
| man %man $only | |||
| sich %zIC $only | |||
| (es ist) %Ez%Ist | |||
| daß das $u+ | |||
| dass das $u+ | |||
| ein aIn $u+ | |||
| eine ,aIn@ | |||
| einem ,aIn@m | |||
| einen ,aIn@n | |||
| einer ,aIn3 | |||
| eines ,aIn@s | |||
| ich IC $u $only | |||
| du du: $u $only | |||
| er Er $u $brk $only | |||
| es Ez $u $only | |||
| sie zi: $u $only | |||
| wir vi:* $u $only | |||
| ihr i:* $u | |||
| man man $u $only | |||
| sich zIC $u $only | |||
| (es ist) %Ez%Ist | |||
| daß das $u+ | |||
| dass das $u+ | |||
| ein aIn $u+ | |||
| eine aIn@ $u | |||
| einem aIn@m $u | |||
| einen aIn@n $u | |||
| einer aIn3 $u | |||
| eines aIn@s $u | |||
| //kein $u+ | |||
| //keine $u+ | |||
| mein $u+ | |||
| meine $u+ | |||
| mein $u+ | |||
| meine $u+ | |||
| dein $u+ | |||
| deine $u+ | |||
| dein $u+ | |||
| deine $u+ | |||
| sein $u // can also be verb "to be" | |||
| seine $u+ | |||
| sein $u // can also be verb "to be" | |||
| seine $u+ | |||
| unsre ,Unz*@ | |||
| unsere ,Unz*@ | |||
| unser ,Unz3 | |||
| unserm ,Uns3m | |||
| unserem ,Uns@*@m | |||
| unsre Unz*@ $u | |||
| unsere Unz*@ $u | |||
| unser Unz3 $u | |||
| unserm Uns3m $u | |||
| unserem Uns@*@m $u | |||
| ihre ,i:*@ | |||
| ihrem ,i:*@m | |||
| ihrer ,i:*3 | |||
| ihre i:*@ $u | |||
| ihrem i:*@m $u | |||
| ihrer i:*3 $u | |||
| dies ,di:z | |||
| diese ,di:z@ | |||
| dies di:z $u | |||
| diese di:z@ $u | |||
| // | |||
| was vas | |||
| wie $u $pause | |||
| was vas | |||
| wie $u $pause | |||
| // abverbs | |||
| auch ,aUx | |||
| dann $u | |||
| etwa $u | |||
| ganz g,ants $only | |||
| je $u | |||
| nur $brk | |||
| auch ,aUx | |||
| dann $u | |||
| etwa $u | |||
| ganz g,ants $only | |||
| je $u | |||
| nur $brk | |||
| // verbs | |||
| bin %bIn | |||
| bist %bIst | |||
| ist %Ist | |||
| sind %zInt | |||
| seit %zaIt $only | |||
| habe %hA:b@ $only | |||
| habst %habst $only | |||
| hast %hast $only | |||
| hat %hat $only | |||
| haben h,A:b@n $only | |||
| hatte h,at@ $only | |||
| hatten h,at@n $only | |||
| hätte h,Et@ $only | |||
| hättest h,EtEst $only | |||
| hättet h,Et@t $only | |||
| hätten h,Et@n $only | |||
| war %vA:* $only | |||
| warst %vA:*st $only | |||
| wart %vA:*t $only | |||
| waren 'vA:*@n | |||
| will %vIl $only | |||
| willst %vIlst $only | |||
| wollen %vOl@n $only | |||
| wolt %vOlt | |||
| werden v,E*d@n | |||
| werde v,E*d@ | |||
| werdst v,E*dst | |||
| werdet v,E*d@t | |||
| wurden vU*d@n | |||
| wurde vU*d@ | |||
| wurdst vU*dst | |||
| wurdet vU*d@t | |||
| können ,kWn@n $only | |||
| kann ,kan $only | |||
| kannst ,kanst $only | |||
| könnt ,kWnt $only | |||
| konnt ,kOnt $only | |||
| sollen ,zOl@n | |||
| soll ,zOl | |||
| sollst ,zOlst | |||
| sollte ,zOlt@ | |||
| sollten ,zOlt@n | |||
| bin bIn $u | |||
| bist bIst $u | |||
| ist Ist $u | |||
| sind zInt $u | |||
| seit zaIt $u $only | |||
| habe %hA:b@ $only | |||
| habst %habst $only | |||
| hast %hast $only | |||
| hat %hat $only | |||
| haben h,A:b@n $only | |||
| hatte h,at@ $only | |||
| hatten h,at@n $only | |||
| hätte h,Et@ $only | |||
| hättest h,EtEst $only | |||
| hättet h,Et@t $only | |||
| hätten h,Et@n $only | |||
| war %vA:* $only | |||
| warst %vA:*st $only | |||
| wart %vA:*t $only | |||
| waren 'vA:*@n | |||
| will %vIl $only | |||
| willst %vIlst $only | |||
| wollen %vOl@n $only | |||
| wolt %vOlt | |||
| werden v,E*d@n | |||
| werde v,E*d@ | |||
| werdst v,E*dst | |||
| werdet v,E*d@t | |||
| wurden vU*d@n | |||
| wurde vU*d@ | |||
| wurdst vU*dst | |||
| wurdet vU*d@t | |||
| können ,kWn@n $only | |||
| kann ,kan $only | |||
| kannst ,kanst $only | |||
| könnt ,kWnt $only | |||
| konnt ,kOnt $only | |||
| sollen ,zOl@n | |||
| soll ,zOl | |||
| sollst ,zOlst | |||
| sollte ,zOlt@ | |||
| sollten ,zOlt@n | |||
| @@ -98,8 +98,10 @@ | |||
| _) achs (el 'aks | |||
| j) ag (d A:k | |||
| _) air _^_EN | |||
| m) air (_ aI3 | |||
| ai (sch A:I | |||
| tr) ain En | |||
| air (_ E:r | |||
| akqu %akv | |||
| @A) al (_ 'A:l | |||
| g) al (_ 'A:l | |||
| @@ -131,7 +133,8 @@ | |||
| _) aufent aUf@nt | |||
| austra (l %aUst@-*A | |||
| _) authen aUtEn | |||
| ay (_ EI | |||
| ay (_N EI | |||
| m) ayr (_ aI3 | |||
| p) ay EI | |||
| .group b | |||
| @@ -356,6 +359,7 @@ | |||
| ein (and _|%aIn | |||
| _) eine (r@ aIn@ | |||
| _) einig aInIg | |||
| m) eir (_ aI3 | |||
| _) eisen (@P5 'aIz@n | |||
| _) e (lek %e: | |||
| _) elektro (@P7 e:l'Ekt@-*o: | |||
| @@ -884,6 +888,7 @@ | |||
| sound _^_EN | |||
| speed _^_EN | |||
| @) straße (_S6 st*,A:s@ | |||
| _) street _^_EN | |||
| style _^_EN | |||
| synthesi _^_EN | |||
| @@ -157,10 +157,10 @@ S s2 t v Z | |||
| Dictionary fr_dict | |||
| @ @- @2 a a2 A~ e E | |||
| E2 E~ i i: o O o2 O2 | |||
| O~ u u: W W2 w^i wA W~ | |||
| y Y | |||
| @ @- @2 @3 a a2 A~ e | |||
| E E2 E~ i i: o O o2 | |||
| O2 O~ u u: W W2 w^i wA | |||
| W~ y Y | |||
| : b d dZ f g h j | |||
| k l m n N n2 n^ p | |||
| @@ -254,8 +254,8 @@ S s2 t T tl# v x z | |||
| Dictionary it_dict | |||
| @- a a/ aI aU e E i | |||
| I o O oI u | |||
| @- a a/ aI aU e E eI | |||
| i I o O u | |||
| * : ; b d dZ f g | |||
| h j k l l^ m n N | |||
| @@ -132,7 +132,7 @@ _{ lEftbreIs | |||
| _| vi:b'A@ | |||
| _} raItbreIs | |||
| ~ tIld@ $max3 | |||
| _¡ Inv,3:tI2dEkskl@m'eIS@n | |||
| _¡ %Inv,3:tI2dEkskl@m'eIS@n | |||
| _¦ broUk@nb'A@ | |||
| _¨ daIa2r'i:sIs | |||
| _ª fEmI2nIn'O@dI2n@L | |||
| @@ -146,7 +146,7 @@ _¸ sEd'Il@ | |||
| _¹ su:p@skrIptw'0n | |||
| _º maskjUlIn'O@dI2n@L | |||
| _» raIt'gIl@mEt | |||
| _¿ Inv,3:tI2dkw'EstS@n | |||
| _¿ %Inv,3:tI2dkw'EstS@n | |||
| _‐ haIf@n | |||
| _‑ haIf@n | |||
| @@ -668,7 +668,6 @@ blockade $2 | |||
| blouse blaUz | |||
| blurry bl3:rI | |||
| ?5 blurry blVRrI | |||
| bogey boUgI | |||
| boing bOIN | |||
| bombard $2 | |||
| bonbon b0nb0n | |||
| @@ -1057,6 +1056,7 @@ extract $2 $verb | |||
| extradite Ekstr@daIt // extradited | |||
| extrem Ekstr'i:m // extremism | |||
| extremist Ekstr'i:mIst | |||
| extricate $1 | |||
| eyrie i@rI | |||
| facade f@sA:d | |||
| @@ -1092,6 +1092,7 @@ fiord fi:O@d | |||
| fix fIks // for fixer | |||
| fjord fIO@d | |||
| flagellum fla2dZEl@m | |||
| flamenco fla2mENkoU | |||
| flexible flEksIb@L | |||
| flier flaI3 | |||
| flourish flVrI2S | |||
| @@ -1162,6 +1163,7 @@ grenade gr@neId | |||
| griffon grIf@n | |||
| grosvenor groUv@n3 | |||
| groupie gru:pI | |||
| guacamole gwA:ka2m'oUli: | |||
| gui gu:I | |||
| guinea gInI | |||
| gurus gu:ru:z | |||
| @@ -1228,6 +1230,7 @@ hyperbole haIp'3:b@lI | |||
| hypothesis haIp'0T@sIs | |||
| hypotheses haIp'0T@si:z | |||
| hypotenuse haIp'0t@nju:s | |||
| hypoxia haIp'0ksi@ | |||
| icon aIk0n | |||
| @@ -1776,6 +1779,7 @@ reference rEfr@ns | |||
| referee rEf@r'i: | |||
| referral rI2f3:r@L | |||
| referring rI2f3:rI2N | |||
| refinery rI2faIn@rI | |||
| refit ri:fIt | |||
| reflex ri:flEks | |||
| reflux ri:flVks | |||
| @@ -1784,12 +1788,12 @@ regal ri:g@L | |||
| regime reIZ'i:m | |||
| region ri:dZ@n // & regional | |||
| reign reIn | |||
| reiki reIki: | |||
| rein reIn | |||
| reined reInd | |||
| reining reInI2N | |||
| reindeer reIndi@3 | |||
| reinvent ri:Inv'Ent | |||
| refinery rI2faIn@rI | |||
| relative rEl@tIv | |||
| relic rElIk | |||
| relish rElI2S | |||
| @@ -2672,121 +2676,121 @@ so ,soU $strend2 $verbf | |||
| //prepositions | |||
| // these should be stressed at the end of a sentence | |||
| of 0v $u $only | |||
| ?6 of Vv $u $only | |||
| (of a) @v@ $nounf | |||
| (of an) @v@n $nounf | |||
| (of which) 0vw'ItS $pause | |||
| ?6 (of the) %VD@2 $nounf | |||
| ?6 (of which) Vvw'ItS $pause | |||
| for fO@ $u | |||
| (for a) f@@ $nounf | |||
| (for an) f@@n $nounf | |||
| (for the) f3D@2 $nounf | |||
| of 0v $u $only | |||
| ?6 of Vv $u $only | |||
| (of a) @v@ $nounf | |||
| (of an) @v@n $nounf | |||
| (of which) 0vwItS $2 $pause | |||
| ?6 (of the) %VD@2 $nounf | |||
| ?6 (of which) VvwItS $2 $pause | |||
| for fO@ $u | |||
| (for a) f@@ $nounf | |||
| (for an) f@@n $nounf | |||
| (for the) f3D@2 $nounf | |||
| (for a while) f@@||w'aIl | |||
| (for one) fO@w'0n $atend | |||
| (for one) fO@w0n $2 $atend | |||
| to t@5 $verbf // @ change to U before vowel | |||
| (to be) t@b%I $pastf | |||
| (to be) t@||'bi: $atend | |||
| (to to) %tU_t@5 $verbf | |||
| to t@5 $verbf // @ change to U before vowel | |||
| (to be) t@b%I $pastf | |||
| (to be) t@||'bi: $atend | |||
| (to to) %tU_t@5 $verbf | |||
| (to and fro) tu:@ndfr'oU | |||
| to tu: $u $atend | |||
| to tu: $allcaps | |||
| to tu: $u $atend | |||
| to tu: $u $allcaps | |||
| at at $nounf $only $u | |||
| (at a) %at@ $nounf | |||
| at at $nounf $only $u | |||
| (at a) %at@ $nounf | |||
| (at once) a2t_w0ns | |||
| (at will) a2t_w'Il | |||
| with wID $u | |||
| with wID $u | |||
| (with the) w%IDD@2 $nounf | |||
| in %In $strend $only $nounf | |||
| in %In $strend $only $nounf | |||
| (in the) %InD@2 | |||
| (in which) In||w,ItS $pause | |||
| (in which) In||wItS $u2 $pause | |||
| on ,0n $strend2 | |||
| on ,0n $strend2 | |||
| (on the) %0nD@2 | |||
| (out of) ,aUt@v | |||
| into ,IntU | |||
| onto ,0ntU $strend2 | |||
| onto ,0ntU $strend2 | |||
| unto ,VntU | |||
| ?3 into ,Int2U | |||
| ?3 onto ,0nt2U $strend2 | |||
| ?3 onto ,0nt2U $strend2 | |||
| ?3 unto ,Vnt2U | |||
| upon @p,0n | |||
| from %fr0m | |||
| ?3 from %frVm | |||
| (from where) %fr0m||w'e@ $pause | |||
| (from which) %fr0m||w'ItS $pause | |||
| up ,Vp $strend2 | |||
| down ,daUn $only $strend2 | |||
| by %baI | |||
| across @kr,0s $strend2 | |||
| per %p3: | |||
| upon @p0n $u2 | |||
| from fr0m $u | |||
| ?3 from frVm $u | |||
| (from where) %fr0m||w'e@ $pause | |||
| (from which) %fr0m||w'ItS $pause | |||
| up ,Vp $strend2 | |||
| down ,daUn $only $strend2 | |||
| by baI $u | |||
| across @kr0s $u2 $strend2 | |||
| per p3: $u | |||
| (per cent) p3||s'Ent | |||
| (per se) p,3:||s'eI | |||
| through %Tru: $strend2 | |||
| toward %tUwO@d | |||
| over ,oUv3 $strend2 $only | |||
| under ,Vnd3 $strend2 $only | |||
| within %wID,In | |||
| without %wID,aUt $strend2 | |||
| above @b,Vv $strend2 | |||
| about a2b,aUt $strend2 | |||
| through Tru: $u $strend2 | |||
| toward tUwO@d $2 | |||
| over oUv3 $u $strend2 $only | |||
| under Vnd3 $u $strend2 $only | |||
| within wIDIn $u2 | |||
| without wIDaUt $u2 $strend2 | |||
| above @bVv $u2 $strend2 | |||
| about a2baUt $u2 $strend2 | |||
| against a2gEnst | |||
| ahead a2hEd | |||
| among a2m,VN $strend2 | |||
| amongst a2m,VNst $strend2 | |||
| among a2mVN $u2 $strend2 | |||
| amongst a2mVNst $u2 $strend2 | |||
| around a2raUnd | |||
| before bIf,o@ $strend2 | |||
| behind bIh,aInd $strend2 | |||
| below bIl,oU $strend2 | |||
| beneath bI2n,i:T $strend2 | |||
| beyond bIj,0nd $strend2 | |||
| beside bIs,aId $strend2 | |||
| between bItw,i:n $strend2 | |||
| together t@g,ED3 $strend2 | |||
| near ,ni@3 $strend2 | |||
| before bIfo@ $u2 $strend2 | |||
| behind bIhaInd $u2 $strend2 | |||
| below bIloU $u2 $strend2 | |||
| beneath bI2ni:T $u2 $strend2 | |||
| beyond bIj0nd $u2 $strend2 | |||
| beside bIsaId $u2 $strend2 | |||
| between bItwi:n $u2 $strend2 | |||
| together t@gED3 $u2 $strend2 | |||
| near ,ni@3 $strend2 | |||
| thence DEns | |||
| //aux. verbs | |||
| be %bi: $pastf $only | |||
| been ,bi:n $pastf $only | |||
| ?3 been ,bIn $pastf $only | |||
| being ,bi:IN $pastf $only $strend2 | |||
| is %Iz $pastf $only // use contraction for 'is a' | |||
| be %bi: $pastf $only | |||
| been ,bi:n $pastf $only | |||
| ?3 been ,bIn $pastf $only | |||
| being ,bi:IN $pastf $only $strend2 | |||
| is %Iz $pastf $only // use contraction for 'is a' | |||
| // am %am $nounf $only // now in en_rules | |||
| are %A@ $pastf $only | |||
| was %w0z $pastf $only | |||
| ?3 was %wVz $pastf $only | |||
| ?3 wasn't wVznt $pastf $only | |||
| wast %w0st $only $pastf $only | |||
| were %w3: $pastf $only | |||
| isn't ,Iz@nt $pastf $strend2 | |||
| aren't ,A@nt $pastf $strend2 | |||
| weren't ,w3:nt $pastf $strend2 | |||
| will $u+ $only $verbf $strend2 | |||
| will $noun | |||
| are %A@ $pastf $only | |||
| was %w0z $pastf $only | |||
| ?3 was %wVz $pastf $only | |||
| ?3 wasn't wVznt $pastf $only | |||
| wast %w0st $only $pastf $only | |||
| were %w3: $pastf $only | |||
| isn't ,Iz@nt $pastf $strend2 | |||
| aren't ,A@nt $pastf $strend2 | |||
| weren't ,w3:nt $pastf $strend2 | |||
| will $u+ $only $verbf $strend2 | |||
| //will $noun // but not "this/these/that/those will" | |||
| (will to) wIlt@5 | |||
| would $u+ $verbf $only $strend2 | |||
| (would have) w%Udh%a2v $pastf | |||
| (would have) wUdhav $pastf $atend | |||
| (would have to) wUd,havt@5 $verbf $strend2 | |||
| (wouldn't have) ,wUdnt@v $pastf $strend2 | |||
| (would have to) wUdhavt@5 $u2 $verbf $strend2 | |||
| (wouldn't have) wUdnt@v $u1 $pastf $strend2 | |||
| (wouldn't have to) ,wUdntavt@5 $verbf $strend2 | |||
| won't woUnt $u+ $verbf $strend2 $only | |||
| won't woUnt $u+ $verbf $strend2 $only | |||
| wouldst $u+ | |||
| (won't have) woUnta2v $pastf $u1 | |||
| (won't have) woUnthav $pastf $atend | |||
| (won't have to) w'oUntavt@5 $verbf $strend2 | |||
| (won't have) woUnta2v $pastf $u1 | |||
| (won't have) woUnthav $pastf $atend | |||
| (won't have to) w'oUntavt@5 $verbf $strend2 | |||
| must $verbf | |||
| (must have) mVsta2v $pastf $1 | |||
| @@ -2800,81 +2804,81 @@ shall ,Sal $verbf $only $strend2 | |||
| shalt ,Salt $verbf $only | |||
| should ,SUd $verbf $only $strend2 | |||
| (should have) SUd@v $pastf $u1+ | |||
| (should have to) SUd,havt@5 $verbf $strend2 | |||
| shouldn't ,SUdnt $verbf $strend2 $only | |||
| (shouldn't have) SUdnth@v $pastf $u1+ | |||
| (shouldn't have to) 'SUdntavt@5 $verbf $strend2 | |||
| shalln't ,SA:nt $verbf $strend2 | |||
| shan't ,SA:nt $verbf $strend2 | |||
| can %kan $verbf $only $strend2 | |||
| can't kA:nt $verbf $only $strend2 | |||
| ?3 cannot $2 $verbf $only $strend2 | |||
| (can't have) kA:nta2v $pastf | |||
| (can't have to) ,kA:nt'avt@5 $verbf $atend | |||
| ?3 can't kant $verbf $only $strend2 | |||
| ?3 (can't have) kanta2v $pastf | |||
| (should have to) SUdhavt@5 $u2 $verbf $strend2 | |||
| shouldn't ,SUdnt $verbf $strend2 $only | |||
| (shouldn't have) SUdnth@v $pastf $u1+ | |||
| (shouldn't have to) 'SUdntavt@5 $verbf $strend2 | |||
| shalln't ,SA:nt $verbf $strend2 | |||
| shan't ,SA:nt $verbf $strend2 | |||
| can %kan $verbf $only $strend2 | |||
| can't kA:nt $verbf $only $strend2 | |||
| ?3 cannot $2 $verbf $only $strend2 | |||
| (can't have) kA:nta2v $pastf | |||
| (can't have to) ,kA:nt'avt@5 $verbf $atend | |||
| ?3 can't kant $verbf $only $strend2 | |||
| ?3 (can't have) kanta2v $pastf | |||
| ?3 (can't have to) ,kant'avt@5 $verbf $atend | |||
| could %kUd $verbf $strend2 $only | |||
| (could have) ,kUda2v $pastf | |||
| (could have) kUdhav $pastf $atend | |||
| (could have to) kUd,havt@5 $verbf $strend2 | |||
| could %kUd $verbf $strend2 $only | |||
| (could have) ,kUda2v $pastf | |||
| (could have) kUdhav $pastf $atend | |||
| (could have to) kUdhavt@5 $u2 $verbf $strend2 | |||
| couldn't ,kUd@nt $verbf $strend2 | |||
| (couldn't have) kUd@nt@v $pastf $u1+ | |||
| (couldn't have to) 'kUd@ntavt@5 $verbf $strend2 | |||
| may meI $verbf $strend2 | |||
| (may have) meIha2v $pastf $u1+ | |||
| (may have to) ,meIh'avt@5 $verbf $atend | |||
| might ,maIt $verbf $strend2 $only | |||
| (might have) maItha2v $pastf $u1+ | |||
| (might have to) ,maIth'avt@5 $verbf $atend | |||
| may meI $verbf $strend2 | |||
| (may have) meIha2v $pastf $u1+ | |||
| (may have to) ,meIh'avt@5 $verbf $atend | |||
| might ,maIt $verbf $strend2 $only | |||
| (might have) maItha2v $pastf $u1+ | |||
| (might have to) ,maIth'avt@5 $verbf $atend | |||
| have %hav $pastf $only $strend2 | |||
| have %hav $pastf $only $strend2 | |||
| haves havz | |||
| (have been) %hav%bIn $pastf | |||
| has %ha2z $pastf $only | |||
| has haz $only $atend | |||
| (has been) %haz%bIn $pastf | |||
| (has to) haztU $atend | |||
| has haz $allcaps | |||
| hath %haT $pastf $only | |||
| had %had $pastf $strend2 $only | |||
| (had been) %had%bIn $pastf | |||
| having ,havI2N $strend2 $pastf $only | |||
| haven't hav@nt $pastf | |||
| hadn't had@nt $pastf | |||
| hasn't haz@nt $pastf | |||
| get %gEt $strend2 $pastf $only | |||
| getting ,gEtI2N $strend2 $pastf $only | |||
| got %g0t $strend2 $pastf $only | |||
| go ,goU $strend2 $only | |||
| goes %goUz $strend2 $only | |||
| going ,goUI2N $strend2 $only | |||
| gone %g0n $strend2 $only | |||
| ?3 gone %gOn $strend2 $only | |||
| went %wEnt $strend2 $only | |||
| do du: $verbf | |||
| (do not) du:n0t $verbf $u2+ | |||
| does dVz $verbf | |||
| (does not) dVzn0t $verbf $u2+ | |||
| don't doUnt $verbf | |||
| doesn't dVz@nt $verbf | |||
| doesnt dVz@nt $verbf | |||
| doing ,du:I2N $strend2 $only | |||
| did dId $verbf | |||
| (did not) dIdn0t $verbf $u2+ | |||
| didn't dIdnt $verbf | |||
| (have been) %hav%bIn $pastf | |||
| has %ha2z $pastf $only | |||
| has haz $only $atend | |||
| (has been) %haz%bIn $pastf | |||
| (has to) haztU $atend | |||
| has haz $allcaps | |||
| hath %haT $pastf $only | |||
| had %had $pastf $strend2 $only | |||
| (had been) %had%bIn $pastf | |||
| having ,havI2N $strend2 $pastf $only | |||
| haven't hav@nt $pastf | |||
| hadn't had@nt $pastf | |||
| hasn't haz@nt $pastf | |||
| get %gEt $strend2 $pastf $only | |||
| getting ,gEtI2N $strend2 $pastf $only | |||
| got %g0t $strend2 $pastf $only | |||
| go ,goU $strend2 $only | |||
| goes %goUz $strend2 $only | |||
| going ,goUI2N $strend2 $only | |||
| gone %g0n $strend2 $only | |||
| ?3 gone %gOn $strend2 $only | |||
| went %wEnt $strend2 $only | |||
| do du: $verbf | |||
| (do not) du:n0t $verbf $u2+ | |||
| does dVz $verbf | |||
| (does not) dVzn0t $verbf $u2+ | |||
| don't doUnt $verbf | |||
| doesn't dVz@nt $verbf | |||
| doesnt dVz@nt $verbf | |||
| doing ,du:I2N $strend2 $only | |||
| did dId $verbf | |||
| (did not) dIdn0t $verbf $u2+ | |||
| didn't dIdnt $verbf | |||
| done dVn | |||
| putting pUtI2N | |||
| put ,pUt $onlys $strend2 | |||
| put ,pUt $onlys $strend2 | |||
| become bI,kVm $strend2 | |||
| became bI,keIm $strend2 | |||
| become bIkVm $u2 $strend2 | |||
| became bIkeIm $u2 $strend2 | |||
| we're %wi@3 | |||
| you're %jO@ | |||
| @@ -2884,58 +2888,58 @@ it'd %It@d | |||
| that'd %Dat@d | |||
| there'd %De@d | |||
| I'll %aIl $verbf | |||
| you'll %ju:l $verbf | |||
| he'll %hi:l $verbf | |||
| she'll %Si:l $verbf | |||
| we'll %wi:l $verbf | |||
| they'll %DeIl $verbf | |||
| there'll %De@l $verbf | |||
| I'll aIl $u $verbf | |||
| you'll ju:l $u $verbf | |||
| he'll hi:l $u $verbf | |||
| she'll Si:l $u $verbf | |||
| we'll wi:l $u $verbf | |||
| they'll DeIl $u $verbf | |||
| there'll De@l $u $verbf | |||
| I've %aIv $pastf | |||
| you've %ju:v $pastf | |||
| he's %hi:z $pastf | |||
| she's %Si:z $pastf | |||
| we've %wi:v $pastf | |||
| they've %DeIv $pastf | |||
| I've aIv $u $pastf | |||
| you've ju:v $u $pastf | |||
| he's hi:z $u $pastf | |||
| she's Si:z $u $pastf | |||
| we've wi:v $u $pastf | |||
| they've DeIv $u $pastf | |||
| we'd %wi:d $pastf | |||
| we'd wi:d $u $pastf | |||
| I aI $u+ $verbf $only | |||
| I aI $u+ $verbf $only | |||
| (I am) %aIa2m | |||
| (I am) %aIam $atend | |||
| he %hi: $verbsf | |||
| she %Si: $only $verbsf | |||
| it %It $verbsf | |||
| (it has) %It||haz $atend | |||
| (it is) %It||Iz $atend | |||
| (it was) %It||w0z $atend | |||
| it $allcaps $abbrev | |||
| we %wi: $verbf $only | |||
| you %ju: $verbf | |||
| they %DeI $verbf | |||
| (I am) %aIam $atend | |||
| he hi: $u $verbsf | |||
| she Si: $u $only $verbsf | |||
| it It $u $verbsf | |||
| (it has) %It||haz $atend | |||
| (it is) %It||Iz $atend | |||
| (it was) %It||w0z $atend | |||
| it $allcaps $abbrev | |||
| we wi: $u $verbf $only | |||
| you ju: $u $verbf | |||
| they DeI $u $verbf | |||
| thee ,Di: | |||
| thou DaU | |||
| thy ,DaI | |||
| thine ,DaIn | |||
| me ,mi: $only | |||
| him ,hIm $only | |||
| us ,Vz $only | |||
| us $abbrev $allcaps | |||
| them ,DEm $only | |||
| my %maI $nounf $strend2 | |||
| his h%Iz $nounf $only $strend2 | |||
| her %h3: $nounf $only | |||
| hers %h3:z $strend2 | |||
| its %Its $nounf | |||
| our %aU@ $nounf $only | |||
| ?3 our %aU3 $nounf $only | |||
| your %jO@ $nounf $only | |||
| ?6 your %jU@ $nounf $only | |||
| their %De@ $nounf $only | |||
| me ,mi: $only | |||
| him ,hIm $only | |||
| us ,Vz $only | |||
| us $abbrev $allcaps | |||
| them ,DEm $only | |||
| my maI $u $nounf $strend2 | |||
| his hIz $u $nounf $only $strend2 | |||
| her h3: $u $nounf $only | |||
| hers h3:z $u $strend2 | |||
| its Its $u $nounf | |||
| our aU@ $u $nounf $only | |||
| ?3 our aU3 $u $nounf $only | |||
| your jO@ $u $nounf $only | |||
| ?6 your jU@ $u $nounf $only | |||
| their De@ $u $nounf $only | |||
| theirs De@z | |||
| none n0n | |||
| @@ -2946,76 +2950,76 @@ someone sVmw0n | |||
| //conjunctions | |||
| although OlD'oU $pause | |||
| and %and $pause $only | |||
| as ,az $pause $only | |||
| (as is) ,az,Iz $pause | |||
| (as it is) ,azIt,Iz $u+ | |||
| because bIk'Vz $pause | |||
| once $pause | |||
| or %O@ $pause $only | |||
| nor nO@ $pause $only | |||
| but ,bVt $pause $only | |||
| if ,If $pause $only | |||
| despite $pause | |||
| instead $pause | |||
| otherwise VD3waIz $pause | |||
| regardless $pause | |||
| since sIns $pause | |||
| thus DVs $pause | |||
| although OlD'oU $pause | |||
| and and $u $pause $only | |||
| as ,az $pause $only | |||
| (as is) ,az,Iz $pause | |||
| (as it is) ,azIt,Iz $u+ | |||
| because bIkVz $2 $pause | |||
| once $pause | |||
| or O@ $u $pause $only | |||
| nor nO@ $pause $only | |||
| but ,bVt $pause $only | |||
| if ,If $pause $only | |||
| despite $pause | |||
| instead $pause | |||
| otherwise VD3waIz $pause | |||
| regardless $pause | |||
| since sIns $pause | |||
| thus DVs $pause | |||
| though ,DoU | |||
| whenever wEn,Ev3 $pause | |||
| within $pause | |||
| whoever hu:'Ev3 | |||
| whatever w0t'Ev3 $pause | |||
| ?3 whatever wVt'Ev3 $pause | |||
| while $pause | |||
| whilst waIlst $pause | |||
| (rather than) r'A:D3||Da2n $pause | |||
| //some adverbs (note -ly suffix already implies verb-follows) | |||
| just $verbf | |||
| never $verbf | |||
| now $verbf | |||
| now naU $verbf $allcaps | |||
| soon $verbf | |||
| still $verbf | |||
| already O:lr,EdI $verbf $strend2 | |||
| not ,n0t $verbextend $only $strend | |||
| (not have) n0ta2v $pastf $u1 | |||
| (not have) n0thav $pastf $atend | |||
| (not have to) ,n0thavt@5 $pastf $strend | |||
| (not a) ,n0t@ $nounf | |||
| not n0t $allcaps $verbextend // don't spell "NOT"; speak it with stress | |||
| only oUnlI $verbextend | |||
| any ,EnI $nounf $only | |||
| many mEnI $nounf | |||
| whenever wEnEv3 $u2 $pause | |||
| within $pause | |||
| whoever hu:Ev3 $2 | |||
| whatever w0tEv3 $2 $pause | |||
| ?3 whatever wVtEv3 $2 $pause | |||
| while $pause | |||
| whilst waIlst $pause | |||
| (rather than) r'A:D3||Da2n $pause | |||
| //some adverbs | |||
| just $verbf | |||
| never $verbf | |||
| now $verbf | |||
| now naU $verbf $allcaps | |||
| soon $verbf | |||
| still $verbf | |||
| already O:lrEdI $u2 $verbf $strend2 | |||
| not ,n0t $verbextend $only $strend | |||
| (not have) n0ta2v $pastf $u1 | |||
| (not have) n0thav $pastf $atend | |||
| (not have to) ,n0thavt@5 $pastf $strend | |||
| (not a) ,n0t@ $nounf | |||
| not n0t $allcaps $verbextend // don't spell "NOT"; speak it with stress | |||
| only oUnlI $verbextend | |||
| any ,EnI $nounf $only | |||
| many mEnI $nounf | |||
| (many of) mEnI|@v | |||
| some ,sVm $nounf $unstressend $only | |||
| some ,sVm $nounf $unstressend $only | |||
| (some one) sVmw0n | |||
| one w0n $nounf $onlys $unstressend | |||
| ones w0nz $only $unstressend | |||
| this %DIs $nounf $strend $verbsf | |||
| (this one) D'Isw,0n $verbsf | |||
| that %Dat $nounf $strend2 $verbsf | |||
| (that a) ,Dat@ $nounf | |||
| (that an) ,Dat@n $nounf | |||
| (that it) ,Da2tIt $verbsf | |||
| one w0n $nounf $onlys $unstressend | |||
| ones w0nz $only $unstressend | |||
| this DIs $u+ $nounf $verbsf | |||
| (this one) D'Isw,0n $verbsf | |||
| that Dat $u $nounf $strend2 $verbsf | |||
| (that a) ,Dat@ $nounf | |||
| (that an) ,Dat@n $nounf | |||
| (that it) ,Da2tIt $verbsf | |||
| (that one) D'atw,0n | |||
| (that the) %DatD@2 | |||
| these %Di:z $nounf $strend2 $only | |||
| those %DoUz $nounf $strend2 $only | |||
| there %De@ $strend2 $only | |||
| these Di:z $u $nounf $strend2 $only | |||
| those DoUz $u $nounf $strend2 $only | |||
| there De@ $u $strend2 $only | |||
| (there be) De@b'i: | |||
| than %Dan $only | |||
| (than a) ,Dan@ $nounf | |||
| (than an) ,Dan@n $nounf | |||
| then DEn $verbf | |||
| than Dan $u $only | |||
| (than a) ,Dan@ $nounf | |||
| (than an) ,Dan@n $nounf | |||
| then DEn $verbf | |||
| // these should be stressed at the start of a sentence | |||
| which ,wItS $pause $strend2 $only $verbf | |||
| @@ -3102,5 +3106,3 @@ like laIk $strend2 | |||
| ?3 vitamin vaIt@mIn | |||
| ?3 zebra zi:br@ | |||
| @@ -625,6 +625,7 @@ | |||
| amaz (o am@z | |||
| ambi (d ambI | |||
| ch) am (b eIm | |||
| fl) ame eIm | |||
| As) ame (_ 'A:mE | |||
| _) ame (l a2mi: | |||
| &) am (ent @m | |||
| @@ -1604,7 +1605,7 @@ | |||
| di (scot dI | |||
| di (scount dI | |||
| di (scov dI2 | |||
| _) di (se ,dI | |||
| _) di (seP3 ,dIs | |||
| di (sh_ dI | |||
| di (shC dI | |||
| _) di (shev+ dI2 | |||
| @@ -1743,7 +1744,7 @@ | |||
| r) eu (d OI | |||
| eu (m_ i: | |||
| s) eu (m_ 'i@ | |||
| eur 3: | |||
| l) eur 3: | |||
| ?5 eur VR | |||
| eur (_ '3: | |||
| ?3 eur (_ 'U@ | |||
| @@ -2001,7 +2002,7 @@ | |||
| _) ena (m I2na | |||
| &) en (Ance @n | |||
| &) en (ch En | |||
| encha (n %EntSaa | |||
| _) encha (n %EntSaa | |||
| enclav EnkleIv | |||
| en (core 0n | |||
| &) ency (_ @ns%I | |||
| @@ -2442,6 +2443,7 @@ | |||
| o) g (et dZ | |||
| er) g (et dZ | |||
| for) ge (t gE | |||
| bo) g (Ey g | |||
| &) gia (_ dZ@ | |||
| &) gia (C_ dZ@ | |||
| &) giu (m dZ@ | |||
| @@ -2455,6 +2457,7 @@ | |||
| g (ird g | |||
| g (irl g | |||
| g (irt g | |||
| _) g (it g | |||
| g (ive g | |||
| @) guay (_ gwaI | |||
| gue (_ g | |||
| @@ -2491,6 +2494,9 @@ | |||
| _) house (@ haUs | |||
| house (_S5 haUs | |||
| houses (_S6 haUzI2z | |||
| _) hypo (@P4 h,aIpoU | |||
| hypo (de h,aIp@ | |||
| hypo (thet h,aIp@ | |||
| .group i | |||
| i I | |||
| @@ -2724,8 +2730,9 @@ | |||
| iah (_ 'aI@ | |||
| ia (m I2@ | |||
| &) ia (n i@ | |||
| &) ia (nic I'a | |||
| &) ia (na I'a | |||
| @) ia (nic I'a | |||
| @) ia (nit I'a | |||
| @) ia (na I'a | |||
| ia (ng_ ja | |||
| _f) ia (nc I'0 | |||
| _f) iance I'0nseI | |||
| @@ -2778,6 +2785,7 @@ | |||
| ie (ntal I'E | |||
| g) ie (n i: | |||
| sc) ie (nc aI@ | |||
| ie (ntiC aI@ | |||
| _sc) ie (n aI@ | |||
| ?8 _sc) ie (n aIa2 | |||
| ie (nCiA I2'E | |||
| @@ -3149,7 +3157,7 @@ | |||
| it (um aIt | |||
| .group iv | |||
| @) iva (_ 'aIv@ | |||
| @l) iva (_ 'aIv@ | |||
| @) iv (e Iv | |||
| iv (e# aIv | |||
| h) iv (e_ aIv | |||
| @@ -3760,6 +3768,7 @@ | |||
| _h) on (ey Vn | |||
| n) on (e 0n | |||
| m) one (ta VnI | |||
| m) one (ti 0nI2 | |||
| _) one (r oUn@ | |||
| m) on (ey Vn | |||
| und) one (_ Vn | |||
| @@ -4348,6 +4357,7 @@ | |||
| _) rho (t roU | |||
| rhyth rID | |||
| _) rm ,A@Em | |||
| rrhea r'i@ | |||
| rrhoea r'i@ | |||
| _) ru (bL01 ru: | |||
| _) run (a rVn | |||
| @@ -4403,8 +4413,8 @@ | |||
| re (gist rE | |||
| rehen rIh'En | |||
| _) re (i@P2 r,i: | |||
| _) rei (l raI | |||
| _) rei (c raI | |||
| _) rei (l raI | |||
| _) rele (g rElI2 | |||
| rele (nt rI2lE | |||
| rele (v rElI | |||
| @@ -24,7 +24,7 @@ | |||
| // 2006-11-18 Gilles Casse <[email protected]> | |||
| // | |||
| // Updated 2009-03-12 Michel Such <[email protected]> | |||
| // Updated 2009-04-04 Michel Such <[email protected]> | |||
| // | |||
| // * Numbers, a few abbreviations and exceptions. | |||
| // | |||
| @@ -233,7 +233,7 @@ _dpt virgyl | |||
| abc $abbrev | |||
| ac $abbrev | |||
| adsl $abbrev | |||
| alt $pause | |||
| alt _::alt | |||
| amd $abbrev | |||
| anpe $abbrev | |||
| api $abbrev | |||
| @@ -242,7 +242,7 @@ bd boulevard $text | |||
| brltty $abbrev | |||
| cci $abbrev | |||
| cio $abbrev | |||
| ctrl control $text $pause | |||
| ctrl _::kO~tRol | |||
| dept depart@-mA~ | |||
| edf $abbrev | |||
| etc etsetera | |||
| @@ -253,16 +253,21 @@ ibm $abbrev | |||
| ide $abbrev | |||
| ip $abbrev | |||
| jaws dZ'awz | |||
| kbit kilobit | |||
| kbits kilobit | |||
| kde $abbrev | |||
| kg kilogram | |||
| khz kiloE2rts | |||
| km kilomètre $text | |||
| kw kilowat | |||
| kw kilowat | |||
| m. m@sjY | |||
| mbit mega2bit | |||
| mbits mega2bit | |||
| mbrola Embrola | |||
| mhz megaE2rts | |||
| mlle mad@mwAzEl | |||
| mme madam | |||
| mlle mademoiselle $text | |||
| mme madame $text | |||
| mr m@sjY | |||
| nsi $abbrev | |||
| nsis $abbrev | |||
| @@ -576,7 +581,6 @@ bus bys | |||
| bus by $verb | |||
| campus kA~pys | |||
| cancer kA~sEr | |||
| catcher catcheur $text | |||
| (chef d'oeuvre) chédeuvre $text | |||
| (chef d'oeuvres) chédeuvres $text | |||
| choeur kWr | |||
| @@ -594,6 +598,7 @@ hélas elas $u+ | |||
| iris iris | |||
| laser lazEr | |||
| malus malys | |||
| mailto mEjltu_ | |||
| mapper _^_en | |||
| mars mars | |||
| mieux mjY $u+ | |||
| @@ -605,6 +610,7 @@ polder pOldEr | |||
| premier pr@mjer2 | |||
| program _^_en | |||
| quit _^_en | |||
| recorder ricordeur $text | |||
| scanner skaner2 | |||
| scanner skanWr $noun | |||
| sir _^_EN | |||
| @@ -794,3 +800,4 @@ zimbabwe zimbabwe | |||
| @@ -23,7 +23,7 @@ | |||
| // 2006-11-18 Gilles Casse <[email protected]> | |||
| // | |||
| // Updated: 2009-03-12 Michel Such <[email protected]> | |||
| // Updated: 2009-04-01 Michel Such <[email protected]> | |||
| // | |||
| // Letter classes: | |||
| @@ -126,6 +126,7 @@ | |||
| e) ch (_ k // varech | |||
| _A) ch (o_ k // écho | |||
| mani) ch (é k // manichéisme | |||
| mito) ch (o k // mitochondrie | |||
| _eu) ch (ari k // eucharistie | |||
| or) ch (esC k // orchestre | |||
| or) ch (iC k // orchidée | |||
| @@ -213,17 +214,17 @@ _) ç' (P2v s | |||
| // Define use of the final 'e' in french | |||
| e (_ | |||
| rch) e (_ =@- | |||
| rch) e (s_ =@- | |||
| elqu) e =@- | |||
| rch) e (_ =@3 | |||
| rch) e (s_ =@3 | |||
| elqu) e =@3 | |||
| uisqu) e =@ | |||
| rsqu) e =@ | |||
| _C) e (_ @2 // je te | |||
| -c) e (_ @- | |||
| -j) e (_ @- | |||
| C) e (- @- | |||
| L02r) e (_ =@- | |||
| L02r) e (s_ =@- | |||
| L02r) e (_ =@3 | |||
| L02r) e (s_ =@3 | |||
| e (Ce_ E | |||
| eau o // bateau cheveaux | |||
| @@ -246,6 +247,7 @@ _) ç' (P2v s | |||
| gu) e (rA @ | |||
| qu) e (rA @ | |||
| v) e (lop @- | |||
| tch) e (rX W | |||
| @) em (me a // patiemment | |||
| em (b A~ // décembre | |||
| em (mACC A~ // emmancher | |||
| @@ -870,7 +872,8 @@ _) half _^_en | |||
| om (_ Om // www.web.com | |||
| on (K O~ // mon | |||
| on (t_ O~t2 // mont vont sont | |||
| _m) ont (CAC O~ // montpellier | |||
| _m) ont (pAC O~ // Montpellier | |||
| _m) ont (rAal O~ // Montreal | |||
| onsh (A O~z // bonshommes | |||
| onh (A On // bonhomme | |||
| _) on (z _!O~ // onze, onzi�me | |||
| @@ -1,6 +1,9 @@ | |||
| // This file is UTF-8 encoded | |||
| // Italian: any [E] or [O] phonemes in unstressed words must be listed explicitly | |||
| // $alt change [e] or [o] in the stressed syllable to [E] or [O] | |||
| // $alt2 change [E] or [O] in the stressed syllable to [e] or [o] | |||
| // Any [E] or [O] phonemes in unstressed words must be listed explicitly | |||
| // character names | |||
| @@ -148,38 +151,38 @@ _0Z3 mill'ezimi // 1000ths | |||
| (http ://) 'ak:at,i:t,i:p'i:_ | |||
| // articles | |||
| i $u | |||
| il $u | |||
| la $u | |||
| le $u | |||
| lo $u | |||
| un $u | |||
| una $u | |||
| i $u $only | |||
| il $u $only | |||
| la $u $only | |||
| le $u $only | |||
| lo $u $only | |||
| un $u $only | |||
| una $u $only | |||
| gli l^i $u | |||
| gli l^i $only $u | |||
| // pronouns | |||
| io $u+ | |||
| tu $u+ | |||
| lui $u+ | |||
| lei $u+ | |||
| noi $u+ | |||
| voi $u+ | |||
| loro $u+ | |||
| egli $u+ | |||
| ella $u+ | |||
| essa $u+ | |||
| esse $u+ | |||
| essi $u+ | |||
| mi $u+ | |||
| ti $u+ | |||
| si $u+ | |||
| ci $u+ | |||
| vi vi $u+ | |||
| li li $u+ | |||
| io $u+ $only | |||
| tu $u+ $only | |||
| lui $u+ $only | |||
| lei $u+ $only | |||
| noi $u+ $only | |||
| voi $u+ $only | |||
| loro $u+ $only | |||
| egli el^i $u+ | |||
| ella ella $u+ | |||
| essa essa $u+ | |||
| esse esse $u+ | |||
| essi essi $u+ | |||
| mi $u+ $only | |||
| ti $u+ $only | |||
| si $u+ $only | |||
| ci $u+ $only | |||
| vi vi $u+ $only | |||
| li li $u+ $only | |||
| // words that double the following consonant | |||
| @@ -216,7 +219,7 @@ queste $u // these | |||
| quel $u // that | |||
| quella $u // that | |||
| quei $u // those | |||
| quei kw2ej // those | |||
| quegli $u // those | |||
| quelle $u // those | |||
| @@ -235,7 +238,7 @@ tuttavia $pause // however | |||
| invece $pause // instead | |||
| malevolenza $pause // despite | |||
| pertanto $pause // therefore | |||
| né $pause // neither-nor | |||
| né $pause $only // neither-nor | |||
| (in cui) in||kw2,i $pause // in which | |||
| che $u $pause // which | |||
| @@ -243,16 +246,16 @@ che $u $pause // which | |||
| // prepositions | |||
| a $u // $double | |||
| al $u | |||
| al $u $only | |||
| allo $u | |||
| alla $u | |||
| ai $u | |||
| agli $u | |||
| agli $u $only | |||
| alle $u | |||
| ad $u $brk | |||
| da $u $brk // by | |||
| da $u $only $brk // by | |||
| dal $u | |||
| dallo $u | |||
| dalla $u // by the | |||
| @@ -260,25 +263,25 @@ dai $u | |||
| dagli $u | |||
| dalle $u | |||
| di $u $brk // of | |||
| del $u | |||
| di $u $only $brk // of | |||
| del $u $only | |||
| dello $u | |||
| della $u // of the | |||
| dei $u | |||
| degli $u | |||
| delle $u | |||
| de $u | |||
| de $u $only | |||
| in $u $brk // in | |||
| nel $u $brk | |||
| in $u $brk $only // in | |||
| nel $u $brk $only | |||
| nello $u $brk | |||
| nella $u $brk // in the | |||
| nei $u $brk | |||
| negli $u $brk | |||
| nelle $u $brk | |||
| ne $u $brk | |||
| ne $u $brk $only | |||
| su $u //$double // on | |||
| su $u $only //$double // on | |||
| sul $u | |||
| sullo $u | |||
| sulla $u // on the | |||
| @@ -287,15 +290,15 @@ sugli $u | |||
| sulle $u | |||
| con $u $pause $only // with | |||
| col $u | |||
| coi $u | |||
| col $u $only | |||
| coi $u $only | |||
| attraverso $u+ $brk // across, through | |||
| attraverso $brk $3 // across, through | |||
| contro $u+ $brk // against | |||
| accanto $u+ $brk // beside | |||
| verso $u+ $brk // toward | |||
| sopra $u+ $brk // above | |||
| sotto $u+ $brk // below | |||
| sotto $u+ $brk $alt2 // below | |||
| per $u $pause $only // for | |||
| eccetto $pause // except | |||
| senza $pause // without | |||
| @@ -315,9 +318,9 @@ fu $u //$double | |||
| fummo $u | |||
| foste $u | |||
| furono $u | |||
| ero $u | |||
| eri $u | |||
| era $u | |||
| ero $u $only | |||
| eri $u $only | |||
| era $u $only | |||
| eravamo $u | |||
| eravate $u | |||
| erano $u | |||
| @@ -425,14 +428,7 @@ aces _^_EN | |||
| // exceptions | |||
| aereo $2 | |||
| difficile $2 | |||
| pneumatici $3 | |||
| nott nOt: $stem | |||
| tavol $1 $stem | |||
| vent vEnt $stem | |||
| aereo a'EReo | |||
| celsius tsElsj'us | |||
| conoscerla $2 | |||
| no nO | |||
| @@ -441,38 +437,68 @@ principi $1 | |||
| tesser tess'ER | |||
| uomini $1 | |||
| // $alt = use ò or è in the stressed syllable | |||
| quia kw'ia | |||
| // If the final vowel is omitted, then the rule applies to 'a' 'e' 'i' 'o' | |||
| $textmode | |||
| abbandonatel $4 | |||
| abbazie abbazìe | |||
| abbinano $2 | |||
| abbinini $2 | |||
| abbisognino $3 | |||
| abituarcisi $2 | |||
| accalcano $2 | |||
| accalchino $2 | |||
| accantonal $3 | |||
| accatastano $3 | |||
| accatastino $3 | |||
| accavallio $4 | |||
| accenditi $2 | |||
| accertano $2 $alt | |||
| accertino $2 $alt | |||
| acclamano $2 | |||
| acclamino $2 | |||
| accolit $2 $alt | |||
| accomunano $3 | |||
| accomunino $3 | |||
| accorpano $2 $alt | |||
| accorpino $2 $alt | |||
| accostarcisi $3 | |||
| accovacciano $3 | |||
| accovaccino $3 | |||
| acefala $2 | |||
| acer accer // acer/i/o | |||
| acid accid // acida/e | |||
| acidul $1 | |||
| // fix errors in it_listx | |||
| accetto $alt | |||
| agosta $1 | |||
| allora $alt2 | |||
| anomalo $2 $alt | |||
| antera $2 | |||
| aton $1 | |||
| bagli $2 $only | |||
| barbera $2 | |||
| bocca $alt2 | |||
| borro $alt2 | |||
| capello $alt2 | |||
| ceca $alt | |||
| collodi $2 $alt $only | |||
| corsa $alt2 | |||
| doma $alt | |||
| ei eI | |||
| epa $alt | |||
| esper $1 $alt | |||
| est $only | |||
| fieri f'ieRi | |||
| forca $alt2 | |||
| fori $alt $only | |||
| gener $1 | |||
| genes $1 | |||
| gorga $alt2 | |||
| gotta $alt2 | |||
| ias iaz $1 | |||
| indolo $2 | |||
| leggi ledZ'i | |||
| lena $alt2 | |||
| nocciola $2 | |||
| olimpiade olimp'iade | |||
| orca $alt2 | |||
| ossa $alt2 | |||
| pena $alt2 | |||
| peoni $1 $only | |||
| pesce $alt2 | |||
| peste $alt | |||
| ponto $alt | |||
| protas $1 | |||
| rene $alt | |||
| scopa $alt2 | |||
| sera $alt2 | |||
| teco $alt2 | |||
| vicari $1 $only | |||
| vicaria $3 | |||
| volto $alt2 | |||
| zone $alt2 | |||
| @@ -7,14 +7,17 @@ | |||
| // K not a vowel (i.e. consonant or end-of-word) | |||
| // Y front vowels: e i (& accents) | |||
| .L01 a à o ò ó u ù | |||
| .L02 e é è | |||
| .group a | |||
| a a: | |||
| a (CK a | |||
| ai aI (K | |||
| a a | |||
| ai (K aI | |||
| ao (_ aU | |||
| au a%u | |||
| &) a (_S1q a // lookup it_list without suffix | |||
| @C) a (_S1q a // lookup it_list without suffix | |||
| @i) a (_S1q a // lookup it_list without suffix | |||
| @) a (cA_ =a | |||
| @) a (che_ =a | |||
| @@ -23,16 +26,20 @@ | |||
| @) a (bile_ 'a | |||
| @) a (ggine_ 'a | |||
| _) ae (ro aI | |||
| _) ae (r aI | |||
| @) avano (_S5 'avano | |||
| a (tterA_ 'a | |||
| .group à | |||
| à ''a | |||
| ài (K ''aI | |||
| ào (_ ''aU | |||
| àu ''a%u | |||
| .group b | |||
| b b | |||
| bb b: | |||
| li) be =be | |||
| .group c | |||
| c k | |||
| cc k: | |||
| @@ -51,38 +58,63 @@ | |||
| n) dere =deRe | |||
| .group e | |||
| e e: | |||
| e (CK e | |||
| e (T E: // The word has $alt in it_list | |||
| e (CKT E // $alt | |||
| ei ej (K | |||
| e (r E: // ?? [E] before 'r' | |||
| e (rK E | |||
| e (rsi_N e | |||
| e e | |||
| ei Ej (K | |||
| @C) e (_S1q e // lookup it_list without suffix | |||
| @Ar) e (_ e | |||
| e (C_ E | |||
| e (A E | |||
| e (C%A_ E // doubled consonant | |||
| e (CiCA_ E | |||
| e (CulA_ E | |||
| e (llu E | |||
| e (st E | |||
| e (ttA_ e | |||
| c) e (ttA_ E | |||
| e (tti@ E | |||
| e (zzA_ e | |||
| e (r E | |||
| e (rsi_N e | |||
| A) e (r_ 'E | |||
| _r) e E | |||
| &) e (_S1q e // lookup it_list without suffix | |||
| // @) e (ce_ =e | |||
| @) e (ci_ =e | |||
| C) e (re_ =e | |||
| @) e (nte_ E | |||
| @m) e (nte_ e | |||
| @) e (nza_ E | |||
| @) e (volA_ 'e | |||
| e (l E | |||
| r) e (m E | |||
| e (monA_ 'e | |||
| e (nA_ E | |||
| g) e (ne E | |||
| e (ngA_ e | |||
| e (nCA_ E | |||
| @m) e (ntA_ e | |||
| %C) e (rA_ =E | |||
| C) e (re_ =E | |||
| gg) e (ro_ E | |||
| f) e (rm e | |||
| @) e (rrimo_ 'E | |||
| @) e (simo_ 'e | |||
| h) e (ss e | |||
| m) e (ss e | |||
| _sC) e (ss e | |||
| e (ssa_ e | |||
| e (tr E | |||
| e (ti E | |||
| e (vi_ E | |||
| e (vo_ E | |||
| @) e (volA_ 'e | |||
| e (zA E | |||
| @) evano(_S5 'evano | |||
| .group f | |||
| f f | |||
| @A) f (ico_ =f | |||
| @A) f (ichA_ =f | |||
| @A) f (ilo_ =f | |||
| @A) f (ero_ =f | |||
| A) f (ero_ =f | |||
| .group g | |||
| g g | |||
| @@ -90,6 +122,8 @@ | |||
| gh g | |||
| g (Y dZ | |||
| gi (L01 dZj | |||
| gi (a_ dZ'i | |||
| n) gi (a_ dZj | |||
| gg (Y dZ: | |||
| ggi (L01 dZ: | |||
| @) gger (lo_ =dZ:eR | |||
| @@ -100,55 +134,74 @@ | |||
| gn n^ | |||
| gu (A gw | |||
| @) g (ero_ =g | |||
| @) gno (lA_ n^'o | |||
| .group h | |||
| h | |||
| ha h'a | |||
| _) ha h'a | |||
| _) hà h'a | |||
| .group i | |||
| i i: | |||
| i (CK i | |||
| i i | |||
| i (A j | |||
| l) i (A %i | |||
| r) i (A %i | |||
| _C) i (a i | |||
| _C) i (à i | |||
| i (o i | |||
| i (ò i | |||
| i (ó i | |||
| @) ia (_ =i%a | |||
| @) io (_ =i%o | |||
| @) ià (_ i'a | |||
| X) ia (_ 'ia | |||
| af) ia (_ 'ia | |||
| fon) ia (_ 'ia | |||
| scop) ia (_ 'ia | |||
| er) ia (_ 'ia | |||
| gor) ia (_ 'ia | |||
| metr) ia (_ 'ia | |||
| t) ia (_ 'ia | |||
| @) io (_S1q =i%o | |||
| a) i (+ j | |||
| e) i (+ j | |||
| à) i (+ j | |||
| L02) i (+ j | |||
| o) i (+ j | |||
| &) i (_S1q i // lookup it_list without suffix | |||
| @C) i (_S1q i // lookup it_list without suffix | |||
| @) i (co_ =i | |||
| @) i (ci_ =i | |||
| @) i (dA_ =i | |||
| @) i (dere_ 'i | |||
| @) i (le_ =i | |||
| @) i (li_ =i | |||
| @) i (ma_ =i | |||
| r) i (ma_ i | |||
| laCr) i (ma_ =i | |||
| st) i (ma_ i | |||
| enz) i (ma_ i | |||
| @) i (mo_ =i | |||
| @) iera (_ i'E:Ra | |||
| @) iere (_ i'E:Re | |||
| @) i (ente_ i | |||
| @) i (ante_ i | |||
| @) i (Ante_ i | |||
| i (acA_ 'i | |||
| i (asi_ 'i | |||
| @) i (bile_ 'i | |||
| @) i (cA_ =i | |||
| tr) i (ce_ i | |||
| @) i (chA_ =i | |||
| @) i (dA_ =i | |||
| @) i (dere_ 'i | |||
| @) ie (rA_ i'E | |||
| @) ié (rA_ i'E | |||
| @) iè (rA_ i'E | |||
| @) i (gA_ =i | |||
| i (genA_ 'i | |||
| c) i (lA_ =i | |||
| g) i (lA_ =i | |||
| ss) i (lA_ =i | |||
| b) i (le_ =i | |||
| m) i (le_ =i | |||
| i (lA_ =i | |||
| @) i (ma_ =i | |||
| r) i (ma_ i | |||
| laCr) i (ma_ =i | |||
| st) i (ma_ i | |||
| enz) i (ma_ i | |||
| @) i (mo_ =i | |||
| inas (_ 'inas | |||
| i (ne_ =i | |||
| @) issima(_S6 'issima | |||
| @) issime(_S6 'issime | |||
| @) issimi(_S6 'issimi | |||
| @) issimo(_S6 'issimo | |||
| @) issero(_S6 'issero | |||
| @) i (sti 'i | |||
| p) i (te_ =i | |||
| .group j | |||
| @@ -165,43 +218,83 @@ | |||
| .group m | |||
| m m | |||
| A) mi (a m'i: | |||
| @) mi (co_ m'i: | |||
| A) mi (a_ m'i | |||
| .group n | |||
| n n | |||
| n (g N | |||
| n (ge n | |||
| n (gé n | |||
| n (gè n | |||
| n (gi n | |||
| n (gY n | |||
| n (k N | |||
| .group o | |||
| o o: | |||
| o (CK o | |||
| o (T O: // $alt | |||
| o (CKT O // $alt | |||
| oi oI (K | |||
| o o | |||
| oi O%I | |||
| oi (o_ o%I | |||
| oi (sCA_ o'i | |||
| o (C%A_ O // doubled consonant | |||
| o (CACA_ O | |||
| o (Cr O | |||
| o (CC_ O | |||
| o (r O: // ?? [O] before 'r' | |||
| o (rK O | |||
| o (re_ o | |||
| &) o (_S1q o // lookup it_list without suffix | |||
| @C) o (_S1q o // lookup it_list without suffix | |||
| @i) o (_S1q o // lookup it_list without suffix | |||
| @) o (ista_ o | |||
| @) o (ismo_ o | |||
| i) o O | |||
| i) o (ne o | |||
| i) o (so_ o | |||
| m) o (bile O | |||
| o (ca_ O | |||
| o (co_ O | |||
| @) o (di_ =o | |||
| @) o (do_ =o | |||
| @) o (fono_ 'O | |||
| o (genA_ 'O | |||
| l) o (gico_ 'O | |||
| @) o (gnolo_ 'o | |||
| @) o (nzolo_ 'o | |||
| @) o (grafo_ 'O | |||
| @) o (fono_ 'O | |||
| @) o (metro_ 'O | |||
| o (lX O | |||
| nd) o (lA_ =O | |||
| ns) o (lA_ =O | |||
| CC) o (lA_ =O | |||
| u) o (lA_ O | |||
| v) o (lA_ =o | |||
| @) o (la_ O | |||
| gn) o (la_ O | |||
| o (li O | |||
| @) o (liA_ O | |||
| @) o (lo_ =O | |||
| i) o (lA_ O | |||
| ci) o (lA_ =O | |||
| @) o (logo_ 'O | |||
| o (str 'O | |||
| @) o (di_ =o | |||
| @) o (do_ =o | |||
| @) o (lo_ =o | |||
| c) o (ltA_ O | |||
| sc) o (ltA_ o | |||
| v) o (lt O | |||
| @) o (metro_ 'O | |||
| @) o (ma_ O | |||
| @) o (mo_ O | |||
| dr) o (mo_ =o | |||
| o (ni O | |||
| o (ni_ o | |||
| o (no_ O | |||
| @) o (nomo_ 'O | |||
| @) o (nzolo_ 'o | |||
| o (o O | |||
| o (polA_ 'O | |||
| sc) o (p O | |||
| o (r O | |||
| o (re_ o | |||
| f) o (rmA_ o | |||
| o (si_ O | |||
| o (ss O | |||
| Ar) o (ssA_ o | |||
| o (st O | |||
| o (stracA_ 'O | |||
| o (ttol O | |||
| o (zA O | |||
| .group p | |||
| @@ -239,11 +332,15 @@ | |||
| s (t s | |||
| s (x s | |||
| sc (Y S | |||
| sci (L01 S | |||
| sci (A S | |||
| sci (i S%i | |||
| sci (ì S%i | |||
| sch (Y sk | |||
| sh (K S // foreign words | |||
| K) sh S // foreign words | |||
| @) sia s'ia | |||
| @) sia z'ia | |||
| @C) sia s'ia | |||
| @) sià zi'a | |||
| @) s (_S1 s | |||
| .group t | |||
| @@ -251,14 +348,15 @@ | |||
| tt t: | |||
| .group u | |||
| u u: | |||
| u (CK u | |||
| u u | |||
| u (A w2 | |||
| Kr) u (A u | |||
| Kl) u (A u | |||
| @) u (dine_ 'u | |||
| @) u (colo_ 'u | |||
| u (ito_ 'u | |||
| @) u (lA_ =u | |||
| .group v | |||
| v v | |||
| @@ -279,24 +377,26 @@ | |||
| A) zz ts: | |||
| _) z (i dz | |||
| _) z (ì dz | |||
| z (L01A dz | |||
| .group | |||
| à 'a: | |||
| à (CK 'a | |||
| é 'e: | |||
| é (CK 'e | |||
| è 'E: | |||
| è (CK 'E | |||
| ì 'i: | |||
| ì (CK 'i | |||
| ó 'o: | |||
| ó (CK 'o | |||
| ò 'O: | |||
| ò (CK 'O | |||
| ù 'u: | |||
| ù (CK 'u | |||
| $ dolla:ro | |||
| è ''E | |||
| èi (K ''Ej | |||
| é ''e | |||
| éi (K ''eI | |||
| ì ''i | |||
| ó ''o | |||
| ói ''o|I | |||
| ò ''O | |||
| òi ''OI | |||
| ù ''u | |||
| $ dollaro | |||
| , (D v'irgola | |||
| ! _p'untoesklamat'ivo_ | |||
| !) ! | |||
| @@ -307,4 +407,4 @@ | |||
| A_) - (_D _ | |||
| C_) - (_D _ | |||
| § setsi'o:ne | |||
| § setsi'one | |||
| @@ -15,8 +15,8 @@ | |||
| eo 13 115 | |||
| jbo 4 116 | |||
| fi 40 134 | |||
| fr 54 140 | |||
| fr_ca 11 140 | |||
| fr 55 141 | |||
| fr_ca 11 141 | |||
| hi 60 149 | |||
| ta 17 152 | |||
| hu 23 119 | |||
| @@ -71,31 +71,25 @@ b/b_ [b] base | |||
| [b] hi | |||
| [b] bn | |||
| b/b@ [b] base | |||
| [b] fr | |||
| [b] hi | |||
| [b] bn | |||
| b/b@2 [b] base | |||
| [b] hi | |||
| [b] bn | |||
| b/ba [b] base | |||
| [b] fr | |||
| [b] hi | |||
| [b] bn | |||
| b/be [b] base | |||
| [b] fr | |||
| [b] hi | |||
| [b] bn | |||
| b/bi [b] base | |||
| [b] fr | |||
| [b] hi | |||
| [b;] ro | |||
| [b] bn | |||
| b/bo [b] base | |||
| [b] fr | |||
| [b] hi | |||
| [b] bn | |||
| b/bu [b] base | |||
| [b] fr | |||
| [b] hi | |||
| [b] bn | |||
| b/xb [b] base | |||
| @@ -476,6 +470,7 @@ l/lo [(o)] base | |||
| [wA] fr | |||
| l/l_o [(o)] base | |||
| [O] fr | |||
| [o] fr | |||
| [O2] fr | |||
| [o2] fr | |||
| l^/l_rfx [l.] hi | |||
| @@ -727,6 +722,7 @@ ufric/ll [L] base | |||
| [l#] is | |||
| ufric/s [s] base | |||
| [s] fr | |||
| [z] fr | |||
| [z2] fr | |||
| [s] es | |||
| [s#] pt | |||
| @@ -1481,6 +1477,7 @@ vowel/@ [@] base | |||
| [@] kn | |||
| [@4] bn | |||
| vowel/@- [@-] base | |||
| [@3] fr | |||
| [r*] hr | |||
| vowel/& [a] en_rp | |||
| [&] fi | |||
| @@ -2228,8 +2225,7 @@ vwl_fr/@R2 [R] fr_ca | |||
| vwl_fr/@R3 [R] fr | |||
| [r] fr | |||
| [Q2] hy | |||
| vwl_fr/@R4 [R] fr | |||
| [r2] fr | |||
| vwl_fr/@R4 [r2] fr | |||
| [Q2] hy | |||
| vwl_fr/@R5 [r] fr | |||
| [Q2] hy | |||
| @@ -10,6 +10,7 @@ volume 15 | |||
| 0 ; NULL 0 NULL | |||
| 0 g- NULL 0 NULL | |||
| 0 @- NULL 0 NULL | |||
| 0 @3 NULL 0 NULL | |||
| 0 * NULL 0 R | |||
| 0 : NULL 0 NULL | |||
| @@ -83,3 +84,4 @@ volume 15 | |||
| @@ -10,7 +10,7 @@ endphoneme | |||
| phoneme @ | |||
| vowel starttype (@) endtype (@) | |||
| length 180 | |||
| length 190 | |||
| formants vowel/@_hgh | |||
| before l/ DFT+l/l_@ | |||
| before (r) DFT+r/xr | |||
| @@ -19,15 +19,24 @@ endphoneme | |||
| phoneme @2 | |||
| vowel starttype (@) endtype (@) | |||
| length 160 | |||
| length 170 | |||
| formants vowel/@_fr | |||
| before (r) DFT+r3/r_@ | |||
| endphoneme | |||
| phoneme @3 // Mute at end of word | |||
| vowel nonsyllabic | |||
| starttype (@) endtype _ | |||
| formants vowel/@- | |||
| unstressed | |||
| length 40 | |||
| endphoneme | |||
| phoneme a | |||
| vowel starttype (a) endtype (a) | |||
| length 180 | |||
| length 200 | |||
| formants vowel/a_6 | |||
| after l l/la-15 | |||
| before l/ DFT+l/l_a | |||
| @@ -38,7 +47,7 @@ endphoneme | |||
| phoneme a2 | |||
| vowel starttype (a) endtype (a) | |||
| length 165 | |||
| length 190 | |||
| formants vowel/a_6 | |||
| after l l/la-15 | |||
| before l/ DFT+l/l_a | |||
| @@ -49,7 +58,7 @@ endphoneme | |||
| phoneme e | |||
| vowel starttype (e) endtype (e) | |||
| length 175 | |||
| length 190 | |||
| formants vowel/e | |||
| after l l/le-15 | |||
| before l/ DFT-20+l/xl | |||
| @@ -59,7 +68,7 @@ endphoneme | |||
| phoneme E | |||
| vowel starttype (e) endtype (e) | |||
| length 175 | |||
| length 190 | |||
| formants vowel/e_mid | |||
| after l l/le-15 | |||
| before l/ DFT+l/l_e | |||
| @@ -70,7 +79,7 @@ endphoneme | |||
| phoneme E2 | |||
| vowel starttype (e) endtype (e) | |||
| length 175 | |||
| length 190 | |||
| formants vowel/e_mid | |||
| after l l/le-15 | |||
| before l/ DFT+l/l_e | |||
| @@ -80,7 +89,7 @@ endphoneme | |||
| phoneme i | |||
| vowel starttype (i) endtype (i) | |||
| length 160 | |||
| length 170 | |||
| formants vowel/i_3 | |||
| linkout ; | |||
| after l l/li-15 | |||
| @@ -92,7 +101,7 @@ endphoneme | |||
| phoneme i: // longer than i | |||
| vowel starttype (i) endtype (i) | |||
| length 240 | |||
| length 250 | |||
| formants vowel/i_3 | |||
| linkout ; | |||
| after l l/li-15 | |||
| @@ -103,9 +112,10 @@ endphoneme | |||
| phoneme o | |||
| vowel starttype (o) endtype (o) | |||
| length 180 | |||
| length 190 | |||
| formants vowel/o_3 | |||
| after l l/lo-10 | |||
| before l/ DFT+l/l_o | |||
| before (r) DFT+r/xr | |||
| reduceto o2 1 | |||
| endphoneme | |||
| @@ -113,7 +123,7 @@ endphoneme | |||
| phoneme o2 | |||
| vowel starttype (o) endtype (o) | |||
| length 180 | |||
| length 190 | |||
| formants vowel/o_2 | |||
| after l l/lo-10 | |||
| before l/ DFT+l/l_o | |||
| @@ -123,7 +133,7 @@ endphoneme | |||
| phoneme O | |||
| vowel starttype (o) endtype (o) | |||
| length 170 | |||
| length 190 | |||
| formants vowel/o_mid | |||
| after l l/lo-10 | |||
| before l/ DFT+l/l_o | |||
| @@ -134,7 +144,7 @@ endphoneme | |||
| phoneme O2 // Like O but no reduceto | |||
| vowel starttype (o) endtype (o) | |||
| length 170 | |||
| length 190 | |||
| formants vowel/o_mid | |||
| after l l/lo-10 | |||
| before l/ DFT+l/l_o | |||
| @@ -144,7 +154,7 @@ endphoneme | |||
| phoneme u | |||
| vowel starttype (u) endtype (u) | |||
| length 175 | |||
| length 190 | |||
| formants vowel/u_3 | |||
| after l l/lu-20 | |||
| before l/ DFT-20+l/l_u | |||
| @@ -166,7 +176,7 @@ endphoneme | |||
| phoneme y | |||
| vowel starttype (u) endtype (u) | |||
| length 180 | |||
| length 190 | |||
| formants vowel/y_2 | |||
| after l l/lu-20 | |||
| before l/ DFT-30+l/l_y | |||
| @@ -177,7 +187,7 @@ endphoneme | |||
| phoneme Y | |||
| vowel starttype (@) endtype (@) | |||
| length 180 | |||
| length 190 | |||
| formants vowel/y# | |||
| after l l/l@-20 | |||
| before l/ DFT-20+l/l_@ | |||
| @@ -188,7 +198,7 @@ endphoneme | |||
| phoneme W | |||
| vowel starttype (@) endtype (@) | |||
| length 180 | |||
| length 200 | |||
| formants vowel/@_5 | |||
| after l l/l@-20 | |||
| before l/ DFT-20+l/l_@ | |||
| @@ -199,7 +209,7 @@ endphoneme | |||
| phoneme W2 // same as W but don't reduce | |||
| vowel starttype (@) endtype (@) | |||
| length 180 | |||
| length 200 | |||
| formants vowel/@_3 | |||
| after l l/l@-20 | |||
| before l/ DFT-20+l/l_@ | |||
| @@ -209,7 +219,7 @@ endphoneme | |||
| phoneme wA | |||
| vowel starttype (o) endtype (a) | |||
| length 220 | |||
| length 240 | |||
| formants vwl_fr/w_a | |||
| after l l/lo-10 | |||
| before l/ DFT-10+l/l_a | |||
| @@ -220,7 +230,7 @@ endphoneme | |||
| phoneme w^i | |||
| vowel starttype (u) endtype (i) | |||
| length 220 | |||
| length 240 | |||
| formants vdiph/yi_fr | |||
| after l l/lu-20 | |||
| before l/ DFT+l/l_i | |||
| @@ -230,7 +240,7 @@ endphoneme | |||
| phoneme A~ | |||
| vowel starttype (a) endtype (a) | |||
| length 190 | |||
| length 210 | |||
| formants vnasal/aa_n2 | |||
| before r/2 DFT+r/xr-40 | |||
| before l/ DFT+l/l_a | |||
| @@ -239,7 +249,7 @@ endphoneme | |||
| phoneme E~ // same as W~ for fr-fr | |||
| vowel starttype (e) endtype (e) | |||
| length 200 | |||
| length 210 | |||
| formants vnasal/W_n | |||
| before n2 DFT-100 | |||
| endphoneme | |||
| @@ -247,7 +257,7 @@ endphoneme | |||
| phoneme O~ | |||
| vowel starttype (o) endtype (o) | |||
| length 200 | |||
| length 210 | |||
| formants vnasal/o_n3 | |||
| // before n2 vowel/o_mid | |||
| endphoneme | |||
| @@ -255,7 +265,7 @@ endphoneme | |||
| phoneme W~ | |||
| vowel starttype (@) endtype (@) | |||
| length 204 | |||
| length 210 | |||
| formants vnasal/W_n | |||
| endphoneme | |||
| @@ -302,17 +312,12 @@ endphoneme | |||
| // uses the consonants in file "phonemes", unless overridden here | |||
| phoneme b | |||
| vcd blb stop | |||
| vowelout f1=0 f2=1000 -500 -300 f3=-300 80 brk | |||
| formants b/b+x/b%80 | |||
| vcd blb frc | |||
| vowelin f1=2 f2=1000 -300 -200 f3=-100 100 | |||
| vowelout f1=0 f2=1000 -500 -300 f3=-100 60 len=50 | |||
| formants b/b+x/b%70 | |||
| before _ b/b_+x/b_ | |||
| before (a) b/ba+x/b%30 | |||
| before (@) b/b@+x/b%50 | |||
| before (e) b/be+x/b%50 | |||
| before (i) b/bi+x/b%50 | |||
| before l/ b/b_+x/b_ | |||
| before (o) b/bo+x/b%50 | |||
| before (u) b/bu+x/b%70 | |||
| before R b/b_+x/b_ | |||
| after _ NULL | |||
| after @ b/xb%50 | |||
| @@ -427,22 +432,22 @@ endphoneme | |||
| phoneme r | |||
| liquid rfx starttype (r) endtype (r) | |||
| vowelin f1=0 f2=1600 -300 300 f3=100 80 | |||
| vowelout f1=1 f2=1600 -300 300 f3=100 80 brk | |||
| vowelin f1=0 f2=1800 -200 200 f3=-200 80 | |||
| vowelout f1=1 f2=1800 -200 200 f3=-200 80 brk | |||
| length 100 | |||
| lengthmod 7 | |||
| beforenotvowel r/2 | |||
| formants vwl_fr/@R3+r3/rx%30 | |||
| after @2 vwl_fr/@R5+r3/rx%40 | |||
| after (u) vwl_fr/@R5+r3/rx%30 | |||
| after (e) vwl_fr/@R5+r3/rx%25 | |||
| after (u) vwl_fr/@R5+r3/rx%30 | |||
| endphoneme | |||
| phoneme r2 // silent unless followed by vowel | |||
| liquid rfx starttype (r) endtype (r) | |||
| vowelin f1=0 f2=1000 -200 200 f3=-100 100 len=40 | |||
| vowelout f1=0 f2=1200 -200 200 f3=-100 100 len=20 | |||
| vowelin f1=0 f2=1000 -200 200 f3=-200 80 len=40 | |||
| vowelout f1=0 f2=1200 -200 200 f3=-200 80 len=20 | |||
| length 100 | |||
| lengthmod 7 | |||
| beforenotvowel NULL | |||
| @@ -451,19 +456,21 @@ endphoneme | |||
| phoneme R // After consonnants | |||
| vcd frc | |||
| vowelin f1=0 f2=1600 -300 300 f3=100 80 | |||
| liquid starttype (r) endtype (r) | |||
| vowelin f1=0 f2=1800 -200 200 f3=-200 80 | |||
| length 100 | |||
| lengthmod 7 | |||
| beforenotvowel r/2 | |||
| formants vwl_fr/@R3+r3/rx%20 | |||
| after t vwl_fr/@R4 | |||
| formants vwl_fr/@R3+r3/rx%30 | |||
| after b vwl_fr/@R3+r3/rx%60 | |||
| after p vwl_fr/@R3+r3/rx%60 | |||
| after t vwl_fr/@R3+r3/rx%60 | |||
| endphoneme | |||
| phoneme r/2 // variant of [r] when not preceding a vowel | |||
| liquid | |||
| vowelout f1=2 f2=1600 -300 300 f3=100 80 brk | |||
| vowelout f1=2 f2=1800 -200 200 f3=-200 80 brk | |||
| length 100 | |||
| lengthmod 2 | |||
| formants r3/r_2+r3/rx%20 | |||
| @@ -488,8 +495,8 @@ endphoneme | |||
| phoneme S | |||
| vls pla frc sibilant | |||
| vowelin f1=0 f2=2100 100 300 f3=-100 80 | |||
| vowelout f1=0 f2=2100 100 300 f3=-100 80 | |||
| vowelin f1=0 f2=1900 100 300 f3=-100 80 | |||
| vowelout f1=0 f2=1900 100 300 f3=-100 80 | |||
| length 100 | |||
| lengthmod 3 | |||
| wave ufric/sh%45 | |||
| @@ -500,10 +507,10 @@ endphoneme | |||
| phoneme t | |||
| vls alv stop | |||
| vowelin f1=0 f2=1700 -100 100 f3=-100 80 | |||
| vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 | |||
| vowelin f1=0 f2=1600 -300 300 f3=-100 80 | |||
| vowelout f1=0 f2=1600 -300 250 f3=-100 80 brk | |||
| lengthmod 2 | |||
| wave ustop/t_short%50 | |||
| wave ustop/t_short%40 | |||
| before _ ustop/t_%40 | |||
| before R ustop/t_short%50 | |||
| before r/2 ustop/t_short%50 | |||
| @@ -549,7 +556,7 @@ endphoneme | |||
| phoneme z | |||
| vcd alv frc sibilant | |||
| vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50 | |||
| formants voc/z+ufric/s_%45 | |||
| formants voc/z+ufric/s%30 | |||
| before _ voc/z_+ufric/s_%45 | |||
| lengthmod 6 | |||
| switchvoicing s | |||
| @@ -579,3 +586,4 @@ endphoneme | |||
| @@ -85,7 +85,7 @@ endphoneme | |||
| phoneme A: | |||
| vowel starttype (a) endtype (a) | |||
| length 240 | |||
| length 250 | |||
| formants vowel/aa_6 | |||
| endphoneme | |||
| @@ -696,7 +696,7 @@ static int Unpronouncable_en(Translator *tr, char *word) | |||
| 0x00, 0x88, 0x22, 0x04, 0x00, 0x02, 0x00, 0x04, // 32 | |||
| 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x28, 0x8a, 0x03, 0x00, 0x00, 0x40, 0x00, // 48 | |||
| 0x02, 0x00, 0x41, 0xca, 0x9b, 0x06, 0x20, 0x80, | |||
| 0x02, 0x00, 0x41, 0xca, 0xbb, 0x06, 0x20, 0x80, | |||
| 0x91, 0x00, 0x00, 0x00, 0x00, 0x20, 0x08, 0x00, // 64 | |||
| 0x08, 0x20, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, | |||
| 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, }; | |||
| @@ -1408,7 +1408,7 @@ void SetWordStress(Translator *tr, char *output, unsigned int &dictionary_flags, | |||
| stress = 3; /* use secondary stress for remaining syllables */ | |||
| } | |||
| else | |||
| if((vowel_stress[v-1] <= 1) && (vowel_stress[v+1] <= 1)) | |||
| if((vowel_stress[v-1] <= 1) && ((vowel_stress[v+1] <= 1) || ((stress == 4) && (vowel_stress[v+1] <= 2)))) | |||
| { | |||
| /* trochaic: give stress to vowel surrounded by unstressed vowels */ | |||
| @@ -1558,7 +1558,7 @@ void SetWordStress(Translator *tr, char *output, unsigned int &dictionary_flags, | |||
| max_stress = vowel_stress[v]; | |||
| } | |||
| if((*p == phonLENGTHEN) && ((opt_length = tr->langopts.param[LOPT_IT_LENGTHEN]) != 0)) | |||
| if((*p == phonLENGTHEN) && ((opt_length = tr->langopts.param[LOPT_IT_LENGTHEN]) & 1)) | |||
| { | |||
| // remove lengthen indicator from non-stressed syllables | |||
| int shorten=0; | |||
| @@ -1576,13 +1576,20 @@ void SetWordStress(Translator *tr, char *output, unsigned int &dictionary_flags, | |||
| shorten = 1; | |||
| } | |||
| if(((opt_length & 0xf)==2) && (v != (vowel_count - 2))) | |||
| shorten = 1; // LANG=Italian, remove lengthen indicator from non-penultimate syllables | |||
| if(shorten) | |||
| p++; | |||
| } | |||
| if((v_stress >= 4) && (tr->langopts.param[LOPT_IT_LENGTHEN] == 2)) | |||
| { | |||
| // LANG=Italian, lengthen penultimate stressed vowels, unless followed by 2 consonants | |||
| if((v == (vowel_count - 2)) && (syllable_weight[v] == 0)) | |||
| { | |||
| *output++ = phcode; | |||
| phcode = phonLENGTHEN; | |||
| } | |||
| } | |||
| v++; | |||
| } | |||
| @@ -2193,7 +2200,7 @@ static void MatchRule(Translator *tr, char *word[], const char *group, char *rul | |||
| case RULE_LETTERGP2: // match against a list of utf-8 strings | |||
| letter_group = *rule++ - 'A'; | |||
| if((n_bytes = IsLetterGroup(tr, pre_ptr-letter_xbytes,letter_group,1)) >0) | |||
| if((n_bytes = IsLetterGroup(tr, pre_ptr,letter_group,1)) >0) | |||
| { | |||
| add_points = (20-distance_right); | |||
| pre_ptr -= (n_bytes-1); | |||
| @@ -2683,6 +2690,44 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c | |||
| } /* end of TranslateRules */ | |||
| void ApplySpecialAttribute2(Translator *tr, char *phonemes, int dict_flags) | |||
| {//======================================================================== | |||
| // apply after the translation is complete | |||
| int ix; | |||
| int len; | |||
| char *p; | |||
| len = strlen(phonemes); | |||
| switch(tr->translator_name) | |||
| { | |||
| case L('i','t'): | |||
| for(ix=0; ix<(len-1); ix++) | |||
| { | |||
| if(phonemes[ix] == phonSTRESS_P) | |||
| { | |||
| p = &phonemes[ix+1]; | |||
| if((dict_flags & FLAG_ALT2_TRANS) != 0) | |||
| { | |||
| if(*p == PhonemeCode('E')) | |||
| *p = PhonemeCode('e'); | |||
| if(*p == PhonemeCode('O')) | |||
| *p = PhonemeCode('o'); | |||
| } | |||
| else | |||
| { | |||
| if(*p == PhonemeCode('e')) | |||
| *p = PhonemeCode('E'); | |||
| if(*p == PhonemeCode('o')) | |||
| *p = PhonemeCode('O'); | |||
| } | |||
| break; | |||
| } | |||
| } | |||
| break; | |||
| } | |||
| } // end of ApplySpecialAttribute2 | |||
| void ApplySpecialAttribute(Translator *tr, char *phonemes, int dict_flags) | |||
| {//======================================================================= | |||
| @@ -658,5 +658,8 @@ int main (int argc, char **argv) | |||
| } | |||
| espeak_Synchronize(); | |||
| if(f_phonemes_out != stdout) | |||
| fclose(f_phonemes_out); // needed for WinCE | |||
| return(0); | |||
| } | |||
| @@ -204,6 +204,8 @@ BEGIN_EVENT_TABLE(MyFrame, wxMDIParentFrame) | |||
| EVT_MENU(MENU_VOWELCHART3, MyFrame::OnTools) | |||
| EVT_MENU(MENU_LEXICON_RU, MyFrame::OnTools) | |||
| EVT_MENU(MENU_LEXICON_DE, MyFrame::OnTools) | |||
| EVT_MENU(MENU_LEXICON_IT, MyFrame::OnTools) | |||
| EVT_MENU(MENU_LEXICON_IT2, MyFrame::OnTools) | |||
| EVT_MENU(MENU_TO_UTF8, MyFrame::OnTools) | |||
| EVT_MENU(MENU_COUNT_WORDS, MyFrame::OnTools) | |||
| EVT_MENU(MENU_TEST, MyFrame::OnTools) | |||
| @@ -457,6 +459,8 @@ void MyFrame::OnTools(wxCommandEvent& event) | |||
| case MENU_LEXICON_RU: | |||
| case MENU_LEXICON_DE: | |||
| case MENU_LEXICON_IT: | |||
| case MENU_LEXICON_IT2: | |||
| CompareLexicon(event.GetId()); // Compare a lexicon with _rules translation | |||
| break; | |||
| @@ -288,6 +288,315 @@ static void DecodePhonemes2(const char *inptr, char *outptr) | |||
| } // end of DecodePhonemes2 | |||
| void Lexicon_It(int pass) | |||
| {//====================== | |||
| int count=0; | |||
| int matched=0; | |||
| int ix; | |||
| int c; | |||
| char *p; | |||
| int len; | |||
| int vowel_ix; | |||
| int stress_posn1; | |||
| int stress_posn2; | |||
| int stress_vowel1; | |||
| int stress_vowel2; | |||
| int use_phonemes; | |||
| FILE *f_in; | |||
| FILE *f_out; | |||
| FILE *f_listx; | |||
| FILE *f_list_in; | |||
| long int displ; | |||
| const char *alt_string; | |||
| char buf[200]; | |||
| char word[80]; | |||
| char word1[80]; | |||
| char word2[80]; | |||
| char word_stem[80]; | |||
| char temp[80]; | |||
| char phonemes[80]; | |||
| char phonemes2[80]; | |||
| char buf_out[120]; | |||
| WORD_TAB winfo; | |||
| static const char *vowels1 = "aeiou"; | |||
| static const char *vowels2 = "aeou"; | |||
| static const char ex1[] = {'a',0xc3,0xac,0}; // aì | |||
| static const char ex2[] = {'e',0xc3,0xac,0}; // eì | |||
| static const char ex3[] = {0xc3,0xb9,'a',0}; // ùa | |||
| static const char ex4[] = {0xc3,0xb9,'e',0}; // ùe | |||
| static const char ex5[] = {0xc3,0xb9,'i',0}; // ùi | |||
| static const char ex6[] = {0xc3,0xb9,'o',0}; // ùo | |||
| static const char ex7[] = {'c',0xc3,0xac,'a',0}; // cìa | |||
| static const char ex8[] = {'c',0xc3,0xac,'o',0}; // cìo | |||
| static const char ex9[] = {'c',0xc3,0xac,'u',0}; // cìu | |||
| static const char ex10[] = {'g','l',0xc3,0xac,0}; // glì | |||
| static const char *exceptions[] = {ex1, ex2, ex3, ex4, ex5, ex6, ex7, ex8, ex9, ex10, NULL}; | |||
| wxString fname = wxFileSelector(_T("Italian Lexicon"),path_dir1,_T(""),_T(""),_T("*"),wxOPEN); | |||
| strcpy(buf,fname.mb_str(wxConvLocal)); | |||
| if((f_in = fopen(buf,"r")) == NULL) | |||
| { | |||
| wxLogError(_T("Can't read file ")+fname); | |||
| return; | |||
| } | |||
| path_dir1 = wxFileName(fname).GetPath(); | |||
| if((f_out = fopen("compare_it","w")) == NULL) | |||
| { | |||
| wxLogError(_T("Can't write file: compare_it ")); | |||
| return; | |||
| } | |||
| if(pass == 1) | |||
| { | |||
| sprintf(buf,"%s/it_listx",path_dsource); | |||
| remove(buf); | |||
| CompileDictionary(path_dsource,"it",NULL,NULL,0); | |||
| f_listx = fopen(buf,"w"); | |||
| } | |||
| else | |||
| { | |||
| sprintf(buf,"%s/it_listx2",path_dsource); | |||
| f_listx = fopen(buf,"w"); | |||
| sprintf(buf,"%s/it_listx",path_dsource); | |||
| if((f_list_in = fopen(buf,"r")) == NULL) | |||
| { | |||
| wxLogError(_T("Can't read file: it_listx")); | |||
| return; | |||
| } | |||
| } | |||
| if(f_listx == NULL) | |||
| { | |||
| wxLogError(_T("Can't write file: it_listx")); | |||
| return; | |||
| } | |||
| LoadVoice("it",0); | |||
| while(!feof(f_in)) | |||
| { | |||
| count++; | |||
| if(fgets(buf,sizeof(buf),f_in) == NULL) | |||
| break; | |||
| if((p = strstr(buf,"//")) != NULL) | |||
| *p = 0; | |||
| if((sscanf(buf,"%s %s",word,temp)) < 2) | |||
| continue; | |||
| if(strlen(word) < 8) | |||
| sprintf(buf_out,"%s\t\t%s\t",word,temp); | |||
| else | |||
| sprintf(buf_out,"%s\t%s",word,temp); | |||
| sprintf(word1," %s ",word); | |||
| // should we remove a vowel ending to produce a stem ? | |||
| strcpy(word_stem, word); | |||
| len = strlen(word) - 1; | |||
| utf8_in(&c, temp); | |||
| // if(iswlower(c)) | |||
| { | |||
| if((word[len] == 'a') && (strchr(vowels1, word[len-1]) == NULL)) | |||
| word_stem[len] = 0; | |||
| else | |||
| if((word[len] == 'o') && (strchr(vowels2, word[len-1]) == NULL)) | |||
| word_stem[len] = 0; | |||
| } | |||
| // convert word to lower-case | |||
| word2[0] = ' '; | |||
| for(ix=0, p=&word2[1];;) | |||
| { | |||
| ix += utf8_in(&c,&temp[ix]); | |||
| c = towlower(c); | |||
| p += utf8_out(c,p); | |||
| if(c == 0) | |||
| break; | |||
| } | |||
| strcat(word2," "); | |||
| use_phonemes = 0; | |||
| for(ix=0; ; ix++) | |||
| { | |||
| if(exceptions[ix] == NULL) | |||
| break; | |||
| if(strstr(word2, exceptions[ix]) != NULL) | |||
| { | |||
| // the word contains a string for which we must do a complete phoneme translation | |||
| use_phonemes = 1; | |||
| strcpy(word_stem, word); | |||
| break; | |||
| } | |||
| } | |||
| // translate | |||
| memset(&winfo,0,sizeof(winfo)); | |||
| TranslateWord(translator,&word1[1],0,&winfo); | |||
| DecodePhonemes(word_phonemes,phonemes); | |||
| stress_posn1 = 0; | |||
| stress_posn2 = 0; | |||
| stress_vowel1 = 0; | |||
| stress_vowel2 = 0; | |||
| vowel_ix = 1; | |||
| for(ix=0; ;ix++) | |||
| { | |||
| if((c = word_phonemes[ix]) == 0) | |||
| break; | |||
| if(c == phonSTRESS_P) | |||
| { | |||
| stress_posn1 = vowel_ix; | |||
| stress_vowel1 = word_phonemes[ix+1]; | |||
| } | |||
| if((c != phonSCHWA_SHORT) && (phoneme_tab[c]->type == phVOWEL)) | |||
| vowel_ix++; | |||
| } | |||
| memset(&winfo,0,sizeof(winfo)); | |||
| TranslateWord(translator,&word2[1],0,&winfo); | |||
| DecodePhonemes(word_phonemes,phonemes2); | |||
| vowel_ix = 1; | |||
| for(ix=0; ;ix++) | |||
| { | |||
| if((c = word_phonemes[ix]) == 0) | |||
| break; | |||
| if(c == phonSTRESS_P) | |||
| { | |||
| stress_posn2 = vowel_ix; | |||
| stress_vowel2 = word_phonemes[ix+1]; | |||
| } | |||
| if((c != phonSCHWA_SHORT) && (phoneme_tab[c]->type == phVOWEL)) | |||
| vowel_ix++; | |||
| } | |||
| if(stress_posn2 == (vowel_ix-1)) | |||
| { | |||
| // stress is on the final vowel, don't renove it | |||
| strcpy(word_stem, word); | |||
| } | |||
| if(pass == 1) | |||
| { | |||
| if(use_phonemes) | |||
| { | |||
| fprintf(f_listx,"%s ", word_stem); | |||
| for(p = phonemes2; *p != 0; p++) | |||
| { | |||
| if(*p != ',') | |||
| fputc(*p, f_listx); // omit secondary stress marks | |||
| } | |||
| fputc('\n',f_listx); | |||
| } | |||
| else | |||
| if((stress_posn1 != stress_posn2) && (stress_posn1 > 0) && (stress_posn2 > 0)) | |||
| { | |||
| fprintf(f_listx,"%s $%d\n", word_stem, stress_posn2); | |||
| } | |||
| } | |||
| // reduce [E] and [O] to [e] and [o] if not stressed | |||
| for(ix=0; phonemes[ix] != 0; ix++) | |||
| { | |||
| if((phonemes[ix] == 'E') || (phonemes[ix] == 'O')) | |||
| { | |||
| if((pass == 2) || (ix==0) || (phonemes[ix-1] != '\'')) | |||
| phonemes[ix] = tolower(phonemes[ix]); | |||
| } | |||
| } | |||
| for(ix=0; phonemes2[ix] != 0; ix++) | |||
| { | |||
| if((phonemes2[ix] == 'E') || (phonemes2[ix] == 'O')) | |||
| { | |||
| if((pass == 2) || (ix==0) || (phonemes2[ix-1] != '\'')) | |||
| phonemes2[ix] = tolower(phonemes2[ix]); | |||
| } | |||
| } | |||
| if(strcmp(phonemes,phonemes2) == 0) | |||
| { | |||
| alt_string = NULL; | |||
| if((pass == 2) && (stress_posn1 > 0) && (stress_posn2 > 0)) | |||
| { | |||
| if(((stress_vowel1 == PhonemeCode('E')) && (stress_vowel2 == PhonemeCode('e'))) || | |||
| ((stress_vowel1 == PhonemeCode('O')) && (stress_vowel2 == PhonemeCode('o')))) | |||
| { | |||
| alt_string = " $alt2"; | |||
| } | |||
| else | |||
| if(((stress_vowel1 == PhonemeCode('e')) && (stress_vowel2 == PhonemeCode('E'))) || | |||
| ((stress_vowel1 == PhonemeCode('o')) && (stress_vowel2 == PhonemeCode('O')))) | |||
| { | |||
| alt_string = " $alt"; | |||
| } | |||
| if(alt_string != NULL) | |||
| { | |||
| while(!feof(f_list_in)) | |||
| { | |||
| displ = ftell(f_list_in); | |||
| if(fgets(buf, sizeof(buf), f_list_in) == NULL) | |||
| break; | |||
| sscanf(buf, "%s", word1); | |||
| if(strcmp(word1, word_stem) < 0) | |||
| { | |||
| fprintf(f_listx,"%s",buf); // copy it_listx from pass 1 until we reach the matching word | |||
| } | |||
| else | |||
| if(strcmp(word1, word_stem) == 0) | |||
| { | |||
| p = buf; | |||
| while((*p != '\n') && (*p != 0)) *p++; | |||
| *p = 0; | |||
| fprintf(f_listx,"%s %s\n",buf,alt_string); // add $alt or $alt2 to the entry | |||
| break; | |||
| } | |||
| else | |||
| { | |||
| fprintf(f_listx,"%s %s\n", word_stem, alt_string); // add a new word with $alt or $alt2 | |||
| fseek(f_list_in, displ, SEEK_SET); | |||
| break; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| matched++; | |||
| } | |||
| else | |||
| { | |||
| fprintf(f_out,"%s\t%s\t%s\n",buf_out,phonemes,phonemes2); | |||
| } | |||
| } | |||
| if(pass == 2) | |||
| { | |||
| while(fgets(buf, sizeof(buf), f_list_in) != NULL) | |||
| { | |||
| fprintf(f_listx, "%s", buf); // copy the remaining entries from pass 1 | |||
| } | |||
| fclose(f_list_in); | |||
| } | |||
| fclose(f_in); | |||
| fclose(f_out); | |||
| fclose(f_listx); | |||
| wxLogStatus(_T("Completed, equal=%d different=%d"),matched,count-matched); | |||
| } | |||
| void Lexicon_De() | |||
| {//============== | |||
| // Compare eSpeak's translation of German words with a pronunciation lexicon | |||
| @@ -766,6 +1075,12 @@ void CompareLexicon(int id) | |||
| case MENU_LEXICON_DE: | |||
| Lexicon_De(); | |||
| break; | |||
| case MENU_LEXICON_IT: | |||
| Lexicon_It(1); | |||
| break; | |||
| case MENU_LEXICON_IT2: | |||
| Lexicon_It(2); | |||
| break; | |||
| } | |||
| } // end of CompareLexicon | |||
| @@ -1087,9 +1087,9 @@ void SetSynth_Klatt(int length, int modn, frame_t *fr1, frame_t *fr2, voice_t *v | |||
| if(wvoice != NULL) | |||
| { | |||
| if((wvoice->klatt[0] > 0) && (wvoice->klatt[0] <=3 )) | |||
| if((wvoice->klattv[0] > 0) && (wvoice->klattv[0] <=3 )) | |||
| { | |||
| kt_globals.glsource = wvoice->klatt[0]; | |||
| kt_globals.glsource = wvoice->klattv[0]; | |||
| kt_globals.scale_wav = scale_wav_tab[kt_globals.glsource]; | |||
| } | |||
| kt_globals.f0_flutter = wvoice->flutter/32; | |||
| @@ -1167,7 +1167,7 @@ void SetSynth_Klatt(int length, int modn, frame_t *fr1, frame_t *fr2, voice_t *v | |||
| klattp_inc[ix] = double((fr2->klattp[ix] - klattp[ix]) * STEPSIZE)/length; | |||
| if((ix>0) && (ix < KLATT_AVp)) | |||
| klattp1[ix] = klattp[ix] = (klattp[ix] + wvoice->klatt[ix]); | |||
| klattp1[ix] = klattp[ix] = (klattp[ix] + wvoice->klattv[ix]); | |||
| } | |||
| nsamples = length; | |||
| @@ -153,6 +153,8 @@ enum { | |||
| MENU_LEXICON, | |||
| MENU_LEXICON_RU, | |||
| MENU_LEXICON_DE, | |||
| MENU_LEXICON_IT, | |||
| MENU_LEXICON_IT2, | |||
| MENU_TO_UTF8, | |||
| MENU_COUNT_WORDS, | |||
| MENU_TEST, | |||
| @@ -111,6 +111,8 @@ wxMenuBar *MakeMenu(int type) | |||
| lexicon_menu = new wxMenu; | |||
| lexicon_menu->Append(MENU_LEXICON_RU, _("Russian (lexicon.dict)")); | |||
| lexicon_menu->Append(MENU_LEXICON_DE, _("German")); | |||
| lexicon_menu->Append(MENU_LEXICON_IT, _("Italian")); | |||
| lexicon_menu->Append(MENU_LEXICON_IT2, _("Italian, pass 2")); | |||
| tools_menu = new wxMenu; | |||
| tools_menu->Append(MENU_VOWELCHART, _("Make &Vowels Chart"), vowelchart_menu); | |||
| @@ -306,6 +306,8 @@ const wchar_t *wcschr(const wchar_t *str, int c) | |||
| return(NULL); | |||
| } | |||
| #ifndef WINCE | |||
| // wcslen() is provided by WINCE, but not the other wchar functions | |||
| const int wcslen(const wchar_t *str) | |||
| { | |||
| int ix=0; | |||
| @@ -316,6 +318,7 @@ const int wcslen(const wchar_t *str) | |||
| } | |||
| return(ix); | |||
| } | |||
| #endif | |||
| float wcstod(const wchar_t *str, wchar_t **tailptr) | |||
| { | |||
| @@ -883,5 +883,8 @@ int main (int argc, char **argv) | |||
| fprintf(stderr,"-w option must be used because the program was built without a sound interface\n"); | |||
| #endif // USE_PORTAUDIO | |||
| } | |||
| if((f_trans != stdout) && (f_trans != stderr)) | |||
| fclose(f_trans); // needed for WinCe | |||
| return(0); | |||
| } | |||
| @@ -35,7 +35,7 @@ | |||
| #include "translate.h" | |||
| #include "wave.h" | |||
| const char *version_string = "1.40.11 13.Mar.09"; | |||
| const char *version_string = "1.40.13 5.Apr.09"; | |||
| const int version_phdata = 0x014000; | |||
| int option_device_number = -1; | |||
| @@ -101,7 +101,7 @@ typedef struct { | |||
| unsigned char klattp[N_KLATTP]; | |||
| } frame_t; | |||
| typedef struct { | |||
| typedef struct { // 43 bytes | |||
| short frflags; | |||
| unsigned char length; | |||
| unsigned char rms; | |||
| @@ -112,6 +112,19 @@ typedef struct { | |||
| } frame_t2; // the original, without Klatt additions, used for file "phondata" | |||
| typedef struct { // 44 bytes | |||
| short frflags; | |||
| short ffreq[7]; | |||
| unsigned char length; | |||
| unsigned char rms; | |||
| unsigned char fheight[8]; | |||
| unsigned char fwidth[6]; // width/4 f0-5 | |||
| unsigned char fright[3]; // width/4 f0-2 | |||
| unsigned char bw[4]; // Klatt bandwidth BNZ, f1,f2,f3 | |||
| unsigned char klattp[5]; // AV, FNZ, Tilt, spare, spare (Aspr, Skew ?) | |||
| } frame_t3; // TESTING | |||
| // formant data used by wavegen | |||
| typedef struct { | |||
| @@ -325,7 +325,7 @@ Translator *SelectTranslator(const char *name) | |||
| case L('d','e'): | |||
| { | |||
| static const short stress_lengths_de[8] = {150,130, 190,190, 0, 0, 260,275}; | |||
| static const short stress_lengths_de[8] = {150,130, 200,200, 0, 0, 260,275}; | |||
| tr->langopts.stress_rule = 0; | |||
| tr->langopts.word_gap = 0x8; // don't use linking phonemes | |||
| tr->langopts.vowel_pause = 0x30; | |||
| @@ -636,6 +636,7 @@ SetLengthMods(tr,3); // all equal | |||
| tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | |||
| tr->langopts.stress_rule = 2; | |||
| tr->langopts.stress_flags = 0x10 | 0x20000; | |||
| tr->langopts.vowel_pause = 1; | |||
| tr->langopts.unstressed_wd1 = 2; | |||
| tr->langopts.unstressed_wd2 = 2; | |||
| @@ -643,22 +644,24 @@ SetLengthMods(tr,3); // all equal | |||
| tr->langopts.param[LOPT_IT_DOUBLING] = 2; // double the first consonant if the previous word ends in a stressed vowel | |||
| tr->langopts.param[LOPT_SONORANT_MIN] = 130; // limit the shortening of sonorants before short vowels | |||
| tr->langopts.param[LOPT_REDUCE] = 1; // reduce vowels even if phonemes are specified in it_list | |||
| tr->langopts.param[LOPT_ALT] = 2; // call ApplySpecialAttributes2() if a word has $alt or $alt2 | |||
| tr->langopts.numbers = 0x2709 + NUM_ROMAN; | |||
| tr->langopts.accents = 2; // Say "Capital" after the letter. | |||
| SetLetterVowel(tr,'y'); | |||
| } | |||
| break; | |||
| case L_jbo: // Lojban | |||
| { | |||
| static const short stress_lengths_jbo[8] = {145,145, 170,160, 0,0, 330,350}; | |||
| static const wchar_t jbo_punct_within_word[] = {'.',',','\'',0x2c8,0}; // allow period and comma within a word, also stress marker (from LOPT_SYLLABLE_CAPS) | |||
| static const wchar_t jbo_punct_within_word[] = {'.',',','\'',0x2c8,0}; // allow period and comma within a word, also stress marker (from LOPT_CAPS_IN_WORD) | |||
| SetupTranslator(tr,stress_lengths_jbo,NULL); | |||
| tr->langopts.stress_rule = 2; | |||
| tr->langopts.vowel_pause = 0x20c; // pause before a word which starts with a vowel, or after a word which ends in a consonant | |||
| // tr->langopts.word_gap = 1; | |||
| tr->punct_within_word = jbo_punct_within_word; | |||
| tr->langopts.param[LOPT_SYLLABLE_CAPS] = 1; // capitals indicate stressed syllables | |||
| tr->langopts.param[LOPT_CAPS_IN_WORD] = 2; // capitals indicate stressed syllables | |||
| SetLetterVowel(tr,'y'); | |||
| } | |||
| break; | |||
| @@ -1203,6 +1203,11 @@ strcpy(phonemes2,phonemes); | |||
| dictionary_flags[0] |= FLAG_DOT; | |||
| } | |||
| if((tr->langopts.param[LOPT_ALT] & 2) && ((dictionary_flags[0] & (FLAG_ALT_TRANS | FLAG_ALT2_TRANS)) != 0)) | |||
| { | |||
| ApplySpecialAttribute2(tr,word_phonemes,dictionary_flags[0]); | |||
| } | |||
| return(dictionary_flags[0]); | |||
| } // end of TranslateWord | |||
| @@ -1508,7 +1513,7 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa | |||
| if(pre_pause < 1) | |||
| pre_pause = 1; | |||
| } | |||
| if((flags & FLAG_PREPAUSE) && (tr->prepause_timeout == 0)) | |||
| if((flags & FLAG_PREPAUSE) && ((word_flags && FLAG_LAST_WORD) == 0) && (tr->prepause_timeout == 0)) | |||
| { | |||
| // the word is marked in the dictionary list with $pause | |||
| if(pre_pause < 4) pre_pause = 4; | |||
| @@ -2296,9 +2301,9 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre | |||
| { | |||
| c = towlower2(c); | |||
| if(tr->langopts.param[LOPT_SYLLABLE_CAPS]) | |||
| if((j = tr->langopts.param[LOPT_CAPS_IN_WORD]) > 0) | |||
| { | |||
| if(syllable_marked == 0) | |||
| if((j == 2) && (syllable_marked == 0)) | |||
| { | |||
| char_inserted = c; | |||
| c = 0x2c8; // stress marker | |||
| @@ -240,7 +240,7 @@ extern const int param_defaults[N_SPEECH_PARAM]; | |||
| #define N_LOPTS 15 | |||
| #define N_LOPTS 16 | |||
| #define LOPT_DIERESES 1 | |||
| // 1=remove [:] from unstressed syllables, 2= remove from unstressed or non-penultimate syllables | |||
| // bit 4=0, if stress < 4, bit 4=1, if not the highest stress in the word | |||
| @@ -283,13 +283,16 @@ extern const int param_defaults[N_SPEECH_PARAM]; | |||
| // change [t] when followed by unstressed vowel | |||
| #define LOPT_REDUCE_T 12 | |||
| // stressed syllable is indicated by capitals | |||
| #define LOPT_SYLLABLE_CAPS 13 | |||
| // 1 = allow capitals inside a word | |||
| // 2 = stressed syllable is indicated by capitals | |||
| #define LOPT_CAPS_IN_WORD 13 | |||
| // bit 0=Italian "syntactic doubling" of consoants in the word after a word marked with $double attribute | |||
| // bit 1=also after a word which ends with a stressed vowel | |||
| #define LOPT_IT_DOUBLING 14 | |||
| // Call ApplySpecialAttributes() if $alt or $alt2 is set for a word | |||
| #define LOPT_ALT 15 | |||
| typedef struct { | |||
| @@ -562,6 +565,7 @@ int LookupDictList(Translator *tr, char **wordptr, char *ph_out, unsigned int *f | |||
| void MakePhonemeList(Translator *tr, int post_pause, int new_sentence); | |||
| int ChangePhonemes_ru(Translator *tr, PHONEME_LIST2 *phlist, int n_ph, int index, PHONEME_TAB *ph, CHANGEPH *ch); | |||
| void ApplySpecialAttribute(Translator *tr, char *phonemes, int dict_flags); | |||
| void ApplySpecialAttribute2(Translator *tr, char *phonemes, int dict_flags); | |||
| void AppendPhonemes(Translator *tr, char *string, int size, const char *ph); | |||
| void CalcLengths(Translator *tr); | |||
| @@ -454,7 +454,8 @@ void TranslDlg::OnCommand(wxCommandEvent& event) | |||
| t_phonetic->AppendText(wxString(buf,wxConvUTF8)); | |||
| } | |||
| t_phonetic->AppendText(_T("---\n")); | |||
| fclose(f_trans); | |||
| if(f_trans != NULL) | |||
| fclose(f_trans); | |||
| remove(fname_temp); | |||
| } | |||
| t_phonetic->AppendText(wxString(phon_out,wxConvLocal)); | |||
| @@ -40,7 +40,7 @@ typedef struct { | |||
| int formant_factor; // adjust nominal formant frequencies by this because of the voice's pitch (256ths) | |||
| int consonant_amp; // amplitude of unvoiced consonants | |||
| int consonant_ampv; // amplitude of the noise component of voiced consonants | |||
| int klatt[8]; | |||
| int klattv[8]; | |||
| // parameters used by Wavegen | |||
| short freq[N_PEAKS]; // 100% = 256 | |||
| @@ -387,7 +387,7 @@ void VoiceReset(int tone_only) | |||
| voice->voicing = 64; | |||
| voice->consonant_amp = 100; | |||
| voice->consonant_ampv = 100; | |||
| memset(voice->klatt,0,sizeof(voice->klatt)); | |||
| memset(voice->klattv,0,sizeof(voice->klattv)); | |||
| memset(speed.fast_settings,0,sizeof(speed.fast_settings)); | |||
| #ifdef PLATFORM_RISCOS | |||
| @@ -880,8 +880,8 @@ voice_t *LoadVoice(const char *vname, int control) | |||
| break; | |||
| case V_KLATT: | |||
| Read8Numbers(p,voice->klatt); | |||
| voice->klatt[KLATT_Kopen] -= 40; | |||
| Read8Numbers(p,voice->klattv); | |||
| voice->klattv[KLATT_Kopen] -= 40; | |||
| break; | |||
| case V_FAST: | |||
| @@ -1562,7 +1562,7 @@ static void GetVoices(const char *path) | |||
| DIR *dir; | |||
| struct dirent *ent; | |||
| if((dir = opendir(path)) == NULL) | |||
| if((dir = opendir((char *)path)) == NULL) // note: (char *) is needed for WINCE | |||
| return; | |||
| while((ent = readdir(dir)) != NULL) | |||