Fix bug in SAPI5 version: speed suddenly changes to very slow when speaking a word which contains foreign characters. Language changes: da, fa, hu, pt, ur. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@313 d46cf337-b52f-0410-862d-fd96e6ae7743master
@@ -67,7 +67,7 @@ _? spWrgsmVlstajn | |||
_! udRVbstejn | |||
_- binnesdrai | |||
__ b'Onsdrai | |||
& Vw | |||
& _Vw | |||
£ pun? | |||
€ euro | |||
© kVpirajt | |||
@@ -117,8 +117,8 @@ _6X t*'Es // PB changed from e to E | |||
_7X h&lfj'&rs // PV a changed to & | |||
_8X f'irs | |||
_9X h&lf'Ems // PB a changed to & | |||
_0C h'un*@:D | |||
_1C ed||h'unR@:D // PB added 'et hundrede' | |||
_0C h'un*VD | |||
_1C ed||h'unRV:D // PB added 'et hundrede' | |||
_0M1 t'u:s@-n | |||
_1M1 ed||t'u:s@-n // PB added 'et' to tusind | |||
_1M2 'e:n||milij'o:n | |||
@@ -177,8 +177,8 @@ for | |||
fordi fVd'i $pause // because - PB: changed stress | |||
når nVr $pause // while | |||
der dEr $u+ $u // PB changed from [dA] | |||
hvor v'Vr // where | |||
hvorfor vVf'V // why - final r deleted | |||
hvor v'O // where | |||
hvorfor v?Of'?V // why - final r deleted | |||
// prepositions | |||
på pO $u | |||
@@ -187,16 +187,16 @@ fra $u+ // from | |||
ved $u+ // at | |||
om $u+ $brk // about, within | |||
med $u+ // with | |||
af &_| // PB changed from [a?] to [&] - sound too short in a sentence | |||
af & // PB changed from [a?] to [&] - sound too short in a sentence | |||
// Also removed $u from 'af' and other words. They disappeared. | |||
ad &: // PB added 'ad' | |||
ad & // PB added 'ad' | |||
ad &D $atend $sentence // PB "Det må ikke skille os ad." | |||
at &: $u // PB changed from [at] to [&:] | |||
at & $u // PB changed from [at] to [&:] | |||
hos // at - PB: removed [$u+] | |||
som sVm $u // which / that - PB: removed [$u+] | |||
// pronouns | |||
jeg jai $u+ // I | |||
jeg jaj $u+ // I | |||
du du $u | |||
de $u | |||
han $u | |||
@@ -272,11 +272,11 @@ q ku | |||
r Er | |||
s es | |||
//t te: mooved to da_rules because of clash with T-shirt | |||
u u? | |||
u u | |||
v ve | |||
w d'Vbeltve: | |||
x Eks | |||
y Y? | |||
y y | |||
z sEt | |||
ø W | |||
@@ -7196,6 +7196,7 @@ suffler $alt | |||
suggerer $alt | |||
sulfoner $alt | |||
summere $alt | |||
opsummere $alt | |||
superviser $alt | |||
suppler $alt | |||
supponer $alt | |||
@@ -7303,7 +7304,7 @@ valuter $alt | |||
vandaliser $alt | |||
varedeklarer $alt | |||
varier $alt | |||
vatter $alt | |||
vattere $alt | |||
vegeter $alt | |||
ventilere $alt | |||
verbaliser $alt | |||
@@ -11142,7 +11143,7 @@ rejiceres rejis'eVs // PB | |||
rejicering rejis'eRiN // PB | |||
nogle n'o:@-n // PB English: 'some' - must be pronounced like the Danish word 'nogen' | |||
nogen n'o:@-n // PB | |||
ligesom lisVm // PB | |||
ligesom l?isVm // PB | |||
bliver blir // PB | |||
konfirmand kVnferm'&nd // PB | |||
konfirmander kVnferm'&nd3 // PB | |||
@@ -11286,12 +11287,12 @@ steget ste@d | |||
// PB problem with noun "hav" = ocean and verb "hav(e)" = to have [hAu]/[h&v] | |||
(et hav) ed||h'Au // PB "et hav" = an ocean - not "hav en god dag" - have a nice day | |||
// PB legende = legend/myth and = playing | |||
(en legende) en||leg'End@ | |||
legenden leg'End@n | |||
(en legende) en||leg'End@- | |||
legenden leg'End@-n | |||
legender leg'EndV | |||
legenders leg'EndVs | |||
legenderne leg'EndVn3 | |||
legenderne leg'EndVn3s | |||
legenderne leg'EndVn@- | |||
legendernes leg'EndVn@-s | |||
// PB verb "forsyne" noun "forsyn" - stress problem | |||
(et forsyn) ed||f'Vrsyn | |||
(forsynet har) f'Vrsyn@d||hAr |
@@ -53,12 +53,12 @@ p r s S t T v w | |||
x z | |||
Dictionary da_dict 2013-03-06 | |||
Dictionary da_dict 2013-03-13 | |||
& &# 0 3 ?& ?&# ?0 ?a | |||
?A ?e ?E ?i ?o ?O ?u ?V | |||
?W ?W# ?y @ @- a A aI | |||
e E i I o O u V | |||
& &# 0 3 ?& ?&# ?0 ?A | |||
?e ?E ?i ?o ?O ?u ?V ?W | |||
?W# ?y @ @- a A aI e | |||
E i I n- o O u V | |||
W W# y Y | |||
* - 3- : ; ? b B | |||
@@ -68,7 +68,7 @@ r R R3 s S t T tS | |||
v w x z Z | |||
Dictionary hu_dict 2013-03-11 | |||
Dictionary hu_dict 2013-03-12 | |||
a A a: e E e: i i: | |||
o o: u u: Y y y: Y: | |||
@@ -104,7 +104,7 @@ p Q r R s s; t T | |||
ts v x z | |||
Dictionary en_dict 2013-03-10 | |||
Dictionary en_dict 2013-03-12 | |||
0 0# 3 3: @ @- @2 @5 | |||
@L a a# A: A@ aa aI aI3 | |||
@@ -117,8 +117,8 @@ oU O~ u U u: U@ V VR | |||
d# dZ f g h j k l | |||
l# l/ m n N n^ p Q | |||
q Q" r R r- R2 s S | |||
t T t2 tS v w x z | |||
Z z# | |||
t T t2 tS tS; v w x | |||
z Z z# | |||
Dictionary eo_dict 2013-03-08 | |||
@@ -379,7 +379,7 @@ S s; S; t t; tS ts tS; | |||
ts; v w x z Z Z; | |||
Dictionary pt_dict 2013-03-11 | |||
Dictionary pt_dict 2013-03-13 | |||
& &/ &U~ &~ @ @- a A | |||
aI aU e E eI EI eU EU | |||
@@ -603,7 +603,7 @@ N n^ p q R s S S; | |||
t tS v w x z | |||
Dictionary ur_dict 2013-03-09 | |||
Dictionary ur_dict 2013-03-13 | |||
@ a a: aI aU e E e: | |||
i I i: O o: U u: V | |||
@@ -850,7 +850,7 @@ p p- ph q r R s t | |||
t- tS tS; w | |||
Dictionary fa_dict 2013-02-13 | |||
Dictionary fa_dict 2013-03-12 | |||
a A e i o u | |||
@@ -274,7 +274,7 @@ _lo l'aU | |||
_ti tI2b'Et@n | |||
_my mj'A:nmA@ | |||
_ka dZ'O@dZ@n | |||
_ko k3r'i@n | |||
_ko h'angul | |||
_eth i:TI'0pIk | |||
_ja dZ'ap@ni:z | |||
_zh tS'aIni:z | |||
@@ -308,11 +308,15 @@ _zh tS'aIni:z | |||
ш Sa | |||
щ StSa | |||
ъ jEr | |||
ы _^_RU | |||
ь jer | |||
ы j'Eru | |||
ь j'eri | |||
э E | |||
ю ju | |||
я ja | |||
ћ tS;E | |||
ђ djE | |||
ќ kjE | |||
// Arabic letters | |||
@@ -1020,6 +1024,7 @@ canine keInaIn | |||
canoe k@nu: | |||
canoes k@nu:z | |||
canon kan@n | |||
?3 cantaloupe kant@loUp | |||
canton kant0n | |||
canvas kanv@s | |||
capita kapIt@ | |||
@@ -1192,6 +1197,8 @@ conger k0Ng3 | |||
congressional k@ngrES@n@L | |||
conker $1 | |||
conscience k0nS@ns | |||
consort $1 | |||
consort $verb | |||
constitute $1 | |||
construct $1 $onlys | |||
construct $verb | |||
@@ -2621,7 +2628,7 @@ sierra si:'e@r@ | |||
signage saInI2dZ | |||
signal sIgn@l // signaled | |||
signer saIn3 | |||
signoff s,aIn'0f | |||
signoff s'aIn0f | |||
signon s,aIn'0n | |||
signup saInVp | |||
sikh si:k |
@@ -387,6 +387,7 @@ | |||
_r) adio (@P5 r,eIdI%oU | |||
r) adi (oL10+ eIdI | |||
b) ad (os_ eId | |||
_s) ado (ma ,eIdoU | |||
ad (iA eId | |||
s) ad (is eId | |||
_tr) ad (it a#d | |||
@@ -3382,6 +3383,7 @@ | |||
&) ion (_ =i@n | |||
?8 &) ion (_ =IVn | |||
ll) ion i@n | |||
ll) ion (_ =i@n | |||
n) ion =i@n | |||
v) io (l aI@ | |||
ione (_ 'aI@ni | |||
@@ -3572,7 +3574,6 @@ | |||
_l) iv (eB aIv | |||
XC) iv (el Iv | |||
_g) iv (e Iv | |||
_l) iv (e Iv | |||
l) iv (er Iv | |||
r) iv (er Iv | |||
dr) iv (er aIv | |||
@@ -3753,8 +3754,7 @@ | |||
_) metall (ic m@tal | |||
metabo m@t'ab0 | |||
_) meta (llu m%Eta | |||
_) mobile moUbaIl | |||
mobile m@bi:l | |||
&) mobile m@bi:l | |||
mono (ga m@n'0 | |||
mo (noto m@ | |||
_) mono m0noU |
@@ -23,13 +23,15 @@ | |||
// Text to phoneme rules for Farsi | |||
// replace Arabic character numbers with Latin character numbers | |||
// replacing unknown characters and Arabic numbers with Farsi characters and Latin numbers | |||
.replace | |||
٪ % | |||
ي ی | |||
ۍ ی | |||
ى ی | |||
ك ک | |||
ە ه | |||
ھ ه | |||
٠ 0 | |||
۰ 0 | |||
۱ 1 | |||
@@ -59,12 +61,12 @@ | |||
.L01 آ ا ی ي و | |||
// short vowels (commonly unwritten ) | |||
.L02 َ ُ ِ ً ٌ ٍ ّ ؤ أ إ ء ۀ | |||
.L02 َ ُ ِ ْ ً ٌ ٍ ّ ؤ أ إ ء ۀ | |||
// All consonants | |||
.L03 ب پ ت ث ج چ ح خ د ذ ر ز ژ س ش ص ض ط ظ ع غ ف ق ک گ ل م ن ه ة ئ | |||
// all Farsi characters without ا آ | |||
// all Farsi characters without ا آ and Short vowels | |||
.L04 ض ص ث ق ف غ ع ه خ ح ج چ ش س ی ب ل ت ن م ک گ ۀ ظ ط ز ر ذ د ئ و ة ي ژ ؤ إ أ ء ؟ پ | |||
// Group one of consonants | |||
@@ -77,7 +79,7 @@ | |||
.L07 ن م ت ش ک مان تان شان ند نده ندۀ ندگی ندگان گی گان گانه گانۀ ستان ست | |||
// All vowels (long + Short) | |||
.L08 آ ا ی ي و َ ُ ِ ً ٌ ٍ ّ ؤ أ إ ء ۀ | |||
.L08 آ ا ی ي و َ ُ ِ ْ ً ٌ ٍ ّ ؤ أ إ ء ۀ | |||
// all Farsi characters without short vowels | |||
.L09 ض ص ث ق ف غ ع ه خ ح ج چ ش س ی ب ل ا ت ن م ک گ ۀ آ ظ ط ز ر ذ د ئ و ة ي ژ پ ؤ إ أ ء ؟ ّ | |||
@@ -100,6 +102,9 @@ | |||
L09L04) آلود (_Sm4 Alud | |||
L09L04) آباد (_Sm4 AbAd | |||
L09L04) آفرین (_Sm5 AfaRin | |||
L09L09) آموخته (_Sm6 Amuxte: | |||
L09L09) آموختۀ (_Sm6 Amuxteje | |||
L09L09) آگاه (_Sm4 AgAh | |||
.group ا | |||
@@ -108,7 +113,7 @@ | |||
-) ا (للّه_+ o | |||
_) ا (L02_ alef? | |||
_) ا (L02L09 | |||
_) ا (L01 | |||
_) ا (L01L03 | |||
_) ا 'a: | |||
_) ا (ع e | |||
ا 'A | |||
@@ -346,6 +351,8 @@ | |||
L09L09) بخت (_Sm3 baxt | |||
L09L09) باش (_Sm3 bAS | |||
L09L09) بزرگ (_Sm4 bozoRg | |||
L09L09) باور (_Sm4 bAvaR | |||
L09L09) برانگیز (_Sm baRangiz | |||
// arabic form of words (Babs) ب | |||
//فواعل eg. جوامع | |||
@@ -518,6 +525,7 @@ | |||
L09L09) پرداز (_Sm5 paRdAz | |||
L09L09) پندار (_Sm5 pendAR | |||
L09L09) پرست (_Sm4 paRast | |||
L09L09) پناه (_Sm4 panAh | |||
// arabic form of words (Babs) پ | |||
//فواعل eg. جوامع | |||
@@ -1670,6 +1678,7 @@ | |||
L09L09) درد (_Sm3 daRd | |||
L09L09) دوش (_Sm3 duS | |||
L09L09) دهی (_Sm3 dehi | |||
L09L09) دوست (_Sm4 dust | |||
// arabic form of words (Babs) د | |||
//فواعل eg. جوامع | |||
@@ -2473,6 +2482,7 @@ | |||
// suffixes س | |||
L09L01) ست (_+NSm2 st | |||
L09L03) ست (_+NSm2 ast | |||
-) ست (_+NSm2 st // eg. "کجاست" | |||
L09L03) ستان (_Sm4 estAn | |||
L09L01) ستان (_Sm4 stAn | |||
L09L09) سان (_Sm3 sAn | |||
@@ -2826,7 +2836,7 @@ | |||
// Prefixes ص | |||
_) صاحب (L04L09L09P4@ sAheb | |||
_) صاحب (آL09L09P4@ sAheb | |||
_) صدر (L04L09L09P5@ sadr | |||
_) صدر (L04L09L09P3@ sadr | |||
_) صدر (آL09L09P5@ sadr | |||
// Suffixes ص | |||
@@ -4663,6 +4673,7 @@ | |||
L09L01) مون (_Sm3 mun | |||
L09L09) مردان (_Sm5 maRdAn | |||
L09L09) منش (_Sm3 maneS | |||
L09L09) مآب (_Sm3 maAb | |||
// arabic form of words (Babs) م | |||
//فواعل eg. جوامع | |||
@@ -5209,6 +5220,7 @@ | |||
// Plural pronoun ها | |||
L09L09) های (_NSm3 h'Aje | |||
L09L09) هایی (_NSm4 h'Ai: | |||
L09L09) هائی (_NSm4 h'Ai: | |||
L09L09) هاست (_NSm4 h'Ast | |||
// Plural possessive pronouns for ها | |||
L09L09) هایم (_NSm4 hAjam | |||
@@ -5352,6 +5364,8 @@ | |||
_ا) ی (_+ i | |||
L01) ی (_ je | |||
L03) ی (_ i | |||
ی (ٰ_ | |||
ی (ٰL04 j | |||
_آ) ی (L03_ ja | |||
// Prefixes ی | |||
@@ -5439,6 +5453,7 @@ | |||
L09ع) یاتشان (_NSm6 ijjAteSAn | |||
L09L09) یزاسیون (_Sm7 isAsion | |||
L09L03) یافت (_Sm4 jAft | |||
-) یست (_+NSm3 ist // eg. "فردایست" | |||
// arabic form of words (Babs) ی | |||
//فواعل eg. جوامع | |||
@@ -5518,6 +5533,8 @@ | |||
.group ٔ | |||
L04) ٔ | |||
ا) ٔ a? | |||
ٔ | |||
// suffixes ٔ | |||
@@ -5530,6 +5547,7 @@ | |||
.group ئ | |||
ئی i: | |||
ئ (L01 ? | |||
ئ (L02 ? | |||
L02) ئ ? | |||
@@ -5560,6 +5578,13 @@ | |||
//ة (L01 h | |||
ة t | |||
.group ٰ | |||
ٰ (L04 A | |||
ٰ (ا | |||
ٰ (آ | |||
//short vowels that are not usually written: | |||
.group َ | |||
@@ -5583,6 +5608,12 @@ | |||
L09L09) ُ (_Sm1 o | |||
.group ْ | |||
ْ | |||
// Suffixes "ْ" | |||
L09L09) ْ (_Sm1 | |||
.group ً | |||
ً an | |||
// Suffixes "ً" |
@@ -411,7 +411,7 @@ _tld tildE | |||
_#9 tAb | |||
_#32 s'o:kYz | |||
_cap n'AJ_| | |||
_?? kAR2AktEr||ko:d // unknown characters (change this) | |||
_?? kAR2AktEr // unknown characters (change this) | |||
// Abbreviations | |||
@@ -5419,7 +5419,6 @@ _″ duplA|ApostR2o:f | |||
≠ nEmEJEnlY: | |||
_ˇ lEfEle:n^i:l | |||
_¡ AlSo:indEks | |||
_braille bR2Ail:E | |||
// Alphabets | |||
@@ -5427,6 +5426,7 @@ _ar 'AR2Ab | |||
_cyr ts'iR2ill | |||
_he h'e:bER2 | |||
_zh k'i:nAi | |||
_braille bR2Ail:E | |||
// Main Exceptions List |
@@ -460,6 +460,7 @@ shetlan) d (szige d | |||
_tren) dsz (e d|s | |||
vakon) d (sz d | |||
vé) d (jeggy d | |||
své) d (zseb d | |||
.group dz | |||
fogó) dz (kod ts | |||
@@ -1743,7 +1744,7 @@ fáklyá) sz (ene Sz | |||
para) szt (segg st | |||
azbe) szt (sisak st | |||
nyu) szt (süveg st | |||
serté) szs (ír SZ | |||
serté) szs (ír S|Z | |||
tá) szs (in SZ | |||
va) szs (ír SZ | |||
szs (ák SZ //All szsák part containing part need spokening single S and Z phoneme, for example kenyereszsák, pénzeszsák, krumpliszsák, cukroszsák words | |||
@@ -1763,6 +1764,7 @@ fáklyá) sz (ene Sz | |||
ellenállá) sz (ón Sz | |||
ré) sz (árás Sz | |||
_te) szts (or st|S | |||
serté) szs (ir S|Z | |||
.group t | |||
t t |
@@ -645,7 +645,7 @@ alcateia $alt | |||
alferes $alt | |||
algozes $alt | |||
alicerce $alt | |||
almoço $alt $verb | |||
almoço alt $verb | |||
amarelo $alt | |||
ameba $alt | |||
amores $alt2 | |||
@@ -665,7 +665,7 @@ aterro $alt2 $noun | |||
atmosfera $alt | |||
atrozes $alt | |||
autora $alt2 | |||
avesso $alt2 | |||
avesso $alt2 | |||
axé aSE | |||
baqueta $alt2 | |||
beco $alt2 | |||
@@ -674,6 +674,7 @@ besta $alt2 | |||
bilhete $alt2 | |||
boca $alt2 | |||
bochecha $alt2 | |||
boio $alt | |||
bojo $alt2 | |||
boleia $alt | |||
bolero $alt | |||
@@ -690,7 +691,7 @@ cachorra $alt2 | |||
caderneta $alt2 | |||
camiseta $alt2 | |||
cantora $alt2 | |||
capacete $alt2 | |||
capacete $alt2 | |||
caractere $alt | |||
caramelo $alt | |||
careta $alt2 | |||
@@ -702,27 +703,27 @@ cateto $alt2 | |||
catorze $alt2 | |||
cebola $alt2 | |||
cefaleia $alt | |||
cerca $alt | |||
cerca $alt2 $noun | |||
cerca $alt | |||
cerca $alt2 $noun | |||
cerco $alt $verb | |||
chamego $alt2 | |||
chefe $alt | |||
checam $alt | |||
checam $alt | |||
cheque $alt | |||
chinelo $alt | |||
choro $alt2 $noun | |||
chovesse $alt2 | |||
chovesse $alt2 | |||
chupeta $alt2 | |||
clamores $alt2 | |||
clero $alt | |||
coco $alt2 | |||
cofre $alt | |||
cogumelo $alt | |||
cogumelo $alt | |||
coice $alt2 | |||
colabore $alt | |||
colete $alt2 | |||
colchete $alt2 | |||
colher $alt $noun | |||
colchete $alt2 | |||
colher $alt $noun | |||
colheres $alt $noun | |||
colmeia $alt | |||
colore $alt | |||
@@ -732,8 +733,8 @@ concerto $alt2 $noun | |||
concordo $alt | |||
conforto $alt $verb | |||
consolo $alt2 $noun | |||
controle $alt2 $noun | |||
controlo $alt2 $noun | |||
controle $alt2 $noun | |||
controlo $alt2 $noun | |||
coreia $alt | |||
corneta $alt2 | |||
cornos $alt | |||
@@ -789,7 +790,7 @@ escroto $alt2 | |||
esforço $alt $verb | |||
esforços $alt | |||
esgoto $alt2 $noun | |||
esgotos $alt2 | |||
esgotos $alt2 | |||
esperma $alt | |||
espeto $alt2 $noun | |||
espiroqueta $alt2 | |||
@@ -820,11 +821,11 @@ fogos $alt | |||
foguete $alt2 | |||
foice $alt2 | |||
forca $alt2 | |||
força $alt2 $noun | |||
força $alt2 $noun | |||
forças $alt2 | |||
forço $alt | |||
fordes $alt2 | |||
fores $alt2 | |||
forço $alt | |||
fordes $alt2 | |||
fores $alt2 | |||
forro $alt $verb | |||
fosse $alt2 | |||
frevo $alt2 | |||
@@ -833,7 +834,7 @@ galileia $alt | |||
gameta $alt2 | |||
geleia $alt | |||
gelo $alt $verb | |||
genebra $alt | |||
genebra $alt | |||
germe $alt | |||
gesso $alt2 | |||
golpe $alt | |||
@@ -841,33 +842,33 @@ gonorreia $alt | |||
gorda $alt2 | |||
gosto $alt $verb | |||
gota $alt2 | |||
governo $alt2 $noun | |||
gozo $alt $verb | |||
governo $alt2 $noun | |||
gozo $alt2 $noun | |||
graveto $alt2 | |||
grelha $alt | |||
groselha $alt | |||
grosso $alt2 | |||
grozo $alt $verb | |||
hemorroida $alt | |||
hemorroida $alt | |||
hoje $alt2 | |||
horrores $alt2 | |||
ideia $alt | |||
insonoro $alt | |||
interesse $alt2 $noun | |||
jogo $alt2 $noun | |||
interesse $alt2 $noun | |||
jogo $alt2 $noun | |||
joguete $alt2 | |||
lambreta $alt2 | |||
lebre $alt | |||
leste $alt2 $verb | |||
lopes $alt | |||
maior $alt | |||
maior $alt | |||
maleta $alt2 | |||
marcelo $alt | |||
marmelo $alt | |||
marreta $alt2 | |||
martelo $alt | |||
melhor $alt | |||
menor $alt | |||
melhor $alt | |||
menor $alt | |||
merda $alt | |||
megera $alt | |||
melo $alt | |||
@@ -880,7 +881,7 @@ mexi meS'i | |||
mexo m'eSU | |||
minueto $alt2 | |||
miolo $alt2 | |||
miolos $alt | |||
miolos $alt | |||
moeda $alt | |||
molho $alt2 $noun | |||
monera $alt | |||
@@ -889,7 +890,7 @@ morda $alt2 | |||
moreia $alt | |||
mortos $alt | |||
motora $alt2 | |||
mulher $alt | |||
mulher $alt | |||
mui mwi | |||
muito mw'iNtU // -s is included as a suffix | |||
muita mw'iNt& | |||
@@ -907,17 +908,17 @@ onu $1 | |||
olho $alt2 $noun | |||
opereta $alt2 | |||
ordens $alt | |||
osso $alt2 | |||
ossos $alt | |||
osso $alt2 | |||
ossos $alt | |||
ostra $alt2 | |||
ovos $alt | |||
pachorra $alt2 | |||
paexa paeSa | |||
palacete $alt2 | |||
palheta $alt2 | |||
panfleto $alt2 | |||
panfleto $alt2 | |||
pangeia $alt | |||
panqueca p,&~Nk'Ek& | |||
panqueca p,&~Nk'Ek& | |||
pantera $alt | |||
paralelo $alt | |||
parede $alt2 | |||
@@ -929,8 +930,9 @@ pelo $alt $verb | |||
peso $alt $verb | |||
piloto $alt2 $noun | |||
pintora $alt2 | |||
pior $alt | |||
pior $alt | |||
pirueta $alt2 | |||
plaqueta $alt2 | |||
plateia $alt | |||
plebeia $alt | |||
polca $alt | |||
@@ -944,7 +946,7 @@ poxa p'oS& | |||
primavera $alt | |||
provo $alt | |||
quarteto $alt2 | |||
queda $alt | |||
queda $alt | |||
quinteto $alt2 | |||
recomeço $alt2 $noun | |||
recordo $alt | |||
@@ -959,7 +961,7 @@ reitora $alt2 | |||
relevo $alt2 $noun | |||
remorso $alt | |||
reprovo $alt | |||
retorno $alt $verb | |||
retorno $alt $verb | |||
rixa x'iS& | |||
rocha $alt | |||
rock $alt | |||
@@ -970,9 +972,9 @@ saleta $alt2 | |||
sarjeta $alt | |||
seborreia $alt | |||
seca $alt2 $noun | |||
secas $alt2 | |||
secas $alt2 | |||
seco $alt2 | |||
seco $alt $verb | |||
seco $alt $verb | |||
selo $alt $verb | |||
selvagem seUv'aZeIN | |||
sexteto $alt2 | |||
@@ -985,14 +987,14 @@ sogra $alt | |||
sopro $alt2 $noun | |||
soro $alt2 | |||
sorvete $alt2 | |||
sossego $alt2 $noun | |||
sossego $alt2 $noun | |||
suborno $alt $verb | |||
sufoco $alt2 $noun | |||
sufocos $alt2 | |||
suporto $alt | |||
suor swOr | |||
tapete $alt2 | |||
temores $alt2 | |||
temores $alt2 | |||
tempero $alt2 $noun | |||
terrores $alt2 | |||
teta $alt2 | |||
@@ -1001,8 +1003,8 @@ tocha $alt | |||
toga $alt | |||
topo $alt $verb | |||
torno $alt $verb | |||
torre $alt2 $noun | |||
torres $alt2 | |||
torre $alt2 $noun | |||
torres $alt2 | |||
tortos $alt | |||
traqueia $alt | |||
travesso $alt2 | |||
@@ -1012,13 +1014,13 @@ troco $alt2 $noun | |||
tropa $alt | |||
tropeço $alt2 $noun | |||
trombeta $alt2 | |||
tumores $alt2 | |||
tumores $alt2 | |||
valeta $alt2 | |||
vanessa $alt2 | |||
velozes $alt | |||
verme $alt | |||
violeta $alt2 | |||
violoncelo $alt | |||
violoncelo $alt | |||
voga $alt | |||
vozes $alt | |||
xarope $alt |
@@ -349,7 +349,7 @@ | |||
_d) e (L05_ E | |||
_vi) e (L05_ E | |||
fiz) e (L05_ E | |||
pus) e (L05_ E / com- im- de- | |||
pus) e (L05_ E // com- im- de- | |||
tiv) e (L05_ E // es- | |||
_com) e (L05_ e | |||
_pud) e (L05_ E | |||
@@ -359,34 +359,34 @@ | |||
_perd) e (L05_ e | |||
_quis) e (L05_ E | |||
_soub) e (L05_ E | |||
tend) e (L06_ e / a- con- en- es- | |||
tend) e (L06_ e // a- con- en- es- | |||
_mord) e (L06_ e | |||
_rend) e (L06_ e | |||
_vend) e (L06_ e | |||
prend) e (L06_ e / a- rea- des- desa- | |||
prend) e (L06_ e // a- rea- des- desa- | |||
_arrepend) e (L06_ e | |||
_defend) e (L06_ e | |||
_depend) e (L06_ e | |||
_escond) e (L06_ e | |||
preend) e (L06_ e / com- a- re- sur- | |||
preend) e (L06_ e // com- a- re- sur- | |||
respond) e (L06_ e // cor- | |||
bat) e (L07_ e // re- com- | |||
ced) e (L07_ e // pro- con- su- | |||
met) e (L07_ e // co- pro- arre- re- intro- compro- sub- | |||
mov) e (L07_ e / re- co- | |||
mov) e (L07_ e // re- co- | |||
viv) e (L07_ e // re- | |||
_beb) e (L07_ e | |||
_com) e (L07_ e | |||
_tem) e (L07_ e | |||
colh) e (L07_ e // & es- | |||
corr) e (L07_ e // per- con- in- so- dis- | |||
ench) e (L07_ e / pre- | |||
nasc) e (L07_ e / re- | |||
tend) e (L07_ e / en- con- a- es- | |||
ench) e (L07_ e // pre- | |||
nasc) e (L07_ e // re- | |||
tend) e (L07_ e // en- con- a- es- | |||
torc) e (L07_ e // con- | |||
venc) e (L07_ e // con- | |||
vert) e (L07_ e // in- re- con- | |||
volv) e (L07_ e de- en- re- | |||
volv) e (L07_ e // de- en- re- | |||
_eleg) e (L07_ e | |||
_ergu) e (L07_ e | |||
_mord) e (L07_ e | |||
@@ -397,7 +397,7 @@ respond) e (L06_ e // cor- | |||
padec) e (L07_ e // com- | |||
parec) e (L07_ e // a- rea- com- desa- | |||
prend) e (L07_ e // a- rea- des- | |||
screv) e (L07_ e / e- in- ree- pre- de- | |||
screv) e (L07_ e // e- in- ree- pre- de- | |||
_abastec) e (L07_ e | |||
_aborrec) e (L07_ e | |||
_absolv) e (L07_ e | |||
@@ -430,11 +430,11 @@ _rejuvenec) e (L07_ e | |||
_resolv) e (L07_ e | |||
_suspend) e (L07_ e | |||
conhec) e (L07_ e // & re- des- | |||
estabelec) e (L07_ e / re- | |||
favorec) e (L07_ e / des- | |||
obedec) e (L07_ e / des- | |||
estabelec) e (L07_ e // re- | |||
favorec) e (L07_ e // des- | |||
obedec) e (L07_ e // des- | |||
preend) e (L07_ e // sur- com- | |||
proteg) e (L07_ e / des- | |||
proteg) e (L07_ e // des- | |||
respond) e (L07_ e // cor- | |||
qu) e (brL04_ E | |||
_hosp) e (dL03_ E | |||
@@ -442,6 +442,8 @@ respond) e (L07_ e // cor- | |||
_n) e (grL03_ e | |||
_estr) ei (L03_ EI | |||
_inv) e (jL04_ E | |||
proteg) e (l05_ e // des- | |||
tr) e (pL04_ E // es- | |||
_dec) e (pL04_ E | |||
_in) e (ptL03_ E | |||
_p) e (quL02_ E | |||
@@ -451,14 +453,14 @@ respond) e (L07_ e // cor- | |||
_sev) e (rL03_ E | |||
_reit) e (rL03_ E | |||
_sinc) e (rL03_ E | |||
g) e (rL04_ E / su- refri- | |||
qu) e (rL04_ E / re- | |||
g) e (rL04_ E // su- refri- | |||
qu) e (rL04_ E // re- | |||
_op) e (rL04_ E | |||
_alt) e (rL04_ E | |||
_sup) e (rL04_ E | |||
_tol) e (rL04_ E | |||
_ven) e (rL04_ E | |||
acel) e (rL04_ E / des- | |||
acel) e (rL04_ E // des- | |||
_coop) e (rL04_ E | |||
_temp) e (rL04_ E | |||
_v) e (rbL03_ E | |||
@@ -494,13 +496,13 @@ _obsol) e (tL03_ e | |||
_d) e (vL03_ e | |||
scr) e (vL03_ e // e- in- pre- ree- de- | |||
_atr) e (vL03_ e | |||
pr) e (zL04_ E / des- menos- | |||
pr) e (zL04_ E // des- menos- | |||
_embel) e (zL04_ E | |||
_acont) e (çL01_ e | |||
_arref) e (çL01_ e | |||
_emagr) e (çL03 | |||
pr) e (çL03_ e / a- | |||
mer) e (çL03_ e / des- | |||
pr) e (çL03_ e // a- | |||
mer) e (çL03_ e // des- | |||
pad) e (çL03_ e // com- | |||
par) e (çL03_ e // a- re- com- rea- desa- | |||
_ado) e (çL03_ e | |||
@@ -508,7 +510,7 @@ _emagr) e (çL03 | |||
_car) e (çL03_ e | |||
_per) e (çL03_ e_ | |||
conh) e (çL03_ e // re- | |||
obed) e (çL03_ e / des- | |||
obed) e (çL03_ e // des- | |||
_esqu) e (çL03_ e | |||
_forn) e (çL03_ e | |||
_ofer) e (çL03_ e | |||
@@ -518,6 +520,7 @@ _agrad) e (çL03_ e | |||
_amanh) e (çL03_ e | |||
_amort) e (çL03_ e | |||
_anoit) e (çL03_ e | |||
_desguarn) e (çL03_ e | |||
_desguarnec) e (çL03_ e | |||
_enfraqu) e (çL03_ e | |||
_enlouqu) e (çL03_ e | |||
@@ -531,7 +534,7 @@ _espair) e (çL03_ e | |||
_estrem) e (çL03_ e | |||
_fortal) e (çL03_ e | |||
_rejuven) e (çL03_ e | |||
estabel) e (çL03_ e / re- | |||
estabel) e (çL03_ e // re- | |||
//endsort | |||
@@ -828,17 +831,17 @@ estabel) e (çL03_ e / re- | |||
_deb) o (chL04_ O | |||
_desabr) o (chL04_ O | |||
_s) o (frL02_ O | |||
r) o (gL04_ O / inter- | |||
r) o (gL04_ O // inter- | |||
_j) o (gL04_ O | |||
_af) o (gL04_ O | |||
_adv) o (gL04_ O | |||
_ref) o (gL04_ O | |||
_ap) oi (L01_ OI | |||
_t) o (lL03_ o | |||
c) o (lhL02_ O / es- en- re- | |||
c) o (lhL02_ O // es- en- re- | |||
_t) o (lhL02_ O | |||
_m) o (lhL04_ O | |||
env) o (lvL02_ O / des- | |||
env) o (lvL02_ O // des- | |||
_abs) o (lvL02_ O | |||
_dev) o (lvL02_ O | |||
_res) o (lvL02_ O | |||
@@ -854,6 +857,7 @@ _desabr) o (chL04_ O | |||
_r) o (snL04_ O | |||
_c) o (spL02_ O | |||
p) ostos (_ Ost=Us# // dispostos etc. | |||
_g) o (zL04_ O | |||
_ad) o (çL03_ O | |||
_end) o (çL03_ O | |||
//endsort |
@@ -14,7 +14,7 @@ consonants 11 119 | |||
af 39 138 | |||
cy 29 134 | |||
ga 29 133 | |||
de 41 141 | |||
de 40 140 | |||
eo 13 116 | |||
jbo 2 116 | |||
nci 3 125 | |||
@@ -66,7 +66,7 @@ consonants 11 119 | |||
id 15 127 | |||
sq 33 127 | |||
hy 23 119 | |||
da 46 139 | |||
da 45 138 | |||
ka 20 115 | |||
fa 9 112 | |||
rw 15 132 | |||
@@ -448,9 +448,11 @@ l/l_ [l] base | |||
[l/] base | |||
[l/3] base | |||
[l/] fr | |||
[l/3] da | |||
l/l_@ [l/3] base | |||
[l/] fr | |||
l/l@ [¨ì,] base | |||
[l/3] da | |||
l/l@ [¨|8] base | |||
[l#] base | |||
[l] fr | |||
[l/2] fr | |||
@@ -484,7 +486,7 @@ l/L2_oL [l/2] base | |||
l/L2_uL [l/2] base | |||
l/l_3 [l/] de | |||
l/l_4 [ll] sq | |||
l/la [¨ì,] base | |||
l/la [¨|8] base | |||
[l#] base | |||
[l] fr | |||
[l/2] fr | |||
@@ -492,7 +494,8 @@ l/la [ | |||
[K] tn | |||
l/l_a [l/3] base | |||
[l/] fr | |||
l/le [¨ì,] base | |||
[l/3] da | |||
l/le [¨|8] base | |||
[l#] base | |||
[l] fr | |||
[l/2] fr | |||
@@ -500,11 +503,12 @@ l/le [ | |||
[K] tn | |||
l/l_e [l/3] base | |||
[l/] fr | |||
[l/3] da | |||
l/L_eL_af [&] af | |||
[&:] af | |||
l/l_front [L] sq | |||
l/l_front_ [l/4] sq | |||
l/li [¨ì,] base | |||
l/li [¨|8] base | |||
[l#] base | |||
[l] fr | |||
[l/2] fr | |||
@@ -514,22 +518,24 @@ l/li [ | |||
l/l_i [l/3] base | |||
[l/] fr | |||
[i] sq | |||
[l/3] da | |||
ll/ll [L] base | |||
ll/_ll [L] base | |||
l/l_long [l] base | |||
[l] fr | |||
l/lo [¨ì,] base | |||
l/lo [¨|8] base | |||
[l#] base | |||
[l/2] fr | |||
[K] nso | |||
[K] tn | |||
l/l_o [l/3] base | |||
[l/] fr | |||
[l/3] da | |||
l^/l_rfx [l.] base | |||
[l;] lt | |||
[l] ru | |||
[l^] ru | |||
l/lu [¨ì,] base | |||
l/lu [¨|8] base | |||
[l#] base | |||
[l] fr | |||
[l/2] fr | |||
@@ -537,6 +543,7 @@ l/lu [ | |||
[K] tn | |||
l/l_u [l/3] base | |||
[l/] fr | |||
[l/3] da | |||
l/l_vi [l] vi | |||
ll/xll [L] base | |||
l/l_y [l/] fr | |||
@@ -661,7 +668,6 @@ n/nu [n] base | |||
[n] fr | |||
[n#] is | |||
[n] zh | |||
r/@_ [V#] de | |||
r2/r2@ [r-] en | |||
[r-] tn | |||
r2/r2a [r-] en | |||
@@ -708,9 +714,7 @@ r3/r_trill.wav [R2] base | |||
[r*] sr | |||
[r] ru | |||
r3/r_uvl [r"] base | |||
[r2] de | |||
r3/r_uvl.wav [r"] base | |||
[r2] de | |||
r3/rx [*] base | |||
[r/] base | |||
[r/] af | |||
@@ -770,8 +774,6 @@ r/ru [r] base | |||
r/tr [r] base | |||
r/trr [r/] base | |||
[r] ro | |||
r/V_ [V#] de | |||
r/V_2_ [V#] de | |||
r/xr [r] base | |||
[R3] base | |||
[r-] en | |||
@@ -1089,6 +1091,7 @@ vdiph2/i@ [i@] en-n | |||
[i@] ga | |||
[i@] hy | |||
vdiph2/i@_2 [i@] en-wm | |||
[iR] de | |||
vdiph2/ie [i@] en-wi | |||
[ie] fi | |||
[ie] mt | |||
@@ -1633,8 +1636,6 @@ vowel/a_2 [a] base2 | |||
[a] pt-pt | |||
[a] ro | |||
[a] el | |||
[a] da | |||
[?a] da | |||
[a] rw | |||
vowel/a#_2 [A] nl | |||
[a:] nl | |||
@@ -1663,8 +1664,6 @@ vowel/a_3 [a] en-sc | |||
[a:] la | |||
[A] zh | |||
[a] sq | |||
[A] da | |||
[?A] da | |||
[a] ka | |||
[a:] si | |||
vowel/a#_3 [a#] en | |||
@@ -1712,6 +1711,8 @@ vowel/a_7 [a] fr | |||
[a] ht | |||
vowel/a_8 [a] en | |||
[a] sk | |||
[A] da | |||
[?A] da | |||
vowel/aa [a:] et | |||
[A] fr-ca | |||
[A] no |
@@ -1,3 +1,12 @@ | |||
// PB General rules for vowels: | |||
// Short vowels | |||
// ACC: Short "pille" [p?el@-] | |||
// AC[V]: Short "piler" [p?ilV] | |||
// A[N]: Short "bange" [b?AN@-] | |||
// Long vowels | |||
// A + group #@ OR group #e: Long "ae" "aer" [&:@-] | |||
// AC + group #@ OR group #e: Long "pile" [pi:l@-] | |||
// AC[i]: Long "smidig" [smi:Di] | |||
phoneme @ | |||
vowel starttype #@ endtype #@ | |||
@@ -36,42 +45,42 @@ endphoneme | |||
phoneme i | |||
vowel starttype #i endtype #i | |||
length 150 | |||
// IfNextVowelAppend(;) | |||
IF nextPhW(isNotVowel) AND NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@-) THEN | |||
glstop | |||
length 90 | |||
length 90 //150 | |||
// PB long vowel followed by consonant and certain vowels "gide" | |||
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(#e) THEN | |||
length 150 | |||
ENDIF | |||
// PB "tie", "stige", "krige" vowel + vowel: extra length | |||
// What is causing this very short [i] in words with final [@-]? | |||
// NOT "galleriet" [g,?&lVR'i@-D] NOT "krigen" [kR'i@-n] | |||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) AND NOT next2PhW(D) AND NOT next2PhW(n) THEN | |||
length 240 | |||
// "gider" TEST | |||
IF nextPhW(D) AND next2PhW(V) OR next2PhW(?V) THEN | |||
length 90 | |||
ENDIF | |||
// "siden" | |||
IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(@-) AND nextPhW(D) THEN | |||
// PB long vowel followed by certain vowels - "pigen" [p'i@-n] | |||
IF nextPhW(#@) OR nextPhW(#e) THEN | |||
length 150 | |||
ENDIF | |||
// "lise" | |||
IF nextPhW(isNotVowel) AND nextVowel(@-) OR nextVowel(@) THEN | |||
// Only this vowel (in this case [i]) | |||
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) OR prevPhW(_) THEN | |||
length 150 | |||
ENDIF | |||
// PB "Bishop" | |||
IF nextPhW(S) AND next2PhW(V) THEN | |||
length 90 | |||
ENDIF | |||
// "pjækkeri", "røveri" | |||
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||
length 90 | |||
// This vowel is word end - longer because it sounds too short | |||
// "sig", "si" | |||
IF thisPh(isWordEnd) THEN | |||
length 120 | |||
ENDIF | |||
// "vilje" | |||
// "vilje" - short followed by 2 consonants | |||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | |||
length 90 | |||
ENDIF | |||
// PB "tie", "stige", "krige" vowel + vowel: extra length | |||
// What is causing this very short [i] in words with final [@-]? | |||
// NOT "galleriet" [g,?&lVR'i@-D] NOT "krigen" [kR'i@-n] | |||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) AND NOT next2PhW(D) AND NOT next2PhW(n) THEN | |||
length 240 | |||
ENDIF | |||
FMT(vowel/i_4) | |||
endphoneme | |||
// PB Experimental glottal i | |||
// PB short i | |||
// sviret vs. svirret | |||
phoneme ?i | |||
vowel starttype #i endtype #i | |||
@@ -90,31 +99,11 @@ endphoneme | |||
phoneme e | |||
vowel starttype #e endtype #e | |||
length 150 | |||
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||
glstop | |||
length 90 | |||
ENDIF | |||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN | |||
length 150 | |||
ENDIF | |||
// "delte", "mante", "evig" [evi] | |||
IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(@) OR nextVowel(@-) THEN | |||
length 90 //150 | |||
// "delte", "mente" | |||
IF nextPhW(#e) OR nextPhW(#@) OR next2PhW(#e) OR next2PhW(#@) THEN | |||
length 150 | |||
ENDIF | |||
// "prinsen" - TEST | |||
IF nextPhW(n) AND next2PhW(s) THEN | |||
length 90 | |||
ENDIF | |||
// "slesk", "sleske" short vowel | |||
IF nextPhW(s) AND next2PhW(t) AND nextVowel(@-) THEN | |||
length 90 | |||
ELIF nextPhW(s) AND next2PhW(k) AND nextVowel(@-) THEN | |||
length 90 | |||
// "skriften" - very broad: short before 2 consonants | |||
ELIF nextPhW(isNotVowel) AND next2PhW(isNotVowel) AND nextVowel(@-) THEN | |||
length 90 | |||
ENDIF | |||
// PB "ring", "ringe" | |||
IF nextPhW(N) THEN | |||
length 90 | |||
@@ -123,14 +112,18 @@ ENDIF | |||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN | |||
length 150 | |||
ENDIF | |||
// "labyrinter" , "labyrinten" - short followed by 2 consonants | |||
// Only "e" | |||
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN | |||
length 150 | |||
ENDIF | |||
// "nedladende" [n'eDl&D@-n@-] - before 2 consonants: short | |||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | |||
length 60 | |||
length 90 | |||
ENDIF | |||
FMT(vowel/e) | |||
endphoneme | |||
// PB glottal e | |||
// PB short e | |||
// "skille" vs. "skele", "pille" vs. "pile" | |||
phoneme ?e | |||
vowel starttype #e endtype #e | |||
@@ -140,42 +133,43 @@ endphoneme | |||
phoneme E | |||
vowel starttype #e endtype #e | |||
length 150 | |||
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||
glstop | |||
length 90 | |||
ENDIF | |||
// example? | |||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN | |||
length 50 | |||
ENDIF | |||
length 90 //150 | |||
// "værelse", "breve" | |||
IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(@-) THEN | |||
length 150 | |||
// length 150 | |||
ENDIF | |||
// "fest", "feste" short vowel | |||
IF nextPhW(s) AND next2PhW(t) AND nextVowel(@-) THEN | |||
length 90 | |||
ELIF nextPhW(s) AND next2PhW(k) AND nextVowel(@-) THEN | |||
length 90 | |||
// PB knægten | |||
ELIF nextPhW(g) AND next2PhW(t) AND nextVowel(@-) THEN | |||
length 90 | |||
// "femten", "tænker" - very broad: short before 2 consonants | |||
ELIF nextPhW(isNotVowel) AND next2PhW(isNotVowel) AND nextVowel(@-) OR nextVowel(V)THEN | |||
length 90 | |||
// PB "kærlig" [k'Erli]- a bit longer because og the missing [ɐ] [ˈkæɐ̯li] | |||
ELIF nextPhW(r) AND next2PhW(isNotVowel) AND nextVowel(i) THEN | |||
length 130 | |||
// "ræve" | |||
IF nextVowel(#@) OR nextVowel(#e) THEN | |||
length 150 | |||
ENDIF | |||
// "ære", "kærester", "ærefrygt" - longer E | |||
IF nextPhW(V) THEN | |||
length 180 | |||
ENDIF | |||
// Only the letter "æ" - long | |||
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN | |||
length 150 | |||
ENDIF | |||
// "stædig" [st'EDi] long | |||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN | |||
length 150 | |||
ENDIF | |||
// "længe" - short - 2 consonants => 1 consonant | |||
IF nextPhW(N) THEN | |||
length 90 | |||
ENDIF | |||
// "værelse" [v'E3-Vls@_!] | |||
IF nextPhW(3-) AND next2PhW(V) THEN | |||
length 90 | |||
ENDIF | |||
// "mælkebøtte" - short followed by 2 consonants | |||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | |||
length 90 | |||
ENDIF | |||
FMT(vowel/e_mid2) | |||
endphoneme | |||
// PB Experimental glottal E | |||
// PB short E | |||
// "læsse" vs. "læse" | |||
phoneme ?E | |||
vowel starttype #e endtype #e | |||
@@ -190,44 +184,42 @@ endphoneme | |||
phoneme & | |||
vowel starttype #e endtype #e | |||
length 150 | |||
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||
glstop | |||
length 90 | |||
ipa a | |||
length 90 //150 | |||
// "same", "sale", "bade" - consonant + gooup #e or group #@: long | |||
IF next2PhW(#@) OR next2PhW(#e) THEN | |||
length 150 | |||
ENDIF | |||
// ThisPh + gooup #e or group #@ | |||
// "ae", "aer" vowel + vowel: extra length | |||
IF nextPhW(#@) OR nextPhW(#e) THEN | |||
length 240 | |||
ENDIF | |||
// This vowel is word end - longer because it sounds too short | |||
// "ja", "Omaha" | |||
IF thisPh(isWordEnd) THEN | |||
length 120 | |||
ENDIF | |||
// PB "sable", "sabler", "anede", "David" | |||
IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(i) OR nextVowel(@-) THEN | |||
// Only this vowel (in this case [&]) | |||
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) OR prevPhW(_) THEN | |||
length 150 | |||
ENDIF | |||
// "stadig" [st&Di] | |||
IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN | |||
length 180 | |||
// "stadigt" [st&Dit] | |||
ELIF nextVowel(i) AND nextVowel(isFinalVowel) AND next2PhW(t) THEN | |||
// "stadig" [st&Di], "stadigt" [st&Dit] | |||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN | |||
length 180 | |||
// "latin" [l&t'in] | |||
ELIF nextVowel(i) AND nextVowel(isFinalVowel) AND NOT next2PhW(t) THEN | |||
length 90 | |||
ENDIF | |||
// "ae", "aer", "dagen" vowel + vowel: extra length | |||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN | |||
length 240 | |||
ENDIF | |||
// "Alfie", "alfer" - short before 2 consonants | |||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | |||
length 90 | |||
ENDIF | |||
// "Omaha" | |||
IF thisPh(isWordEnd) THEN | |||
length 90 | |||
ENDIF | |||
FMT(vowel/ee_2) | |||
endphoneme | |||
// PB Experimental glottal a | |||
// PB Short & | |||
// e.g. the last a in "staldkarl" | |||
// "sale" vs. "sal" | |||
phoneme ?& | |||
ipa a | |||
vowel starttype #e endtype #e | |||
length 90 | |||
FMT(vowel/ee_2) | |||
@@ -237,7 +229,7 @@ endphoneme | |||
phoneme &# | |||
vowel starttype #e endtype #e | |||
length 120 | |||
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||
glstop | |||
length 90 | |||
ENDIF | |||
@@ -255,76 +247,77 @@ phoneme ?&# | |||
FMT(vowel/&) | |||
endphoneme | |||
phoneme a | |||
vowel starttype #a endtype #a | |||
length 150 | |||
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||
glstop | |||
length 90 | |||
ENDIF | |||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN | |||
length 150 | |||
ENDIF | |||
FMT(vowel/a_2) | |||
endphoneme | |||
//phoneme a | |||
// vowel starttype #a endtype #a | |||
// length 90 //150 | |||
//IF nextPhW(#@) OR nextPhW(#e) THEN | |||
// length 150 | |||
//ENDIF | |||
// FMT(vowel/a_2) | |||
//endphoneme | |||
// PB short (glottal) a | |||
// "bragt" | |||
phoneme ?a | |||
vowel starttype #a endtype #a | |||
length 90 | |||
FMT(vowel/a_2) | |||
endphoneme | |||
//phoneme ?a | |||
// vowel starttype #a endtype #a | |||
// length 90 | |||
// FMT(vowel/a_2) | |||
//endphoneme | |||
phoneme A | |||
phoneme A // PB changed to a_8 | |||
vowel starttype #a endtype #a | |||
length 150 | |||
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||
glstop | |||
length 90 | |||
ENDIF | |||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN | |||
length 90 //150 | |||
// PB long vowel followed by consonant and certain vowels - "drabelig" | |||
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(#e) THEN | |||
length 150 | |||
ENDIF | |||
// "far", "bastard" - a bit longer followed by [r] | |||
IF nextPhW(r) THEN | |||
IF nextPhW(r) AND nextPhW(isWordEnd) THEN | |||
length 120 | |||
ENDIF | |||
FMT(vowel/a_3) | |||
// "bange" [bAN@-] - [N] = 2 consonants (ng) => short | |||
IF nextPhW(N) THEN | |||
length 90 | |||
ENDIF | |||
FMT(vowel/a_8) | |||
endphoneme | |||
// PB glottal a | |||
// PB short A | |||
// "drab" vs. "drabelig" | |||
phoneme ?A | |||
vowel starttype #a endtype #a | |||
length 90 | |||
// "straffeattest", "straffe" - a bit longer after R | |||
IF prevPhW(R) AND nextPhW(isNotVowel) THEN | |||
length 120 | |||
// "straffeattest", "straffe", "rapid" - a bit longer after R | |||
IF prevPhW(R) AND nextPhW(isNotVowel) AND next2PhW(isVowel) THEN | |||
length 110 | |||
ENDIF | |||
FMT(vowel/a_3) | |||
FMT(vowel/a_8) | |||
endphoneme | |||
phoneme u | |||
vowel starttype #u endtype #u | |||
length 150 | |||
length 90 //150 | |||
// Short vowel followed by consonant and NOT consonant + 3 or V or @ | |||
// "blus" vs. "bluse" and "bluser" | |||
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||
glstop | |||
length 90 | |||
// glstop | |||
// length 90 | |||
ENDIF | |||
// "hue", "suge", "uge" | |||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN | |||
// "suge", "uge", bluse | |||
IF nextPhW(#e) OR nextPhW(#@) OR next2PhW(#e) OR next2PhW(#@)THEN | |||
length 150 | |||
ENDIF | |||
// extra length followed by 3 or V or @ | |||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN | |||
length 240 | |||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN | |||
// length 240 | |||
ENDIF | |||
// "umulig" | |||
IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN | |||
length 180 | |||
ENDIF | |||
// Only "u" | |||
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN | |||
length 150 | |||
ENDIF | |||
FMT(vowel/u_bck) | |||
endphoneme | |||
@@ -368,13 +361,13 @@ endphoneme | |||
phoneme O | |||
vowel starttype #o endtype #o | |||
length 150 | |||
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||
glstop | |||
length 90 | |||
length 90 // 150 | |||
// PB "sove", "sover" - consonant + #e or #@: long | |||
IF next2PhW(#@) OR next2PhW(#e) THEN | |||
length 150 | |||
ENDIF | |||
// PB "gået" | |||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN | |||
// PB "gået" - ThisPh + #e or #@ | |||
IF nextPhW(#e) OR nextPhW(#@) THEN | |||
length 150 | |||
ENDIF | |||
// "rådig" | |||
@@ -418,7 +411,7 @@ ENDIF | |||
FMT(vowel/V_4) | |||
endphoneme | |||
// PB Glottal (short) å | |||
// PB Short å | |||
// "forstår" vs. "kåre" | |||
phoneme ?V | |||
vowel starttype #@ endtype #@ | |||
@@ -448,35 +441,31 @@ endphoneme | |||
phoneme y | |||
vowel starttype #i endtype #i | |||
// experiment: changed to short from 150 | |||
length 150 | |||
// Short vowel followed by consonant and NOT consonant + 3 or V | |||
// "lyd" vs. "lyde" and "lyder" | |||
IF nextPhW(isNotVowel) AND NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@)AND NOT next2PhW(@-) THEN | |||
glstop | |||
length 90 | |||
ENDIF | |||
// "syg" [sy] | |||
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||
length 90 | |||
// Length changed to short since most vowels are short. | |||
// It's probably easier only to make rules for long vowels. | |||
length 90 //150 | |||
// PB long vowel followed by consonant and certain vowels | |||
// "lyde", "lyder" | |||
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(#e) THEN | |||
length 150 | |||
ENDIF | |||
// "skyd" | |||
IF thisPh(isFinalVowel) AND nextPhW(isWordEnd) AND nextPhW(isNotVowel) THEN | |||
length 90 | |||
// Only this vowel (in this case [y]) | |||
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) THEN | |||
length 150 | |||
ENDIF | |||
// "dydig" [dyDi] | |||
IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(i) THEN | |||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN | |||
length 150 | |||
ENDIF | |||
// "syge" [sy3] vowel + vowel: extra length, but NOT "fyret" [fyVD] | |||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) AND NOT next2PhW(D) THEN | |||
length 220 | |||
IF nextPhW(#e) OR nextPhW(#@) AND NOT next2PhW(D) THEN | |||
length 200 | |||
ENDIF | |||
// PB "kryster" - short y | |||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | |||
length 80 | |||
// "tyve" | |||
IF nextPhW(?u) AND next2PhW(@-) THEN | |||
length 150 | |||
ENDIF | |||
// PB "gryden" | |||
FMT(vowel/y) | |||
endphoneme | |||
@@ -484,7 +473,7 @@ endphoneme | |||
// "kylling" vs. "kyle", "krybbe" vs. "krybe" | |||
phoneme ?y | |||
vowel starttype #i endtype #i | |||
length 70 | |||
length 90 | |||
FMT(vowel/y) | |||
endphoneme | |||
@@ -503,24 +492,19 @@ endphoneme | |||
phoneme W | |||
vowel starttype #@ endtype #@ | |||
length 160 | |||
// Shorter vowel when followed by consonant | |||
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||
glstop | |||
length 90 | |||
ENDIF | |||
length 99 //160 | |||
// "kløe" vowel + vowel: extra length | |||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN | |||
IF nextPhW(#@) OR nextPhW(#e) THEN | |||
length 220 | |||
ENDIF | |||
// "klø" short W when word ends with W | |||
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||
length 90 | |||
ENDIF | |||
// røde" W + 1 consonant + 3 or W or @ | |||
IF next2PhW(3) OR next2PhW(V) OR next2PhW(@) THEN | |||
IF next2PhW(#@) OR next2PhW(#e) THEN | |||
length 160 | |||
ENDIF | |||
// "røveri" TEST | |||
IF next2PhW(V) OR next2PhW(?V) THEN | |||
length 90 | |||
ENDIF | |||
// PB "nødig", "nødigt", "kølige" | |||
IF nextVowel(i) THEN | |||
length 160 | |||
@@ -536,7 +520,7 @@ ENDIF | |||
FMT(vowel/oe) | |||
endphoneme | |||
// PB glottal W | |||
// PB short W | |||
// "prøv" vs. "prøve" | |||
phoneme ?W | |||
vowel starttype #@ endtype #@ | |||
@@ -547,12 +531,13 @@ endphoneme | |||
// PB added for the ø in "røv", "røg", "øje" instead of [V3] | |||
phoneme W# | |||
vowel starttype #@ endtype #@ | |||
length 150 | |||
length 90 //150 | |||
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||
glstop | |||
length 90 | |||
// length 90 | |||
ENDIF | |||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN | |||
// PB long vowel followed by consonant and certain vowels | |||
IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(@) OR next2PhW(3) OR next2PhW(V) OR next2PhW(?V) THEN | |||
length 150 | |||
ENDIF | |||
FMT(vowel/V) | |||
@@ -573,12 +558,17 @@ IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2Ph(@-) AND nextPhW(isNotVowel) | |||
glstop | |||
length 150 | |||
ENDIF | |||
// "dreje" [dR'aI@-_!] | |||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN | |||
length 300 | |||
length 280 | |||
ENDIF | |||
// PB "drej" vs. "dreje" | |||
IF thisPh(isWordEnd) THEN | |||
length 140 | |||
ENDIF | |||
// "lejde" [l'aId@-_!], "lejder" [l'aIdV_!] | |||
IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(V) THEN | |||
length 190 | |||
ENDIF | |||
FMT(vdiph/ai) | |||
endphoneme | |||
@@ -591,7 +581,31 @@ phoneme l | |||
liquid | |||
lengthmod 7 | |||
ChangePhoneme(l/3) | |||
CALL base/l | |||
// CALL base/l | |||
endphoneme | |||
phoneme l/3 // Replacement for [l/] | |||
liquid | |||
lengthmod 7 | |||
IF nextPh(isVowel) THEN | |||
// ChangePhoneme(l) | |||
ENDIF | |||
PrevVowelEndings | |||
VowelEnding(l/l_@) | |||
VowelEnding(l/l_a) | |||
VowelEnding(l/l_e, -40) | |||
VowelEnding(l/l_i, -70) | |||
VowelEnding(l/l_o) | |||
VowelEnding(l/l_u, -70) | |||
EndSwitch | |||
// IF nextPh(isLiquid) THEN | |||
// FMT(l/_l) | |||
// ENDIF | |||
FMT(l/l_) | |||
endphoneme | |||
phoneme v // approximant, not fricative | |||
@@ -604,7 +618,7 @@ phoneme r // used for 'r' after a vowel (to create a diphthong) | |||
liquid | |||
lengthmod 7 | |||
ipa ɐ̯ | |||
IF nextPhW(isVowel) AND NOT nextPhW(?V) AND NOT nextPhW(V) THEN | |||
IF nextPhW(isVowel) AND NOT nextPhW(?V) AND NOT nextPhW(V) AND NOT nextPhW(@-) THEN | |||
ChangePhoneme(R) | |||
ENDIF | |||
FMT(r/a_) | |||
@@ -663,6 +677,10 @@ phoneme t | |||
IF nextPh(r) OR nextPh(R) OR nextPh(R2) THEN | |||
WAV(ustop/tr) | |||
ENDIF | |||
// "respekt" [REsp'Egd] | |||
IF thisPh(isWordEnd) THEN | |||
// ChangePhoneme(d) | |||
ENDIF | |||
WAV(ustop/t, 90) | |||
endphoneme | |||
@@ -674,7 +692,7 @@ phoneme j | |||
NextVowelStarts | |||
VowelStart(j/j@) | |||
VowelStart(j/ja) | |||
VowelStart(j/je,-40) | |||
VowelStart(j/je,-35) | |||
VowelStart(j/ji) | |||
VowelStart(j/jo) | |||
VowelStart(j/ju) |
@@ -97,11 +97,8 @@ phoneme U | |||
length 135 | |||
ENDIF | |||
IF nextPh(r) THEN | |||
IF next2Ph(isVowel) THEN | |||
ELSE | |||
ChangePhoneme(UR) | |||
ENDIF | |||
IF nextPh(r) AND next2Ph(isNotVowel) THEN | |||
ChangePhoneme(UR) | |||
ENDIF | |||
FMT(vowel/uu_2) | |||
endphoneme | |||
@@ -128,6 +125,10 @@ phoneme i: | |||
IF prevPh(w) THEN | |||
VowelStart(w/wi2) | |||
ENDIF | |||
IF nextPh(r) AND next2Ph(isNotVowel) THEN | |||
ChangePhoneme(iR) | |||
ENDIF | |||
FMT(vowel/i_2) | |||
endphoneme | |||
@@ -341,41 +342,12 @@ endphoneme | |||
// This version of [r] was used in eSpeak 1.44, but received complaints | |||
phoneme r2 // uvular trill or fricative | |||
vcd uvl frc | |||
ipa ʀ | |||
lengthmod 6 | |||
length 110 | |||
IF nextPhW(isVowel) THEN | |||
FMT(r3/r_uvl) addWav(r3/r_uvl.wav, 50) | |||
ELSE | |||
IF prevPh(isFlag1) THEN | |||
ChangePhoneme(NULL) // 'r' is already included in the previous vowel | |||
ELSE | |||
ChangePhoneme(V#) | |||
ENDIF | |||
ENDIF | |||
endphoneme | |||
phoneme V# // used for 'r' after a vowel (to create a diphthong) | |||
liquid | |||
lengthmod 7 | |||
IF nextPhW(isVowel) THEN | |||
ChangePhoneme(r) | |||
ENDIF | |||
ipa ɐ | |||
IF prevPh(#a) OR prevPh(E) THEN | |||
FMT(r/V_2_) | |||
ENDIF | |||
IF prevPh(#u) THEN | |||
FMT(r/@_) | |||
ENDIF | |||
FMT(r/V_) | |||
phoneme iR | |||
vowel starttype #i endtype #@ | |||
ipa iɐ | |||
flag1 | |||
length 180 | |||
FMT(vdiph2/i@_2) | |||
endphoneme | |||
@@ -2,7 +2,7 @@ | |||
[Setup] | |||
AppName=eSpeak | |||
AppVerName=eSpeak version 1.46.42 | |||
AppVerName=eSpeak version 1.46.47 | |||
AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). | |||
WindowVisible=yes | |||
@@ -149,29 +149,34 @@ begin | |||
$1c: Result := 'sq'; | |||
$1d: Result := 'sv'; | |||
$1f: Result := 'tr'; | |||
//$20: Result := 'ur'; | |||
$21: Result := 'id'; | |||
$25: Result := 'et'; | |||
//$26: Result := 'lv'; | |||
$26: Result := 'lv'; | |||
$27: Result := 'lt'; | |||
$29: Result := 'fa'; | |||
$2a: Result := 'vi'; | |||
$2b: Result := 'hy'; | |||
//$2c: Result := 'az'; | |||
//$2d: Result := 'eu'; | |||
$2f: Result := 'mk'; | |||
$36: Result := 'af'; | |||
$37: Result := 'kn'; | |||
$39: Result := 'hi'; | |||
//$3a: Result := 'mt'; | |||
//$3c: Result := 'ga'; | |||
$3c: Result := 'ga'; | |||
//$3f: Result := 'kk'; | |||
$41: Result := 'sw'; | |||
//$44: Result := 'tt'; | |||
$46: Result := 'pa'; | |||
$49: Result := 'ta'; | |||
$46: Result := 'pa'; | |||
$4b: Result := 'kn'; | |||
$4c: Result := 'ml'; | |||
//$50: Result := 'mn'; | |||
$52: Result := 'cy'; | |||
//$5e: Result := 'am'; | |||
//$61: Result := 'ne'; | |||
$61: Result := 'ne'; | |||
//$87: Result := 'rw'; | |||
//$88: Result := 'wo'; | |||
end; |
@@ -618,7 +618,7 @@ int CTTSEngObj::ProcessFragList(const SPVTEXTFRAG* pTextFragList, wchar_t *pW_st | |||
sprintf(&cmdbuf[len],"%c%dF",CTRL_EMBEDDED,emphasis); | |||
len += strlen(&cmdbuf[len]); | |||
} | |||
if(sayas != gSayas) | |||
if((sayas != gSayas) || (sayas != 0)) | |||
{ | |||
sprintf(&cmdbuf[len],"%c%dY",CTRL_EMBEDDED,sayas); | |||
len += strlen(&cmdbuf[len]); |
@@ -10,17 +10,17 @@ SRCS= compiledata.cpp compiledict.cpp debug.cpp dictionary.cpp espeak_command.cp | |||
OBJS=$(patsubst %.cpp,%.o,$(SRCS)) | |||
WX_LIBS = -pthread -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 \ | |||
-lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 | |||
WX_LIBS = -pthread `wx-config --libs` | |||
LIBS=-lstdc++ -lportaudio | |||
#LIBS=-lstdc++ /usr/lib/x86_64-linux-gnu/libportaudio.so.2 | |||
CPPFLAGS = -Wall -g -fexceptions -I/usr/lib/wx/include/gtk2-unicode-release-2.8 | |||
CPPFLAGS = -Wall -g -fexceptions `wx-config --cflags` | |||
-I/usr/include/wx-2.8 \ | |||
-DGTK_NO_CHECK_CASTS -D__WXGTK__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES | |||
-D_LARGEFILE_SOURCE=1 -DNO_GCC_PRAGMA -D_ESPEAKEDIT | |||
CXXFLAGS = -O2 -Wall -fexceptions -I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 \ | |||
CXXFLAGS = -O2 -Wall -fexceptions `wx-config --cflags` \ | |||
-DGTK_NO_CHECK_CASTS -D__WXGTK__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D_LARGEFILE_SOURCE=1 -DNO_GCC_PRAGMA -D_ESPEAKEDIT | |||
all: espeakedit |
@@ -586,6 +586,7 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) | |||
// return number of bytes used by the letter | |||
// control bit 0: a non-initial letter in a word | |||
// bit 1: say 'capital' | |||
// bit 2: say character code for unknown letters | |||
int n_bytes; | |||
int letter; | |||
@@ -743,7 +744,7 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) | |||
} | |||
} | |||
if(!(control & 2) && (al_flags & AL_NOT_CODE)) | |||
if(!(control & 4) && (al_flags & AL_NOT_CODE)) | |||
{ | |||
// don't speak the character code number, unless we want full details of this character | |||
speak_letter_number = 0; |
@@ -339,7 +339,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) | |||
ph = phoneme_tab[plist3->phcode]; | |||
plist3[0].ph = ph; | |||
if(plist3->phcode == phonSWITCH) | |||
if((plist3->phcode == phonSWITCH) && !(plist3->synthflags & SFLAG_EMBEDDED)) // ?? phonSWITCH can't have SFLAG_EMBEDDED ?? | |||
{ | |||
if((plist3[1].phcode == phonSWITCH) || ((plist3[1].type == phPAUSE) && (plist3[2].phcode == phonSWITCH))) | |||
continue; // next phoneme is also a phonSWITCH, so ignore |
@@ -51,7 +51,7 @@ | |||
#endif | |||
#ifdef _ESPEAKEDIT | |||
//#define USE_PORTAUDIO | |||
#define USE_PORTAUDIO | |||
#define USE_ASYNC | |||
#define LOG_FRAMES // write keyframe info to log-espeakedit | |||
#endif |
@@ -35,7 +35,7 @@ | |||
#include "translate.h" | |||
#include "wave.h" | |||
const char *version_string = "1.46.46 11.Mar.13"; | |||
const char *version_string = "1.46.47 12.Mar.13"; | |||
const int version_phdata = 0x014640; | |||
int option_device_number = -1; |
@@ -70,6 +70,7 @@ | |||
#define OFFSET_ETHIOPIC 0x1200 | |||
// character ranges must be listed in ascending order | |||
ALPHABET alphabets [] = { | |||
{"_el", OFFSET_GREEK, 0x380, 0x3ff, L('e','l'), AL_DONT_NAME | AL_NOT_LETTERS}, | |||
{"_cyr", OFFSET_CYRILLIC, 0x400, 0x52f, 0, 0}, | |||
@@ -97,6 +98,7 @@ ALPHABET alphabets [] = { | |||
{"_braille", 0x2800, 0x2800,0x28ff, 0, AL_NO_SYMBOL}, | |||
{"_ja", 0x3040, 0x3040,0x30ff, 0, AL_NOT_CODE}, | |||
{"_zh", 0x3100, 0x3100,0x9fff, 0, AL_NOT_CODE}, | |||
{"_ko", 0xa700, 0xa700,0xd7ff, 0, AL_NOT_CODE}, | |||
{NULL, 0, 0, 0, 0, 0} | |||
}; | |||
@@ -108,9 +110,12 @@ ALPHABET *AlphabetFromChar(int c) | |||
while(alphabet->name != NULL) | |||
{ | |||
if((c >= alphabet->range_min) && (c <= alphabet->range_max)) | |||
if(c <= alphabet->range_max) | |||
{ | |||
return(alphabet); | |||
if(c >= alphabet->range_min) | |||
return(alphabet); | |||
else | |||
break; | |||
} | |||
alphabet++; | |||
} | |||
@@ -827,6 +832,7 @@ Translator *SelectTranslator(const char *name) | |||
case L('h','i'): // Hindi | |||
case L('n','e'): // Nepali | |||
case L('p','a'): // Punjabi | |||
case L('g','u'): // Gujarati | |||
{ | |||
static const short stress_lengths_hi[8] = {190, 190, 210, 210, 0, 0, 230, 250}; | |||
static const unsigned char stress_amps_hi[8] = {17,14, 20,19, 20,22, 22,21 }; | |||
@@ -1543,7 +1549,7 @@ SetLengthMods(tr,3); // all equal | |||
0x1a1, 0x1edd, 0x1edb, 0x1edf, 0x1ee1, 0x1ee3, // ơ | |||
0x75, 0xf9, 0xfa, 0x1ee7, 0x169, 0x1ee5, // u | |||
0x1b0, 0x1eeb, 0x1ee9, 0x1eed, 0x1eef, 0x1ef1, // ư | |||
0x79, 0x1ef3, 0xfd, 0x1ef7, 0x1ef9, 0x1e, 0 }; // y | |||
0x79, 0x1ef3, 0xfd, 0x1ef7, 0x1ef9, 0x1ef5, 0 }; // y | |||
SetupTranslator(tr,stress_lengths_vi,stress_amps_vi); | |||
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable |
@@ -633,8 +633,10 @@ static char *SpeakIndividualLetters(Translator *tr, char *word, char *phonemes, | |||
int capitals = 0; | |||
int non_initial = 0; | |||
if (spell_word > 2) | |||
capitals = 2; | |||
if(spell_word > 2) | |||
capitals = 2; // speak 'capital' | |||
if(spell_word > 1) | |||
capitals |= 4; // speak charater code for unknown letters | |||
while((*word != ' ') && (*word != 0)) | |||
{ | |||
@@ -1109,7 +1111,7 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt | |||
// change to another language in order to translate this word | |||
strcpy(word_phonemes,unpron_phonemes); | |||
if(strcmp(&unpron_phonemes[1],"en")==0) | |||
return(FLAG_SPELLWORD); // _^_en must have been set in TranslateLetter(), not *_rules | |||
return(FLAG_SPELLWORD); // _^_en must have been set in TranslateLetter(), not *_rules which uses only _^_ | |||
return(0); | |||
} | |||
@@ -1774,6 +1776,7 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa | |||
word_flags = wtab[0].flags; | |||
if(word_flags & FLAG_EMBEDDED) | |||
{ | |||
wtab[0].flags &= ~FLAG_EMBEDDED; // clear it in case we call TranslateWord2() again for the same word | |||
embedded_flag = SFLAG_EMBEDDED; | |||
Word_EmbeddedCmd(); | |||
@@ -2121,7 +2124,7 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa | |||
{ | |||
ph_list2[n_ph_list2].phcode = ph_code; | |||
ph_list2[n_ph_list2].sourceix = 0; | |||
ph_list2[n_ph_list2].synthflags = embedded_flag; | |||
ph_list2[n_ph_list2].synthflags = 0; | |||
ph_list2[n_ph_list2++].tone_ph = *p; | |||
SelectPhonemeTable(*p); | |||
p++; |
@@ -23,7 +23,7 @@ | |||
#define CTRL_EMBEDDED 0x01 // control character at the start of an embedded command | |||
#define REPLACED_E 'E' // 'e' replaced by silent e | |||
#define N_WORD_PHONEMES 160 // max phonemes in a word | |||
#define N_WORD_PHONEMES 200 // max phonemes in a word | |||
#define N_WORD_BYTES 160 // max bytes for the UTF8 characters in a word | |||
#define N_CLAUSE_WORDS 300 // max words in a clause | |||
#define N_RULE_GROUP2 120 // max num of two-letter rule chains |