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
_! udRVbstejn | _! udRVbstejn | ||||
_- binnesdrai | _- binnesdrai | ||||
__ b'Onsdrai | __ b'Onsdrai | ||||
& Vw | |||||
& _Vw | |||||
£ pun? | £ pun? | ||||
€ euro | € euro | ||||
© kVpirajt | © kVpirajt | ||||
_7X h&lfj'&rs // PV a changed to & | _7X h&lfj'&rs // PV a changed to & | ||||
_8X f'irs | _8X f'irs | ||||
_9X h&lf'Ems // PB a changed to & | _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 | _0M1 t'u:s@-n | ||||
_1M1 ed||t'u:s@-n // PB added 'et' to tusind | _1M1 ed||t'u:s@-n // PB added 'et' to tusind | ||||
_1M2 'e:n||milij'o:n | _1M2 'e:n||milij'o:n | ||||
fordi fVd'i $pause // because - PB: changed stress | fordi fVd'i $pause // because - PB: changed stress | ||||
når nVr $pause // while | når nVr $pause // while | ||||
der dEr $u+ $u // PB changed from [dA] | 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 | // prepositions | ||||
på pO $u | på pO $u | ||||
ved $u+ // at | ved $u+ // at | ||||
om $u+ $brk // about, within | om $u+ $brk // about, within | ||||
med $u+ // with | 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. | // 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." | 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+] | hos // at - PB: removed [$u+] | ||||
som sVm $u // which / that - PB: removed [$u+] | som sVm $u // which / that - PB: removed [$u+] | ||||
// pronouns | // pronouns | ||||
jeg jai $u+ // I | |||||
jeg jaj $u+ // I | |||||
du du $u | du du $u | ||||
de $u | de $u | ||||
han $u | han $u | ||||
r Er | r Er | ||||
s es | s es | ||||
//t te: mooved to da_rules because of clash with T-shirt | //t te: mooved to da_rules because of clash with T-shirt | ||||
u u? | |||||
u u | |||||
v ve | v ve | ||||
w d'Vbeltve: | w d'Vbeltve: | ||||
x Eks | x Eks | ||||
y Y? | |||||
y y | |||||
z sEt | z sEt | ||||
ø W | ø W | ||||
suggerer $alt | suggerer $alt | ||||
sulfoner $alt | sulfoner $alt | ||||
summere $alt | summere $alt | ||||
opsummere $alt | |||||
superviser $alt | superviser $alt | ||||
suppler $alt | suppler $alt | ||||
supponer $alt | supponer $alt | ||||
vandaliser $alt | vandaliser $alt | ||||
varedeklarer $alt | varedeklarer $alt | ||||
varier $alt | varier $alt | ||||
vatter $alt | |||||
vattere $alt | |||||
vegeter $alt | vegeter $alt | ||||
ventilere $alt | ventilere $alt | ||||
verbaliser $alt | verbaliser $alt | ||||
rejicering rejis'eRiN // PB | rejicering rejis'eRiN // PB | ||||
nogle n'o:@-n // PB English: 'some' - must be pronounced like the Danish word 'nogen' | nogle n'o:@-n // PB English: 'some' - must be pronounced like the Danish word 'nogen' | ||||
nogen n'o:@-n // PB | nogen n'o:@-n // PB | ||||
ligesom lisVm // PB | |||||
ligesom l?isVm // PB | |||||
bliver blir // PB | bliver blir // PB | ||||
konfirmand kVnferm'&nd // PB | konfirmand kVnferm'&nd // PB | ||||
konfirmander kVnferm'&nd3 // PB | konfirmander kVnferm'&nd3 // PB | ||||
// PB problem with noun "hav" = ocean and verb "hav(e)" = to have [hAu]/[h&v] | // 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 | (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 | // 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 | legender leg'EndV | ||||
legenders leg'EndVs | legenders leg'EndVs | ||||
legenderne leg'EndVn3 | |||||
legenderne leg'EndVn3s | |||||
legenderne leg'EndVn@- | |||||
legendernes leg'EndVn@-s | |||||
// PB verb "forsyne" noun "forsyn" - stress problem | // PB verb "forsyne" noun "forsyn" - stress problem | ||||
(et forsyn) ed||f'Vrsyn | (et forsyn) ed||f'Vrsyn | ||||
(forsynet har) f'Vrsyn@d||hAr | (forsynet har) f'Vrsyn@d||hAr |
x z | 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 | W W# y Y | ||||
* - 3- : ; ? b B | * - 3- : ; ? b B | ||||
v w x z Z | 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: | a A a: e E e: i i: | ||||
o o: u u: Y y y: Y: | o o: u u: Y y y: Y: | ||||
ts v x z | ts v x z | ||||
Dictionary en_dict 2013-03-10 | |||||
Dictionary en_dict 2013-03-12 | |||||
0 0# 3 3: @ @- @2 @5 | 0 0# 3 3: @ @- @2 @5 | ||||
@L a a# A: A@ aa aI aI3 | @L a a# A: A@ aa aI aI3 | ||||
d# dZ f g h j k l | d# dZ f g h j k l | ||||
l# l/ m n N n^ p Q | l# l/ m n N n^ p Q | ||||
q Q" r R r- R2 s S | 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 | Dictionary eo_dict 2013-03-08 | ||||
ts; v w x z Z Z; | ts; v w x z Z Z; | ||||
Dictionary pt_dict 2013-03-11 | |||||
Dictionary pt_dict 2013-03-13 | |||||
& &/ &U~ &~ @ @- a A | & &/ &U~ &~ @ @- a A | ||||
aI aU e E eI EI eU EU | aI aU e E eI EI eU EU | ||||
t tS v w x z | 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: | @ a a: aI aU e E e: | ||||
i I i: O o: U u: V | i I i: O o: U u: V | ||||
t- tS tS; w | t- tS tS; w | ||||
Dictionary fa_dict 2013-02-13 | |||||
Dictionary fa_dict 2013-03-12 | |||||
a A e i o u | a A e i o u | ||||
_ti tI2b'Et@n | _ti tI2b'Et@n | ||||
_my mj'A:nmA@ | _my mj'A:nmA@ | ||||
_ka dZ'O@dZ@n | _ka dZ'O@dZ@n | ||||
_ko k3r'i@n | |||||
_ko h'angul | |||||
_eth i:TI'0pIk | _eth i:TI'0pIk | ||||
_ja dZ'ap@ni:z | _ja dZ'ap@ni:z | ||||
_zh tS'aIni:z | _zh tS'aIni:z | ||||
ш Sa | ш Sa | ||||
щ StSa | щ StSa | ||||
ъ jEr | ъ jEr | ||||
ы _^_RU | |||||
ь jer | |||||
ы j'Eru | |||||
ь j'eri | |||||
э E | э E | ||||
ю ju | ю ju | ||||
я ja | я ja | ||||
ћ tS;E | |||||
ђ djE | |||||
ќ kjE | |||||
// Arabic letters | // Arabic letters | ||||
canoe k@nu: | canoe k@nu: | ||||
canoes k@nu:z | canoes k@nu:z | ||||
canon kan@n | canon kan@n | ||||
?3 cantaloupe kant@loUp | |||||
canton kant0n | canton kant0n | ||||
canvas kanv@s | canvas kanv@s | ||||
capita kapIt@ | capita kapIt@ | ||||
congressional k@ngrES@n@L | congressional k@ngrES@n@L | ||||
conker $1 | conker $1 | ||||
conscience k0nS@ns | conscience k0nS@ns | ||||
consort $1 | |||||
consort $verb | |||||
constitute $1 | constitute $1 | ||||
construct $1 $onlys | construct $1 $onlys | ||||
construct $verb | construct $verb | ||||
signage saInI2dZ | signage saInI2dZ | ||||
signal sIgn@l // signaled | signal sIgn@l // signaled | ||||
signer saIn3 | signer saIn3 | ||||
signoff s,aIn'0f | |||||
signoff s'aIn0f | |||||
signon s,aIn'0n | signon s,aIn'0n | ||||
signup saInVp | signup saInVp | ||||
sikh si:k | sikh si:k |
_r) adio (@P5 r,eIdI%oU | _r) adio (@P5 r,eIdI%oU | ||||
r) adi (oL10+ eIdI | r) adi (oL10+ eIdI | ||||
b) ad (os_ eId | b) ad (os_ eId | ||||
_s) ado (ma ,eIdoU | |||||
ad (iA eId | ad (iA eId | ||||
s) ad (is eId | s) ad (is eId | ||||
_tr) ad (it a#d | _tr) ad (it a#d | ||||
&) ion (_ =i@n | &) ion (_ =i@n | ||||
?8 &) ion (_ =IVn | ?8 &) ion (_ =IVn | ||||
ll) ion i@n | ll) ion i@n | ||||
ll) ion (_ =i@n | |||||
n) ion =i@n | n) ion =i@n | ||||
v) io (l aI@ | v) io (l aI@ | ||||
ione (_ 'aI@ni | ione (_ 'aI@ni | ||||
_l) iv (eB aIv | _l) iv (eB aIv | ||||
XC) iv (el Iv | XC) iv (el Iv | ||||
_g) iv (e Iv | _g) iv (e Iv | ||||
_l) iv (e Iv | |||||
l) iv (er Iv | l) iv (er Iv | ||||
r) iv (er Iv | r) iv (er Iv | ||||
dr) iv (er aIv | dr) iv (er aIv | ||||
_) metall (ic m@tal | _) metall (ic m@tal | ||||
metabo m@t'ab0 | metabo m@t'ab0 | ||||
_) meta (llu m%Eta | _) meta (llu m%Eta | ||||
_) mobile moUbaIl | |||||
mobile m@bi:l | |||||
&) mobile m@bi:l | |||||
mono (ga m@n'0 | mono (ga m@n'0 | ||||
mo (noto m@ | mo (noto m@ | ||||
_) mono m0noU | _) mono m0noU |
// Text to phoneme rules for Farsi | // 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 | .replace | ||||
٪ % | ٪ % | ||||
ي ی | ي ی | ||||
ۍ ی | ۍ ی | ||||
ى ی | ى ی | ||||
ك ک | ك ک | ||||
ە ه | |||||
ھ ه | |||||
٠ 0 | ٠ 0 | ||||
۰ 0 | ۰ 0 | ||||
۱ 1 | ۱ 1 | ||||
.L01 آ ا ی ي و | .L01 آ ا ی ي و | ||||
// short vowels (commonly unwritten ) | // short vowels (commonly unwritten ) | ||||
.L02 َ ُ ِ ً ٌ ٍ ّ ؤ أ إ ء ۀ | |||||
.L02 َ ُ ِ ْ ً ٌ ٍ ّ ؤ أ إ ء ۀ | |||||
// All consonants | // All consonants | ||||
.L03 ب پ ت ث ج چ ح خ د ذ ر ز ژ س ش ص ض ط ظ ع غ ف ق ک گ ل م ن ه ة ئ | .L03 ب پ ت ث ج چ ح خ د ذ ر ز ژ س ش ص ض ط ظ ع غ ف ق ک گ ل م ن ه ة ئ | ||||
// all Farsi characters without ا آ | |||||
// all Farsi characters without ا آ and Short vowels | |||||
.L04 ض ص ث ق ف غ ع ه خ ح ج چ ش س ی ب ل ت ن م ک گ ۀ ظ ط ز ر ذ د ئ و ة ي ژ ؤ إ أ ء ؟ پ | .L04 ض ص ث ق ف غ ع ه خ ح ج چ ش س ی ب ل ت ن م ک گ ۀ ظ ط ز ر ذ د ئ و ة ي ژ ؤ إ أ ء ؟ پ | ||||
// Group one of consonants | // Group one of consonants | ||||
.L07 ن م ت ش ک مان تان شان ند نده ندۀ ندگی ندگان گی گان گانه گانۀ ستان ست | .L07 ن م ت ش ک مان تان شان ند نده ندۀ ندگی ندگان گی گان گانه گانۀ ستان ست | ||||
// All vowels (long + Short) | // All vowels (long + Short) | ||||
.L08 آ ا ی ي و َ ُ ِ ً ٌ ٍ ّ ؤ أ إ ء ۀ | |||||
.L08 آ ا ی ي و َ ُ ِ ْ ً ٌ ٍ ّ ؤ أ إ ء ۀ | |||||
// all Farsi characters without short vowels | // all Farsi characters without short vowels | ||||
.L09 ض ص ث ق ف غ ع ه خ ح ج چ ش س ی ب ل ا ت ن م ک گ ۀ آ ظ ط ز ر ذ د ئ و ة ي ژ پ ؤ إ أ ء ؟ ّ | .L09 ض ص ث ق ف غ ع ه خ ح ج چ ش س ی ب ل ا ت ن م ک گ ۀ آ ظ ط ز ر ذ د ئ و ة ي ژ پ ؤ إ أ ء ؟ ّ | ||||
L09L04) آلود (_Sm4 Alud | L09L04) آلود (_Sm4 Alud | ||||
L09L04) آباد (_Sm4 AbAd | L09L04) آباد (_Sm4 AbAd | ||||
L09L04) آفرین (_Sm5 AfaRin | L09L04) آفرین (_Sm5 AfaRin | ||||
L09L09) آموخته (_Sm6 Amuxte: | |||||
L09L09) آموختۀ (_Sm6 Amuxteje | |||||
L09L09) آگاه (_Sm4 AgAh | |||||
.group ا | .group ا | ||||
-) ا (للّه_+ o | -) ا (للّه_+ o | ||||
_) ا (L02_ alef? | _) ا (L02_ alef? | ||||
_) ا (L02L09 | _) ا (L02L09 | ||||
_) ا (L01 | |||||
_) ا (L01L03 | |||||
_) ا 'a: | _) ا 'a: | ||||
_) ا (ع e | _) ا (ع e | ||||
ا 'A | ا 'A | ||||
L09L09) بخت (_Sm3 baxt | L09L09) بخت (_Sm3 baxt | ||||
L09L09) باش (_Sm3 bAS | L09L09) باش (_Sm3 bAS | ||||
L09L09) بزرگ (_Sm4 bozoRg | L09L09) بزرگ (_Sm4 bozoRg | ||||
L09L09) باور (_Sm4 bAvaR | |||||
L09L09) برانگیز (_Sm baRangiz | |||||
// arabic form of words (Babs) ب | // arabic form of words (Babs) ب | ||||
//فواعل eg. جوامع | //فواعل eg. جوامع | ||||
L09L09) پرداز (_Sm5 paRdAz | L09L09) پرداز (_Sm5 paRdAz | ||||
L09L09) پندار (_Sm5 pendAR | L09L09) پندار (_Sm5 pendAR | ||||
L09L09) پرست (_Sm4 paRast | L09L09) پرست (_Sm4 paRast | ||||
L09L09) پناه (_Sm4 panAh | |||||
// arabic form of words (Babs) پ | // arabic form of words (Babs) پ | ||||
//فواعل eg. جوامع | //فواعل eg. جوامع | ||||
L09L09) درد (_Sm3 daRd | L09L09) درد (_Sm3 daRd | ||||
L09L09) دوش (_Sm3 duS | L09L09) دوش (_Sm3 duS | ||||
L09L09) دهی (_Sm3 dehi | L09L09) دهی (_Sm3 dehi | ||||
L09L09) دوست (_Sm4 dust | |||||
// arabic form of words (Babs) د | // arabic form of words (Babs) د | ||||
//فواعل eg. جوامع | //فواعل eg. جوامع | ||||
// suffixes س | // suffixes س | ||||
L09L01) ست (_+NSm2 st | L09L01) ست (_+NSm2 st | ||||
L09L03) ست (_+NSm2 ast | L09L03) ست (_+NSm2 ast | ||||
-) ست (_+NSm2 st // eg. "کجاست" | |||||
L09L03) ستان (_Sm4 estAn | L09L03) ستان (_Sm4 estAn | ||||
L09L01) ستان (_Sm4 stAn | L09L01) ستان (_Sm4 stAn | ||||
L09L09) سان (_Sm3 sAn | L09L09) سان (_Sm3 sAn | ||||
// Prefixes ص | // Prefixes ص | ||||
_) صاحب (L04L09L09P4@ sAheb | _) صاحب (L04L09L09P4@ sAheb | ||||
_) صاحب (آL09L09P4@ sAheb | _) صاحب (آL09L09P4@ sAheb | ||||
_) صدر (L04L09L09P5@ sadr | |||||
_) صدر (L04L09L09P3@ sadr | |||||
_) صدر (آL09L09P5@ sadr | _) صدر (آL09L09P5@ sadr | ||||
// Suffixes ص | // Suffixes ص | ||||
L09L01) مون (_Sm3 mun | L09L01) مون (_Sm3 mun | ||||
L09L09) مردان (_Sm5 maRdAn | L09L09) مردان (_Sm5 maRdAn | ||||
L09L09) منش (_Sm3 maneS | L09L09) منش (_Sm3 maneS | ||||
L09L09) مآب (_Sm3 maAb | |||||
// arabic form of words (Babs) م | // arabic form of words (Babs) م | ||||
//فواعل eg. جوامع | //فواعل eg. جوامع | ||||
// Plural pronoun ها | // Plural pronoun ها | ||||
L09L09) های (_NSm3 h'Aje | L09L09) های (_NSm3 h'Aje | ||||
L09L09) هایی (_NSm4 h'Ai: | L09L09) هایی (_NSm4 h'Ai: | ||||
L09L09) هائی (_NSm4 h'Ai: | |||||
L09L09) هاست (_NSm4 h'Ast | L09L09) هاست (_NSm4 h'Ast | ||||
// Plural possessive pronouns for ها | // Plural possessive pronouns for ها | ||||
L09L09) هایم (_NSm4 hAjam | L09L09) هایم (_NSm4 hAjam | ||||
_ا) ی (_+ i | _ا) ی (_+ i | ||||
L01) ی (_ je | L01) ی (_ je | ||||
L03) ی (_ i | L03) ی (_ i | ||||
ی (ٰ_ | |||||
ی (ٰL04 j | |||||
_آ) ی (L03_ ja | _آ) ی (L03_ ja | ||||
// Prefixes ی | // Prefixes ی | ||||
L09ع) یاتشان (_NSm6 ijjAteSAn | L09ع) یاتشان (_NSm6 ijjAteSAn | ||||
L09L09) یزاسیون (_Sm7 isAsion | L09L09) یزاسیون (_Sm7 isAsion | ||||
L09L03) یافت (_Sm4 jAft | L09L03) یافت (_Sm4 jAft | ||||
-) یست (_+NSm3 ist // eg. "فردایست" | |||||
// arabic form of words (Babs) ی | // arabic form of words (Babs) ی | ||||
//فواعل eg. جوامع | //فواعل eg. جوامع | ||||
.group ٔ | .group ٔ | ||||
L04) ٔ | |||||
ا) ٔ a? | |||||
ٔ | ٔ | ||||
// suffixes ٔ | // suffixes ٔ | ||||
.group ئ | .group ئ | ||||
ئی i: | |||||
ئ (L01 ? | ئ (L01 ? | ||||
ئ (L02 ? | ئ (L02 ? | ||||
L02) ئ ? | L02) ئ ? | ||||
//ة (L01 h | //ة (L01 h | ||||
ة t | ة t | ||||
.group ٰ | |||||
ٰ (L04 A | |||||
ٰ (ا | |||||
ٰ (آ | |||||
//short vowels that are not usually written: | //short vowels that are not usually written: | ||||
.group َ | .group َ | ||||
L09L09) ُ (_Sm1 o | L09L09) ُ (_Sm1 o | ||||
.group ْ | |||||
ْ | |||||
// Suffixes "ْ" | |||||
L09L09) ْ (_Sm1 | |||||
.group ً | .group ً | ||||
ً an | ً an | ||||
// Suffixes "ً" | // Suffixes "ً" |
_#9 tAb | _#9 tAb | ||||
_#32 s'o:kYz | _#32 s'o:kYz | ||||
_cap n'AJ_| | _cap n'AJ_| | ||||
_?? kAR2AktEr||ko:d // unknown characters (change this) | |||||
_?? kAR2AktEr // unknown characters (change this) | |||||
// Abbreviations | // Abbreviations | ||||
≠ nEmEJEnlY: | ≠ nEmEJEnlY: | ||||
_ˇ lEfEle:n^i:l | _ˇ lEfEle:n^i:l | ||||
_¡ AlSo:indEks | _¡ AlSo:indEks | ||||
_braille bR2Ail:E | |||||
// Alphabets | // Alphabets | ||||
_cyr ts'iR2ill | _cyr ts'iR2ill | ||||
_he h'e:bER2 | _he h'e:bER2 | ||||
_zh k'i:nAi | _zh k'i:nAi | ||||
_braille bR2Ail:E | |||||
// Main Exceptions List | // Main Exceptions List |
_tren) dsz (e d|s | _tren) dsz (e d|s | ||||
vakon) d (sz d | vakon) d (sz d | ||||
vé) d (jeggy d | vé) d (jeggy d | ||||
své) d (zseb d | |||||
.group dz | .group dz | ||||
fogó) dz (kod ts | fogó) dz (kod ts | ||||
para) szt (segg st | para) szt (segg st | ||||
azbe) szt (sisak st | azbe) szt (sisak st | ||||
nyu) szt (süveg st | nyu) szt (süveg st | ||||
serté) szs (ír SZ | |||||
serté) szs (ír S|Z | |||||
tá) szs (in SZ | tá) szs (in SZ | ||||
va) szs (ír 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 | 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 | ||||
ellenállá) sz (ón Sz | ellenállá) sz (ón Sz | ||||
ré) sz (árás Sz | ré) sz (árás Sz | ||||
_te) szts (or st|S | _te) szts (or st|S | ||||
serté) szs (ir S|Z | |||||
.group t | .group t | ||||
t t | t t |
alferes $alt | alferes $alt | ||||
algozes $alt | algozes $alt | ||||
alicerce $alt | alicerce $alt | ||||
almoço $alt $verb | |||||
almoço alt $verb | |||||
amarelo $alt | amarelo $alt | ||||
ameba $alt | ameba $alt | ||||
amores $alt2 | amores $alt2 | ||||
atmosfera $alt | atmosfera $alt | ||||
atrozes $alt | atrozes $alt | ||||
autora $alt2 | autora $alt2 | ||||
avesso $alt2 | |||||
avesso $alt2 | |||||
axé aSE | axé aSE | ||||
baqueta $alt2 | baqueta $alt2 | ||||
beco $alt2 | beco $alt2 | ||||
bilhete $alt2 | bilhete $alt2 | ||||
boca $alt2 | boca $alt2 | ||||
bochecha $alt2 | bochecha $alt2 | ||||
boio $alt | |||||
bojo $alt2 | bojo $alt2 | ||||
boleia $alt | boleia $alt | ||||
bolero $alt | bolero $alt | ||||
caderneta $alt2 | caderneta $alt2 | ||||
camiseta $alt2 | camiseta $alt2 | ||||
cantora $alt2 | cantora $alt2 | ||||
capacete $alt2 | |||||
capacete $alt2 | |||||
caractere $alt | caractere $alt | ||||
caramelo $alt | caramelo $alt | ||||
careta $alt2 | careta $alt2 | ||||
catorze $alt2 | catorze $alt2 | ||||
cebola $alt2 | cebola $alt2 | ||||
cefaleia $alt | cefaleia $alt | ||||
cerca $alt | |||||
cerca $alt2 $noun | |||||
cerca $alt | |||||
cerca $alt2 $noun | |||||
cerco $alt $verb | cerco $alt $verb | ||||
chamego $alt2 | chamego $alt2 | ||||
chefe $alt | chefe $alt | ||||
checam $alt | |||||
checam $alt | |||||
cheque $alt | cheque $alt | ||||
chinelo $alt | chinelo $alt | ||||
choro $alt2 $noun | choro $alt2 $noun | ||||
chovesse $alt2 | |||||
chovesse $alt2 | |||||
chupeta $alt2 | chupeta $alt2 | ||||
clamores $alt2 | clamores $alt2 | ||||
clero $alt | clero $alt | ||||
coco $alt2 | coco $alt2 | ||||
cofre $alt | cofre $alt | ||||
cogumelo $alt | |||||
cogumelo $alt | |||||
coice $alt2 | coice $alt2 | ||||
colabore $alt | colabore $alt | ||||
colete $alt2 | colete $alt2 | ||||
colchete $alt2 | |||||
colher $alt $noun | |||||
colchete $alt2 | |||||
colher $alt $noun | |||||
colheres $alt $noun | colheres $alt $noun | ||||
colmeia $alt | colmeia $alt | ||||
colore $alt | colore $alt | ||||
concordo $alt | concordo $alt | ||||
conforto $alt $verb | conforto $alt $verb | ||||
consolo $alt2 $noun | consolo $alt2 $noun | ||||
controle $alt2 $noun | |||||
controlo $alt2 $noun | |||||
controle $alt2 $noun | |||||
controlo $alt2 $noun | |||||
coreia $alt | coreia $alt | ||||
corneta $alt2 | corneta $alt2 | ||||
cornos $alt | cornos $alt | ||||
esforço $alt $verb | esforço $alt $verb | ||||
esforços $alt | esforços $alt | ||||
esgoto $alt2 $noun | esgoto $alt2 $noun | ||||
esgotos $alt2 | |||||
esgotos $alt2 | |||||
esperma $alt | esperma $alt | ||||
espeto $alt2 $noun | espeto $alt2 $noun | ||||
espiroqueta $alt2 | espiroqueta $alt2 | ||||
foguete $alt2 | foguete $alt2 | ||||
foice $alt2 | foice $alt2 | ||||
forca $alt2 | forca $alt2 | ||||
força $alt2 $noun | |||||
força $alt2 $noun | |||||
forças $alt2 | forças $alt2 | ||||
forço $alt | |||||
fordes $alt2 | |||||
fores $alt2 | |||||
forço $alt | |||||
fordes $alt2 | |||||
fores $alt2 | |||||
forro $alt $verb | forro $alt $verb | ||||
fosse $alt2 | fosse $alt2 | ||||
frevo $alt2 | frevo $alt2 | ||||
gameta $alt2 | gameta $alt2 | ||||
geleia $alt | geleia $alt | ||||
gelo $alt $verb | gelo $alt $verb | ||||
genebra $alt | |||||
genebra $alt | |||||
germe $alt | germe $alt | ||||
gesso $alt2 | gesso $alt2 | ||||
golpe $alt | golpe $alt | ||||
gorda $alt2 | gorda $alt2 | ||||
gosto $alt $verb | gosto $alt $verb | ||||
gota $alt2 | gota $alt2 | ||||
governo $alt2 $noun | |||||
gozo $alt $verb | |||||
governo $alt2 $noun | |||||
gozo $alt2 $noun | |||||
graveto $alt2 | graveto $alt2 | ||||
grelha $alt | grelha $alt | ||||
groselha $alt | groselha $alt | ||||
grosso $alt2 | grosso $alt2 | ||||
grozo $alt $verb | grozo $alt $verb | ||||
hemorroida $alt | |||||
hemorroida $alt | |||||
hoje $alt2 | hoje $alt2 | ||||
horrores $alt2 | horrores $alt2 | ||||
ideia $alt | ideia $alt | ||||
insonoro $alt | insonoro $alt | ||||
interesse $alt2 $noun | |||||
jogo $alt2 $noun | |||||
interesse $alt2 $noun | |||||
jogo $alt2 $noun | |||||
joguete $alt2 | joguete $alt2 | ||||
lambreta $alt2 | lambreta $alt2 | ||||
lebre $alt | lebre $alt | ||||
leste $alt2 $verb | leste $alt2 $verb | ||||
lopes $alt | lopes $alt | ||||
maior $alt | |||||
maior $alt | |||||
maleta $alt2 | maleta $alt2 | ||||
marcelo $alt | marcelo $alt | ||||
marmelo $alt | marmelo $alt | ||||
marreta $alt2 | marreta $alt2 | ||||
martelo $alt | martelo $alt | ||||
melhor $alt | |||||
menor $alt | |||||
melhor $alt | |||||
menor $alt | |||||
merda $alt | merda $alt | ||||
megera $alt | megera $alt | ||||
melo $alt | melo $alt | ||||
mexo m'eSU | mexo m'eSU | ||||
minueto $alt2 | minueto $alt2 | ||||
miolo $alt2 | miolo $alt2 | ||||
miolos $alt | |||||
miolos $alt | |||||
moeda $alt | moeda $alt | ||||
molho $alt2 $noun | molho $alt2 $noun | ||||
monera $alt | monera $alt | ||||
moreia $alt | moreia $alt | ||||
mortos $alt | mortos $alt | ||||
motora $alt2 | motora $alt2 | ||||
mulher $alt | |||||
mulher $alt | |||||
mui mwi | mui mwi | ||||
muito mw'iNtU // -s is included as a suffix | muito mw'iNtU // -s is included as a suffix | ||||
muita mw'iNt& | muita mw'iNt& | ||||
olho $alt2 $noun | olho $alt2 $noun | ||||
opereta $alt2 | opereta $alt2 | ||||
ordens $alt | ordens $alt | ||||
osso $alt2 | |||||
ossos $alt | |||||
osso $alt2 | |||||
ossos $alt | |||||
ostra $alt2 | ostra $alt2 | ||||
ovos $alt | ovos $alt | ||||
pachorra $alt2 | pachorra $alt2 | ||||
paexa paeSa | paexa paeSa | ||||
palacete $alt2 | palacete $alt2 | ||||
palheta $alt2 | palheta $alt2 | ||||
panfleto $alt2 | |||||
panfleto $alt2 | |||||
pangeia $alt | pangeia $alt | ||||
panqueca p,&~Nk'Ek& | |||||
panqueca p,&~Nk'Ek& | |||||
pantera $alt | pantera $alt | ||||
paralelo $alt | paralelo $alt | ||||
parede $alt2 | parede $alt2 | ||||
peso $alt $verb | peso $alt $verb | ||||
piloto $alt2 $noun | piloto $alt2 $noun | ||||
pintora $alt2 | pintora $alt2 | ||||
pior $alt | |||||
pior $alt | |||||
pirueta $alt2 | pirueta $alt2 | ||||
plaqueta $alt2 | |||||
plateia $alt | plateia $alt | ||||
plebeia $alt | plebeia $alt | ||||
polca $alt | polca $alt | ||||
primavera $alt | primavera $alt | ||||
provo $alt | provo $alt | ||||
quarteto $alt2 | quarteto $alt2 | ||||
queda $alt | |||||
queda $alt | |||||
quinteto $alt2 | quinteto $alt2 | ||||
recomeço $alt2 $noun | recomeço $alt2 $noun | ||||
recordo $alt | recordo $alt | ||||
relevo $alt2 $noun | relevo $alt2 $noun | ||||
remorso $alt | remorso $alt | ||||
reprovo $alt | reprovo $alt | ||||
retorno $alt $verb | |||||
retorno $alt $verb | |||||
rixa x'iS& | rixa x'iS& | ||||
rocha $alt | rocha $alt | ||||
rock $alt | rock $alt | ||||
sarjeta $alt | sarjeta $alt | ||||
seborreia $alt | seborreia $alt | ||||
seca $alt2 $noun | seca $alt2 $noun | ||||
secas $alt2 | |||||
secas $alt2 | |||||
seco $alt2 | seco $alt2 | ||||
seco $alt $verb | |||||
seco $alt $verb | |||||
selo $alt $verb | selo $alt $verb | ||||
selvagem seUv'aZeIN | selvagem seUv'aZeIN | ||||
sexteto $alt2 | sexteto $alt2 | ||||
sopro $alt2 $noun | sopro $alt2 $noun | ||||
soro $alt2 | soro $alt2 | ||||
sorvete $alt2 | sorvete $alt2 | ||||
sossego $alt2 $noun | |||||
sossego $alt2 $noun | |||||
suborno $alt $verb | suborno $alt $verb | ||||
sufoco $alt2 $noun | sufoco $alt2 $noun | ||||
sufocos $alt2 | sufocos $alt2 | ||||
suporto $alt | suporto $alt | ||||
suor swOr | suor swOr | ||||
tapete $alt2 | tapete $alt2 | ||||
temores $alt2 | |||||
temores $alt2 | |||||
tempero $alt2 $noun | tempero $alt2 $noun | ||||
terrores $alt2 | terrores $alt2 | ||||
teta $alt2 | teta $alt2 | ||||
toga $alt | toga $alt | ||||
topo $alt $verb | topo $alt $verb | ||||
torno $alt $verb | torno $alt $verb | ||||
torre $alt2 $noun | |||||
torres $alt2 | |||||
torre $alt2 $noun | |||||
torres $alt2 | |||||
tortos $alt | tortos $alt | ||||
traqueia $alt | traqueia $alt | ||||
travesso $alt2 | travesso $alt2 | ||||
tropa $alt | tropa $alt | ||||
tropeço $alt2 $noun | tropeço $alt2 $noun | ||||
trombeta $alt2 | trombeta $alt2 | ||||
tumores $alt2 | |||||
tumores $alt2 | |||||
valeta $alt2 | valeta $alt2 | ||||
vanessa $alt2 | vanessa $alt2 | ||||
velozes $alt | velozes $alt | ||||
verme $alt | verme $alt | ||||
violeta $alt2 | violeta $alt2 | ||||
violoncelo $alt | |||||
violoncelo $alt | |||||
voga $alt | voga $alt | ||||
vozes $alt | vozes $alt | ||||
xarope $alt | xarope $alt |
_d) e (L05_ E | _d) e (L05_ E | ||||
_vi) e (L05_ E | _vi) e (L05_ E | ||||
fiz) 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- | tiv) e (L05_ E // es- | ||||
_com) e (L05_ e | _com) e (L05_ e | ||||
_pud) e (L05_ E | _pud) e (L05_ E | ||||
_perd) e (L05_ e | _perd) e (L05_ e | ||||
_quis) e (L05_ E | _quis) e (L05_ E | ||||
_soub) 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 | _mord) e (L06_ e | ||||
_rend) e (L06_ e | _rend) e (L06_ e | ||||
_vend) 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 | _arrepend) e (L06_ e | ||||
_defend) e (L06_ e | _defend) e (L06_ e | ||||
_depend) e (L06_ e | _depend) e (L06_ e | ||||
_escond) 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- | respond) e (L06_ e // cor- | ||||
bat) e (L07_ e // re- com- | bat) e (L07_ e // re- com- | ||||
ced) e (L07_ e // pro- con- su- | ced) e (L07_ e // pro- con- su- | ||||
met) e (L07_ e // co- pro- arre- re- intro- compro- sub- | 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- | viv) e (L07_ e // re- | ||||
_beb) e (L07_ e | _beb) e (L07_ e | ||||
_com) e (L07_ e | _com) e (L07_ e | ||||
_tem) e (L07_ e | _tem) e (L07_ e | ||||
colh) e (L07_ e // & es- | colh) e (L07_ e // & es- | ||||
corr) e (L07_ e // per- con- in- so- dis- | 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- | torc) e (L07_ e // con- | ||||
venc) e (L07_ e // con- | venc) e (L07_ e // con- | ||||
vert) e (L07_ e // in- re- 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 | _eleg) e (L07_ e | ||||
_ergu) e (L07_ e | _ergu) e (L07_ e | ||||
_mord) e (L07_ e | _mord) e (L07_ e | ||||
padec) e (L07_ e // com- | padec) e (L07_ e // com- | ||||
parec) e (L07_ e // a- rea- com- desa- | parec) e (L07_ e // a- rea- com- desa- | ||||
prend) e (L07_ e // a- rea- des- | 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 | _abastec) e (L07_ e | ||||
_aborrec) e (L07_ e | _aborrec) e (L07_ e | ||||
_absolv) e (L07_ e | _absolv) e (L07_ e | ||||
_resolv) e (L07_ e | _resolv) e (L07_ e | ||||
_suspend) e (L07_ e | _suspend) e (L07_ e | ||||
conhec) e (L07_ e // & re- des- | 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- | preend) e (L07_ e // sur- com- | ||||
proteg) e (L07_ e / des- | |||||
proteg) e (L07_ e // des- | |||||
respond) e (L07_ e // cor- | respond) e (L07_ e // cor- | ||||
qu) e (brL04_ E | qu) e (brL04_ E | ||||
_hosp) e (dL03_ E | _hosp) e (dL03_ E | ||||
_n) e (grL03_ e | _n) e (grL03_ e | ||||
_estr) ei (L03_ EI | _estr) ei (L03_ EI | ||||
_inv) e (jL04_ E | _inv) e (jL04_ E | ||||
proteg) e (l05_ e // des- | |||||
tr) e (pL04_ E // es- | |||||
_dec) e (pL04_ E | _dec) e (pL04_ E | ||||
_in) e (ptL03_ E | _in) e (ptL03_ E | ||||
_p) e (quL02_ E | _p) e (quL02_ E | ||||
_sev) e (rL03_ E | _sev) e (rL03_ E | ||||
_reit) e (rL03_ E | _reit) e (rL03_ E | ||||
_sinc) 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 | _op) e (rL04_ E | ||||
_alt) e (rL04_ E | _alt) e (rL04_ E | ||||
_sup) e (rL04_ E | _sup) e (rL04_ E | ||||
_tol) e (rL04_ E | _tol) e (rL04_ E | ||||
_ven) e (rL04_ E | _ven) e (rL04_ E | ||||
acel) e (rL04_ E / des- | |||||
acel) e (rL04_ E // des- | |||||
_coop) e (rL04_ E | _coop) e (rL04_ E | ||||
_temp) e (rL04_ E | _temp) e (rL04_ E | ||||
_v) e (rbL03_ E | _v) e (rbL03_ E | ||||
_d) e (vL03_ e | _d) e (vL03_ e | ||||
scr) e (vL03_ e // e- in- pre- ree- de- | scr) e (vL03_ e // e- in- pre- ree- de- | ||||
_atr) e (vL03_ e | _atr) e (vL03_ e | ||||
pr) e (zL04_ E / des- menos- | |||||
pr) e (zL04_ E // des- menos- | |||||
_embel) e (zL04_ E | _embel) e (zL04_ E | ||||
_acont) e (çL01_ e | _acont) e (çL01_ e | ||||
_arref) e (çL01_ e | _arref) e (çL01_ e | ||||
_emagr) e (çL03 | _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- | pad) e (çL03_ e // com- | ||||
par) e (çL03_ e // a- re- com- rea- desa- | par) e (çL03_ e // a- re- com- rea- desa- | ||||
_ado) e (çL03_ e | _ado) e (çL03_ e | ||||
_car) e (çL03_ e | _car) e (çL03_ e | ||||
_per) e (çL03_ e_ | _per) e (çL03_ e_ | ||||
conh) e (çL03_ e // re- | conh) e (çL03_ e // re- | ||||
obed) e (çL03_ e / des- | |||||
obed) e (çL03_ e // des- | |||||
_esqu) e (çL03_ e | _esqu) e (çL03_ e | ||||
_forn) e (çL03_ e | _forn) e (çL03_ e | ||||
_ofer) e (çL03_ e | _ofer) e (çL03_ e | ||||
_amanh) e (çL03_ e | _amanh) e (çL03_ e | ||||
_amort) e (çL03_ e | _amort) e (çL03_ e | ||||
_anoit) e (çL03_ e | _anoit) e (çL03_ e | ||||
_desguarn) e (çL03_ e | |||||
_desguarnec) e (çL03_ e | _desguarnec) e (çL03_ e | ||||
_enfraqu) e (çL03_ e | _enfraqu) e (çL03_ e | ||||
_enlouqu) e (çL03_ e | _enlouqu) e (çL03_ e | ||||
_estrem) e (çL03_ e | _estrem) e (çL03_ e | ||||
_fortal) e (çL03_ e | _fortal) e (çL03_ e | ||||
_rejuven) e (çL03_ e | _rejuven) e (çL03_ e | ||||
estabel) e (çL03_ e / re- | |||||
estabel) e (çL03_ e // re- | |||||
//endsort | //endsort | ||||
_deb) o (chL04_ O | _deb) o (chL04_ O | ||||
_desabr) o (chL04_ O | _desabr) o (chL04_ O | ||||
_s) o (frL02_ O | _s) o (frL02_ O | ||||
r) o (gL04_ O / inter- | |||||
r) o (gL04_ O // inter- | |||||
_j) o (gL04_ O | _j) o (gL04_ O | ||||
_af) o (gL04_ O | _af) o (gL04_ O | ||||
_adv) o (gL04_ O | _adv) o (gL04_ O | ||||
_ref) o (gL04_ O | _ref) o (gL04_ O | ||||
_ap) oi (L01_ OI | _ap) oi (L01_ OI | ||||
_t) o (lL03_ o | _t) o (lL03_ o | ||||
c) o (lhL02_ O / es- en- re- | |||||
c) o (lhL02_ O // es- en- re- | |||||
_t) o (lhL02_ O | _t) o (lhL02_ O | ||||
_m) o (lhL04_ O | _m) o (lhL04_ O | ||||
env) o (lvL02_ O / des- | |||||
env) o (lvL02_ O // des- | |||||
_abs) o (lvL02_ O | _abs) o (lvL02_ O | ||||
_dev) o (lvL02_ O | _dev) o (lvL02_ O | ||||
_res) o (lvL02_ O | _res) o (lvL02_ O | ||||
_r) o (snL04_ O | _r) o (snL04_ O | ||||
_c) o (spL02_ O | _c) o (spL02_ O | ||||
p) ostos (_ Ost=Us# // dispostos etc. | p) ostos (_ Ost=Us# // dispostos etc. | ||||
_g) o (zL04_ O | |||||
_ad) o (çL03_ O | _ad) o (çL03_ O | ||||
_end) o (çL03_ O | _end) o (çL03_ O | ||||
//endsort | //endsort |
af 39 138 | af 39 138 | ||||
cy 29 134 | cy 29 134 | ||||
ga 29 133 | ga 29 133 | ||||
de 41 141 | |||||
de 40 140 | |||||
eo 13 116 | eo 13 116 | ||||
jbo 2 116 | jbo 2 116 | ||||
nci 3 125 | nci 3 125 | ||||
id 15 127 | id 15 127 | ||||
sq 33 127 | sq 33 127 | ||||
hy 23 119 | hy 23 119 | ||||
da 46 139 | |||||
da 45 138 | |||||
ka 20 115 | ka 20 115 | ||||
fa 9 112 | fa 9 112 | ||||
rw 15 132 | rw 15 132 | ||||
[l/] base | [l/] base | ||||
[l/3] base | [l/3] base | ||||
[l/] fr | [l/] fr | ||||
[l/3] da | |||||
l/l_@ [l/3] base | l/l_@ [l/3] base | ||||
[l/] fr | [l/] fr | ||||
l/l@ [¨ì,] base | |||||
[l/3] da | |||||
l/l@ [¨|8] base | |||||
[l#] base | [l#] base | ||||
[l] fr | [l] fr | ||||
[l/2] fr | [l/2] fr | ||||
l/L2_uL [l/2] base | l/L2_uL [l/2] base | ||||
l/l_3 [l/] de | l/l_3 [l/] de | ||||
l/l_4 [ll] sq | l/l_4 [ll] sq | ||||
l/la [¨ì,] base | |||||
l/la [¨|8] base | |||||
[l#] base | [l#] base | ||||
[l] fr | [l] fr | ||||
[l/2] fr | [l/2] fr | ||||
[K] tn | [K] tn | ||||
l/l_a [l/3] base | l/l_a [l/3] base | ||||
[l/] fr | [l/] fr | ||||
l/le [¨ì,] base | |||||
[l/3] da | |||||
l/le [¨|8] base | |||||
[l#] base | [l#] base | ||||
[l] fr | [l] fr | ||||
[l/2] fr | [l/2] fr | ||||
[K] tn | [K] tn | ||||
l/l_e [l/3] base | l/l_e [l/3] base | ||||
[l/] fr | [l/] fr | ||||
[l/3] da | |||||
l/L_eL_af [&] af | l/L_eL_af [&] af | ||||
[&:] af | [&:] af | ||||
l/l_front [L] sq | l/l_front [L] sq | ||||
l/l_front_ [l/4] sq | l/l_front_ [l/4] sq | ||||
l/li [¨ì,] base | |||||
l/li [¨|8] base | |||||
[l#] base | [l#] base | ||||
[l] fr | [l] fr | ||||
[l/2] fr | [l/2] fr | ||||
l/l_i [l/3] base | l/l_i [l/3] base | ||||
[l/] fr | [l/] fr | ||||
[i] sq | [i] sq | ||||
[l/3] da | |||||
ll/ll [L] base | ll/ll [L] base | ||||
ll/_ll [L] base | ll/_ll [L] base | ||||
l/l_long [l] base | l/l_long [l] base | ||||
[l] fr | [l] fr | ||||
l/lo [¨ì,] base | |||||
l/lo [¨|8] base | |||||
[l#] base | [l#] base | ||||
[l/2] fr | [l/2] fr | ||||
[K] nso | [K] nso | ||||
[K] tn | [K] tn | ||||
l/l_o [l/3] base | l/l_o [l/3] base | ||||
[l/] fr | [l/] fr | ||||
[l/3] da | |||||
l^/l_rfx [l.] base | l^/l_rfx [l.] base | ||||
[l;] lt | [l;] lt | ||||
[l] ru | [l] ru | ||||
[l^] ru | [l^] ru | ||||
l/lu [¨ì,] base | |||||
l/lu [¨|8] base | |||||
[l#] base | [l#] base | ||||
[l] fr | [l] fr | ||||
[l/2] fr | [l/2] fr | ||||
[K] tn | [K] tn | ||||
l/l_u [l/3] base | l/l_u [l/3] base | ||||
[l/] fr | [l/] fr | ||||
[l/3] da | |||||
l/l_vi [l] vi | l/l_vi [l] vi | ||||
ll/xll [L] base | ll/xll [L] base | ||||
l/l_y [l/] fr | l/l_y [l/] fr | ||||
[n] fr | [n] fr | ||||
[n#] is | [n#] is | ||||
[n] zh | [n] zh | ||||
r/@_ [V#] de | |||||
r2/r2@ [r-] en | r2/r2@ [r-] en | ||||
[r-] tn | [r-] tn | ||||
r2/r2a [r-] en | r2/r2a [r-] en | ||||
[r*] sr | [r*] sr | ||||
[r] ru | [r] ru | ||||
r3/r_uvl [r"] base | r3/r_uvl [r"] base | ||||
[r2] de | |||||
r3/r_uvl.wav [r"] base | r3/r_uvl.wav [r"] base | ||||
[r2] de | |||||
r3/rx [*] base | r3/rx [*] base | ||||
[r/] base | [r/] base | ||||
[r/] af | [r/] af | ||||
r/tr [r] base | r/tr [r] base | ||||
r/trr [r/] base | r/trr [r/] base | ||||
[r] ro | [r] ro | ||||
r/V_ [V#] de | |||||
r/V_2_ [V#] de | |||||
r/xr [r] base | r/xr [r] base | ||||
[R3] base | [R3] base | ||||
[r-] en | [r-] en | ||||
[i@] ga | [i@] ga | ||||
[i@] hy | [i@] hy | ||||
vdiph2/i@_2 [i@] en-wm | vdiph2/i@_2 [i@] en-wm | ||||
[iR] de | |||||
vdiph2/ie [i@] en-wi | vdiph2/ie [i@] en-wi | ||||
[ie] fi | [ie] fi | ||||
[ie] mt | [ie] mt | ||||
[a] pt-pt | [a] pt-pt | ||||
[a] ro | [a] ro | ||||
[a] el | [a] el | ||||
[a] da | |||||
[?a] da | |||||
[a] rw | [a] rw | ||||
vowel/a#_2 [A] nl | vowel/a#_2 [A] nl | ||||
[a:] nl | [a:] nl | ||||
[a:] la | [a:] la | ||||
[A] zh | [A] zh | ||||
[a] sq | [a] sq | ||||
[A] da | |||||
[?A] da | |||||
[a] ka | [a] ka | ||||
[a:] si | [a:] si | ||||
vowel/a#_3 [a#] en | vowel/a#_3 [a#] en | ||||
[a] ht | [a] ht | ||||
vowel/a_8 [a] en | vowel/a_8 [a] en | ||||
[a] sk | [a] sk | ||||
[A] da | |||||
[?A] da | |||||
vowel/aa [a:] et | vowel/aa [a:] et | ||||
[A] fr-ca | [A] fr-ca | ||||
[A] no | [A] no |
// 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 @ | phoneme @ | ||||
vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
phoneme i | phoneme i | ||||
vowel starttype #i endtype #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 | 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 | 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 | length 150 | ||||
ENDIF | 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 | length 150 | ||||
ENDIF | 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 | ENDIF | ||||
// "vilje" | |||||
// "vilje" - short followed by 2 consonants | |||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | ||||
length 90 | 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 | ENDIF | ||||
FMT(vowel/i_4) | FMT(vowel/i_4) | ||||
endphoneme | endphoneme | ||||
// PB Experimental glottal i | |||||
// PB short i | |||||
// sviret vs. svirret | // sviret vs. svirret | ||||
phoneme ?i | phoneme ?i | ||||
vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
phoneme e | phoneme e | ||||
vowel starttype #e endtype #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 | length 150 | ||||
ENDIF | 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" | // PB "ring", "ringe" | ||||
IF nextPhW(N) THEN | IF nextPhW(N) THEN | ||||
length 90 | length 90 | ||||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN | IF nextPhW(isNotVowel) AND next2PhW(i) THEN | ||||
length 150 | length 150 | ||||
ENDIF | 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 | IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | ||||
length 60 | |||||
length 90 | |||||
ENDIF | ENDIF | ||||
FMT(vowel/e) | FMT(vowel/e) | ||||
endphoneme | endphoneme | ||||
// PB glottal e | |||||
// PB short e | |||||
// "skille" vs. "skele", "pille" vs. "pile" | // "skille" vs. "skele", "pille" vs. "pile" | ||||
phoneme ?e | phoneme ?e | ||||
vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
phoneme E | phoneme E | ||||
vowel starttype #e endtype #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" | // "værelse", "breve" | ||||
IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(@-) THEN | IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(@-) THEN | ||||
length 150 | |||||
// length 150 | |||||
ENDIF | 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 | ENDIF | ||||
// "ære", "kærester", "ærefrygt" - longer E | // "ære", "kærester", "ærefrygt" - longer E | ||||
IF nextPhW(V) THEN | IF nextPhW(V) THEN | ||||
length 180 | 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 | ENDIF | ||||
FMT(vowel/e_mid2) | FMT(vowel/e_mid2) | ||||
endphoneme | endphoneme | ||||
// PB Experimental glottal E | |||||
// PB short E | |||||
// "læsse" vs. "læse" | // "læsse" vs. "læse" | ||||
phoneme ?E | phoneme ?E | ||||
vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
phoneme & | phoneme & | ||||
vowel starttype #e endtype #e | 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 | 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 | length 150 | ||||
ENDIF | 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 | 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 | ENDIF | ||||
// "Alfie", "alfer" - short before 2 consonants | // "Alfie", "alfer" - short before 2 consonants | ||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | ||||
length 90 | length 90 | ||||
ENDIF | |||||
// "Omaha" | |||||
IF thisPh(isWordEnd) THEN | |||||
length 90 | |||||
ENDIF | ENDIF | ||||
FMT(vowel/ee_2) | FMT(vowel/ee_2) | ||||
endphoneme | endphoneme | ||||
// PB Experimental glottal a | |||||
// PB Short & | |||||
// e.g. the last a in "staldkarl" | // e.g. the last a in "staldkarl" | ||||
// "sale" vs. "sal" | // "sale" vs. "sal" | ||||
phoneme ?& | phoneme ?& | ||||
ipa a | |||||
vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
length 90 | length 90 | ||||
FMT(vowel/ee_2) | FMT(vowel/ee_2) | ||||
phoneme &# | phoneme &# | ||||
vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
length 120 | 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 | glstop | ||||
length 90 | length 90 | ||||
ENDIF | ENDIF | ||||
FMT(vowel/&) | FMT(vowel/&) | ||||
endphoneme | 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 | // PB short (glottal) a | ||||
// "bragt" | // "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 | 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 | length 150 | ||||
ENDIF | ENDIF | ||||
// "far", "bastard" - a bit longer followed by [r] | // "far", "bastard" - a bit longer followed by [r] | ||||
IF nextPhW(r) THEN | |||||
IF nextPhW(r) AND nextPhW(isWordEnd) THEN | |||||
length 120 | length 120 | ||||
ENDIF | ENDIF | ||||
FMT(vowel/a_3) | |||||
// "bange" [bAN@-] - [N] = 2 consonants (ng) => short | |||||
IF nextPhW(N) THEN | |||||
length 90 | |||||
ENDIF | |||||
FMT(vowel/a_8) | |||||
endphoneme | endphoneme | ||||
// PB glottal a | |||||
// PB short A | |||||
// "drab" vs. "drabelig" | // "drab" vs. "drabelig" | ||||
phoneme ?A | phoneme ?A | ||||
vowel starttype #a endtype #a | vowel starttype #a endtype #a | ||||
length 90 | 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 | ENDIF | ||||
FMT(vowel/a_3) | |||||
FMT(vowel/a_8) | |||||
endphoneme | endphoneme | ||||
phoneme u | phoneme u | ||||
vowel starttype #u endtype #u | vowel starttype #u endtype #u | ||||
length 150 | |||||
length 90 //150 | |||||
// Short vowel followed by consonant and NOT consonant + 3 or V or @ | // Short vowel followed by consonant and NOT consonant + 3 or V or @ | ||||
// "blus" vs. "bluse" and "bluser" | // "blus" vs. "bluse" and "bluser" | ||||
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | 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 | 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 | length 150 | ||||
ENDIF | ENDIF | ||||
// extra length followed by 3 or V or @ | // 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 | ENDIF | ||||
// "umulig" | // "umulig" | ||||
IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN | IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN | ||||
length 180 | length 180 | ||||
ENDIF | |||||
// Only "u" | |||||
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN | |||||
length 150 | |||||
ENDIF | ENDIF | ||||
FMT(vowel/u_bck) | FMT(vowel/u_bck) | ||||
endphoneme | endphoneme | ||||
phoneme O | phoneme O | ||||
vowel starttype #o endtype #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 | 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 | length 150 | ||||
ENDIF | ENDIF | ||||
// "rådig" | // "rådig" | ||||
FMT(vowel/V_4) | FMT(vowel/V_4) | ||||
endphoneme | endphoneme | ||||
// PB Glottal (short) å | |||||
// PB Short å | |||||
// "forstår" vs. "kåre" | // "forstår" vs. "kåre" | ||||
phoneme ?V | phoneme ?V | ||||
vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
phoneme y | phoneme y | ||||
vowel starttype #i endtype #i | 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 | 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 | ENDIF | ||||
// "dydig" [dyDi] | // "dydig" [dyDi] | ||||
IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(i) THEN | |||||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN | |||||
length 150 | length 150 | ||||
ENDIF | ENDIF | ||||
// "syge" [sy3] vowel + vowel: extra length, but NOT "fyret" [fyVD] | // "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 | ENDIF | ||||
// PB "kryster" - short y | |||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | |||||
length 80 | |||||
// "tyve" | |||||
IF nextPhW(?u) AND next2PhW(@-) THEN | |||||
length 150 | |||||
ENDIF | ENDIF | ||||
// PB "gryden" | |||||
FMT(vowel/y) | FMT(vowel/y) | ||||
endphoneme | endphoneme | ||||
// "kylling" vs. "kyle", "krybbe" vs. "krybe" | // "kylling" vs. "kyle", "krybbe" vs. "krybe" | ||||
phoneme ?y | phoneme ?y | ||||
vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
length 70 | |||||
length 90 | |||||
FMT(vowel/y) | FMT(vowel/y) | ||||
endphoneme | endphoneme | ||||
phoneme W | phoneme W | ||||
vowel starttype #@ endtype #@ | 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 | // "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 | length 220 | ||||
ENDIF | 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 @ | // 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 | length 160 | ||||
ENDIF | ENDIF | ||||
// "røveri" TEST | |||||
IF next2PhW(V) OR next2PhW(?V) THEN | |||||
length 90 | |||||
ENDIF | |||||
// PB "nødig", "nødigt", "kølige" | // PB "nødig", "nødigt", "kølige" | ||||
IF nextVowel(i) THEN | IF nextVowel(i) THEN | ||||
length 160 | length 160 | ||||
FMT(vowel/oe) | FMT(vowel/oe) | ||||
endphoneme | endphoneme | ||||
// PB glottal W | |||||
// PB short W | |||||
// "prøv" vs. "prøve" | // "prøv" vs. "prøve" | ||||
phoneme ?W | phoneme ?W | ||||
vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
// PB added for the ø in "røv", "røg", "øje" instead of [V3] | // PB added for the ø in "røv", "røg", "øje" instead of [V3] | ||||
phoneme W# | phoneme W# | ||||
vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
length 150 | |||||
length 90 //150 | |||||
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 | glstop | ||||
length 90 | |||||
// length 90 | |||||
ENDIF | 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 | length 150 | ||||
ENDIF | ENDIF | ||||
FMT(vowel/V) | FMT(vowel/V) | ||||
glstop | glstop | ||||
length 150 | length 150 | ||||
ENDIF | ENDIF | ||||
// "dreje" [dR'aI@-_!] | |||||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN | IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN | ||||
length 300 | |||||
length 280 | |||||
ENDIF | ENDIF | ||||
// PB "drej" vs. "dreje" | // PB "drej" vs. "dreje" | ||||
IF thisPh(isWordEnd) THEN | IF thisPh(isWordEnd) THEN | ||||
length 140 | length 140 | ||||
ENDIF | |||||
// "lejde" [l'aId@-_!], "lejder" [l'aIdV_!] | |||||
IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(V) THEN | |||||
length 190 | |||||
ENDIF | ENDIF | ||||
FMT(vdiph/ai) | FMT(vdiph/ai) | ||||
endphoneme | endphoneme | ||||
liquid | liquid | ||||
lengthmod 7 | lengthmod 7 | ||||
ChangePhoneme(l/3) | 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 | endphoneme | ||||
phoneme v // approximant, not fricative | phoneme v // approximant, not fricative | ||||
liquid | liquid | ||||
lengthmod 7 | lengthmod 7 | ||||
ipa ɐ̯ | 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) | ChangePhoneme(R) | ||||
ENDIF | ENDIF | ||||
FMT(r/a_) | FMT(r/a_) | ||||
IF nextPh(r) OR nextPh(R) OR nextPh(R2) THEN | IF nextPh(r) OR nextPh(R) OR nextPh(R2) THEN | ||||
WAV(ustop/tr) | WAV(ustop/tr) | ||||
ENDIF | ENDIF | ||||
// "respekt" [REsp'Egd] | |||||
IF thisPh(isWordEnd) THEN | |||||
// ChangePhoneme(d) | |||||
ENDIF | |||||
WAV(ustop/t, 90) | WAV(ustop/t, 90) | ||||
endphoneme | endphoneme | ||||
NextVowelStarts | NextVowelStarts | ||||
VowelStart(j/j@) | VowelStart(j/j@) | ||||
VowelStart(j/ja) | VowelStart(j/ja) | ||||
VowelStart(j/je,-40) | |||||
VowelStart(j/je,-35) | |||||
VowelStart(j/ji) | VowelStart(j/ji) | ||||
VowelStart(j/jo) | VowelStart(j/jo) | ||||
VowelStart(j/ju) | VowelStart(j/ju) |
length 135 | length 135 | ||||
ENDIF | ENDIF | ||||
IF nextPh(r) THEN | |||||
IF next2Ph(isVowel) THEN | |||||
ELSE | |||||
ChangePhoneme(UR) | |||||
ENDIF | |||||
IF nextPh(r) AND next2Ph(isNotVowel) THEN | |||||
ChangePhoneme(UR) | |||||
ENDIF | ENDIF | ||||
FMT(vowel/uu_2) | FMT(vowel/uu_2) | ||||
endphoneme | endphoneme | ||||
IF prevPh(w) THEN | IF prevPh(w) THEN | ||||
VowelStart(w/wi2) | VowelStart(w/wi2) | ||||
ENDIF | ENDIF | ||||
IF nextPh(r) AND next2Ph(isNotVowel) THEN | |||||
ChangePhoneme(iR) | |||||
ENDIF | |||||
FMT(vowel/i_2) | FMT(vowel/i_2) | ||||
endphoneme | 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 | endphoneme | ||||
[Setup] | [Setup] | ||||
AppName=eSpeak | 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). | AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). | ||||
WindowVisible=yes | WindowVisible=yes | ||||
$1c: Result := 'sq'; | $1c: Result := 'sq'; | ||||
$1d: Result := 'sv'; | $1d: Result := 'sv'; | ||||
$1f: Result := 'tr'; | $1f: Result := 'tr'; | ||||
//$20: Result := 'ur'; | |||||
$21: Result := 'id'; | $21: Result := 'id'; | ||||
$25: Result := 'et'; | $25: Result := 'et'; | ||||
//$26: Result := 'lv'; | |||||
$26: Result := 'lv'; | |||||
$27: Result := 'lt'; | $27: Result := 'lt'; | ||||
$29: Result := 'fa'; | |||||
$2a: Result := 'vi'; | $2a: Result := 'vi'; | ||||
$2b: Result := 'hy'; | $2b: Result := 'hy'; | ||||
//$2c: Result := 'az'; | //$2c: Result := 'az'; | ||||
//$2d: Result := 'eu'; | //$2d: Result := 'eu'; | ||||
$2f: Result := 'mk'; | $2f: Result := 'mk'; | ||||
$36: Result := 'af'; | $36: Result := 'af'; | ||||
$37: Result := 'kn'; | |||||
$39: Result := 'hi'; | $39: Result := 'hi'; | ||||
//$3a: Result := 'mt'; | //$3a: Result := 'mt'; | ||||
//$3c: Result := 'ga'; | |||||
$3c: Result := 'ga'; | |||||
//$3f: Result := 'kk'; | //$3f: Result := 'kk'; | ||||
$41: Result := 'sw'; | $41: Result := 'sw'; | ||||
//$44: Result := 'tt'; | //$44: Result := 'tt'; | ||||
$46: Result := 'pa'; | |||||
$49: Result := 'ta'; | $49: Result := 'ta'; | ||||
$46: Result := 'pa'; | $46: Result := 'pa'; | ||||
$4b: Result := 'kn'; | $4b: Result := 'kn'; | ||||
$4c: Result := 'ml'; | |||||
//$50: Result := 'mn'; | //$50: Result := 'mn'; | ||||
$52: Result := 'cy'; | $52: Result := 'cy'; | ||||
//$5e: Result := 'am'; | //$5e: Result := 'am'; | ||||
//$61: Result := 'ne'; | |||||
$61: Result := 'ne'; | |||||
//$87: Result := 'rw'; | //$87: Result := 'rw'; | ||||
//$88: Result := 'wo'; | //$88: Result := 'wo'; | ||||
end; | end; |
sprintf(&cmdbuf[len],"%c%dF",CTRL_EMBEDDED,emphasis); | sprintf(&cmdbuf[len],"%c%dF",CTRL_EMBEDDED,emphasis); | ||||
len += strlen(&cmdbuf[len]); | len += strlen(&cmdbuf[len]); | ||||
} | } | ||||
if(sayas != gSayas) | |||||
if((sayas != gSayas) || (sayas != 0)) | |||||
{ | { | ||||
sprintf(&cmdbuf[len],"%c%dY",CTRL_EMBEDDED,sayas); | sprintf(&cmdbuf[len],"%c%dY",CTRL_EMBEDDED,sayas); | ||||
len += strlen(&cmdbuf[len]); | len += strlen(&cmdbuf[len]); |
OBJS=$(patsubst %.cpp,%.o,$(SRCS)) | 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++ -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 \ | -I/usr/include/wx-2.8 \ | ||||
-DGTK_NO_CHECK_CASTS -D__WXGTK__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES | -DGTK_NO_CHECK_CASTS -D__WXGTK__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES | ||||
-D_LARGEFILE_SOURCE=1 -DNO_GCC_PRAGMA -D_ESPEAKEDIT | -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 | -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 | all: espeakedit |
// return number of bytes used by the letter | // return number of bytes used by the letter | ||||
// control bit 0: a non-initial letter in a word | // control bit 0: a non-initial letter in a word | ||||
// bit 1: say 'capital' | // bit 1: say 'capital' | ||||
// bit 2: say character code for unknown letters | |||||
int n_bytes; | int n_bytes; | ||||
int letter; | int letter; | ||||
} | } | ||||
} | } | ||||
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 | // don't speak the character code number, unless we want full details of this character | ||||
speak_letter_number = 0; | speak_letter_number = 0; |
ph = phoneme_tab[plist3->phcode]; | ph = phoneme_tab[plist3->phcode]; | ||||
plist3[0].ph = ph; | 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))) | if((plist3[1].phcode == phonSWITCH) || ((plist3[1].type == phPAUSE) && (plist3[2].phcode == phonSWITCH))) | ||||
continue; // next phoneme is also a phonSWITCH, so ignore | continue; // next phoneme is also a phonSWITCH, so ignore |
#endif | #endif | ||||
#ifdef _ESPEAKEDIT | #ifdef _ESPEAKEDIT | ||||
//#define USE_PORTAUDIO | |||||
#define USE_PORTAUDIO | |||||
#define USE_ASYNC | #define USE_ASYNC | ||||
#define LOG_FRAMES // write keyframe info to log-espeakedit | #define LOG_FRAMES // write keyframe info to log-espeakedit | ||||
#endif | #endif |
#include "translate.h" | #include "translate.h" | ||||
#include "wave.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; | const int version_phdata = 0x014640; | ||||
int option_device_number = -1; | int option_device_number = -1; |
#define OFFSET_ETHIOPIC 0x1200 | #define OFFSET_ETHIOPIC 0x1200 | ||||
// character ranges must be listed in ascending order | |||||
ALPHABET alphabets [] = { | ALPHABET alphabets [] = { | ||||
{"_el", OFFSET_GREEK, 0x380, 0x3ff, L('e','l'), AL_DONT_NAME | AL_NOT_LETTERS}, | {"_el", OFFSET_GREEK, 0x380, 0x3ff, L('e','l'), AL_DONT_NAME | AL_NOT_LETTERS}, | ||||
{"_cyr", OFFSET_CYRILLIC, 0x400, 0x52f, 0, 0}, | {"_cyr", OFFSET_CYRILLIC, 0x400, 0x52f, 0, 0}, | ||||
{"_braille", 0x2800, 0x2800,0x28ff, 0, AL_NO_SYMBOL}, | {"_braille", 0x2800, 0x2800,0x28ff, 0, AL_NO_SYMBOL}, | ||||
{"_ja", 0x3040, 0x3040,0x30ff, 0, AL_NOT_CODE}, | {"_ja", 0x3040, 0x3040,0x30ff, 0, AL_NOT_CODE}, | ||||
{"_zh", 0x3100, 0x3100,0x9fff, 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} | {NULL, 0, 0, 0, 0, 0} | ||||
}; | }; | ||||
while(alphabet->name != NULL) | 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++; | alphabet++; | ||||
} | } | ||||
case L('h','i'): // Hindi | case L('h','i'): // Hindi | ||||
case L('n','e'): // Nepali | case L('n','e'): // Nepali | ||||
case L('p','a'): // Punjabi | 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 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 }; | static const unsigned char stress_amps_hi[8] = {17,14, 20,19, 20,22, 22,21 }; | ||||
0x1a1, 0x1edd, 0x1edb, 0x1edf, 0x1ee1, 0x1ee3, // ơ | 0x1a1, 0x1edd, 0x1edb, 0x1edf, 0x1ee1, 0x1ee3, // ơ | ||||
0x75, 0xf9, 0xfa, 0x1ee7, 0x169, 0x1ee5, // u | 0x75, 0xf9, 0xfa, 0x1ee7, 0x169, 0x1ee5, // u | ||||
0x1b0, 0x1eeb, 0x1ee9, 0x1eed, 0x1eef, 0x1ef1, // ư | 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); | SetupTranslator(tr,stress_lengths_vi,stress_amps_vi); | ||||
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable |
int capitals = 0; | int capitals = 0; | ||||
int non_initial = 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)) | while((*word != ' ') && (*word != 0)) | ||||
{ | { | ||||
// change to another language in order to translate this word | // change to another language in order to translate this word | ||||
strcpy(word_phonemes,unpron_phonemes); | strcpy(word_phonemes,unpron_phonemes); | ||||
if(strcmp(&unpron_phonemes[1],"en")==0) | 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); | return(0); | ||||
} | } | ||||
word_flags = wtab[0].flags; | word_flags = wtab[0].flags; | ||||
if(word_flags & FLAG_EMBEDDED) | 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; | embedded_flag = SFLAG_EMBEDDED; | ||||
Word_EmbeddedCmd(); | Word_EmbeddedCmd(); | ||||
{ | { | ||||
ph_list2[n_ph_list2].phcode = ph_code; | ph_list2[n_ph_list2].phcode = ph_code; | ||||
ph_list2[n_ph_list2].sourceix = 0; | 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; | ph_list2[n_ph_list2++].tone_ph = *p; | ||||
SelectPhonemeTable(*p); | SelectPhonemeTable(*p); | ||||
p++; | p++; |
#define CTRL_EMBEDDED 0x01 // control character at the start of an embedded command | #define CTRL_EMBEDDED 0x01 // control character at the start of an embedded command | ||||
#define REPLACED_E 'E' // 'e' replaced by silent e | #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_WORD_BYTES 160 // max bytes for the UTF8 characters in a word | ||||
#define N_CLAUSE_WORDS 300 // max words in a clause | #define N_CLAUSE_WORDS 300 // max words in a clause | ||||
#define N_RULE_GROUP2 120 // max num of two-letter rule chains | #define N_RULE_GROUP2 120 // max num of two-letter rule chains |