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) |