Keep the original voice variant across SSML xml:lang changes. Use the original language sub-type (eg. en-sc) when SSML xml:lang changes to a compatible language. SSML <emphasis>, increase volume for "strong" and "x-strong". Fix bug where </emphasis> was ignored at end of clause. Fix: $dot attribute was ignored for multi-word entries in *_list files. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@269 d46cf337-b52f-0410-862d-fd96e6ae7743master
@@ -290,11 +290,9 @@ skinheads _^_EN | |||
street _^_EN | |||
boy _^_EN | |||
square _^_EN | |||
appeal _^_EN | |||
apple _^_EN | |||
beachbuggy _^_EN | |||
beachvolley _^_EN | |||
browser _^_EN | |||
chart _^_EN | |||
coach _^_EN | |||
coke _^_EN | |||
@@ -307,7 +305,6 @@ event _^_EN | |||
firewall _^_EN | |||
freak _^_EN | |||
friendly _^_EN | |||
groupie _^_EN | |||
homepage _^_EN | |||
hooligan _^_EN | |||
interface _^_EN | |||
@@ -371,7 +368,6 @@ bbc _^_EN $alt | |||
boston _^_EN $alt | |||
bronx _^_EN $alt | |||
boyle _^_EN $alt | |||
clarence _^_EN $alt | |||
cyrus _^_EN | |||
cia _^_EN $alt | |||
fox _^_EN | |||
@@ -383,7 +379,7 @@ montreal _^_EN $alt | |||
oregon _^_EN $alt | |||
piccadilly _^_EN | |||
reynolds _^_EN $alt | |||
purvis _^_EN | |||
//purvis _^_EN | |||
white _^_EN $alt | |||
// PB French words | |||
@@ -1496,6 +1492,7 @@ rentrice $alt | |||
renæssance $alt | |||
ressource $alt | |||
restance $alt | |||
revanche $alt | |||
romance $alt | |||
seance $alt | |||
service $alt | |||
@@ -2001,6 +1998,7 @@ spartan $alt | |||
srilankan $alt | |||
sudan $alt | |||
taiwan $alt | |||
texan $alt | |||
tibetan $alt | |||
tongan $alt | |||
trojan $alt | |||
@@ -2161,7 +2159,7 @@ etik $alt | |||
eugenik $alt | |||
excentrik $alt | |||
fabrik $alt | |||
falkeblik $alt | |||
//falkeblik $alt | |||
folkloristik $alt | |||
fonetik $alt | |||
fysik $alt | |||
@@ -2183,6 +2181,7 @@ heuristik $alt | |||
homiletik $alt | |||
hydraulik $alt | |||
informatik $alt | |||
journalistik $alt | |||
kamik $alt | |||
karakteristik $alt | |||
kasuistik $alt | |||
@@ -2794,6 +2793,7 @@ homofoni $alt | |||
ironi $alt | |||
kakofoni $alt | |||
kapellani $alt | |||
katatoni $alt | |||
kleptomani $alt | |||
koloni $alt | |||
kompagni $alt | |||
@@ -2801,7 +2801,6 @@ kosmogoni $alt | |||
kvadrofoni $alt | |||
litani $alt | |||
ludomani $alt | |||
makaroni m&k@r'Vni $alt | |||
mani $alt | |||
misogyni $alt | |||
monomani $alt | |||
@@ -6561,16 +6560,16 @@ kontingenter $alt | |||
kontinuer $alt | |||
kontraher $alt | |||
kontrasigner $alt | |||
kontraster $alt | |||
kontrastere $alt | |||
kontribuer $alt | |||
kontroller $alt | |||
kontrollere $alt | |||
konturere $alt | |||
konvener $alt | |||
konverger $alt | |||
konverser $alt | |||
konverter $alt | |||
konvojere $alt | |||
konvoluter $alt | |||
konvolutere $alt | |||
kooperer $alt | |||
koordiner $alt | |||
kopiere $alt | |||
@@ -6628,7 +6627,7 @@ lakser $alt | |||
lamenter $alt | |||
laminer $alt | |||
lancer $alt | |||
lasere $alt | |||
//lasere $alt | |||
latiniser $alt | |||
lavpasteuriser $alt | |||
legaliser $alt | |||
@@ -6825,6 +6824,7 @@ patentere $alt | |||
patiner $alt | |||
patroniser $alt | |||
patruljere $alt | |||
afpatruljer $alt | |||
pausere $alt | |||
pelleter $alt | |||
pendulere $alt | |||
@@ -7175,7 +7175,7 @@ stoltser $alt | |||
strabadsere $alt | |||
stranguler $alt | |||
stratificer $alt | |||
strukturer $alt | |||
strukturere $alt | |||
omstrukturer $alt | |||
studere $alt | |||
indstudere $alt | |||
@@ -7218,7 +7218,7 @@ taktere $alt | |||
taktreguler $alt | |||
taljere $alt | |||
tamburer $alt | |||
tamponer $alt | |||
tamponere $alt | |||
tangere $alt | |||
tapetser $alt | |||
tarer $alt | |||
@@ -9623,6 +9623,7 @@ interferon $alt | |||
futon $alt | |||
føljeton fWljet'Vn $alt | |||
facon $alt | |||
kamæleon $alt | |||
lazaron $alt | |||
makron $alt | |||
melon $alt | |||
@@ -10232,6 +10233,7 @@ palæontolog $alt | |||
patolog $alt | |||
politolog $alt | |||
prolog $alt | |||
proktolog $alt | |||
psykolog $alt | |||
radiolog $alt | |||
runolog $alt | |||
@@ -10399,6 +10401,7 @@ zoologi $alt | |||
økologi $alt | |||
// final -ose - stressed o | |||
acidose $alt | |||
antibiose $alt | |||
apoteose $alt | |||
asbestose $alt | |||
@@ -10717,6 +10720,7 @@ processor $alt | |||
professor $alt | |||
provisor $alt | |||
revisor $alt | |||
sektor $alt | |||
sensor $alt | |||
sponsor $alt | |||
successor $alt | |||
@@ -11209,6 +11213,7 @@ fx fVegsemp@l // PB "fx" is short for 'for eksempel' | |||
emp $abbrev | |||
hbo $abbrev // TV station | |||
usa $abbrev | |||
kfum $abbrev | |||
who $abbrev $allcaps // PB World Health Organization | |||
ussr $abbrev $allcaps // Sovjet Union | |||
vsop $abbrev | |||
@@ -11234,6 +11239,8 @@ bh $abbrev | |||
(bh'er) b,e:h'O:V | |||
(l'chaim) l&kr'ajm | |||
scsi skVsi // PB | |||
ike ajk // PB name | |||
ikes ajks // PB | |||
// Try to catch errors | |||
@@ -53,7 +53,7 @@ p r s S t T v w | |||
x z | |||
Dictionary da_dict 2011-05-05 | |||
Dictionary da_dict 2011-07-21 | |||
& &# 0 3 @ @- a A | |||
aI e E i o O u V | |||
@@ -62,11 +62,11 @@ W W# y Y | |||
* - : ? b B d D | |||
dZ f g h j J k l | |||
l/2 l/3 m n N p r R | |||
s S t T tS v w x | |||
z Z | |||
R3 s S t T tS v w | |||
x z Z | |||
Dictionary hu_dict 2011-06-25 | |||
Dictionary hu_dict 2011-08-08 | |||
a A a: E e: i i: o | |||
o: u u: Y y y: Y: | |||
@@ -101,7 +101,7 @@ p Q r R s s; t T | |||
ts v x z | |||
Dictionary en_dict 2011-06-21 | |||
Dictionary en_dict 2011-08-09 | |||
0 3 3: @ @- @2 @5 @L | |||
a a# A: A@ aa aI aI@ aU | |||
@@ -201,7 +201,7 @@ q r r. s S s. t T | |||
t. th th. v w x z | |||
Dictionary ta_dict 2011-06-25 | |||
Dictionary ta_dict 2011-08-09 | |||
a a: aI aU e E e: i | |||
I i: o o: u U u2 u: | |||
@@ -326,7 +326,7 @@ k l m n p R s S | |||
t tS v w x | |||
Dictionary nl_dict 2011-06-08 | |||
Dictionary nl_dict 2011-07-23 | |||
8 @ @- a A a: A~ e | |||
E e# E2 e: EI eU i I | |||
@@ -388,7 +388,7 @@ S s# s; t T tS ts v | |||
w x z Z | |||
Dictionary ro_dict 2011-03-10 | |||
Dictionary ro_dict 2011-07-21 | |||
@ @- @I @U a aI aU e | |||
ea eI eo eU i i/ I^ iI | |||
@@ -416,7 +416,7 @@ t; ts tS; v x z Z z; | |||
Z; | |||
Dictionary sk_dict 2010-03-12 | |||
Dictionary sk_dict 2011-08-08 | |||
& @- a a: e e: i i: | |||
l- l: o o: oU r- r: u | |||
@@ -425,8 +425,8 @@ u: | |||
* ; b d d; dZ dz f | |||
g h j k l l^ m n | |||
N n^ p r R R^ R^/ s | |||
S t t; tS ts v x z | |||
Z | |||
S t t; tS ts v w x | |||
z Z | |||
Dictionary sq_dict 2008-12-22 | |||
@@ -748,3 +748,28 @@ b d d. dZ f g h j | |||
k l l. m m# n N n# | |||
N# n. n.# n^ n^# p r s | |||
S t t. th tS v w z | |||
Dictionary et_dict 2011-07-01 | |||
& &: &i 8 8: 8u a A1 | |||
a: e E1 e: i I I1 i1 | |||
i: o O1 o: u U1 u: Y | |||
y Y: y: Yi yi | |||
: b d d^ dZ f g h | |||
j k l l^ m n N n^ | |||
p r R s S s2 s^ t | |||
t^ v w z Z | |||
Dictionary mt_dict 2011-07-29 | |||
@ a ai au e ei eu i | |||
I ie iu l- o u U ui | |||
y yi yY | |||
* : b c C d dZ f | |||
g h j k l m n p | |||
q r s S t tS v w | |||
x z Z |
@@ -46,7 +46,6 @@ u ju: | |||
v vi: | |||
w d'Vb@Lju: | |||
x Eks | |||
y waI | |||
z zEd | |||
?3 z zi: | |||
@@ -391,6 +390,7 @@ ufo $abbrev | |||
ui $abbrev | |||
uk $abbrev | |||
un $abbrev $allcaps | |||
unhcr $abbrev | |||
url $abbrev | |||
usa $abbrev | |||
usb $abbrev | |||
@@ -570,7 +570,6 @@ anniversary anIv'3:s@ri | |||
anon a#n0n | |||
anonymous $2 | |||
another a#nVD3 | |||
answer aans3 | |||
ante anti | |||
antecedent antIs'i:d@nt | |||
antibody $1 | |||
@@ -950,6 +949,7 @@ customer k'Vst@m3 | |||
cutaway kVt@weI | |||
cutoff kVt0f | |||
cutout kVtaUt | |||
cwm kUm | |||
cyan saI'an | |||
cymru kVmri | |||
@@ -957,6 +957,7 @@ dahlia deIli:@ | |||
dais deIIs | |||
damaged d'amI2dZd | |||
dandelion dandI2laI@n | |||
ddu DI // Welsh | |||
de d@ $only | |||
debacle deIb'A:k@L | |||
debrief di:br'i:f | |||
@@ -1565,6 +1566,7 @@ million mIli@n | |||
minibus mInIbVs | |||
mining maInIN // not mini | |||
minuet mInju:'Et | |||
minus maIn@s | |||
minute mInIt $onlys | |||
mirage mIrA:Z | |||
misery mIz@rI | |||
@@ -2049,7 +2051,6 @@ sceptre sEpt3 | |||
sclera skli@r | |||
scourge sk3:dZ | |||
scrotum skroUt@m | |||
scythe saID | |||
seabed si:bEd | |||
sealion si:laI@n | |||
seance seI0ns | |||
@@ -2087,6 +2088,7 @@ sex sEks // sexism | |||
several sEvr@L | |||
shallow SaloU | |||
shampoo $2 | |||
shepherd SEp@d | |||
sheriff S'ErI2f | |||
shew SoU | |||
shia Si:@ | |||
@@ -3002,6 +3004,7 @@ Carnegie kA@nEgi | |||
Cohen koU@n | |||
Cthulhu k@-Tu:l#u: | |||
Chrysler kraIzl3 | |||
Dante danteI | |||
Disney dIzni | |||
Dolce d0ltSeI | |||
Dvorak d@-vo@Zak |
@@ -52,6 +52,7 @@ | |||
sw) a (B 0 | |||
a (Be# eI | |||
w) a (Be# eI | |||
a (Cee+ a | |||
a (BeCo_ a | |||
a (BerA a | |||
a (BerC a | |||
@@ -164,6 +165,7 @@ | |||
@) awi (_ 'A:wI | |||
_) aw (k O: | |||
_) aw (ok a#w | |||
awr (_ aU@ | |||
C) a (x+ a | |||
_) a (x+ a | |||
ay eI | |||
@@ -777,6 +779,7 @@ | |||
tr) an (si an | |||
tr) ansis anz'Is | |||
tr) an (som an | |||
answ (er aans | |||
ante (nn ant'E | |||
_) anti (@P4 ,antI // prefix | |||
ant (iq ant | |||
@@ -868,6 +871,7 @@ | |||
&h) ar (d_ 3 | |||
&ch) ar (d 3 | |||
&k) ar (d_ 3 | |||
&p) ar (d_ 3 | |||
&st) ar (d_ 3 | |||
&w) ar (d_ 3 | |||
aw) ar (d O@ | |||
@@ -1456,7 +1460,7 @@ | |||
co (mpou k0 | |||
co (mprehen k0 | |||
co (mprom k0 | |||
co (mpt k0 | |||
_) comp (tr k%0m | |||
co (mputa k,0 | |||
_) co (mr k0 | |||
_) con (@ k%0n | |||
@@ -2206,7 +2210,6 @@ | |||
&) en (ce_ @n | |||
?8 &) en (ce_ En | |||
f) en (ce_ En | |||
g) ener (al En@r | |||
_) en (ough I2n | |||
.group eo | |||
@@ -2255,6 +2258,7 @@ | |||
_) er (A I2r | |||
_) er 3: | |||
_) err (A Er | |||
@) eral (ity @r'al | |||
&) eram (ent r@m | |||
X) era (_ i@r@ | |||
XC) err Er | |||
@@ -3096,7 +3100,7 @@ | |||
inte (llec Int@ | |||
_) inter (@P5 ,Int3 // prefix | |||
_) inter (AP5 ,Int@r | |||
inter (est Int@r | |||
inter (est Intr | |||
interfer Int@f'i@3 | |||
_) int (erio+ %Int | |||
_) inter (n_ %Int3: | |||
@@ -3183,7 +3187,6 @@ | |||
inism (_ InIz@m | |||
infor (matio Inf3 | |||
ino (_ 'i:noU | |||
_m) in (us aIn | |||
_m) inu (te aIn'ju: | |||
_m) inute (m InIt | |||
_) intra Intr@ | |||
@@ -3679,6 +3682,7 @@ | |||
X) o (By_ oU | |||
_) o (Cy+ 0 | |||
o (Be# oU | |||
oi (ce# OI | |||
o (BeCo_ 0 | |||
o (BenC oU | |||
o (Beon 'oU | |||
@@ -4792,7 +4796,7 @@ | |||
_) scar (A ske@ | |||
_) scar (a skar | |||
scarc ske@s | |||
sc (i s | |||
sc (L02 s | |||
sci (b s@ | |||
sci (_ =skaI | |||
scis (_ =skIs | |||
@@ -5381,6 +5385,7 @@ | |||
_) wr (Y r | |||
C) w (_ w@ | |||
C) w (X U // Welsh names | |||
wh w | |||
wr r | |||
C) we (_ =wI | |||
@@ -5424,6 +5429,8 @@ | |||
xure (_ kS%U@ | |||
.group y | |||
_) y (_ waI | |||
-) y (- @ // Welsh names | |||
y j | |||
_) y' (CP2 j@ | |||
y (C_ I |
@@ -447,6 +447,7 @@ WC ve:tse: $allcaps | |||
LST ElESte: $allcaps | |||
BAR bAR2 $allcaps | |||
//SS EsEs $allcaps | |||
ALT Alt $allcaps | |||
(a . m .) An^n^i||m'int $hasdot | |||
ún u:JnEvEzEt: $hasdot | |||
@@ -1773,6 +1774,54 @@ fajták $unstressend | |||
körülményei $unstressend | |||
bízva $unstressend | |||
száma $unstressend | |||
képes $unstressend | |||
számoltak $unstressend | |||
fakadó $unstressend | |||
firtatta $unstressend | |||
ítélték $unstressend | |||
itélték $unstressend | |||
fogják $unstressend | |||
bennem $unstressend | |||
állhat $unstressend | |||
lényege $unstressend | |||
derített $unstressend | |||
gyártotta $unstressend | |||
beszélni $unstressend | |||
számítógéppel $unstressend | |||
változást $unstressend | |||
lettek $unstressend | |||
tapasztalattal $unstressend | |||
súlyát $unstressend | |||
hatnak $unstressend | |||
rugalmas $unstressend | |||
anyagok $unstressend | |||
tárgyak $unstressend | |||
váltak $unstressend | |||
szűrő $unstressend | |||
szűrők $unstressend | |||
vitát $unstressend | |||
tevő $unstressend | |||
lévő $unstressend | |||
ajánlat $unstressend | |||
jelentkezhetnek $unstressend | |||
léphessen $unstressend | |||
építeni $unstressend | |||
darabra $unstressend | |||
figyelmesek $unstressend | |||
láttuk $unstressend | |||
hullott $unstressend | |||
szóltak $unstressend | |||
hallatszott $unstressend | |||
keresték $unstressend | |||
gépeket $unstressend | |||
követte $unstressend | |||
keresik $unstressend | |||
éreztem $unstressend | |||
vitatta $unstressend | |||
vitatja $unstressend | |||
útját $unstressend | |||
nehézségeket $unstressend | |||
// word pairs | |||
(hogy a) h,oJ,A |
@@ -44,7 +44,7 @@ | |||
bb (L01 b // only speak one b if followed by a consonant | |||
bbr bR2 //special exception with always need executing | |||
bbj bj //special exception with always need executing | |||
.group c | |||
c ts | |||
@@ -285,6 +285,8 @@ standar) d (jegy d | |||
harma) d (szint d | |||
kó) d (jel d | |||
harma) d (sor d | |||
beszé) d (javít d | |||
rekor) d (sugár d | |||
.group dz | |||
fogó) dz (kod ts | |||
@@ -332,6 +334,7 @@ smarag) dz (öld d|z | |||
kapáló) dz z | |||
_ó) dz (ko ts | |||
gyűrű) dz (ik z | |||
burkoló) dz z | |||
.group e | |||
e E | |||
@@ -530,6 +533,7 @@ harmince) gy (edik J: | |||
e) gy (összeg J: | |||
e) gys (ík J|S //for example egysíkú word need spokening single J and S phoneme | |||
_e) gy (öntet J: | |||
tár) gy (sor J | |||
.group h | |||
h h | |||
@@ -745,6 +749,7 @@ helybe) n (jár n | |||
idé) ny (jel n^ | |||
vagyo) n (nyilatkozat n //for example vagyonnyilatkozat word need spokening single n phoneme before n^ phoneme, not two n^n^ phoneme. | |||
szí) n (jelzés n | |||
kormá) ny (jelentés n^ | |||
.group o | |||
o o | |||
@@ -835,6 +840,9 @@ működé) s (zava S | |||
viselkedé) s (zava S | |||
alkalmazá) s (szerver S | |||
fá) s (szárú S | |||
ritmu) s (zavar S | |||
pedagógu) s (sztrájk S | |||
.group ss | |||
ssz ss2 | |||
@@ -1022,6 +1030,7 @@ települé) ssz (er Ss //for example településszerkezet word need spok | |||
gyor) ssz (űr Ss //for example gyorsszűrő word need spokening single S and s phoneme | |||
_a) ssz (iszt s //for example the asszisztens word need spokening one s phoneme | |||
eltu) ss (ol S | |||
ellátá) ssz (er Ss | |||
.group sz | |||
sz s | |||
@@ -1175,6 +1184,7 @@ interne) tj (egy tj | |||
álla) tj (ólét tj | |||
dolgoza) tj (avít tj | |||
természe) tj (ár tj | |||
terüle) tj (elöl tj | |||
.group ts | |||
ts (_S2 tS //general rule with word end of ts letters | |||
@@ -1377,7 +1387,7 @@ terüle) ts (áv t|S | |||
_hé) tsz (ob t|s //same as prewious rule | |||
gyakorla) ts (oroz t|S | |||
támogato) ts (ág tS: | |||
já) tsz (hass ts | |||
.group tt | |||
tt t: |
@@ -150,22 +150,23 @@ een @n $only | |||
ən @-n // char.replacement for 'n | |||
ət t // char.replacement for 't | |||
// pronouns | |||
ik $u | |||
me $u | |||
jij $u | |||
je $u | |||
gij $u | |||
ge $u | |||
u $u | |||
hij $u | |||
zij $u | |||
ze $u | |||
wij $u | |||
we $u | |||
// pronouns (may have -zelf suffix) | |||
ik %Ik | |||
me m@ | |||
jij j%EI | |||
je j@ | |||
gij Q%EI | |||
ge g@ | |||
u %y | |||
hij h%EI | |||
zij z%EI | |||
ze z@ | |||
wij v#%EI | |||
we v#@ | |||
jullie $u | |||
hen $u | |||
zich $u | |||
hen h%En | |||
zich z%Ix | |||
onszelf Ons'Elf | |||
// possessives | |||
mijn $u | |||
@@ -229,7 +230,7 @@ dat $u $pause // that | |||
hoewel $pause // although | |||
of $u $pause // whether | |||
omdat $pause // because | |||
nadat $u $pause // after | |||
nadat $u2 $pause // after | |||
nudat $pause // now that | |||
sinds $pause // since | |||
tenzij $pause // unless | |||
@@ -953,6 +954,7 @@ mokkel $alt | |||
mormel $alt | |||
mortel $alt | |||
morzel $alt | |||
navel $alt | |||
obstakel $alt | |||
parabel $alt | |||
partikel $alt | |||
@@ -1451,9 +1453,9 @@ onderhandelingsnota ,ond@r'hAnd@lINs,no:ta: | |||
ongastvrij OnQAstvr'EI | |||
ongelooflijk $3 | |||
ongemakkelijk $3 | |||
ongelukkig $3 | |||
//ongelukkig $3 | |||
ongerieflijk $3 | |||
ongrondwettig $3 | |||
//ongrondwettig $3 | |||
partijvoorzitters $2 | |||
pistache pist'AS | |||
proces $2 | |||
@@ -1478,6 +1480,9 @@ vrouwengek $alt3 | |||
waarschijnlijk $2 | |||
wanen v#a:n@n | |||
wangen v#AN@n | |||
wanluidend $2 | |||
wanschapen $2 | |||
wantrouwend $2 | |||
ziekenhuisbevalling zi:k@nhWysb@vAlIN | |||
@@ -1495,6 +1500,7 @@ Ingrid IN@-*It | |||
Justine Zyst'in | |||
kennedy kEn@dE | |||
Laurent lo:r'An^ | |||
Naomi $2 | |||
Nys nEIsd'WyzEnt | |||
//Trademarks | |||
@@ -1508,7 +1514,24 @@ google gu:g@l | |||
alexandrië $3 | |||
canada kAna:da: | |||
Kinshasa kInS'a:sa: | |||
Nairobi nAjr'o:bi | |||
Napel $alt | |||
Rochefort roS'for | |||
Zelzate zelzat@ | |||
(vond dat de) vOn_tA_t@ | |||
nadelig $2 // nadelig(e) | |||
nadelige $2 | |||
naderhand $3 | |||
nadien $2 $only | |||
nadrukke $2 // nadrukkelijk | |||
nafta nAfta: | |||
nalatig $2 // nalatig(e) | |||
nalatige $2 | |||
nasaal $2 | |||
nasi nAsi | |||
navoel $2 // navoelbaar(/bare) | |||
navulbaar $2 | |||
@@ -1,6 +1,8 @@ | |||
// translation rules for Dutch | |||
// This file is UTF-8 encoded | |||
// Suffix rule: SUFX_E eg. S2e means double the vowel before the final consonant | |||
.L01 g k | |||
@@ -34,7 +36,6 @@ | |||
aire (_ 'E:r@ | |||
air (_ 'Er | |||
@) agne (_ 'An^@ | |||
ale (_ 'a:l@ | |||
@) ant (_ 'Ant | |||
@) ant (e_ 'Ant | |||
@) ant (en_ 'Ant | |||
@@ -51,7 +52,8 @@ | |||
bs (_N ps | |||
baan ba:n | |||
&) baar (_ =ba:r | |||
&) baar (_S4 =ba:r | |||
&) bare (_S4 =ba:r@ | |||
_) bij (C@P3 b'EI | |||
_) binnen (P6 b'In@n | |||
_) boven (P5 b'o:v@n | |||
@@ -145,7 +147,7 @@ | |||
.group e | |||
e e# // [e:] but change to [@] in unstressed syllables | |||
X) e e: // first syllable in a word | |||
&C) e (_S1qd @ | |||
e (_ @ | |||
e (CK E | |||
e (x E | |||
@@ -157,6 +159,12 @@ | |||
eeuw eU | |||
eu Y: | |||
&C) e (_S1qd @ | |||
KAC) e (_S1e @ // remove 'e' and double the vowel | |||
el) e (_+S1qd @ | |||
er) e (_+S1qd @ | |||
ig) e (_+S1qd @ | |||
ea (_ 'e:a: | |||
eau o: //words with French origin | |||
@) ee (_ 'e: | |||
@@ -188,12 +196,17 @@ | |||
&) em (_ @m | |||
&) e (ment @ | |||
&) e (nissen_ @ | |||
&) en (_S2qd @n | |||
&) en (_S2qd @n // double the previous vowel | |||
KAC) en (_S2e @n | |||
el) en (_+S2qd @n | |||
er) en (_+S2qd @n | |||
&) ens (_S3q @ns | |||
ll) en (_S3 @n | |||
&) end (_ @nd | |||
&) ende (_ @nd@ | |||
&) enden (_ @nd@n | |||
&) ende (_S1 @ | |||
&) enden (_S2 @n | |||
eden e:d@n | |||
&) ent (_$w_alt =@nt | |||
@) ent (_ 'Ent | |||
@@ -205,7 +218,8 @@ | |||
@) ent (ste_ 'Ent | |||
ag) ent 'Ent | |||
@j) es (_ @s | |||
@) es (_S2qd 'Es | |||
@) es (_S2qd 'Es // double the previous vowel | |||
KAC) es (_S2e @s | |||
@) essen (_S5qd 'Es@n | |||
@) eres (_S4qd @r'Es | |||
@) eressen (_S7sq @r'Es@n | |||
@@ -268,6 +282,7 @@ | |||
.group g | |||
g Q // ph_dutch changes to [x] before unvoiced, NULL after [x] | |||
gg Q | |||
s) g x | |||
_) ge (@P2 Q@ | |||
ge (bied Q@ | |||
@@ -335,13 +350,13 @@ | |||
ie (CtjeX_ 'i | |||
ie (ren_ 'i | |||
ie (rd_ 'i | |||
@) ig (_S2dq @x | |||
@) ige (_S3dq @Q@ | |||
@) igen (_ @Q@n | |||
@) iger (_ @Q@r | |||
@) igere (_ @Q@r@ | |||
@) igst (_ @Qst | |||
@) igste (_ @Qst@ | |||
@) ig (_S2dq =@x | |||
@) ige (_S3dq =@Q@ | |||
@) igen (_ =@Q@n | |||
@) iger (_ =@Q@r | |||
@) igere (_ =@Q@r@ | |||
@) igst (_ =@Qst | |||
@) igste (_ =@Qst@ | |||
ij (_ 'EI | |||
ij (e_ 'EI | |||
@) ij (n_ 'EI | |||
@@ -410,10 +425,21 @@ _) inn (@P2 'I // ?? inneren | |||
n (k$w_alt3 n | |||
_) na (C@@P2 n'a: | |||
_) na (tion na: | |||
_) na (C@ n'a: | |||
_) na (C% nA | |||
_) na (cht nA | |||
_) narci (s n%ArsI | |||
_) na (rc n%A | |||
_) na (der na: | |||
_) na (tion na: | |||
_) nano (@P4 n'a:no: | |||
_) na (polA n%a: | |||
napoleon n%a:po:l@jOn | |||
_) natuur na:t'yr | |||
naturel na:tyr'El | |||
na (tur n%a: | |||
na (vig n%a: | |||
_) na (vr na: | |||
_) na (volg@ n%a: | |||
_) noord (@P5 no:rd | |||
_) nieuws (@P6 n'iws | |||
@@) nis (_S3 nIs | |||
@@ -442,11 +468,13 @@ _) inn (@P2 'I // ?? inneren | |||
_) on (@P2 %On | |||
oo (X 'o: | |||
oon 'o:n // in compounds, eg. telefoongesprek | |||
oo (C_ 'o: | |||
_) oost (@P4 o:st | |||
_) op (@@P2 'Op | |||
_) open (@P4 'o:p@n | |||
_) op (era 'o:p | |||
_) op (tion Op | |||
@at) or (_ 'o:r | |||
ou (che_ u | |||
ouch (en_ uS | |||
_) over (@P4 ,o:v@r | |||
@@ -525,7 +553,7 @@ _) inn (@P2 'I // ?? inneren | |||
s (s | |||
A) s (A z | |||
s (b z | |||
s (g z | |||
s (d z | |||
sc s | |||
sch sx | |||
sch (_ s | |||
@@ -536,6 +564,8 @@ _) inn (@P2 'I // ?? inneren | |||
sj S | |||
@@) s (_S1 s | |||
sc (oop sk | |||
sc (opi sk | |||
&) sel (_ =s@l | |||
&) selen (_ =s@l@n | |||
@) si (o S | |||
@@ -623,6 +653,7 @@ _) inn (@P2 'I // ?? inneren | |||
.group v | |||
v v | |||
s) v f | |||
_) van (@P3 v%An | |||
_) vanzelf (@P7 vAnz,Elf | |||
@@ -642,7 +673,14 @@ _) inn (@P2 'I // ?? inneren | |||
_) wan (@P3 v#'An | |||
_) wan (L01@P3 v#'AN | |||
_) wan (del v#An | |||
_) wanhopig v#Anh'o:p@Q | |||
_) wan (kel v#AN | |||
_) wann (eer v#An | |||
_) wanordelijk v#An_|'Ord@l@k | |||
_) wansmakelijk v#Ansm'a:k@l@k | |||
_) wanstaltig v#Anst'Alt@Q | |||
_) wantrouwig v#Antr'VU@Q | |||
_) wanvoeglijk v#Anv'uxl@k | |||
_) weg (@P3 v#'EQ | |||
_) weg (en v#e:Q | |||
_) weg (e_ v#e:Q // bewegelijk | |||
@@ -664,7 +702,10 @@ _) inn (@P2 'I // ?? inneren | |||
.group z | |||
z z | |||
z (z | |||
s) z | |||
zele (_S4 ze:l@ // common suffix for cities. | |||
@) zelf (_S4 s'Elf | |||
_) zoge (@P4 z,og@ | |||
_) zuid (@P4 zWyt | |||
@@ -329,6 +329,7 @@ | |||
ou (_N 'oU | |||
ou (_ ou | |||
o (AAA o | |||
@C) o (riii_ 'o | |||
.group p |
@@ -261,6 +261,9 @@ dlh dl-h | |||
stĺp stl:p | |||
plch pl-x | |||
čln tSl-n | |||
plť pl-t; | |||
tĺk tl:k | |||
vlk vl-k | |||
// don't soften (d,n,t) before e,i | |||
aktívni $alt |
@@ -111,6 +111,8 @@ U+bf9 ru:ba:j | |||
// abbreviations | |||
ரூ ru:ba:j $dot $only | |||
(பி . ஏ) bije: $dot | |||
(கி . மீ) kilo:mi:t.t.Vr $dot | |||
// numbers | |||
_0 suz.ijVm // சுழியம் | |||
@@ -182,9 +184,50 @@ _1M3 orUko:d.ie: | |||
_dpt _pul.l.i | |||
// drop final [U] when followed by an ordinal suffix | |||
_1o onR | |||
_2o irVn.d. | |||
_3o mu:nR | |||
_4o na:ng | |||
_5o aInd | |||
_6o a:R | |||
_7o ;e:l | |||
_8o ;et.t. | |||
_9o onbVd. | |||
_10o patt | |||
_11o patinonR | |||
_12o pVnnirVn.d. | |||
_19o pattonbVd | |||
_20o irUbVd | |||
_30o muppVd // முப்பது | |||
_40o na:RpVd | |||
_50o aImbVd | |||
_60o aRUbVd | |||
_70o ;ez.UbVd | |||
_80o ;en.bVd | |||
_90o ton.n.u:R | |||
_1Co nu:R | |||
_2Co irUnu:R | |||
_3Co munnu:R | |||
_4Co na:nu:R | |||
_5Co aInu:R | |||
_6Co aRUnu:R | |||
_7Co ;ez.Unu:R | |||
_8Co ;en.n.u:R | |||
_#ம் a:m // ordinal suffix | |||
_#-ம் a:m // ordinal suffix | |||
_#ல் il | |||
_#வது a:vVdU | |||
_#வதும் a:vVdUm | |||
_#வதுமாக a:vVdUma:gV | |||
_#-ம் a:m // ordinal suffix with hyphen | |||
_#-ல் il | |||
_#-வது a:vVdU | |||
_#-வதும் a:vVdUm | |||
_#-வதுமாக a:vVdUma:gV | |||
// English words | |||
tamil தமிழ் $text | |||
@@ -305,7 +348,9 @@ tamil தமிழ் $text | |||
பந்தா $alt | |||
பிரா bra: | |||
ப்ரா $alt | |||
(பி . ஏ) bije: | |||
பலம் $alt | |||
பலமாக $alt | |||
பலமா $alt | |||
// initial த as [d] | |||
@@ -366,6 +411,7 @@ tamil தமிழ் $text | |||
தின $alt | |||
தில் $alt | |||
தன $alt | |||
தடியா $alt | |||
// initial ட | |||
@@ -440,6 +486,7 @@ tamil தமிழ் $text | |||
களிலும் $alt | |||
கடம் $alt | |||
காட் $alt | |||
கிடு $alt | |||
@@ -465,7 +512,6 @@ tamil தமிழ் $text | |||
பைக்கில் baIkkIl | |||
தாங்ஸ் Ta:Nks // thanks | |||
டிபுடி d.EpjUt.i // deputy | |||
டிபன் t.ifVn | |||
ஆகா a:Ha: | |||
ஓகோ o:Ho: | |||
கப் kVp |
@@ -66,12 +66,20 @@ | |||
// i or i: | |||
.L08 ி ீ | |||
// n or n | |||
.L09 ந ன | |||
// l or l. | |||
.L10 ல ள | |||
// b d g | |||
.L11 ப த க | |||
// words before "bottle" | |||
.L10 பீர் கலர் சாராய சோடா தண்ணி தண்ணீர் பிராந்தி வாட்டர் விஸ்கி பிளாஸ்டிக் ப்ளாஸ்டிக் கண்ணாடி கிளாஸ் க்ளாஸ் மது | |||
.L12 பீர் கலர் சாராய சோடா தண்ணி தண்ணீர் பிராந்தி வாட்டர் விஸ்கி பிளாஸ்டிக் ப்ளாஸ்டிக் கண்ணாடி கிளாஸ் க்ளாஸ் மது | |||
// words after "booga" | |||
.L11 வாழ்க்கை பூமி விருந்த மனிதன | |||
.L13 வாழ்க்கை பூமி விருந்த மனிதன | |||
// consonants | |||
@@ -182,9 +190,17 @@ | |||
_) கி (ராம g | |||
_) கி (ராம்ப k | |||
_) கி (ரிகோரிய g | |||
_) க (ிரிக்கா g | |||
_) க (ிரிஜா g | |||
_) க (ிரிதர g | |||
_) கி (ரித்த k | |||
_) கி (ரிமினல k | |||
_) கி (ரியா_ k | |||
_) க (ிரியாக g | |||
_) க (ிரியால g | |||
_) க (ிரியி g | |||
_) க (ிரியு g | |||
_) கி (ரில் g | |||
_) கிரிஸ்டோப (ர krist.o:fV | |||
_) கி (ரிஸ்த k | |||
_) கி (ரீட k | |||
@@ -195,6 +211,7 @@ | |||
_) கி (ரீஸ g | |||
_) க (ிருகஸ்தர g | |||
_) க (ிருகிரு g | |||
_) கிரு (ஸ்த kri | |||
_) க (ிருஹஸ்தர g | |||
_) கி (ரேக்க g | |||
_) கி (ரேய k | |||
@@ -280,6 +297,7 @@ _மன்மதக்) க (ுகை g | |||
_) க (ுருஜி g | |||
_) க (ுருதேவ g | |||
_) க (ுருநா g | |||
_) குருப (ாத gurup | |||
_) க (ுருபூஜை g | |||
_) க (ுருப்பெயர g | |||
_) க (ுருமார g | |||
@@ -292,11 +310,13 @@ _மன்மதக்) க (ுகை g | |||
_) க (ுருவு g | |||
_) க (ுருவுடை g | |||
_) க (ுருவை g | |||
_) க (ுருவோ g | |||
_) க (ுருவோட g | |||
_) க (ுலாப g | |||
_) க (ுலாம g | |||
_) க (ுலேபா g | |||
_) கு (லோபல g | |||
_) க (ுல்மோL06ர g | |||
_) க (ுவஹாத்தி g | |||
_) குவாலிட(ி kwa:lit. | |||
_) குவ (ாலிபிகேஷன kw | |||
@@ -321,11 +341,13 @@ _மன்மதக்) க (ுகை g | |||
_) க (ெஸ்ட g | |||
_) க (ேட்டண்டை g | |||
_) க (ேட்டிலிருந்த g | |||
_) க (ேட்டுக்கருக g | |||
_) க (ேட்டுக்குப் g | |||
_) க (ேட்டைக் g | |||
_) க (ேட்டைத் g | |||
_) க (ேட்டைப் g | |||
_) க (ேலி g | |||
_) க (ைட g | |||
_) க (ொணத் g | |||
_) க (ொணம g | |||
_) க (ொரில g | |||
@@ -352,6 +374,7 @@ _மன்மதக்) க (ுகை g | |||
_) க (ோமதி g | |||
_) க (ோமாதா g | |||
_) க (ோமிய g | |||
_) க (ோமூத்திர g | |||
_) க (ோயல g | |||
_) க (ோர_ g | |||
_) க (ோர_மாட்ட k | |||
@@ -361,6 +384,8 @@ _மன்மதக்) க (ுகை g | |||
_) க (ோரத g | |||
_) க (ோரப g | |||
_) க (ோரப்பட k | |||
_) க (ோரப்போக k | |||
_) க (ோரப்போவ k | |||
_) க (ோரம g | |||
_) க (ோலிக g | |||
_) க (ோலிய g | |||
@@ -551,6 +576,7 @@ _டா) குமெண்ட kUmen.tV# | |||
_மை) க் k | |||
_ஷா) க் (_ k | |||
_விவே) க் (_ k | |||
_ஜ) க்க ggV# | |||
துர்) க்க ggV# | |||
மார்) க்க ggV# | |||
மூர்) க்க ggV# | |||
@@ -584,10 +610,13 @@ _வேதா) க்க (ினி gg | |||
இ) க்கி (ராம gg | |||
L03) க்க (ுகை gg | |||
_மு) க்க (ுண gg | |||
_போர்) க்க (ுண gg | |||
அணு) க்க (ுண்ட gg | |||
_வெடி) க்க (ுண்ட gg | |||
_துப்பாக்கி) க்க (ுண்ட gg | |||
ஜன) க்க (ும்பல gg | |||
_ல) க்க (ேஜ gg | |||
L03) க்க (ோபுர gg | |||
_வி) க்ச (னரி ks.V | |||
_பி) க்ச (ர ktSV | |||
_மெ) க்சிக (ோ ksik | |||
@@ -661,9 +690,11 @@ _துப்பாக்கி) க்க (ுண்ட gg | |||
ச (ந்திர tSV | |||
_ஹட்) ச (ன sV | |||
_வாட்) ச (ன sV | |||
_சாபவிமோ) ச (ன tSV | |||
_டேவிட்) ச (ன sV | |||
_பாவவிமோ) ச (ன tSV | |||
_விமோ) ச (ன tSV | |||
_) ச (ப்பL11் tSV | |||
_) ச (ப்பா tSV | |||
_) ச (ப்பி tSV | |||
_) ச (ப்பு tSV | |||
@@ -671,6 +702,7 @@ _விமோ) ச (ன tSV | |||
_) சரசு (வதி sVrVs | |||
_) சர்ச (ி tSVrtS | |||
_) ச (ர்ச்சில tSV | |||
_) ச (ர்ச்சு tSV | |||
மருதா) ச (ல tSV | |||
வேதா) ச (ல tSV | |||
_சேஷா) ச (ல tSV | |||
@@ -678,6 +710,7 @@ _தணிகா) ச (ல tSV | |||
அருணா) ச (ல tSV | |||
வெங்கடா) ச (ல tSV | |||
வேங்கடா) ச (ல tSV | |||
_) ச (வான tSV | |||
_) சாக்ப (ீL04 tSa:kp | |||
_) சாக்லேட் tSa:kle:t. | |||
_) ச (ாணக்கிய tS | |||
@@ -703,6 +736,8 @@ _தணிகா) ச (ல tSV | |||
ஆ) ச (ாரம tS | |||
_) சாருலத (ா tSa:rUlVt | |||
_) ச (ாருவ tS | |||
_ரீ) ச (ார்ஜ tS | |||
_டிஸ்) ச (ார்ஜ tS | |||
_) ச (ார்ஜை tS | |||
_) ச (ார்ஜ்_ tS | |||
_) ச (ார்லஸ tS | |||
@@ -739,9 +774,12 @@ _தணிகா) ச (ல tSV | |||
_) ச (ிப்ஸ tS | |||
சி (ரம s | |||
_) சி (ரார்த்த s | |||
_) சிரு (ங்கார sri | |||
_) சிரு (ஷ்டி sri | |||
_) ச (ிற்றம்பல tS | |||
_) சி (லாகி s | |||
_) ச (ிலிய tS | |||
_) சி (லேட s | |||
_) ச (ில்ற tS | |||
_) ச (ில்லறை tS | |||
_) ச (ிள்ற tS | |||
@@ -765,6 +803,7 @@ _தணிகா) ச (ல tSV | |||
ராவணே) சு (வர s | |||
_) சுவர்க்க svVrggV# | |||
_) சுவர்க்க (ோழி suvVrkk | |||
_) சு (வர்ண s | |||
_) சு (வாச s | |||
சு (வாதீன s | |||
சு (வாமி s | |||
@@ -772,7 +811,9 @@ _தணிகா) ச (ல tSV | |||
அ) சுவாரசி (ய sva:rVs | |||
சு (வாரஸ்ய s | |||
_) சு (விட்ச s | |||
_) சு (விஸ s | |||
_) சு (வீட s | |||
_) ச (ூரண tS | |||
_) செக் (_ tSek | |||
_) ச (ெக்கோL04 tS | |||
_) ச (ெங்கிஸ tS | |||
@@ -786,11 +827,13 @@ _தணிகா) ச (ல tSV | |||
_) ச (ென்னி tS | |||
_) ச (ென்னை tS | |||
_) ச (ெயின tS | |||
_) செயின்ட sejint.V# | |||
_) செயின்ட sejint. | |||
_) ச (ெய்ன tS | |||
_) செய்ன்ட sejnt.V# | |||
_) செய்ன்ட sejnt. | |||
_) ச (ெர்னோபில tS | |||
_) ச (ெல்லக்கிளி tS | |||
_) ச (ெல்லக்குட்டி tS | |||
_) ச (ெல்லக்குழந்த tS | |||
_) ச (ெல்லத்துக்கு tS | |||
_) ச (ெல்லத்தை tS | |||
_) ச (ெல்லப்பன tS | |||
@@ -799,8 +842,11 @@ _தணிகா) ச (ல tSV | |||
_) ச (ெல்லப்பெண் tS | |||
_) ச (ெல்லப்பையன tS | |||
_) ச (ெல்லமா tS | |||
_) ச (ெல்லமே_ tS | |||
_) ச (ெஸ் tS | |||
ச (ெஸ்டர tS // -chester | |||
_) ச (ேஞ்ச tS | |||
_) ச (ேட்டன tS | |||
_) ச (ேனல tS | |||
_) ச (ேரி tS | |||
_) ச (ேர்மேன tS | |||
@@ -812,6 +858,8 @@ _தணிகா) ச (ல tSV | |||
_) ச (ைனாவ tS | |||
_) ச (ைனீஸ tS | |||
_) ச (ௌதரி tS | |||
_) ச (ௌதிரி tS | |||
_) ச (ௌஹான tS | |||
//endsort | |||
@@ -849,7 +897,10 @@ _ரிப்போர்) ட t.V# | |||
அர்ஜண்) ட t.V# | |||
அர்ஜெண்) ட t.V# | |||
இண்டர்மீடியே) ட t.V# | |||
ன்ஸ்பரண்) ட t.V# | |||
ன்ஸ்பெரண்) ட t.V# | |||
_) ட (ஃப் t.V | |||
_) ட (க் t.V | |||
_) ட (க்கர t.V | |||
ங்) ட (ன t.V // -ington | |||
_நியூ) ட (ன t.V | |||
@@ -864,6 +915,7 @@ _ரிப்போர்) ட t.V# | |||
_) ட (யரில t.V | |||
_) ட (யரு t.V | |||
_) ட (யர் t.V | |||
ஃபில்) ட (ர t.V | |||
_செண்) ட (ர t.V | |||
_ப்ரிண்) ட (ர t.V | |||
_ஷெல்) ட (ர t.V | |||
@@ -920,6 +972,7 @@ _நாவல்) ட (ி t. | |||
கான்) டினென்ட (ல t.inent.V | |||
_) ட (ின் t. | |||
_) டின்க (ரிங் t.inkV | |||
_) டிப (ன t.ifV | |||
_சர்) டிபிகேட t.ifige:t.V# | |||
_) ட (ிப்ஸ t. | |||
_) டி (யூசன t. | |||
@@ -929,6 +982,7 @@ _நாவல்) ட (ி t. | |||
_) டி (யூஷன t. | |||
_) டி (ரங் t. | |||
_) டி (ரங்கு t. | |||
_) டி (ரபிள t. | |||
_) டிரம்பெட் t.rVmpet. | |||
_) டிர (ஸ d.re | |||
_) டிர (ஸ்ட t.rV | |||
@@ -939,9 +993,9 @@ _நாவல்) ட (ி t. | |||
_) டி (ராஜ t. | |||
_) டி (ரான்சிஸ்டர t. | |||
_) டி (ரான்ஸ்ஃபர t. | |||
_) டி (ரான்ஸ்ப t. | |||
_) டிரான்ஸ்ப (ர t.ra:nsfV | |||
_) டி (ரான்ஸ்பாண்டர t. | |||
_) டிரான்ஸ்பிரண்ட t.ra:nspirVn.t.V# | |||
_) டிரான் (ஸ்பரண்ட+++ t.ra:n | |||
_) டி (ரான்ஸ்மீட்டர t. | |||
_) டி (ரான்ஸ்லே t. | |||
_) டி (ரான்ஸ்வேல t. | |||
@@ -956,7 +1010,9 @@ _நாவல்) ட (ி t. | |||
_) டிரிக்க (ர t.riggV | |||
_) டி (ரிங்க் d. | |||
_) டி (ரிம் t. | |||
_) டி (ரில்லியன t. | |||
_) டிரீட் t.ri:t. | |||
_) டி (ரெண் t. | |||
_) டிரெயி(லர t.rej | |||
_) டி (ரெயின t. | |||
_) டி (ரெய்லர t. | |||
@@ -967,6 +1023,7 @@ _நாவல்) ட (ி t. | |||
_) டி (ரை_செஞ்ச t. | |||
_) டி (ரை_செய் t. | |||
_) டி (ரை_பண் t. | |||
_) டி (ரைலர t. | |||
_) டி (ரைவ d. | |||
கண்) டி (ரோல t. | |||
_நெக) ட (ிவ t. | |||
@@ -981,11 +1038,13 @@ _நாவல்) ட (ி t. | |||
_) ட (ுனீL04 t. | |||
_) ட (ுனீஷிய t. | |||
_) டுவிங்க (ிள t.wiNk | |||
_) டுவ (ிட்டர t.w | |||
_கார்) ட (ூன t. | |||
_) ட (ூர t. | |||
_) டெக் (னாலஜி t.ek | |||
_) டெக்னிக (ல t.eknikV | |||
_) ட (ெக்ஸாஸ t. | |||
_) ட (ெக்ஸ் t. | |||
_) ட (ெண்டர t. | |||
_) ட (ெண்டுல்கர t. | |||
_) டென்டுல்க (ர t.ent.UlkV | |||
@@ -1014,8 +1073,10 @@ _லான்_) ட (ென்னிஸ t. | |||
_) டைட (ில t.aIt. | |||
_) டைப் t.aIp | |||
_) ட (ைம்_ t. | |||
_) டொக் t.ok | |||
_) ட (ோக்கன t. | |||
_) ட (ோக்கியோ t. | |||
_) ட (ோட்டல t. | |||
_) டோரண்ட (ோ t.o:rVn.t. | |||
_ப்ரி) ட (ோரிய t. | |||
@மெண்) ட் t. // -ment | |||
@@ -1031,6 +1092,7 @@ _லான்_) ட (ென்னிஸ t. | |||
ஸ்) ட் (ர _|t. // ?? make t. distinct | |||
_) ட் (ரங் t. | |||
_) ட் (ரங்கு t. | |||
_) ட் (ரபிள t. | |||
_) ட்ரம்பெட் t.rVmpet. | |||
_) ட் (ரஸ்ட t. | |||
_த) ட் (ரா t. | |||
@@ -1044,6 +1106,7 @@ _லான்_) ட (ென்னிஸ t. | |||
_நியூ) ட் (ரான t. | |||
_) ட (்ரான்சிஸ்டர t. | |||
_) ட் (ரான்ஸ்ஃபர t. | |||
_) ட் (ரான்ஸ்ப t. | |||
_) ட்ரான்ஸ்ப (ர t.ra:nsfV | |||
_) ட் (ரான்ஸ்பாண்டர t. | |||
_) ட்ரான்ஸ்பிரண்ட t.ra:nspirVn.t.V# | |||
@@ -1059,10 +1122,12 @@ _லான்_) ட (ென்னிஸ t. | |||
_) ட்ரிக் t.rik | |||
_) ட்ரிக்க (ர t.riggV | |||
_) ட் (ரிம் t. | |||
_) ட் (ரில்லியன t. | |||
_) ட்ரீட் t.ri:t. | |||
_வி) ட் (ரு t. | |||
_கே) ட் (ரு t. | |||
_போ) ட் (ரு t. | |||
_) ட் (ரெண் t. | |||
_) ட்ரெயி (லர t.rej | |||
_) ட் (ரெய்லர t. | |||
இண்) ட் (ரேஸ்ட t. | |||
@@ -1070,6 +1135,7 @@ _லான்_) ட (ென்னிஸ t. | |||
_) ட் (ரை_செய் t. | |||
_) ட் (ரை_பண் t. | |||
_) ட் (ரையல t. | |||
_) ட் (ரைலர t. | |||
_பெ) ட் (ரோ t. | |||
_மெ) ட் (ரோ t. | |||
கண்) ட் (ரோல t. | |||
@@ -1091,6 +1157,7 @@ _நடுரோ) ட் (ல t. | |||
_ஹி) ட் (லர t. | |||
அ) ட்லாண்ட t.la:n.t.V# // atlant | |||
_) ட்விங்க (ிள t.wiNk | |||
_) ட்வ (ிட்டர t.w | |||
//endsort | |||
@@ -1173,9 +1240,11 @@ _நடுரோ) ட் (ல t. | |||
_) த (னராஜ dV | |||
_) த (னலக்ஷ்மி dV | |||
_) த (னலட்சுமி dV | |||
_) த (னவந்த dV | |||
_) த (னுஷ dV | |||
_) த (ன்மந்திரி dV | |||
_) த (ன்ராஜ dV | |||
_) த (ன்வந்தரி dV | |||
_) தபதப dVbVdVbV# | |||
_) த (மயந்தி dV | |||
_) த (ம்பதி dV | |||
@@ -1286,11 +1355,16 @@ _நடுரோ) ட் (ல t. | |||
_) த (ிம்ம d | |||
_) தி (யாக t | |||
_) தி (யான d | |||
_) தி (யேட்டர t | |||
_) த (ிரவ d | |||
_) த (ிரவிய d | |||
_) தி (ராட்சை d | |||
_) தி (ராணி t | |||
_) தி (ராவிட d | |||
_) திரிப (ாதி trip | |||
_) திரிப (ோலி trip | |||
_) தி (ரிலோக t | |||
_) தி (ரிவேதி t | |||
_) திரு (திரா dri | |||
_) திரு (ஷ்டி dri | |||
_) த (ிரௌபதி d | |||
@@ -1349,11 +1423,13 @@ _நடுரோ) ட் (ல t. | |||
_) து (ரோண t | |||
_) த (ுர் d | |||
_) து (வந்த_ d | |||
_) துவ (ாதசி dv | |||
_) துவாப (ர dva:pV | |||
_) துவ (ார dv | |||
_) து (வேச d | |||
_) து (வேஷ d | |||
_) துவைத (_ dvaItV | |||
_) துவ (ைதத்த dv | |||
_) துவைத (த்தில dvaItV | |||
_) துவைத (ம dvaItV | |||
_) த (ுஷ் d | |||
@@ -1380,6 +1456,7 @@ _நடுரோ) ட் (ல t. | |||
_) த (ேச d | |||
_) த (ேவகான d | |||
_) த (ேவகி d | |||
_) த (ேவகுமார d | |||
_) த (ேவகுரு d | |||
_) த (ேவகுல d | |||
_) த (ேவக் d | |||
@@ -1474,6 +1551,7 @@ _நிவேதி) த (ை t | |||
யு) த்த ddV# | |||
_சிரார்) த்த ddV# | |||
_ஸ்ரார்) த்த ddV# | |||
அர்) த்த (L09ார ddV | |||
_சிறை) த்த (ண்டனை ddV | |||
பு) த்த (ன ddV | |||
_வர்) த்த (மான ddV | |||
@@ -1510,6 +1588,7 @@ _சிறை) த்த (ண்டனை ddV | |||
ஆதி) த்தி (ராவிட dd | |||
ராஜ) த்து (ரோக dd | |||
_தேச) த்து (ரோகி td | |||
அ) த்து (வான d | |||
வி) த்து (வான d | |||
_முக) த்து (வார dd | |||
L03) த்த (ூச dd | |||
@@ -1583,6 +1662,7 @@ _காமசூ) த் (ர t | |||
பி_._) ப(ி_._சி b // b.b.c | |||
_) ப (L06ுகுணா bV | |||
_) ப (L07லர b | |||
_) ப (ஃபூன bV | |||
_) ப (கதூர bV | |||
_) ப (கத்சிங் bV | |||
_) ப (கவதி bV | |||
@@ -1595,11 +1675,13 @@ _காமசூ) த் (ர t | |||
_) ப (கிஷ்க bV | |||
_) ப (கீர bV | |||
_) ப (குள bV | |||
_) ப (க்கிங்L06ாம bV | |||
_) ப (க்கெட் bV | |||
_) ப (க்கென்ற bV | |||
_) பக் (த bVk | |||
_) பக் (ரீத bVk | |||
_) ப (க்ருதீன fV | |||
_) ப (க்ஷண bV | |||
_) ப (ங்கம bV | |||
_) பங்க (ர bVNkV | |||
_) ப (ங்களா bV | |||
@@ -1634,9 +1716,13 @@ _சொந்த_) ப (ந்த bV | |||
_) பந்த (ுலு bVnt | |||
_) ப (ந்துவ bV | |||
_) ப (ந்தோபஸ்த bV | |||
_) ப (னல fV | |||
_) ப (னியன bV | |||
_) ப (ன்னாரி bV | |||
_டீயும்_) ப (ன்னும்_ bV | |||
_) ப (ன்னும்_டீயும் bV | |||
_) ப (ன்ருட்டி bV | |||
_) ப (பூன bV | |||
_) ப (ம்பர bV | |||
_) ப (ம்பாய bV | |||
_) ப (யங் bV | |||
@@ -1649,6 +1735,7 @@ _சொந்த_) ப (ந்த bV | |||
_) ப (யபக்தி bV | |||
_) ப (யப் bV | |||
_) ப (யப்பத pV | |||
_) ப (யப்பவை pV | |||
_) ப (யம bV | |||
_) ப (யாலஜி bV | |||
_) பயாஸ்கோப் bVja:sko:p | |||
@@ -1682,11 +1769,14 @@ _சொந்த_) ப (ந்த bV | |||
_) ப (லப்பட bV | |||
_) ப (லப்படு bV | |||
_) ப (லப்பரீட்சை bV | |||
_) ப (லம bV | |||
_) ப (லமடங்க pV | |||
_) ப (லமாடி pV | |||
_) ப (லமுறை pV | |||
_) ப (லமொழி pV | |||
_) ப (லமணைத்த bV | |||
_) ப (லமாகC் bV | |||
_) ப (லமாகி bV | |||
_) ப (லமாச்ச bV | |||
_) ப (லமான bV | |||
_) ப (லமாய் bV | |||
_) ப (லமுடன bV | |||
_) ப (லமும bV | |||
_) ப (லராம bV | |||
_) ப (லவந்த bV | |||
_) ப (லவான bV | |||
@@ -1735,12 +1825,13 @@ _சொந்த_) ப (ந்த bV | |||
_) ப (ாக்ஸர b | |||
_) ப (ாக்ஸிங் b | |||
_) பாங்க (ாக் ba:Nk | |||
_) ப (ாங்கில b | |||
_) ப (ாங்க் b | |||
_) ப (ாசு b | |||
_) ப (ாசுர p | |||
_) ப (ாடி_பில்டிங் b | |||
_) ப (ாட்டலியன b | |||
_L10_) ப (ாட்டில b // bottle | |||
_L12_) ப (ாட்டில b // bottle | |||
_) ப (ாட்டிலி b | |||
_) ப (ாட்டிலுக் b | |||
_) ப (ாட்டிலுடன b | |||
@@ -1774,6 +1865,7 @@ _சொந்த_) ப (ந்த bV | |||
_) பாப (ர ba:bV | |||
_) பாப (ாசாகேப் ba:b | |||
_) பாப (ாசாஹேப் ba:b | |||
_) பாப (ாவ ba:b | |||
_) ப (ாபிலோனியா b | |||
_) ப (ாபுவ b | |||
_) ப (ாமாவ b | |||
@@ -1781,6 +1873,7 @@ _சொந்த_) ப (ந்த bV | |||
_) ப (ாம்பே b | |||
_ஆடு_) ப (ாம்பே p | |||
_விளையாடு_) ப (ாம்பே p | |||
_ரூம்_) ப (ாய b | |||
_) ப (ாரத b | |||
_) ப (ாரதி b | |||
_) ப (ாரத்த b | |||
@@ -1866,6 +1959,7 @@ _ராகத்தின்_) ப (ாவ b | |||
_) ப (ிசினஸ b | |||
_) ப (ிசிய b | |||
_) ப (ிஜிலி b | |||
_) ப (ிடில f | |||
_) ப (ிட்சு b | |||
_) ப (ிட்டடி b | |||
_) ப (ினாமி b | |||
@@ -1984,6 +2078,8 @@ _ராகத்தின்_) ப (ாவ b | |||
_) ப (ிரித்தானி b | |||
_) பி (ரித்தானி b | |||
_) பிரின்சிப (ால prinsip | |||
_) பிரியங்க (ா prijVNk | |||
_) பி (ரியதர p | |||
_) பி (ரியன p | |||
_) பி (ரியப்பட p | |||
_) பி (ரியம p | |||
@@ -2027,11 +2123,14 @@ _ராகத்தின்_) ப (ாவ b | |||
_) பிள (ைட் fl. | |||
_) பி (ளௌஸ b | |||
_) பிஷப் bis.Vp | |||
_) ப (ிஷ் f | |||
_) ப (ிஸினஸ b | |||
_) ப (ிஸிய b | |||
_) ப (ிஸ்கட் b | |||
_) ப (ிஸ்கெட் b | |||
_) ப (ிஸ்கோத் b | |||
_) ப (ிஸ்மார்க் b | |||
_) ப (ிஸ்மில்லா b | |||
_) ப (ீகார b | |||
_) ப (ீச்சில b | |||
_) ப (ீச்சுக்க b | |||
@@ -2080,6 +2179,7 @@ _பெனசீர்_) ப (ுட்டோ b | |||
_) புரபொ (சர profV | |||
_) பு (ரவுச b | |||
_) ப (ுருடா b | |||
_) பு (ருனாய b | |||
_) புரொப (சர profV | |||
_) புரொபொ (சர profV | |||
_) பு (ரோகித p | |||
@@ -2096,6 +2196,7 @@ _பெனசீர்_) ப (ுட்டோ b | |||
_) ப (ுஸ்ஸெ b | |||
_) ப (ூகம்ப b | |||
_) ப (ூகோல b | |||
_) ப (ூச்சாண்டி b | |||
_) பூட (ான bu:t. | |||
_) ப (ூட்ஸ b | |||
_) ப (ூதகணங்க b | |||
@@ -2133,6 +2234,7 @@ _பெனசீர்_) ப (ுட்டோ b | |||
_) ப (ெண்டாஸ்டிக் f | |||
_) ப (ெதர f | |||
_) ப (ெனசீர b | |||
_) பெப்ப (ே bebb | |||
_) ப (ெப்ரவரி f | |||
_) ப (ெர்னாட்ஷா b | |||
_) ப (ெர்னான்ட f | |||
@@ -2152,6 +2254,9 @@ _பெனசீர்_) ப (ுட்டோ b | |||
_) ப (ேஜார b | |||
_) ப (ேட்டரி b | |||
_) ப (ேட்டா b | |||
_) ப (ேதங் b | |||
_) ப (ேதமி b | |||
_) ப (ேதமு b | |||
_) ப (ேதலித்த b | |||
_) ப (ேதி b | |||
_) ப (ேனர b | |||
@@ -2163,13 +2268,14 @@ _பெனசீர்_) ப (ுட்டோ b | |||
_) ப (ேஷன f | |||
_) ப (ேஷா b | |||
_) ப (ைக்குகள b | |||
_) ப (ைசன b | |||
_) ப (ைபிள b | |||
_) ப (ைரவ b | |||
_) ப (ொம்மன b | |||
_) ப (ொம்மல b | |||
_) ப (ொம்மை b | |||
_) ப (ோஃபோர் b | |||
_) ப (ோக_L11 b | |||
_) ப (ோக_L13 b | |||
_) ப (ோகங்க b | |||
_) ப (ோகத்த b | |||
_) ப (ோகத்திற்க b | |||
@@ -2205,6 +2311,7 @@ _பெனசீர்_) ப (ுட்டோ b | |||
_) ப (ோர்_அடி b | |||
_) ப (ோர்ஜரி f | |||
_) ப (ோர்தான்_அடி b | |||
_) ப (ோர்வெல் b | |||
_) ப (ோஷி b | |||
_சந்திர_) ப (ோஸ b | |||
_) ப (ோஸிட b | |||
@@ -2212,6 +2319,7 @@ _சந்திர_) ப (ோஸ b | |||
_) பௌண்ட (ன faUn.t.V | |||
_) ப (ௌதிக b | |||
_) ப (ௌத்த b | |||
சு) ப்பி (ரமணி b | |||
_) ப் (ரசல்ஸ b | |||
_) ப்ரபொ (சர profV | |||
_) ப் (ரம்ம b | |||
@@ -2223,6 +2331,7 @@ _சந்திர_) ப (ோஸ b | |||
_) ப் (ரான்ஸ f | |||
_) ப் (ராவ b | |||
_) ப்ரிஸ்ப (ேன brisb | |||
_) ப் (ருனாய b | |||
_) ப் (ரெஞ்ச் f | |||
_) ப் (ரெட் b | |||
_) ப்ரெட்ரிக் fred.rik | |||
@@ -2252,11 +2361,14 @@ _சந்திர_) ப (ோஸ b | |||
_பயன்) ப pV | |||
_விகல்) ப pV# | |||
அடால்) ப fV# | |||
_ஷெரீ) ப (+ fV# | |||
_ஸ்தா) ப (+ bV# | |||
பரிதா) ப (+ bV# | |||
அநுதா) ப (+ bV# | |||
அனுதா) ப (+ bV# | |||
பிரஸ்தா) ப (+ bV# | |||
_பச்சாதா) ப (+ bV# | |||
_விரகதா) ப (+ bV# | |||
மனஸ்தா) ப (+ bV# | |||
அல்) ப (_ pV# | |||
நன்) ப (கல pV | |||
@@ -2392,6 +2504,7 @@ _வெளிப்) ப (ாக b | |||
ஜிந்தா) ப (ாத் b | |||
ச) பாபதி ba:pVti | |||
_) பாபவிமோசன pa:bVvimo:tSV | |||
_சாயி) பாப (ா ba:b | |||
_சாய்) பாப (ா ba:b | |||
அ) பாயிண்ட்மெண்ட pa:jin.t.ment.V# | |||
_டீ) ப (ாய் p | |||
@@ -2404,6 +2517,7 @@ _வெளிப்) ப (ாக b | |||
L03தன்) ப (ால p | |||
_ப்ரின்சி) ப (ால p | |||
_சிவ) ப (ாலன b | |||
_கம்) ப (ாலா p | |||
_கா) ப (ாலி b | |||
_டி) பால்ட fa:lt.V# | |||
_நே) ப (ாள p | |||
@@ -2416,7 +2530,9 @@ _ப்ரின்சி) ப (ால p | |||
வீண்) ப (ாவ p | |||
அடி) ப (ாவி p | |||
_நவ) ப (ாஷ p | |||
_தமிழ்ப்) ப (ாஷ _b | |||
வாதா) ப (ி p | |||
_கடா) ப (ி f | |||
சித்தப்) பி(ரமை b | |||
_கன்) ப (ிகர f | |||
வாலி) பிக (ேஷன fik | |||
@@ -2436,6 +2552,7 @@ _ப்ரின்சி) ப (ால p | |||
_முன்) ப (ின்_ p | |||
@) ப (ின்நாலும்_ p | |||
@) ப (ின்னர்_ p | |||
_கன்னா) ப (ின்னா p | |||
@) ப (ின்னால்_ p | |||
_) ப (ிப்ரவரி f | |||
_லெஸ்) ப (ியன b | |||
@@ -2600,16 +2717,25 @@ _மைக்ரோசா) ப் (ட f | |||
உ) ப்ப (ிப் bb | |||
உ) ப்ப (ிய bb | |||
அ) ப்ப (ியாச bb | |||
_சிவ) ப்பி (ரகா pp | |||
_யாதவ) ப்பி (ரகாச pp | |||
அதிக) ப்பி (ரசங்க pp | |||
_நில) ப்பி (ரபு pp | |||
மன) ப்பி (ரமை bb | |||
_பர) ப்பி (ரம்ம pb | |||
_மணி) ப்பி (ரவா pp | |||
L03) ப்பி (ரவாக pp | |||
_நதி) ப்பி (ரவாக pp | |||
அக) ப்பி (ரவாக pp | |||
_ஜல) ப்பி (ரவாக pp | |||
_மன) ப்பி (ரவாக pp | |||
_ரத்த) ப்பி (ரவாக pp | |||
இரத்த) ப்பி (ரவாக pp | |||
_ஒL10ி) ப்பி (ரவாக pp | |||
தேச) ப்பி (ரஷ்ட pp | |||
ஆ) ப்பி (ரிக்க f | |||
தென்னா) ப்பி (ரிக்க fV | |||
_ஹ) ப்ப (ிள bb | |||
_சந்தேக) ப்ப (ுத்தி bb | |||
இ) ப்ப (ூமி bb | |||
_ல) ப்ப (ை bb | |||
@@ -2689,6 +2815,7 @@ _சந்தேக) ப்ப (ுத்தி bb | |||
ம mV | |||
ம (B m | |||
_சL07) மி (ய m | |||
_) மி (யூ m | |||
.group ய | |||
@@ -2733,13 +2860,6 @@ _சந்தேக) ப்ப (ுத்தி bb | |||
_) வி (யா v | |||
வி (யூக v | |||
D_) வ (து_ a:vV | |||
D_) வ (தும்_ a:vV | |||
D_) வ (துமாக_ a:vV | |||
-) வ (து_ a:vV | |||
-) வ (தும்_ a:vV | |||
-) வ (துமாக_ a:vV | |||
.group ஶ | |||
ஶ SV | |||
@@ -2791,6 +2911,7 @@ _சந்தேக) ப்ப (ுத்தி bb | |||
இ (ரத்த | |||
இரப்ப (ர rVbbV | |||
இ (ரயில | |||
இ (ரவீந்திர | |||
இ (ராக | |||
இ (ராச | |||
இ (ராஜ | |||
@@ -2801,6 +2922,7 @@ _சந்தேக) ப்ப (ுத்தி bb | |||
இ (ராதாகி | |||
இ (ராதாவ | |||
இ (ராத்த | |||
இ (ராப்_ | |||
இ (ராப்பிச்சை | |||
இ (ராம | |||
இ (ராமல்_ i | |||
@@ -2809,6 +2931,7 @@ _சந்தேக) ப்ப (ுத்தி bb | |||
இ (ராவுத்த | |||
இ (ராஷ்டிர | |||
இ (லகுவாக | |||
இ (லக்ஷ்மண | |||
இ (லட்சக் | |||
இ (லட்சங் | |||
இ (லட்சண | |||
@@ -2816,9 +2939,11 @@ _சந்தேக) ப்ப (ுத்தி bb | |||
இ (லட்சம | |||
இ (லட்சா | |||
இ (லட்சிய | |||
இ (லட்சுமண | |||
இ (லட்சுமி | |||
இ (லண்டன | |||
இ (லத்தீன | |||
இ (லயி | |||
இ (லவங்க | |||
இ (லாப | |||
இ (லேச |
@@ -1,9 +1,9 @@ | |||
language variant | |||
name female1 | |||
gender female | |||
gender female 70 | |||
pitch 145 200 | |||
flutter 7 | |||
pitch 140 200 | |||
flutter 8 | |||
roughness 4 | |||
formant 0 115 80 150 | |||
formant 1 120 80 180 | |||
@@ -15,4 +15,4 @@ formant 6 105 80 150 | |||
formant 7 110 70 150 | |||
formant 8 110 70 150 | |||
stressAdd -10 -10 -20 -20 0 0 40 70 | |||
stressAdd -10 -10 -20 -20 0 0 40 60 |
@@ -3,7 +3,7 @@ name male1 | |||
gender male 70 | |||
pitch 75 109 | |||
flutter 4 | |||
flutter 5 | |||
roughness 4 | |||
consonants 80 100 | |||
@@ -13,5 +13,4 @@ formant 6 90 50 100 | |||
formant 7 100 50 100 | |||
formant 8 100 50 100 | |||
voicing 155 | |||
fast_test 0 45 75 | |||
@@ -1,5 +1,6 @@ | |||
name english | |||
language en-uk 2 | |||
language en-gb 2 | |||
language en 2 | |||
gender male | |||
@@ -1,6 +1,7 @@ | |||
name lancashire | |||
language en-uk-north | |||
language en-uk 3 | |||
language en 5 | |||
gender male | |||
phonemes en-n |
@@ -1,6 +1,7 @@ | |||
name english_rp | |||
language en-uk-rp | |||
language en-uk 4 | |||
language en 5 | |||
gender male | |||
phonemes en-rp |
@@ -1,6 +1,7 @@ | |||
name en-westindies | |||
language en-wi | |||
language en-uk 4 | |||
language en 10 | |||
gender male | |||
phonemes en-wi |
@@ -1,5 +1,7 @@ | |||
name english_wmids | |||
language en-uk-wmids | |||
language en-uk 9 | |||
language en 9 | |||
gender male | |||
phonemes en-wm |
@@ -1,6 +1,7 @@ | |||
name spanish-latin-american | |||
language es-la | |||
language es-mx 6 | |||
language es 6 | |||
gender male | |||
phonemes es-la |
@@ -1,5 +1,6 @@ | |||
language fr-be | |||
name french (Belgium) | |||
language fr-be | |||
language fr 8 | |||
gender male | |||
dictrules 2 |
@@ -1,9 +1,3 @@ | |||
name hindi-test | |||
name hindi | |||
language hi | |||
gender male | |||
translator hi | |||
phonemes hi | |||
dictionary hi | |||
dictrules 1 |
@@ -1,5 +1,6 @@ | |||
name armenian-west | |||
language hy-west | |||
language hy 8 | |||
gender male | |||
// change consonants for West Armenian pronunciation |
@@ -1,5 +1,5 @@ | |||
name en-german-5 | |||
language en | |||
language en 9 | |||
gender female | |||
pitch 140 220 |
@@ -1,5 +1,5 @@ | |||
name en-greek | |||
language en 7 | |||
language en 9 | |||
gender male | |||
pitch 82 117 |
@@ -1,5 +1,5 @@ | |||
name en-swedish-f | |||
language en | |||
language en 10 | |||
gender female | |||
pitch 140 220 |
@@ -1,5 +1,6 @@ | |||
name portugal | |||
language pt-pt | |||
language pt 6 | |||
gender male | |||
phonemes pt-pt | |||
@@ -1,4 +1,4 @@ | |||
74 phoneme tables | |||
76 phoneme tables | |||
new total | |||
base 107 107 | |||
consonants 10 116 | |||
@@ -17,6 +17,7 @@ consonants 10 116 | |||
jbo 2 114 | |||
nci 3 123 | |||
fi 40 133 | |||
et 47 139 | |||
fr 59 140 | |||
fr-ca 11 140 | |||
hi 57 148 | |||
@@ -31,7 +32,7 @@ consonants 10 116 | |||
cs 7 135 | |||
hr 25 140 | |||
mk 3 141 | |||
sr 14 140 | |||
sr 14 142 | |||
ru 49 137 | |||
bg 14 123 | |||
it 19 127 | |||
@@ -74,6 +75,7 @@ consonants 10 116 | |||
te 16 148 | |||
si 24 154 | |||
tn 27 119 | |||
mt 32 127 | |||
Data file Used by | |||
b/b [b] base | |||
@@ -99,6 +101,8 @@ d/d [d] base | |||
[d[] base | |||
[d] base2 | |||
[d] fi | |||
[d] et | |||
[d^] et | |||
[d] fr | |||
[d] kn | |||
[d] hu | |||
@@ -106,10 +110,13 @@ d/d [d] base | |||
[d;] pl | |||
[d] hr | |||
[d] sq | |||
[d] mt | |||
d/d_ [d] base | |||
[d[] base | |||
[d] base2 | |||
[d] fi | |||
[d] et | |||
[d^] et | |||
[d] fr | |||
[d.] hi | |||
[d] kn | |||
@@ -118,11 +125,14 @@ d/d_ [d] base | |||
[d;] pl | |||
[d] hr | |||
[d] sq | |||
[d] mt | |||
d/d_dnt [d] sr | |||
d/dr [*] base | |||
[d[] base | |||
[d] base2 | |||
[d] fi | |||
[d] et | |||
[d^] et | |||
[d] fr | |||
[d.] hi | |||
[dh.] hi | |||
@@ -132,6 +142,7 @@ d/dr [*] base | |||
[d;] pl | |||
[d] hr | |||
[d] sq | |||
[d] mt | |||
d/tap [*;] ro | |||
d/tap1 [*] base | |||
d/tap2 [t#] en | |||
@@ -143,6 +154,7 @@ d/xd [d] base | |||
[dz] consonants | |||
[d] base2 | |||
[d] fi | |||
[d] et | |||
[d] fr | |||
[z] fr | |||
[dh] hi | |||
@@ -152,8 +164,10 @@ d/xd [d] base | |||
[d] hr | |||
[d] sr | |||
[d] sq | |||
[d] mt | |||
d/xd3 [dh] hi | |||
d/xd_pzd [d;] pl | |||
d/xd_pzd [d^] et | |||
[d;] pl | |||
d/xdr [d] fr | |||
[d.] hi | |||
[dh.] hi | |||
@@ -247,25 +261,37 @@ g/xg [g] base | |||
g/xgr [g] fr | |||
h/h_ [h] base | |||
[h] fi | |||
[h] et | |||
[<h>] la | |||
[h] mt | |||
h/h@ [h] base | |||
[h] fi | |||
[h] sr | |||
[h] et | |||
[h#] sr | |||
[<h>] la | |||
[h] mt | |||
h/ha [h] base | |||
[h] fi | |||
[h] et | |||
[<h>] la | |||
[h] mt | |||
h/he [h] base | |||
[h] fi | |||
[h] et | |||
[<h>] la | |||
[h] mt | |||
h/hi [h] base | |||
[h] fi | |||
[h] et | |||
[<h>] la | |||
[h] mt | |||
h/ho [h] base | |||
[<h>] la | |||
h/hu [h] base | |||
[<h>] la | |||
h/hu_fi [h] fi | |||
[h] et | |||
[h] mt | |||
j2/_j2 [;] base | |||
j2/j2@ [;] base | |||
j2/j2a [;] base | |||
@@ -368,8 +394,8 @@ l/l_ [l] base | |||
[l/] fr | |||
l/l_@ [l/3] base | |||
[l/] fr | |||
l/l@ [l#] base | |||
[”¦] base | |||
l/l@ [hfx] base | |||
[l#] base | |||
[l] fr | |||
[l/2] fr | |||
[K] nso | |||
@@ -402,16 +428,16 @@ l/L2_oL [l/2] base | |||
l/L2_uL [l/2] base | |||
l/l_3 [l/] de | |||
l/l_4 [ll] sq | |||
l/la [l#] base | |||
[”¦] base | |||
l/la [hfx] base | |||
[l#] base | |||
[l] fr | |||
[l/2] fr | |||
[K] nso | |||
[K] tn | |||
l/l_a [l/3] base | |||
[l/] fr | |||
l/le [l#] base | |||
[”¦] base | |||
l/le [hfx] base | |||
[l#] base | |||
[l] fr | |||
[l/2] fr | |||
[K] nso | |||
@@ -422,8 +448,8 @@ l/L_eL_af [&] af | |||
[&:] af | |||
l/l_front [L] sq | |||
l/l_front_ [l/4] sq | |||
l/li [l#] base | |||
[”¦] base | |||
l/li [hfx] base | |||
[l#] base | |||
[l] fr | |||
[l/2] fr | |||
[l] zh | |||
@@ -436,8 +462,8 @@ ll/ll [L] bg | |||
ll/_ll [L] bg | |||
l/l_long [l] base | |||
[l] fr | |||
l/lo [l#] base | |||
[”¦] base | |||
l/lo [hfx] base | |||
[l#] base | |||
[l/2] fr | |||
[K] nso | |||
[K] tn | |||
@@ -446,8 +472,8 @@ l/l_o [l/3] base | |||
l^/l_rfx [l.] base | |||
[l] ru | |||
[l^] ru | |||
l/lu [l#] base | |||
[”¦] base | |||
l/lu [hfx] base | |||
[l#] base | |||
[l] fr | |||
[l/2] fr | |||
[K] nso | |||
@@ -584,9 +610,11 @@ r2/r2u [r-] en | |||
[r-] tn | |||
r3/r_ [r/] base | |||
[r/] af | |||
[r] et | |||
[r/] tn | |||
r3/r#_ [r#] is | |||
r3/r_n [r/] base | |||
[r] et | |||
r3/r_ru [R4] ru | |||
r3/r_ru2 [R4] ru | |||
r3/r_trill [R2] base | |||
@@ -606,8 +634,10 @@ r3/r_trill3.wav [R3] base | |||
[r] af | |||
[r] tn | |||
r3/r_trill_short [R2] fi | |||
[R2] et | |||
r3/r_trill.wav [R2] base | |||
[R2] fi | |||
[R2] et | |||
[R2] lv | |||
[R] pl | |||
[r*] sr | |||
@@ -620,6 +650,7 @@ r3/r_uvl.wav [r"] base | |||
r3/rx [*] base | |||
[r/] base | |||
[r/] af | |||
[r] et | |||
[r/] fr | |||
[R] fr-ca | |||
[x] pt-pt | |||
@@ -684,8 +715,8 @@ r/xr [r] base | |||
ufric/ch [C] base | |||
[J^] base | |||
ufric/ch_ [C] base | |||
ufric/ch_sr [h] sr | |||
[x] sr | |||
ufric/ch_sr [h#] sr | |||
[x#] sr | |||
ufric/f [f] base | |||
[pF] de | |||
[f] fr | |||
@@ -735,6 +766,7 @@ ufric/sh_pzd2 [S] sr | |||
[S;] zh | |||
ufric/sh_rfx [s.] base | |||
[s.] zh | |||
ufric/s_pal [s^] et | |||
ufric/s_pzd [s;] base | |||
[z;] base | |||
[s;] ro | |||
@@ -753,8 +785,8 @@ ufric/x2 [x2] af | |||
ufric/x_hr [x] base | |||
[x] hr | |||
[x] ru | |||
ufric/x_sr [h] sr | |||
[x] sr | |||
ufric/x_sr [h#] sr | |||
[x#] sr | |||
ufric/xx [X] base | |||
[Q"] base | |||
ustop/c [c] base | |||
@@ -775,6 +807,7 @@ ustop/k_asp2 [k#] ka | |||
ustop/ki [k] base | |||
[k] base2 | |||
[c] af | |||
[k] et | |||
[k] fr | |||
[k] lv | |||
[k^] mk | |||
@@ -786,6 +819,7 @@ ustop/ki [k] base | |||
ustop/kl [k] base | |||
[kh] consonants | |||
[k] base2 | |||
[k] et | |||
[k] fr | |||
[k] lv | |||
[k] el | |||
@@ -794,11 +828,13 @@ ustop/kl [k] base | |||
[kh] tn | |||
ustop/kr [k] base | |||
[k] base2 | |||
[k] et | |||
[k] el | |||
[k] zhy | |||
ustop/k_unasp [k] base | |||
[k-] consonants | |||
[k] base2 | |||
[k] et | |||
[k] lv | |||
[k] el | |||
[k] zhy | |||
@@ -869,6 +905,7 @@ ustop/t_dnt [t] base | |||
[t[] base | |||
[t] base2 | |||
[t] en-us | |||
[t] et | |||
[dh] hi | |||
[th] hi | |||
[t] hu | |||
@@ -877,7 +914,9 @@ ustop/t_dnt [t] base | |||
ustop/t_dnt2 [t] base2 | |||
[d] kn | |||
ustop/t_hi [t[] base | |||
[t] et | |||
ustop/t_pzd [c] base | |||
[t^] et | |||
[t;] pl | |||
ustop/tr [t] base | |||
[t] en-us | |||
@@ -956,6 +995,7 @@ vdiph2/i@ [i@] en-n | |||
vdiph2/i@_2 [i@] en-wm | |||
vdiph2/ie [i@] en-wi | |||
[ie] fi | |||
[ie] mt | |||
vdiph2/ie_2 [ie] lv | |||
vdiph2/ii@ [i@] en | |||
[i@3] en | |||
@@ -968,10 +1008,12 @@ vdiph2/iu [iU] base2 | |||
[iu] zhy | |||
vdiph2/iu_2 [iu] fi | |||
[iu] lv | |||
[iu] mt | |||
vdiph2/iu_3 [iu] af | |||
vdiph2/iu_4 [Iu] cy | |||
[Yu] cy | |||
vdiph2/iy [iy] fi | |||
[iy] mt | |||
vdiph2/o@ [o@] af | |||
[u@] zh | |||
vdiph2/oa [Oa] ro | |||
@@ -982,6 +1024,7 @@ vdiph2/o_oo [o@] en-wi | |||
vdiph2/u#@ [U@] en-sc | |||
vdiph2/uaa [uo] lv | |||
vdiph2/uo [uo] fi | |||
[uo] mt | |||
vdiph2/uu@ [U@] en | |||
[U@] en-n | |||
[U@] en-wm | |||
@@ -997,7 +1040,9 @@ vdiph2/yu [yU] nl | |||
[yu] zh | |||
vdiph2/y-y# [yY] fi | |||
[y@] vi | |||
[yY] mt | |||
vdiph/8u [oU] en-us | |||
[8u] et | |||
[ou] zh | |||
vdiph/aae [aI] en-us | |||
vdiph/aai [ai] lv | |||
@@ -1007,10 +1052,12 @@ vdiph/aai [ai] lv | |||
vdiph/aai_2 [AI] af | |||
[AY] cy | |||
vdiph/aai_3 [ai] fi | |||
[ai] mt | |||
vdiph/aau [au] fi | |||
[au] lv | |||
[aU] is | |||
[aU:] is | |||
[au] mt | |||
vdiph/aau_2 [aU] en-wi | |||
[VU] nl | |||
[aU] la | |||
@@ -1083,6 +1130,7 @@ vdiph/eei_2 [eI] eo | |||
[ei] fi | |||
[ei] lv | |||
[eI] id | |||
[ei] mt | |||
vdiph/eei_3 [eI] sk | |||
[eI] ku | |||
vdiph/eeu [EU] pt | |||
@@ -1095,6 +1143,7 @@ vdiph/eeu_3 [aU] en-n | |||
[aU] en-wm | |||
[eU] ku | |||
vdiph/eey [ey] fi | |||
[ey] mt | |||
vdiph/ei [eI] base2 | |||
[e:] nl | |||
[eI] la | |||
@@ -1112,10 +1161,14 @@ vdiph/eu [eU] base2 | |||
[eU] vi | |||
[eU] ne | |||
vdiph/eu_2 [eu] fi | |||
vdiph/@i [@I] vi | |||
[eu] mt | |||
vdiph/@i [Yi] et | |||
[@I] vi | |||
[@:I] vi | |||
vdiph/&i [&i] fi | |||
[&i] et | |||
[aI] hi | |||
[i] mt | |||
vdiph/@i_2 [eI] af | |||
[@I] cy | |||
[@Y] cy | |||
@@ -1144,6 +1197,7 @@ vdiph/ooi [OI] en | |||
[oi] lv | |||
[OI] no | |||
[oi] zhy | |||
[oi] mt | |||
vdiph/ooi_2 [OI] af | |||
[oI] eo | |||
vdiph/ooi_3 [OI] en-rp | |||
@@ -1155,6 +1209,7 @@ vdiph/oou [oU] cs | |||
vdiph/ou [ou] fi | |||
[ou] zhy | |||
[oU] ne | |||
[ou] mt | |||
vdiph/ou_2 [oU] sk | |||
[oU] ro | |||
vdiph/ou_3 [oU] is | |||
@@ -1178,6 +1233,7 @@ vdiph/ui_2 [uI] af | |||
vdiph/ui_3 [uI] cy | |||
[uY] cy | |||
vdiph/ui_4 [ui] fi | |||
[ui] mt | |||
vdiph/Vi [VI] ne | |||
vdiph/Vu [@U] af | |||
[VU] ne | |||
@@ -1185,13 +1241,17 @@ vdiph/Vu_2 [oU] en-wm | |||
vdiph/&y [&y] fi | |||
[Wy] nl | |||
vdiph/yi [yi] fi | |||
[yi] et | |||
[yI] grc | |||
[u-I] no | |||
[yi] zh | |||
[yi] mt | |||
vdiph/y#i [Yi] fi | |||
[Yi] mt | |||
vdiph/y#i_2 [Yy] is | |||
[Yy:] is | |||
vdiph/y#y [Yy] fi | |||
[Yy] mt | |||
vdiph/y#y_2 [Yy] af | |||
[eoi] zhy | |||
vdiph/y#y_3 [Y:] nl | |||
@@ -1248,14 +1308,18 @@ voc/Q_less [Q] nl | |||
voc/Q_ulv [Q"] base | |||
voc/v [v] base | |||
[v] fi | |||
[v] et | |||
[v] fr | |||
[v;] ro | |||
[v] mt | |||
voc/v_ [B] base | |||
[v] base | |||
[v] fi | |||
[v] et | |||
[v] fr | |||
[v#] es | |||
[v;] ro | |||
[v] mt | |||
voc/v# [v#] base | |||
voc/v#_ [v#] base | |||
voc/v2 [v#] es | |||
@@ -1317,6 +1381,8 @@ vowel/@- [@-] base | |||
[r*] hr | |||
vowel/& [a] en-rp | |||
[&] fi | |||
[&] et | |||
[&:] et | |||
[&:] hi | |||
[&] lv | |||
[&:] lv | |||
@@ -1365,11 +1431,13 @@ vowel/@_6 [@] en | |||
[W2] fr | |||
vowel/8 [o-] zh | |||
vowel/8_2 [U] en-us | |||
[8] et | |||
[8] sv | |||
vowel/8_3 [eo] zhy | |||
vowel/8_5 [8] ku | |||
vowel/8_6 [V] sq | |||
vowel/8_7 [@] lv | |||
vowel/8_7 [8:] et | |||
[@] lv | |||
vowel/a [a] base | |||
[a] en | |||
[aa] en | |||
@@ -1481,8 +1549,10 @@ vowel/a_6 [a] ca | |||
[a:] wo | |||
vowel/a_7 [a] en | |||
[a] fr | |||
[a] sk | |||
[a] ht | |||
vowel/aa [A] fr-ca | |||
vowel/aa [a:] et | |||
[A] fr-ca | |||
[A] no | |||
[A:] no | |||
[aa] zhy | |||
@@ -1510,13 +1580,17 @@ vowel/aa_6 [A] de | |||
[A:] de | |||
vowel/aa_8 [0] en-us | |||
[A:] en-us | |||
[A] et | |||
[A1] et | |||
[A] nl | |||
[a:] is | |||
vowel/aa_9 [a] fi | |||
[a] et | |||
[a:] hi | |||
[a] ne | |||
[a] pa | |||
[a] ak | |||
[a] mt | |||
vowel/@_bck [@] hi | |||
[@] bg | |||
[@] zh | |||
@@ -1573,6 +1647,8 @@ vowel/e_3 [i] en-n | |||
vowel/e_5 [i] en-sc | |||
vowel/e_6 [e] ht | |||
[e] ak | |||
vowel/e_7 [e] et | |||
[e:] et | |||
vowel/e_8 [E:] de | |||
[e] fr | |||
vowel/ee [E] en-n | |||
@@ -1603,7 +1679,9 @@ vowel/ee_3 [&] af | |||
[&:] af | |||
[E] pt | |||
[E] vi | |||
vowel/ee_4 [E] sq | |||
vowel/ee_4 [E] et | |||
[E1] et | |||
[E] sq | |||
vowel/ee_5 [E] en | |||
[E] ak | |||
[E] wo | |||
@@ -1665,6 +1743,7 @@ vowel/e_mid2 [E] af | |||
[e] am | |||
[e] te | |||
[e:] si | |||
[e] mt | |||
vowel/@_fnt [@] en-wi | |||
[@2] en-wi | |||
[@2] hr | |||
@@ -1707,11 +1786,14 @@ vowel/i [i] base | |||
vowel/i# [y:] cy | |||
vowel/i_2 [i2] de | |||
[i:] de | |||
[i] et | |||
[i] nl | |||
[i:] la | |||
[i:] sv | |||
vowel/i#_2 [y] am | |||
vowel/i_3 [i] af | |||
[I] et | |||
[I1] et | |||
[i:] sk | |||
vowel/i_4 [i] fi | |||
[i] hu | |||
@@ -1719,6 +1801,7 @@ vowel/i_4 [i] fi | |||
[i:] is | |||
[i] vi | |||
[i] da | |||
[i] mt | |||
vowel/i_5 [i:] en-sc | |||
vowel/i#_5 [y] pt-pt | |||
[i/] pt-pt | |||
@@ -1738,7 +1821,8 @@ vowel/i_6 [i] hi | |||
[i] te | |||
[i] si | |||
vowel/i#_6 [i.] zh | |||
vowel/i_7 [i] pl | |||
vowel/i_7 [i:] et | |||
[i] pl | |||
[i] sq | |||
vowel/i#_7 [i[] zh | |||
vowel/i_8 [i] fr | |||
@@ -1770,6 +1854,7 @@ vowel/ii# [Y] cy | |||
[i] sq | |||
vowel/ii_2 [I] en | |||
[i] zh | |||
[I] mt | |||
vowel/ii#_2 [y] pl | |||
vowel/ii_3 [I] cy | |||
[I] fi | |||
@@ -1785,7 +1870,8 @@ vowel/ii#_3 [I2] en-us | |||
vowel/ii_4 [I2] en | |||
[I] en-us | |||
[I2] tn | |||
vowel/ii_5 [i] ta | |||
vowel/ii_5 [i1] et | |||
[i] ta | |||
[i] bg | |||
[I] la | |||
[i] zh | |||
@@ -1829,6 +1915,7 @@ vowel/o [o] base2 | |||
[oU] en-wi | |||
[o:] de | |||
[o] eo | |||
[o:] et | |||
[o] fr | |||
[o] hi | |||
[o] ta | |||
@@ -1881,6 +1968,9 @@ vowel/oe [W] af | |||
vowel/oe_2 [W] no | |||
vowel/oe_4 [W] sv | |||
vowel/o_mid [U@] en-rp | |||
[O] et | |||
[o] et | |||
[O1] et | |||
[O] fr | |||
[o] hu | |||
[o] bg | |||
@@ -1929,6 +2019,7 @@ vowel/oo_1 [O:] en-n | |||
[o] si | |||
[o:] si | |||
[O] tn | |||
[o] mt | |||
vowel/oo_2 [0] en-sc | |||
[O] cy | |||
[o] cs | |||
@@ -1993,12 +2084,16 @@ vowel/u_2 [u1] fi | |||
[u] am | |||
[u] wo | |||
vowel/u#_2 [u-] sv | |||
vowel/u_3 [u] et | |||
[u:] et | |||
vowel/u#_3 [U] ta | |||
[U:] ta | |||
vowel/u#_4 [U] en-sc | |||
[u:] en-sc | |||
[y] ml | |||
vowel/u_5 [u] sw | |||
vowel/u_5 [U] et | |||
[U1] et | |||
[u] sw | |||
[u] nso | |||
[u] az | |||
[u] tn | |||
@@ -2048,6 +2143,7 @@ vowel/u_bck [u] base2 | |||
[u#] rw | |||
[u] ne | |||
[u] pa | |||
[u] mt | |||
vowel/u_bck2 [u] fr | |||
[u:] fr | |||
[u:] la | |||
@@ -2065,6 +2161,7 @@ vowel/uu_3 [u] af | |||
[y] zh | |||
vowel/uu_4 [U] fi | |||
[U] sv | |||
[U] mt | |||
vowel/uu_bck [U] en-wi | |||
[U] fr-ca | |||
[U] hi | |||
@@ -2097,6 +2194,8 @@ vowel/V_6 [V] en-us | |||
vowel/y [y] base2 | |||
[y:] de | |||
[y] fi | |||
[y] et | |||
[y:] et | |||
[y] fr | |||
[y:] hu | |||
[y] nl | |||
@@ -2105,16 +2204,20 @@ vowel/y [y] base2 | |||
[y] sq | |||
[y] da | |||
[y] az | |||
[y] mt | |||
vowel/y# [Y] base2 | |||
[3:] en-wm | |||
[Y:] de | |||
[Y] fi | |||
[Y] et | |||
[Y:] et | |||
[Y] fr | |||
[Y:] hu | |||
[8] nl | |||
[Y] ro | |||
[oe] zhy | |||
[W] tr | |||
[Y] mt | |||
vowel/y## [y] is | |||
vowel/y_2 [y:] la | |||
[y] zh | |||
@@ -2341,6 +2444,7 @@ x/d_ [d] base | |||
[d[] base | |||
[d] base2 | |||
[d] fi | |||
[d] et | |||
[d] fr | |||
[d.] hi | |||
[d] kn | |||
@@ -2348,13 +2452,17 @@ x/d_ [d] base | |||
[d] hr | |||
[d] is | |||
[d] sq | |||
[d] mt | |||
x/d_dnt [d[] base | |||
[d] base2 | |||
[d] fi | |||
[d] et | |||
[d] kn | |||
[d] hu | |||
[d] pl | |||
x/d_pzd [d;] pl | |||
[d] mt | |||
x/d_pzd [d^] et | |||
[d;] pl | |||
x/dzh [J] base | |||
[dZ] base | |||
x/dzh_ [dZ] base |
@@ -63,7 +63,8 @@ endphoneme | |||
// This is for letter "h" at the beginning of a word | |||
phoneme x | |||
// Use [x] from lang=hr, request by Gašić Dajan 27.06.2011 | |||
phoneme x# | |||
vls vel frc | |||
lengthmod 3 | |||
IF nextPh(#i) OR nextPh(#e) THEN | |||
@@ -76,7 +77,8 @@ endphoneme | |||
// This is for letter "h" not at the beginning of word | |||
phoneme h | |||
// Use standard [h], request by Gašić Dajan 27.06.2011 | |||
phoneme h# | |||
vls vel frc | |||
lengthmod 3 | |||
IF nextPh(#@) THEN |
@@ -31,9 +31,14 @@ phoneme e: | |||
FMT(vowel/e_mid) | |||
endphoneme | |||
phoneme a | |||
vowel starttype #a endtype #a | |||
length 120 | |||
IF thisPh(isWordEnd) AND thisPh(isUnstressed) THEN | |||
FMT(vowel/a_7) | |||
ENDIF | |||
FMT(vowel/a) | |||
endphoneme | |||
@@ -1682,6 +1682,9 @@ include ph_nahuatl | |||
phonemetable fi base | |||
include ph_finnish | |||
phonemetable et base | |||
include ph_estonian | |||
phonemetable fr base | |||
include ph_french | |||
@@ -1874,3 +1877,7 @@ include ph_sinhala | |||
phonemetable tn base | |||
include ph_setswana | |||
phonemetable mt base | |||
include ph_maltese |
@@ -26,6 +26,8 @@ LN_SF = /bin/ln -sf | |||
MKDIR = mkdir -p | |||
AUDIO = portaudio | |||
#AUDIO = portaudio0 | |||
#AUDIO = portaudio2 | |||
#AUDIO = pulseaudio | |||
#AUDIO = sada | |||
@@ -39,6 +41,16 @@ WAVE=wave.cpp | |||
LIB_AUDIO=-lportaudio | |||
USE_AUDIO=-DUSE_PORTAUDIO | |||
else | |||
ifeq ($(AUDIO),portaudio0) | |||
WAVE=wave.cpp | |||
LIB_AUDIO=/usr/lib/libportaudio.so.0 | |||
USE_AUDIO=-DUSE_PORTAUDIO | |||
else | |||
ifeq ($(AUDIO),portaudio2) | |||
WAVE=wave.cpp | |||
LIB_AUDIO=/usr/lib/libportaudio.so.2 | |||
USE_AUDIO=-DUSE_PORTAUDIO | |||
else | |||
ifeq ($(AUDIO),sada) | |||
WAVE=wave_sada.cpp | |||
USE_AUDIO=-DUSE_SADA | |||
@@ -47,6 +59,8 @@ WAVE=wave.cpp | |||
endif | |||
endif | |||
endif | |||
endif | |||
endif | |||
speak_SOURCES = speak.cpp compiledict.cpp dictionary.cpp intonation.cpp \ | |||
readclause.cpp setlengths.cpp numbers.cpp synth_mbrola.cpp \ |
@@ -617,8 +617,8 @@ void GetTranslatedPhonemeString(char *phon_out, int n_phon_out) | |||
*/ | |||
int ix; | |||
int len; | |||
int max_len; | |||
unsigned int len; | |||
unsigned int max_len; | |||
int phon_out_ix=0; | |||
int stress; | |||
unsigned int c; | |||
@@ -2928,7 +2928,7 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor | |||
const char *word_end; | |||
const char *word1; | |||
int wflags = 0; | |||
int wflags2; | |||
// int wflags2; | |||
char word_buf[N_WORD_BYTES+1]; | |||
if(wtab != NULL) | |||
@@ -3497,6 +3497,17 @@ int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy) | |||
if(end_type & SUFX_E) | |||
{ | |||
if(tr->translator_name == L('n','l')) | |||
{ | |||
if(((word_end[0] & 0x80) == 0) && ((word_end[-1] & 0x80) == 0) && IsVowel(tr, word_end[-1]) && IsLetter(tr, word_end[0], LETTERGP_C) && !IsVowel(tr, word_end[-2])) | |||
{ | |||
//double the vowel before the (ascii) final consonant | |||
word_end[1] = word_end[0]; | |||
word_end[0] = word_end[-1]; | |||
word_end[2] = ' '; | |||
} | |||
} | |||
else | |||
if(tr->translator_name == L('e','n')) | |||
{ | |||
// add 'e' to end of stem |
@@ -123,6 +123,7 @@ static void close_pipes(int p1[2], int p2[2], int p3[2]) | |||
static int start_mbrola(const char *voice_path) | |||
{ | |||
int error, p_stdin[2], p_stdout[2], p_stderr[2]; | |||
ssize_t written; | |||
char charbuf[20]; | |||
if (mbr_state != MBR_INACTIVE) { | |||
@@ -151,7 +152,7 @@ static int start_mbrola(const char *voice_path) | |||
dup2(p_stderr[1], 2) == -1) { | |||
snprintf(mbr_errorbuf, sizeof(mbr_errorbuf), | |||
"dup2(): %s\n", strerror(errno)); | |||
write(p_stderr[1], mbr_errorbuf, strlen(mbr_errorbuf)); | |||
written = write(p_stderr[1], mbr_errorbuf, strlen(mbr_errorbuf)); | |||
_exit(1); | |||
} | |||
@@ -168,7 +169,7 @@ static int start_mbrola(const char *voice_path) | |||
/* if execution reaches this point then the exec() failed */ | |||
snprintf(mbr_errorbuf, sizeof(mbr_errorbuf), | |||
"mbrola: %s\n", strerror(errno)); | |||
write(2, mbr_errorbuf, strlen(mbr_errorbuf)); | |||
written = write(2, mbr_errorbuf, strlen(mbr_errorbuf)); | |||
_exit(1); | |||
} | |||
@@ -1590,13 +1590,13 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned | |||
int suffix_ix; | |||
int skipwords = 0; | |||
char *p; | |||
char string[20]; // for looking up entries in **_list | |||
char string[32]; // for looking up entries in **_list | |||
char buf1[100]; | |||
char ph_append[50]; | |||
char ph_buf[200]; | |||
char ph_buf2[50]; | |||
char ph_zeros[50]; | |||
char suffix[20]; | |||
char suffix[30]; // string[] must be long enough for sizeof(suffix)+2 | |||
char buf_digit_lookup[50]; | |||
static const char str_pause[2] = {phonPAUSE_NOLINK,0}; |
@@ -190,9 +190,11 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) | |||
if(regression & 0x2) | |||
{ | |||
// [v] amd [v;] don't cause regression, or [R^] | |||
if((ph->mnemonic == 'v') || (ph->mnemonic == ((';'<<8)+'v')) || ((ph->mnemonic & 0xff)== 'R')) | |||
if(((ph->mnemonic & 0xff) == 'v') || ((ph->mnemonic & 0xff)== 'R')) | |||
{ | |||
stop_propagation = 1; | |||
if(regression & 0x10) | |||
voicing = 0; | |||
} | |||
} | |||
@@ -247,7 +249,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) | |||
// stop propagation at a word boundary | |||
voicing = 0; | |||
} | |||
if(regression & 0x10) | |||
if(regression & 0x100) | |||
{ | |||
// devoice word-final consonants, unless propagating voiced | |||
if(voicing == 0) |
@@ -164,7 +164,7 @@ static const unsigned int punct_attributes [] = { 0, | |||
// frame 0 is for the defaults, before any ssml tags. | |||
typedef struct { | |||
int tag_type; | |||
int voice_variant; | |||
int voice_variant_number; | |||
int voice_gender; | |||
int voice_age; | |||
char voice_name[40]; | |||
@@ -175,6 +175,8 @@ typedef struct { | |||
static int n_ssml_stack; | |||
static SSML_STACK ssml_stack[N_SSML_STACK]; | |||
static espeak_VOICE base_voice; | |||
static char base_voice_variant_name[40] = {0}; | |||
static char current_voice_id[40] = {0}; | |||
@@ -1037,19 +1039,21 @@ static const char *VoiceFromStack() | |||
// Use the voice properties from the SSML stack to choose a voice, and switch | |||
// to that voice if it's not the current voice | |||
int ix; | |||
const char *p; | |||
SSML_STACK *sp; | |||
const char *v_id; | |||
int voice_name_specified; | |||
int voice_found; | |||
espeak_VOICE voice_select; | |||
char voice_name[40]; | |||
static char voice_name[40]; | |||
char language[40]; | |||
char buf[80]; | |||
strcpy(voice_name,ssml_stack[0].voice_name); | |||
strcpy(language,ssml_stack[0].language); | |||
voice_select.age = ssml_stack[0].voice_age; | |||
voice_select.gender = ssml_stack[0].voice_gender; | |||
voice_select.variant = ssml_stack[0].voice_variant; | |||
voice_select.variant = ssml_stack[0].voice_variant_number; | |||
voice_select.identifier = NULL; | |||
for(ix=0; ix<n_ssml_stack; ix++) | |||
@@ -1069,15 +1073,32 @@ static const char *VoiceFromStack() | |||
if(sp->language[0] != 0) | |||
{ | |||
strcpy(language, sp->language); | |||
// is this language provided by the base voice? | |||
p = base_voice.languages; | |||
while(*p++ != 0) | |||
{ | |||
if(strcmp(p, language) == 0) | |||
{ | |||
// yes, change the language to the main language of the base voice | |||
strcpy(language, &base_voice.languages[1]); | |||
break; | |||
} | |||
p += (strlen(p) + 1); | |||
} | |||
if(voice_name_specified == 0) | |||
voice_name[0] = 0; // forget a previous voice name if a language is specified | |||
} | |||
if(sp->voice_gender != 0) | |||
{ | |||
voice_select.gender = sp->voice_gender; | |||
} | |||
if(sp->voice_age != 0) | |||
voice_select.age = sp->voice_age; | |||
if(sp->voice_variant != 0) | |||
voice_select.variant = sp->voice_variant; | |||
if(sp->voice_variant_number != 0) | |||
voice_select.variant = sp->voice_variant_number; | |||
} | |||
voice_select.name = voice_name; | |||
@@ -1085,6 +1106,14 @@ static const char *VoiceFromStack() | |||
v_id = SelectVoice(&voice_select, &voice_found); | |||
if(v_id == NULL) | |||
return("default"); | |||
if((strchr(v_id, '+') == NULL) && ((voice_select.gender == 0) || (voice_select.gender == base_voice.gender)) && (base_voice_variant_name[0] != 0)) | |||
{ | |||
// a voice variant has not been selected, use the original voice variant | |||
sprintf(buf, "%s+%s", v_id, base_voice_variant_name); | |||
strncpy0(voice_name, buf, sizeof(voice_name)); | |||
return(voice_name); | |||
} | |||
return(v_id); | |||
} // end of VoiceFromStack | |||
@@ -1389,8 +1418,8 @@ int AddNameData(const char *name, int wide) | |||
} // end of AddNameData | |||
void SetVoiceStack(espeak_VOICE *v) | |||
{//================================ | |||
void SetVoiceStack(espeak_VOICE *v, const char *variant_name) | |||
{//========================================================== | |||
SSML_STACK *sp; | |||
sp = &ssml_stack[0]; | |||
@@ -1402,10 +1431,12 @@ void SetVoiceStack(espeak_VOICE *v) | |||
if(v->languages != NULL) | |||
strcpy(sp->language,v->languages); | |||
if(v->name != NULL) | |||
strcpy(sp->voice_name,v->name); | |||
sp->voice_variant = v->variant; | |||
strncpy0(sp->voice_name, v->name, sizeof(sp->voice_name)); | |||
sp->voice_variant_number = v->variant; | |||
sp->voice_age = v->age; | |||
sp->voice_gender = v->gender; | |||
strncpy0(base_voice_variant_name, variant_name, sizeof(base_voice_variant_name)); | |||
memcpy(&base_voice, ¤t_voice_selected, sizeof(base_voice)); | |||
} | |||
@@ -1467,7 +1498,7 @@ static int GetVoiceAttributes(wchar_t *pw, int tag_type) | |||
attrcopy_utf8(ssml_sp->language,lang,sizeof(ssml_sp->language)); | |||
attrcopy_utf8(ssml_sp->voice_name,name,sizeof(ssml_sp->voice_name)); | |||
ssml_sp->voice_variant = attrnumber(variant,1,0)-1; | |||
ssml_sp->voice_variant_number = attrnumber(variant,1,0)-1; | |||
ssml_sp->voice_age = attrnumber(age,0,0); | |||
ssml_sp->voice_gender = attrlookup(gender,mnem_gender); | |||
ssml_sp->tag_type = tag_type; | |||
@@ -1647,6 +1678,7 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int &outix, int n_outb | |||
{"reduced",2}, | |||
{"moderate",3}, | |||
{"strong",4}, | |||
{"x-strong",5}, | |||
{NULL,-1}}; | |||
static const char *prosody_attr[5] = { | |||
@@ -1735,14 +1767,16 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int &outix, int n_outb | |||
if(translator->langopts.tone_language == 1) | |||
{ | |||
static unsigned char emphasis_to_pitch_range[] = {50,50,40,70,90,90}; | |||
static unsigned char emphasis_to_volume[] = {100,100,70,110,140,140}; | |||
static unsigned char emphasis_to_pitch_range[] = {50,50,40,70,90,100}; | |||
static unsigned char emphasis_to_volume[] = {100,100,70,110,135,150}; | |||
// tone language (eg.Chinese) do emphasis by increasing the pitch range. | |||
sp->parameter[espeakRANGE] = emphasis_to_pitch_range[value]; | |||
sp->parameter[espeakVOLUME] = emphasis_to_volume[value]; | |||
} | |||
else | |||
{ | |||
static unsigned char emphasis_to_volume2[] = {100,100,75,100,120,150}; | |||
sp->parameter[espeakVOLUME] = emphasis_to_volume2[value]; | |||
sp->parameter[espeakEMPHASIS] = value; | |||
} | |||
ProcessParamStack(outbuf, outix); |
@@ -428,7 +428,7 @@ static int initialise(void) | |||
fprintf(stderr,"Wrong version of espeak-data 0x%x (expects 0x%x) at %s\n",result,version_phdata,path_home); | |||
} | |||
LoadConfig(); | |||
SetVoiceStack(NULL); | |||
SetVoiceStack(NULL, ""); | |||
SynthesizeInit(); | |||
for(param=0; param<N_SPEECH_PARAM; param++) |
@@ -47,7 +47,6 @@ | |||
#include "wave.h" | |||
unsigned char *outbuf=NULL; | |||
extern espeak_VOICE voice_selected; | |||
espeak_EVENT *event_list=NULL; | |||
int event_list_ix=0; | |||
@@ -391,8 +390,8 @@ static int initialise(int control) | |||
fprintf(stderr,"Wrong version of espeak-data 0x%x (expects 0x%x) at %s\n",result,version_phdata,path_home); | |||
} | |||
memset(&voice_selected,0,sizeof(voice_selected)); | |||
SetVoiceStack(NULL); | |||
memset(¤t_voice_selected,0,sizeof(current_voice_selected)); | |||
SetVoiceStack(NULL, ""); | |||
SynthesizeInit(); | |||
InitNamedata(); | |||
@@ -35,7 +35,7 @@ | |||
#include "translate.h" | |||
#include "wave.h" | |||
const char *version_string = "1.45.31 25.Jun.11"; | |||
const char *version_string = "1.45.37 08.Aug.11"; | |||
const int version_phdata = 0x014500; | |||
int option_device_number = -1; |
@@ -342,7 +342,7 @@ Translator *SelectTranslator(const char *name) | |||
static const short stress_lengths_fr[8] = {190, 170, 190, 200, 0, 0, 190, 240}; | |||
static const unsigned char stress_amps_fr[8] = {18,16, 18,18, 18,18, 18,18 }; | |||
static const unsigned char stress_amps_sk[8] = {17,17, 20,20, 20,22, 22,21 }; | |||
static const unsigned char stress_amps_sk[8] = {17,16, 20,20, 20,22, 22,21 }; | |||
static const short stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210}; | |||
static const short stress_lengths_ta[8] = {200, 200, 210, 210, 0, 0, 230, 230}; | |||
@@ -394,7 +394,7 @@ Translator *SelectTranslator(const char *name) | |||
SetCyrillicLetters(tr); | |||
SetLetterVowel(tr,0x2a); | |||
tr->langopts.param[LOPT_UNPRONOUNCABLE] = 0x432; // [v] don't count this character at start of word | |||
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x17; // devoice at end of word, and change voicing to match a following consonant (except v) | |||
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x107; // devoice at end of word, and change voicing to match a following consonant (except v) | |||
tr->langopts.param[LOPT_REDUCE] = 2; | |||
tr->langopts.stress_rule = STRESSPOSN_2R; | |||
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_OMIT_1_HUNDRED | NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_SINGLE_AND | NUM_ROMAN | NUM_ROMAN_ORDINAL | NUM_ROMAN_CAPITALS ; | |||
@@ -468,7 +468,7 @@ Translator *SelectTranslator(const char *name) | |||
tr->langopts.word_gap = 0x8; // don't use linking phonemes | |||
tr->langopts.vowel_pause = 0x30; | |||
tr->langopts.param[LOPT_PREFIXES] = 1; | |||
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x10; // devoice at end of word | |||
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x100; // devoice at end of word | |||
tr->langopts.param[LOPT_LONG_VOWEL_THRESHOLD] = 175/2; | |||
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_SWAP_TENS | NUM_ALLOW_SPACE | NUM_ORDINAL_DOT | NUM_ROMAN; | |||
@@ -954,6 +954,14 @@ SetLengthMods(tr,3); // all equal | |||
} | |||
break; | |||
case L('m','t'): // Maltese | |||
{ | |||
tr->charset_a0 = charsets[3]; // ISO-8859-3 | |||
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x100; // devoice at end of word | |||
tr->langopts.stress_rule = STRESSPOSN_2R; // penultimate | |||
tr->langopts.numbers = 1; | |||
} | |||
break; | |||
case L('n','l'): // Dutch | |||
{ | |||
@@ -963,7 +971,7 @@ SetLengthMods(tr,3); // all equal | |||
tr->langopts.vowel_pause = 0x30; // ?? | |||
tr->langopts.param[LOPT_DIERESES] = 1; | |||
tr->langopts.param[LOPT_PREFIXES] = 1; | |||
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x10; // devoice at end of word | |||
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x100; // devoice at end of word | |||
SetLetterVowel(tr,'y'); | |||
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_SWAP_TENS | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_ALLOW_SPACE | NUM_1900 | NUM_ORDINAL_DOT; | |||
@@ -1005,7 +1013,7 @@ SetLengthMods(tr,3); // all equal | |||
tr->charset_a0 = charsets[2]; // ISO-8859-2 | |||
tr->langopts.stress_rule = STRESSPOSN_2R; | |||
tr->langopts.stress_flags = 0x6; // mark unstressed final syllables as diminished | |||
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x8; | |||
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x9; | |||
tr->langopts.max_initial_consonants = 7; // for example: wchrzczony :) | |||
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_DFRACTION_2; | |||
tr->langopts.numbers2 = 0x40; | |||
@@ -1123,7 +1131,7 @@ SetLengthMods(tr,3); // all equal | |||
tr->charset_a0 = charsets[2]; // ISO-8859-2 | |||
tr->langopts.stress_rule = STRESSPOSN_2R; // Temporary | |||
tr->langopts.stress_flags = 0x20; | |||
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x13; | |||
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x103; | |||
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_SWAP_TENS | NUM_OMIT_1_HUNDRED | NUM_DFRACTION_2 | NUM_ORDINAL_DOT | NUM_ROMAN; | |||
tr->langopts.numbers2 = 0x100; // plural forms of millions etc | |||
tr->langopts.thousands_sep = ' '; // don't allow dot as thousands separator |
@@ -1563,6 +1563,39 @@ static int CountSyllables(unsigned char *phonemes) | |||
} | |||
void Word_EmbeddedCmd() | |||
{//==================== | |||
// Process embedded commands for emphasis, sayas, and break | |||
int embedded_cmd; | |||
int value; | |||
do | |||
{ | |||
embedded_cmd = embedded_list[embedded_read++]; | |||
value = embedded_cmd >> 8; | |||
switch(embedded_cmd & 0x1f) | |||
{ | |||
case EMBED_Y: | |||
option_sayas = value; | |||
break; | |||
case EMBED_F: | |||
option_emphasis = value; | |||
break; | |||
case EMBED_B: | |||
// break command | |||
if(value == 0) | |||
pre_pause = 0; // break=none | |||
else | |||
pre_pause += value; | |||
break; | |||
} | |||
} while(((embedded_cmd & 0x80) == 0) && (embedded_read < embedded_ix)); | |||
} // end of Word_EmbeddedCmd | |||
int SetTranslator2(const char *new_language) | |||
{//========================================= | |||
// Set translator2 to a second language | |||
@@ -1603,8 +1636,6 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa | |||
int next_tone=0; | |||
unsigned char *p; | |||
int srcix; | |||
int embedded_cmd; | |||
int value; | |||
int found_dict_flag; | |||
unsigned char ph_code; | |||
PHONEME_LIST2 *plist2; | |||
@@ -1646,30 +1677,7 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa | |||
{ | |||
embedded_flag = SFLAG_EMBEDDED; | |||
do | |||
{ | |||
embedded_cmd = embedded_list[embedded_read++]; | |||
value = embedded_cmd >> 8; | |||
switch(embedded_cmd & 0x1f) | |||
{ | |||
case EMBED_Y: | |||
option_sayas = value; | |||
break; | |||
case EMBED_F: | |||
option_emphasis = value; | |||
break; | |||
case EMBED_B: | |||
// break command | |||
if(value == 0) | |||
pre_pause = 0; // break=none | |||
else | |||
pre_pause += value; | |||
break; | |||
} | |||
} while((embedded_cmd & 0x80) == 0); | |||
Word_EmbeddedCmd(); | |||
} | |||
if((word[0] == 0) || (word_flags & FLAG_DELETE_WORD)) | |||
@@ -3208,7 +3216,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre | |||
} | |||
} | |||
if((dict_flags & (FLAG_ALLOW_DOT | FLAG_NEEDS_DOT)) && (ix == word_count-1) && (terminator & CLAUSE_DOT)) | |||
if((dict_flags & (FLAG_ALLOW_DOT | FLAG_NEEDS_DOT)) && (ix == word_count - 1 - dictionary_skipwords) && (terminator & CLAUSE_DOT)) | |||
{ | |||
// probably an abbreviation such as Mr. or B. rather than end of sentence | |||
clause_pause = 10; | |||
@@ -3227,6 +3235,12 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre | |||
} | |||
} | |||
if(embedded_read < embedded_ix) | |||
{ | |||
// any embedded commands not yet processed? | |||
Word_EmbeddedCmd(); | |||
} | |||
for(ix=0; ix<2; ix++) | |||
{ | |||
// terminate the clause with 2 PAUSE phonemes |
@@ -266,10 +266,12 @@ extern const int param_defaults[N_SPEECH_PARAM]; | |||
#define LOPT_PREFIXES 3 | |||
// non-zero, change voiced/unoiced to match last consonant in a cluster | |||
// bit 0=use regressive voicing | |||
// bit 1=LANG=cz,bg don't propagate over [v] | |||
// bit 2=don't propagate acress word boundaries | |||
// bit 3=LANG=pl, propagate over liquids and nasals | |||
// bit 4=devoice word-final consonants | |||
// bit 4=LANG=cz,sk don't progagate to [v] | |||
// bit 8=devoice word-final consonants | |||
#define LOPT_REGRESSIVE_VOICING 4 | |||
// 0=default, 1=no check, other allow this character as an extra initial letter (default is 's') | |||
@@ -666,7 +668,7 @@ int TranslateWord(Translator *tr, char *word1, int next_pause, WORD_TAB *wtab); | |||
void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *tone, char **voice_change); | |||
int ReadClause(Translator *tr, FILE *f_in, char *buf, short *charix, int *charix_top, int n_buf, int *tone_type, char *voice_change); | |||
void SetVoiceStack(espeak_VOICE *v); | |||
void SetVoiceStack(espeak_VOICE *v, const char *variant_name); | |||
void InterpretPhoneme(Translator *tr, int control, PHONEME_LIST *plist, PHONEME_DATA *phdata); | |||
void InterpretPhoneme2(int phcode, PHONEME_DATA *phdata); | |||
@@ -69,6 +69,7 @@ typedef struct { | |||
// percentages shown to user, ix=N_PEAKS means ALL peaks | |||
extern USHORT voice_pcnt[N_PEAKS+1][3]; | |||
extern espeak_VOICE current_voice_selected; | |||
extern voice_t *voice; | |||
extern int tone_points[12]; |
@@ -66,7 +66,7 @@ static int n_voices_list = 0; | |||
static espeak_VOICE *voices_list[N_VOICES_LIST]; | |||
static int len_path_voices; | |||
espeak_VOICE voice_selected; | |||
espeak_VOICE current_voice_selected; | |||
enum { | |||
@@ -564,9 +564,9 @@ voice_t *LoadVoice(const char *vname, int control) | |||
int pitch1; | |||
int pitch2; | |||
static char voice_identifier[40]; // file name for voice_selected | |||
static char voice_name[40]; // voice name for voice_selected | |||
static char voice_languages[100]; // list of languages and priorities for voice_selected | |||
static char voice_identifier[40]; // file name for current_voice_selected | |||
static char voice_name[40]; // voice name for current_voice_selected | |||
static char voice_languages[100]; // list of languages and priorities for current_voice_selected | |||
strcpy(voicename,vname); | |||
if(voicename[0]==0) | |||
@@ -635,9 +635,9 @@ voice_t *LoadVoice(const char *vname, int control) | |||
voice_name[0] = 0; | |||
voice_languages[0] = 0; | |||
voice_selected.identifier = voice_identifier; | |||
voice_selected.name = voice_name; | |||
voice_selected.languages = voice_languages; | |||
current_voice_selected.identifier = voice_identifier; | |||
current_voice_selected.name = voice_name; | |||
current_voice_selected.languages = voice_languages; | |||
} | |||
else | |||
{ | |||
@@ -720,11 +720,11 @@ voice_t *LoadVoice(const char *vname, int control) | |||
case V_GENDER: | |||
{ | |||
int age; | |||
int age = 0; | |||
char vgender[80]; | |||
sscanf(p,"%s %d",vgender,&age); | |||
voice_selected.gender = LookupMnem(genders,vgender); | |||
voice_selected.age = age; | |||
current_voice_selected.gender = LookupMnem(genders,vgender); | |||
current_voice_selected.age = age; | |||
} | |||
break; | |||
@@ -1029,23 +1029,26 @@ voice_t *LoadVoice(const char *vname, int control) | |||
} // end of LoadVoice | |||
static char *ExtractVoiceVariantName(char *vname, int variant_num) | |||
{//=============================================================== | |||
static char *ExtractVoiceVariantName(char *vname, int variant_num, int add_dir) | |||
{//=========================================================================== | |||
// Remove any voice variant suffix (name or number) from a voice name | |||
// Returns the voice variant name | |||
char *p; | |||
static char variant_name[20]; | |||
static char variant_name[40]; | |||
char variant_prefix[5]; | |||
variant_name[0] = 0; | |||
sprintf(variant_prefix,"!v%c",PATHSEP); | |||
if(add_dir == 0) | |||
variant_prefix[0] = 0; | |||
if(vname != NULL) | |||
{ | |||
if((p = strchr(vname,'+')) != NULL) | |||
{ | |||
// The voice name has a +variant suffix | |||
variant_num = 0; | |||
*p++ = 0; // delete the suffix from the voice name | |||
if(isdigit(*p)) | |||
{ | |||
@@ -1054,8 +1057,7 @@ static char *ExtractVoiceVariantName(char *vname, int variant_num) | |||
else | |||
{ | |||
// voice variant name, not number | |||
strcpy(variant_name,variant_prefix); | |||
strncpy0(&variant_name[3],p,sizeof(variant_name)-3); | |||
sprintf(variant_name, "%s%s", variant_prefix, p); | |||
} | |||
} | |||
} | |||
@@ -1083,7 +1085,7 @@ voice_t *LoadVoiceVariant(const char *vname, int variant_num) | |||
char buf[60]; | |||
strncpy0(buf,vname,sizeof(buf)); | |||
variant_name = ExtractVoiceVariantName(buf,variant_num); | |||
variant_name = ExtractVoiceVariantName(buf,variant_num, 1); | |||
if((v = LoadVoice(buf,0)) == NULL) | |||
return(NULL); | |||
@@ -1319,15 +1321,17 @@ static int SetVoiceScores(espeak_VOICE *voice_select, espeak_VOICE **voices, int | |||
espeak_VOICE *SelectVoiceByName(espeak_VOICE **voices, const char *name) | |||
{//===================================================================== | |||
espeak_VOICE *SelectVoiceByName(espeak_VOICE **voices, const char *name2) | |||
{//====================================================================== | |||
int ix; | |||
int match_fname = -1; | |||
int match_fname2 = -1; | |||
int match_name = -1; | |||
const char *id; | |||
const char *id; // this is the filename within espeak-data/voices | |||
char *variant_name; | |||
int last_part_len; | |||
char last_part[41]; | |||
char name[40]; | |||
if(voices == NULL) | |||
{ | |||
@@ -1336,6 +1340,13 @@ espeak_VOICE *SelectVoiceByName(espeak_VOICE **voices, const char *name) | |||
voices = voices_list; | |||
} | |||
strncpy0(name, name2, sizeof(name)); | |||
if((variant_name = strchr(name, '+')) != NULL) | |||
{ | |||
*variant_name = 0; | |||
variant_name++; | |||
} | |||
sprintf(last_part,"%c%s",PATHSEP,name); | |||
last_part_len = strlen(last_part); | |||
@@ -1347,14 +1358,17 @@ espeak_VOICE *SelectVoiceByName(espeak_VOICE **voices, const char *name) | |||
break; | |||
} | |||
else | |||
if(strcmp(name,id = voices[ix]->identifier)==0) | |||
{ | |||
match_fname = ix; // matching identifier, use this if no matching name | |||
} | |||
else | |||
if(strcmp(last_part,&id[strlen(id)-last_part_len])==0) | |||
{ | |||
match_fname2 = ix; | |||
id = voices[ix]->identifier; | |||
if(strcmp(name, id)==0) | |||
{ | |||
match_fname = ix; // matching identifier, use this if no matching name | |||
} | |||
else | |||
if(strcmp(last_part,&id[strlen(id)-last_part_len])==0) | |||
{ | |||
match_fname2 = ix; | |||
} | |||
} | |||
} | |||
@@ -1414,7 +1428,7 @@ char const *SelectVoice(espeak_VOICE *voice_select, int *found) | |||
} | |||
strncpy0(buf,voice_select2.name,sizeof(buf)); | |||
variant_name = ExtractVoiceVariantName(buf,0); | |||
variant_name = ExtractVoiceVariantName(buf,0,0); | |||
vp = SelectVoiceByName(voices_list,buf); | |||
if(vp != NULL) | |||
@@ -1425,7 +1439,7 @@ char const *SelectVoice(espeak_VOICE *voice_select, int *found) | |||
{ | |||
if(variant_name[0] != 0) | |||
{ | |||
sprintf(voice_id,"%s+%s",vp->identifier,&variant_name[3]); // omit the !v/ from variant_name | |||
sprintf(voice_id,"%s+%s", vp->identifier, variant_name); | |||
return(voice_id); | |||
} | |||
@@ -1512,8 +1526,8 @@ char const *SelectVoice(espeak_VOICE *voice_select, int *found) | |||
if(vp->variant != 0) | |||
{ | |||
variant_name = ExtractVoiceVariantName(NULL,vp->variant); | |||
sprintf(voice_id,"%s+%s",vp->identifier,&variant_name[3]); | |||
variant_name = ExtractVoiceVariantName(NULL, vp->variant, 0); | |||
sprintf(voice_id,"%s+%s", vp->identifier, variant_name); | |||
return(voice_id); | |||
} | |||
@@ -1671,7 +1685,7 @@ espeak_ERROR SetVoiceByName(const char *name) | |||
static char buf[60]; | |||
strncpy0(buf,name,sizeof(buf)); | |||
variant_name = ExtractVoiceVariantName(buf,0); | |||
variant_name = ExtractVoiceVariantName(buf, 0, 1); | |||
memset(&voice_selector,0,sizeof(voice_selector)); | |||
// voice_selector.name = buf; | |||
@@ -1688,7 +1702,7 @@ espeak_ERROR SetVoiceByName(const char *name) | |||
} | |||
DoVoiceChange(voice); | |||
SetVoiceStack(&voice_selector); | |||
SetVoiceStack(&voice_selector, variant_name); | |||
return(EE_OK); | |||
} | |||
@@ -1704,7 +1718,7 @@ espeak_ERROR SetVoiceByName(const char *name) | |||
LoadVoice(variant_name,2); | |||
} | |||
DoVoiceChange(voice); | |||
SetVoiceStack(&voice_selector); | |||
SetVoiceStack(&voice_selector, variant_name); | |||
return(EE_OK); | |||
} | |||
} | |||
@@ -1725,7 +1739,7 @@ espeak_ERROR SetVoiceByProperties(espeak_VOICE *voice_selector) | |||
LoadVoiceVariant(voice_id,0); | |||
DoVoiceChange(voice); | |||
SetVoiceStack(voice_selector); | |||
SetVoiceStack(voice_selector, ""); | |||
return(EE_OK); | |||
} // end of SetVoiceByProperties | |||
@@ -1795,7 +1809,7 @@ ESPEAK_API const espeak_VOICE **espeak_ListVoices(espeak_VOICE *voice_spec) | |||
ESPEAK_API espeak_VOICE *espeak_GetCurrentVoice(void) | |||
{//================================================== | |||
return(&voice_selected); | |||
return(¤t_voice_selected); | |||
} | |||
#pragma GCC visibility pop |