// Aragon translation rules | // Aragon translation rules | ||||
// This file is UTF-8 encoded | // This file is UTF-8 encoded | ||||
// letters | |||||
_cap m'aJ^uskla // should be after the letter | |||||
_?? simb'Olo | |||||
_#32 Esp'aTjo | |||||
// accent names | |||||
_lig liQaD'ura | |||||
_acu akT'ento aQ'uDo | |||||
_ac2 d'Ople||aQ'uDo | |||||
_brv br'eu | |||||
_ced TeD'il^a | |||||
_cir Tirkumfl'ekso | |||||
_dia djEr'esi | |||||
_dac d'Ople||aQ'uDo | |||||
_dot p'unto | |||||
_grv gr'iEu | |||||
_hac kar'On | |||||
_mcn makr'On | |||||
_ogo kod'eta | |||||
_rng an'iel^o | |||||
_stk b'aRR2a // ?? | |||||
_tld t'il^a | |||||
// letter names | // letter names | ||||
y i $u // word 'and' | y i $u // word 'and' | ||||
_y je | _y je | ||||
y je $atend | y je $atend | ||||
ch tSe | |||||
ll 'El^e | |||||
á 'a||akTEntw'aDa | |||||
é 'e||akTEntw'aDa | |||||
í 'i||akTEntw'aDa | |||||
_ó 'o||akTEntw'aDa | |||||
ú 'u||akTEntw'aDa | |||||
ü ,uDjEr'Esi | |||||
// numbers | // numbers | ||||
_3X tr'enta | _3X tr'enta | ||||
_4X kwar'anta | _4X kwar'anta | ||||
_5X Tinkw'anta | _5X Tinkw'anta | ||||
_6X siks'anta | |||||
_6X siS'anta | |||||
_7X set'anta | _7X set'anta | ||||
_8X gwit'anta | _8X gwit'anta | ||||
_9X noB'anta | _9X noB'anta | ||||
_8C gwitoTj'Entos | _8C gwitoTj'Entos | ||||
_9C nowTj'Entos | _9C nowTj'Entos | ||||
_0M1 m'il | _0M1 m'il | ||||
_1M1 m'il | |||||
_0M2 mil^'ons | _0M2 mil^'ons | ||||
_1M2 un||mil^'on | _1M2 un||mil^'on | ||||
_0M4 bil^'ons | _0M4 bil^'ons | ||||
_1M4 un||bil^'on | _1M4 un||bil^'on | ||||
_0and i | |||||
_0and %i | |||||
_dpt kon | _dpt kon | ||||
// ordinal numbers | |||||
_#º o | |||||
_#ª a | |||||
//_ord eno | |||||
_1ox prim'Er | |||||
_2ox seQ'und | |||||
_3ox tErT'Er | |||||
_1o un'en | |||||
_2o dos'en | |||||
_3o tres'en | |||||
_4o kwatr'en | |||||
_5o Tink'en | |||||
_6o seIs'en | |||||
_7o sEt'en | |||||
_8o gwit'en | |||||
_9o nU'en | |||||
_11o onT'en | |||||
_12o DoT'en | |||||
_13o tReT'en | |||||
_14o katorT'en | |||||
_15o kinT'en | |||||
_16o sET'en | |||||
_10o DET'en | |||||
_20o Bint'en | |||||
_30o trent'en | |||||
_40o kwarant'en | |||||
_50o Tinkwant'en | |||||
_60o siSant'en | |||||
_70o sEtant'en | |||||
_80o gwitant'en | |||||
_90o noBant'en | |||||
_1Xo DeTi | |||||
_2Xo Binti | |||||
_3Xo trentaI | |||||
_4Xo kwarantaI | |||||
_5Xo TinkwantaI | |||||
_6Xo siSantaI | |||||
_7Xo sEtantaI | |||||
_8Xo gwitantaI | |||||
_9Xo noBantaI | |||||
_1Co TEnt'en | |||||
_2Co dosTEnt'en | |||||
_3Co tresTEnt'en | |||||
_4Co kw,atroTEnt'en | |||||
_5Co T,inkoTEnt'en | |||||
_6Co seIsTEnt'en | |||||
_7Co sjEtTEnt'en | |||||
_8Co gw,eItoTEnt'en | |||||
_9Co nweUTEnt'en | |||||
_0M1o mil'en | |||||
_1M1 mil'en | |||||
_0M2o mil^on'en | |||||
_1M2o mil^on'en | |||||
// unstressed words | // unstressed words | ||||
o $u | |||||
o $atend | |||||
a $u | |||||
a $atend | |||||
os $u | |||||
os $atend | |||||
as $u | |||||
as $atend | |||||
lo $u | lo $u | ||||
la $u | la $u | ||||
los $u | los $u | ||||
te $u | te $u | ||||
se $u | se $u | ||||
le $u | le $u | ||||
les $u | |||||
li $u | |||||
nos $u | |||||
mos $u | |||||
tos $u | |||||
vos $u | |||||
os $u | |||||
les $u | |||||
lis $u | |||||
// exceptions | |||||
holio x'olio | |||||
jazz dZ'as | |||||
// Foreign words | |||||
android andr'oId | |||||
apple 'apEl | |||||
at 'at | |||||
chat tS'at | |||||
chrome kr'ome | |||||
espeak isp'ik | |||||
(e speak) isp'ik | |||||
facebook f'eIsbuk | |||||
firefox f'aIrfoks | |||||
google g'ugEl | |||||
(i phone) 'aIfon | |||||
iphone 'aIfon | |||||
(i pod) 'aIpod | |||||
ipod 'aIpod | |||||
hardware x'ardwer | |||||
live l'aIB | |||||
messenger m'esendZer | |||||
mozilla moT'ila | |||||
nvda ene|be|de|'a | |||||
office 'ofis | |||||
skype esk'aIp | |||||
software s'oftwer | |||||
thunderbird Tanderb'ird | |||||
twitter tw'iter | |||||
whatsapp was'app | |||||
windows w'indows |
// Aragon translation rules | // Aragon translation rules | ||||
// This file is UTF-8 encoded | // This file is UTF-8 encoded | ||||
.L01 l r y | .L01 l r y | ||||
.L03 f h j s y z r // allow [B] [D] [Q] before these consonants | .L03 f h j s y z r // allow [B] [D] [Q] before these consonants | ||||
.L04 b v f p // labials, nasals are [m] | .L04 b v f p // labials, nasals are [m] | ||||
.group a | .group a | ||||
a a | |||||
ai aI | |||||
ai (X 'aI | |||||
ay (K aI | |||||
ay (X 'aI | |||||
au aU | |||||
au (X 'aU | |||||
a a | |||||
aix aS | |||||
ai aI | |||||
ai (X 'aI | |||||
ay (K aI | |||||
ay (X 'aI | |||||
au aU | |||||
au (X 'aU | |||||
.group b | .group b | ||||
b b | b b | ||||
_) b b // phoneme definition may change it to [B] | |||||
_) b b // phoneme definition may change it to [B] | |||||
_) b (A b | _) b (A b | ||||
b (A B | b (A B | ||||
b (cY B | b (cY B | ||||
.group c | .group c | ||||
c k | |||||
c (Y T // ce ci | |||||
cc kT | |||||
ch tS | |||||
c k | |||||
c (Y T // ce ci | |||||
ck k // Forano (Foreign) | |||||
ch tS | |||||
.group d | .group d | ||||
d d | d d | ||||
_) d d // phoneme definition may change it to [D] | |||||
_) d d // phoneme definition may change it to [D] | |||||
_) d (A d | _) d (A d | ||||
d (A D | d (A D | ||||
d (cY D | d (cY D | ||||
l) d d | l) d d | ||||
r) d d | r) d d | ||||
n) d (_ = // silent, but stress on last vowel | |||||
n) d (_ = // silent, but stress on last vowel | |||||
.group e | .group e | ||||
e e | |||||
ei eI | |||||
ei (X 'eI | |||||
ey (K eI | |||||
ey (X 'eI | |||||
eu eU | |||||
eu (X 'eU | |||||
i) e E | |||||
u) e E | |||||
y) e E | |||||
e e | |||||
eix eS | |||||
ei eI | |||||
ei (X 'eI | |||||
ey (K eI | |||||
ey (X 'eI | |||||
eu eU | |||||
eu (X 'eU | |||||
i) e E | |||||
u) e E | |||||
y) e E | |||||
.group f | .group f | ||||
f f | |||||
f f | |||||
.group g | .group g | ||||
g g | g g | ||||
_) g g // phoneme definition may change it to [Q] | |||||
_) gh (A g // allow _gh in foreign words | |||||
gü gw | |||||
_) gh (A g // allow _gh in foreign words | |||||
_) gn (A n | _) gn (A n | ||||
_) g (A g | |||||
g (A Q | g (A Q | ||||
g (cY Q | g (cY Q | ||||
g (L03 Q | g (L03 Q | ||||
m) g g | m) g g | ||||
n) g g | n) g g | ||||
g (Y+ x // ge gi | |||||
gu (A gw | |||||
gü gw | |||||
gu (e g | |||||
gu (i g | |||||
g (Y+ x // ge gi | |||||
gu (A gw | |||||
gu (e g | |||||
gu (i g | |||||
gu (é g | |||||
gu (í g | |||||
.group h | .group h | ||||
h // silent | |||||
h // silent | |||||
.group i | .group i | ||||
i i | |||||
i (A j | |||||
A) ix S | |||||
_) ix iS | |||||
i i | |||||
i (u i | |||||
i (A j | |||||
.group j | .group j | ||||
j x | |||||
j x | |||||
.group k | .group k | ||||
k k | |||||
k k | |||||
.group l | .group l | ||||
l l | |||||
ll l^ | |||||
l l | |||||
ll l^ | |||||
ll (_ l | |||||
.group m | .group m | ||||
m m | |||||
m m | |||||
.group n | .group n | ||||
n n | |||||
n (L04 m | |||||
n (_L04 m | |||||
ny n^ | |||||
n n | |||||
n (L04 m | |||||
n (_L04 m | |||||
ny n^ | |||||
.group ñ | .group ñ | ||||
ñ n^ | |||||
ñ n^ | |||||
.group o | .group o | ||||
o o | |||||
oi oI | |||||
oi (X 'oI | |||||
oy (K oI | |||||
oy (X 'oI | |||||
ou ow | |||||
ou (X 'ow | |||||
i) o O | |||||
u) o O | |||||
y) o O | |||||
o o | |||||
oix oS | |||||
oi oI | |||||
oi (X 'oI | |||||
oy (K oI | |||||
oy (X 'oI | |||||
ou ow | |||||
ou (X 'ow | |||||
i) o O | |||||
u) o O | |||||
y) o O | |||||
.group p | .group p | ||||
p p | |||||
p p | |||||
_) ps s | |||||
.group q | .group q | ||||
qu (A kw | |||||
qü kw | |||||
qu (e k | |||||
qu (i k | |||||
qu (A kw | |||||
qü kw | |||||
qu (e k | |||||
qu (i k | |||||
qu (é k | |||||
qu (í k | |||||
.group r | .group r | ||||
r r | |||||
_) r R | |||||
rr RR2 | |||||
@) r (- = // followed by hyphen. Silent, but stress on last vowel | |||||
rs (_ =s | |||||
r r | |||||
r (_ r | |||||
r (t r | |||||
A) r (A r | |||||
C) r (A r | |||||
_) r (A R | |||||
l) r (A R | |||||
m) r (A R | |||||
n) r (A R | |||||
s) r (A R | |||||
rr RR2 | |||||
@) r (- = // followed by hyphen. Silent, but stress on last vowel | |||||
rs (_ =s | |||||
.group s | .group s | ||||
s s | |||||
&) s (_S1 s | |||||
s s | |||||
&) s (_S1 s | |||||
.group t | .group t | ||||
t t | |||||
a) t (_ t# // becomes silent in a stressed syllable | |||||
u) t (_ t# | |||||
ei) t (_ t# | |||||
n) t (_ = // silent, but stress on last vowel | |||||
tz T | |||||
t t | |||||
a) t (_ t# // becomes silent in a stressed syllable | |||||
u) t (_ t# | |||||
ei) t (_ t# | |||||
n) t (_ = // silent, but stress on last vowel | |||||
tz T | |||||
ue) t (_ t# | |||||
ui) t (_ t# | |||||
s) t (_ = // silent, but stress on last vowel | |||||
.group u | .group u | ||||
u u | |||||
u (A w | |||||
_) u (A gw | |||||
u u | |||||
u (u u | |||||
u (i u | |||||
u (A w | |||||
_) u (A gw | |||||
uix uS | |||||
.group v // same as 'b' | .group v // same as 'b' | ||||
v b | v b | ||||
_) v b // phoneme definition may change it to [B] | |||||
_) v b // phoneme definition may change it to [B] | |||||
_) v (A b | _) v (A b | ||||
v (A B | v (A B | ||||
v (cY B | v (cY B | ||||
.group w | .group w | ||||
w w | |||||
w B | |||||
.group x | .group x | ||||
x ks | |||||
_) x S | |||||
x ks | |||||
_) x S | |||||
i) x S | |||||
.group y | .group y | ||||
y j | |||||
y j | |||||
y (_ i | |||||
.group z | .group z | ||||
z T | |||||
z T | |||||
.group | .group | ||||
á ''a | |||||
é ''e | |||||
í ''i | |||||
ó ''o | |||||
ú ''u | |||||
á ''a | |||||
é ''e | |||||
í ''i | |||||
ó ''o | |||||
ú ''u | |||||
// words of one letter | // words of one letter | ||||
в $combine | в $combine | ||||
а $u $combine | |||||
а $u $combine | |||||
е $u | е $u | ||||
й i $u | |||||
й i $u | |||||
и $u $pause | и $u $pause | ||||
у $u $combine | |||||
с $combine | |||||
г god'ina $hasdot | |||||
у $u $combine | |||||
с $combine | |||||
г god'ina $hasdot | |||||
(а в) %av | |||||
(а с) %as | |||||
// letter names | // letter names | ||||
б b@ | б b@ |
¢ s'ent | ¢ s'ent | ||||
¥ j'en: | ¥ j'en: | ||||
µ my | µ my | ||||
' apostr'Vf // PB o changed to V | |||||
' apostr'Vf | |||||
½ en'hal | ½ en'hal | ||||
+ plus | + plus | ||||
_10 t'i | _10 t'i | ||||
_11 'Elv@ | _11 'Elv@ | ||||
_12 t'Vl | _12 t'Vl | ||||
_13 tR'?&#d@-n // PB & changed to &# | |||||
_13 tR'?&#d@-n | |||||
_14 fj'ord@-n | _14 fj'ord@-n | ||||
_15 f'Emd@-n | _15 f'Emd@-n | ||||
_16 s'ajsd@-n | _16 s'ajsd@-n | ||||
_17 s'Wd@-n // PP Y changed to W | |||||
_18 '?&d@-n // PB a changed to & | |||||
_17 s'Wd@-n | |||||
_18 '?&d@-n | |||||
_19 n'ed@-n | _19 n'ed@-n | ||||
_2X t'y:?u | _2X t'y:?u | ||||
_3X tR'&#Dv@ //PB [tR'ADv@] changed to [tR'&#Dv@] | |||||
_4X f'?W:_|V //PB [f'W:*3] changed to [ f'?W:V] | |||||
_5X h&l't*Es // PB [a] changed to [&], e changed to E | |||||
_6X t*'Es // PB changed from e to E | |||||
_7X h&lfj'&rs // PV a changed to & | |||||
_3X tR'&#Dv@ | |||||
_4X f'?W:_|V | |||||
_5X h&l't*Es | |||||
_6X t*'Es | |||||
_7X h&lfj'&rs | |||||
_8X f'irs | _8X f'irs | ||||
_9X h&lf'Ems // PB a changed to & | _9X h&lf'Ems // PB a changed to & | ||||
_0C h'un*VD | |||||
_1C ed||h'unRV:D // PB added 'et hundrede' | |||||
_0M1 t'u:s@-n | |||||
_1M1 ed||t'u:s@-n // PB added 'et' to tusind | |||||
_0C h'unRVD | |||||
_1C ed||h'unRV:D | |||||
_0M1 t'?us@-n | |||||
_1M1 ed||t'?us@-n | |||||
_1M2 'e:n||milij'o:n | _1M2 'e:n||milij'o:n | ||||
_0M2 milij'o:nV // PB [3] changed to [V] | |||||
_0M2 milij'o:nV | |||||
_1M3 'e:n||milij'A:d | _1M3 'e:n||milij'A:d | ||||
_0M3 milij'A:d3 | _0M3 milij'A:d3 | ||||
_1M4 'e:n||bilij'o:n | _1M4 'e:n||bilij'o:n | ||||
eller // or | eller // or | ||||
mens $pause // while | mens $pause // while | ||||
for | for | ||||
fordi fVd'i $pause // because - PB: changed stress | |||||
fordi fVd'i $pause // because | |||||
når nVr $pause // while | når nVr $pause // while | ||||
der dEr $u+ $u // PB changed from [dA] | der dEr $u+ $u // PB changed from [dA] | ||||
hvor v'O // where | hvor v'O // where | ||||
ved $u+ // at | ved $u+ // at | ||||
om $u+ $brk // about, within | om $u+ $brk // about, within | ||||
med $u+ // with | med $u+ // with | ||||
af & // PB changed from [a?] to [&] - sound too short in a sentence | |||||
// Also removed $u from 'af' and other words. They disappeared. | |||||
ad & // PB added 'ad' | |||||
ad &D $atend $sentence // PB "Det må ikke skille os ad." | |||||
at & $u // PB changed from [at] to [&:] | |||||
hos // at - PB: removed [$u+] | |||||
som sVm $u // which / that - PB: removed [$u+] | |||||
af & | |||||
ad & | |||||
ad &D $atend $sentence // "Det må ikke skille os ad." | |||||
at & $u | |||||
hos | |||||
som sVm $u // which / that | |||||
// pronouns | // pronouns | ||||
jeg jaj $u+ // I | |||||
jeg jAj $u+ // I | |||||
du du $u | du du $u | ||||
de $u | de $u | ||||
han $u | han $u | ||||
dét de | dét de | ||||
vi vi $u | vi vi $u | ||||
i _i $u+ | i _i $u+ | ||||
mig maj $u // me | |||||
dig daj $u+ | |||||
mig mAj $u // me | |||||
dig dAj $u+ | |||||
dem $u | dem $u | ||||
ham $u | ham $u | ||||
hende $u | hende $u | ||||
er Er $u // is/are | er Er $u // is/are | ||||
var vAr $u+ // was/were | var vAr $u+ // was/were | ||||
har hAr $u+ // has/have | har hAr $u+ // has/have | ||||
havde h&:D@ $u+ // had | |||||
havde h&D@ $u+ // had | |||||
vil $u+ // will | vil $u+ // will | ||||
skal $u+ // shall | skal $u+ // shall | ||||
kan $u+ // can | kan $u+ // can | ||||
word _^_EN | word _^_EN | ||||
warrior _^_EN | warrior _^_EN | ||||
// PB names | |||||
// Names | |||||
august OgOsd $capital | august OgOsd $capital | ||||
austin _^_EN | austin _^_EN | ||||
bailey _^_EN | bailey _^_EN | ||||
reynolds _^_EN | reynolds _^_EN | ||||
white _^_EN | white _^_EN | ||||
// PB French words | |||||
// French words | |||||
croquis _^_FR | croquis _^_FR | ||||
crouton _^_FR | crouton _^_FR | ||||
jugement _^_FR | jugement _^_FR | ||||
madame _^_FR | madame _^_FR | ||||
mademoiselle _^_FR | mademoiselle _^_FR | ||||
// PB (French) nouns with final -age - stressed a, "age" pronounced ['&S@] | |||||
// French) nouns with final -age - stressed a, "age" pronounced ['&S@] | |||||
affutage $alt | affutage $alt | ||||
apanage $alt | apanage $alt | ||||
arbitrage $alt | arbitrage $alt | ||||
tonnage $alt | tonnage $alt | ||||
trikotage $alt | trikotage $alt | ||||
// PB final -abel - stressed a | |||||
// Final -abel - stressed a | |||||
// "el" has been removed in order to make rules for | // "el" has been removed in order to make rules for | ||||
// "konstabel" and the plural "konstabler" without "e" | // "konstabel" and the plural "konstabler" without "e" | ||||
acceptab $alt | acceptab $alt | ||||
tolerans $alt | tolerans $alt | ||||
varians $alt | varians $alt | ||||
// PB nouns with final -ade - stressed a | |||||
// Nouns with final -ade - stressed a | |||||
ambassade $alt | ambassade $alt | ||||
arkade $alt | arkade $alt | ||||
ballade $alt | ballade $alt | ||||
tirade $alt | tirade $alt | ||||
triade $alt | triade $alt | ||||
// PB nouns and adjectives with final -al - stressed a | |||||
// Nouns and adjectives with final -al - stressed a | |||||
admiral $alt | admiral $alt | ||||
adverbial $alt | adverbial $alt | ||||
aksial $alt | aksial $alt | ||||
ækvatorial $alt | ækvatorial $alt | ||||
ødipal $alt | ødipal $alt | ||||
// PB words with final -ar - stressed a | |||||
// Words with final -ar - stressed a | |||||
dokumentar $alt | dokumentar $alt | ||||
aktuar $alt | aktuar $alt | ||||
proletar $alt | proletar $alt | ||||
velar $alt | velar $alt | ||||
vokabular $alt | vokabular $alt | ||||
// PB final -agtig - stressed a | |||||
// Final -agtig - stressed a | |||||
barnagtig $alt | barnagtig $alt | ||||
blødagtig $alt | blødagtig $alt | ||||
delagtig $alt | delagtig $alt | ||||
tvivlagtig $alt | tvivlagtig $alt | ||||
tyvagtig $alt | tyvagtig $alt | ||||
// PB words with final -an - stressed a | |||||
// Words with final -an - stressed a | |||||
aeroplan $alt2 | aeroplan $alt2 | ||||
agraman $alt2 | agraman $alt2 | ||||
altan $alt2 | altan $alt2 | ||||
galan $alt2 | galan $alt2 | ||||
hortulan $alt2 | hortulan $alt2 | ||||
human $alt2 | human $alt2 | ||||
hvordan vVd'&n $alt | |||||
inhuman $alt2 | inhuman $alt2 | ||||
kapellan $alt2 | kapellan $alt2 | ||||
karljohan $alt2 | karljohan $alt2 | ||||
adviser $alt | adviser $alt | ||||
advoker $alt | advoker $alt | ||||
afficer $alt | afficer $alt | ||||
'aflever $alt | |||||
'afmarcher $alt | 'afmarcher $alt | ||||
afrikaniser $alt | afrikaniser $alt | ||||
agere $alt | agere $alt | ||||
(secret service) sigred||s'Wvis | (secret service) sigred||s'Wvis | ||||
(happy hour) h&pi||'AuV | (happy hour) h&pi||'AuV | ||||
chevrolet sjEvrol'e | chevrolet sjEvrol'e | ||||
saigon sajg3-n // PB Saigon | |||||
saigon sAjgVn // PB Saigon | |||||
managua m&n'&:gw& | managua m&n'&:gw& | ||||
(deja-vu) deSja||'vy | (deja-vu) deSja||'vy | ||||
(il duce) il||d'u:tSj@ // PB Italian Fascist | (il duce) il||d'u:tSj@ // PB Italian Fascist |
Andre 0ndreI | Andre 0ndreI | ||||
Andrea andri@ | Andrea andri@ | ||||
Andreas A:ndr'eI@s | Andreas A:ndr'eI@s | ||||
Angela $1 | |||||
Anita $alt3 | Anita $alt3 | ||||
Anthony ant@ni | Anthony ant@ni | ||||
Anton ant0n | Anton ant0n |
o (blo 0 | o (blo 0 | ||||
_r) o (bo oU | _r) o (bo oU | ||||
_) o (bs %0 | _) o (bs %0 | ||||
?3 _) o (bs %0# | |||||
_) obs (er %0bz | _) obs (er %0bz | ||||
obso (l 0bs@ | obso (l 0bs@ | ||||
o (bstin 0 | o (bstin 0 | ||||
_) o (bt %0 | _) o (bt %0 | ||||
?3 _) o (bt %0# | |||||
o (by_ oU | o (by_ oU | ||||
f) o (cA oU | f) o (cA oU | ||||
_l) o (cA oU | _l) o (cA oU | ||||
_) zs (Y z | _) zs (Y z | ||||
_) z (wY z | _) z (wY z | ||||
n) z (_ ts | |||||
n) z (_N ts | |||||
@) zales (_ z'A:l@s | @) zales (_ z'A:l@s | ||||
zei zaI | zei zaI | ||||
zes (_ zI2z | zes (_ zI2z |
श S@ | श S@ | ||||
ष s.@ // retroflex [S] | ष s.@ // retroflex [S] | ||||
स s@ | स s@ | ||||
ह H@ | |||||
ह H@- | |||||
क़ q@ | क़ q@ | ||||
ख़ x@ | ख़ x@ | ||||
ग़ Q@ | ग़ Q@ | ||||
ॐ #X1o~m | ॐ #X1o~m | ||||
_?? Vks.@r | _?? Vks.@r | ||||
_a ej | |||||
_b bi: | |||||
_c si: | |||||
_d di: | |||||
_e i: | |||||
_f Ef | |||||
// Punctuation | // Punctuation | ||||
। dVn.d.V | । dVn.d.V |
स (B s | स (B s | ||||
.group ह | .group ह | ||||
ह HV | |||||
ह H | |||||
ह (B H | ह (B H | ||||
q kju: | q kju: | ||||
r a:r | r a:r | ||||
s Es | s Es | ||||
t thi: | |||||
t t#i: | |||||
u ju: | u ju: | ||||
v vi: | v vi: | ||||
w dabalju: | w dabalju: |
q kju: | q kju: | ||||
r a:R | r a:R | ||||
s Es | s Es | ||||
t ti: | |||||
t t#i: | |||||
u ju: | u ju: | ||||
v vi: | v vi: | ||||
w dVbVlju: | w dVbVlju: |
assembleia $alt | assembleia $alt | ||||
ateia $alt | ateia $alt | ||||
aterro $alt2 $noun | aterro $alt2 $noun | ||||
aterros $alt2 | |||||
atmosfera $alt | atmosfera $alt | ||||
atrozes $alt | atrozes $alt | ||||
autora $alt2 | autora $alt2 | ||||
chupeta $alt2 | chupeta $alt2 | ||||
clamores $alt2 | clamores $alt2 | ||||
clero $alt | clero $alt | ||||
crepe $alt | |||||
coco $alt2 | coco $alt2 | ||||
cofre $alt | cofre $alt | ||||
cogumelo $alt | cogumelo $alt | ||||
concerto $alt2 $noun | concerto $alt2 $noun | ||||
concordo $alt | concordo $alt | ||||
conforto $alt $verb | conforto $alt $verb | ||||
congelo $alt | |||||
consolo $alt2 $noun | consolo $alt2 $noun | ||||
controle $alt2 $noun | controle $alt2 $noun | ||||
controlo $alt2 $noun | controlo $alt2 $noun | ||||
desespero $alt2 $noun | desespero $alt2 $noun | ||||
desfecho $alt2 | desfecho $alt2 | ||||
desprezo $alt2 $noun | desprezo $alt2 $noun | ||||
desse $alt2 | |||||
desse $alt $verb | |||||
deste $alt2 | |||||
deste $alt $verb | |||||
desterro $alt2 | |||||
deveras $alt | deveras $alt | ||||
dez $alt | dez $alt | ||||
diarreia $alt | diarreia $alt | ||||
discordo $alt | discordo $alt | ||||
dissermos $alt | |||||
dobro $alt2 $noun | dobro $alt2 $noun | ||||
doce $alt2 | doce $alt2 | ||||
doutora $alt2 | doutora $alt2 | ||||
esboço $alt $verb | esboço $alt $verb | ||||
escopeta $alt2 | escopeta $alt2 | ||||
escova $alt2 $noun | escova $alt2 $noun | ||||
escovo $alt | |||||
escroto $alt2 | escroto $alt2 | ||||
esforço $alt $verb | esforço $alt $verb | ||||
esforços $alt | esforços $alt | ||||
fogos $alt | fogos $alt | ||||
foguete $alt2 | foguete $alt2 | ||||
foice $alt2 | foice $alt2 | ||||
fora $alt | |||||
fora $alt2 $verb | |||||
forca $alt2 | forca $alt2 | ||||
força $alt2 $noun | força $alt2 $noun | ||||
forças $alt2 | forças $alt2 | ||||
forço $alt | forço $alt | ||||
fordes $alt2 | |||||
fores $alt2 | |||||
fossem $alt2 | |||||
forro $alt $verb | forro $alt $verb | ||||
fosse $alt2 | fosse $alt2 | ||||
frevo $alt2 | frevo $alt2 | ||||
hoje $alt2 | hoje $alt2 | ||||
horrores $alt2 | horrores $alt2 | ||||
ideia $alt | ideia $alt | ||||
insonoro $alt | |||||
interesse $alt2 $noun | interesse $alt2 $noun | ||||
jogo $alt2 $noun | jogo $alt2 $noun | ||||
joguete $alt2 | joguete $alt2 | ||||
provo $alt | provo $alt | ||||
quarteto $alt2 | quarteto $alt2 | ||||
queda $alt | queda $alt | ||||
quede $alt2 | |||||
quinteto $alt2 | quinteto $alt2 | ||||
recomeço $alt2 $noun | recomeço $alt2 $noun | ||||
recordo $alt | recordo $alt | ||||
rock $alt | rock $alt | ||||
rola $alt2 $noun | rola $alt2 $noun | ||||
rolo $alt2 $noun | rolo $alt2 $noun | ||||
rota $alt2 | |||||
rota $alt $noun | |||||
rumores $alt2 | rumores $alt2 | ||||
saleta $alt2 | saleta $alt2 | ||||
sarjeta $alt | sarjeta $alt | ||||
sexteto $alt2 | sexteto $alt2 | ||||
?1 senhora $alt2 | ?1 senhora $alt2 | ||||
senhores $alt2 | senhores $alt2 | ||||
singelo $alt | |||||
sinopse $alt | sinopse $alt | ||||
soco $alt2 | soco $alt2 | ||||
soco $alt $verb | soco $alt $verb | ||||
tumores $alt2 | tumores $alt2 | ||||
valeta $alt2 | valeta $alt2 | ||||
vanessa $alt2 | vanessa $alt2 | ||||
velo $alt | |||||
velozes $alt | velozes $alt | ||||
verme $alt | verme $alt | ||||
violeta $alt2 | violeta $alt2 |
_perd) e (L05_ e | _perd) e (L05_ e | ||||
_quis) e (L05_ E | _quis) e (L05_ E | ||||
_soub) e (L05_ E | _soub) e (L05_ E | ||||
proteg) e (L05_ e // des- | |||||
diss) e (L06_ E // contra- | |||||
tend) e (L06_ e // a- con- en- es- | tend) e (L06_ e // a- con- en- es- | ||||
vend) e (L06_ e // re- | |||||
_mord) e (L06_ e | _mord) e (L06_ e | ||||
_rend) e (L06_ e | _rend) e (L06_ e | ||||
_vend) e (L06_ e | |||||
prend) e (L06_ e // a- rea- des- desa- | prend) e (L06_ e // a- rea- des- desa- | ||||
_arrepend) e (L06_ e | _arrepend) e (L06_ e | ||||
_defend) e (L06_ e | _defend) e (L06_ e | ||||
preend) e (L06_ e // com- a- re- sur- | preend) e (L06_ e // com- a- re- sur- | ||||
respond) e (L06_ e // cor- | respond) e (L06_ e // cor- | ||||
bat) e (L07_ e // re- com- | bat) e (L07_ e // re- com- | ||||
ceb) e (L07_ e // re- per- con- | |||||
ced) e (L07_ e // pro- con- su- | ced) e (L07_ e // pro- con- su- | ||||
met) e (L07_ e // co- pro- arre- re- intro- compro- sub- | met) e (L07_ e // co- pro- arre- re- intro- compro- sub- | ||||
mov) e (L07_ e // re- co- | mov) e (L07_ e // re- co- | ||||
tend) e (L07_ e // en- con- a- es- | tend) e (L07_ e // en- con- a- es- | ||||
torc) e (L07_ e // con- | torc) e (L07_ e // con- | ||||
venc) e (L07_ e // con- | venc) e (L07_ e // con- | ||||
vend) e (L07_ e // re- | |||||
vert) e (L07_ e // in- re- con- | vert) e (L07_ e // in- re- con- | ||||
volv) e (L07_ e // de- en- re- | volv) e (L07_ e // de- en- re- | ||||
_eleg) e (L07_ e | _eleg) e (L07_ e | ||||
parec) e (L07_ e // a- rea- com- desa- | parec) e (L07_ e // a- rea- com- desa- | ||||
prend) e (L07_ e // a- rea- des- | prend) e (L07_ e // a- rea- des- | ||||
screv) e (L07_ e // e- in- ree- pre- de- | screv) e (L07_ e // e- in- ree- pre- de- | ||||
_abastec) e (L07_ e | |||||
_aborrec) e (L07_ e | _aborrec) e (L07_ e | ||||
_absolv) e (L07_ e | _absolv) e (L07_ e | ||||
_adoec) e (L07_ e | _adoec) e (L07_ e | ||||
_endurec) e (L07_ e | _endurec) e (L07_ e | ||||
_enlouquec) e (L07_ e | _enlouquec) e (L07_ e | ||||
_enraivec) e (L07_ e | _enraivec) e (L07_ e | ||||
_entorpec) e (L07_ e | |||||
_entristec) e (L07_ e | _entristec) e (L07_ e | ||||
_envaidec) e (L07_ e | _envaidec) e (L07_ e | ||||
_envelhec) e (L07_ e | _envelhec) e (L07_ e | ||||
_escurec) e (L07_ e | _escurec) e (L07_ e | ||||
_espairec) e (L07_ e | _espairec) e (L07_ e | ||||
_esquec) e (L07_ e | _esquec) e (L07_ e | ||||
_estremec) e (L07_ e | |||||
_interromp) e (L07_ e | _interromp) e (L07_ e | ||||
_perec) e (L07_ e | _perec) e (L07_ e | ||||
_rejuvenec) e (L07_ e | _rejuvenec) e (L07_ e | ||||
_resolv) e (L07_ e | _resolv) e (L07_ e | ||||
_suspend) e (L07_ e | _suspend) e (L07_ e | ||||
abastec) e (L07_ e // re- | |||||
conhec) e (L07_ e // & re- des- | conhec) e (L07_ e // & re- des- | ||||
estabelec) e (L07_ e // re- | estabelec) e (L07_ e // re- | ||||
favorec) e (L07_ e // des- | favorec) e (L07_ e // des- | ||||
qu) e (brL04_ E | qu) e (brL04_ E | ||||
_hosp) e (dL03_ E | _hosp) e (dL03_ E | ||||
_gr) e (gL03_ e | _gr) e (gL03_ e | ||||
_gal) e (gL03_ e | |||||
_n) e (grL03_ e | _n) e (grL03_ e | ||||
_estr) ei (L03_ EI | _estr) ei (L03_ EI | ||||
_inv) e (jL04_ E | _inv) e (jL04_ E | ||||
_sev) e (rL03_ E | _sev) e (rL03_ E | ||||
_reit) e (rL03_ E | _reit) e (rL03_ E | ||||
_sinc) e (rL03_ E | _sinc) e (rL03_ E | ||||
g) e (rL04_ E // su- refri- | |||||
_g) e (rL04_ E | |||||
qu) e (rL04_ E // re- | qu) e (rL04_ E // re- | ||||
_op) e (rL04_ E | _op) e (rL04_ E | ||||
gen) e (rL04_ E // de- re- | |||||
_alt) e (rL04_ E | _alt) e (rL04_ E | ||||
_sug) e (rL04_ E | |||||
_sup) e (rL04_ E | _sup) e (rL04_ E | ||||
_tol) e (rL04_ E | _tol) e (rL04_ E | ||||
_ven) e (rL04_ E | _ven) e (rL04_ E | ||||
acel) e (rL04_ E // des- | acel) e (rL04_ E // des- | ||||
_coop) e (rL04_ E | _coop) e (rL04_ E | ||||
_temp) e (rL04_ E | _temp) e (rL04_ E | ||||
_recup) e (rL04_ E | |||||
_refrig) e (rL04_ E | |||||
_v) e (rbL03_ E | _v) e (rbL03_ E | ||||
_p) e (rdL02_ E | _p) e (rdL02_ E | ||||
_l) e (rdL03_ E | _l) e (rdL03_ E | ||||
_d) e (vL03_ e | _d) e (vL03_ e | ||||
scr) e (vL03_ e // e- in- pre- ree- de- | scr) e (vL03_ e // e- in- pre- ree- de- | ||||
_atr) e (vL03_ e | _atr) e (vL03_ e | ||||
pr) e (zL04_ E // des- menos- | |||||
_r) e (zL04_ E | |||||
_pr) e (zL04_ E | |||||
_despr) e (zL04_ E | |||||
_embel) e (zL04_ E | _embel) e (zL04_ E | ||||
_acont) e (çL01_ e | |||||
_arref) e (çL01_ e | |||||
_menospr) e (zL04_ E | |||||
_emagr) e (çL03 | _emagr) e (çL03 | ||||
pr) e (çL03_ e // a- | pr) e (çL03_ e // a- | ||||
aqu) e (çL03_ e // re- | |||||
mer) e (çL03_ e // des- | mer) e (çL03_ e // des- | ||||
pad) e (çL03_ e // com- | pad) e (çL03_ e // com- | ||||
par) e (çL03_ e // a- re- com- rea- desa- | par) e (çL03_ e // a- re- com- rea- desa- | ||||
_ado) e (çL03_ e | _ado) e (çL03_ e | ||||
_aqu) e (çL03_ e | |||||
_car) e (çL03_ e | _car) e (çL03_ e | ||||
_per) e (çL03_ e_ | _per) e (çL03_ e_ | ||||
conh) e (çL03_ e // re- | conh) e (çL03_ e // re- | ||||
_ofer) e (çL03_ e | _ofer) e (çL03_ e | ||||
abast) e (çL03_ e // re- | abast) e (çL03_ e // re- | ||||
_aborr) e (çL03_ e | _aborr) e (çL03_ e | ||||
_acont) e (çL03_ e | |||||
_agrad) e (çL03_ e | _agrad) e (çL03_ e | ||||
_amanh) e (çL03_ e | _amanh) e (çL03_ e | ||||
_amort) e (çL03_ e | _amort) e (çL03_ e | ||||
_anoit) e (çL03_ e | _anoit) e (çL03_ e | ||||
_arref) e (çL03_ e | |||||
_desguarn) e (çL03_ e | _desguarn) e (çL03_ e | ||||
_desguarnec) e (çL03_ e | _desguarnec) e (çL03_ e | ||||
_enfraqu) e (çL03_ e | _enfraqu) e (çL03_ e | ||||
?1 v) o (lt O | ?1 v) o (lt O | ||||
//sort | //sort | ||||
_f) o (L06_ o | |||||
_engl) o (bL01_ O | _engl) o (bL01_ O | ||||
_s) o (bL02_ O | _s) o (bL02_ O | ||||
_esn) o (bL04_ O | _esn) o (bL04_ O | ||||
_ens) o (pL04_ O | _ens) o (pL04_ O | ||||
_s) o (prL04_ O | _s) o (prL04_ O | ||||
_) o (ptL04_ O | _) o (ptL04_ O | ||||
_inod) o (rL03_ O | |||||
_inson) o (rL03_ O | |||||
_comem) o (rL04 O | |||||
_remem) o (rL04_ O | |||||
_enf) o (rquL02_ O | _enf) o (rquL02_ O | ||||
c) o (rrL01_ o // escorra, incorra, corra, recorra | c) o (rrL01_ o // escorra, incorra, corra, recorra | ||||
_m) o (rrL01_ o | _m) o (rrL01_ o | ||||
_r) o (snL04_ O | _r) o (snL04_ O | ||||
_c) o (spL02_ O | _c) o (spL02_ O | ||||
p) ostos (_ Ost=Us# // dispostos etc. | p) ostos (_ Ost=Us# // dispostos etc. | ||||
_gar) o (tL03_ o | |||||
_g) o (zL04_ O | _g) o (zL04_ O | ||||
_ad) o (çL03_ O | _ad) o (çL03_ O | ||||
_end) o (çL03_ O | _end) o (çL03_ O | ||||
r (C *@- | r (C *@- | ||||
A) r (A * | A) r (A * | ||||
A) r (_A * | A) r (_A * | ||||
rr rx | |||||
rr x | |||||
XC) r (A R | XC) r (A R | ||||
C) r (A * | C) r (A * | ||||
//?1 C) r (A r | |||||
_) r x | _) r x | ||||
l) r x | l) r x | ||||
n) r (+ x | n) r (+ x |
// speak Latin letters as English | // speak Latin letters as English | ||||
a e:j | |||||
a e:j $atend | |||||
b bi: | b bi: | ||||
c si: | c si: | ||||
d di: | d di: | ||||
f Ef | f Ef | ||||
g dZi: | g dZi: | ||||
h e:tS | h e:tS | ||||
i a:j | |||||
i a:j $atend | |||||
j dZe:j | j dZe:j | ||||
k ke:j | k ke:j | ||||
l El | l El | ||||
q kju: | q kju: | ||||
r a:R | r a:R | ||||
s Es | s Es | ||||
t thi: | |||||
t t#i: | |||||
u ju: | u ju: | ||||
v vi: | v vi: | ||||
w dVbVlju: | w dVbVlju: | ||||
கிர் $alt | கிர் $alt | ||||
கங்க $alt | கங்க $alt | ||||
காந்த $alt | காந்த $alt | ||||
கேம் $alt | |||||
_) கி (ளாமர g | _) கி (ளாமர g | ||||
_) கி (ளாஸ்_ g | _) கி (ளாஸ்_ g | ||||
_) கி (ளாஸ்_மேட k | _) கி (ளாஸ்_மேட k | ||||
_) கிளாஸ்க (ோ gl.a:sg | |||||
_) கிளிக் (_L29 kl.ik | _) கிளிக் (_L29 kl.ik | ||||
_) கிளிட kl.it.V# | _) கிளிட kl.it.V# | ||||
_) கிளிண்ட (ன klint.V | _) கிளிண்ட (ன klint.V | ||||
_) க (ேட்டைக் g | _) க (ேட்டைக் g | ||||
_) க (ேட்டைத் g | _) க (ேட்டைத் g | ||||
_) க (ேட்டைப் g | _) க (ேட்டைப் g | ||||
_) க (ேமை g | |||||
_) க (ேம்ஸ g | _) க (ேம்ஸ g | ||||
_) கேரண்ட ge:rVn.t.V# | _) கேரண்ட ge:rVn.t.V# | ||||
_) க (ேலரி g | _) க (ேலரி g | ||||
அ) க (ாடமி k | அ) க (ாடமி k | ||||
_நேர்) க (ாணல k | _நேர்) க (ாணல k | ||||
_கண்) க (ாணா k | _கண்) க (ாணா k | ||||
_கர்ம) க (ாண்ட g | |||||
உத்திரா) க (ாண்ட k | உத்திரா) க (ாண்ட k | ||||
_ராம) க (ாதை k | _ராம) க (ாதை k | ||||
இராம) க (ாதை k | இராம) க (ாதை k | ||||
_ப) சக் tSVk | _ப) சக் tSVk | ||||
_) ச (க்கரவர்த்தி tSV | _) ச (க்கரவர்த்தி tSV | ||||
_) ச (க்கிலி tSV | _) ச (க்கிலி tSV | ||||
_) சக் (ரவர்த்தி tSVk | |||||
_க) ச (க்ஸ்தான zV | _க) ச (க்ஸ்தான zV | ||||
சங்க (ர s.VNkV | சங்க (ர s.VNkV | ||||
_) ச (ட்டL08ஸ்கர tSV | _) ச (ட்டL08ஸ்கர tSV | ||||
_வரதா) ச (ாரி tS | _வரதா) ச (ாரி tS | ||||
_வேதா) ச (ாரி tS | _வேதா) ச (ாரி tS | ||||
_கிருஷ்ணமா) ச (ாரி tS | _கிருஷ்ணமா) ச (ாரி tS | ||||
_கோபால) ச (ாரி tS | |||||
_சங்கரா) ச (ாரி tS | |||||
_தேசிகா) ச (ாரி tS | _தேசிகா) ச (ாரி tS | ||||
_பட்டா) ச (ாரி tS | _பட்டா) ச (ாரி tS | ||||
_பிரம்ம) ச (ாரி tS | |||||
_மத்வா) ச (ாரி tS | _மத்வா) ச (ாரி tS | ||||
அனந்தா) ச (ாரி tS | அனந்தா) ச (ாரி tS | ||||
அன்னமா) ச (ாரி tS | அன்னமா) ச (ாரி tS | ||||
ராஜகோபால) ச (ாரி tS | |||||
ராமானுஜா) ச (ாரி tS | |||||
ஆ) ச (ாரிய_ tS | ஆ) ச (ாரிய_ tS | ||||
ஆ) ச (ாரியார tS | ஆ) ச (ாரியார tS | ||||
அ) ச (ாருதீன z | அ) ச (ாருதீன z | ||||
_மால) த (ி t | _மால) த (ி t | ||||
_ரேவ) த (ி t | _ரேவ) த (ி t | ||||
_வசந்) த (ி t | _வசந்) த (ி t | ||||
அவந்) த (ி t | |||||
வாசந்) த (ி t | வாசந்) த (ி t | ||||
_கோம) த (ி t | _கோம) த (ி t | ||||
ஜெயந்) த (ி t | ஜெயந்) த (ி t | ||||
_) ப (ாகீரதி b | _) ப (ாகீரதி b | ||||
_) ப (ாக்கிக் b | _) ப (ாக்கிக் b | ||||
_) ப (ாக்கிய b | _) ப (ாக்கிய b | ||||
_) ப (ாக்டரி_ f | |||||
_) ப (ாக்டரியா b | |||||
_) ப (ாக்டரியி f | |||||
_) ப (ாக்டரியை f | |||||
_) பாக்ட (ீரியா ba:kt. | _) பாக்ட (ீரியா ba:kt. | ||||
_) பாக்த (ாத ba:gd | _) பாக்த (ாத ba:gd | ||||
_) ப (ாக்ய b | _) ப (ாக்ய b | ||||
_) ப (ாவேய b | _) ப (ாவேய b | ||||
_) ப (ாவ்நகர b | _) ப (ாவ்நகர b | ||||
_) ப (ாஷாக்கள b | _) ப (ாஷாக்கள b | ||||
_) ப (ாஷாபிமான b | |||||
_) ப (ாஷாவ b | _) ப (ாஷாவ b | ||||
_) ப (ாஷிய b | _) ப (ாஷிய b | ||||
_) ப (ாஷை b | _) ப (ாஷை b | ||||
_) பி (ராதித் p | _) பி (ராதித் p | ||||
_) பி (ராத்தல b | _) பி (ராத்தல b | ||||
_) பி (ராந்தி_ b | _) பி (ராந்தி_ b | ||||
_) பி (ராந்திய_ p | |||||
_) பி (ராந்தியங் p | _) பி (ராந்தியங் p | ||||
_) பி (ராந்தியத் p | _) பி (ராந்தியத் p | ||||
_) பி (ராந்தியம்_ p | _) பி (ராந்தியம்_ p | ||||
_) பி (ரித்தானி b | _) பி (ரித்தானி b | ||||
_) பிரின்சிப (ால prinsip | _) பிரின்சிப (ால prinsip | ||||
_) பி (ரிமிய p | _) பி (ரிமிய p | ||||
_) பி (ரியங்கள p | |||||
_) பிரியங்க (ா prijVNk | _) பிரியங்க (ா prijVNk | ||||
_) பி (ரியதர p | _) பி (ரியதர p | ||||
_) பி (ரியத்த p | |||||
_) பி (ரியன p | _) பி (ரியன p | ||||
_) பி (ரியப்பட p | _) பி (ரியப்பட p | ||||
_) பி (ரியம p | _) பி (ரியம p | ||||
_) ப (ோதகன b | _) ப (ோதகன b | ||||
_) ப (ோதகர b | _) ப (ோதகர b | ||||
_) ப (ோதன b | _) ப (ோதன b | ||||
_) ப (ோதம b | |||||
_) ப (ோதிக்க b | _) ப (ோதிக்க b | ||||
_) ப (ோதிசத் b | _) ப (ோதிசத் b | ||||
_) ப (ோதிசத்வ b | _) ப (ோதிசத்வ b | ||||
_) ப (ோர்_அடி b | _) ப (ோர்_அடி b | ||||
_) ப (ோர்ஜரி f | _) ப (ோர்ஜரி f | ||||
_) ப (ோர்டL31 b | _) ப (ோர்டL31 b | ||||
_) ப (ோர்டு b | |||||
_) ப (ோர்ட்டிகோ p | |||||
_) ப (ோர்தான்_அடி b | _) ப (ோர்தான்_அடி b | ||||
_) ப (ோர்மேன f | _) ப (ோர்மேன f | ||||
_) ப (ோர்வெல் b | _) ப (ோர்வெல் b | ||||
ஆ) ப (ரேஷன pV | ஆ) ப (ரேஷன pV | ||||
_கார்) ப (ரேஷன pV | _கார்) ப (ரேஷன pV | ||||
_பம்) ப (ர்_ pV | _பம்) ப (ர்_ pV | ||||
அ) ப (ர்ணா pV | |||||
_கன்) ப (ர்ம fV | _கன்) ப (ர்ம fV | ||||
இன்) ப (ர்ம fV | இன்) ப (ர்ம fV | ||||
கரம்) ப (ற் pV | கரம்) ப (ற் pV | ||||
இம்) ப (ால f | இம்) ப (ால f | ||||
இரு) ப (ால p | இரு) ப (ால p | ||||
ஒரு) ப (ால p | ஒரு) ப (ால p | ||||
_தங்க) ப (ால b | |||||
ஆண்) ப (ால p | ஆண்) ப (ால p | ||||
_பெண்) ப (ால p | _பெண்) ப (ால p | ||||
L03தன்) ப (ால p | L03தன்) ப (ால p | ||||
கம்) ப்யூட (ர pjU:t.V | கம்) ப்யூட (ர pjU:t.V | ||||
_பெர்) ப் (யூம f | _பெர்) ப் (யூம f | ||||
_யூ) ப்ரட (ீஸ frVt. | _யூ) ப்ரட (ீஸ frVt. | ||||
_சு) ப் (ரியா p | |||||
_ஸ்ரீ) ப் (ரியா p | _ஸ்ரீ) ப் (ரியா p | ||||
_சு) ப் (ரீம p | _சு) ப் (ரீம p | ||||
_) ப் (ரீயா f | _) ப் (ரீயா f | ||||
இ (ரதத்த | இ (ரதத்த | ||||
இ (ரதம | இ (ரதம | ||||
இ (ரத்த | இ (ரத்த | ||||
இ (ரபீந்திர | |||||
இரப்ப (ர rVbbV | இரப்ப (ர rVbbV | ||||
இ (ரமண | இ (ரமண | ||||
இ (ரம்மிய | இ (ரம்மிய |
q kju: | q kju: | ||||
r a:r | r a:r | ||||
s Es | s Es | ||||
t thi: | |||||
t t#i: | |||||
u ju: | u ju: | ||||
v vi: | v vi: | ||||
w dVbVlju: | w dVbVlju: |
//================================ | //================================ | ||||
// Consonants | // Consonants | ||||
//================================ | //================================ | ||||
.L01 t c ne nd k x s nt ch th me te le ce ny ry e o u re nch de p pe ph sh v ve | |||||
.L01 t c ne nd k x s nt ch th me te le ce ny ry e o u re nch de p pe ph sh v ve ge | |||||
.L02 n | .L02 n | ||||
.group i | .group i | ||||
i i | i i | ||||
i (A j | |||||
//i (A j | |||||
ia i@ | ia i@ | ||||
ià i@2 | ià i@2 | ||||
iá i@3 | iá i@3 | ||||
.group y | .group y | ||||
y i | y i | ||||
y (A j | |||||
// y (A j | |||||
ya i@ | ya i@ | ||||
yà i@2 | yà i@2 | ||||
yá i@3 | yá i@3 | ||||
yệ i@6 | yệ i@6 | ||||
// yêu i@U | // yêu i@U | ||||
y (L01 _^_EN | |||||
.group ỳ | .group ỳ | ||||
ỳ i2 | ỳ i2 |
<table> | <table> | ||||
<tbody valign=top> | <tbody valign=top> | ||||
<tr> | <tr> | ||||
<td width=25><code>[p]</code><td width=150> | |||||
<td width=25><code>[b]</code><td width=150> | |||||
<td width=25><code>[p]</code><td width=80> | |||||
<td width=25><code>[b]</code><td width=80> | |||||
<tr> | <tr> | ||||
<td><code>[t]</code><td> | <td><code>[t]</code><td> | ||||
<td><code>[d]</code><td> | <td><code>[d]</code><td> | ||||
<table> | <table> | ||||
<tbody valign=top> | <tbody valign=top> | ||||
<tr><td width=25><code>[@]</code> | <tr><td width=25><code>[@]</code> | ||||
<td width=60>alph<b>a</b><td width=400>schwa | |||||
<td width=60>alph<b>a</b><td width=80>schwa | |||||
<tr><td><code>[3]</code> | <tr><td><code>[3]</code> | ||||
<td>bett<b>er</b><td>rhotic schwa. In British English this is the same as <code>[@]</code>, but it includes 'r' colouring in American and other rhotic accents. In these cases a separate <code>[r]</code> should not be included unless it is followed immediately by another vowel. | <td>bett<b>er</b><td>rhotic schwa. In British English this is the same as <code>[@]</code>, but it includes 'r' colouring in American and other rhotic accents. In these cases a separate <code>[r]</code> should not be included unless it is followed immediately by another vowel. | ||||
<tr><td><code>[a]</code><td>tr<b>a</b>p | <tr><td><code>[a]</code><td>tr<b>a</b>p | ||||
<tr><td><code>[aa]</code><td>b<b>a</b>th<td>This is <code>[a]</code> in some accents, <code>[A:]</code> in others. | <tr><td><code>[aa]</code><td>b<b>a</b>th<td>This is <code>[a]</code> in some accents, <code>[A:]</code> in others. | ||||
<tr><td><code>[a#]</code><td><b>a</b>bout<td>This may be <code>[@]</code> or may be a more open schwa. | |||||
<tr><td><code>[a2]</code><td><b>a</b>bout<td>This may be <code>[@]</code> or may be a more open schwa. | |||||
<tr><td><code>[A:]</code><td>p<b>al</b>m | <tr><td><code>[A:]</code><td>p<b>al</b>m | ||||
<tr><td><code>[A@]</code><td>st<b>ar</b>t | <tr><td><code>[A@]</code><td>st<b>ar</b>t | ||||
<tr><td><p> | <tr><td><p> | ||||
</tbody> | </tbody> | ||||
</table> | </table> | ||||
<p> | |||||
<code> [:] </code> can be used to lengthen a vowel, eg <code> [e:]</code> | |||||
</body> | </body> | ||||
</html> | </html> |
phoneme i | phoneme i | ||||
vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
length 90 //150 | |||||
length 95 //150 | |||||
// PB long vowel followed by consonant and certain vowels "gide" | // PB long vowel followed by consonant and certain vowels "gide" | ||||
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(#e) THEN | |||||
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(V) THEN | |||||
length 150 | length 150 | ||||
ENDIF | ENDIF | ||||
// "gider" TEST | |||||
// "gider", vrider" | |||||
IF nextPhW(D) AND next2PhW(V) OR next2PhW(?V) THEN | IF nextPhW(D) AND next2PhW(V) OR next2PhW(?V) THEN | ||||
length 90 | |||||
length 95 | |||||
ENDIF | ENDIF | ||||
// PB long vowel followed by certain vowels - "pigen" [p'i@-n] | // PB long vowel followed by certain vowels - "pigen" [p'i@-n] | ||||
IF nextPhW(#@) OR nextPhW(#e) THEN | IF nextPhW(#@) OR nextPhW(#e) THEN | ||||
ENDIF | ENDIF | ||||
// "vilje" - short followed by 2 consonants | // "vilje" - short followed by 2 consonants | ||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | ||||
length 90 | |||||
length 95 | |||||
ENDIF | ENDIF | ||||
// PB "tie", "stige", "krige" vowel + vowel: extra length | // PB "tie", "stige", "krige" vowel + vowel: extra length | ||||
// What is causing this very short [i] in words with final [@-]? | // What is causing this very short [i] in words with final [@-]? | ||||
phoneme e | phoneme e | ||||
vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
length 90 //150 | |||||
length 95 //150 | |||||
// "delte", "mente" | // "delte", "mente" | ||||
IF nextPhW(#e) OR nextPhW(#@) OR next2PhW(#e) OR next2PhW(#@) THEN | |||||
IF nextPhW(@-) OR nextPhW(V) OR next2PhW(@-) OR next2PhW(V) THEN | |||||
length 150 | length 150 | ||||
ENDIF | ENDIF | ||||
// PB "ring", "ringe" | // PB "ring", "ringe" | ||||
IF nextPhW(N) THEN | IF nextPhW(N) THEN | ||||
length 90 | |||||
length 95 | |||||
ENDIF | ENDIF | ||||
// PB "enig", "enige", "evig" | // PB "enig", "enige", "evig" | ||||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN | IF nextPhW(isNotVowel) AND next2PhW(i) THEN | ||||
ENDIF | ENDIF | ||||
// "nedladende" [n'eDl&D@-n@-] - before 2 consonants: short | // "nedladende" [n'eDl&D@-n@-] - before 2 consonants: short | ||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | ||||
length 90 | |||||
length 95 | |||||
ENDIF | ENDIF | ||||
FMT(vowel/e) | FMT(vowel/e) | ||||
endphoneme | endphoneme | ||||
phoneme E | phoneme E | ||||
vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
length 90 //150 | |||||
length 100 //150 | |||||
// "værelse", "breve" | // "værelse", "breve" | ||||
IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(@-) THEN | IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(@-) THEN | ||||
// length 150 | // length 150 | ||||
ENDIF | ENDIF | ||||
// "ræve" | // "ræve" | ||||
IF nextVowel(#@) OR nextVowel(#e) THEN | IF nextVowel(#@) OR nextVowel(#e) THEN | ||||
length 150 | |||||
length 160 | |||||
ENDIF | ENDIF | ||||
// "ære", "kærester", "ærefrygt" - longer E | // "ære", "kærester", "ærefrygt" - longer E | ||||
IF nextPhW(V) THEN | IF nextPhW(V) THEN | ||||
ENDIF | ENDIF | ||||
// Only the letter "æ" - long | // Only the letter "æ" - long | ||||
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN | IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN | ||||
length 150 | |||||
length 160 | |||||
ENDIF | ENDIF | ||||
// "stædig" [st'EDi] long | // "stædig" [st'EDi] long | ||||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN | IF nextPhW(isNotVowel) AND next2PhW(i) THEN | ||||
length 150 | |||||
length 160 | |||||
ENDIF | ENDIF | ||||
// "længe" - short - 2 consonants => 1 consonant | // "længe" - short - 2 consonants => 1 consonant | ||||
IF nextPhW(N) THEN | IF nextPhW(N) THEN | ||||
length 90 | |||||
length 120 | |||||
ENDIF | ENDIF | ||||
// "værelse" [v'E3-Vls@_!] | // "værelse" [v'E3-Vls@_!] | ||||
IF nextPhW(3-) AND next2PhW(V) THEN | IF nextPhW(3-) AND next2PhW(V) THEN | ||||
length 90 | |||||
length 120 | |||||
ENDIF | ENDIF | ||||
// "mælkebøtte" - short followed by 2 consonants | // "mælkebøtte" - short followed by 2 consonants | ||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | ||||
length 90 | |||||
length 120 | |||||
ENDIF | ENDIF | ||||
FMT(vowel/e_mid2) | FMT(vowel/e_mid2) | ||||
endphoneme | endphoneme | ||||
// "læsse" vs. "læse" | // "læsse" vs. "læse" | ||||
phoneme ?E | phoneme ?E | ||||
vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
length 90 | |||||
// PB "færre" [f'?EV] - a bit longer because og the missing [ɐ] [ˈfæɐ̯ʌ] | |||||
// Changed now [f'?E3-V] but it won't do any harm | |||||
IF nextPhW(V) THEN | |||||
length 120 | |||||
ENDIF | |||||
ipa ε | |||||
length 100 | |||||
FMT(vowel/e_mid2) | FMT(vowel/e_mid2) | ||||
endphoneme | endphoneme | ||||
// ThisPh + gooup #e or group #@ | // ThisPh + gooup #e or group #@ | ||||
// "ae", "aer" vowel + vowel: extra length | // "ae", "aer" vowel + vowel: extra length | ||||
IF nextPhW(#@) OR nextPhW(#e) THEN | IF nextPhW(#@) OR nextPhW(#e) THEN | ||||
length 240 | |||||
length 220 | |||||
ENDIF | ENDIF | ||||
// This vowel is word end - longer because it sounds too short | // This vowel is word end - longer because it sounds too short | ||||
// "ja", "Omaha" | // "ja", "Omaha" | ||||
// "bange" [bAN@-] - [N] = 2 consonants (ng) => short | // "bange" [bAN@-] - [N] = 2 consonants (ng) => short | ||||
IF nextPhW(N) THEN | IF nextPhW(N) THEN | ||||
length 90 | length 90 | ||||
ENDIF | |||||
// "fare" [f'A:A] | |||||
IF nextPhW(A) THEN | |||||
length 150 | |||||
ENDIF | ENDIF | ||||
FMT(vowel/a_8) | FMT(vowel/a_8) | ||||
endphoneme | endphoneme | ||||
phoneme u | phoneme u | ||||
vowel starttype #u endtype #u | vowel starttype #u endtype #u | ||||
length 90 //150 | length 90 //150 | ||||
// Short vowel followed by consonant and NOT consonant + 3 or V or @ | |||||
// "blus" vs. "bluse" and "bluser" | |||||
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||||
// glstop | |||||
// length 90 | |||||
ENDIF | |||||
// "suge", "uge", bluse | |||||
// "suge", "uge", "bluse", "julegave" | |||||
IF nextPhW(#e) OR nextPhW(#@) OR next2PhW(#e) OR next2PhW(#@)THEN | IF nextPhW(#e) OR nextPhW(#@) OR next2PhW(#e) OR next2PhW(#@)THEN | ||||
length 150 | length 150 | ||||
ENDIF | ENDIF | ||||
// extra length followed by 3 or V or @ | |||||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN | |||||
// length 240 | |||||
ENDIF | |||||
// "umulig" | |||||
// "umulig" [u:m'uli] | |||||
IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN | IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN | ||||
length 180 | length 180 | ||||
ENDIF | ENDIF | ||||
// Only "u" | // Only "u" | ||||
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN | IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN | ||||
length 150 | length 150 | ||||
ENDIF | |||||
// "fugl" [ful] - a bit longer | |||||
IF nextPhW(isWordEnd) THEN | |||||
length 120 | |||||
ENDIF | ENDIF | ||||
FMT(vowel/u_bck) | FMT(vowel/u_bck) | ||||
endphoneme | endphoneme | ||||
phoneme o | phoneme o | ||||
vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
length 150 | |||||
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN | |||||
glstop | |||||
length 90 | |||||
ENDIF | |||||
// "tro" | |||||
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN | |||||
length 90 | |||||
ENDIF | |||||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN | |||||
length 90 //150 | |||||
// "bore", "borer" | |||||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@-) THEN | |||||
length 150 | length 150 | ||||
ENDIF | ENDIF | ||||
// "modig" - long vowel after consonant + [i] | // "modig" - long vowel after consonant + [i] | ||||
IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(i) THEN | |||||
IF nextPhW(D) AND next2PhW(i) THEN | |||||
length 150 | length 150 | ||||
ENDIF | ENDIF | ||||
FMT(vowel/o_2) | FMT(vowel/o_2) | ||||
phoneme O | phoneme O | ||||
vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
length 90 // 150 | length 90 // 150 | ||||
// PB "sove", "sover" - consonant + #e or #@: long | |||||
// "sove", "sover" - consonant + #e or #@: long | |||||
IF next2PhW(#@) OR next2PhW(#e) THEN | IF next2PhW(#@) OR next2PhW(#e) THEN | ||||
length 150 | length 150 | ||||
ENDIF | ENDIF | ||||
FMT(vowel/o_5) | FMT(vowel/o_5) | ||||
endphoneme | endphoneme | ||||
// PB Experimental glottal O | |||||
// Short O | |||||
// "toget" vs. "tåget" | // "toget" vs. "tåget" | ||||
phoneme ?O | phoneme ?O | ||||
vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
IF nextPhW(isNotVowel) AND next2Ph(V) THEN | IF nextPhW(isNotVowel) AND next2Ph(V) THEN | ||||
length 90 | length 90 | ||||
ENDIF | ENDIF | ||||
// PB "snorke", "snorker", årlig | |||||
// "snorke", "snorker", årlig | |||||
IF next2PhW(3) OR next2PhW(V) OR next2PhW(@) OR next2PhW(i) THEN | IF next2PhW(3) OR next2PhW(V) OR next2PhW(@) OR next2PhW(i) THEN | ||||
length 180 | length 180 | ||||
ENDIF | ENDIF | ||||
// "sove" [sVw3] - longer followed by w + 3 | // "sove" [sVw3] - longer followed by w + 3 | ||||
IF nextPhW(w) AND next2PhW(3) THEN | IF nextPhW(w) AND next2PhW(3) THEN | ||||
length 220 | length 220 | ||||
ENDIF | |||||
// PB "konge" | |||||
IF nextPhW(N) THEN | |||||
length 95 | |||||
ENDIF | ENDIF | ||||
FMT(vowel/V_4) | FMT(vowel/V_4) | ||||
endphoneme | endphoneme | ||||
// "forstår" vs. "kåre" | // "forstår" vs. "kåre" | ||||
phoneme ?V | phoneme ?V | ||||
vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
length 100 | |||||
length 90 | |||||
FMT(vowel/V_4) | FMT(vowel/V_4) | ||||
endphoneme | endphoneme | ||||
FMT(vowel/oo_2) | FMT(vowel/oo_2) | ||||
endphoneme | endphoneme | ||||
// ?B short 0 "sukker" | |||||
// Short 0 "sukker" | |||||
phoneme ?0 | phoneme ?0 | ||||
vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
length 90 | length 90 | ||||
phoneme W | phoneme W | ||||
vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
length 99 //160 | |||||
// "kløe" vowel + vowel: extra length | |||||
length 90 //160 | |||||
// "kløe" vowel + vowel: extra length | |||||
IF nextPhW(#@) OR nextPhW(#e) THEN | IF nextPhW(#@) OR nextPhW(#e) THEN | ||||
length 220 | length 220 | ||||
ENDIF | ENDIF | ||||
IF next2PhW(#@) OR next2PhW(#e) THEN | IF next2PhW(#@) OR next2PhW(#e) THEN | ||||
length 160 | length 160 | ||||
ENDIF | ENDIF | ||||
// "røveri" TEST | |||||
IF next2PhW(V) OR next2PhW(?V) THEN | |||||
// "røveri" but NOT "surfer" [sWf?V] TEST | |||||
IF next2PhW(V) OR next2PhW(?V) AND NOT next2PhW(isFinalVowel) THEN | |||||
length 90 | length 90 | ||||
ENDIF | ENDIF | ||||
// PB "nødig", "nødigt", "kølige" | // PB "nødig", "nødigt", "kølige" | ||||
FMT(vowel/oe) | FMT(vowel/oe) | ||||
endphoneme | endphoneme | ||||
// PB short W | |||||
// Short W | |||||
// "prøv" vs. "prøve" | // "prøv" vs. "prøve" | ||||
phoneme ?W | phoneme ?W | ||||
vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
FMT(vowel/oe) | FMT(vowel/oe) | ||||
endphoneme | endphoneme | ||||
// PB added for the ø in "røv", "røg", "øje" instead of [V3] | |||||
// Added for the ø in "røv", "røg", "øje" instead of [V3] | |||||
phoneme W# | phoneme W# | ||||
vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
length 90 //150 | length 90 //150 | ||||
FMT(vowel/V) | FMT(vowel/V) | ||||
endphoneme | endphoneme | ||||
// PB short W# | |||||
// Short W# | |||||
// "rømme" | // "rømme" | ||||
phoneme ?W# | phoneme ?W# | ||||
vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
length 90 | length 90 | ||||
FMT(vowel/V) | |||||
FMT(vowel/V) | |||||
endphoneme | endphoneme | ||||
phoneme aI | phoneme aI | ||||
PrevVowelEndings | PrevVowelEndings | ||||
VowelEnding(l/l_@) | VowelEnding(l/l_@) | ||||
VowelEnding(l/l_a) | |||||
VowelEnding(l/l_a,-70) // kvalt, kapital | |||||
VowelEnding(l/l_e, -40) | VowelEnding(l/l_e, -40) | ||||
VowelEnding(l/l_i, -70) | VowelEnding(l/l_i, -70) | ||||
VowelEnding(l/l_o) | |||||
VowelEnding(l/l_o,-70) // stole, skole, pistol | |||||
VowelEnding(l/l_u, -70) | VowelEnding(l/l_u, -70) | ||||
EndSwitch | EndSwitch | ||||
VowelStart(j/ja) | VowelStart(j/ja) | ||||
VowelStart(j/je,-35) | VowelStart(j/je,-35) | ||||
VowelStart(j/ji) | VowelStart(j/ji) | ||||
VowelStart(j/jo) | |||||
VowelStart(j/jo,-65) // "kjole" | |||||
VowelStart(j/ju) | VowelStart(j/ju) | ||||
EndSwitch | EndSwitch | ||||
Vowelout len=70 | Vowelout len=70 |
IF nextPh(isVowel) THEN | IF nextPh(isVowel) THEN | ||||
ChangePhoneme(I2) | ChangePhoneme(I2) | ||||
ENDIF | ENDIF | ||||
IF nextPh(isVowel) THEN | |||||
FMT(vowel/ii_4) | |||||
ENDIF | |||||
FMT(vowel/@) | FMT(vowel/@) | ||||
endphoneme | endphoneme | ||||
ChangePhoneme(NULL) | ChangePhoneme(NULL) | ||||
ENDIF | ENDIF | ||||
IF nextVowel(isFlag1) THEN | |||||
ELSE | |||||
IF NOT nextVowel(isFlag1) THEN | |||||
IF thisPh(isSeqFlag1) THEN | IF thisPh(isSeqFlag1) THEN | ||||
// delete the last inherent vowel of a sequence | // delete the last inherent vowel of a sequence | ||||
ChangePhoneme(NULL) | ChangePhoneme(NULL) | ||||
ELSE | ELSE | ||||
IF thisPh(isFirstVowel) THEN | |||||
ELSE | |||||
IF NOT thisPh(isFirstVowel) THEN | |||||
// delete if not the first vowel, and is an isolated 'a' | // delete if not the first vowel, and is an isolated 'a' | ||||
ChangePhoneme(NULL) | ChangePhoneme(NULL) | ||||
ENDIF | ENDIF |
#define NO_VARIADIC_MACROS | #define NO_VARIADIC_MACROS | ||||
#define INCLUDE_KLATT | #define INCLUDE_KLATT | ||||
#define INCLUDE_MBROLA | #define INCLUDE_MBROLA | ||||
#define INCLUDE_SONIC | |||||
// will look for espeak_data directory here, and also in user's home directory | // will look for espeak_data directory here, and also in user's home directory | ||||
#define PATH_ESPEAK_DATA "/usr/share/espeak-data" | #define PATH_ESPEAK_DATA "/usr/share/espeak-data" |
#define LIBRARY | #define LIBRARY | ||||
#define INCLUDE_KLATT | #define INCLUDE_KLATT | ||||
#define INCLUDE_MBROLA | #define INCLUDE_MBROLA | ||||
#define INCLUDE_SONIC | |||||
// will look for espeak_data directory here, and also in user's home directory | // will look for espeak_data directory here, and also in user's home directory | ||||
#define PATH_ESPEAK_DATA "/usr/share/espeak-data" | #define PATH_ESPEAK_DATA "/usr/share/espeak-data" |
//#define USE_NANOSLEEP | //#define USE_NANOSLEEP | ||||
#define INCLUDE_KLATT | #define INCLUDE_KLATT | ||||
#define INCLUDE_MBROLA | #define INCLUDE_MBROLA | ||||
#define INCLUDE_SONIC | |||||
// will look for espeak_data directory here, and also in user's home directory | // will look for espeak_data directory here, and also in user's home directory | ||||
#define PATH_ESPEAK_DATA "/usr/share/espeak-data" | #define PATH_ESPEAK_DATA "/usr/share/espeak-data" |
REF_HASH_TAB **list; | REF_HASH_TAB **list; | ||||
const char *data_path; | const char *data_path; | ||||
int prev_table; | int prev_table; | ||||
int procedure_num; | |||||
int prev_mnemonic; | int prev_mnemonic; | ||||
if(f_report == NULL) | if(f_report == NULL) | ||||
j++; | j++; | ||||
} | } | ||||
fprintf(f_report," [%s] %s",WordToString(prev_mnemonic = list[ix]->ph_mnemonic), phoneme_tab_list2[prev_table = list[ix]->ph_table].name); | |||||
prev_mnemonic = list[ix]->ph_mnemonic; | |||||
if((prev_mnemonic >> 24) == 'P') | |||||
{ | |||||
// a procedure, not a phoneme | |||||
procedure_num = atoi(WordToString(prev_mnemonic)); | |||||
fprintf(f_report," %s %s", phoneme_tab_list2[prev_table = list[ix]->ph_table].name, proc_names[procedure_num]); | |||||
} | |||||
else | |||||
{ | |||||
fprintf(f_report," [%s] %s",WordToString(prev_mnemonic), phoneme_tab_list2[prev_table = list[ix]->ph_table].name); | |||||
} | |||||
fputc('\n',f_report); | fputc('\n',f_report); | ||||
} | } | ||||
} | } | ||||
sprintf(command,"sox \"%s%s.wav\" -r %d -c1 -t wav %s\n",path_source,fname2,samplerate_native, fname_temp); | sprintf(command,"sox \"%s%s.wav\" -r %d -c1 -t wav %s\n",path_source,fname2,samplerate_native, fname_temp); | ||||
if(system(command) < 0) | |||||
if(system(command) != 0) | |||||
{ | { | ||||
failed = 1; | failed = 1; | ||||
} | } | ||||
} | } | ||||
strcpy(proc_names[n_procs], item_string); | strcpy(proc_names[n_procs], item_string); | ||||
phoneme_out = &phoneme_out2; | phoneme_out = &phoneme_out2; | ||||
sprintf(number_buf,"%.3dP", n_procs); | |||||
phoneme_out->mnemonic = StringToWord(number_buf); | |||||
} | } | ||||
phoneme_out->code = phcode; | phoneme_out->code = phcode; | ||||
make_envs(); | make_envs(); | ||||
#endif | #endif | ||||
wxLogStatus(_T("Compiling phoneme data: ")+wxString(path_source,wxConvLocal)); | |||||
n_envelopes = 0; | n_envelopes = 0; | ||||
error_count = 0; | error_count = 0; | ||||
resample_count = 0; | resample_count = 0; | ||||
memset(markers_used,0,sizeof(markers_used)); | |||||
memset(markers_used,0,sizeof(markers_used)); | |||||
f_errors = stderr; | f_errors = stderr; | ||||
if(error_count > 0) | if(error_count > 0) | ||||
{ | { | ||||
report += _T(" See file: 'phsource/error_log'."); | |||||
report += _T(" See file: '")+wxString(path_source,wxConvLocal)+_T("phsource/error_log'."); | |||||
wxLogError(report); | wxLogError(report); | ||||
} | } | ||||
wxLogStatus(report + report_dict); | wxLogStatus(report + report_dict); | ||||
void CompileSampleRate() | void CompileSampleRate() | ||||
{ | { | ||||
long value; | long value; | ||||
value = wxGetNumberFromUser(_T("Compile phoneme data with a specified sample rate"), _T("Sample rate"), _T("Resample (needs sox)"), 22050, 5000, 48000); | |||||
#ifndef PLATFORM_POSIX | |||||
wxLogError(_T("Change Sample Rate needs the 'sox' program. It probably doesn't work on Windows")); | |||||
#endif | |||||
value = wxGetNumberFromUser(_T("Compile phoneme data with a specified sample rate"), _T("Sample rate"), _T("Resample (needs 'sox' program)"), 22050, 5000, 48000); | |||||
if(value > 1000) | if(value > 1000) | ||||
{ | { |
continue; | continue; | ||||
} | } | ||||
if((dictionary_flags2 & FLAG_ATEND) && (word_end < tr->clause_end)) | |||||
if((dictionary_flags2 & FLAG_ATEND) && (word_end < translator->clause_end)) | |||||
{ | { | ||||
// only use this pronunciation if it's the last word of the clause | // only use this pronunciation if it's the last word of the clause | ||||
continue; | continue; | ||||
continue; | continue; | ||||
} | } | ||||
if((dictionary_flags2 & FLAG_SENTENCE) && !(tr->clause_terminator & CLAUSE_BIT_SENTENCE)) | |||||
if((dictionary_flags2 & FLAG_SENTENCE) && !(translator->clause_terminator & CLAUSE_BIT_SENTENCE)) | |||||
{ | { | ||||
// only uis this clause is a sentence , i.e. terminator is {. ? !} not {, : :} | // only uis this clause is a sentence , i.e. terminator is {. ? !} not {, : :} | ||||
continue; | continue; |
data_menu = new wxMenu; | data_menu = new wxMenu; | ||||
data_menu->Append(MENU_COMPILE_DICT, _("Compile &dictionary")); | data_menu->Append(MENU_COMPILE_DICT, _("Compile &dictionary")); | ||||
data_menu->Append(MENU_COMPILE_DICT_DEBUG, _("Compile dictionary (debu&g)")); | data_menu->Append(MENU_COMPILE_DICT_DEBUG, _("Compile dictionary (debu&g)")); | ||||
data_menu->Append(MENU_COMPILE_PH, _("Compile &phoneme data")); | |||||
data_menu->Append(MENU_COMPILE_PH2, _("Change sample &rate")); | |||||
data_menu->Append(MENU_COMPILE_PH, _("Compile &phoneme data 22050Hz")); | |||||
data_menu->Append(MENU_COMPILE_PH2, _("Compile at sample &rate")); | |||||
data_menu->AppendSeparator(); | data_menu->AppendSeparator(); | ||||
data_menu->Append(MENU_COMPILE_MBROLA, _("Compile &mbrola phonemes list...")); | data_menu->Append(MENU_COMPILE_MBROLA, _("Compile &mbrola phonemes list...")); | ||||
data_menu->Append(MENU_COMPILE_INTONATION, _("Compile &intonation data")); | data_menu->Append(MENU_COMPILE_INTONATION, _("Compile &intonation data")); |
int regression; | int regression; | ||||
int end_sourceix; | int end_sourceix; | ||||
int alternative; | int alternative; | ||||
int delete_count; | |||||
int word_start; | |||||
PHONEME_DATA phdata; | PHONEME_DATA phdata; | ||||
int n_ph_list3; | int n_ph_list3; | ||||
} | } | ||||
// look for switch of phoneme tables | // look for switch of phoneme tables | ||||
delete_count = 0; | |||||
current_phoneme_tab = tr->phoneme_tab_ix; | current_phoneme_tab = tr->phoneme_tab_ix; | ||||
for(j = 0; j < n_ph_list2; j++) | for(j = 0; j < n_ph_list2; j++) | ||||
{ | { | ||||
if(plist2[j].phcode == phonSWITCH) | |||||
{ | |||||
current_phoneme_tab = plist2[j].tone_ph; | |||||
} | |||||
if(current_phoneme_tab != tr->phoneme_tab_ix) | if(current_phoneme_tab != tr->phoneme_tab_ix) | ||||
{ | { | ||||
plist2[j].synthflags |= SFLAG_SWITCHED_LANG; | plist2[j].synthflags |= SFLAG_SWITCHED_LANG; | ||||
} | } | ||||
if(delete_count > 0) | |||||
{ | |||||
memcpy(&plist2[j-delete_count], &plist2[j], sizeof(plist2[0])); | |||||
} | |||||
if(plist2[j].phcode == phonSWITCH) | |||||
{ | |||||
if((!(plist2[j].synthflags & SFLAG_EMBEDDED)) && ( | |||||
(plist2[j].tone_ph == current_phoneme_tab) || | |||||
(plist2[j+1].phcode == phonSWITCH) || | |||||
((plist2[j+1].phcode == phonPAUSE) && (plist2[j+2].phcode == phonSWITCH)) | |||||
)) | |||||
{ | |||||
// delete this phonSWITCH if it's switching to the current phoneme table, or | |||||
// delete this phonSWITCH if its followed by another phonSWITCH | |||||
delete_count++; | |||||
} | |||||
else | |||||
{ | |||||
current_phoneme_tab = plist2[j].tone_ph; | |||||
} | |||||
} | |||||
} | } | ||||
n_ph_list2 -= delete_count; | |||||
if((regression = tr->langopts.param[LOPT_REGRESSIVE_VOICING]) != 0) | if((regression = tr->langopts.param[LOPT_REGRESSIVE_VOICING]) != 0) | ||||
{ | { | ||||
// transfer all the phonemes of the clause into phoneme_list | // transfer all the phonemes of the clause into phoneme_list | ||||
ph = phoneme_tab[phonPAUSE]; | ph = phoneme_tab[phonPAUSE]; | ||||
ph_list3[0].ph = ph; | ph_list3[0].ph = ph; | ||||
word_start = 1; | |||||
for(j=0; insert_ph || ((j < n_ph_list3) && (ix < N_PHONEME_LIST-3)); j++) | for(j=0; insert_ph || ((j < n_ph_list3) && (ix < N_PHONEME_LIST-3)); j++) | ||||
{ | { | ||||
plist3 = &ph_list3[j]; | plist3 = &ph_list3[j]; | ||||
if(plist3->sourceix != 0) | |||||
word_start = j; | |||||
if(insert_ph != 0) | if(insert_ph != 0) | ||||
{ | { | ||||
// we have a (linking) phoneme which we need to insert here | // we have a (linking) phoneme which we need to insert here | ||||
next = phoneme_tab[plist3->phcode]; // this phoneme, i.e. after the insert | next = phoneme_tab[plist3->phcode]; // this phoneme, i.e. after the insert | ||||
// re-use the previous entry for the inserted phoneme. | // re-use the previous entry for the inserted phoneme. | ||||
// That's OK because we don't look backwards from plist3 *** but CountVowelPosiion() and isAfterStress does !!! | |||||
// That's OK because we don't look backwards from plist3 *** but CountVowelPosition() and isAfterStress does !!! | |||||
j--; | j--; | ||||
plist3 = plist3_inserted = &ph_list3[j]; | plist3 = plist3_inserted = &ph_list3[j]; | ||||
if(j > 0) | if(j > 0) | ||||
{ | { | ||||
memcpy(&plist3[-1], &plist3[0], sizeof(*plist3)); | |||||
// move all previous phonemes in the word back one place | |||||
int k; | |||||
if(word_start > 0) | |||||
{ | |||||
k = word_start; | |||||
word_start--; | |||||
} | |||||
else | |||||
{ | |||||
k = 2; // No more space, don't loose the start of word mark at ph_list2[word_start] | |||||
} | |||||
for(; k<=j; k++) | |||||
memcpy(&ph_list3[k-1], &ph_list3[k], sizeof(*plist3)); | |||||
} | } | ||||
memset(&plist3[0], 0, sizeof(*plist3)); | memset(&plist3[0], 0, sizeof(*plist3)); | ||||
plist3->phcode = insert_ph; | plist3->phcode = insert_ph; | ||||
if(plist3->phcode == phonSWITCH) | if(plist3->phcode == phonSWITCH) | ||||
{ | { | ||||
if(!(plist3->synthflags & SFLAG_EMBEDDED)) // ?? phonSWITCH can't have SFLAG_EMBEDDED ?? | |||||
{ | |||||
if((plist3[1].phcode == phonSWITCH) || ((plist3[1].type == phPAUSE) && (plist3[2].phcode == phonSWITCH))) | |||||
continue; // next phoneme is also a phonSWITCH, so ignore | |||||
} | |||||
// change phoneme table | // change phoneme table | ||||
SelectPhonemeTable(plist3->tone_ph); | SelectPhonemeTable(plist3->tone_ph); | ||||
} | } |
#include "translate.h" | #include "translate.h" | ||||
#include "wave.h" | #include "wave.h" | ||||
const char *version_string = "1.46.48 13.Mar.13"; | |||||
const char *version_string = "1.46.53 16.Mar.13"; | |||||
const int version_phdata = 0x014640; | const int version_phdata = 0x014640; | ||||
int option_device_number = -1; | int option_device_number = -1; |
int ix; | int ix; | ||||
static char buf[5]; | static char buf[5]; | ||||
for(ix=0; ix<3; ix++) | |||||
for(ix=0; ix<4; ix++) | |||||
buf[ix] = word >> (ix*8); | buf[ix] = word >> (ix*8); | ||||
buf[4] = 0; | buf[4] = 0; | ||||
return(buf); | return(buf); |
static const short stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210}; | static const short stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210}; | ||||
static const short stress_lengths_ta[8] = {200, 200, 210, 210, 0, 0, 230, 230}; | static const short stress_lengths_ta[8] = {200, 200, 210, 210, 0, 0, 230, 230}; | ||||
static const short stress_lengths_ta2[8] = {230, 230, 240, 240, 0, 0, 260, 260}; | |||||
static const unsigned char stress_amps_ta[8] = {18,18, 18,18, 20,20, 22,22 }; | static const unsigned char stress_amps_ta[8] = {18,18, 18,18, 20,20, 22,22 }; | ||||
// convert name string into a word of up to 4 characters, for the switch() | // convert name string into a word of up to 4 characters, for the switch() | ||||
if(name2 == L('a','n')) | if(name2 == L('a','n')) | ||||
{ | { | ||||
tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2; | tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2; | ||||
tr->langopts.numbers2 = 0; | |||||
} | } | ||||
else | else | ||||
if(name2 == L_pap) | if(name2 == L_pap) | ||||
case L('m','r'): // Marathi | case L('m','r'): // Marathi | ||||
case L('t','e'): // Telugu | case L('t','e'): // Telugu | ||||
{ | { | ||||
SetupTranslator(tr,stress_lengths_ta,stress_amps_ta); | |||||
SetupTranslator(tr,stress_lengths_ta2, stress_amps_ta); | |||||
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | ||||
tr->langopts.stress_rule = STRESSPOSN_1L; | tr->langopts.stress_rule = STRESSPOSN_1L; | ||||
if(name2 == L('t','a')) | if(name2 == L('t','a')) | ||||
{ | { | ||||
SetupTranslator(tr,stress_lengths_ta, NULL); | |||||
tr->letter_bits_offset = OFFSET_TAMIL; | tr->letter_bits_offset = OFFSET_TAMIL; | ||||
tr->langopts.numbers = NUM_OMIT_1_THOUSAND ; | tr->langopts.numbers = NUM_OMIT_1_THOUSAND ; | ||||
tr->langopts.param[LOPT_WORD_MERGE] = 1; // don't break vowels betwen words | |||||
} | } | ||||
else | |||||
if(name2 == L('m','r')) | if(name2 == L('m','r')) | ||||
{ | { | ||||
tr->letter_bits_offset = OFFSET_DEVANAGARI; | tr->letter_bits_offset = OFFSET_DEVANAGARI; | ||||
tr->letter_bits_offset = OFFSET_TELUGU; | tr->letter_bits_offset = OFFSET_TELUGU; | ||||
tr->langopts.numbers = 0x1; | tr->langopts.numbers = 0x1; | ||||
} | } | ||||
tr->langopts.param[LOPT_WORD_MERGE] = 1; // don't break vowels betwen words | |||||
SetIndicLetters(tr); // call this after setting OFFSET_ | SetIndicLetters(tr); // call this after setting OFFSET_ | ||||
SetLetterBitsRange(tr,LETTERGP_B,0x4e,0x4e); // chillu-virama (unofficial) | |||||
SetLetterBitsRange(tr,LETTERGP_B,0x4e,0x4e); // chillu-virama (unofficial) | |||||
} | } | ||||
break; | break; | ||||
char prefix_chars[0x3f + 2]; | char prefix_chars[0x3f + 2]; | ||||
int found=0; | int found=0; | ||||
int end_flags; | int end_flags; | ||||
char c_temp; // save a character byte while we temporarily replace it with space | |||||
int c_temp; // save a character byte while we temporarily replace it with space | |||||
int first_char; | int first_char; | ||||
int last_char = 0; | int last_char = 0; | ||||
int add_plural_suffix = 0; | int add_plural_suffix = 0; | ||||
if((word_length == 1) && (wflags & FLAG_TRANSLATOR2)) | if((word_length == 1) && (wflags & FLAG_TRANSLATOR2)) | ||||
{ | { | ||||
// retranslating a 1-character word using a different language, say its name | // retranslating a 1-character word using a different language, say its name | ||||
spell_word = 1; | |||||
utf8_in(&c_temp, wordx+1); // the next character | |||||
if(!IsAlpha(c_temp) || (AlphabetFromChar(last_char) != AlphabetFromChar(c_temp))) | |||||
spell_word = 1; | |||||
} | } | ||||
if(option_sayas == SAYAS_KEY) | if(option_sayas == SAYAS_KEY) | ||||
{ | { | ||||
if(word_length > 1) | if(word_length > 1) | ||||
return(FLAG_SPELLWORD); // a mixture of languages, retranslate as individual letters, separated by spaces | return(FLAG_SPELLWORD); // a mixture of languages, retranslate as individual letters, separated by spaces | ||||
if(phonemes[0] == phonSWITCH) | |||||
{ | |||||
// problem with espeak -vbg "b.c.d.e.f" | |||||
} | |||||
return(0); | return(0); | ||||
} | } | ||||
strcpy(word_phonemes, phonemes); | strcpy(word_phonemes, phonemes); | ||||
return(dictionary_flags[0] & FLAG_SKIPWORDS); // ?? | |||||
if(wflags & FLAG_TRANSLATOR2) | |||||
return(0); | |||||
return(dictionary_flags[0] & FLAG_SKIPWORDS); // for "b.c.d" | |||||
} | } | ||||
else if(found == 0) | else if(found == 0) | ||||
{ | { | ||||
if(ok) | if(ok) | ||||
{ | { | ||||
*p2 = '-'; // replace next space by hyphen | *p2 = '-'; // replace next space by hyphen | ||||
wtab[0].flags &= ~FLAG_ALL_UPPER; // prevent it being considered an abbreviation | |||||
flags = TranslateWord(translator, word, next_pause, wtab, NULL); // translate the combined word | flags = TranslateWord(translator, word, next_pause, wtab, NULL); // translate the combined word | ||||
if((sylimit > 0) && (CountSyllables(p) > (sylimit & 0x1f))) | if((sylimit > 0) && (CountSyllables(p) > (sylimit & 0x1f))) | ||||
{ | { |
static const char *voices_asia = | static const char *voices_asia = | ||||
"fa fa-pin hi hy hy-west id ka kn ku ml ne pa ta tr vi vi-hue zh zh-yue "; | "fa fa-pin hi hy hy-west id ka kn ku ml ne pa ta tr vi vi-hue zh zh-yue "; | ||||
static const char *voices_europe = | static const char *voices_europe = | ||||
"bg bs ca cs cy da el es et fi fr-be hr hu is it lt lv mk nl no pl pt-pt ro ru sk sq sr sv "; | |||||
"an bg bs ca cs cy da el es et fi fr-be hr hu is it lt lv mk nl no pl pt-pt ro ru sk sq sr sv "; | |||||
strncpy0(voicename, vname, sizeof(voicename)); | strncpy0(voicename, vname, sizeof(voicename)); |