Command-line: added options --sep --tie. API, changed the meaning of the "phonememode" parameter in espeak_SetPhonemeTrace() and espeak_TextToPhonemes(). Language changes to: en, eu, pt. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@385 d46cf337-b52f-0410-862d-fd96e6ae7743master
@@ -85,7 +85,7 @@ p r R R2 s S t tS | |||
v w x X z | |||
Dictionary en_dict 2014-08-09 | |||
Dictionary en_dict 2014-08-31 | |||
0 3 3: @ @- @L a a# | |||
A: A@ aa aI aI3 aI@ aU aU@ | |||
@@ -115,7 +115,7 @@ s S t tS ts v x z | |||
Z | |||
Dictionary ta_dict 2014-08-10 | |||
Dictionary ta_dict 2014-08-31 | |||
a a: aI aU e E e: i | |||
I i: o o: u U u2 u: | |||
@@ -238,7 +238,7 @@ r r. s S s. t t# t. | |||
t.# v w x z | |||
Dictionary pl_dict 2013-05-03 | |||
Dictionary pl_dict 2014-08-20 | |||
a E E# E~ i O O~ u | |||
y | |||
@@ -292,7 +292,7 @@ n^ p r R R2 s S t | |||
tS ts v z Z | |||
Dictionary pt_dict 2014-08-09 | |||
Dictionary pt_dict 2014-08-31 | |||
& &/ &U~ &~ @ @- a A | |||
aI aU e E eI EI eU EU | |||
@@ -846,15 +846,15 @@ k l m n N p r R2 | |||
s S t tS v w z Z | |||
Dictionary eu_dict 2014-05-22 | |||
Dictionary eu_dict 2014-08-31 | |||
a a2 aI aU e eI eU i | |||
a aI aU e eI eU i iU | |||
o oI u Y | |||
; b B c d D f g | |||
h j J k l l^ m n | |||
** b B c d D f g | |||
j J k l l^ m n n2 | |||
n^ p Q r R2 s S t | |||
tS ts tz v w x z | |||
T tS ts tz w x z | |||
Dictionary ia_dict 2014-07-10 |
@@ -18,7 +18,7 @@ | |||
// ?8 Use full vowel, not schwa in some word endings | |||
// $alt1 use strong ending (-age, -an, -ance, -ative, -table, -ed, -eria, -et, -inal, -ier -mouth -on -or -ored, -ose, -s) | |||
// $alt1 use strong ending (-age, -an, -ance, -ate, -ative, -table, -ed, -eria, -et, -inal, -ier -mouth -on -or -ored, -ose, -s) | |||
// $alt2 use weak ending (ace, ain, an, ar*, ard, ate, ath, ell, ery, ess, et, ie, ile, ine, men, on, ot) | |||
// $alt3 use weak first vowel, a->[a#], e->[@], o->[0#] | |||
// $alt4 separate 'h', not 'th' 'ph' 'sh'; [t2] not [t] | |||
@@ -570,6 +570,7 @@ asap $abbrev | |||
ati $abbrev | |||
atk $abbrev | |||
atm $abbrev | |||
atv $abbrev | |||
avc $abbrev | |||
avg $abbrev | |||
awol eIw0l | |||
@@ -894,6 +895,7 @@ anchovy antSoUvi | |||
anemone a#nEm@ni | |||
anemometer anIm'0mI2t3 | |||
anesthetize $alt3 | |||
antacid $2 | |||
anew a#nju: | |||
?3 anew a#nu: | |||
anime anImeI | |||
@@ -1026,6 +1028,7 @@ axon aks0n | |||
ayuh a#j'@ | |||
ayup a#jVp | |||
backdate $2 | |||
backend bak'End | |||
backstory baksto@ri | |||
badmouth $alt1 | |||
@@ -1065,6 +1068,7 @@ batman batman | |||
battalion $alt3 | |||
bazaar $alt3 | |||
bazooka ba#zu:k@ | |||
beating bi:tIN | |||
bedouin bEdu:I#n | |||
beige beIZ | |||
belisha b@l'i:S@ | |||
@@ -1085,6 +1089,7 @@ bias baI@s | |||
biased baI@st | |||
bible baIb@L | |||
bidet bi:deI | |||
bifurcate $1 | |||
bigot bIg@t // -ed | |||
bijou bi:Zu: | |||
bikini bIk'i:ni | |||
@@ -1196,6 +1201,7 @@ caldera k0ld'e@r@ | |||
caliche ka#li:tSi | |||
caliph $alt6 | |||
calix $alt6 | |||
callous kal@s // -ed | |||
calv kA:v // for calved, calving | |||
?3 calv kav // for calved, calving | |||
calve kA:v | |||
@@ -1240,6 +1246,7 @@ cashmere kaSmi@3 | |||
?3 cashmere kaZmi@3 | |||
casino $alt3 | |||
cassette $alt3 | |||
castrate $2 | |||
catastrophe $alt3 | |||
catastrophic kat@str'0fIk | |||
catarrh k@tA@ | |||
@@ -1264,7 +1271,7 @@ centurion sEntS'U@ri@n | |||
ceres si@ri:z | |||
cerise s@ri:z | |||
?3 certain s3:?n- | |||
certificate s3tIfIk@t | |||
certificate s3tIfIk@t $onlys | |||
cerulean $alt3 | |||
c'est seI $u | |||
chagrin SagrIn | |||
@@ -1436,6 +1443,7 @@ conker $1 | |||
coquina koUk'i:n@ | |||
conquistador k0nk'i:st@do@ | |||
conscience k0nS@ns | |||
console k@nsoUl $verb | |||
consort $1 | |||
consort $verb | |||
construct $1 $onlys | |||
@@ -1450,6 +1458,7 @@ contest $verb | |||
context $1 | |||
contract $1 $onlys | |||
contract $verb | |||
contrail k0ntreIl | |||
contralto k@ntr'altoU | |||
contraption k@ntr'apS@n | |||
contrary k0ntr@ri | |||
@@ -1552,6 +1561,7 @@ debut deIbju: | |||
début debut $text | |||
decade dEkeId | |||
decaf di:kaf | |||
decane dEkeIn | |||
decedent dI#si:d@nt | |||
decent di:s@nt | |||
decibel dEsI#b@L | |||
@@ -1571,6 +1581,7 @@ defens dI2fEns // for defensible | |||
deficit dEfI2sIt | |||
definitive dI2fInI2tIv | |||
?!3 defragment di:fragm'Ent | |||
degas di:g'as | |||
degenerate $alt2 $noun | |||
dego deIgoU | |||
deice di:'aIs | |||
@@ -1602,9 +1613,9 @@ derogative $2 | |||
descant dEskant | |||
descry dI2skreI | |||
desert dI2z3:t | |||
desert dEs3t $only | |||
desert dI2z3:t $verb | |||
desolate dEs@l@t | |||
desert dEs3t $only | |||
desert dI2z3:t $verb | |||
desolate dEs@l@t $only | |||
desperate $alt2 | |||
?3 detail $2 | |||
detante deIt'0nt | |||
@@ -1660,6 +1671,7 @@ dishy dISi | |||
dismal dIzm@l | |||
disparate dIsp@r@t | |||
disreputable $2 | |||
dissipate $1 | |||
distributor $2 | |||
distro dIstroU | |||
disuse dIs'ju:s | |||
@@ -1691,6 +1703,8 @@ drier draI3 | |||
driest draI|@st | |||
duet dju:'Et | |||
dugout dVgaUt | |||
dumber dVm3 | |||
dumbest dVm@st | |||
dungaree dVNga#r'i: | |||
?!3 dupe dju:p | |||
duress $2 | |||
@@ -1724,13 +1738,10 @@ eh eI | |||
eid i:d | |||
eke i:k | |||
el ,El $only | |||
electricity I2lEktr'IsI2ti | |||
electrode I2lEktroUd | |||
electron I2lEktr0n | |||
electrocute $2 | |||
elicit I2lIsI2t | |||
electrode I#lEktroUd | |||
elicit I#lIsI#t | |||
élite Il'i:t | |||
elixir I2lIks3 | |||
elixir I#lIks3 | |||
embed Emb'Ed | |||
ember Emb3 | |||
embole $1 // embolism | |||
@@ -1746,6 +1757,7 @@ enroute 0nr'u:t | |||
ensemble 0ns'0mb@L | |||
entendre 0nt'0ndr@- | |||
entente 0nt'0nt | |||
entirity Ent'aI3I#ti | |||
entourage 0nt2UrA:Z | |||
entrail $1 | |||
entrance $1 $onlys | |||
@@ -1763,6 +1775,7 @@ epitome I2pIt@mI | |||
epub $alt6 | |||
equal i:kw@L | |||
equation I2kweIZ@n | |||
equilibrate $2 | |||
equipage EkwIpIdZ | |||
equivocal I2kwIv@k@L | |||
erase I2reIz // erasing erases | |||
@@ -1793,7 +1806,7 @@ ethernet $alt1 | |||
etiquette $1 | |||
?3 etiquette EtI#k@t | |||
euclidean ju:kl'Idi:|@n | |||
eunuch ju:m@k | |||
eunuch ju:n@k | |||
euphemism ju:f@mIz@m | |||
eureka ju:'ri:ka# | |||
europa jU@r'oUp@ | |||
@@ -1807,6 +1820,7 @@ evenings i:vnINz | |||
evit EvI2t // inevitable | |||
exactement Egzakt@m'A~ | |||
exalt Egz'0lt | |||
exculpate $1 | |||
excuses Ekskj'u:sI#z | |||
execute EksI2kju:t // not $2 | |||
executable $3 | |||
@@ -1819,12 +1833,15 @@ expert Eksp3:t | |||
expertise Eksp3t'i:z | |||
expletive Ekspl'i:tIv | |||
?3 expletive EksplI#tIv | |||
explicate $1 | |||
exploit $1 $onlys | |||
exploit $verb | |||
expo $1 | |||
exponential Eksp@n'EnS@L | |||
export $1 $onlys | |||
export $verb | |||
expurgate $1 | |||
extirpate $1 | |||
extract $1 $onlys | |||
extract $1 $only | |||
extract $2 $verb | |||
@@ -1858,6 +1875,7 @@ favourite feIv@-rI2t | |||
favourites feIv@-rI2ts | |||
fedora fI2d'o@r@ | |||
feisty faIsti | |||
fellate $2 | |||
feline fi:laIn | |||
felon $alt2 | |||
feminine fEm@nIn | |||
@@ -1872,6 +1890,7 @@ ficus faIk@s | |||
fiery faI3ri | |||
?3 filet fI2leI | |||
?3 fillet fI2leI | |||
filtrate $2 $verb | |||
finale fI2nA:li | |||
finance faInans $only | |||
finance $verb | |||
@@ -1894,6 +1913,7 @@ flyby flaIbaI | |||
foothold fUthoUld | |||
forage f0rI2dZ | |||
force fo@s | |||
forearmed $2 | |||
foreknowledge $2 | |||
forensic f@rEnsIk | |||
foreshadow $2 | |||
@@ -2018,6 +2038,7 @@ gucci gu:tSi | |||
gui gu:i $onlys | |||
guinea gIni | |||
gurus gu:ru:z | |||
?!3 gyrate $2 | |||
habitual $alt3 | |||
hacienda hA:sI'End@ | |||
@@ -2109,6 +2130,7 @@ huevo hweIvoU | |||
hula hu:l@ | |||
hullabaloo hVl@b@lu: | |||
humane $2 | |||
hundred hVndr@d | |||
hunger hVNg3 | |||
hungover $2 | |||
hurrah h@rA: | |||
@@ -2119,6 +2141,7 @@ hussar hVz'A@ | |||
huzza h@z'A: | |||
huzzah h@z'A: | |||
hydrangea haIdr'eIndZ@ | |||
hydrate $2 $verb | |||
hyperbola haIp'3:b@l@ | |||
hyperbole haIp'3:b@li | |||
hypercube $1 | |||
@@ -2142,6 +2165,7 @@ imagery ImIdZri | |||
imagine I2madZI2n | |||
imbecile ImbI2si:l | |||
?3 imbecile Imb@s@L | |||
immolate $1 | |||
impedance Imp'i:d@ns | |||
imperative Imp'Er@tIv | |||
imperfect Imp'3:fEkt | |||
@@ -2180,6 +2204,7 @@ ingenuity IndZI2n'ju:I2ti | |||
inherit Inh'ErIt // inherited | |||
innard In3d | |||
inner In3 | |||
innervate In3:veIt | |||
innovative In@veItIv | |||
impetus Imp@t@s | |||
?3 inquiry Inkw@ri | |||
@@ -2290,6 +2315,7 @@ laboratory la#b'0r@tri | |||
laborious $alt3 | |||
labyrinth lab3InT | |||
labyrinthine lab3'InTi:n | |||
lactate $2 $verb | |||
lascivious $alt3 | |||
lager lA:g3 | |||
lagoon $alt3 | |||
@@ -2304,6 +2330,7 @@ lasagne lasagna $text | |||
laser $alt6 | |||
lasso las'u: | |||
?3 lasso lasoU | |||
latex $alt4 | |||
latrine $alt3 | |||
latte lA:t2eI | |||
?3 launch lA:ntS | |||
@@ -2335,7 +2362,8 @@ lichen laIk@n | |||
lidar laIdA@ | |||
lien li:@n | |||
lier laI3 // outlier | |||
ligate li:geIt | |||
ligate $2 | |||
?3 ligate laIgeIt | |||
lightning laItnIN | |||
lilac laIl@k | |||
lily lIli | |||
@@ -2672,6 +2700,7 @@ oppose @poUz | |||
opposer @poUz3 | |||
opus oUp@s | |||
orange 0rI2ndZ | |||
orate $2 | |||
ordeal O@d'i@l | |||
oregano 0rIg'A:noU | |||
organelle O@g@n'El | |||
@@ -2738,6 +2767,7 @@ panache $alt3 | |||
panchakarma $alt3 $3 | |||
panchayat pa#ntSaI@t | |||
pancreas pankri@s | |||
palpate $2 | |||
papaya pa#paI;@ | |||
papyrus pa#paIr@s | |||
parabola p@rab@l@ | |||
@@ -2843,7 +2873,8 @@ pizzeria $alt1 | |||
plaid plad | |||
?3 plateau $2 | |||
platoon $alt3 | |||
playtest pleItEst | |||
playa plaI@ | |||
playtest $alt1 | |||
plaza plA:z@ | |||
plebeian pl@b'i:@n | |||
plethora plET3r@ | |||
@@ -2851,13 +2882,14 @@ plicate $2 | |||
plumber plVm3 | |||
plus plVs | |||
pois pwA: $only | |||
poly p0lI | |||
poleaxe poUlaks | |||
politer p@l'aIt3 | |||
politic p0l@tIk $onlys | |||
poll poUl | |||
poly p0lI | |||
polyamide p0lI'eImaId | |||
polyester p0lI'Est3 | |||
polygon $alt1 | |||
?3 polygon $alt1 | |||
polythene $1 | |||
porcelain $alt2 | |||
populace $alt2 | |||
@@ -2866,6 +2898,7 @@ portend po@t'End | |||
poseidon p@saId@n | |||
posse p0si | |||
postage poUstI2dZ | |||
postdate $2 | |||
practise praktI2s | |||
prayer pre@ | |||
precedence prEsI2d@ns | |||
@@ -2925,6 +2958,8 @@ project pr0dZEkt $onlys | |||
project $verb | |||
promenade pr0m@n'A:d | |||
pronoun proUnaUn | |||
propranolol proUpr'an@l0l | |||
prostrate $2 $verb | |||
protege pr0t@ZeI | |||
?3 protege proUt@ZeI | |||
protegé protege $text | |||
@@ -2955,6 +2990,7 @@ pythagoras paIT'ag@r@s | |||
python paIT@n | |||
pyramidal pI2r'amId@L | |||
qua kwA: | |||
qaeda kaId@ | |||
quadrilateral $3 | |||
quash kw0S | |||
@@ -3186,6 +3222,7 @@ sciatica saI'atIk@ | |||
sclera skli@r | |||
scourge sk3:dZ | |||
?5 scourge skVRdZ | |||
scrapheap $alt4 | |||
scrotum skroUt@m | |||
scuba sku:b@ | |||
seabed si:bEd | |||
@@ -3347,16 +3384,18 @@ stygian stIdZi@n | |||
suave swA:v | |||
subcategory $2 // U.S ? | |||
subcontinent $2 | |||
subject sVbdZ'Ekt $verb | |||
// subject sVbdZ'Ekt $verb | |||
sublevel sVblEv@L | |||
sublime $2 | |||
submenu s'Vbm,Enju: | |||
subordinate $2 | |||
subordinate $alt1 $verb | |||
subpoena su:p'i:n@ | |||
subsequent sVbsI2kw@nt | |||
subside s@bsaId | |||
subtly sVt@lI $verbf | |||
subvocal sVbv'oUk@L | |||
succinct s@ksINkt | |||
succumb s@kVm | |||
sucrose su:kroUs | |||
suede sweId | |||
suerte swe@rteI // -ed, -es | |||
@@ -3371,6 +3410,7 @@ suntan sVntan | |||
suite swi:t $onlys | |||
superb su:p'3:b | |||
superfluous su:p'3:flu:@s | |||
superheat $3 | |||
supernal su:p'3:n@L | |||
superstructure $1 | |||
supplier s@plaI3 | |||
@@ -3414,6 +3454,7 @@ tangerine tandZ@r'i:n | |||
taoiseach ti:S@x | |||
tapestry tap@stri | |||
tarantula t@rantS@l@ | |||
tardis $alt1 | |||
tariff tarIf | |||
tase teIz | |||
taskforce t'askf,o@s | |||
@@ -3520,6 +3561,7 @@ tricycle traIsIk@L | |||
trilogy trIl@dZi | |||
trio tri:oU | |||
triplicate $alt2 | |||
triplicate $verb | |||
trisquel trIsk'El | |||
triumphant $2 | |||
trois twA: | |||
@@ -3597,6 +3639,7 @@ useful ju:sf@L | |||
utan u:t'an | |||
utensil ju:t'Ens@L | |||
?!3 vacate $2 | |||
vaccine $2 | |||
valet valeI | |||
?3 valet val'eI | |||
@@ -3687,8 +3730,8 @@ whate're w02t'e@ | |||
whatsoe're w02tsoU'e@ | |||
wheelbarrow w'i:l_b,aroU | |||
?2 wheelbarrow w#'i:l_b,aroU | |||
whereas we@'az | |||
?2 whereas w#e@'az | |||
whereas we@az | |||
?2 whereas w#e@az | |||
wherewithal we@wIDO:l | |||
?2 wherewithal w#e@wIDO:l | |||
whew fju: | |||
@@ -3976,6 +4019,7 @@ Eyjafjalla eIja#fjatla# | |||
Faroe fe@roU | |||
Faroes fe@roUz | |||
Fermanagh f3:m'an@ | |||
Flores flo@rIz | |||
Folkestone foUkstoUn | |||
Fuego fweIgoU | |||
Gabon gab0n | |||
@@ -4522,6 +4566,7 @@ Jesus dZi:z@s | |||
Joachim dZoU@kIm | |||
Johann joUhA#n | |||
Jonah dZoUn@ | |||
Jolene $alt3 | |||
Jorge ho@heI | |||
José hoUs'eI | |||
Jose hoUs'eI | |||
@@ -4735,7 +4780,6 @@ Zoë zoUi | |||
Acura akjUr@ | |||
Advil advIl | |||
Allgemeine alg@maIm@ | |||
Andagakavi anda#ga#kka#v%i // a Tamil keyboard | |||
Andromeda andr'0mId@ | |||
Aquino a#ki:noU | |||
Asimov azI#m0f | |||
@@ -4772,6 +4816,7 @@ Damocles dam@kli:z | |||
(da vinci) da#vIntSi | |||
Dante dA:nt2eI | |||
?3 Datsun dA:ts@n | |||
Degas deIgA: $capital | |||
Desiree dI2zi@reI | |||
?3 Desiree dEz@r'eI | |||
Deslauriers dI2lo@rIeI | |||
@@ -4807,6 +4852,8 @@ Ghandhi gA:ndi | |||
Gibson gIbs@n | |||
Godzilla g0dz'Il@ | |||
Goliath $alt3 | |||
Gogh g0x | |||
?3 Gogh goU | |||
Grigio gri:Z'oU | |||
Guinness gInIs | |||
Gutierrez gu:tj'ErEz | |||
@@ -4833,7 +4880,8 @@ Jimenez hIm'EnEz | |||
Jonese dZoUnz // Joneses | |||
Kapoor $2 | |||
Kawasaki kaU|@s'A:ki | |||
Kendell kEnd@L | |||
Kendall $alt2 | |||
Kendell $alt2 | |||
Khrushchev kru:stSEf | |||
Khruschev kru:stSEf | |||
Kroger kroUg3 | |||
@@ -4932,6 +4980,7 @@ Urquhart 3:kA@t | |||
Versace v3sA:tSi | |||
Vicodin vaIk@dI#n | |||
Volkswagen v'oUlksv,A:g@n | |||
Vries vri:s | |||
Wegener veIg@n3 | |||
Wii wi:: | |||
Wiimote wi:moUt | |||
@@ -5160,6 +5209,7 @@ haves havz | |||
has %ha#z $pastf $only | |||
has haz $only $atend | |||
(has been) %ha#z%bIn $pastf | |||
(has-been) hazbi:n | |||
(has to) haztu: $atend | |||
(has not) h@zn%0t $pastf | |||
(has not) ha#zn0t $pastf $atend | |||
@@ -5174,7 +5224,7 @@ had ,had $atend | |||
(had it) h,adI2t | |||
(had them) h,adDEm | |||
(had one) hadwVn $atend | |||
(had any) h,ad||Eni | |||
(had any) h,ad||,Eni | |||
(had some) h,ad||sVm | |||
having ,havIN $strend2 $pastf $only | |||
haven't hav@-nt $pastf | |||
@@ -5276,6 +5326,7 @@ thee Di: $u+ | |||
thou DaU | |||
thy ,DaI | |||
thine DaIn $u+ | |||
thyself DaIs'Elf | |||
(i had) aI||h'ad $atend | |||
(he had) hi:||h'ad $atend |
@@ -279,7 +279,7 @@ | |||
v) ac (a eIk | |||
ac (cent ak | |||
ac (centu %ak | |||
accessi aks'Es@ | |||
accessib aks'Es@b | |||
acci (_ 'A:tSi | |||
ac (cid ak | |||
acc (ol ak | |||
@@ -332,6 +332,7 @@ | |||
ach (rom ak | |||
ac (id_ as | |||
_) ac (i a#s | |||
acial eIS@L | |||
acious 'eIS@s | |||
_) ack ak | |||
_) ack (n a#k | |||
@@ -417,6 +418,7 @@ | |||
ad (vert_ ad | |||
ad (vert a#d | |||
_) advo adv@ | |||
_gr) ad (a eId | |||
hex) ad (e ad | |||
torn) ad eId | |||
_r) ad (L03 eId | |||
@@ -555,6 +557,7 @@ | |||
_) ai (z aI | |||
.group al | |||
&) al (X$w_alt2++ @L | |||
_) ale (C_ alI2 | |||
@ic) al (_S2 @L | |||
_) al (@ a#l | |||
@@ -622,6 +625,7 @@ | |||
al (mig %0l | |||
_) al (ms A: | |||
&) alo (_ @loU | |||
h) alo (gena a#l0 | |||
&) al (ous_ @l | |||
_) al (p al | |||
alpha alf@ | |||
@@ -993,6 +997,7 @@ propag) an (d 'an | |||
_n) arr (at a#r | |||
_) arr (o ar | |||
_) arro (g ar@ | |||
arr (o_ A@ | |||
ar (i_ 'A@r | |||
?3 @) ar (io_ 'ar | |||
_b) ar (L02t ar | |||
@@ -1006,6 +1011,7 @@ calend) ar 3 | |||
&l) ar (_ 3 | |||
&l) ar (ist 3 | |||
&m) ar (_ 3 | |||
an) ar (_ 3 | |||
lun) ar (_ =3 | |||
_sep) ara (b 3r@ | |||
_p) ara ar@ | |||
@@ -1019,7 +1025,7 @@ calend) ar 3 | |||
&) ar (diz 3 | |||
%C) ar (d_ 3 | |||
&d) ar (d_ 3 | |||
&h) ar (d_ 3 | |||
// &h) ar (d_ 3 | |||
&ch) ar (d 3 | |||
&k) ar (d_ 3 | |||
ll) ar (d_ A@ | |||
@@ -1104,6 +1110,7 @@ calend) ar 3 | |||
_p) arlia A@l@ | |||
@) ar (ol @r | |||
arom (at a#roUm | |||
&) ar (ous_ 3 | |||
arre (_ A@ | |||
arred (_ A@d | |||
arring (_ A@I2N | |||
@@ -1120,7 +1127,7 @@ calend) ar 3 | |||
?3 ion) ary (_ Er%i | |||
XC) ary (_ e@r%i | |||
w) ar O@ | |||
wh) ar O@ | |||
_wh) ar O@ | |||
w) ar (r 0 | |||
w) ar (i e@ | |||
w) ar (y e@ | |||
@@ -1228,8 +1235,10 @@ calend) ar 3 | |||
w) atch 0tS | |||
_s) ata (n eIt@ | |||
_g) ator eIt3 | |||
&) ate (_$w_alt2 @t | |||
&) ate (_$w_alt1+ eIt | |||
&) ate (_$w_alt2+ @t | |||
der) ated (_ eItI#d | |||
der) ating (_ eItIN | |||
pal) ate (_ @t | |||
consul) ate (_ @t | |||
macul) ate (_ @t | |||
@@ -1244,14 +1253,11 @@ consul) ate (_ @t | |||
_it_separ) ate (_ @t | |||
par) ates (_ eIt|s | |||
ct) ate (_ =eIt | |||
@) ated (++_ eItI#d | |||
_s) ate (ll at@ | |||
@) ati (_ 'A:ti | |||
at (im_ 'eIt | |||
@) ating (++_ eItIN | |||
&) at (ive @t | |||
&) at (ive_$w_alt1 eIt | |||
// &) ately (_ @tli | |||
ul) at (ory 'eIt | |||
sen) at @t | |||
pl) at (ea at | |||
@@ -1325,6 +1331,7 @@ _it_separ) ate (_ @t | |||
st) atus eIt@s | |||
?3 st) atus at@s | |||
_) at (y eIt | |||
&) at (y_ @t | |||
.group au | |||
au O: | |||
@@ -1737,7 +1744,8 @@ _it_separ) ate (_ @t | |||
co (mprehen k0 | |||
co (mprom k0 | |||
_) comp (tr k%0m | |||
compu (t k%0#mpju: | |||
co (mput k%0# | |||
co (mputat k0 | |||
_) co (mr k0 | |||
_) con (@ k%0#n | |||
_) conce (ntra k0ns@ | |||
@@ -1778,6 +1786,7 @@ _it_separ) ate (_ @t | |||
_) co (nstip k0 | |||
_) co (nstitut k0 | |||
_) co (nsole k0 | |||
_) co (nstel k0 | |||
_) co (nsul k0 | |||
_) co (nsult k%0# | |||
_) co (ntact k0 | |||
@@ -1785,7 +1794,7 @@ _it_separ) ate (_ @t | |||
co (ntine k0 | |||
_) co (ntour k0 | |||
_) co (ntrA k0# | |||
_) contra (C@P6 k,0ntr@ | |||
_) contra (@P6 k,0ntr@ | |||
_) contrast k0#ntraast | |||
contrac (t k%0#ntrak | |||
contrar k%0#ntre@ | |||
@@ -1870,15 +1879,16 @@ _it_separ) ate (_ @t | |||
_) de (ba dI2 | |||
_) de (bil dI# | |||
_) de (c@ dI# | |||
deca (den dEk@ | |||
_) decaffei d%i:kafI | |||
_) deca dEk@ | |||
_) deca ((ff d%i:ka | |||
_) deca (nt d%Ika | |||
_) de (cL05 dE | |||
de (cenc di: | |||
de (cib dE | |||
de (cil dE | |||
de (cim dE | |||
_) de (com d,i: | |||
_) de (con d,i: | |||
_) de (conP2 d,i: | |||
de (cor dE | |||
de (coru dI2 | |||
de (creas di: | |||
@@ -1886,6 +1896,8 @@ _it_separ) ate (_ @t | |||
de (du dI2 | |||
_) de (emp d%i: | |||
_) de (f@ dI2 | |||
_) de (falc di: | |||
_) de (feca dE | |||
de (finit dE | |||
de (flat d%i: | |||
de (feren dE | |||
@@ -1895,6 +1907,8 @@ _it_separ) ate (_ @t | |||
_) de (g@ dI2 | |||
_) de (hAP2 d,i: | |||
_) de (hyd ,di: | |||
_) de (ifL02 deI | |||
?3 _) de (ifL02 di: | |||
_) de (ist deI | |||
_) de (j dI2 | |||
_) de (l@ dI2 | |||
@@ -1906,6 +1920,7 @@ _it_separ) ate (_ @t | |||
de (lv+ dE | |||
de (ma dI2 | |||
de (magog dE | |||
?!3 _) de (marca di: | |||
demea dI2m'i: | |||
de (men dI2 | |||
_) de (milit d%i: | |||
@@ -1922,9 +1937,11 @@ _it_separ) ate (_ @t | |||
deni (tri d%i:naI | |||
_) de (no dI2 | |||
_) de (nu dI2 | |||
_) de (nuda d,i: | |||
_) de (o d%i: | |||
_) de (p@ dI2 | |||
de (per d%i: | |||
_) de (pila dE | |||
de (pol d%i: | |||
de (pop d%i: | |||
depo (siti dEp@ | |||
@@ -2022,7 +2039,7 @@ _it_separ) ate (_ @t | |||
di (scov dI2 | |||
_) dis (eP3 ,dIs | |||
di (sh_ dI | |||
di (shC dI | |||
_) di (shC dI | |||
_) di (shev+ dI2 | |||
_) dis (hAP3 dI2s | |||
_) dis (inP3 ,dIs | |||
@@ -2037,7 +2054,7 @@ _it_separ) ate (_ @t | |||
_) diss (@ dI2s | |||
dis (sect daI | |||
dis (sid dI | |||
di (ssip dI | |||
_) dis (sip dI | |||
dis (solu dI | |||
dis (son dI | |||
di (stan dI | |||
@@ -2295,6 +2312,7 @@ _it_separ) ate (_ @t | |||
cl) ed (_S1v d | |||
@p) ed (_S2vdei t | |||
@@er) ed (_S2v d | |||
our) ed (_S2v d | |||
@ss) ed (_S2dv t | |||
@t) ed (_S2vdei I#d | |||
?8 @t) ed (_S2vdei Ed | |||
@@ -2374,11 +2392,12 @@ _it_separ) ate (_ @t | |||
_w) eigh eI | |||
.group el | |||
_) el (A %Il | |||
_) el (A I#l | |||
_) electro %Il,EktroU | |||
_) elect (rocu I2lEkt | |||
_) elect (rol %ElEkt | |||
_) elect (ron I2lE2kt | |||
_) elect (rici I#lE2kt | |||
_) elect (rocu I#lE2kt | |||
_) elect (rol I#lE2kt | |||
_) elect (ron I#lE2kt | |||
_) ele (g ElI | |||
_) elem ElIm | |||
_) ele (p ElI | |||
@@ -2440,6 +2459,7 @@ _it_separ) ate (_ @t | |||
em (ana Em | |||
emba (s Emb@ | |||
em (blem Em | |||
_) em (broc Em | |||
em (bry Em | |||
em (eral Em | |||
_) em (e I2m | |||
@@ -2505,6 +2525,7 @@ _it_separ) ate (_ @t | |||
_) ener En3 | |||
g) ener (i @nEr | |||
@@th) enes (_ =@ni:z | |||
_) en (gel En | |||
g) en (etic I2n | |||
&) en (ger In | |||
eng (lA INg | |||
@@ -2771,6 +2792,7 @@ _it_separ) ate (_ @t | |||
.group es | |||
ess (_$w_alt2 @s | |||
&) es (X$w_alt1+ Es | |||
&) es (_S1i z | |||
&es) es (_ i:z | |||
ese (_ i:z | |||
@@ -2778,7 +2800,7 @@ _it_separ) ate (_ @t | |||
&f) es (_S1 s | |||
&k) es (_S1 s | |||
&p) es (_S1 s | |||
&t) es (_S1 s | |||
&t) es (_S1 z# | |||
&c) es (_S1 %Iz | |||
&g) es (_S1 %Iz | |||
&ch) es (_S1 %Iz | |||
@@ -2851,9 +2873,10 @@ _it_separ) ate (_ @t | |||
eth (ic ET | |||
_) ethno (@ ETnoU# | |||
eth (ra 'i:T | |||
eth (yl i:T | |||
eth (ylen ET | |||
eth (ylK i:T | |||
?3 ethyl (K ET@L | |||
@C) eth (_S3e @T | |||
_) etio i:tI@ | |||
etta (_ 'Et@ | |||
ette (_ 'Et | |||
pal) ett (e @t | |||
@@ -2945,6 +2968,7 @@ _it_separ) ate (_ @t | |||
excav Eksk@v | |||
_) exc (e %Eks | |||
exc (i %Eks | |||
_) ex (ecra Eks | |||
_) ex (crem Eks | |||
exce (llen Eks@ | |||
C) ex (e Eks | |||
@@ -2962,6 +2986,7 @@ _it_separ) ate (_ @t | |||
exped (it Eksp@d | |||
ex (pert Eks | |||
experim %EkspErIm | |||
_) ex (piat Eks | |||
@) ex (ia 'Eks | |||
_) exi (gen EksI | |||
ss) ex (_ Iks | |||
@@ -3184,7 +3209,7 @@ _it_separ) ate (_ @t | |||
scr) i (ber aI | |||
i (ber_ aI | |||
t) ibe (t Ib'E | |||
i (bilit I | |||
i (bilit @ | |||
b) i (ble_ aI | |||
@) ible (_S4ev @b@L | |||
@) ibles (_S5ev @b@Lz | |||
@@ -3248,7 +3273,7 @@ _it_separ) ate (_ @t | |||
ifier (_ IfaI3 | |||
r) i (fl aI | |||
st) i (fl aI | |||
&) ify (_ =I2faI | |||
&) ify (_ =I#faI | |||
i (genous 'I | |||
n) ihi aI|@ | |||
_) i (h aI | |||
@@ -3300,8 +3325,8 @@ _it_separ) ate (_ @t | |||
?8 C) iar aIa# | |||
iar (iC i@3 | |||
iar (ity Iar | |||
&) iary =j@r%I | |||
&l) iary =i@r%I | |||
&) iary =j@ri | |||
&l) iary =i@ri | |||
_) ian i@n | |||
&) ia (_N =i|@ | |||
&) ia (_ =i@ | |||
@@ -3455,7 +3480,6 @@ _it_separ) ate (_ @t | |||
igno (ran Ign3 | |||
ig (na Ig | |||
_m) ig (ra aIg | |||
_m) ig (rati %aIg | |||
igu (e 'i:g | |||
igu (_ 'i:g | |||
@@ -3643,7 +3667,9 @@ _it_separ) ate (_ @t | |||
_) in (tegri %In | |||
inte (llec Int@ | |||
_) inter (@P5 ,Int3 // prefix | |||
_) inter (- ,Int3 | |||
_) inter (AP5 ,Int@r | |||
_) inter (cal %Int3: | |||
_) inter (est Intr | |||
interfer Int@f'i@3 | |||
_) int (erio+ %Int | |||
@@ -3988,7 +4014,7 @@ _it_separ) ate (_ @t | |||
_) jes (ui dZEz | |||
_) jh (A@ dZ | |||
_) jiha (d dZI2hA: | |||
_) joa (n@ dZoU'a | |||
_) joa (nn dZoU'a | |||
n) j (a_ j | |||
j (ü j | |||
@@ -4063,12 +4089,11 @@ _it_separ) ate (_ @t | |||
&t) ling (_ _lIN | |||
&l) ling (_S4vd IN | |||
linux lInVks | |||
listen lIs@n | |||
?3 _) lo (gK lO | |||
@) lo (gous =l@ | |||
lu (na lu: | |||
@) ly (_S2i l%i | |||
@l) ly (_S2 i | |||
&) ly (_S2i l%i | |||
&l) ly (_S2 i | |||
f) ly (_ laI | |||
ief) ly (_S2 l%i | |||
ff) ly (_S2 l%i | |||
@@ -4079,7 +4104,7 @@ multip) ly laI | |||
&p) ly (_S2 l%i | |||
p) ly (_ laI | |||
_) ly (d lI | |||
@) lEss (_S4i l@s | |||
&) lEss (_S4i l@s | |||
@) lEssly (_S6i l@sl%i | |||
.group le | |||
@@ -4140,8 +4165,8 @@ multip) ly laI | |||
mbly mbl%I | |||
o) mb (e m | |||
_bo) mb (K m | |||
_du) mb m | |||
_) mc (C@ m@k | |||
_du) mb (K m | |||
_) mc (C@P2 m@k | |||
_) mc (_C m@k | |||
_) mc (_L05 m@ // c,g,k | |||
_) mc (L05@ m@ | |||
@@ -4332,6 +4357,7 @@ multip) ly laI | |||
@@C) o (_ =oU | |||
oa oU | |||
oa (_ 'oU@ | |||
oa (b oUa | |||
g) oa (n_ oU@ | |||
z) oa (n_ 'oU@ | |||
br) oa (d O: | |||
@@ -4432,6 +4458,7 @@ multip) ly laI | |||
@l) oge (_ 0g | |||
&) o (gen_ @ | |||
ogeni (c oUdZ'EnI | |||
o (genat '0 | |||
o (genous '0 | |||
o (geny '0 | |||
r) o (ger 0 | |||
@@ -4468,7 +4495,7 @@ multip) ly laI | |||
orp) oise @s | |||
o (ism oU | |||
@) o (ist oU | |||
oix (_ wa | |||
oix (_ wA: | |||
tr) o (jan oU | |||
o (ku oU | |||
o (ky_ oU | |||
@@ -4594,7 +4621,7 @@ multip) ly laI | |||
&) om (ise_ =@m | |||
&) om (ize_ =@m | |||
@) om (ist_ =@m | |||
_s) om (n %0m | |||
_s) om (na %0m | |||
_) omni (@@P4 ,0mnI2 | |||
_) omni 0mnI | |||
_) omnipo 0mn'Ip@ | |||
@@ -4830,7 +4857,7 @@ multip) ly laI | |||
_f) ore (tel %o@ | |||
@) or (iti 0r | |||
@) or (ity 0r | |||
_fav) orit 3I#t | |||
_fav) orit @-rI#t | |||
_) or (iC 0r | |||
@t) ore (_ 3 | |||
st) ore (_ o@ | |||
@@ -4932,11 +4959,11 @@ multip) ly laI | |||
&g) ot (_ @t | |||
&rr) ot (_ @t | |||
&) ot (_$w_alt2 @t | |||
n) ot (a oUt | |||
r) ot (a oUt | |||
t) ot (a oUt | |||
c) ot (an oUt | |||
ot (at oUt | |||
nn) ot (at @t | |||
h) ote (l %oUtE | |||
p) ot (enti @t | |||
b) oth oUT | |||
@@ -5027,7 +5054,6 @@ multip) ly laI | |||
c) ou (pl V | |||
&) our (_ 3 | |||
np) our (_ o@ | |||
&) oured 3d | |||
ev) our (ed aU@ | |||
our (n 3: | |||
?5 our (n VR | |||
@@ -5256,6 +5282,7 @@ multip) ly laI | |||
_) peregrin pEr@grIn | |||
per (fec p3 | |||
_) per (iC@@ p,Er | |||
_) per (igr pEr | |||
_) perini pErIn'i: | |||
_) per (iph p3r | |||
_) per (isc pEr | |||
@@ -5390,6 +5417,7 @@ multip) ly laI | |||
_) pro (sa pr@ | |||
_) pro (sc pr@ | |||
pro (spectA pr@ | |||
_) pro (stra pr0 | |||
_) pro (sumer pr%oU | |||
pro (tec pr@ | |||
pro (test pr@ | |||
@@ -5500,6 +5528,7 @@ multip) ly laI | |||
_) re (arm %ri: | |||
_) re (au@P2 ,ri: | |||
re (ck rE | |||
_) re (clina rE | |||
reco (g rEk@ | |||
_) re (comP2 r,i: | |||
_) re (conP2 ,ri: | |||
@@ -5562,6 +5591,7 @@ multip) ly laI | |||
repe (titiv rI2pE | |||
re (pli rE | |||
re (prim rE | |||
_) re (prob rE | |||
re (pt rE | |||
_) re (puta rE | |||
re (quis rE | |||
@@ -5749,6 +5779,7 @@ multip) ly laI | |||
1_) st (_ | |||
_) st (_ s@nt | |||
stein staIn | |||
i) st (en_ s | |||
_) s (u s | |||
&) s (u_ =s | |||
ssue Su: | |||
@@ -5760,7 +5791,7 @@ multip) ly laI | |||
Ai) s (y z | |||
s (_N z | |||
@) s (_NS1m z | |||
@) s (_$w_alt1S1 s | |||
@) s (_$w_alt1 s | |||
_BA) s (_N s | |||
&se) s (_S1 I#z | |||
&sse) s (_S2 I#z | |||
@@ -5806,8 +5837,8 @@ multip) ly laI | |||
su (burba s@ | |||
su (bv s@ | |||
substa (nt s@bsta | |||
su (ccA s@ | |||
su (ccul sV | |||
su (cce s@ | |||
su (cci s@ | |||
su (ffic s@ | |||
sugar SUg3 | |||
re) su (mA zju: | |||
@@ -5856,6 +5887,7 @@ multip) ly laI | |||
_) tz (ar ts | |||
t (h$w_alt4 t | |||
t (A$w_alt4 t2 | |||
t (E$w_alt4 t2 | |||
t (ap_ t2 | |||
ie) t (ary_ t2 | |||
@@ -5875,6 +5907,7 @@ multip) ly laI | |||
t (op_ t2 | |||
@) town (_S4 t2aUn | |||
tow (er t2aU | |||
_) trans (migP5 trans | |||
_) trans (nP5 trans | |||
_) tri (A traI | |||
_) trie traI | |||
@@ -5969,12 +6002,12 @@ multip) ly laI | |||
theo (logy TI'0 | |||
theo (logis TI'0 | |||
_) th (eC% T | |||
_) th (us D | |||
.group ti | |||
&) tia (_ S@ | |||
&s) tia (_ tS@ | |||
propi) ti (a tI | |||
ti (ac tI | |||
&) tian (_ =S@n | |||
&s) ti (an_ tS | |||
@@ -5998,6 +6031,7 @@ multip) ly laI | |||
tion (ality S@n | |||
&) tious S=@s | |||
AC) tive (_ =tIv | |||
_) ti (trat t%aI | |||
.group tu | |||
@@ -6116,7 +6150,7 @@ contin) u ju: | |||
_) u (lA u: | |||
&f) ul (_ @L | |||
?8 &f) ul (_ Vl | |||
s) ul (_ @L | |||
&s) ul (_ @L | |||
@) u (la_ =jU | |||
@) u (lar =jU | |||
@) u (late =jU | |||
@@ -6369,6 +6403,7 @@ contin) u ju: | |||
v v | |||
v (v | |||
_) v (la v | |||
_) vr (A vr | |||
@) va (len veI | |||
_) vehem vi@m | |||
@@ -6444,8 +6479,7 @@ contin) u ju: | |||
xis (_ =ksIs | |||
xus (_ =ks@s | |||
xu (a =kSu: | |||
lu) x (ur gZ | |||
?3 lu) xu (r gZU@ | |||
lu) xu (r gZU@ | |||
xure (_ kS%U@ | |||
.group y |
@@ -1,132 +1,190 @@ | |||
// This file is UTF8 encoded | |||
// Spelling-to-phoneme words for Basque | |||
b be | |||
c ze | |||
d de | |||
f efe | |||
g ge | |||
h atSe | |||
j xota | |||
k ka | |||
l ele | |||
m eme | |||
n ene | |||
ñ en^e | |||
p pe | |||
q ku | |||
r eR2e | |||
s ese | |||
t te | |||
v uBe | |||
w uBe||bikoitza | |||
x iSa | |||
y i||grekoa | |||
z zeta | |||
_a a | |||
_e e | |||
_i i | |||
_o o | |||
_u u | |||
// numbers | |||
_0 zer'o | |||
_1 b'at | |||
_2 b'i | |||
_3 hir'u | |||
_4 l'aU | |||
_5 b'ost | |||
_6 s'eI | |||
_7 zazp'i | |||
_8 zort'i | |||
_9 beD'eratzi | |||
_10 am'aR2 | |||
_11 am'aIka | |||
_12 amaB'i | |||
_13 ama'ir,u | |||
_14 amal'aU | |||
_15 amaB'ost | |||
_16 amas'eI | |||
_17 amazazp'i | |||
_18 emezort'i | |||
_19 emeretz'i | |||
_20 hoQ'eI | |||
_2X hoQ'eIta | |||
_40 b'eR2oQeI | |||
_4X b'eR2oQeIta2 | |||
_60 ir'uroQeI | |||
_6X ir'uroQeIta2 | |||
_80 l'aUroQeI | |||
_8X l'aUroQeIta2 | |||
_1C e'un | |||
_2C b'eR2eun | |||
_0C R2e,un | |||
_0M1 mil'a | |||
_0M2 mil^'i;oI | |||
_0and eta | |||
_dpt _koma | |||
// names of punctuation and symbol characters | |||
// functuion words | |||
// conjunctions | |||
eta $u+ $pause // and | |||
bainan $pause | |||
// pronouns | |||
ni $u+ | |||
zu $u+ | |||
hura $u+ | |||
gu $u+ | |||
zuek $u+ | |||
haiek $u+ | |||
nire $u+ // possessive | |||
zure $u+ | |||
haren $u+ | |||
bere $u+ | |||
gure $u+ | |||
zuen $u+ | |||
haien $u+ | |||
beren $u+ | |||
hau $u+ // this | |||
hori $u+ // that | |||
hura $u+ // that (further) | |||
// auxillary verbs | |||
izan $u // to be | |||
naiz $u | |||
zara $u | |||
da $u | |||
gara $u | |||
zarete $u | |||
dira $u | |||
egon $u // to be | |||
nago $u | |||
zaude $u | |||
gaude $u | |||
zaudete $u | |||
daute $u | |||
// gramatical suffixes which can appear as words appended to numbers etc. | |||
// Should these be in eu_rules ?? | |||
a $u | |||
an $u | |||
ean $u | |||
eko $u | |||
era $u | |||
ko $u | |||
etxe $1 $only | |||
// This file is UTF8 encoded | |||
// Spelling-to-phoneme words for Basque | |||
b be | |||
c ze | |||
d de | |||
f 'efe | |||
g ge | |||
h 'atSe | |||
j J'ota | |||
k ka | |||
l 'ele | |||
m 'eme | |||
n 'ene | |||
ñ 'en^e | |||
p pe | |||
q ku | |||
r 'eR2e | |||
s 'ese | |||
t 'te | |||
v 'uBe | |||
w 'uBe||bikoitza | |||
x 'iSa | |||
y i||gr'ekoa | |||
z 'z'eta | |||
_a a | |||
_e e | |||
_i i | |||
_o o | |||
_u u | |||
// numbers | |||
_0 zer'o | |||
_1 b'at | |||
_2 b'i | |||
_3 'iru | |||
_4 l'aU | |||
_5 b'ost | |||
_6 s'eI | |||
_7 z'azpi | |||
_8 z'ortzi | |||
_9 beD'eratzi | |||
_10 am'aR2 | |||
_11 am'aIka | |||
_12 am'aBi | |||
_13 am'aIru | |||
_14 am'alaU | |||
_15 am'aBost | |||
_16 am'aseI | |||
_17 am'azazpi | |||
_18 em'ezortzi | |||
_19 em'eretzi | |||
_20 oQ'eI | |||
_2X oQeIta | |||
_40 beR2oQ'eI | |||
_4X beR2oQeIta | |||
_60 iruroQ'eI | |||
_6X iruroQeIta | |||
_80 laUroQ'eI | |||
_8X laUroQeIta | |||
_1C e'un | |||
_2C beR2'eun | |||
_3C ir'ureun | |||
_4C laur'eun | |||
_5C bost'eun | |||
_6C sei'eun | |||
_7C zazp'ieun | |||
_8C zortz'ieun | |||
_9c bederatz'ieun | |||
_0C e,un | |||
_0M1 m'il^a | |||
_0M2 mil^'ioI | |||
_1M2 mil^'ioI||bat | |||
_0and eta | |||
_dpt _koma | |||
// names of punctuation and symbol characters | |||
_. p'untu | |||
_, k'oma | |||
_- gid'oI | |||
_! arr'idura | |||
_? gald'era | |||
_: b'i||p'untu | |||
_; p'untu||eta||k'oma | |||
// functuion words | |||
// conjunctions | |||
eta $u+ $pause // and | |||
baina $u+ $pause | |||
// pronouns | |||
ni $1 | |||
zu $1 | |||
hura $1 | |||
gu $1 | |||
zuek $1 | |||
haiek $1 | |||
nire $u+ | |||
zure $u+ | |||
haren $u+ | |||
bere $u+ | |||
gure $u+ | |||
zuen $u+ | |||
haien $u+ | |||
beren $u+ | |||
hau $1 // this | |||
honen $1 | |||
hauen $1 | |||
hori $1 // that | |||
horren $1 // genitive | |||
hura $1 // that (further) | |||
haien $1 // genitive | |||
// Some auxiliary verbs | |||
gara $2 | |||
zara $2 | |||
dira $2 | |||
// gramatical suffixes which can appear as words appended to numbers etc. | |||
// Should these be in eu_rules ?? | |||
a $u | |||
ak $u | |||
an $u | |||
ean $u | |||
etan $u | |||
eko $u | |||
etarako $u | |||
ko $u | |||
era $u | |||
ra $u | |||
etara $u | |||
// Other words (mostly nouns) | |||
// Bisillabic words which have the stres always in the first syllable | |||
kaixo $1 | |||
testu $1 | |||
lehia $1 | |||
patu $1 | |||
// Bisillabic words whitch get misspronounced with the suffix list | |||
etxe $1 $only | |||
kale $1 $only | |||
aste $1 $only | |||
urte $1 $only | |||
// j as [x] | |||
jipoi x'ipoi | |||
// other | |||
aerobiko $3 | |||
aerodinamiko $5 | |||
aerodinamika $5 | |||
aerodromo $3 | |||
aerometro $3 | |||
aeromodelismo $6 | |||
aeronauta $4 | |||
aeronautika $4 | |||
aeronautiko9 $4 | |||
aerosol $4 | |||
aerostatika $4 | |||
aerostato $4 | |||
adrenalina adrenalin2a | |||
aharraus $2 | |||
aharrausika $2 | |||
ahur aur $only | |||
ahurr auR2 | |||
// Abbreviations | |||
adib ad'ibidez $hasdot | |||
// proper names and surnames | |||
juan xw'an | |||
jorge x'orxe | |||
jose x'ose | |||
josé x'os'e | |||
joaquín xoak'in | |||
san $u | |||
santo $u | |||
aristoteles $3 | |||
hume x'iUm | |||
nietztsche n'itSe | |||
abako $1 |
@@ -1,147 +1,250 @@ | |||
// This file is UTF8 encoded | |||
// Spelling-to-phoneme rules for Basque | |||
.group a | |||
a a | |||
ai aI | |||
au aU | |||
.group b | |||
b b | |||
.group c | |||
c k | |||
c (e s | |||
c (i s | |||
.group d | |||
d d | |||
Ki) d (A J | |||
dd J | |||
A) d (A D // ?? | |||
.group e | |||
e e | |||
ei eI | |||
eu eU | |||
&) ek (_S2 ek | |||
.group f | |||
f f | |||
.group g | |||
g g | |||
A) g (A Q // ?? | |||
.group h | |||
h // silent | |||
.group i | |||
i i | |||
.group j | |||
j J // try [x] [J] [j] [J^] [Z] [S] | |||
.group k | |||
k k | |||
.group l | |||
l l | |||
ll l^ | |||
Ki) l (A l^ | |||
.group m | |||
m m | |||
.group n | |||
n n | |||
Ki) n (A n^ | |||
.group ñ | |||
ñ n^ | |||
.group o | |||
o o | |||
oi oI | |||
.group p | |||
p p | |||
.group q | |||
q k | |||
qu kw | |||
que (_ k | |||
.group r | |||
r r | |||
_) r R2 | |||
r (_ R2 | |||
rr R2 | |||
.group s | |||
s s | |||
.group t | |||
t t | |||
Ki) t (A c | |||
ts ts | |||
tt c | |||
tx tS | |||
tz tz | |||
.group u | |||
u u | |||
.group v | |||
v v | |||
.group w | |||
w w | |||
.group x | |||
x S | |||
.group y | |||
y j | |||
K) y (K i | |||
.group z | |||
z z | |||
.group | |||
ç s | |||
ü Y | |||
// This file is UTF8 encoded | |||
// Spelling-to-phoneme rules for Basque | |||
.L01 b d g | |||
.L02 e i | |||
.group a | |||
a a | |||
ai aI | |||
ahi aI | |||
au aU | |||
ahu aU | |||
a (_S1t a | |||
ak (_S2t ak | |||
ari (_S3t ari | |||
aren (_S4t a**en | |||
arekin (_S6t a**ekin | |||
arentzat (_S8t a**entzat | |||
arentzako (_S9t arentzako | |||
an (_S2t an | |||
atik (_S4t atik | |||
ara (_S3t a**a | |||
arat (_S4t arat | |||
atatik (_S6t atatik | |||
atara (_S5t ata**a | |||
atarat (_S5t atarat | |||
ako (_S3t ako | |||
atako (_S5t atako | |||
araino (_S6t a**ain^o | |||
ataraino (_S8t ata**an^o | |||
arantz (_S6t a**antz | |||
atarantz (_S8t a**antz | |||
agana (_S5t agana | |||
arengana (_S8t a**engana | |||
arenganaino (_s11 a**enganain^o | |||
arengatik (_S9t a**engatik | |||
atzat (_S5t atzat | |||
.group b | |||
b b | |||
_ez_) b (A p' | |||
.group c | |||
c k | |||
c (L02 T | |||
.group d | |||
d d | |||
dd J | |||
A) d (A D // ?? | |||
_ez_) d (A t' | |||
.group e | |||
e e | |||
ei eI | |||
ehi eI | |||
l) ehi (A eI | |||
eu eU | |||
ek (_S2t ek | |||
ei (_S2t eI | |||
en (_S2t en | |||
ean (_S3t ean | |||
etan (_S4t etan | |||
etatik (_S6t etatik | |||
etara (_S5t eta**a | |||
erat (_S4t erat | |||
etako (_S5t etako | |||
eko (_S3t eko | |||
etarako (_S7t etarako | |||
etarantz (_S8t eta**antz | |||
etaraino (_S8t eta**aino | |||
engana (_S6t engana | |||
entzat (_S6t entzat | |||
entzako (_S7t entzako | |||
engatik (S7 engatik | |||
ekin (_S4t ekin | |||
ekiko (_S5t ekiko | |||
ez (_S2t ez | |||
etaz (_S4t etaz | |||
.group f | |||
f f | |||
.group g | |||
g g | |||
A) g (A Q // ?? | |||
_ez_) g (A k' | |||
gana (_S4t gana | |||
go (_S2t go | |||
.group h | |||
h // silent | |||
zi) h (o x | |||
.group i | |||
i i | |||
K) i (_S1t i | |||
ad) i (eraz j | |||
le) i (h j | |||
arraz) i (on j | |||
.group j | |||
j J // try [x] [J] [j] [J^] [Z] [S] | |||
ad) j (udika x | |||
.group k | |||
k k | |||
ko (_S2t ko | |||
.group l | |||
l l | |||
ll l^ | |||
_ez_) l (A l' | |||
.group m | |||
m m | |||
.group n | |||
n n | |||
n (_S1t n | |||
adrenali) n n2 | |||
admi) n (istr n2 | |||
.group o | |||
o o | |||
oi oI | |||
.group p | |||
p p | |||
.group q | |||
q k | |||
.group r | |||
r r | |||
_) r R2 | |||
rr R2 | |||
A) ri (_S2t ri | |||
ren (_S3t ren | |||
ra (_S2t ra | |||
rat (_S3 t rat | |||
rantz (_S5t rantz | |||
raino (_S5t raino | |||
rako (_S4t rako | |||
rentzat (_S7t rentzat | |||
rentzako (_S8t rentzako | |||
rekin (_S5t rekin | |||
rengan (_S6t rengan | |||
rengana (_S7t rengana | |||
rengandik (_S9t rengandik | |||
rengatik (_S8t rengatik | |||
.group s | |||
s s | |||
.group t | |||
t t | |||
ts ts | |||
tt c | |||
tx tS | |||
tz tz | |||
tan (_S3t tan | |||
tara (_S4 t tara | |||
tarat (_S5t tarat | |||
tik (_S3t tik | |||
tatik (_S5t tatik | |||
taz (_S3t taz | |||
tu (_S2t tu | |||
tuko (_S4t tuko | |||
tzen (_S4t tzen | |||
ten (_S3t ten | |||
.group u | |||
u u | |||
.group v | |||
v b | |||
.group w | |||
w u | |||
.group x | |||
x S | |||
.group y | |||
y jj | |||
.group z | |||
z z | |||
_e) z (_L01 %z | |||
_e) z (_l | |||
z (_S1t z | |||
.group | |||
á ''a | |||
é ''e | |||
í ''i | |||
ó ''o | |||
ú ''u | |||
ç s | |||
ü Y | |||
ñ n^ | |||
@@ -81,7 +81,7 @@ | |||
.group c | |||
c ts | |||
ch h | |||
ch x | |||
ch (i C | |||
chi (A hj | |||
psy) chi (a hi |
@@ -120,6 +120,11 @@ _− m'enUs | |||
½ m'eIU | |||
¾ tRes#kw'a*@-tUs# | |||
® xeZistR'adU | |||
↑ s'Et&as'im& | |||
↓ s'Et&ab'aISU | |||
← s'Et&aes#k'e*@-d& | |||
?2 → s'Et&adZi*eIt& | |||
?1 ™ m'a*@-k&xeZiSt'ad& | |||
?2 ™ m'a*@-k&xeZistR'ad& | |||
_, v'irgul& | |||
@@ -694,14 +699,18 @@ ampola $alt2 | |||
ampulheta $alt2 | |||
anchova $alt2 | |||
andorra $alt2 | |||
andrea $alt | |||
andreia $alt | |||
antonieta $alt2 | |||
apego $alt2 $noun | |||
apelo $alt2 $noun | |||
apelos $alt2 | |||
aposto $alt $verb | |||
aperto $alt2 $noun | |||
apertos $alt2 | |||
apneia $alt | |||
apoio $alt $verb | |||
aqueia $alt | |||
arredores $alt | |||
arremesso $alt2 $noun | |||
arrocho $alt2 $noun | |||
@@ -722,9 +731,12 @@ açores $alt2 | |||
bairro b'aIxU | |||
baitola $alt2 | |||
balancete $alt2 | |||
bangladesh $alt | |||
banquete $alt2 | |||
barreto $alt2 | |||
basileia $alt | |||
bastonete $alt2 | |||
baviera $alt | |||
beco $alt2 | |||
besta $alt2 | |||
beça $alt | |||
@@ -753,14 +765,17 @@ broto $alt2 $noun | |||
buceta $alt2 | |||
cabresto $alt2 | |||
cacete $alt2 | |||
cacoete $alt2 | |||
caderneta $alt2 | |||
cadete $alt2 | |||
caibro k'aIbRU | |||
cãibra k'&~IbR& | |||
caixeta $alt2 | |||
caldeia $alt | |||
camelha $alt | |||
camiseta $alt2 | |||
canaleta $alt2 | |||
cananeia $alt | |||
canhoto $alt2 | |||
capacete $alt2 | |||
caractere $alt | |||
@@ -775,18 +790,16 @@ catequeses $alt | |||
catorze $alt2 | |||
cavalete $alt2 | |||
cebola $alt2 | |||
cedro $alt | |||
cefaleia $alt | |||
centopeia $alt | |||
cerebelo $alt2 | |||
cerca $alt $verb | |||
cerco $alt $verb | |||
cetro $alt | |||
chamego $alt2 $verb | |||
chamegos $alt2 | |||
chamego $alt2 | |||
chamego $alt $verb | |||
chapeleta $alt2 | |||
chaveta $alt2 | |||
chefe $alt | |||
choco $alt2 $noun | |||
choça $alt | |||
chofer $alt | |||
@@ -823,7 +836,6 @@ controles $alt2 | |||
controles $alt $verb | |||
controlo $alt2 $noun | |||
conveses $alt | |||
copta $alt | |||
coreia $alt | |||
cores $alt2 | |||
cores $alt $verb | |||
@@ -835,8 +847,10 @@ coro $alt $verb | |||
corpete $alt2 | |||
corpos $alt | |||
corto $alt | |||
corveia $alt | |||
corveta $alt2 | |||
corvos $alt | |||
cosme $alt | |||
costeleta $alt2 | |||
coto $alt2 | |||
cotovelo $alt2 | |||
@@ -844,11 +858,14 @@ cozem $alt | |||
cratera $alt | |||
crede $alt2 | |||
credo $alt | |||
crimeia $alt | |||
decoreba $alt | |||
decoro $alt2 $noun | |||
degelo $alt2 | |||
desaforo $alt2 | |||
desamores $alt2 | |||
desapego $alt2 $noun | |||
desapego $alt2 | |||
desapego $alt $verb | |||
desassossego $alt2 $noun | |||
desconfortos $alt2 | |||
desconsolo $alt2 $noun | |||
@@ -857,6 +874,7 @@ descordo $alt | |||
descorno $alt | |||
desemprego $alt2 | |||
desemprego $alt $verb | |||
desenvolto $alt2 | |||
desespero $alt2 | |||
desespero $alt $verb | |||
desfecho $alt2 | |||
@@ -869,6 +887,8 @@ desse $alt2 | |||
desse $alt $verb | |||
deste $alt2 | |||
deste $alt $verb | |||
destempero $alt2 $noun | |||
destemperos $alt2 | |||
desterro $alt2 | |||
destroem $alt | |||
deteriore $alt | |||
@@ -892,7 +912,8 @@ doso $alt | |||
doze $alt2 | |||
dueto $alt2 | |||
edson $alt | |||
elixir eliSir | |||
egeia $alt | |||
eleia $alt | |||
emborco $alt | |||
emprego $alt2 | |||
emprego $alt2 $noun | |||
@@ -900,6 +921,7 @@ encasqueta $alt | |||
encosto $alt $verb | |||
endereço $alt $verb | |||
endoide $alt2 | |||
eneias $alt | |||
enforco $alt | |||
engodo $alt2 | |||
engordo $alt | |||
@@ -976,6 +998,7 @@ força $alt $verb | |||
forço $alt | |||
formos $alt2 | |||
forro $alt $verb | |||
fosso $alt2 | |||
frescores $alt2 | |||
frevo $alt2 | |||
fulgores $alt2 | |||
@@ -993,7 +1016,6 @@ gesso $alt2 | |||
gloso $alt | |||
gonorreia $alt | |||
gol gow | |||
golpe $alt | |||
gorda $alt2 | |||
gorjeta $alt2 | |||
gororoba $alt | |||
@@ -1003,6 +1025,7 @@ gota $alt2 | |||
governo $alt2 | |||
governo $alt $verb | |||
gozo $alt2 $noun | |||
gozos $alt2 | |||
graveto $alt2 | |||
groselha $alt | |||
grosso $alt2 | |||
@@ -1028,6 +1051,7 @@ jogo $alt $verb | |||
jogos $alt | |||
joguete $alt2 | |||
judeia $alt | |||
jurubeba $alt | |||
lacerda $alt | |||
lagosta $alt2 | |||
lambreta $alt2 | |||
@@ -1043,13 +1067,11 @@ lopes $alt | |||
lutero $alt | |||
macete $alt2 | |||
maioneses $alt | |||
manopla $alt | |||
maniçoba $alt | |||
marieta $alt2 | |||
mariposa $alt2 | |||
megera $alt | |||
melhor $alt | |||
menor $alt | |||
meta $alt $noun | |||
metro $alt | |||
minueto $alt2 | |||
@@ -1064,7 +1086,6 @@ moem $alt | |||
mofo $alt $verb | |||
mogno $alt | |||
molho $alt2 $noun | |||
monera $alt | |||
montenegro $alt2 | |||
mor $alt | |||
morcego $alt2 | |||
@@ -1077,6 +1098,7 @@ namoro $alt2 $noun | |||
naquela $nounf | |||
naquele $alt2 $nounf | |||
nervo $alt2 | |||
niceia $alt | |||
ninfeta $alt2 | |||
nitreto $alt2 | |||
nojo $alt2 | |||
@@ -1097,8 +1119,11 @@ pacheco $alt2 | |||
paexa paeSa | |||
paella pa'el^& | |||
palacete $alt2 | |||
palermo $alt | |||
palimpsesto $alt2 | |||
palheta $alt2 | |||
palhoça $alt | |||
panaceia $alt | |||
pangeia $alt | |||
pantera $alt | |||
papoco $alt2 $noun | |||
@@ -1106,7 +1131,7 @@ paradoxo $alt | |||
parede $alt2 | |||
pateta $alt | |||
peba $alt | |||
pedra $alt | |||
pedro $alt2 | |||
peixoto $alt2 | |||
pela $alt2 | |||
pelo $alt2 | |||
@@ -1120,6 +1145,7 @@ pesadelo $alt2 | |||
peses $alt | |||
peseta $alt2 | |||
peso $alt $verb | |||
pigmeia $alt | |||
piloto $alt2 $noun | |||
pilotos $alt2 | |||
pior $alt | |||
@@ -1130,6 +1156,7 @@ plebeia $alt | |||
poderem $alt2 | |||
polca $alt | |||
pompeia $alt | |||
popa $alt2 | |||
porcos $alt | |||
porque $alt2 | |||
porra $alt2 | |||
@@ -1153,6 +1180,7 @@ quitinete $alt | |||
quinteto $alt2 | |||
ramalhete $alt2 | |||
rancores $alt2 | |||
ranheta $alt2 | |||
raposa $alt2 | |||
recomeço $alt $verb | |||
reconstroem $alt | |||
@@ -1228,10 +1256,10 @@ sulfureto $alt2 | |||
super s'Uper | |||
suporto $alt | |||
suor suOr | |||
tabefe $alt | |||
tambores $alt2 | |||
tapera $alt | |||
tapete $alt2 | |||
tebas $alt | |||
temores $alt2 | |||
tempero $alt2 $noun | |||
tenores $alt2 | |||
@@ -1249,6 +1277,7 @@ torno $alt $verb | |||
tornozelo $alt2 | |||
torre $alt2 $noun | |||
torres $alt2 | |||
torreta $alt2 | |||
torro $alt | |||
toso $alt | |||
totens $alt | |||
@@ -1264,6 +1293,7 @@ tropa $alt | |||
tropeço $alt2 $noun | |||
trombeta $alt2 | |||
ureia $alt | |||
uretra $alt | |||
vanessa $alt2 | |||
vareta $alt2 | |||
vera $alt | |||
@@ -1277,7 +1307,6 @@ voga $alt | |||
voice $alt | |||
xarope $alt | |||
xereta $alt2 | |||
xerox S'E*Oks | |||
xeroxes $alt | |||
zelo $alt2 $noun | |||
zorra $alt2 | |||
@@ -1314,7 +1343,7 @@ doc d'Ok | |||
?2 designer dez'aIner | |||
?2 designers dez'aIners | |||
?2 desktops deskt'Ops | |||
dj d,i:dZ'eI | |||
?1 dj d,i:dZ'eI | |||
?2 diesel dZ'izEU | |||
?2 doha d'ox& | |||
?1 down d'a,wn | |||
@@ -1349,6 +1378,7 @@ get gEt | |||
?1 hardware 'ard,w'Er- | |||
?2 hardware h'ardwe@- | |||
happy x'Epy | |||
?2 haxixe xaS'iSy | |||
?1 home 'omy | |||
?2 home h'owmi | |||
hot xOt | |||
@@ -1424,9 +1454,10 @@ upgrade &pgR'eId | |||
upload &pl'oud | |||
?2 web w'Eb | |||
writer r'aIter | |||
xerox S'E*Oks | |||
?1 yahoo 'i,ah'u | |||
?2 yahoo iah'u | |||
?1 yes j'Es | |||
yes j'Es | |||
// common person names | |||
@@ -1470,7 +1501,6 @@ mac mEk | |||
?2 microsoft m'aIkRows'Oft | |||
?1 movie m'uvi | |||
?1 nero n'Eru | |||
?2 nero n'ErU | |||
?2 netbooks nEtbUks | |||
?2 notebook nowtbUk | |||
?2 notebooks nowtbUks |
@@ -1,4 +1,4 @@ | |||
// translation rules Brazilian | |||
// translation rules Brazilian | |||
// This file is UTF-8 encoded | |||
// Options | |||
@@ -22,6 +22,7 @@ | |||
.L05 r ra ram re rem rde rmo | |||
.L06 r ra ram ste sse ssem re rem rmo | |||
.L07 sse ssem ste | |||
.L08 a o | |||
.group a | |||
@@ -201,7 +202,7 @@ | |||
e (dL02_ E | |||
e (fa_ E | |||
e (fL04_ E | |||
e (gL04_ E | |||
@@ -218,16 +219,16 @@ | |||
ib) e (rL04_ E | |||
d) e (rL04_ E | |||
eb) e (L07_ e // recebeste, etc. | |||
ed) e (rL04_ e | |||
eg) e (L07_ e // elegeste, etc. | |||
_@o) e (L07_ e // doeste, etc. | |||
iv) e (rL04_ E | |||
pod) e (rA_ e | |||
@s) e (L05_ E | |||
p) e (rL04_ E | |||
f) e (rL04_ E | |||
n) e (rL04_ E | |||
p) e (rL04_ E | |||
e (quL02_ E | |||
e (rbL04_ E | |||
e (rgL04_ E | |||
@@ -241,19 +242,12 @@ | |||
?2 ee (C_ i | |||
?2 C) e (em_ e | |||
e (stL04_ E | |||
e (strL04_ E | |||
e (rme_ E | |||
e (rnL04_ E | |||
e (rtL04_ E | |||
e (rrL04_ E | |||
e (rvL04_ E | |||
e (tL04_ E | |||
m) e (tL03_ e | |||
An) e (tA_ e | |||
@@ -345,6 +339,7 @@ | |||
ef) e (tuL02_ e | |||
t) e (tra E | |||
e (drL04_ E | |||
âC) e (C@ e | |||
âCC) e (C@ e | |||
@@ -357,6 +352,7 @@ | |||
éCC) e (CA_ e | |||
éCCC) e (C@ e | |||
?2 íC) el (_ eU | |||
í) e (C@ e | |||
íC) e (C@ e | |||
íCC) e (C@ e | |||
óC) e (C@ e | |||
@@ -375,6 +371,8 @@ | |||
_pud) e (L05_ E | |||
_exag) e (L05_ E | |||
_mulh) e (L05_ E | |||
_chancel) e (L05_ E | |||
vi) e (L05_ E | |||
_talh) e (L05_ E | |||
_troux) e (L05_ E | |||
@m) e (L06_ e // temeram, etc. | |||
@@ -384,19 +382,15 @@ _troux) e (L05_ E | |||
diss) e (L06_ E // contra- | |||
romp) e (L06_ e // cor- inter- | |||
_houv) e (L06_ E | |||
_escond) e (L06_ e | |||
respond) e (L06_ e | |||
sCond) e (L06_ e // esconderam, etc. | |||
constrang) e (L07_ e | |||
eb) e (L07_ e // recebeste, etc. | |||
eg) e (L07_ e // elegeste, etc. | |||
_@o) e (L07_ e // doeste, etc. | |||
_cr) e (L07_ e | |||
_dev) e (L07_ e | |||
bat) e (L07_ e // re- com- | |||
ced) e (L07_ e // pro- con- su- | |||
met) e (L07_ e // meteste, cometeste, etc. | |||
mex) e (L07_ e | |||
_requer) e (L07_ e | |||
_requer) e (L07_ e | |||
prouv) e (L07_ e | |||
mov) e (L07_ e // re- co- | |||
olv) e (L07_ e // devolveste, etc. | |||
@@ -408,8 +402,8 @@ precav) e (L07_ e | |||
_coz) e (L07_ e | |||
_val) e (L07_ e | |||
colh) e (L07_ e // & es- | |||
_lamb) e (L07_ e | |||
_prov) e (L07_ e | |||
_lamb) e (L07_ e | |||
_prov) e (L07_ e | |||
ench) e (L07_ e // pre- | |||
vert) e (L07_ e // in- re- con- | |||
ergu) e (L07_ e | |||
@@ -427,11 +421,12 @@ _troux) e (L07_ E | |||
_amanc) e (bL03_ E | |||
qu) e (brL04_ E | |||
_perp) e (trL04_ E | |||
_assev) e (rL04_ E | |||
sev) e (rL04_ E | |||
_imp) e (trL04_ E | |||
cel) e (brL04_ E | |||
_sop) e (sL04_ E | |||
_C) e (bre_ E | |||
_barb) e (tA_ e | |||
_boch) e (chL04_ e | |||
_ex) e (crL04_ E | |||
impr) e (gnL04_ E | |||
@@ -440,56 +435,47 @@ _amanc) e (bL03_ E | |||
_sob) e (rbL03_ e | |||
_pr) e (dL03_ E | |||
_arr) e (dL03_ E | |||
_emp) e (drL03_ E | |||
_enc) e (dL03_ E | |||
_api) e (dL03_ E | |||
_enc) e (dL03_ E | |||
_api) e (dL03_ E | |||
_depr) e (dL03_ E | |||
_hosp) e (dL03_ E | |||
_enver) e (dL03_ E | |||
_) e (dnL03_ E | |||
_gr) e (gL03_ e | |||
_gal) e (gL03_ e | |||
_alvin) e (grL03_ e | |||
_) e (dnL08_ E | |||
_gr) e (gL08_ e | |||
_gal) e (gL08_ e | |||
_lanc) e (tA_ e | |||
menorr) ei (a_ EI | |||
_pel) e (gL03_ e | |||
_n) e (grL03_ e | |||
_pel) e (gL08_ e | |||
n) e (grL08_ e | |||
estr) ei (L04_ EI | |||
_confed) e (rL04_ E | |||
_r) e (jL03_ E | |||
_inv) e (jL04_ E | |||
_panfl) e (tL04_ e | |||
_v) e (lhL03_ E | |||
_v) e (lhL08_ E | |||
_gr) e (lhL04_ E | |||
_tataran) e (tA_ E | |||
_tetran) e (tA_ E | |||
_trin) e (tA_ E | |||
_tataran) e (tL08_ E | |||
_tetran) e (tL08_ E | |||
_trin) e (tL08_ E | |||
_caC) e (lo_ e | |||
_porr) e (tA_ e | |||
_porr) e (tA_ e | |||
_livr) e (tA_ e | |||
?2 el (ton_ 'EU | |||
ad) e (quL04_ E | |||
_ing) e (rL02_ E | |||
_dig) e (rL02_ E | |||
_m) e (rL03_ E | |||
_sev) e (rL03_ E | |||
_reit) e (rL04_ E | |||
_sinc) e (rL03_ E | |||
_sinc) e (rL08_ E | |||
_g) e (rL04_ E | |||
_z) e (rL04_ E | |||
qu) e (rL04_ E // re- | |||
_on) e (rL04_ E | |||
gen) e (rL04_ E // de- re- | |||
_alt) e (rL04_ E | |||
_enc) e (rL04_ E | |||
_esm) e (rL04_ E | |||
_esm) e (rL04_ E | |||
_min) e (rL04_ E | |||
_sug) e (rL04_ E | |||
_tol) e (rL04_ E | |||
_ven) e (rL04_ E | |||
acel) e (rL04_ E // des- | |||
eson) e (rL04_ E | |||
_apod) e (rL04_ E | |||
_enum) e (rL04_ E | |||
_exub) e (rL04_ E | |||
@@ -497,23 +483,21 @@ _adult) e (rL04_ E | |||
_aglom) e (rL04_ E | |||
_dilac) e (rL04_ E | |||
_encarc) e (rL04_ E | |||
_incin) e (rL04_ E | |||
_persev) e (rL04_ E | |||
_refrig) e (rL04_ E | |||
_c) e (rcL02_ E | |||
_ex) e (rcL02_ E | |||
_alic) e (rcL02_ E | |||
_esqu) e (rdL03_ e | |||
_esqu) e (rdL08_ e | |||
_C) e (rdL04_ E | |||
_des) e (rdL04_ E | |||
_oblit) e (rL04_ E | |||
_oblit) e (rL04_ E | |||
s_colh) e (res_ E | |||
_) e (rgL03_ e | |||
_re) e (rgL03_ e | |||
_so) e (rgL03_ e | |||
sp) e (rma_ E | |||
e (rquL02_ E | |||
_bez) e (rrL03_ e | |||
_beC) e (rrL08_ e | |||
v) e (rtL03_ e // con- re- in- | |||
_f) e (rvL03_ e | |||
_alic) e (rçL03_ E | |||
@@ -525,7 +509,7 @@ s_colh) e (res_ E | |||
_p) e (scL03_ E | |||
_m) e (sclL04 E | |||
dioc) e (ses_ E | |||
_aust) e (rA_ E | |||
_aust) e (rL08_ E | |||
_d) e (spL02_ E | |||
proc) e (ssL02_ E | |||
_p) e (squL02_ E | |||
@@ -535,20 +519,20 @@ s_colh) e (res_ E | |||
_ac) e (ssL02_ E | |||
_esp) e (ssL03_ e | |||
_c) e (stL03_ e | |||
_pr) e (tL03_ e | |||
_pr) e (tL08_ e | |||
_rem) e (tL03_ e | |||
_derr) e (tL03_ e | |||
_obsol) e (tL03_ e | |||
_obsol) e (tL08_ e | |||
_bol) e (tL04_ e | |||
_CaC) e (ta_ e | |||
_minu) e (tA_ e | |||
_terc) e (tA_ e | |||
viol) e (ta_ e | |||
_Carr) e (ta_ e | |||
_Gur) e (ta_ e | |||
_Gur) e (ta_ e | |||
_pen) e (trL04_ E | |||
_sol) e (trL04_ E | |||
_n) eu (trL03_ 'eU | |||
_n) eu (trL08_ 'eU | |||
_d) e (vL03_ e | |||
scr) e (vL03_ e // e- in- pre- ree- de- | |||
_atr) e (vL03_ e | |||
@@ -632,7 +616,7 @@ _redar) gu (A gw | |||
san) gu (ín gw | |||
san) gu (in gw | |||
stin) gu (A gw | |||
_un) gu (ento_ gw | |||
_un) gu (ento_ gw | |||
xtin) gu (A gw | |||
?1 n) gu (A gw // eg: língua, etc. | |||
?1 man) gu (ei g // mangueira | |||
@@ -891,6 +875,7 @@ _redar) gu (A gw | |||
b) o (rL04_ O | |||
o (p_ O | |||
C) o (pL04_ O | |||
o (pCL04_ O | |||
?1 _) o (C O // eg: olá, orla, opção, etc... | |||
?1 _C) o (CACAC u // Documento, documentação, localizar, etc. | |||
?1 f) o (rmat u // formatar, formato. | |||
@@ -920,16 +905,16 @@ _redar) gu (A gw | |||
//sort | |||
_f) o (L05_ o | |||
_red) o (L05_ O | |||
_pormen) o (L05_ O | |||
men) o (L05_ O | |||
_f) o (L07_ o | |||
_s) o (bL02_ O | |||
_af) o (bL04_ O | |||
_esn) o (bL04_ O | |||
_engl) o (bL04_ O | |||
_sal) o (brL03_ o | |||
_) o (cL03_ o | |||
_barr) o (cL03_ o | |||
_ch) o (chA_ o | |||
_sal) o (brL08_ o | |||
_) o (cL08_ o | |||
_barr) o (cL08_ o | |||
_ch) o (chL08_ o | |||
_m) o (chA_ o | |||
_f) o (dL01_s o | |||
_ecl) o (dL03_ o | |||
@@ -944,7 +929,7 @@ _pormen) o (L05_ O | |||
_ap) oi (L02_ OI | |||
_b) oi (L04_ OI | |||
_C) oi (ce_ oI | |||
_t) o (lL03_ o | |||
_t) o (lL08_ o | |||
_f) o (lgL04_ O | |||
_emp) o (lgL04_ O | |||
_arr) o (lhL03_ O | |||
@@ -953,13 +938,10 @@ _pormen) o (L05_ O | |||
_) o (bstL04_ O | |||
m) o (lhL04_ O | |||
emb) o (lsL04_ O | |||
_env) o (ltL03_ o | |||
_env) o (ltL08_ o | |||
_esC) o (pA_ o | |||
antr) o (pL03_ o | |||
_s) o (prL04_ O | |||
_al) o (prL04_ O | |||
_ass) o (prL04_ O | |||
_) o (ptL04_ O | |||
g) ol (pe_ Ow | |||
antr) o (pL08_ o | |||
flex) o (rA_ | |||
p) o (rL02_ o | |||
_dev) o (rL02_ O | |||
@@ -1004,13 +986,14 @@ _pormen) o (L05_ O | |||
?1 ovos (_G Ov=UZ novos, povos, etc. | |||
?2 ovos (_G Ov=Uz novos, povos, etc. | |||
ortos (_ O*@-t=Us# // tortos, mortos, etc. | |||
_Gar) o (tL03_ o | |||
_escr) o (tL03_ o | |||
_Gar) o (tL08_ o | |||
_escr) o (tL08_ o | |||
zig) o (to_ o | |||
_ch) o (vL01_ o | |||
pr) o (vL03_ O | |||
_Com) o (do_ o | |||
_ortod) o (xL03_ O | |||
_ortod) o (xL08_ O | |||
_arr) ox (A OS | |||
_g) o (zL04_ O | |||
_alm) o (çL01_ O | |||
_esb) o (çL01_ O | |||
@@ -1019,7 +1002,7 @@ _ortod) o (xL03_ O | |||
_ad) o (çL03_ O | |||
_emp) o (çL03_ O | |||
_end) o (çL03_ O | |||
_c) o (çL03_ O | |||
_c) o (çL03_ O | |||
//endsort | |||
.group ô | |||
@@ -1229,11 +1212,9 @@ _ortod) o (xL03_ O | |||
.group x | |||
x (A S | |||
A) x (A ks | |||
e) x (A ks | |||
_e) x (A z | |||
_ê) x (A z | |||
_ine) x (A z | |||
_ine) x (orAC ks | |||
e) x (A ks | |||
?1 e) x (CA S | |||
ai) x (A S | |||
ei) x (A S | |||
@@ -1254,7 +1235,6 @@ _ortod) o (xL03_ O | |||
xA) x (A S | |||
_abaca) x (i S | |||
ale) x (a S | |||
_arro) x (e S | |||
_ave) x (A S | |||
bau) x (A S | |||
brA) x (A S | |||
@@ -1263,6 +1243,7 @@ _abaca) x (i S | |||
_ca) x (A S | |||
_co) x (A S | |||
_coe) x (A z | |||
_eli) x (ir S | |||
_esdrA) x (ul S | |||
_e) x (u_ S | |||
_fa) x (i S | |||
@@ -1270,6 +1251,8 @@ _esdrA) x (ul S | |||
gra) x (A S | |||
_he) x (A z | |||
?2 _he) x (A ks | |||
_ine) x (A z | |||
_ine) x (orAC ks | |||
_lagarti) x (A S | |||
_li) x (A S | |||
_lu) x (A S |
@@ -304,6 +304,7 @@ _#-லும் ilUm | |||
// English words | |||
tamil தமிழ் $text | |||
andagakavi அந்தகக்கவி $text | |||
// exceptions |
@@ -3966,7 +3966,6 @@ _பெனசீர்_) ப (ுட்டோ b | |||
//sort | |||
_மனோ) ப்ப (ல bbV | |||
_குங்) ப fV# | |||
_நீர்) ப pV# | |||
_ப்ரூ) ப fV# | |||
@@ -4677,6 +4676,7 @@ _மைக்ரோசா) ப் (ட f | |||
_ஹ) ப்ப (ர்ட bbV | |||
_துர்) ப்ப (ல bbV | |||
_முழு) ப்ப (ல bbV | |||
_மனோ) ப்ப (ல bbV | |||
உ) ப்ப (லா bbV | |||
உ) ப்ப (லாக bbV | |||
உ) ப்ப (லான bbV | |||
@@ -4719,6 +4719,7 @@ _வெளி) ப்பி (ரகார pp | |||
_சுக) ப்பி (ரச pp | |||
அதிக) ப்பி (ரசங்க pp | |||
_மலை) ப்பி (ரசங்க pp | |||
_மலை) ப்பி (ரசங்க pp | |||
_சண்ட) ப்பி (ரசண்ட pp | |||
L03) ப்பிரச (ார pprVtS | |||
_கை) ப்பி (ரசுர pp | |||
@@ -4746,6 +4747,7 @@ _சத்திய) ப்பி (ரமா pp | |||
இரத்த) ப்பி (ரவாக pp | |||
_ஒL10ி) ப்பி (ரவாக pp | |||
_மணி) ப்பி (ரவாள pp | |||
_மணி) ப்பி (ரவாள pp | |||
தேச) ப்பி (ரஷ்ட pp | |||
_ஜாதி) ப்பி (ரஷ்ட pp | |||
_வான) ப்பி (ரஸ்த pp | |||
@@ -4757,6 +4759,8 @@ _கூட்டு) ப்பி (ரார்த்தனை pp | |||
_வடை) ப்பி (ரிய pp | |||
_கஜ) ப்ப (ிருஷ்ட bb | |||
L03) ப்பி (ரேத pp | |||
L03) ப்பி (ரேத pp | |||
L03) ப்பி (ரேத pp | |||
L03) ப்பி (ரேரணை pp | |||
_ஹ) ப்ப (ிள bb | |||
_க்ள) ப்ப (ுகள bb | |||
@@ -4771,6 +4775,7 @@ _சந்தேக) ப்ப (ுத்தி bb | |||
_ல) ப்ப (ை bb | |||
_தர்) ப்ப (ை bb | |||
_மர) ப்ப (ொம்மை bb | |||
ரா) ப்ப (ோஜன bb | |||
_ரா) ப்ப (ோஜன bb | |||
துர்) ப்ப (ோதனை bb | |||
_கே) ப் (மாரி p |
@@ -80,7 +80,7 @@ If neither -f nor --stdin is given, then the text input is taken from "text word | |||
<dt> | |||
<strong>-s <integer></strong><br> | |||
<dd>Sets the speed in words-per-minute (approximate values for the default English voice, others may differ slightly). The default value is 175. I generally use a faster speed | |||
of 200. Range 80 to 450. Larger value are rounded down to the maximum. | |||
of 260. The lower limit is 80. There is no upper limit, but about 500 is probably a practical maximum. | |||
<p> | |||
<dt> | |||
<strong>-b <integer></strong><br> | |||
@@ -141,8 +141,9 @@ Some languages may need additional dictionary data, see <a href="languages.html" | |||
<p> | |||
<dt> | |||
<strong>-x</strong><br> | |||
<dd>The phoneme mnemonics, into which the input text is translated, are | |||
written to stdout. | |||
<dd>The phoneme mnemonics, into which the input text is translated, are written to stdout. | |||
If a phoneme name contains more than one letter (eg. [tS]), the --sep or --tie option can be used to distinguish | |||
this from separate phonemes. | |||
<p> | |||
<dt> | |||
<strong>-X</strong><br> | |||
@@ -167,12 +168,8 @@ The same as <strong>--compile</strong>, but source line numbers from the *_rules | |||
<dt><strong>--ipa</strong><br> | |||
<dd> | |||
Writes phonemes to stdout, using the International Phonetic Alphabet (IPA).<br> | |||
If a phoneme name contains more than one letter (eg. [tS]) an optional parameter can be used to distinguish | |||
If a phoneme name contains more than one letter (eg. [tS]), the --sep or --tie option can be used to distinguish | |||
this from separate phonemes. | |||
<br> | |||
<code>--pho=1 </code> Use a tie character (U+0361) before subsequence letters. | |||
<br> | |||
<code>--pho=2 </code> Use a zero-width-joiner (U+200D) before subsequent letters. | |||
<p> | |||
<dt><strong>--path [="<directory path>"]</strong><br> | |||
<dd> | |||
@@ -190,10 +187,18 @@ If specified, the output from -x, -X, --ipa, and --pho options is written to thi | |||
<dd> | |||
Speaks the names of punctuation characters when they are encountered in the text. If <characters> are given, then only those listed punctuation characters are spoken, eg. <code> --punct=".,;?"</code> | |||
<p> | |||
<dt><strong>--sep [=<character>]</strong><br> | |||
<dd> | |||
The character is used to separate individual phonemes in the output which is produced by the -x or --ipa options. The default is a space character. The character z means use a ZWNJ character (U+200c). | |||
<p> | |||
<dt><strong>--split [=<minutes>]</strong><br> | |||
<dd> | |||
Used with <strong>-w</strong>, it starts a new WAV file every <code><minutes></code> minutes, at the next sentence boundary. | |||
<p> | |||
<dt><strong>--tie [=<character>]</strong><br> | |||
<dd> | |||
The character is used within multi-letter phonemes in the output which is produced by the -x or --ipa options. The default is the tie character ͡ U+361. The character z means use a ZWJ character (U+200d). | |||
<p> | |||
<dt> | |||
<strong>--voices [=<language code>]</strong><br> | |||
<dd>Lists the available voices.<br> |
@@ -0,0 +1,3 @@ | |||
name basque-test | |||
language eu | |||
@@ -49,7 +49,7 @@ consonants 11 119 | |||
es-la 2 125 | |||
ca 11 127 | |||
an 5 126 | |||
eu 18 127 | |||
eu 21 129 | |||
pt 29 140 | |||
pt-pt 20 140 | |||
ro 36 148 | |||
@@ -875,7 +875,6 @@ ufric/s [s] base | |||
[z2] fr | |||
[s] ru | |||
[s] es | |||
[z] eu | |||
[z] sq | |||
[s] da | |||
[s] ar | |||
@@ -885,7 +884,6 @@ ufric/s_ [s] base | |||
[s] fr | |||
[z] fr | |||
[s] es | |||
[z] eu | |||
[z;] ro | |||
[s] sw | |||
[z] sq | |||
@@ -914,7 +912,6 @@ ufric/sh_pzd2 [S] sr | |||
[dZ] sr | |||
[S;] zh | |||
ufric/sh_rfx [s.] base | |||
[s] eu | |||
[s.] zh | |||
ufric/s_pal [s^] et | |||
ufric/s_pzd [s;] base | |||
@@ -932,6 +929,8 @@ ufric/tl# [tl#] is | |||
[tl#] kl | |||
ufric/tlh [K] nso | |||
[K] tn | |||
ufric/ts_eu [ts] eu | |||
ufric/tz_eu [tz] eu | |||
ufric/x_ [x] base | |||
ufric/x2 [x2] af | |||
[x] ku | |||
@@ -945,6 +944,7 @@ ufric/x_sr [h#] sr | |||
ufric/xx [X] base | |||
[Q"] base | |||
[Q] ka | |||
ufric/z_eu [z] eu | |||
ustop/c [c] base | |||
ustop/k [k] base | |||
[k] fr | |||
@@ -1123,8 +1123,6 @@ ustop/tr [t] base | |||
ustop/ts [ts] consonants | |||
[dz] consonants | |||
[ts] hu | |||
[ts] eu | |||
[tz] eu | |||
[z] zhy | |||
[tsh] zh | |||
[ts] tn | |||
@@ -1133,8 +1131,6 @@ ustop/ts [ts] consonants | |||
ustop/ts_ [ts] consonants | |||
[dz] consonants | |||
[ts] lv | |||
[ts] eu | |||
[tz] eu | |||
[ts] tn | |||
[ts#] bo | |||
[dz#] bo | |||
@@ -1865,6 +1861,7 @@ vowel/a#_3 [a#] en | |||
vowel/a_4 [a] ga | |||
[a] es | |||
[a] eu | |||
[a2] eu | |||
[a] el | |||
[a] vi | |||
vowel/a#_4 [a:] nl |
@@ -1,186 +1,167 @@ | |||
//==================================================== | |||
// Basque - based on Base2 | |||
//==================================================== | |||
phoneme a | |||
vowel starttype #a endtype #a | |||
length 200 | |||
FMT(vowel/a_4) | |||
endphoneme | |||
phoneme a2 // delete if the next vowel is 'a'. Used for numbers. | |||
vowel starttype #a endtype #a | |||
length 200 | |||
IF nextPh(#a) THEN | |||
ChangePhoneme(NULL) // merge consecutive 'a' | |||
ELSE | |||
ChangePhoneme(a) | |||
ENDIF | |||
endphoneme | |||
phoneme e | |||
vowel starttype #e endtype #e | |||
length 200 | |||
FMT(vowel/e_mid2) | |||
endphoneme | |||
phoneme i | |||
vowel starttype #i endtype #i | |||
length 190 | |||
IfNextVowelAppend(;) | |||
FMT(vowel/i) | |||
endphoneme | |||
phoneme o | |||
vowel starttype #o endtype #o | |||
length 200 | |||
FMT(vowel/oo) | |||
endphoneme | |||
phoneme u | |||
vowel starttype #u endtype #u | |||
length 200 | |||
FMT(vowel/u_bck2) | |||
endphoneme | |||
phoneme Y | |||
vowel starttype #@ endtype #@ | |||
length 200 | |||
FMT(vowel/y#) | |||
endphoneme | |||
// Note: I have made [s] and [z] the same, and similarly [ts] and [tz] | |||
// These should be changed to the correct "s", "z", "ts" and "tz" sounds fo Basque. | |||
phoneme s | |||
vls alv frc sibilant | |||
ipa ʂ | |||
lengthmod 3 | |||
Vowelin f1=0 f2=1700 -300 300 f3=-100 80 | |||
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 | |||
IF nextPh(isPause) THEN | |||
WAV(ufric/sh_rfx, 60) | |||
ENDIF | |||
WAV(ufric/sh_rfx, 90) // different from s but probably not correct | |||
endphoneme | |||
phoneme z | |||
vls alv frc sibilant | |||
ipa s | |||
lengthmod 3 | |||
Vowelin f1=0 f2=1700 -300 300 f3=-100 80 | |||
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 | |||
// z+z=tz, z+g=zk, z+g=zt, z+b=zp | |||
IF nextPh(z) THEN | |||
ChangeNextPhoneme(tz) | |||
ChangePhoneme(NULL) | |||
ELSEIF nextPh(g) THEN | |||
ChangeNextPhoneme(k) | |||
ELSEIF nextPh(d) THEN | |||
ChangeNextPhoneme(t) | |||
ELSEIF nextPh(b) THEN | |||
ChangeNextPhoneme(p) | |||
ENDIF | |||
IF nextPh(isPause) THEN | |||
WAV(ufric/s_, 60) | |||
ENDIF | |||
WAV(ufric/s, 80) | |||
endphoneme | |||
phoneme ts | |||
vls alv afr sibilant | |||
ipa tʂ | |||
lengthmod 2 | |||
Vowelin f1=0 f2=1700 -300 300 f3=-100 80 | |||
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 | |||
IF nextPh(isPause2) THEN | |||
WAV(ustop/ts_) | |||
ENDIF | |||
WAV(ustop/ts) | |||
endphoneme | |||
phoneme tz | |||
vls alv afr sibilant | |||
ipa ts | |||
lengthmod 2 | |||
Vowelin f1=0 f2=1700 -300 300 f3=-100 80 | |||
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 | |||
IF nextPh(isPause2) THEN | |||
WAV(ustop/ts_) | |||
ENDIF | |||
WAV(ustop/ts) | |||
endphoneme | |||
phoneme t | |||
vls dnt stop | |||
lengthmod 2 | |||
// t+g=k, t+d=t, t+z=tz | |||
IF nextPh(g) THEN | |||
ChangeNextPhoneme(k) | |||
ChangePhoneme(NULL) | |||
ELSEIF nextPh(d) THEN | |||
ChangeNextPhoneme(t) | |||
ChangePhoneme(NULL) | |||
ELSEIF nextPh(z) THEN | |||
ChangeNextPhoneme(tz) | |||
ChangePhoneme(NULL) | |||
ENDIF | |||
CALL base2/t | |||
endphoneme | |||
phoneme r | |||
vcd alv flp rhotic | |||
brkafter | |||
ipa ɾ | |||
lengthmod 3 | |||
IF nextPhW(isVowel) THEN | |||
ChangePhoneme(**) | |||
ENDIF | |||
CALL base/* | |||
endphoneme | |||
phoneme b | |||
import_phoneme es/b | |||
endphoneme | |||
phoneme d | |||
import_phoneme es/d | |||
endphoneme | |||
phoneme g | |||
import_phoneme es/g | |||
endphoneme | |||
phoneme n | |||
vcd alv nasal | |||
lengthmod 4 | |||
IF prevPhW(i) AND nextPhW(isVowel) THEN | |||
ChangePhoneme(n^) | |||
ENDIF | |||
CALL base/n | |||
endphoneme | |||
//==================================================== | |||
// Basque - based on Base2 | |||
//==================================================== | |||
phoneme a | |||
vowel starttype #a endtype #a | |||
length 200 | |||
FMT(vowel/a_4) | |||
endphoneme | |||
phoneme a2 // delete if the next vowel is 'a'. Used for numbers. | |||
vowel starttype #a endtype #a | |||
length 200 | |||
IF nextPh(#a) THEN | |||
ChangePhoneme(NULL) // merge consecutive 'a' | |||
ENDIF | |||
FMT(vowel/a_4) | |||
endphoneme | |||
phoneme e | |||
vowel starttype #e endtype #e | |||
length 200 | |||
FMT(vowel/e_mid2) | |||
endphoneme | |||
phoneme i | |||
vowel starttype #i endtype #i | |||
length 190 | |||
IfNextVowelAppend(;) | |||
FMT(vowel/i) | |||
endphoneme | |||
phoneme o | |||
vowel starttype #o endtype #o | |||
length 200 | |||
FMT(vowel/oo) | |||
endphoneme | |||
phoneme u | |||
vowel starttype #u endtype #u | |||
length 200 | |||
FMT(vowel/u_bck2) | |||
endphoneme | |||
phoneme Y | |||
vowel starttype #@ endtype #@ | |||
length 200 | |||
FMT(vowel/y#) | |||
endphoneme | |||
phoneme s | |||
import_phoneme es/s | |||
endphoneme | |||
phoneme z | |||
vls alv frc sibilant | |||
ipa s | |||
lengthmod 3 | |||
Vowelin f1=0 f2=1700 -300 300 f3=-100 80 | |||
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 | |||
IF nextPh(isPause) THEN | |||
WAV(ufric/z_eu, 60) | |||
ENDIF | |||
WAV(ufric/z_eu, 90) | |||
endphoneme | |||
phoneme ts | |||
vls alv afr sibilant | |||
ipa t? | |||
lengthmod 2 | |||
Vowelin f1=0 f2=1700 -300 300 f3=-100 80 | |||
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 | |||
IF nextPh(isPause2) THEN | |||
WAV(ufric/ts_eu, 60) | |||
ENDIF | |||
WAV(ufric/ts_eu, 90) | |||
endphoneme | |||
phoneme tz | |||
vls alv afr sibilant | |||
ipa ts | |||
lengthmod 2 | |||
Vowelin f1=0 f2=1700 -300 300 f3=-100 80 | |||
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 | |||
IF nextPh(isPause2) THEN | |||
WAV(ufric/tz_eu, 90) | |||
ENDIF | |||
WAV(ufric/tz_eu, 60) | |||
endphoneme | |||
phoneme t | |||
vls dnt stop | |||
lengthmod 2 | |||
CALL base2/t | |||
endphoneme | |||
phoneme r | |||
vcd alv flp rhotic | |||
brkafter | |||
ipa ? | |||
lengthmod 3 | |||
IF nextPhW(isVowel) THEN | |||
ChangePhoneme(**) | |||
ENDIF | |||
CALL base/* | |||
endphoneme | |||
phoneme b | |||
import_phoneme es/b | |||
endphoneme | |||
phoneme d | |||
import_phoneme es/d | |||
endphoneme | |||
phoneme g | |||
import_phoneme es/g | |||
endphoneme | |||
phoneme n | |||
vcd alv nasal | |||
lengthmod 4 | |||
IF prevPhW(#i) AND nextPhW(isVowel) THEN | |||
ChangePhoneme(n^) | |||
ENDIF | |||
CALL base/n | |||
endphoneme | |||
phoneme n2 // doesn't palatalise, used for exceptions | |||
vcd alv nasal | |||
lengthmod 4 | |||
CALL base/n | |||
endphoneme | |||
phoneme l | |||
liquid | |||
IF prevPhW(#i) AND nextPhW(isVowel) THEN | |||
ChangePhoneme(l^) | |||
ENDIF | |||
CALL base/l | |||
endphoneme | |||
phoneme l2 // same as l2 | |||
liquid | |||
CALL base/l | |||
endphoneme |
@@ -279,13 +279,14 @@ endphoneme | |||
phoneme i // optional variant of [I] for end of words | |||
vowel starttype #i endtype #i | |||
unstressed | |||
ipa i | |||
length 150 | |||
IfNextVowelAppend(;) | |||
IF NOT thisPh(isFinalVowel) THEN | |||
ChangePhoneme(I) | |||
ENDIF | |||
// IF NOT thisPh(isFinalVowel) THEN | |||
// ChangePhoneme(I) | |||
// ENDIF | |||
FMT(vowel/ii_7) | |||
endphoneme |
@@ -48,8 +48,8 @@ phoneme a | |||
IF nextPh(isNasal) THEN | |||
FMT(vnasal/ee_n2) | |||
ELSEIF nextPh(r) THEN | |||
length 230 | |||
ELSEIF nextPh(r) AND thisPh(isStressed) THEN | |||
length 190 | |||
FMT(vwl_en_us/ar) | |||
ENDIF | |||
FMT(vwl_en_us/a) |
@@ -168,4 +168,3 @@ phoneme r | |||
import_phoneme base/r | |||
endphoneme | |||
@@ -1978,5 +1978,6 @@ phonemetable kl base | |||
include ph_greenlandic | |||
//phonemetable en2 en | |||
//phonemetable en-test base | |||
//include ph_english_test | |||
@@ -637,8 +637,11 @@ const char *GetTranslatedPhonemeString(int phoneme_mode) | |||
/* Called after a clause has been translated into phonemes, in order | |||
to display the clause in phoneme mnemonic form. | |||
phoneme_mode bits 0-3: 0=only phoneme names, 1=ties, 2=ZWJ, 3=underscore separator | |||
bit 4: 0=eSpeak phoneme names, 1=IPA | |||
phoneme_mode | |||
bit 1: use IPA phoneme names | |||
bit 7: use tie between letters in multi-character phoneme names | |||
bits 8-23 tie or separator character | |||
*/ | |||
int ix; | |||
@@ -652,16 +655,12 @@ const char *GetTranslatedPhonemeString(int phoneme_mode) | |||
int flags; | |||
int use_ipa; | |||
int use_tie; | |||
int separate_phonemes = 0; | |||
int separate_phonemes; | |||
char phon_buf[30]; | |||
char phon_buf2[30]; | |||
PHONEME_LIST *plist; | |||
static const char *stress_chars = "==,,''"; | |||
static const int char_tie[] = {0x0361, 0x200d}; // combining-double-inverted-breve, zero-width-joiner | |||
use_ipa = phoneme_mode & 0x10; | |||
use_tie = phoneme_mode & 0x0f; | |||
if(phon_out_buf == NULL) | |||
{ | |||
@@ -673,10 +672,15 @@ const char *GetTranslatedPhonemeString(int phoneme_mode) | |||
} | |||
} | |||
if(use_tie >= 3) | |||
use_ipa = phoneme_mode & espeakPHONEMES_IPA; | |||
if(phoneme_mode & espeakPHONEMES_TIE) | |||
{ | |||
use_tie = phoneme_mode >> 8; | |||
separate_phonemes = 0; | |||
} | |||
else | |||
{ | |||
// separate individual phonemes with underscores | |||
separate_phonemes = '_'; | |||
separate_phonemes = phoneme_mode >> 8; | |||
use_tie = 0; | |||
} | |||
@@ -690,14 +694,15 @@ const char *GetTranslatedPhonemeString(int phoneme_mode) | |||
WritePhMnemonic(phon_buf2, plist->ph, plist, use_ipa, &flags); | |||
if(plist->newword) | |||
*buf++ = ' '; | |||
else | |||
if((!plist->newword) || (separate_phonemes == ' ')) | |||
{ | |||
if((separate_phonemes != 0) && (ix > 1)) | |||
{ | |||
utf8_in(&c, phon_buf2); | |||
if((c < 0x2b0) || (c > 0x36f)) // not if the phoneme starts with a superscript letter | |||
{ | |||
*buf++ = separate_phonemes; | |||
buf += utf8_out(separate_phonemes, buf); | |||
} | |||
} | |||
} | |||
@@ -734,12 +739,12 @@ const char *GetTranslatedPhonemeString(int phoneme_mode) | |||
for(p=phon_buf2; *p != 0;) | |||
{ | |||
p += utf8_in(&c, p); | |||
if(use_tie > 0) | |||
if(use_tie != 0) | |||
{ | |||
// look for non-inital alphabetic character, but not diacritic, superscript etc. | |||
if((count>0) && !(flags & (1 << (count-1))) && ((c < 0x2b0) || (c > 0x36f)) && iswalpha2(c)) | |||
{ | |||
buf += utf8_out(char_tie[use_tie-1], buf); | |||
buf += utf8_out(use_tie, buf); | |||
} | |||
} | |||
buf += utf8_out(c, buf); | |||
@@ -1193,6 +1198,7 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, | |||
PHONEME_TAB *ph; | |||
int stress; | |||
int max_stress; | |||
int max_stress_input; // any stress specified in the input? | |||
int vowel_count; // num of vowels + 1 | |||
int ix; | |||
int v; | |||
@@ -1257,7 +1263,7 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, | |||
unstressed_word = 1; | |||
} | |||
max_stress = GetVowelStress(tr, phonetic, vowel_stress, &vowel_count, &stressed_syllable, 1); | |||
max_stress = max_stress_input = GetVowelStress(tr, phonetic, vowel_stress, &vowel_count, &stressed_syllable, 1); | |||
if((max_stress < 0) && dictionary_flags) | |||
{ | |||
max_stress = 0; | |||
@@ -1338,40 +1344,33 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, | |||
{ | |||
stressed_syllable = vowel_count - 2; | |||
if(stressflags & (S_FINAL_SPANISH | S_FINAL_STRESS_C)) | |||
if(stressflags & S_FINAL_SPANISH) | |||
{ | |||
// LANG=Spanish, stress on last vowel if the word ends in a consonant other than 'n' or 's' | |||
if(phoneme_tab[final_ph]->type != phVOWEL) | |||
{ | |||
if(stressflags & S_FINAL_STRESS_C) | |||
mnem = phoneme_tab[final_ph]->mnemonic; | |||
if(tr->translator_name == L('a','n')) | |||
{ | |||
stressed_syllable = vowel_count - 1; | |||
if(((mnem != 's') && (mnem !='n')) || phoneme_tab[final_ph2]->type != phVOWEL) | |||
stressed_syllable = vowel_count - 1; // stress on last syllable | |||
} | |||
else | |||
if(tr->translator_name == L('i','a')) | |||
{ | |||
mnem = phoneme_tab[final_ph]->mnemonic; | |||
if(tr->translator_name == L('a','n')) | |||
{ | |||
if(((mnem != 's') && (mnem !='n')) || phoneme_tab[final_ph2]->type != phVOWEL) | |||
stressed_syllable = vowel_count - 1; // stress on last syllable | |||
} | |||
else | |||
if(tr->translator_name == L('i','a')) | |||
if((mnem != 's') || phoneme_tab[final_ph2]->type != phVOWEL) | |||
stressed_syllable = vowel_count - 1; // stress on last syllable | |||
} | |||
else | |||
{ | |||
if((mnem == 's') && (phoneme_tab[final_ph2]->type == phNASAL)) | |||
{ | |||
if((mnem != 's') || phoneme_tab[final_ph2]->type != phVOWEL) | |||
stressed_syllable = vowel_count - 1; // stress on last syllable | |||
// -ns stress remains on penultimate syllable | |||
} | |||
else | |||
else if(((phoneme_tab[final_ph]->type != phNASAL) && (mnem != 's')) || (phoneme_tab[final_ph2]->type != phVOWEL)) | |||
{ | |||
if((mnem == 's') && (phoneme_tab[final_ph2]->type == phNASAL)) | |||
{ | |||
// -ns stress remains on penultimate syllable | |||
} | |||
else if(((phoneme_tab[final_ph]->type != phNASAL) && (mnem != 's')) || (phoneme_tab[final_ph2]->type != phVOWEL)) | |||
{ | |||
stressed_syllable = vowel_count - 1; | |||
} | |||
stressed_syllable = vowel_count - 1; | |||
} | |||
} | |||
} | |||
@@ -1578,6 +1577,16 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, | |||
break; | |||
} | |||
if((stressflags & S_FINAL_VOWEL_UNSTRESSED) && (vowel_count > 2) && (max_stress_input < 3) && (vowel_stress[vowel_count - 1] == 4)) | |||
{ | |||
if(phoneme_tab[final_ph]->type == phVOWEL) | |||
{ | |||
// don't allow stress on a word-final vowel | |||
vowel_stress[vowel_count - 1] = 1; | |||
vowel_stress[vowel_count - 2] = 4; | |||
} | |||
} | |||
/* now guess the complete stress pattern */ | |||
if(max_stress < 4) | |||
stress = 4; /* no primary stress marked, use for 1st syllable */ | |||
@@ -2551,7 +2560,7 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_ | |||
total_consumed = consumed; | |||
} | |||
if((option_phonemes == 2) && (match.points > 0) && ((word_flags & FLAG_NO_TRACE) == 0)) | |||
if((option_phonemes & espeakPHONEMES_TRACE) && (match.points > 0) && ((word_flags & FLAG_NO_TRACE) == 0)) | |||
{ | |||
// show each rule that matches, and it's points score | |||
int pts; | |||
@@ -2628,7 +2637,7 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c | |||
word_copy[ix] = 0; | |||
if((option_phonemes == 2) && ((word_flags & FLAG_NO_TRACE)==0)) | |||
if((option_phonemes & espeakPHONEMES_TRACE) && ((word_flags & FLAG_NO_TRACE)==0)) | |||
{ | |||
char wordbuf[120]; | |||
unsigned int ix; | |||
@@ -2866,7 +2875,7 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c | |||
return(0); | |||
} | |||
if((option_phonemes == 2) && ((word_flags & FLAG_NO_TRACE)==0)) | |||
if((option_phonemes & espeakPHONEMES_TRACE) && ((word_flags & FLAG_NO_TRACE)==0)) | |||
{ | |||
fprintf(f_trans,"\n"); | |||
} | |||
@@ -3367,7 +3376,7 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor | |||
if(phoneme_len == 0) | |||
{ | |||
if(option_phonemes == 2) | |||
if(option_phonemes & espeakPHONEMES_TRACE) | |||
{ | |||
print_dictionary_flags(flags, dict_flags_buf, sizeof(dict_flags_buf)); | |||
fprintf(f_trans,"Flags: %s %s\n", word1, dict_flags_buf); | |||
@@ -3378,7 +3387,7 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor | |||
if(flags != NULL) | |||
flags[0] |= FLAG_FOUND; // this flag indicates word was found in dictionary | |||
if(option_phonemes == 2) | |||
if(option_phonemes & espeakPHONEMES_TRACE) | |||
{ | |||
char ph_decoded[N_WORD_PHONEMES]; | |||
int textmode; | |||
@@ -3560,7 +3569,7 @@ int LookupDictList(Translator *tr, char **wordptr, char *ph_out, unsigned int *f | |||
word1 = *wordptr; | |||
*wordptr = &word_replacement[2]; | |||
if(option_phonemes == 2) | |||
if(option_phonemes & espeakPHONEMES_TRACE) | |||
{ | |||
len = found - word1; | |||
memcpy(word,word1,len); // include multiple matching words | |||
@@ -3759,7 +3768,7 @@ int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy) | |||
{ | |||
utf8_out(tr->langopts.suffix_add_e, &word_end[1]); | |||
if(option_phonemes == 2) | |||
if(option_phonemes & espeakPHONEMES_TRACE) | |||
{ | |||
fprintf(f_trans,"add e\n"); | |||
} |
@@ -53,7 +53,7 @@ static const char *help_text = | |||
"-p <integer>\n" | |||
"\t Pitch adjustment, 0 to 99, default is 50\n" | |||
"-s <integer>\n" | |||
"\t Speed in words per minute, 80 to 450, default is 175\n" | |||
"\t Speed in approximate words per minute. The default is 175\n" | |||
"-v <voice name>\n" | |||
"\t Use voice file of this name from espeak-data/voices\n" | |||
"-w <wave file name>\n" | |||
@@ -68,7 +68,6 @@ static const char *help_text = | |||
"\t Compile pronunciation rules and dictionary from the current\n" | |||
"\t directory. <voice name> specifies the language\n" | |||
"--ipa Write phonemes to stdout using International Phonetic Alphabet\n" | |||
"\t --ipa=1 Use ties, --ipa=2 Use ZWJ, --ipa=3 Separate with _\n" | |||
"--path=\"<path>\"\n" | |||
"\t Specifies the directory containing the espeak-data directory\n" | |||
"--pho Write mbrola phoneme data (.pho) to stdout or to the file in --phonout\n" | |||
@@ -77,9 +76,15 @@ static const char *help_text = | |||
"--punct=\"<characters>\"\n" | |||
"\t Speak the names of punctuation characters during speaking. If\n" | |||
"\t =<characters> is omitted, all punctuation is spoken.\n" | |||
"--split=\"<minutes>\"\n" | |||
"--sep=<character>\n" | |||
"\t Separate phonemes (from -x --ipa) with <character>.\n" | |||
"\t Default is space, z means ZWJN character.\n" | |||
"--split=<minutes>\n" | |||
"\t Starts a new WAV file every <minutes>. Used with -w\n" | |||
"--stdout Write speech output to stdout\n" | |||
"--tie=<character>\n" | |||
"\t Use a tie character within multi-letter phoneme names.\n" | |||
"\t Default is U+361, z means ZWJ character.\n" | |||
"--version Shows version number and date, and location of espeak-data\n" | |||
"--voices=<language>\n" | |||
"\t List the available voices for the specified language.\n" | |||
@@ -123,6 +128,37 @@ void strncpy0(char *dest, const char *source, int size) | |||
} | |||
} | |||
int utf8_in(int *c, const char *buf) | |||
{//================================= | |||
// Read a unicode characater from a UTF8 string | |||
// Returns the number of UTF8 bytes used. | |||
// backwards: set if we are moving backwards through the UTF8 string | |||
int c1; | |||
int n_bytes; | |||
int ix; | |||
static const unsigned char mask[4] = {0xff,0x1f,0x0f,0x07}; | |||
n_bytes = 0; | |||
if((c1 = *buf++) & 0x80) | |||
{ | |||
if((c1 & 0xe0) == 0xc0) | |||
n_bytes = 1; | |||
else if((c1 & 0xf0) == 0xe0) | |||
n_bytes = 2; | |||
else if((c1 & 0xf8) == 0xf0) | |||
n_bytes = 3; | |||
c1 &= mask[n_bytes]; | |||
for(ix=0; ix<n_bytes; ix++) | |||
{ | |||
c1 = (c1 << 6) + (*buf++ & 0x3f); | |||
} | |||
} | |||
*c = c1; | |||
return(n_bytes+1); | |||
} | |||
void DisplayVoices(FILE *f_out, char *language) | |||
{//============================================ | |||
@@ -381,6 +417,8 @@ int main (int argc, char **argv) | |||
{"pho", no_argument, 0, 0x109}, | |||
{"ipa", optional_argument, 0, 0x10a}, | |||
{"version", no_argument, 0, 0x10b}, | |||
{"sep", optional_argument, 0, 0x10c}, | |||
{"tie", optional_argument, 0, 0x10d}, | |||
{0, 0, 0, 0} | |||
}; | |||
@@ -408,8 +446,8 @@ int main (int argc, char **argv) | |||
int wordgap = -1; | |||
int option_capitals = -1; | |||
int option_punctuation = -1; | |||
int option_phonemes = 0; | |||
int option_mbrola_phonemes = 0; | |||
int phonemes_separator = 0; | |||
int phoneme_options = 0; | |||
int option_linelength = 0; | |||
int option_waveout = 0; | |||
@@ -513,11 +551,11 @@ int main (int argc, char **argv) | |||
break; | |||
case 'x': | |||
option_phonemes = 1; | |||
phoneme_options |= espeakPHONEMES_SHOW; | |||
break; | |||
case 'X': | |||
option_phonemes = 2; | |||
phoneme_options |= espeakPHONEMES_TRACE; | |||
break; | |||
case 'm': | |||
@@ -616,27 +654,56 @@ int main (int argc, char **argv) | |||
break; | |||
case 0x109: // --pho | |||
option_mbrola_phonemes = 16; | |||
phoneme_options |= espeakPHONEMES_MBROLA; | |||
break; | |||
case 0x10a: // --ipa | |||
option_phonemes = 3; | |||
phoneme_options |= espeakPHONEMES_IPA; | |||
if(optarg2 != NULL) | |||
{ | |||
value = -1; | |||
sscanf(optarg2,"%d",&value); | |||
if((value<0) || (value>3)) | |||
// deprecated and obsolete | |||
switch(atoi(optarg2)) | |||
{ | |||
fprintf(stderr,"Bad value for -ipa=\n"); | |||
value = 0; | |||
case 1: | |||
phonemes_separator = '_'; | |||
break; | |||
case 2: | |||
phonemes_separator = 0x0361; | |||
phoneme_options |= espeakPHONEMES_TIE; | |||
break; | |||
case 3: | |||
phonemes_separator = 0x200d; // ZWJ | |||
phoneme_options |= espeakPHONEMES_TIE; | |||
break; | |||
} | |||
option_phonemes += value; | |||
} | |||
break; | |||
case 0x10b: // -version | |||
case 0x10b: // --version | |||
PrintVersion(); | |||
exit(0); | |||
case 0x10c: // --sep | |||
phoneme_options |= espeakPHONEMES_SHOW; | |||
if(optarg2 == 0) | |||
phonemes_separator = ' '; | |||
else | |||
utf8_in(&phonemes_separator, optarg2); | |||
if(phonemes_separator == 'z') | |||
phonemes_separator = 0x200c; // ZWNJ | |||
break; | |||
case 0x10d: // --tie | |||
phoneme_options |= (espeakPHONEMES_SHOW | espeakPHONEMES_TIE); | |||
if(optarg2 == 0) | |||
phonemes_separator = 0x0361; // default: combining-double-inverted-breve | |||
else | |||
utf8_in(&phonemes_separator, optarg2); | |||
if(phonemes_separator == 'z') | |||
phonemes_separator = 0x200d; // ZWJ | |||
break; | |||
default: | |||
exit(0); | |||
@@ -707,7 +774,9 @@ int main (int argc, char **argv) | |||
espeak_SetParameter(espeakLINELENGTH,option_linelength,0); | |||
if(option_punctuation == 2) | |||
espeak_SetPunctuationList(option_punctlist); | |||
espeak_SetPhonemeTrace(option_phonemes | option_mbrola_phonemes,f_phonemes_out); | |||
espeak_SetPhonemeTrace(phoneme_options | (phonemes_separator << 8), f_phonemes_out); | |||
if(filename[0]==0) | |||
{ |
@@ -87,7 +87,7 @@ static const char *help_text = | |||
"-p <integer>\n" | |||
"\t Pitch adjustment, 0 to 99, default is 50\n" | |||
"-s <integer>\n" | |||
"\t Speed in words per minute, 80 to 450, default is 175\n" | |||
"\t Speed in approximate words per minute. The default is 175\n" | |||
"-v <voice name>\n" | |||
"\t Use voice file of this name from espeak-data/voices\n" | |||
"-w <wave file name>\n" | |||
@@ -102,7 +102,6 @@ static const char *help_text = | |||
"\t Compile pronunciation rules and dictionary from the current\n" | |||
"\t directory. <voice name> specifies the language\n" | |||
"--ipa Write phonemes to stdout using International Phonetic Alphabet\n" | |||
"\t --ipa=1 Use ties, --ipa=2 Use ZWJ, --ipa=3 Separate with _\n" | |||
"--path=\"<path>\"\n" | |||
"\t Specifies the directory containing the espeak-data directory\n" | |||
"--pho Write mbrola phoneme data (.pho) to stdout or to the file in --phonout\n" | |||
@@ -111,9 +110,15 @@ static const char *help_text = | |||
"--punct=\"<characters>\"\n" | |||
"\t Speak the names of punctuation characters during speaking. If\n" | |||
"\t =<characters> is omitted, all punctuation is spoken.\n" | |||
"--split=\"<minutes>\"\n" | |||
"--sep=<character>\n" | |||
"\t Separate phonemes (from -x --ipa) with <character>.\n" | |||
"\t Default is space, z means ZWJN character.\n" | |||
"--split=<minutes>\n" | |||
"\t Starts a new WAV file every <minutes>. Used with -w\n" | |||
"--stdout Write speech output to stdout\n" | |||
"--tie=<character>\n" | |||
"\t Use a tie character within multi-letter phoneme names.\n" | |||
"\t Default is U+361, z means ZWJ character.\n" | |||
"--version Shows version number and date, and location of espeak-data\n" | |||
"--voices=<language>\n" | |||
"\t List the available voices for the specified language.\n" | |||
@@ -496,6 +501,8 @@ int main (int argc, char **argv) | |||
{"pho", no_argument, 0, 0x109}, | |||
{"ipa", optional_argument, 0, 0x10a}, | |||
{"version", no_argument, 0, 0x10b}, | |||
{"sep", optional_argument, 0, 0x10c}, | |||
{"tie", optional_argument, 0, 0x10d}, | |||
{0, 0, 0, 0} | |||
}; | |||
@@ -516,6 +523,8 @@ int main (int argc, char **argv) | |||
int flag_stdin = 0; | |||
int flag_compile = 0; | |||
int pitch_adjustment = 50; | |||
int phoneme_options = 0; | |||
int phonemes_separator = 0; | |||
espeak_VOICE voice_select; | |||
char filename[200]; | |||
char voicename[40]; | |||
@@ -622,11 +631,11 @@ int main (int argc, char **argv) | |||
break; | |||
case 'x': | |||
option_phonemes = 1; | |||
phoneme_options |= espeakPHONEMES_SHOW; | |||
break; | |||
case 'X': | |||
option_phonemes = 2; | |||
phoneme_options |= espeakPHONEMES_TRACE; | |||
break; | |||
case 'm': | |||
@@ -729,21 +738,29 @@ int main (int argc, char **argv) | |||
break; | |||
case 0x109: // --pho | |||
option_mbrola_phonemes = 16; | |||
phoneme_options |= espeakPHONEMES_MBROLA; | |||
break; | |||
case 0x10a: // --ipa | |||
option_phonemes = 3; | |||
phoneme_options |= espeakPHONEMES_IPA; | |||
if(optarg2 != NULL) | |||
{ | |||
value = -1; | |||
sscanf(optarg2,"%d",&value); | |||
if((value<0) || (value>3)) | |||
// deprecated and obsolete | |||
switch(atoi(optarg2)) | |||
{ | |||
fprintf(stderr,"Bad value for -ipa=\n"); | |||
value = 0; | |||
case 1: | |||
phonemes_separator = '_'; | |||
break; | |||
case 2: | |||
phonemes_separator = 0x0361; | |||
phoneme_options |= espeakPHONEMES_TIE; | |||
break; | |||
case 3: | |||
phonemes_separator = 0x200d; // ZWJ | |||
phoneme_options |= espeakPHONEMES_TIE; | |||
break; | |||
} | |||
option_phonemes += value; | |||
} | |||
break; | |||
@@ -751,6 +768,26 @@ int main (int argc, char **argv) | |||
init_path(argv[0],data_path); | |||
printf("speak text-to-speech: %s Data at: %s\n",version_string,path_home); | |||
exit(0); | |||
case 0x10c: // --sep | |||
phoneme_options |= espeakPHONEMES_SHOW; | |||
if(optarg2 == 0) | |||
phonemes_separator = ' '; | |||
else | |||
utf8_in(&phonemes_separator, optarg2); | |||
if(phonemes_separator == 'z') | |||
phonemes_separator = 0x200c; // ZWNJ | |||
break; | |||
case 0x10d: // --tie | |||
phoneme_options |= (espeakPHONEMES_SHOW | espeakPHONEMES_TIE); | |||
if(optarg2 == 0) | |||
phonemes_separator = 0x0361; // default: combining-double-inverted-breve | |||
else | |||
utf8_in(&phonemes_separator, optarg2); | |||
if(phonemes_separator == 'z') | |||
phonemes_separator = 0x200d; // ZWJ | |||
break; | |||
default: | |||
exit(0); | |||
@@ -803,6 +840,8 @@ int main (int argc, char **argv) | |||
SetParameter(espeakPUNCTUATION,option_punctuation,0); | |||
SetParameter(espeakWORDGAP,wordgap,0); | |||
option_phonemes = phoneme_options | (phonemes_separator << 8); | |||
if(pitch_adjustment != 50) | |||
{ | |||
SetParameter(espeakPITCH,pitch_adjustment,0); |
@@ -811,7 +811,6 @@ ENTER("espeak_Initialize"); | |||
return(EE_INTERNAL_ERROR); | |||
option_phonemes = 0; | |||
option_mbrola_phonemes = 0; | |||
option_phoneme_events = (options & (espeakINITIALIZE_PHONEME_EVENTS | espeakINITIALIZE_PHONEME_IPA)); | |||
VoiceReset(0); | |||
@@ -1159,19 +1158,22 @@ ESPEAK_API espeak_ERROR espeak_SetPunctuationList(const wchar_t *punctlist) | |||
} // end of espeak_SetPunctuationList | |||
ESPEAK_API void espeak_SetPhonemeTrace(int value, FILE *stream) | |||
{//============================================================ | |||
ESPEAK_API void espeak_SetPhonemeTrace(int phonememode, FILE *stream) | |||
{//=================================================================== | |||
ENTER("espeak_SetPhonemes"); | |||
/* Controls the output of phoneme symbols for the text | |||
bits 0-3: | |||
value=0 No phoneme output (default) | |||
value=1 Output the translated phoneme symbols for the text | |||
value=2 as (1), but also output a trace of how the translation was done (matching rules and list entries) | |||
value=3 as (1), but produces IPA phoneme names rather than ascii | |||
bit 4: produce mbrola pho data | |||
*/ | |||
option_phonemes = value & 7; | |||
option_mbrola_phonemes = value & 16; | |||
/* phonememode: Controls the output of phoneme symbols for the text | |||
bits 0-2: | |||
value=0 No phoneme output (default) | |||
value=1 Output the translated phoneme symbols for the text | |||
value=2 as (1), but produces IPA phoneme names rather than ascii | |||
bit 3: output a trace of how the translation was done (showing the matching rules and list entries) | |||
bit 4: produce pho data for mbrola | |||
bit 7: use (bits 8-23) as a tie within multi-letter phonemes names | |||
bits 8-23: separator character, between phoneme names | |||
stream output stream for the phoneme symbols (and trace). If stream=NULL then it uses stdout. | |||
*/ | |||
option_phonemes = phonememode; | |||
f_trans = stream; | |||
if(stream == NULL) | |||
f_trans = stderr; | |||
@@ -1181,8 +1183,10 @@ ESPEAK_API void espeak_SetPhonemeTrace(int value, FILE *stream) | |||
ESPEAK_API const char *espeak_TextToPhonemes(const void **textptr, int textmode, int phonememode) | |||
{//================================================================================================= | |||
/* phoneme_mode bits 0-3: 0=only phoneme names, 1=ties, 2=ZWJ, 3=underscore separator | |||
bits 4-7: 0=eSpeak phoneme names, 1=IPA | |||
/* phoneme_mode | |||
bit 1: 0=eSpeak's ascii phoneme names, 1= International Phonetic Alphabet (as UTF-8 characters). | |||
bit 7: use (bits 8-23) as a tie within multi-letter phonemes names | |||
bits 8-23: separator character, between phoneme names | |||
*/ | |||
option_multibyte = textmode & 7; |
@@ -34,7 +34,7 @@ | |||
#define ESPEAK_API | |||
#endif | |||
#define ESPEAK_API_REVISION 9 | |||
#define ESPEAK_API_REVISION 10 | |||
/* | |||
Revision 2 | |||
Added parameter "options" to eSpeakInitialize() | |||
@@ -61,6 +61,9 @@ Revision 8 26.Apr.2013 | |||
Revision 9 30.May.2013 | |||
Changed function espeak_TextToPhonemes(). | |||
Revision 10 29.Aug.2014 | |||
Changed phonememode parameter to espeak_TextToPhonemes() and espeak_SetPhonemeTrace | |||
*/ | |||
/********************/ | |||
/* Initialization */ | |||
@@ -473,15 +476,25 @@ ESPEAK_API espeak_ERROR espeak_SetPunctuationList(const wchar_t *punctlist); | |||
EE_INTERNAL_ERROR. | |||
*/ | |||
#define espeakPHONEMES_SHOW 0x01 | |||
#define espeakPHONEMES_IPA 0x02 | |||
#define espeakPHONEMES_TRACE 0x08 | |||
#define espeakPHONEMES_MBROLA 0x10 | |||
#define espeakPHONEMES_TIE 0x80 | |||
#ifdef __cplusplus | |||
extern "C" | |||
#endif | |||
ESPEAK_API void espeak_SetPhonemeTrace(int value, FILE *stream); | |||
/* Controls the output of phoneme symbols for the text | |||
value=0 No phoneme output (default) | |||
value=1 Output the translated phoneme symbols for the text | |||
value=2 as (1), but also output a trace of how the translation was done (matching rules and list entries) | |||
value=3 as (1), but produces IPA rather than ascii phoneme names | |||
ESPEAK_API void espeak_SetPhonemeTrace(int phonememode, FILE *stream); | |||
/* phonememode: Controls the output of phoneme symbols for the text | |||
bits 0-2: | |||
value=0 No phoneme output (default) | |||
value=1 Output the translated phoneme symbols for the text | |||
value=2 as (1), but produces IPA phoneme names rather than ascii | |||
bit 3: output a trace of how the translation was done (showing the matching rules and list entries) | |||
bit 4: produce pho data for mbrola | |||
bit 7: use (bits 8-23) as a tie within multi-letter phonemes names | |||
bits 8-23: separator character, between phoneme names | |||
stream output stream for the phoneme symbols (and trace). If stream=NULL then it uses stdout. | |||
*/ | |||
@@ -506,15 +519,11 @@ ESPEAK_API const char *espeak_TextToPhonemes(const void **textptr, int textmode, | |||
espeakCHARS_WCHAR Wide characters (wchar_t) | |||
espeakCHARS_16BIT 16 bit characters. | |||
phonememode: bits0-3: | |||
0= just phonemes. | |||
1= include ties (U+361) for phoneme names of more than one letter. | |||
2= include zero-width-joiner for phoneme names of more than one letter. | |||
3= separate phonemes with underscore characters. | |||
phoneme_mode | |||
bit 1: 0=eSpeak's ascii phoneme names, 1= International Phonetic Alphabet (as UTF-8 characters). | |||
bit 7: use (bits 8-23) as a tie within multi-letter phonemes names | |||
bits 8-23: separator character, between phoneme names | |||
bits 4-7: | |||
0= eSpeak's ascii phoneme names. | |||
1= International Phonetic Alphabet (as UTF-8 characters). | |||
*/ | |||
#ifdef __cplusplus |
@@ -35,7 +35,6 @@ | |||
#include "translate.h" | |||
#include "voice.h" | |||
int option_mbrola_phonemes; | |||
#ifdef INCLUDE_MBROLA | |||
@@ -646,7 +645,7 @@ int MbrolaGenerate(PHONEME_LIST *phoneme_list, int *n_ph, int resume) | |||
if(*n_ph == 0) | |||
return(0); | |||
if(option_mbrola_phonemes) | |||
if(option_phonemes & espeakPHONEMES_MBROLA) | |||
{ | |||
// send mbrola data to a file, not to the mbrola library | |||
f_mbrola = f_trans; |
@@ -35,7 +35,7 @@ | |||
#include "translate.h" | |||
#include "wave.h" | |||
const char *version_string = "1.48.10 09.Aug.14"; | |||
const char *version_string = "1.48.11 31.Aug.14"; | |||
const int version_phdata = 0x014801; | |||
int option_device_number = -1; | |||
@@ -620,6 +620,7 @@ static bool InterpretCondition(Translator *tr, int control, PHONEME_LIST *plist, | |||
int instn; | |||
int instn2; | |||
int count; | |||
int check_endtype = 0; | |||
PHONEME_TAB *ph; | |||
PHONEME_LIST *plist_this; | |||
@@ -672,6 +673,7 @@ static bool InterpretCondition(Translator *tr, int control, PHONEME_LIST *plist, | |||
case 0: // prevPh | |||
case 5: // prevPhW | |||
plist--; | |||
check_endtype = 1; | |||
break; | |||
case 1: // thisPh | |||
@@ -705,6 +707,7 @@ static bool InterpretCondition(Translator *tr, int control, PHONEME_LIST *plist, | |||
if((worddata==NULL) || (worddata->prev_vowel.ph == NULL)) | |||
return(false); // no previous vowel | |||
plist = &(worddata->prev_vowel); | |||
check_endtype = 1; | |||
break; | |||
case 9: // next3PhW | |||
@@ -720,6 +723,7 @@ static bool InterpretCondition(Translator *tr, int control, PHONEME_LIST *plist, | |||
if((plist[0].sourceix) || (plist[-1].sourceix)) | |||
return(false); | |||
plist-=2; | |||
check_endtype = 1; | |||
break; | |||
} | |||
@@ -744,7 +748,9 @@ static bool InterpretCondition(Translator *tr, int control, PHONEME_LIST *plist, | |||
// 'data' is a phoneme number | |||
if((phoneme_tab[data]->mnemonic == ph->mnemonic) == true) | |||
return(true); | |||
if((which == 0) && (ph->type == phVOWEL)) | |||
// not an exact match, check for a vowel type (eg. #i ) | |||
if((check_endtype) && (ph->type == phVOWEL)) | |||
return(data == ph->end_type); // prevPh() match on end_type | |||
return(data == ph->start_type); // thisPh() or nextPh(), match on start_type | |||
} |
@@ -1980,14 +1980,10 @@ int SpeakNextClause(FILE *f_in, const void *text_in, int control) | |||
CalcPitches(translator, clause_tone); | |||
CalcLengths(translator); | |||
if((option_phonemes > 0) || (phoneme_callback != NULL)) | |||
if((option_phonemes & 0xf) || (phoneme_callback != NULL)) | |||
{ | |||
int phoneme_mode = 0; | |||
if(option_phonemes >= 3) | |||
phoneme_mode = 0x10 + option_phonemes-3; // 0x10=ipa, 0x11=ipa with tie, 0x12=ipa with ZWJ, 0x13=ipa with separators | |||
phon_out = GetTranslatedPhonemeString(phoneme_mode); | |||
if(option_phonemes > 0) | |||
phon_out = GetTranslatedPhonemeString(option_phonemes); | |||
if(option_phonemes & 0xf) | |||
{ | |||
fprintf(f_trans,"%s\n",phon_out); | |||
} |
@@ -779,7 +779,8 @@ Translator *SelectTranslator(const char *name) | |||
if(name2 == L_pap) | |||
{ | |||
// stress last syllable unless word ends with a vowel | |||
tr->langopts.stress_flags = S_FINAL_STRESS_C | S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_NO_AUTO_2; | |||
tr->langopts.stress_rule = STRESSPOSN_1R; | |||
tr->langopts.stress_flags = S_FINAL_VOWEL_UNSTRESSED | S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_NO_AUTO_2; | |||
} | |||
else | |||
{ | |||
@@ -793,7 +794,8 @@ Translator *SelectTranslator(const char *name) | |||
static const short stress_lengths_eu[8] = {200, 200, 200, 200, 0, 0, 210, 230}; // very weak stress | |||
static const unsigned char stress_amps_eu[8] = {16,16, 18,18, 18,18, 18,18 }; | |||
SetupTranslator(tr,stress_lengths_eu,stress_amps_eu); | |||
tr->langopts.stress_rule = STRESSPOSN_2L; // ?? second syllable ?? | |||
tr->langopts.stress_rule = STRESSPOSN_2L; // ?? second syllable, but not on a word-final vowel | |||
tr->langopts.stress_flags = S_FINAL_VOWEL_UNSTRESSED; | |||
tr->langopts.param[LOPT_SUFFIX] = 1; | |||
tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_VIGESIMAL; | |||
} | |||
@@ -1345,8 +1347,8 @@ SetLengthMods(tr,3); // all equal | |||
SetupTranslator(tr,stress_lengths_ro,stress_amps_ro); | |||
tr->langopts.stress_rule = STRESSPOSN_2R; | |||
tr->langopts.stress_flags = S_FINAL_STRESS_C + S_FINAL_DIM_ONLY; | |||
tr->langopts.stress_rule = STRESSPOSN_1R; | |||
tr->langopts.stress_flags = S_FINAL_VOWEL_UNSTRESSED | S_FINAL_DIM_ONLY; | |||
tr->charset_a0 = charsets[2]; // ISO-8859-2 | |||
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_DFRACTION_3 | NUM_AND_UNITS | NUM_ROMAN; | |||
@@ -1449,8 +1451,8 @@ SetLengthMods(tr,3); // all equal | |||
SetupTranslator(tr,stress_lengths_sq,stress_amps_sq); | |||
tr->langopts.stress_rule = STRESSPOSN_2R; | |||
tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_FINAL_STRESS_C; | |||
tr->langopts.stress_rule = STRESSPOSN_1R; | |||
tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_FINAL_VOWEL_UNSTRESSED; | |||
SetLetterVowel(tr,'y'); | |||
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_DFRACTION_4; | |||
tr->langopts.accents = 2; // "capital" after letter name |
@@ -763,7 +763,7 @@ int ChangeEquivalentPhonemes(Translator *tr, int lang2, char *phonemes) | |||
} | |||
remove_stress = pb[1]; | |||
if(option_phonemes == 2) | |||
if(option_phonemes & espeakPHONEMES_TRACE) | |||
{ | |||
DecodePhonemes(phonemes, phonbuf); | |||
fprintf(f_trans,"(%s) %s -> (%s) ", phoneme_tab_list[lang2].name, phonbuf, phoneme_tab_list[tr->phoneme_tab_ix].name); | |||
@@ -806,7 +806,7 @@ int ChangeEquivalentPhonemes(Translator *tr, int lang2, char *phonemes) | |||
strcpy(phonemes, phonbuf); | |||
if(option_phonemes == 2) | |||
if(option_phonemes & espeakPHONEMES_TRACE) | |||
{ | |||
SelectPhonemeTable(tr->phoneme_tab_ix); | |||
DecodePhonemes(phonemes, phonbuf); | |||
@@ -1220,7 +1220,7 @@ if(end_type & SUFX_UNPRON) | |||
end_type = end2; | |||
strcpy(phonemes,phonemes2); | |||
strcpy(end_phonemes,end_phonemes2); | |||
if(option_phonemes == 2) | |||
if(option_phonemes & espeakPHONEMES_TRACE) | |||
{ | |||
DecodePhonemes(end_phonemes,end_phonemes2); | |||
fprintf(f_trans," suffix [%s]\n\n",end_phonemes2); |
@@ -408,8 +408,8 @@ typedef struct { | |||
#define S_FIRST_PRIMARY 0x80 | |||
// bit7=if more than one primary stress, make the subsequent primaries to secondary stress | |||
#define S_FINAL_STRESS_C 0x100 | |||
// bit8=stress last syllable if it doesn't end in a vowel | |||
#define S_FINAL_VOWEL_UNSTRESSED 0x100 | |||
// bit8=don't apply default stress to a word-final vowel | |||
#define S_FINAL_SPANISH 0x200 | |||
// bit9=stress last syllable if it doesn't end in vowel or "s" or "n" LANG=Spanish | |||
@@ -673,7 +673,6 @@ extern int option_tone_flags; | |||
extern int option_waveout; | |||
extern int option_quiet; | |||
extern int option_phonemes; | |||
extern int option_mbrola_phonemes; | |||
extern int option_phoneme_events; | |||
extern int option_linelength; // treat lines shorter than this as end-of-clause | |||
extern int option_multibyte; |
@@ -409,7 +409,6 @@ void TranslDlg::OnCommand(wxCommandEvent& event) | |||
const char *phon_out2; | |||
int clause_tone; | |||
int clause_count; | |||
int use_ipa = 0; | |||
FILE *f; | |||
int fd_temp; | |||
char fname_temp[100]; | |||
@@ -447,21 +446,20 @@ void TranslDlg::OnCommand(wxCommandEvent& event) | |||
} | |||
#endif | |||
t_phonetic->SetDefaultStyle(style_phonetic); | |||
translate_text = 2; | |||
translate_text = espeakPHONEMES_TRACE; | |||
break; | |||
case T_TRANSLATE: | |||
case MENU_SPEAK_TRANSLATE: | |||
t_phonetic->SetDefaultStyle(style_phonetic); | |||
translate_text = 1; | |||
translate_text = espeakPHONEMES_SHOW; | |||
break; | |||
case T_TRANSLATE_IPA: | |||
case MENU_SPEAK_IPA: | |||
t_phonetic->SetDefaultStyle(style_phonetic_large); | |||
translate_text = 3; | |||
use_ipa = 0x10; | |||
translate_text = espeakPHONEMES_IPA; | |||
break; | |||
case T_PROCESS: | |||
@@ -496,7 +494,7 @@ void TranslDlg::OnCommand(wxCommandEvent& event) | |||
CalcPitches(translator,clause_tone); | |||
CalcLengths(translator); | |||
phon_out2 = GetTranslatedPhonemeString(use_ipa); | |||
phon_out2 = GetTranslatedPhonemeString(option_phonemes); | |||
if(clause_count++ > 0) | |||
strcat(phon_out," ||"); | |||
strcat(phon_out, phon_out2); | |||
@@ -514,7 +512,7 @@ void TranslDlg::OnCommand(wxCommandEvent& event) | |||
ph_list[N_PH_LIST].ph = NULL; // to recognize overrun off list (in Generate() ) | |||
t_phonetic->Clear(); | |||
if(option_phonemes == 2) | |||
if(option_phonemes & espeakPHONEMES_TRACE) | |||
{ | |||
option_phonemes=0; | |||
rewind(f_trans); |