Windows SAPI5 installer: Remove the limit on the number of voices specified for inclusion in the Windows Registry. voices.cpp: Widen formant peaks F3 F4 F5. Reduce slightly the difference in amplitude between stressed and unstressed vowels. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@208 d46cf337-b52f-0410-862d-fd96e6ae7743master
//maintainer: Willem van der Walt | |||||
//maintainer: Willem van der Walt | |||||
// email: [email protected] | // email: [email protected] | ||||
// tel: +27 12 8413996 | // tel: +27 12 8413996 | ||||
// Meraka Institute, CSIR | // Meraka Institute, CSIR | ||||
sauk $abbrev | sauk $abbrev | ||||
st s@nt $dot | st s@nt $dot | ||||
supt suprEntEnd'Ent $dot | supt suprEntEnd'Ent $dot | ||||
tv te@fe@_ | |||||
vsa $abbrev | vsa $abbrev | ||||
// letter names | // letter names | ||||
algerië alx2'e@re@:@- | algerië alx2'e@re@:@- | ||||
antwerpen antv&rp@n | antwerpen antv&rp@n | ||||
babilon babilOn | babilon babilOn | ||||
bangladesh baNglad'ES | |||||
bangladesj baNglad'ES | |||||
bastille bast'il | bastille bast'il | ||||
bellevue b&lvju: | bellevue b&lvju: | ||||
berlyn $2 | |||||
bermuda $2 | bermuda $2 | ||||
bethlehem bEt_liEm | bethlehem bEt_liEm | ||||
boedapest budapEst | boedapest budapEst | ||||
outeniekwa @Ut@n'ikwa | outeniekwa @Ut@n'ikwa | ||||
oxford _^_EN | oxford _^_EN | ||||
pelindaba p&l@nd'A:ba | pelindaba p&l@nd'A:ba | ||||
portugal $1 | |||||
portugal pOrtyx2al | |||||
potchefstroom pOtSIfstr'o@m | potchefstroom pOtSIfstr'o@m | ||||
richardsbaai ritS@dsb'AI | |||||
robertson _^_EN | robertson _^_EN | ||||
sahara sah'A:ra | sahara sah'A:ra | ||||
secunda s@kunda | secunda s@kunda | ||||
soweto suw'E:tu | soweto suw'E:tu | ||||
springs _^_EN $capital | springs _^_EN $capital | ||||
sunnyside _^_EN | sunnyside _^_EN | ||||
suriname syrin'A:m@ | |||||
swellendam $3 | swellendam $3 | ||||
tokio to@kiu | tokio to@kiu | ||||
tunisië $2 | tunisië $2 | ||||
charl SA:l | charl SA:l | ||||
charles _^_EN | charles _^_EN | ||||
charlie tSA:li | charlie tSA:li | ||||
charmaine SA:m'eI:n | |||||
chopin S%OpA~ | chopin S%OpA~ | ||||
conradie $2 | conradie $2 | ||||
chris krIs | chris krIs | ||||
jordaan $2 | jordaan $2 | ||||
josef jo@s@f | josef jo@s@f | ||||
juanita juan'ita | juanita juan'ita | ||||
julia _^_EN | |||||
kelvin _^_EN | kelvin _^_EN | ||||
kim _^_EN $capital | kim _^_EN $capital | ||||
krige krix2@ | krige krix2@ | ||||
labuschagne labWsk'ax2ni | |||||
langenhoven laN@nho@f@n | langenhoven laN@nho@f@n | ||||
lasarus lA:s@r%Ws | lasarus lA:s@r%Ws | ||||
lategan lA:t@x2an | lategan lA:t@x2an | ||||
schreiner SraIn@r | schreiner SraIn@r | ||||
tony t@Uni | tony t@Uni | ||||
trichardt trix2A:rt | trichardt trix2A:rt | ||||
xhosa kO:za | |||||
khumalo kum'A:lu | khumalo kum'A:lu | ||||
zuma zu:ma | zuma zu:ma | ||||
chrysler kraIsl@r | chrysler kraIsl@r | ||||
ferrari f@rA:ri | ferrari f@rA:ri | ||||
martini mart'i:ni | martini mart'i:ni | ||||
naspers nasp&rs | |||||
venda vEnda | venda vEnda | ||||
wimpy wImpi | wimpy wImpi | ||||
hulle $u $verbf | hulle $u $verbf | ||||
hulleself hWl@s&lf $verbf | hulleself hWl@s&lf $verbf | ||||
my $u $verbf | my $u $verbf | ||||
jou $u $verbf | |||||
jou $u $only $verbf | |||||
hom $u $verbf | hom $u $verbf | ||||
haar $u $only $verbf | haar $u $only $verbf | ||||
se Es@ $capital | se Es@ $capital | ||||
bostaande b'o@stA:nd@ | bostaande b'o@stA:nd@ | ||||
bourgeois _^_FR | bourgeois _^_FR | ||||
bourgeoisie _^_FR | bourgeoisie _^_FR | ||||
briewemes briv@mEs | |||||
cabernet kab@rn'eI | cabernet kab@rn'eI | ||||
camembert kam@mb'&:r | camembert kam@mb'&:r | ||||
camouflage kamufl'A:Z | camouflage kamufl'A:Z | ||||
capita kapita | |||||
casino kas'i:n@U | casino kas'i:n@U | ||||
charisma kar'Isma | charisma kar'Isma | ||||
chemikalieë $3 | chemikalieë $3 | ||||
hoofsaaklik $2 | hoofsaaklik $2 | ||||
hoogedele ho@x2 _e@d@l@ | hoogedele ho@x2 _e@d@l@ | ||||
hosanna hus'ana | hosanna hus'ana | ||||
hotagter hOt_ax2t@r | |||||
ibis $1 | ibis $1 | ||||
idee $2 | idee $2 | ||||
macaroni makar'o@ni | macaroni makar'o@ni | ||||
madame mad'A:m | madame mad'A:m | ||||
madamoiselle _^_FR | madamoiselle _^_FR | ||||
malles mal@s | |||||
maskering mask'e@r@N $only | maskering mask'e@r@N $only | ||||
massaal $2 | massaal $2 | ||||
massale $2 | massale $2 | ||||
patos pA:tOs | patos pA:tOs | ||||
patriotisme patri|ut'Ism@ | patriotisme patri|ut'Ism@ | ||||
penorent pEno@rEnt | penorent pEno@rEnt | ||||
per pIr | |||||
per p@r $only | |||||
persent p@rsEnt | persent p@rsEnt | ||||
petite p@tit | petite p@tit | ||||
pinotage pinut'A:Z | pinotage pinut'A:Z | ||||
rebelleer r@b@le@r | rebelleer r@b@le@r | ||||
rededele re@d@de@l@ | rededele re@d@de@l@ | ||||
regie r@Zi: | |||||
renaissance rEn@s'A~ns | renaissance rEn@s'A~ns | ||||
retoriek r@tur'ik | retoriek r@tur'ik | ||||
rimpeling rImp@l@N | rimpeling rImp@l@N |
apart %apart // fix stress: (bus-/klein)apartheid | apart %apart // fix stress: (bus-/klein)apartheid | ||||
_) a (po %a // apollo/apostel | _) a (po %a // apollo/apostel | ||||
apo (krieC %ap%u // fix stress and vowel sounds: apokrief/-iewe | apo (krieC %ap%u // fix stress and vowel sounds: apokrief/-iewe | ||||
a (politi %A: // lengthen a sound: apolitiek/apolities/-e | |||||
apolog (A %ap%Ol%ux2 // fix stress and vowel sounds: apologie/apologeer/-gering/-geties/-getika/-geet/-gete | apolog (A %ap%Ol%ux2 // fix stress and vowel sounds: apologie/apologeer/-gering/-geties/-getika/-geet/-gete | ||||
C) ap (oor ap_ // fix stress and a sound: flap-/lap-/pap-/slapoor(hond) | C) ap (oor ap_ // fix stress and a sound: flap-/lap-/pap-/slapoor(hond) | ||||
C) ap (ore_ ap_ // fix a sound: flap-/lapore | C) ap (ore_ ap_ // fix a sound: flap-/lapore | ||||
boulevard bul@vard // boulevard/-s | boulevard bul@vard // boulevard/-s | ||||
_) bowe b''o@v@ // fix e sound in compounds: boweaards/bowemaans/bowetoon | _) bowe b''o@v@ // fix e sound in compounds: boweaards/bowemaans/bowetoon | ||||
_) breda br@dA: // move default stress: (van )Breda/Bredasdorp | _) breda br@dA: // move default stress: (van )Breda/Bredasdorp | ||||
_) briewe (C br''iv@ // fix stress and e sound: briewekolom/-literatuur/-redakteur/-tas | |||||
bril (jant br@l // move default stress: briljant/-e/-heid/-ste | bril (jant br@l // move default stress: briljant/-e/-heid/-ste | ||||
bro (mi br%o@ // fix stress: bromide/bromied(papier)/silwerbromide/ied | bro (mi br%o@ // fix stress: bromide/bromied(papier)/silwerbromide/ied | ||||
bru (ta br%y // move default stress: brutaal/brutale/brutaliteit | bru (ta br%y // move default stress: brutaal/brutale/brutaliteit | ||||
bene (dy b%e@n@ // fix stress and e sounds: gebenedy/-de | bene (dy b%e@n@ // fix stress and e sounds: gebenedy/-de | ||||
_) ben (ga b%EN // fix stress and n/g sounds: Bengaalse/Bengale | _) ben (ga b%EN // fix stress and n/g sounds: Bengaalse/Bengale | ||||
beni (g be@n@ // fix stress and e sound: (swaar/twee/vier)benig, etc. | beni (g be@n@ // fix stress and e sound: (swaar/twee/vier)benig, etc. | ||||
ber (lyn b%&r // move default stress: Berlyn/-er/-se | |||||
ber (serk b@r // fix stress and 1st e sound: berserk/-er | ber (serk b@r // fix stress and 1st e sound: berserk/-er | ||||
C) be (rsie b'&: //kombersie etc. | C) be (rsie b'&: //kombersie etc. | ||||
bene (r be@n@ //benerig/e | bene (r be@n@ //benerig/e | ||||
deur (waaid d%Y@r // move default stress: deurwaaid/-e | deur (waaid d%Y@r // move default stress: deurwaaid/-e | ||||
deur (weeC d%y@r // move default stress: deurweef/deurweek/-te | deur (weeC d%y@r // move default stress: deurweef/deurweek/-te | ||||
deur (winter d%y@r // move default stress: deurwinter/-de | deur (winter d%y@r // move default stress: deurwinter/-de | ||||
dewe (tK d@vE // fix stress and vowel sounds: Groepsgebiedewet/Dewetsdorp/-hof | |||||
dia (C d%i%a // diabeet/diafragma/diagnose/dialek/dialoog/diamant | dia (C d%i%a // diabeet/diafragma/diagnose/dialek/dialoog/diamant | ||||
diaken d%iA:k@n // diaken and compounds | diaken d%iA:k@n // diaken and compounds | ||||
diako (nie d%i%ak%u // fix stress and o sound: diakonie/-ë | diako (nie d%i%ak%u // fix stress and o sound: diakonie/-ë | ||||
detail d'i:teIl | detail d'i:teIl | ||||
detai (lleer d%i:t%eI // fix stress: (ge)detailleer(d/-e) | detai (lleer d%i:t%eI // fix stress: (ge)detailleer(d/-e) | ||||
di (ssi d@ // move default stress: dissipel/-s | di (ssi d@ // move default stress: dissipel/-s | ||||
dissipline d@s@plin@ // fix stress and e sound: dissipline/-s/dissiplinebeleid, etc. | |||||
dissipline (K d@s@plin@ // fix stress and e sound: dissipline/-s/dissiplinebeleid, etc. | |||||
distri (bu d@str@ // distribusie/distribueer and compounds | distri (bu d@str@ // distribusie/distribueer and compounds | ||||
_) dis (t d@s // stress: distrik/-te and compounds/distansie/distinksie/distorsie/distraksie | _) dis (t d@s // stress: distrik/-te and compounds/distansie/distinksie/distorsie/distraksie | ||||
distel dIst@l // restore default stress: distel and compounds | distel dIst@l // restore default stress: distel and compounds | ||||
eind (eks eInt_ // fix d sound and make short pause: eindeksamen/-s and compounds | eind (eks eInt_ // fix d sound and make short pause: eindeksamen/-s and compounds | ||||
sirk) e (l @ // compounds: sirkelgang/sirkelvormig | sirk) e (l @ // compounds: sirkelgang/sirkelvormig | ||||
nk) e (lC @ // onwankelbaar/skenkelbeen/sprinkelbesproeiing/kinkeldraai/kronkelpad/seunsenkelspel | nk) e (lC @ // onwankelbaar/skenkelbeen/sprinkelbesproeiing/kinkeldraai/kronkelpad/seunsenkelspel | ||||
u) ele (K+ 'e@l@ // words ending in uele take stress on penultimate slb | |||||
Cu) ele (K+ 'e@l@ // words ending in uele take stress on penultimate slb | |||||
_) erde (C &rd@ // fix connecting e in compounds: erdekruik/-ware and similar | _) erde (C &rd@ // fix connecting e in compounds: erdekruik/-ware and similar | ||||
_) ere e@r@ // ereamp/erediens/ererol/erevoorsitter | _) ere e@r@ // ereamp/erediens/ererol/erevoorsitter | ||||
ere (ksiA %e@rE // fix stress and e sounds: ereksie/ereksionele | ere (ksiA %e@rE // fix stress and e sounds: ereksie/ereksionele | ||||
&) etjie (+ ici | &) etjie (+ ici | ||||
Cn) etjies Eicis // kraaknetjies/hipernetjies | Cn) etjies Eicis // kraaknetjies/hipernetjies | ||||
nn) etjies icis // kannetjies/mannetjies/pennetjies, etc. | nn) etjies icis // kannetjies/mannetjies/pennetjies, etc. | ||||
&) elik (_S4 @l@k | |||||
&) elike (_S5 @l@k@ // to go with suffixes elik/elikheid | |||||
&) elikheid (_S8 @l@keIt // vriendelikheid/duidelikheid | &) elikheid (_S8 @l@keIt // vriendelikheid/duidelikheid | ||||
epi (deC %Ep%i // epidemie/-s/-e/epidermies/epidermis | epi (deC %Ep%i // epidemie/-s/-e/epidermies/epidermis | ||||
ar) e (sse_ 'E // bibliotekaresse/sekretaresse | ar) e (sse_ 'E // bibliotekaresse/sekretaresse | ||||
Ks) e (na @ //senator and friends/watsenaam | Ks) e (na @ //senator and friends/watsenaam | ||||
p) e (talje @ // fix stress and 1st e sound: petalje and compounds | p) e (talje @ // fix stress and 1st e sound: petalje and compounds | ||||
interpr) e (teer @' //stress and e sound interpreteer | |||||
interpr) e (tA @' //stress and e sound interpreteer/interpretasie | |||||
_) e (ks %E //move default stress in words starting with eks | _) e (ks %E //move default stress in words starting with eks | ||||
_C) e (on_ 'i //Leon, Deon etc. | _C) e (on_ 'i //Leon, Deon etc. | ||||
@C) e (oor @_ // fix e sound: boekbeoordelaar/klasseoorheersing/tarieweoorlog/waardeoordeel | @C) e (oor @_ // fix e sound: boekbeoordelaar/klasseoorheersing/tarieweoorlog/waardeoordeel | ||||
gewe (_ x2'e@v@ // begewe/gegewe | gewe (_ x2'e@v@ // begewe/gegewe | ||||
@) gewende (_ x2'e@v@nd@ | @) gewende (_ x2'e@v@nd@ | ||||
@) gewend (_ x2'e@v@nt // insiggewend/deurslaggewend/liggewend | @) gewend (_ x2'e@v@nt // insiggewend/deurslaggewend/liggewend | ||||
@) gewend (ste x2'e@v@nt // fix stress and e sound: toonaangewendste and similar | |||||
gewel (d x2@v&l //geweld/ig/gewelddadig | gewel (d x2@v&l //geweld/ig/gewelddadig | ||||
gewel (f x2@v&l //gewelf/boog | gewel (f x2@v&l //gewelf/boog | ||||
gewel (w x2@v'&l //gewelwe | gewel (w x2@v'&l //gewelwe | ||||
&C) ikend @k@nt // grinnikend/runnikend/sanikend | &C) ikend @k@nt // grinnikend/runnikend/sanikend | ||||
&C) ikende @k@nd@ // grinnikende/runnikende/sanikende | &C) ikende @k@nd@ // grinnikende/runnikende/sanikende | ||||
ingenieur @nx2@n'y@r | ingenieur @nx2@n'y@r | ||||
insurgen (s @ns%Wrx2En // fix stress and e sound: (teen)insurgensie and compounds | |||||
insurgen (C @ns%Wrx2En // fix stress and e sound: (teen)insurgensie and compounds/insurgent/-e | |||||
inten (s @ntEn // move default stress | inten (s @ntEn // move default stress | ||||
in (tussen @n // move default stress | in (tussen @n // move default stress | ||||
_) iri (s ir@ // restore stress on 1st slb.: iris/-se | _) iri (s ir@ // restore stress on 1st slb.: iris/-se | ||||
jag (ing jA:x2 // long a in (ver)jaging and similar | jag (ing jA:x2 // long a in (ver)jaging and similar | ||||
jaguar jagwar // fix a, g and u sounds: jaguar and compounds | jaguar jagwar // fix a, g and u sounds: jaguar and compounds | ||||
_) ja (CobA j%a // fix stress and a sound: Jacoba/Jacobus/Jakobus | _) ja (CobA j%a // fix stress and a sound: Jacoba/Jacobus/Jakobus | ||||
jacaranda j%ak%ar'anda //jacaranda and compounds | |||||
jakaranda j%ak%ar'anda //jakaranda and compounds | jakaranda j%ak%ar'anda //jakaranda and compounds | ||||
jakopewer j%ak%Ope@v@r_ // fix stress and vowel sounds: jakopewer/-oë | jakopewer j%ak%Ope@v@r_ // fix stress and vowel sounds: jakopewer/-oë | ||||
jaloe (sie j%al%u // stress: jaloesie/beroepsjaloesie | jaloe (sie j%al%u // stress: jaloesie/beroepsjaloesie | ||||
kanfer kA~nf@r_ // fix e sound: kanferboom/-bos/-hout/-olie, etc. | kanfer kA~nf@r_ // fix e sound: kanferboom/-bos/-hout/-olie, etc. | ||||
kanfer (foel k%A~nf@r // move default stress: kanferfoelie and compounds | kanfer (foel k%A~nf@r // move default stress: kanferfoelie and compounds | ||||
kanni (ba k%an%i // move default stress: kannibaal/kannibale/kannibalisme | kanni (ba k%an%i // move default stress: kannibaal/kannibale/kannibalisme | ||||
@) ka (non k%a // shorten a sound in compounds like waterkanon/-ne | |||||
_) kano (vaar k%ano@ // fix stress and vowel sounds: kanovaarder/vaart, etc. | _) kano (vaar k%ano@ // fix stress and vowel sounds: kanovaarder/vaart, etc. | ||||
kano (_ k%ano@ // fix last o sound: (opblaas)kano/-'s | kano (_ k%ano@ // fix last o sound: (opblaas)kano/-'s | ||||
kan (tien k%an // move default stress: kantien and compounds | kan (tien k%an // move default stress: kantien and compounds | ||||
makaber m%akA:b@r // fix stress and vowel sounds: makaber/-e/-heid | makaber m%akA:b@r // fix stress and vowel sounds: makaber/-e/-heid | ||||
maka (paan m%ak%a // fix stress and a sounds: Makapaan/-s/-grot and compounds | maka (paan m%ak%a // fix stress and a sounds: Makapaan/-s/-grot and compounds | ||||
@) makie (sie mak'i // fix a sound and stress: bol(le)makiesie/-slanery | @) makie (sie mak'i // fix a sound and stress: bol(le)makiesie/-slanery | ||||
ma (kietie m%a // fix stress and a sound: makietie and compounds: verjaardagmakietie/-s | |||||
@) makranka makr'anka // fix stress and vowel sounds: koek(e)makranka/-s | @) makranka makr'anka // fix stress and vowel sounds: koek(e)makranka/-s | ||||
ma (kriel m%a // move default stress: makriel/-e | ma (kriel m%a // move default stress: makriel/-e | ||||
maksi (ma@ m%aks%i // move default stress: maksimaal/-male | maksi (ma@ m%aks%i // move default stress: maksimaal/-male | ||||
&) mal (_S3 mal | &) mal (_S3 mal | ||||
malaria mal'A:ria | malaria mal'A:ria | ||||
mal (gas m%al // move default stress: Malgas/-se/-sies | mal (gas m%al // move default stress: Malgas/-se/-sies | ||||
malles (_ mal@s // fix e sound: (mags)malles and similar | |||||
_) malte (sA m%alte@ // move default stress and fix e sound: maltese/maltesies | _) malte (sA m%alte@ // move default stress and fix e sound: maltese/maltesies | ||||
mam (poer m%am // move default stress: mampoer and compounds | mam (poer m%am // move default stress: mampoer and compounds | ||||
man (da m%an //mandaat and compounds | man (da m%an //mandaat and compounds | ||||
CA) mme (C m@ | CA) mme (C m@ | ||||
CA) mme (tjie mi // lemmetjie/stemmetjie and similar | CA) mme (tjie mi // lemmetjie/stemmetjie and similar | ||||
middagete m'Idax2_e@t@ // middagete/s | middagete m'Idax2_e@t@ // middagete/s | ||||
middel mId@l // middellyf/middelpunt/middelste/bemiddelend | |||||
midde (l mId@ // middellyf/middelpunt/middelste/bemiddelend | |||||
middel (jari m@d@l // move default stress: middeljarig and derivatives | middel (jari m@d@l // move default stress: middeljarig and derivatives | ||||
middelli (k mId@l@ // drop one l: (on)middellik/-e | |||||
milit m@l@t // militêr/militaris | milit m@l@t // militêr/militaris | ||||
mil (jA m@l // move default stress: miljoen/-e/miljard/-e | mil (jA m@l // move default stress: miljoen/-e/miljard/-e | ||||
mille (nniA m@lE // millennium/millennia | mille (nniA m@lE // millennium/millennia | ||||
n (_n //cause one n sound kan nie doen nie etc. | n (_n //cause one n sound kan nie doen nie etc. | ||||
n (_n_ n // fix n in phrases like: afkappingsteken n | n (_n_ n // fix n in phrases like: afkappingsteken n | ||||
neer (drukk n%e@r // move default stress: neerdrukkend/-e | neer (drukk n%e@r // move default stress: neerdrukkend/-e | ||||
_) neerge (C@P6 n''e@rx2@ // fix e sound: neergepen/neergetel | |||||
neer (halend n%e@r // move default stress: neerhalend/-e | neer (halend n%e@r // move default stress: neerhalend/-e | ||||
@) nees (_ n'e@s // fix stress: Soedanees and similar | @) nees (_ n'e@s // fix stress: Soedanees and similar | ||||
&) nele (_ n'e@l@ | &) nele (_ n'e@l@ | ||||
seku (l s%Ek%y // sekulër/sekulariseer | seku (l s%Ek%y // sekulër/sekulariseer | ||||
sekwe (strA s%Ekw@ // fix e sounds: sekwestrasie/sekwestreer and compounds | sekwe (strA s%Ekw@ // fix e sounds: sekwestrasie/sekwestreer and compounds | ||||
bloed) se (l s& // fix e sound: (wit)bloedsel(le)(telling and similar compounds | bloed) se (l s& // fix e sound: (wit)bloedsel(le)(telling and similar compounds | ||||
braille) se (l s& // fix e sound: braillesel/-le | |||||
heuning) se (lK s& // fix e sound: heuningsel/-le | heuning) se (lK s& // fix e sound: heuningsel/-le | ||||
liggaam) se (lK s& // fix e sound: liggaamsel/-le | liggaam) se (lK s& // fix e sound: liggaamsel/-le | ||||
stam) se (l s& // fix e sound: stamsel/-le/stamselnavorsing, etc. | |||||
sela (kant s%e@l@ // fix stress and vowel sounds: selakant/-e | sela (kant s%e@l@ // fix stress and vowel sounds: selakant/-e | ||||
selder (y s%&ld@r // move default stress: seldery and compounds | selder (y s%&ld@r // move default stress: seldery and compounds | ||||
&) sele (_ s'e@l@ | &) sele (_ s'e@l@ | ||||
_) seme (Ct s@mE // sementtafel/blad/vierkant/semester/-s | _) seme (Ct s@mE // sementtafel/blad/vierkant/semester/-s | ||||
_) semi (_ sEmi // fix e sound: semi/semi-formeel, etc. | _) semi (_ sEmi // fix e sound: semi/semi-formeel, etc. | ||||
semi (na s%Em%i // seminaar/seminare/seminarium | semi (na s%Em%i // seminaar/seminare/seminarium | ||||
_) semi (C sEmi // fix vowel sounds: semistaatsinstellings and similar | |||||
sening se@n@N // sening/haaksening/heupsening | sening se@n@N // sening/haaksening/heupsening | ||||
_) se (ni@ s@ // fix stress and e sound: seniel/-e/seniliteit | _) se (ni@ s@ // fix stress and e sound: seniel/-e/seniliteit | ||||
skaker (ing sk%ake@r // skakering/-s/kleurskakering | skaker (ing sk%ake@r // skakering/-s/kleurskakering | ||||
skan (da sk%an // move default stress: skandaal/skandale/skandalig and compounds | skan (da sk%an // move default stress: skandaal/skandale/skandalig and compounds | ||||
skande (ring sk%ande@ // fix stress and e sound: (brein)skandering and similar compounds | skande (ring sk%ande@ // fix stress and e sound: (brein)skandering and similar compounds | ||||
@) skap (in@ skap_ // shorten a sound, pause: leierskapinstituut and similar | |||||
@) skap (o skap_ // shorten a sound: entrepreneur-/leierskapontwikkeling/wetenskaponderrig/-onderwyser, etc. | |||||
_) skar (C sk%ar // move default stress: skarlaken/skarminkel/skarnier and many compounds | _) skar (C sk%ar // move default stress: skarlaken/skarminkel/skarnier and many compounds | ||||
skarrel skar@l // restore default stress: (ge)skarrel/-ing | skarrel skar@l // restore default stress: (ge)skarrel/-ing | ||||
ska (vot sk%a // fix stress and a sound: skavot and compounds | ska (vot sk%a // fix stress and a sound: skavot and compounds | ||||
nd) ste (r st& // fix e sound: aandster/oggendster | nd) ste (r st& // fix e sound: aandster/oggendster | ||||
pool) ste (r st& // fix e sound: poolster | pool) ste (r st& // fix e sound: poolster | ||||
see) ste (r st& // fix e sound: seester/-re/seesterpunte and similar compounds | see) ste (r st& // fix e sound: seester/-re/seesterpunte and similar compounds | ||||
sepie) ste (r st& // fix e sound: sepiester/-re | |||||
sewe) ste (r st& // fix e sound: sewester and compounds | sewe) ste (r st& // fix e sound: sewester and compounds | ||||
visie) ste (r st& // fix e sound: televisiester/-re | visie) ste (r st& // fix e sound: televisiester/-re | ||||
_) ste (ri st%E // fix stress and e sound: steriel/-e/steriliteit | _) ste (ri st%E // fix stress and e sound: steriel/-e/steriliteit | ||||
teleks t&lEks // fix stress and vowel sounds: teleks and compounds | teleks t&lEks // fix stress and vowel sounds: teleks and compounds | ||||
_) teler te@l@r // fix stress and vowel sounds: teler/-s/-y/-svereniging, etc. | _) teler te@l@r // fix stress and vowel sounds: teler/-s/-y/-svereniging, etc. | ||||
ten (der tEn // fix e sound in compounds: regeringstenders and similar | ten (der tEn // fix e sound in compounds: regeringstenders and similar | ||||
@) ten (derwyK t@n // fix e sound: spottenderwys/-e/uitsluitenderwys/-e/verkortenderwys/-e | |||||
@C) te (nk t& ++ //tenk and friends | @C) te (nk t& ++ //tenk and friends | ||||
_) te (no t@ //tenoor, tenore etc. | _) te (no t@ //tenoor, tenore etc. | ||||
@C) te (C t@ /// | @C) te (C t@ /// | ||||
&) tert (r t@rt // fix e sound: pleistertroffel/venstertralie/ystertralies/ystertrap | &) tert (r t@rt // fix e sound: pleistertroffel/venstertralie/ystertralies/ystertrap | ||||
&s) tert (aan t&:rt // fix e sound: swa(w)elstertaandpak/-ke | &s) tert (aan t&:rt // fix e sound: swa(w)elstertaandpak/-ke | ||||
&s) tert (e_ t&:rt // fix e sound: swa(w)elsterte/vissterte | &s) tert (e_ t&:rt // fix e sound: swa(w)elsterte/vissterte | ||||
wa) tert t@rt | |||||
wa) ter (t t@r // fix last e sound: watertekort and similar | |||||
&) tert t&rt | &) tert t&rt | ||||
&) tertjie t@rki | &) tertjie t@rki | ||||
@) ter (tyd t@r // mettertyd/pinkstertyd/toentertyd | @) ter (tyd t@r // mettertyd/pinkstertyd/toentertyd | ||||
_b) us (A ''Ws_ //busongeluk/-operateur/-uitstappie, etc. | _b) us (A ''Ws_ //busongeluk/-operateur/-uitstappie, etc. | ||||
utjie Yyci | utjie Yyci | ||||
univers (A@ %yn%iv%&rs // universiteit and compounds/universeel/-ele | univers (A@ %yn%iv%&rs // universiteit and compounds/universeel/-ele | ||||
C) untjie YyNci // muntjie/puntjie/-s | |||||
C) uwelik yv@l@k // gruwelik/huwelik/afskuwelik | C) uwelik yv@l@k // gruwelik/huwelik/afskuwelik | ||||
m) u (skiet %W //change stress for muskiet compounds | m) u (skiet %W //change stress for muskiet compounds | ||||
n) uwe (C yv@ // nuwelinge/nuwemaan | n) uwe (C yv@ // nuwelinge/nuwemaan | ||||
x ks | x ks | ||||
x (x | x (x | ||||
xen (o z%En // xeno-/fiel/-filie/-fobie/-fobies/-e | xen (o z%En // xeno-/fiel/-filie/-fobie/-fobies/-e | ||||
xhosa k''O:sa // (ama)Xhosa/-s; xh click does not yet work | |||||
.group y | .group y | ||||
y eI | y eI | ||||
zambesi z%ambe@s%i // fix stress and e sound: Zambesi(rivier) | zambesi z%ambe@s%i // fix stress and e sound: Zambesi(rivier) | ||||
zebra ze@bra // fix vowel sounds: zebra/-strepe | zebra ze@bra // fix vowel sounds: zebra/-strepe | ||||
.group 0xce // Greek letters | |||||
// 0xce is the first byte of the utf-8 code for these characters | |||||
α 'alfa_ | |||||
ά 'alfa_ | |||||
β b'e@ta_ | |||||
γ g'ama_ | |||||
δ d'<a_ | |||||
ε 'EpsilOn_ | |||||
έ 'EpsilOn_ | |||||
ζ z'e@ta_ | |||||
η 'e@ta_ | |||||
ή 'e@ta_ | |||||
θ T'e@ta_ | |||||
ι i'o@ta_ | |||||
ί i'o@ta_ | |||||
κ k'apa_ | |||||
λ l'ambda_ | |||||
μ m'y:_ | |||||
ν n'y:_ | |||||
ξ ks'i_ | |||||
ο 'OmikrOn_ | |||||
.group 0xcf // Greek letters | |||||
π p'i_ | |||||
ρ r'o@_ | |||||
σ s'igma_ | |||||
ς s'igma_ | |||||
τ t'aU_ | |||||
υ 'upsilOn_ | |||||
ύ 'upsilOn_ | |||||
φ f'i_ | |||||
χ x'i_ | |||||
ψ ps'i_ | |||||
ω o@m'e@x2a_ | |||||
ώ o@m'e@x2a_ | |||||
ό 'OmikrOn_ | |||||
.group | .group | ||||
@) 's (S2 s // plurals of wrds ending in vowels: crescendo's/innuendo's/okapi's, etc. | @) 's (S2 s // plurals of wrds ending in vowels: crescendo's/innuendo's/okapi's, etc. | ||||
@) 'tjie %ici // foto'tjie/ma'tjie, etc. | @) 'tjie %ici // foto'tjie/ma'tjie, etc. |
Dictionary ca_dict | Dictionary ca_dict | ||||
@ a a# aI e E i o | |||||
O u U | |||||
@ a a# aI e E E2 i | |||||
o O u U | |||||
* ** : b B d D dZ; | |||||
f g j J J^ k l l^ | |||||
m n N n^ p Q r R | |||||
R2 s S; t T tS ts tS; | |||||
* ** : ; b B d D | |||||
dZ; f g j J J^ k l | |||||
l^ m n N n^ p Q r | |||||
R R2 s S; t T ts tS; | |||||
v v# w z Z Z; | v v# w z Z Z; | ||||
o o: oU r* r- u U u: | o o: oU r* r- u U u: | ||||
* ; b d dZ dZ; f g | * ; b d dZ dZ; f g | ||||
h j k l L l^ m n | |||||
N n^ p r R R2 s S | |||||
t tS ts tS; v x z Z | |||||
h j k l l^ m n N | |||||
n^ p r R R2 s S t | |||||
tS ts tS; v x z Z | |||||
Dictionary hi_dict | Dictionary hi_dict | ||||
u W y | u W y | ||||
** b d dZ f g h j | ** b d dZ f g h j | ||||
k l m n p R3 s S | |||||
t tS ts v x z Z | |||||
k l m n p R R3 s | |||||
S t tS ts v x z Z | |||||
Dictionary id_dict | Dictionary id_dict | ||||
eI i I I# O OI u V | eI i I I# O OI u V | ||||
y yE | y yE | ||||
** b c d D dZ f g | |||||
h j J k l ll m n | |||||
n^ p r R R2 s S t | |||||
T tS ts v w z Z | |||||
** b c d D dZ dZ; f | |||||
g h j k l L ll m | |||||
n n^ p r R R2 s S | |||||
t T tS ts v w z Z | |||||
Dictionary sv_dict | Dictionary sv_dict | ||||
o o- ou u u@ ua uai uei | o o- ou u u@ ua uai uei | ||||
uo y y& y@ yE yi yu | uo y y& y@ yE yi yu | ||||
(u) ; C f h j k kh | |||||
l m n N p ph q r | |||||
; C f h j k kh l | |||||
L m n N p ph r R | |||||
s s. S; t th ts ts. ts. | s s. S; t th ts ts. ts. | ||||
tS; tS; tsh v w x X z. | tS; tS; tsh v w x X z. | ||||
breath brET $onlys | breath brET $onlys | ||||
breath bri:D $verb $onlys | breath bri:D $verb $onlys | ||||
brethren brEDr@n | brethren brEDr@n | ||||
bridesmaid braIdzmeId | |||||
bridal braId@L | |||||
brigade $2 | brigade $2 | ||||
brigadier brIga2d'i@3 | brigadier brIga2d'i@3 | ||||
brochure broUS3 | brochure broUS3 | ||||
hasty heIstI | hasty heIstI | ||||
hatred heItrI2d | hatred heItrI2d | ||||
hazardous haz3d@s | hazardous haz3d@s | ||||
hedgehog hEdZh0g | |||||
hehe hi:h'i: | hehe hi:h'i: | ||||
heifer hEf@ | heifer hEf@ | ||||
helium hi:li@m | helium hi:li@m | ||||
jasmine dZazmIn | jasmine dZazmIn | ||||
jesus dZi:z@s | jesus dZi:z@s | ||||
joky dZoUkI | joky dZoUkI | ||||
jukebox dZu:kb0ks | |||||
july dZu:l'aI | july dZu:l'aI | ||||
kaput ka2pUt | kaput ka2pUt | ||||
lorenz l0r@nts | lorenz l0r@nts | ||||
los ,l0s $only | los ,l0s $only | ||||
losing lu:zI2N // misspell | losing lu:zI2N // misspell | ||||
lukewarm lu:kwO@m | |||||
lullaby lVl@baI | lullaby lVl@baI | ||||
lunatic lu:n@tIk | lunatic lu:n@tIk | ||||
rajah rA:dZA: | rajah rA:dZA: | ||||
rapier reIpi@3 | rapier reIpi@3 | ||||
rapport rap'o@ | rapport rap'o@ | ||||
rarity re@r@tI | |||||
rascal raask@L | rascal raask@L | ||||
ratatouille rat@t'u:I | ratatouille rat@t'u:I | ||||
?!3 rather rA:D3 | ?!3 rather rA:D3 | ||||
separate sEp@-r@t | separate sEp@-r@t | ||||
separate sEp3reIt $verb | separate sEp3reIt $verb | ||||
semen si:m@n | semen si:m@n | ||||
semibreve $1 | |||||
semicircle $1 | |||||
semicolon sEmIk'oUl@n | semicolon sEmIk'oUl@n | ||||
semitone $1 | |||||
senator sEn@t3 | senator sEn@t3 | ||||
sens sEns // for sensible | sens sEns // for sensible | ||||
sentient sEnti@nt | sentient sEnti@nt | ||||
tirade taIr'eId | tirade taIr'eId | ||||
tis tIz | tis tIz | ||||
titan taIt@n | titan taIt@n | ||||
toboggan t@b0g@n | |||||
today t@deI | today t@deI | ||||
todo t@du: | todo t@du: | ||||
tombola t0mb'oUl@ | tombola t0mb'oUl@ | ||||
trio tri:oU | trio tri:oU | ||||
trojan troUdZ@n | trojan troUdZ@n | ||||
trophy troUfI | trophy troUfI | ||||
troubadour tru:b@do@ | |||||
truely tru:lI2 $verbf | truely tru:lI2 $verbf | ||||
truest tru:@st | truest tru:@st | ||||
tryst trIst | tryst trIst | ||||
Sean SO:n | Sean SO:n | ||||
Sebastian $2 | Sebastian $2 | ||||
Sheila Si:l@ | Sheila Si:l@ | ||||
Sinead SI2neId | |||||
Sonia s0nj@ | Sonia s0nj@ | ||||
Sophie soUfI | Sophie soUfI | ||||
Stephen sti:v@n | Stephen sti:v@n | ||||
just $verbf | just $verbf | ||||
never $verbf | never $verbf | ||||
now $verbf | now $verbf | ||||
now naU $verbf $allcaps | |||||
soon $verbf | soon $verbf | ||||
still $verbf | still $verbf | ||||
already O:lr,EdI $verbf $strend2 | already O:lr,EdI $verbf $strend2 |
&) am (o_ @m | &) am (o_ @m | ||||
&d) am (_ @m | &d) am (_ @m | ||||
@erd) am (_ am | @erd) am (_ am | ||||
&h) am (_ @m | |||||
?!3 &h) am (_N @m | |||||
&s) am (_ @m | &s) am (_ @m | ||||
@r) am (a 'A:m | @r) am (a 'A:m | ||||
_) am (al a2m | _) am (al a2m | ||||
m) anoeu (v @nu: | m) anoeu (v @nu: | ||||
_qu) an 0n | _qu) an 0n | ||||
_w) an 0n | _w) an 0n | ||||
_w) an (g an | |||||
_w) an (k an | |||||
_tr) an (s %an | _tr) an (s %an | ||||
tr) ansfer %ansf3: | tr) ansfer %ansf3: | ||||
tr) an (si an | tr) an (si an | ||||
@) ed (ien 'i:d | @) ed (ien 'i:d | ||||
m) ed (io i:d | m) ed (io i:d | ||||
m) ed (iu i:d | m) ed (iu i:d | ||||
edg (e# EdZ | |||||
@m) ediate i:dI2@t | @m) ediate i:dI2@t | ||||
cr) edib EdIb | cr) edib EdIb | ||||
@dr) ed (_ Id | @dr) ed (_ Id | ||||
em (uls I2m | em (uls I2m | ||||
h) em (o i:m | h) em (o i:m | ||||
h) emorrh Em@r | h) emorrh Em@r | ||||
sph) em @m | |||||
sph) em (e 'i:m | |||||
.group en | .group en | ||||
_) en (@ %En | _) en (@ %En | ||||
er (ent_ r | er (ent_ r | ||||
adh) er (e 'i@3 | adh) er (e 'i@3 | ||||
coh) er (e 'i@3 | coh) er (e 'i@3 | ||||
h) er (ed I2r | |||||
_h) er (ed I2r | |||||
c) ere (mon ErI2 | c) ere (mon ErI2 | ||||
h) er (en i@r | h) er (en i@r | ||||
st) ereo ErI2oU | st) ereo ErI2oU | ||||
h (h | h (h | ||||
h (_ | h (_ | ||||
_B) h | _B) h | ||||
&) ham (_ @m | |||||
?3 &) ham (_ ham | |||||
@) hammed h'amId | @) hammed h'amId | ||||
A) han (_ h'an // places | A) han (_ h'an // places | ||||
ha (st heI | ha (st heI | ||||
br) i (dl aI | br) i (dl aI | ||||
_s) i (dl aI | _s) i (dl aI | ||||
f) i (del I2 | f) i (del I2 | ||||
br) i (dA aI | |||||
br) i (dg I | br) i (dg I | ||||
ybr) i (d I | |||||
_s) i (der aI | _s) i (der aI | ||||
i (der_+ aI | i (der_+ aI | ||||
@) i (do_ 'i: | @) i (do_ 'i: | ||||
secur sI2kjU@ | secur sI2kjU@ | ||||
self (_ 'sElf | self (_ 'sElf | ||||
selves (_ 'sElvz | selves (_ 'sElvz | ||||
_) semi (@@P4 s,EmI2 | |||||
_) semin sEmIn | |||||
sh S | sh S | ||||
_mi) s (h s | _mi) s (h s | ||||
@) s (head_ s | @) s (head_ s | ||||
theless D@l'Es | theless D@l'Es | ||||
theque tEk | theque tEk | ||||
ther (_ D3 | ther (_ D3 | ||||
ther (er D3 | |||||
th (erC D | th (erC D | ||||
there (_ D3 // thering | there (_ D3 // thering | ||||
th (est D | th (est D | ||||
n) th (er T | |||||
ea) th (er D | |||||
n) th (er+ T | |||||
therap TEr@p | therap TEr@p | ||||
th (erm T | th (erm T | ||||
ca) th (eri T | ca) th (eri T |
_dpt _komo_ | _dpt _komo_ | ||||
// accent names | // accent names | ||||
_acu dekst@-*akoRno | |||||
_brv hoko | |||||
_cir tsiRkumflekso | |||||
_dia dupunktasupeRsigno | |||||
_grv maldekst@-*akoRno | |||||
_tld tildo | |||||
_lig ligat'uRa | |||||
_acu dekst@-*ak'oRna | |||||
_ac2 duoblak'oRna | |||||
_brv h'oka | |||||
_ced tsed'ila | |||||
_cir tsiRkumfl'eksa | |||||
_dia dupunkta | |||||
_dot p'unkta | |||||
_grv maldekst@-*ak'oRna | |||||
_hac hatS'eka | |||||
_mcn st@-*'ia | |||||
_ogo subh'oka | |||||
_rng R'inga | |||||
_stk st@-*eka | |||||
_tld t'ilda | |||||
_cap maI,uskla | |||||
_?? lit,eRo | |||||
_#9 t'abo | |||||
_#32 sp'atso | |||||
_?? liteRo | |||||
_. punkto | _. punkto | ||||
_: dupunkto | _: dupunkto | ||||
_; punktokomo | _; punktokomo | ||||
| duktosigno | | duktosigno | ||||
* asteRisko | * asteRisko | ||||
© kopiRaIto | © kopiRaIto | ||||
_( Rondak@-*'ampo | |||||
_) feRm'itaRondak@-*'ampo | |||||
_[ Rektak@-*'ampo | |||||
_( R'ondak@-*'ampo | |||||
_) f'eRmaRondak@-*'ampo | |||||
_[ R'ektak@-*'ampo | |||||
_] f'eRmaRektak@-*'ampo | _] f'eRmaRektak@-*'ampo | ||||
_{ k'u@-*bak@-*'ampo | |||||
_} f'eRmaku@-*bak@-*'ampo | |||||
_{ k'uRbak@-*'ampo | |||||
_} f'eRmakuRbak@-*'ampo | |||||
_< angulk@-*'ampo | _< angulk@-*'ampo | ||||
_> f'eRmaangulk@-*'ampo | _> f'eRmaangulk@-*'ampo | ||||
_« du'oblaangulk@-*'ampo | |||||
_» f'eRmadu,oblaangulk@-*'ampo | |||||
_« du'oblak@-*'ampo | |||||
_» f'eRmadu,oblak@-*'ampo | |||||
v vo // not Roman numbers | v vo // not Roman numbers | ||||
bea $abbrev | bea $abbrev | ||||
bv bon,volu% | bv bon,volu% | ||||
ekz ekzemple $dot | ekz ekzemple $dot | ||||
(ekz-e) ekzemple | |||||
i.a 'i'a | i.a 'i'a | ||||
k.a kaIal'iaI | k.a kaIal'iaI | ||||
k.c kaItset'eRe | k.c kaItset'eRe | ||||
kun $u+ $pause | kun $u+ $pause | ||||
laŭ $u+ $brk | laŭ $u+ $brk | ||||
per $u+ $brk | per $u+ $brk | ||||
(pere de) pe@-*e%d'e $u+ $brk | |||||
(fare de) fa@-*e%d'e $u+ $brk | |||||
preter $u+ $brk | preter $u+ $brk | ||||
pri $u+ $pause | pri $u+ $pause | ||||
por $u+ $pause | por $u+ $pause |
_?? s'imbOlo | _?? s'imbOlo | ||||
_#32 Esp'aTjo | _#32 Esp'aTjo | ||||
// NOTE: Some of these pronunciations may still be in | |||||
// Spanish, and need to be changed. | |||||
// accent names | // accent names | ||||
_lig liQaD'u**a | _lig liQaD'u**a | ||||
_? TE*R'aRintE*R,oQaTj'On | _? TE*R'aRintE*R,oQaTj'On | ||||
_¡ aB**'iRaDmi**aTj'On | _¡ aB**'iRaDmi**aTj'On | ||||
_¿ aB**'iRintE*R,oQaTj'On | _¿ aB**'iRintE*R,oQaTj'On | ||||
_= iQw'al | |||||
_< men'ORke | _< men'ORke | ||||
_> maJ^'ORke | _> maJ^'ORke | ||||
_' apOst**'ofo | _' apOst**'ofo | ||||
_" kom'iJ^as | _" kom'iJ^as | ||||
_+ s'iQnOdesum'aR | _+ s'iQnOdesum'aR | ||||
_$ dolar | |||||
_# almoaD'iJ^a | |||||
_* aste*'isko | |||||
_- gJ^On | _- gJ^On | ||||
__ suB**aJ^'aDo | __ suB**aJ^'aDo | ||||
_/ ba*Ra | _/ ba*Ra | ||||
_« kom'iJ^as||iTkJ^'ERDas | _« kom'iJ^as||iTkJ^'ERDas | ||||
_» kom'iJ^as||dE**'EtSas | _» kom'iJ^as||dE**'EtSas | ||||
= iQw'al $max3 | |||||
+ m'as $max3 | |||||
# almOaD'iJ^a $max3 | |||||
* astE*'isko $max3 | |||||
. punto $max3 | |||||
^ TiRkumfl'exo | ^ TiRkumfl'exo | ||||
€ eU**o | € eU**o | ||||
% pOrTj'Ento | |||||
% pOrTj'Ento $max3 | |||||
& ampERs'ant | & ampERs'ant | ||||
@ a*R'oBa | @ a*R'oBa | ||||
/ ba*Ra | / ba*Ra |
$ d'Olar | $ d'Olar | ||||
+ m'as | |||||
_) ++ (_ masm'as | |||||
\+\+\+) + // ignore + after the first 3 | |||||
# almOaD'iJ^a | |||||
\#) # | |||||
__) - (_D m'EnOs | |||||
_) - (_D m'EnOs | |||||
A_) - (_D _ | A_) - (_D _ | ||||
C_) - (_D _ | C_) - (_D _ | ||||
--) - | |||||
* astE*'isko | |||||
*) * (* | |||||
** | |||||
**) * (_ _:: | |||||
. punto | |||||
. (. _: | |||||
\.) . | |||||
, (D kOma | , (D kOma |
// 2006-11-18 Gilles Casse <[email protected]> | // 2006-11-18 Gilles Casse <[email protected]> | ||||
// | // | ||||
// Updated 2008-12-03 Michel Such <[email protected]> | |||||
// Updated 2008-12-09 Michel Such <[email protected]> | |||||
// | // | ||||
// * Numbers, a few abbreviations and exceptions. | // * Numbers, a few abbreviations and exceptions. | ||||
// | // | ||||
(text aloud) tEkst||@la=wd | (text aloud) tEkst||@la=wd | ||||
ubuntu ubuntu | ubuntu ubuntu | ||||
up _^_en | up _^_en | ||||
yacht jO2t | |||||
yes _^_en | yes _^_en | ||||
// 2006-11-18 Gilles Casse <[email protected]> | // 2006-11-18 Gilles Casse <[email protected]> | ||||
// | // | ||||
// Updated: 2008-11-28 Michel Such <[email protected]> | |||||
// Updated: 2008-12-09 Michel Such <[email protected]> | |||||
// | // | ||||
// Letter classes: | // Letter classes: | ||||
.group q | .group q | ||||
q k // coq | q k // coq | ||||
_) qu' (AP3 k | _) qu' (AP3 k | ||||
_a) qu (a kw // aquarium | |||||
_a) qu (if kw // aquifère | |||||
_A) qu (idist ky // équidistant | |||||
_A) qu (ilat ky // équilatéral | |||||
_C) qu (a kw // squale square | |||||
_A) qu (a kw // équateur | |||||
dé) qu (a kw // adequate | |||||
_) qu (artz kw // quartz | |||||
_) qua (d kwA // quadrature | |||||
_a) qua kwA // aquarium | |||||
_a) qu (if ku // aquifère | |||||
_A) qui (dist kw^i // équidistant | |||||
_A) qui (lat kw^i // équilatéral | |||||
_C) qua kwA // squale square | |||||
_A) qua kwA // équateur | |||||
dé) qua kwA // adequate | |||||
_) qua (rtz kwA // quartz | |||||
qu k // quatre | qu k // quatre | ||||
_) que (_ k@ // que | _) que (_ k@ // que | ||||
n) q (_ k // cinq cent | n) q (_ k // cinq cent | ||||
.group y | .group y | ||||
y i // cryogénique myope | y i // cryogénique myope | ||||
_) y (A j // yak, yacht | _) y (A j // yak, yacht | ||||
_) yacht _^_en // yacht, yachtman | |||||
_) y (eu i // yeux | _) y (eu i // yeux | ||||
_) yahoo (P5 ia'u | _) yahoo (P5 ia'u |
?2 _0M1 h'il^,&d& | ?2 _0M1 h'il^,&d& | ||||
?2 _0MA1 h'il^,&de | ?2 _0MA1 h'il^,&de | ||||
?2 _1M1 h'il^,&dU | ?2 _1M1 h'il^,&dU | ||||
?2 _1MA1 jedn&||hiL&d& | |||||
?2 _1MA1 jedn&||hil^&d& | |||||
?3 _0M1 h'il^ad& | ?3 _0M1 h'il^ad& | ||||
?3 _0MA1 h'il^ade | ?3 _0MA1 h'il^ade | ||||
?3 _1M1 h'il^adU | ?3 _1M1 h'il^adU |
hi 59 148 | hi 59 148 | ||||
ta 17 151 | ta 17 151 | ||||
hu 23 119 | hu 23 119 | ||||
lv 28 125 | |||||
lv 29 126 | |||||
nl 28 126 | nl 28 126 | ||||
pl 19 116 | pl 19 116 | ||||
sk 28 134 | sk 28 134 | ||||
la 21 121 | la 21 121 | ||||
es 9 123 | es 9 123 | ||||
es_la 1 123 | es_la 1 123 | ||||
ca 9 124 | |||||
ca 11 125 | |||||
pt 28 139 | pt 28 139 | ||||
pt_pt 20 139 | pt_pt 20 139 | ||||
ro 36 146 | ro 36 146 | ||||
rw 15 129 | rw 15 129 | ||||
ko 18 158 | ko 18 158 | ||||
da 15 133 | da 15 133 | ||||
sq 31 127 | |||||
sq 35 130 | |||||
ml 13 150 | ml 13 150 | ||||
kn 15 150 | kn 15 150 | ||||
bn 59 153 | bn 59 153 | ||||
[d] el | [d] el | ||||
[d] sw | [d] sw | ||||
[d] id | [d] id | ||||
[d] sq | |||||
[d] bn | [d] bn | ||||
[d.] bn | [d.] bn | ||||
[d`] om | [d`] om | ||||
[d] el | [d] el | ||||
[d] sw | [d] sw | ||||
[d] id | [d] id | ||||
[d] sq | |||||
[d] bn | [d] bn | ||||
[d.] bn | [d.] bn | ||||
[d`] om | [d`] om | ||||
[d] el | [d] el | ||||
[d] sw | [d] sw | ||||
[d] id | [d] id | ||||
[d] sq | |||||
[d] bn | [d] bn | ||||
[d.] bn | [d.] bn | ||||
[d[] ga | [d[] ga | ||||
[d] el | [d] el | ||||
[d] sw | [d] sw | ||||
[d] id | [d] id | ||||
[d] sq | |||||
[d] bn | [d] bn | ||||
[d.] bn | [d.] bn | ||||
[d[] ga | [d[] ga | ||||
[(e)] en_klatt | [(e)] en_klatt | ||||
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/li [(i)] base | l/li [(i)] base | ||||
[i] fr | [i] fr | ||||
[i:] fr | [i:] fr | ||||
[l] fr | [l] fr | ||||
[l] la | [l] la | ||||
[l;] ro | [l;] ro | ||||
[l] sq | |||||
[L] sq | |||||
l/lo [(o)] base | l/lo [(o)] base | ||||
[O] fr | [O] fr | ||||
[o] fr | [o] fr | ||||
[o2] fr | [o2] fr | ||||
[(o)] en_klatt | [(o)] en_klatt | ||||
l^/l_rfx [l.] hi | l^/l_rfx [l.] hi | ||||
[l.] sq | |||||
[l.] bn | [l.] bn | ||||
l/lu [(u)] base | l/lu [(u)] base | ||||
[u] fr | [u] fr | ||||
[l] ca | [l] ca | ||||
[l] pt | [l] pt | ||||
[l;] ro | [l;] ro | ||||
[l] sq | |||||
[L] sq | |||||
l/xl [(@)] base | l/xl [(@)] base | ||||
[(a)] base | [(a)] base | ||||
[(e)] base | [(e)] base | ||||
r3/r_u [(u)] base | r3/r_u [(u)] base | ||||
[(u)] en_klatt | [(u)] en_klatt | ||||
r3/r_uvl [r"] base | r3/r_uvl [r"] base | ||||
r3/r_uvl.wav [r"] base | |||||
r3/rx [*] base | r3/rx [*] base | ||||
[r/] base | [r/] base | ||||
[r/] af | [r/] af | ||||
[o2] fr | [o2] fr | ||||
[i:] fr | [i:] fr | ||||
[u:] fr | [u:] fr | ||||
[wA] fr | |||||
[A~] fr | [A~] fr | ||||
ufric/ch [C] base | ufric/ch [C] base | ||||
[J^] base | [J^] base | ||||
[t] sk | [t] sk | ||||
[t] el | [t] el | ||||
[th] zh | [th] zh | ||||
[t2] sq | |||||
[t3] sq | |||||
[t.] bn | [t.] bn | ||||
[t.h] bn | [t.h] bn | ||||
ustop/t_dnt [t] base | ustop/t_dnt [t] base | ||||
[t[] vi | [t[] vi | ||||
[t] sw | [t] sw | ||||
[t`] ko | [t`] ko | ||||
[t5] sq | |||||
[t] bn | [t] bn | ||||
[t[] ga | [t[] ga | ||||
ustop/t_dnt2 [t[] vi | ustop/t_dnt2 [t[] vi | ||||
ustop/t_ejc [t`] om | ustop/t_ejc [t`] om | ||||
ustop/t_hard [t2] sq | |||||
ustop/t_hard_ [t2] sq | |||||
ustop/t_hi [t] hi | ustop/t_hi [t] hi | ||||
[t5] sq | |||||
[t] bn | [t] bn | ||||
[th] bn | [th] bn | ||||
ustop/t_pzd [t;] pl | ustop/t_pzd [t;] pl | ||||
[t] lv | [t] lv | ||||
[t] sk | [t] sk | ||||
[t] el | [t] el | ||||
[t2] sq | |||||
[t3] sq | |||||
[t.] bn | [t.] bn | ||||
ustop/tsh_pzd [tS;] zh | ustop/tsh_pzd [tS;] zh | ||||
ustop/tsh_pzd_unasp [tS;] zh | ustop/tsh_pzd_unasp [tS;] zh | ||||
[dZ;] hr | [dZ;] hr | ||||
ustop/t_sr [d] sr | ustop/t_sr [d] sr | ||||
[t] sr | [t] sr | ||||
[t4] sq | |||||
ustop/ts_rfx [ts.] zh | ustop/ts_rfx [ts.] zh | ||||
ustop/ts_rfx_unasp [ts.] zh | ustop/ts_rfx_unasp [ts.] zh | ||||
ustop/ts_sr [tS;] sr | ustop/ts_sr [tS;] sr | ||||
vdiph2/ei_3 [i:] en_wm | vdiph2/ei_3 [i:] en_wm | ||||
vdiph2/ei_4 [eI] en_us | vdiph2/ei_4 [eI] en_us | ||||
[ei] zh | [ei] zh | ||||
[eI] sq | |||||
vdiph2/eo [eo] ro | vdiph2/eo [eo] ro | ||||
vdiph2/e[u [e[u] ro | vdiph2/e[u [e[u] ro | ||||
vdiph2/i@ [i@] en_n | vdiph2/i@ [i@] en_n | ||||
[eI] is | [eI] is | ||||
[eI] vi | [eI] vi | ||||
[ei] zhy | [ei] zhy | ||||
[eI] sq | |||||
vdiph/eu [eU] base2 | vdiph/eu [eU] base2 | ||||
[eU] en | [eU] en | ||||
[eU] cy | [eU] cy | ||||
[aa] en_wm | [aa] en_wm | ||||
[a] cy | [a] cy | ||||
[a] de | [a] de | ||||
[A] fr | |||||
[a] ta | [a] ta | ||||
[a:] hu | [a:] hu | ||||
[a:] nl | [a:] nl | ||||
[A@] en_wi | [A@] en_wi | ||||
[aa] en_wi | [aa] en_wi | ||||
[a] eo | [a] eo | ||||
[a] ca | |||||
[A] pt | [A] pt | ||||
[a] pt_pt | [a] pt_pt | ||||
[a] ro | [a] ro | ||||
[A] om | [A] om | ||||
vowel/a_6 [a] fr | vowel/a_6 [a] fr | ||||
[a2] fr | [a2] fr | ||||
[a] ca | |||||
[a:] vi | [a:] vi | ||||
vowel/aa [a] fi | vowel/aa [a] fi | ||||
[A] fr_ca | [A] fr_ca | ||||
vowel/aa_9 [a:] hi | vowel/aa_9 [a:] hi | ||||
[a:] bn | [a:] bn | ||||
[a] ne | [a] ne | ||||
vowel/a_en [A] fr | |||||
vowel/@_bck [@] hi | vowel/@_bck [@] hi | ||||
[@/] hi | [@/] hi | ||||
[@] zh | [@] zh | ||||
[E] it | [E] it | ||||
[E] es | [E] es | ||||
[E] ca | [E] ca | ||||
[E2] ca | |||||
[E] pt_pt | [E] pt_pt | ||||
[E] no | [E] no | ||||
[E] is | [E] is | ||||
vowel/ii_4 [I] en | vowel/ii_4 [I] en | ||||
[I2] en | [I2] en | ||||
[I] en_us | [I] en_us | ||||
vowel/ii_5 [I] en_wi | |||||
[I2] en_wi | |||||
[I] la | |||||
vowel/ii_5 [I] la | |||||
[i] zh | [i] zh | ||||
vowel/ii_6 [I] en_wm | vowel/ii_6 [I] en_wm | ||||
[I2] en_wm | [I2] en_wm | ||||
[I] en_wi | |||||
[I2] en_wi | |||||
[I] sr | [I] sr | ||||
[I] pt | [I] pt | ||||
[y] pt | [y] pt | ||||
[u] hr | [u] hr | ||||
[U] it | [U] it | ||||
[u] it | [u] it | ||||
[u] ca | |||||
[u] pt | [u] pt | ||||
[u:] sv | [u:] sv | ||||
[u:] no | [u:] no | ||||
vowel/V_4 [V] en_sc | vowel/V_4 [V] en_sc | ||||
[V] da | [V] da | ||||
vowel/V_6 [V] en_us | vowel/V_6 [V] en_us | ||||
[a#] lv | |||||
vowel/y [y:] en | vowel/y [y:] en | ||||
[y:] de | [y:] de | ||||
[y] fi | [y] fi | ||||
[r] fr | [r] fr | ||||
[Q2] hy | [Q2] hy | ||||
vwl_fr/@R4 [R] fr | vwl_fr/@R4 [R] fr | ||||
[r] fr | |||||
[r2] fr | [r2] fr | ||||
[Q2] hy | [Q2] hy | ||||
vwl_fr/@R5 [r] fr | vwl_fr/@R5 [r] fr | ||||
[d] el | [d] el | ||||
[d] is | [d] is | ||||
[d] id | [d] id | ||||
[d] sq | |||||
[d.] bn | [d.] bn | ||||
[d`] om | [d`] om | ||||
[d] en_klatt | [d] en_klatt | ||||
[d] is | [d] is | ||||
[d] sw | [d] sw | ||||
[d] id | [d] id | ||||
[d] sq | |||||
[d] bn | [d] bn | ||||
[d.] bn | [d.] bn | ||||
[d`] om | [d`] om |
phoneme a | phoneme a | ||||
vowel starttype (a) endtype (a) | vowel starttype (a) endtype (a) | ||||
length 180 | length 180 | ||||
formants vowel/a_2 | |||||
formants vowel/a_6 | |||||
reduceto a# 2 | reduceto a# 2 | ||||
endphoneme | endphoneme | ||||
reduceto @ 2 | reduceto @ 2 | ||||
endphoneme | endphoneme | ||||
phoneme E2 // don't reduce | |||||
vowel starttype (e) endtype (e) | |||||
length 180 | |||||
formants vowel/e_mid | |||||
endphoneme | |||||
phoneme O | phoneme O | ||||
vowel starttype (o) endtype (o) | vowel starttype (o) endtype (o) | ||||
length 170 | length 170 | ||||
unstressed | unstressed | ||||
endphoneme | endphoneme | ||||
phoneme u | |||||
vowel starttype (u) endtype (u) | |||||
length 160 | |||||
formants vowel/u_bck | |||||
reduceto U 2 | |||||
endphoneme | |||||
phoneme l | phoneme l |
length 130 | length 130 | ||||
endphoneme | endphoneme | ||||
phoneme @/ // Schwa, ebd of word | |||||
phoneme @/ // Schwa, end of word | |||||
vowel starttype (@) endtype (@) | vowel starttype (@) endtype (@) | ||||
formants vowel/@_6 | formants vowel/@_6 | ||||
unstressed | unstressed |
phoneme I | phoneme I | ||||
vowel starttype (i) endtype (i) | vowel starttype (i) endtype (i) | ||||
length 140 | length 140 | ||||
formants vowel/ii_5 | |||||
formants vowel/ii_6 | |||||
linkout ; | linkout ; | ||||
endphoneme | endphoneme | ||||
vowel starttype (i) endtype (i) | vowel starttype (i) endtype (i) | ||||
unstressed | unstressed | ||||
length 140 | length 140 | ||||
formants vowel/ii_5 | |||||
formants vowel/ii_6 | |||||
linkout ; | linkout ; | ||||
endphoneme | endphoneme | ||||
formants vwl_fr/w_a | formants vwl_fr/w_a | ||||
after l l/lo-10 | after l l/lo-10 | ||||
before l/ DFT-10+l/l_a | before l/ DFT-10+l/l_a | ||||
before (r) DFT+r/xr | |||||
before r/2 DFT+vwl_fr/r_a | before r/2 DFT+vwl_fr/r_a | ||||
endphoneme | endphoneme | ||||
phoneme A // same as [a] | phoneme A // same as [a] | ||||
vowel starttype (a) endtype (a) | vowel starttype (a) endtype (a) | ||||
length 166 | length 166 | ||||
formants vowel/a | |||||
formants vowel/a_en | |||||
endphoneme | endphoneme | ||||
phoneme r | phoneme r | ||||
liquid rfx starttype (r) endtype (r) | liquid rfx starttype (r) endtype (r) | ||||
vowelin f1=0 f2=1600 -300 300 f3=-200 80 | |||||
vowelout f1=2 f2=1600 -300 300 f3=-200 80 brk | |||||
vowelin f1=0 f2=1600 -300 300 f3=100 80 | |||||
vowelout f1=1 f2=1600 -300 300 f3=100 80 brk | |||||
length 100 | length 100 | ||||
lengthmod 7 | lengthmod 7 | ||||
beforenotvowel r/2 | beforenotvowel r/2 | ||||
formants vwl_fr/@R3+r3/rx%30 | formants vwl_fr/@R3+r3/rx%30 | ||||
after @2 vwl_fr/@R5+r3/rx%40 | after @2 vwl_fr/@R5+r3/rx%40 | ||||
after (u) vwl_fr/@R5+r3/rx%30 | after (u) vwl_fr/@R5+r3/rx%30 | ||||
after (e) vwl_fr/@R4+r3/rx%20 | |||||
after (e) vwl_fr/@R5+r3/rx%25 | |||||
endphoneme | endphoneme | ||||
length 100 | length 100 | ||||
lengthmod 7 | lengthmod 7 | ||||
beforenotvowel NULL | beforenotvowel NULL | ||||
formants vwl_fr/@R4+r3/rx%15 | |||||
formants vwl_fr/@R4+r3/rx%20 | |||||
endphoneme | endphoneme | ||||
phoneme R // After consonnants | phoneme R // After consonnants | ||||
vcd frc | vcd frc | ||||
vowelin f1=0 f2=1600 -300 300 f3=-200 80 | |||||
vowelin f1=0 f2=1600 -300 300 f3=100 80 | |||||
length 100 | length 100 | ||||
lengthmod 7 | lengthmod 7 | ||||
beforenotvowel r/2 | beforenotvowel r/2 | ||||
phoneme r/2 // variant of [r] when not preceding a vowel | phoneme r/2 // variant of [r] when not preceding a vowel | ||||
liquid | liquid | ||||
vowelout f1=2 f2=1600 -300 300 f3=-200 80 brk | |||||
vowelout f1=2 f2=1600 -300 300 f3=100 80 brk | |||||
length 100 | length 100 | ||||
lengthmod 2 | lengthmod 2 | ||||
formants r3/r_2+r3/rx%20 | formants r3/r_2+r3/rx%20 |
vowel starttype (a) endtype (a) | vowel starttype (a) endtype (a) | ||||
length 120 | length 120 | ||||
formants vowel/aa | formants vowel/aa | ||||
reduceto a# 0 | |||||
endphoneme | endphoneme | ||||
phoneme a: | phoneme a: | ||||
formants vowel/aa | formants vowel/aa | ||||
endphoneme | endphoneme | ||||
phoneme a# | |||||
vowel starttype (a) endtype (a) | |||||
length 120 | |||||
formants vowel/V_6 | |||||
endphoneme | |||||
phoneme o | phoneme o | ||||
vowel starttype (o) endtype (o) | vowel starttype (o) endtype (o) |
after ; j2/j2@ | after ; j2/j2@ | ||||
after w w/w@ | after w w/w@ | ||||
after l l/l@ | after l l/l@ | ||||
after L l/l@ | |||||
after l^ l^/j2@ | after l^ l^/j2@ | ||||
after #r r/r@-15 | after #r r/r@-15 | ||||
after r- r2/r2@ | after r- r2/r2@ | ||||
after ; j2/j2a | after ; j2/j2a | ||||
after w w/wa | after w w/wa | ||||
after l l/la | after l l/la | ||||
after L l/la | |||||
after l^ l^/j2a | after l^ l^/j2a | ||||
after #r r/ra-15 | after #r r/ra-15 | ||||
after r- r2/r2a | after r- r2/r2a | ||||
after ; j2/j2e | after ; j2/j2e | ||||
after w w/we | after w w/we | ||||
after l l/le | after l l/le | ||||
after L l/le | |||||
after l^ l^/j2e | after l^ l^/j2e | ||||
after #r r/re-15 | after #r r/re-15 | ||||
after r- r2/r2e | after r- r2/r2e | ||||
after ; j2/j2i | after ; j2/j2i | ||||
after w w/wi | after w w/wi | ||||
after l l/li-10 | after l l/li-10 | ||||
after L l/li | |||||
after l^ l^/j2i | after l^ l^/j2i | ||||
after #r r/ri-15 | after #r r/ri-15 | ||||
after r- r2/r2i | after r- r2/r2i | ||||
after ; j2/j2o | after ; j2/j2o | ||||
after w w/wo | after w w/wo | ||||
after l l/lo | after l l/lo | ||||
after L l/lo | |||||
after l^ l^/j2o | after l^ l^/j2o | ||||
after #r r/ro-15 | after #r r/ro-15 | ||||
after r- r2/r2o | after r- r2/r2o | ||||
after ; j2/j2u | after ; j2/j2u | ||||
after w w/wu | after w w/wu | ||||
after l l/lu | after l l/lu | ||||
after L l/lu | |||||
after l^ l^/j2u | after l^ l^/j2u | ||||
after #r r/ru-15 | after #r r/ru-15 | ||||
after r- r2/r2u | after r- r2/r2u | ||||
phoneme r" // uvular trill | phoneme r" // uvular trill | ||||
vcd uvl frc | vcd uvl frc | ||||
formants r3/r_uvl+r3/r_uvl%75 | |||||
before _ r3/r_uvl+r3/r_uvl%50 | |||||
formants r3/r_uvl+r3/r_uvl.wav%75 | |||||
before _ r3/r_uvl+r3/r_uvl.wav%50 | |||||
lengthmod 6 | lengthmod 6 | ||||
endphoneme | endphoneme | ||||
phoneme L // Welsh "ll" | phoneme L // Welsh "ll" | ||||
vls alv frc | vls alv frc | ||||
starttype l endtype l | |||||
length 100 | length 100 | ||||
lengthmod 3 | lengthmod 3 | ||||
wave ufric/ll%80 | wave ufric/ll%80 |
{ | { | ||||
len = 50 / 2; // defaults for transition into vowel | len = 50 / 2; // defaults for transition into vowel | ||||
rms = 25 / 2; | rms = 25 / 2; | ||||
if(ph->type == phSTOP) | |||||
{ | |||||
len = 42 / 2; // defaults for transition into vowel | |||||
rms = 30 / 2; | |||||
} | |||||
} | } | ||||
else | else | ||||
if(which==2) | if(which==2) |
// match the word against a list of utf-8 strings | // match the word against a list of utf-8 strings | ||||
char *p; | char *p; | ||||
char *w; | char *w; | ||||
int len; | |||||
int len=0; | |||||
p = letterGroups[group]; | p = letterGroups[group]; | ||||
if(p == NULL) | if(p == NULL) |
} | } | ||||
if(field & 4) | if(field & 4) | ||||
{ | { | ||||
value.Printf(_T("%3d"),sf->peaks[ix].pkwidth); | |||||
value.Printf(_T("%3d"),sf->peaks[ix].pkwidth/2); | |||||
t_pkwidth[ix]->SetValue(value); | t_pkwidth[ix]->SetValue(value); | ||||
value.Printf(_T("%3d"),sf->peaks[ix].pkright); | |||||
value.Printf(_T("%3d"),sf->peaks[ix].pkright/2); | |||||
t_pkright[ix]->SetValue(value); | t_pkright[ix]->SetValue(value); | ||||
} | } | ||||
} | } |
} | } | ||||
{ | { | ||||
FILE *f; | |||||
//FILE *f; | |||||
//f=fopen("klatt_log","a"); | //f=fopen("klatt_log","a"); | ||||
//fprintf(f,"len %4d (%3d %4d %4d) (%3d %4d %4d)\n",length,fr1->ffreq[1],fr1->ffreq[2],fr1->ffreq[3],fr2->ffreq[1],fr2->ffreq[2],fr2->ffreq[3]); | //fprintf(f,"len %4d (%3d %4d %4d) (%3d %4d %4d)\n",length,fr1->ffreq[1],fr1->ffreq[2],fr1->ffreq[3],fr2->ffreq[1],fr2->ffreq[2],fr2->ffreq[3]); | ||||
//fclose(f); | //fclose(f); |
if((langopts.accents & 1) || (accents_tab[accent1].flags & 1)) | if((langopts.accents & 1) || (accents_tab[accent1].flags & 1)) | ||||
sprintf(ph_buf,"%s%c%c%s", ph_accent1, phonPAUSE_VSHORT, phonSTRESS_P, ph_letter1); | sprintf(ph_buf,"%s%c%c%s", ph_accent1, phonPAUSE_VSHORT, phonSTRESS_P, ph_letter1); | ||||
else | else | ||||
sprintf(ph_buf,"%s%c%s%c", ph_letter1, phonPAUSE_VSHORT, ph_accent1, phonPAUSE_VSHORT); | |||||
sprintf(ph_buf,"%c%s%c%s%c", phonSTRESS_2, ph_letter1, phonPAUSE_VSHORT, ph_accent1, phonPAUSE_VSHORT); | |||||
} | } | ||||
} | } | ||||
} | } |
void ToggleMarker(int n); | void ToggleMarker(int n); | ||||
void ApplyVoiceMods(); | void ApplyVoiceMods(); | ||||
void MakeWave(int peaks, PitchEnvelope &pitch, int amplitude, int duration); | |||||
void MakeWaveF(int peaks, PitchEnvelope &pitch, int amplitude, int duration); | |||||
void MakeHtab(int numh, int *htab, int pitch); | void MakeHtab(int numh, int *htab, int pitch); | ||||
double GetRms(int amp); | double GetRms(int amp); | ||||
void KlattDefaults(); | void KlattDefaults(); |
case WXK_F1: | case WXK_F1: | ||||
// make and play selected | // make and play selected | ||||
ReadDialogValues(); | ReadDialogValues(); | ||||
sf->MakeWave(0,voicedlg->pitchenv,spectseq->amplitude,spectseq->duration); | |||||
sf->MakeWaveF(0,voicedlg->pitchenv,spectseq->amplitude,spectseq->duration); | |||||
break; | break; | ||||
case WXK_F3: | case WXK_F3: | ||||
// make and play selected | // make and play selected | ||||
ReadDialogValues(); | ReadDialogValues(); | ||||
sf->MakeWave(1,voicedlg->pitchenv,spectseq->amplitude,spectseq->duration); | |||||
sf->MakeWaveF(1,voicedlg->pitchenv,spectseq->amplitude,spectseq->duration); | |||||
break; | break; | ||||
default: | default: |
if((start==end) || (total_length == 0)) | if((start==end) || (total_length == 0)) | ||||
{ | { | ||||
sp1->MakeWave(0,voicedlg->pitchenv,amplitude,duration); | |||||
sp1->MakeWaveF(0,voicedlg->pitchenv,amplitude,duration); | |||||
return; | return; | ||||
} | } | ||||
// if((start==end) || (total_length == 0)) | // if((start==end) || (total_length == 0)) | ||||
// { | // { | ||||
// sp1->MakeWave(1, pitch, amplitude, duration); | |||||
// sp1->MakeWaveF(1, pitch, amplitude, duration); | |||||
// return; | // return; | ||||
// } | // } | ||||
} // end of SpectFrame::MakeHtab | } // end of SpectFrame::MakeHtab | ||||
void SpectFrame::MakeWave(int control, PitchEnvelope &pitche, int amplitude, int duration) | |||||
void SpectFrame::MakeWaveF(int control, PitchEnvelope &pitche, int amplitude, int duration) | |||||
{//====================================================================================== | {//====================================================================================== | ||||
// amplitude: percentage adjustment | // amplitude: percentage adjustment | ||||
int ipitch; | int ipitch; | ||||
int pbase; | int pbase; | ||||
char *fname_speech; | char *fname_speech; | ||||
// USHORT htab0[600]; | |||||
KlattInit(); | KlattInit(); | ||||
SpeakNextClause(NULL,NULL,2); // stop speaking file | SpeakNextClause(NULL,NULL,2); // stop speaking file | ||||
else | else | ||||
{ | { | ||||
#ifdef SPECT_EDITOR | #ifdef SPECT_EDITOR | ||||
int maxh; | |||||
USHORT htab0[600]; | |||||
maxh = nx; | maxh = nx; | ||||
if(maxh >= 600) | if(maxh >= 600) | ||||
maxh = 600-1; | maxh = 600-1; | ||||
for(ix=0; ix<=maxh; ix++) | for(ix=0; ix<=maxh; ix++) | ||||
htab0[ix] = 0; | htab0[ix] = 0; | ||||
SetSynthHtab(20,htab0,maxh,dx,spect,maxh,dx); | |||||
MakeWaveFile(); | |||||
// SetSynthHtab(20,htab0,maxh,dx,spect,maxh,dx); | |||||
SetSynthHtab(20,spect,maxh,dx,spect,maxh,dx); | |||||
MakeWaveFile(0); | |||||
SetSynthHtab(length,spect,maxh,dx,spect,maxh,dx); | SetSynthHtab(length,spect,maxh,dx,spect,maxh,dx); | ||||
MakeWaveFile(); | |||||
MakeWaveFile(0); | |||||
SetSynthHtab(30,spect,maxh,dx,htab0,maxh,dx); | SetSynthHtab(30,spect,maxh,dx,htab0,maxh,dx); | ||||
MakeWaveFile(); | |||||
MakeWaveFile(0); | |||||
#endif | #endif | ||||
} | } | ||||
#include "translate.h" | #include "translate.h" | ||||
#include "wave.h" | #include "wave.h" | ||||
const char *version_string = "1.39.36 03.Dec.08"; | |||||
const char *version_string = "1.39.39 11.Dec.08"; | |||||
const int version_phdata = 0x013900; | const int version_phdata = 0x013900; | ||||
int option_device_number = -1; | int option_device_number = -1; |
SOUND_ICON soundicon_tab[N_SOUNDICON_TAB]; | SOUND_ICON soundicon_tab[N_SOUNDICON_TAB]; | ||||
#define RMS_GLOTTAL1 35 // vowel before glottal stop | #define RMS_GLOTTAL1 35 // vowel before glottal stop | ||||
#define RMS_START 28 // 14 - 30 | |||||
#define RMS_START 28 // 28 | |||||
#define VOWEL_FRONT_LENGTH 50 | #define VOWEL_FRONT_LENGTH 50 | ||||
int name2 = 0; | int name2 = 0; | ||||
Translator *tr; | Translator *tr; | ||||
static const unsigned char stress_amps_sk[8] = {17,17, 20,20, 20,24, 24,22 }; | |||||
static const unsigned char stress_amps_sk[8] = {17,17, 20,20, 20,22, 22,21 }; | |||||
static const short stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210}; | static const short stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210}; | ||||
// convert name string into a word of up to 4 characters, for the switch() | // convert name string into a word of up to 4 characters, for the switch() | ||||
case L_grc: // Ancient Greek | case L_grc: // Ancient Greek | ||||
{ | { | ||||
static const short stress_lengths_el[8] = {155, 180, 210, 210, 0, 0, 270, 300}; | static const short stress_lengths_el[8] = {155, 180, 210, 210, 0, 0, 270, 300}; | ||||
static const unsigned char stress_amps_el[8] = {15,12, 20,20, 20,24, 24,22 }; // 'diminished' is used to mark a quieter, final unstressed syllable | |||||
static const unsigned char stress_amps_el[8] = {15,12, 20,20, 20,22, 22,21 }; // 'diminished' is used to mark a quieter, final unstressed syllable | |||||
// character codes offset by 0x380 | // character codes offset by 0x380 | ||||
static const char el_vowels[] = {0x10,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x35,0x37,0x39,0x3f,0x45,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0}; | static const char el_vowels[] = {0x10,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x35,0x37,0x39,0x3f,0x45,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0}; | ||||
case L('e','o'): | case L('e','o'): | ||||
{ | { | ||||
static const short stress_lengths_eo[8] = {145, 145, 230, 170, 0, 0, 360, 370}; | static const short stress_lengths_eo[8] = {145, 145, 230, 170, 0, 0, 360, 370}; | ||||
static const unsigned char stress_amps_eo[] = {16,14, 20,20, 20,24, 24,22 }; | |||||
static const unsigned char stress_amps_eo[] = {16,14, 20,20, 20,22, 22,21 }; | |||||
static const wchar_t eo_char_apostrophe[2] = {'l',0}; | static const wchar_t eo_char_apostrophe[2] = {'l',0}; | ||||
tr = new Translator(); | tr = new Translator(); | ||||
case L('n','e'): // Nepali | case L('n','e'): // Nepali | ||||
{ | { | ||||
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,24, 24,22 }; | |||||
static const unsigned char stress_amps_hi[8] = {17,14, 20,19, 20,22, 22,21 }; | |||||
tr = new Translator(); | tr = new Translator(); | ||||
SetupTranslator(tr,stress_lengths_hi,stress_amps_hi); | SetupTranslator(tr,stress_lengths_hi,stress_amps_hi); | ||||
case L('b','s'): // Bosnian | case L('b','s'): // Bosnian | ||||
case L('s','r'): // Serbian | case L('s','r'): // Serbian | ||||
{ | { | ||||
static const unsigned char stress_amps_hr[8] = {17,17, 20,20, 20,24, 24,22 }; | |||||
static const unsigned char stress_amps_hr[8] = {17,17, 20,20, 20,22, 22,21 }; | |||||
static const short stress_lengths_hr[8] = {180,160, 200,200, 0,0, 220,230}; | static const short stress_lengths_hr[8] = {180,160, 200,200, 0,0, 220,230}; | ||||
static const short stress_lengths_sr[8] = {160,150, 200,200, 0,0, 250,260}; | static const short stress_lengths_sr[8] = {160,150, 200,200, 0,0, 250,260}; | ||||
case L('h','u'): // Hungarian | case L('h','u'): // Hungarian | ||||
{ | { | ||||
static const unsigned char stress_amps_hu[8] = {17,17, 19,19, 20,24, 24,22 }; | |||||
static const unsigned char stress_amps_hu[8] = {17,17, 19,19, 20,22, 22,21 }; | |||||
static const short stress_lengths_hu[8] = {185,195, 195,190, 0,0, 210,220}; | static const short stress_lengths_hu[8] = {185,195, 195,190, 0,0, 210,220}; | ||||
tr = new Translator(); | tr = new Translator(); | ||||
SetLetterBits(tr,LETTERGP_A,hy_vowels); | SetLetterBits(tr,LETTERGP_A,hy_vowels); | ||||
SetLetterBits(tr,LETTERGP_C,hy_consonants); | SetLetterBits(tr,LETTERGP_C,hy_consonants); | ||||
tr->langopts.max_initial_consonants = 6; | tr->langopts.max_initial_consonants = 6; | ||||
tr->langopts.numbers = 0x409; | |||||
} | } | ||||
break; | break; | ||||
case L('k','u'): // Kurdish | case L('k','u'): // Kurdish | ||||
{ | { | ||||
static const unsigned char stress_amps_ku[8] = {18,18, 20,20, 20,24, 24,22 }; | |||||
static const unsigned char stress_amps_ku[8] = {18,18, 20,20, 20,22, 22,21 }; | |||||
static const short stress_lengths_ku[8] = {180,180, 190,180, 0,0, 230,240}; | static const short stress_lengths_ku[8] = {180,180, 190,180, 0,0, 230,240}; | ||||
tr = new Translator(); | tr = new Translator(); | ||||
case L('l','v'): // latvian | case L('l','v'): // latvian | ||||
{ | { | ||||
static const unsigned char stress_amps_lv[8] = {17,14, 20,20, 20,22, 22,22 }; | |||||
static const short stress_lengths_lv[8] = {180,140, 210,210, 0,0, 210,210}; | |||||
static const unsigned char stress_amps_lv[8] = {17,13, 20,20, 20,22, 22,21 }; | |||||
static const short stress_lengths_lv[8] = {180,130, 210,210, 0,0, 210,210}; | |||||
tr = new Translator(); | tr = new Translator(); | ||||
SetupTranslator(tr,stress_lengths_lv,stress_amps_lv); | SetupTranslator(tr,stress_lengths_lv,stress_amps_lv); | ||||
{ | { | ||||
static wchar_t vowels_cyrillic[] = {0x440, // also include 'р' [R] | static wchar_t vowels_cyrillic[] = {0x440, // also include 'р' [R] | ||||
0x430,0x435,0x438,0x439,0x43e,0x443,0x44b,0x44d,0x44e,0x44f,0x450,0x451,0x456,0x457,0x45d,0x45e,0}; | 0x430,0x435,0x438,0x439,0x43e,0x443,0x44b,0x44d,0x44e,0x44f,0x450,0x451,0x456,0x457,0x45d,0x45e,0}; | ||||
static const unsigned char stress_amps_mk[8] = {17,17, 20,20, 20,24, 24,22 }; | |||||
static const unsigned char stress_amps_mk[8] = {17,17, 20,20, 20,22, 22,21 }; | |||||
static const short stress_lengths_mk[8] = {180,160, 200,200, 0,0, 220,230}; | static const short stress_lengths_mk[8] = {180,160, 200,200, 0,0, 220,230}; | ||||
tr = new Translator(); | tr = new Translator(); | ||||
case L('p','l'): // Polish | case L('p','l'): // Polish | ||||
{ | { | ||||
static const short stress_lengths_pl[8] = {160, 190, 175, 175, 0, 0, 200, 210}; | static const short stress_lengths_pl[8] = {160, 190, 175, 175, 0, 0, 200, 210}; | ||||
static const unsigned char stress_amps_pl[8] = {17,13, 19,19, 20,24, 24,22 }; // 'diminished' is used to mark a quieter, final unstressed syllable | |||||
static const unsigned char stress_amps_pl[8] = {17,13, 19,19, 20,22, 22,21 }; // 'diminished' is used to mark a quieter, final unstressed syllable | |||||
tr = new Translator(); | tr = new Translator(); | ||||
SetupTranslator(tr,stress_lengths_pl,stress_amps_pl); | SetupTranslator(tr,stress_lengths_pl,stress_amps_pl); | ||||
case L('p','t'): // Portuguese | case L('p','t'): // Portuguese | ||||
{ | { | ||||
static const short stress_lengths_pt[8] = {180, 125, 210, 210, 0, 0, 270, 295}; | static const short stress_lengths_pt[8] = {180, 125, 210, 210, 0, 0, 270, 295}; | ||||
static const unsigned char stress_amps_pt[8] = {16,13, 19,19, 20,24, 24,22 }; // 'diminished' is used to mark a quieter, final unstressed syllable | |||||
static const unsigned char stress_amps_pt[8] = {16,13, 19,19, 20,22, 22,21 }; // 'diminished' is used to mark a quieter, final unstressed syllable | |||||
tr = new Translator(); | tr = new Translator(); | ||||
SetupTranslator(tr,stress_lengths_pt,stress_amps_pt); | SetupTranslator(tr,stress_lengths_pt,stress_amps_pt); | ||||
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 | ||||
case L('r','o'): // Romanian | case L('r','o'): // Romanian | ||||
{ | { | ||||
static const short stress_lengths_ro[8] = {170, 170, 180, 180, 0, 0, 240, 260}; | static const short stress_lengths_ro[8] = {170, 170, 180, 180, 0, 0, 240, 260}; | ||||
static const unsigned char stress_amps_ro[8] = {15,13, 18,18, 20,22, 22,22 }; | |||||
static const unsigned char stress_amps_ro[8] = {15,13, 18,18, 20,22, 22,21 }; | |||||
tr = new Translator(); | tr = new Translator(); | ||||
SetupTranslator(tr,stress_lengths_ro,stress_amps_ro); | SetupTranslator(tr,stress_lengths_ro,stress_amps_ro); | ||||
case L('s','v'): // Swedish | case L('s','v'): // Swedish | ||||
{ | { | ||||
static const unsigned char stress_amps_sv[] = {16,16, 20,20, 20,24, 24,22 }; | |||||
static const unsigned char stress_amps_sv[] = {16,16, 20,20, 20,22, 22,21 }; | |||||
static const short stress_lengths_sv[8] = {160,135, 220,220, 0,0, 250,280}; | static const short stress_lengths_sv[8] = {160,135, 220,220, 0,0, 250,280}; | ||||
tr = new Translator(); | tr = new Translator(); | ||||
SetupTranslator(tr,stress_lengths_sv,stress_amps_sv); | SetupTranslator(tr,stress_lengths_sv,stress_amps_sv); | ||||
case L('s','w'): // Swahili | case L('s','w'): // Swahili | ||||
{ | { | ||||
static const short stress_lengths_sw[8] = {160, 170, 200, 200, 0, 0, 320, 340}; | static const short stress_lengths_sw[8] = {160, 170, 200, 200, 0, 0, 320, 340}; | ||||
static const unsigned char stress_amps_sw[] = {16,12, 19,19, 20,24, 24,22 }; | |||||
static const unsigned char stress_amps_sw[] = {16,12, 19,19, 20,22, 22,21 }; | |||||
tr = new Translator(); | tr = new Translator(); | ||||
SetupTranslator(tr,stress_lengths_sw,stress_amps_sw); | SetupTranslator(tr,stress_lengths_sw,stress_amps_sw); | ||||
case L('t','r'): // Turkish | case L('t','r'): // Turkish | ||||
{ | { | ||||
static const unsigned char stress_amps_tr[8] = {18,18, 20,20, 20,24, 24,22 }; | |||||
static const unsigned char stress_amps_tr[8] = {18,18, 20,20, 20,22, 22,21 }; | |||||
static const short stress_lengths_tr[8] = {190,190, 190,190, 0,0, 250,270}; | static const short stress_lengths_tr[8] = {190,190, 190,190, 0,0, 250,270}; | ||||
tr = new Translator(); | tr = new Translator(); |
Translator::Translator() | Translator::Translator() | ||||
{//===================== | {//===================== | ||||
int ix; | int ix; | ||||
static const unsigned char stress_amps2[] = {17,17, 20,20, 20,24, 24,21 }; | |||||
static const unsigned char stress_amps2[] = {17,17, 20,20, 20,22, 22,20 }; | |||||
static const short stress_lengths2[8] = {182,140, 220,220, 220,240, 260,280}; | static const short stress_lengths2[8] = {182,140, 220,220, 220,240, 260,280}; | ||||
static const wchar_t empty_wstring[1] = {0}; | static const wchar_t empty_wstring[1] = {0}; | ||||
static const wchar_t punct_in_word[2] = {'\'', 0}; // allow hyphen within words | static const wchar_t punct_in_word[2] = {'\'', 0}; // allow hyphen within words |
// Set voice to the default values | // Set voice to the default values | ||||
int pk; | int pk; | ||||
static unsigned char default_heights[N_PEAKS] = {255,255,240,240,220,220,255,255,255}; | |||||
static unsigned char default_widths[N_PEAKS] = {128,128,128,160,171,171,128,128,128}; | |||||
static int breath_widths[N_PEAKS] = {0,200,200,400,400,400,600,600,600}; | static int breath_widths[N_PEAKS] = {0,200,200,400,400,400,600,600,600}; | ||||
// default is: pitch 82,118 | // default is: pitch 82,118 | ||||
for(pk=0; pk<N_PEAKS; pk++) | for(pk=0; pk<N_PEAKS; pk++) | ||||
{ | { | ||||
voice->freq[pk] = 256; | voice->freq[pk] = 256; | ||||
voice->height[pk] = 256; | |||||
voice->width[pk] = 256; | |||||
voice->height[pk] = default_heights[pk]; | |||||
voice->width[pk] = default_widths[pk]*2; | |||||
voice->breath[pk] = 0; | voice->breath[pk] = 0; | ||||
voice->breathw[pk] = breath_widths[pk]; // default breath formant woidths | voice->breathw[pk] = breath_widths[pk]; // default breath formant woidths | ||||
voice->freqadd[pk] = 0; | voice->freqadd[pk] = 0; |
if (out_channels == 2) | if (out_channels == 2) | ||||
{ | { | ||||
// copy with wrap around at the end of ringbuffer | // copy with wrap around at the end of ringbuffer | ||||
const size_t bytes_written = copyBuffer(myWrite, theMono16BitsWaveBuffer, aFreeMem/2); | |||||
copyBuffer(myWrite, theMono16BitsWaveBuffer, aFreeMem/2); | |||||
myWrite = myBuffer; | myWrite = myBuffer; | ||||
myWrite += copyBuffer(myWrite, theMono16BitsWaveBuffer+aFreeMem/2, theSize - aFreeMem/2); | myWrite += copyBuffer(myWrite, theMono16BitsWaveBuffer+aFreeMem/2, theSize - aFreeMem/2); | ||||
} | } | ||||
else // 1 channel (mono) | else // 1 channel (mono) | ||||
{ | { | ||||
// copy with wrap around at the end of ringbuffer | // copy with wrap around at the end of ringbuffer | ||||
const size_t bytes_written = copyBuffer(myWrite, theMono16BitsWaveBuffer, aFreeMem); | |||||
copyBuffer(myWrite, theMono16BitsWaveBuffer, aFreeMem); | |||||
myWrite = myBuffer; | myWrite = myBuffer; | ||||
myWrite += copyBuffer(myWrite, theMono16BitsWaveBuffer+aFreeMem, theSize - aFreeMem); | myWrite += copyBuffer(myWrite, theMono16BitsWaveBuffer+aFreeMem, theSize - aFreeMem); | ||||
} // end if (out_channels == 2) | } // end if (out_channels == 2) |