mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-14 01:32:29 +00:00
Merge branch 'master' into android
This commit is contained in:
+144
-4
@@ -1,7 +1,30 @@
|
||||
|
||||
// Aragon translation rules
|
||||
// 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
|
||||
@@ -31,6 +54,14 @@ z Teta
|
||||
y i $u // word 'and'
|
||||
_y je
|
||||
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
|
||||
@@ -56,7 +87,7 @@ _2X B,int
|
||||
_3X tr'enta
|
||||
_4X kwar'anta
|
||||
_5X Tinkw'anta
|
||||
_6X siks'anta
|
||||
_6X siS'anta
|
||||
_7X set'anta
|
||||
_8X gwit'anta
|
||||
_9X noB'anta
|
||||
@@ -70,16 +101,85 @@ _7C sjEteTj'Entos
|
||||
_8C gwitoTj'Entos
|
||||
_9C nowTj'Entos
|
||||
_0M1 m'il
|
||||
_1M1 m'il
|
||||
_0M2 mil^'ons
|
||||
_1M2 un||mil^'on
|
||||
_0M4 bil^'ons
|
||||
_1M4 un||bil^'on
|
||||
|
||||
_0and i
|
||||
_0and %i
|
||||
_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
|
||||
o $u
|
||||
o $atend
|
||||
a $u
|
||||
a $atend
|
||||
os $u
|
||||
os $atend
|
||||
as $u
|
||||
as $atend
|
||||
|
||||
lo $u
|
||||
la $u
|
||||
los $u
|
||||
@@ -90,4 +190,44 @@ me $u
|
||||
te $u
|
||||
se $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
|
||||
|
||||
+114
-97
@@ -1,8 +1,6 @@
|
||||
|
||||
// Aragon translation rules
|
||||
// This file is UTF-8 encoded
|
||||
|
||||
|
||||
.L01 l r y
|
||||
.L03 f h j s y z r // allow [B] [D] [Q] before these consonants
|
||||
.L04 b v f p // labials, nasals are [m]
|
||||
@@ -10,18 +8,19 @@
|
||||
|
||||
|
||||
.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
|
||||
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 (cY B
|
||||
@@ -33,15 +32,15 @@
|
||||
|
||||
|
||||
.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
|
||||
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 (cY D
|
||||
@@ -51,138 +50,156 @@
|
||||
l) d d
|
||||
r) d d
|
||||
|
||||
n) d (_ = // silent, but stress on last vowel
|
||||
n) d (_ = // silent, but stress on last vowel
|
||||
|
||||
|
||||
.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
|
||||
f f
|
||||
f f
|
||||
|
||||
|
||||
.group 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
|
||||
_) g (A g
|
||||
|
||||
g (A Q
|
||||
g (cY Q
|
||||
g (L03 Q
|
||||
m) 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
|
||||
h // silent
|
||||
h // silent
|
||||
|
||||
|
||||
.group i
|
||||
i i
|
||||
i (A j
|
||||
A) ix S
|
||||
_) ix iS
|
||||
i i
|
||||
i (u i
|
||||
i (A j
|
||||
|
||||
|
||||
.group j
|
||||
j x
|
||||
j x
|
||||
|
||||
|
||||
.group k
|
||||
k k
|
||||
k k
|
||||
|
||||
.group l
|
||||
l l
|
||||
ll l^
|
||||
l l
|
||||
ll l^
|
||||
ll (_ l
|
||||
|
||||
|
||||
.group m
|
||||
m m
|
||||
m m
|
||||
|
||||
|
||||
.group n
|
||||
n n
|
||||
n (L04 m
|
||||
n (_L04 m
|
||||
ny n^
|
||||
n n
|
||||
n (L04 m
|
||||
n (_L04 m
|
||||
ny n^
|
||||
|
||||
|
||||
.group ñ
|
||||
ñ n^
|
||||
ñ n^
|
||||
|
||||
|
||||
.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
|
||||
p p
|
||||
p p
|
||||
_) ps s
|
||||
|
||||
|
||||
.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
|
||||
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
|
||||
s s
|
||||
&) s (_S1 s
|
||||
s s
|
||||
&) s (_S1 s
|
||||
|
||||
|
||||
.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
|
||||
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'
|
||||
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 (cY B
|
||||
@@ -194,26 +211,26 @@
|
||||
|
||||
|
||||
.group w
|
||||
w w
|
||||
w B
|
||||
|
||||
|
||||
.group x
|
||||
x ks
|
||||
_) x S
|
||||
|
||||
x ks
|
||||
_) x S
|
||||
i) x S
|
||||
|
||||
.group y
|
||||
y j
|
||||
|
||||
y j
|
||||
y (_ i
|
||||
|
||||
.group z
|
||||
z T
|
||||
z T
|
||||
|
||||
|
||||
.group
|
||||
á ''a
|
||||
é ''e
|
||||
í ''i
|
||||
ó ''o
|
||||
ú ''u
|
||||
á ''a
|
||||
é ''e
|
||||
í ''i
|
||||
ó ''o
|
||||
ú ''u
|
||||
|
||||
|
||||
+9
-5
@@ -4,13 +4,17 @@
|
||||
|
||||
// words of one letter
|
||||
в $combine
|
||||
а $u $combine
|
||||
а $u $combine
|
||||
е $u
|
||||
й i $u
|
||||
й i $u
|
||||
и $u $pause
|
||||
у $u $combine
|
||||
с $combine
|
||||
г god'ina $hasdot
|
||||
у $u $combine
|
||||
с $combine
|
||||
г god'ina $hasdot
|
||||
|
||||
(а в) %av
|
||||
(а с) %as
|
||||
|
||||
|
||||
// letter names
|
||||
б b@
|
||||
|
||||
+35
-38
@@ -84,7 +84,7 @@ __ b'Onsdrai
|
||||
¢ s'ent
|
||||
¥ j'en:
|
||||
µ my
|
||||
' apostr'Vf // PB o changed to V
|
||||
' apostr'Vf
|
||||
½ en'hal
|
||||
+ plus
|
||||
|
||||
@@ -102,27 +102,27 @@ _9 n'i
|
||||
_10 t'i
|
||||
_11 'Elv@
|
||||
_12 t'Vl
|
||||
_13 tR'?&#d@-n // PB & changed to &#
|
||||
_13 tR'?&#d@-n
|
||||
_14 fj'ord@-n
|
||||
_15 f'Emd@-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
|
||||
_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
|
||||
_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
|
||||
_0M2 milij'o:nV // PB [3] changed to [V]
|
||||
_0M2 milij'o:nV
|
||||
_1M3 'e:n||milij'A:d
|
||||
_0M3 milij'A:d3
|
||||
_1M4 'e:n||bilij'o:n
|
||||
@@ -174,7 +174,7 @@ men $pause // but
|
||||
eller // or
|
||||
mens $pause // while
|
||||
for
|
||||
fordi fVd'i $pause // because - PB: changed stress
|
||||
fordi fVd'i $pause // because
|
||||
når nVr $pause // while
|
||||
der dEr $u+ $u // PB changed from [dA]
|
||||
hvor v'O // where
|
||||
@@ -187,16 +187,15 @@ fra $u+ // from
|
||||
ved $u+ // at
|
||||
om $u+ $brk // about, within
|
||||
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
|
||||
jeg jaj $u+ // I
|
||||
jeg jAj $u+ // I
|
||||
du du $u
|
||||
de $u
|
||||
han $u
|
||||
@@ -205,8 +204,8 @@ det de $u
|
||||
dét de
|
||||
vi vi $u
|
||||
i _i $u+
|
||||
mig maj $u // me
|
||||
dig daj $u+
|
||||
mig mAj $u // me
|
||||
dig dAj $u+
|
||||
dem $u
|
||||
ham $u
|
||||
hende $u
|
||||
@@ -244,7 +243,7 @@ jeres $u+
|
||||
er Er $u // is/are
|
||||
var vAr $u+ // was/were
|
||||
har hAr $u+ // has/have
|
||||
havde h&:D@ $u+ // had
|
||||
havde h&D@ $u+ // had
|
||||
vil $u+ // will
|
||||
skal $u+ // shall
|
||||
kan $u+ // can
|
||||
@@ -360,7 +359,7 @@ window _^_EN
|
||||
word _^_EN
|
||||
warrior _^_EN
|
||||
|
||||
// PB names
|
||||
// Names
|
||||
august OgOsd $capital
|
||||
austin _^_EN
|
||||
bailey _^_EN
|
||||
@@ -381,7 +380,7 @@ piccadilly _^_EN
|
||||
reynolds _^_EN
|
||||
white _^_EN
|
||||
|
||||
// PB French words
|
||||
// French words
|
||||
croquis _^_FR
|
||||
crouton _^_FR
|
||||
jugement _^_FR
|
||||
@@ -389,7 +388,7 @@ monsieur _^_FR
|
||||
madame _^_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
|
||||
apanage $alt
|
||||
arbitrage $alt
|
||||
@@ -448,7 +447,7 @@ takkelage $alt
|
||||
tonnage $alt
|
||||
trikotage $alt
|
||||
|
||||
// PB final -abel - stressed a
|
||||
// Final -abel - stressed a
|
||||
// "el" has been removed in order to make rules for
|
||||
// "konstabel" and the plural "konstabler" without "e"
|
||||
acceptab $alt
|
||||
@@ -691,7 +690,7 @@ substans $alt
|
||||
tolerans $alt
|
||||
varians $alt
|
||||
|
||||
// PB nouns with final -ade - stressed a
|
||||
// Nouns with final -ade - stressed a
|
||||
ambassade $alt
|
||||
arkade $alt
|
||||
ballade $alt
|
||||
@@ -755,7 +754,7 @@ tamponade $alt
|
||||
tirade $alt
|
||||
triade $alt
|
||||
|
||||
// PB nouns and adjectives with final -al - stressed a
|
||||
// Nouns and adjectives with final -al - stressed a
|
||||
admiral $alt
|
||||
adverbial $alt
|
||||
aksial $alt
|
||||
@@ -997,7 +996,7 @@ vokal $alt
|
||||
ækvatorial $alt
|
||||
ødipal $alt
|
||||
|
||||
// PB words with final -ar - stressed a
|
||||
// Words with final -ar - stressed a
|
||||
dokumentar $alt
|
||||
aktuar $alt
|
||||
proletar $alt
|
||||
@@ -1067,7 +1066,7 @@ vegetar $alt
|
||||
velar $alt
|
||||
vokabular $alt
|
||||
|
||||
// PB final -agtig - stressed a
|
||||
// Final -agtig - stressed a
|
||||
barnagtig $alt
|
||||
blødagtig $alt
|
||||
delagtig $alt
|
||||
@@ -1100,7 +1099,7 @@ svinagtig $alt
|
||||
tvivlagtig $alt
|
||||
tyvagtig $alt
|
||||
|
||||
// PB words with final -an - stressed a
|
||||
// Words with final -an - stressed a
|
||||
aeroplan $alt2
|
||||
agraman $alt2
|
||||
altan $alt2
|
||||
@@ -1128,7 +1127,6 @@ filigran $alt2
|
||||
galan $alt2
|
||||
hortulan $alt2
|
||||
human $alt2
|
||||
hvordan vVd'&n $alt
|
||||
inhuman $alt2
|
||||
kapellan $alt2
|
||||
karljohan $alt2
|
||||
@@ -5778,7 +5776,6 @@ adstringer $alt
|
||||
adviser $alt
|
||||
advoker $alt
|
||||
afficer $alt
|
||||
'aflever $alt
|
||||
'afmarcher $alt
|
||||
afrikaniser $alt
|
||||
agere $alt
|
||||
@@ -11195,7 +11192,7 @@ skateboardet sk'eitbo@d3D // PB
|
||||
(secret service) sigred||s'Wvis
|
||||
(happy hour) h&pi||'AuV
|
||||
chevrolet sjEvrol'e
|
||||
saigon sajg3-n // PB Saigon
|
||||
saigon sAjgVn // PB Saigon
|
||||
managua m&n'&:gw&
|
||||
(deja-vu) deSja||'vy
|
||||
(il duce) il||d'u:tSj@ // PB Italian Fascist
|
||||
|
||||
+292
-274
File diff suppressed because it is too large
Load Diff
@@ -3381,6 +3381,7 @@ Amy eImi
|
||||
Andre 0ndreI
|
||||
Andrea andri@
|
||||
Andreas A:ndr'eI@s
|
||||
Angela $1
|
||||
Anita $alt3
|
||||
Anthony ant@ni
|
||||
Anton ant0n
|
||||
|
||||
+3
-1
@@ -3926,10 +3926,12 @@
|
||||
o (blo 0
|
||||
_r) o (bo oU
|
||||
_) o (bs %0
|
||||
?3 _) o (bs %0#
|
||||
_) obs (er %0bz
|
||||
obso (l 0bs@
|
||||
o (bstin 0
|
||||
_) o (bt %0
|
||||
?3 _) o (bt %0#
|
||||
o (by_ oU
|
||||
f) o (cA oU
|
||||
_l) o (cA oU
|
||||
@@ -5862,7 +5864,7 @@
|
||||
_) zs (Y z
|
||||
_) z (wY z
|
||||
|
||||
n) z (_ ts
|
||||
n) z (_N ts
|
||||
@) zales (_ z'A:l@s
|
||||
zei zaI
|
||||
zes (_ zI2z
|
||||
|
||||
+1545
-1545
File diff suppressed because it is too large
Load Diff
+2
-7
@@ -162,7 +162,7 @@ _dpt _d@s@ml'o:_ // ?? what is Hi for "." ?
|
||||
श S@
|
||||
ष s.@ // retroflex [S]
|
||||
स s@
|
||||
ह H@
|
||||
ह H@-
|
||||
क़ q@
|
||||
ख़ x@
|
||||
ग़ Q@
|
||||
@@ -195,12 +195,7 @@ _dpt _d@s@ml'o:_ // ?? what is Hi for "." ?
|
||||
ॐ #X1o~m
|
||||
|
||||
_?? Vks.@r
|
||||
_a ej
|
||||
_b bi:
|
||||
_c si:
|
||||
_d di:
|
||||
_e i:
|
||||
_f Ef
|
||||
|
||||
|
||||
// Punctuation
|
||||
। dVn.d.V
|
||||
|
||||
+1
-1
@@ -346,7 +346,7 @@
|
||||
स (B s
|
||||
|
||||
.group ह
|
||||
ह HV
|
||||
ह H
|
||||
ह (B H
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -26,7 +26,7 @@ p pi:
|
||||
q kju:
|
||||
r a:r
|
||||
s Es
|
||||
t thi:
|
||||
t t#i:
|
||||
u ju:
|
||||
v vi:
|
||||
w dabalju:
|
||||
|
||||
+1
-1
@@ -63,7 +63,7 @@ p pi:
|
||||
q kju:
|
||||
r a:R
|
||||
s Es
|
||||
t ti:
|
||||
t t#i:
|
||||
u ju:
|
||||
v vi:
|
||||
w dVbVlju:
|
||||
|
||||
+17
-4
@@ -662,6 +662,7 @@ arroz $alt2
|
||||
assembleia $alt
|
||||
ateia $alt
|
||||
aterro $alt2 $noun
|
||||
aterros $alt2
|
||||
atmosfera $alt
|
||||
atrozes $alt
|
||||
autora $alt2
|
||||
@@ -716,6 +717,7 @@ chovesse $alt2
|
||||
chupeta $alt2
|
||||
clamores $alt2
|
||||
clero $alt
|
||||
crepe $alt
|
||||
coco $alt2
|
||||
cofre $alt
|
||||
cogumelo $alt
|
||||
@@ -732,6 +734,7 @@ comodo $alt2
|
||||
concerto $alt2 $noun
|
||||
concordo $alt
|
||||
conforto $alt $verb
|
||||
congelo $alt
|
||||
consolo $alt2 $noun
|
||||
controle $alt2 $noun
|
||||
controlo $alt2 $noun
|
||||
@@ -754,11 +757,15 @@ desemprego $alt $verb
|
||||
desespero $alt2 $noun
|
||||
desfecho $alt2
|
||||
desprezo $alt2 $noun
|
||||
desse $alt2
|
||||
desse $alt $verb
|
||||
deste $alt2
|
||||
deste $alt $verb
|
||||
desterro $alt2
|
||||
deveras $alt
|
||||
dez $alt
|
||||
diarreia $alt
|
||||
discordo $alt
|
||||
dissermos $alt
|
||||
dobro $alt2 $noun
|
||||
doce $alt2
|
||||
doutora $alt2
|
||||
@@ -786,6 +793,7 @@ erros $alt2
|
||||
esboço $alt $verb
|
||||
escopeta $alt2
|
||||
escova $alt2 $noun
|
||||
escovo $alt
|
||||
escroto $alt2
|
||||
esforço $alt $verb
|
||||
esforços $alt
|
||||
@@ -820,12 +828,13 @@ folga $alt
|
||||
fogos $alt
|
||||
foguete $alt2
|
||||
foice $alt2
|
||||
fora $alt
|
||||
fora $alt2 $verb
|
||||
forca $alt2
|
||||
força $alt2 $noun
|
||||
forças $alt2
|
||||
forço $alt
|
||||
fordes $alt2
|
||||
fores $alt2
|
||||
fossem $alt2
|
||||
forro $alt $verb
|
||||
fosse $alt2
|
||||
frevo $alt2
|
||||
@@ -853,7 +862,6 @@ hemorroida $alt
|
||||
hoje $alt2
|
||||
horrores $alt2
|
||||
ideia $alt
|
||||
insonoro $alt
|
||||
interesse $alt2 $noun
|
||||
jogo $alt2 $noun
|
||||
joguete $alt2
|
||||
@@ -949,6 +957,7 @@ primavera $alt
|
||||
provo $alt
|
||||
quarteto $alt2
|
||||
queda $alt
|
||||
quede $alt2
|
||||
quinteto $alt2
|
||||
recomeço $alt2 $noun
|
||||
recordo $alt
|
||||
@@ -969,6 +978,8 @@ rocha $alt
|
||||
rock $alt
|
||||
rola $alt2 $noun
|
||||
rolo $alt2 $noun
|
||||
rota $alt2
|
||||
rota $alt $noun
|
||||
rumores $alt2
|
||||
saleta $alt2
|
||||
sarjeta $alt
|
||||
@@ -982,6 +993,7 @@ selvagem seUv'aZeIN
|
||||
sexteto $alt2
|
||||
?1 senhora $alt2
|
||||
senhores $alt2
|
||||
singelo $alt
|
||||
sinopse $alt
|
||||
soco $alt2
|
||||
soco $alt $verb
|
||||
@@ -1019,6 +1031,7 @@ trombeta $alt2
|
||||
tumores $alt2
|
||||
valeta $alt2
|
||||
vanessa $alt2
|
||||
velo $alt
|
||||
velozes $alt
|
||||
verme $alt
|
||||
violeta $alt2
|
||||
|
||||
+27
-10
@@ -359,11 +359,11 @@
|
||||
_perd) e (L05_ e
|
||||
_quis) 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-
|
||||
vend) e (L06_ e // re-
|
||||
_mord) e (L06_ e
|
||||
_rend) e (L06_ e
|
||||
_vend) e (L06_ e
|
||||
prend) e (L06_ e // a- rea- des- desa-
|
||||
_arrepend) e (L06_ e
|
||||
_defend) e (L06_ e
|
||||
@@ -372,6 +372,7 @@ _escond) e (L06_ e
|
||||
preend) e (L06_ e // com- a- re- sur-
|
||||
respond) e (L06_ e // cor-
|
||||
bat) e (L07_ e // re- com-
|
||||
ceb) e (L07_ e // re- per- con-
|
||||
ced) e (L07_ e // pro- con- su-
|
||||
met) e (L07_ e // co- pro- arre- re- intro- compro- sub-
|
||||
mov) e (L07_ e // re- co-
|
||||
@@ -386,6 +387,7 @@ respond) e (L06_ e // cor-
|
||||
tend) e (L07_ e // en- con- a- es-
|
||||
torc) e (L07_ e // con-
|
||||
venc) e (L07_ e // con-
|
||||
vend) e (L07_ e // re-
|
||||
vert) e (L07_ e // in- re- con-
|
||||
volv) e (L07_ e // de- en- re-
|
||||
_eleg) e (L07_ e
|
||||
@@ -399,7 +401,6 @@ respond) e (L06_ e // cor-
|
||||
parec) e (L07_ e // a- rea- com- desa-
|
||||
prend) e (L07_ e // a- rea- des-
|
||||
screv) e (L07_ e // e- in- ree- pre- de-
|
||||
_abastec) e (L07_ e
|
||||
_aborrec) e (L07_ e
|
||||
_absolv) e (L07_ e
|
||||
_adoec) e (L07_ e
|
||||
@@ -417,6 +418,7 @@ _emagrec) e (L07_ e
|
||||
_endurec) e (L07_ e
|
||||
_enlouquec) e (L07_ e
|
||||
_enraivec) e (L07_ e
|
||||
_entorpec) e (L07_ e
|
||||
_entristec) e (L07_ e
|
||||
_envaidec) e (L07_ e
|
||||
_envelhec) e (L07_ e
|
||||
@@ -425,11 +427,13 @@ _escond) e (L07_ e
|
||||
_escurec) e (L07_ e
|
||||
_espairec) e (L07_ e
|
||||
_esquec) e (L07_ e
|
||||
_estremec) e (L07_ e
|
||||
_interromp) e (L07_ e
|
||||
_perec) e (L07_ e
|
||||
_rejuvenec) e (L07_ e
|
||||
_resolv) e (L07_ e
|
||||
_suspend) e (L07_ e
|
||||
abastec) e (L07_ e // re-
|
||||
conhec) e (L07_ e // & re- des-
|
||||
estabelec) e (L07_ e // re-
|
||||
favorec) e (L07_ e // des-
|
||||
@@ -440,6 +444,7 @@ respond) e (L07_ e // cor-
|
||||
qu) e (brL04_ E
|
||||
_hosp) e (dL03_ E
|
||||
_gr) e (gL03_ e
|
||||
_gal) e (gL03_ e
|
||||
_n) e (grL03_ e
|
||||
_estr) ei (L03_ EI
|
||||
_inv) e (jL04_ E
|
||||
@@ -453,16 +458,20 @@ respond) e (L07_ e // cor-
|
||||
_sev) e (rL03_ E
|
||||
_reit) e (rL03_ E
|
||||
_sinc) e (rL03_ E
|
||||
g) e (rL04_ E // su- refri-
|
||||
_g) e (rL04_ E
|
||||
qu) e (rL04_ E // re-
|
||||
_op) e (rL04_ E
|
||||
gen) e (rL04_ E // de- re-
|
||||
_alt) e (rL04_ E
|
||||
_sug) e (rL04_ E
|
||||
_sup) e (rL04_ E
|
||||
_tol) e (rL04_ E
|
||||
_ven) e (rL04_ E
|
||||
acel) e (rL04_ E // des-
|
||||
_coop) e (rL04_ E
|
||||
_temp) e (rL04_ E
|
||||
_recup) e (rL04_ E
|
||||
_refrig) e (rL04_ E
|
||||
_v) e (rbL03_ E
|
||||
_p) e (rdL02_ E
|
||||
_l) e (rdL03_ E
|
||||
@@ -496,17 +505,18 @@ _obsol) e (tL03_ e
|
||||
_d) e (vL03_ e
|
||||
scr) e (vL03_ e // e- in- pre- ree- de-
|
||||
_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
|
||||
_acont) e (çL01_ e
|
||||
_arref) e (çL01_ e
|
||||
_menospr) e (zL04_ E
|
||||
_emagr) e (çL03
|
||||
pr) e (çL03_ e // a-
|
||||
aqu) e (çL03_ e // re-
|
||||
mer) e (çL03_ e // des-
|
||||
pad) e (çL03_ e // com-
|
||||
par) e (çL03_ e // a- re- com- rea- desa-
|
||||
_ado) e (çL03_ e
|
||||
_aqu) e (çL03_ e
|
||||
_car) e (çL03_ e
|
||||
_per) e (çL03_ e_
|
||||
conh) e (çL03_ e // re-
|
||||
@@ -516,10 +526,12 @@ _emagr) e (çL03
|
||||
_ofer) e (çL03_ e
|
||||
abast) e (çL03_ e // re-
|
||||
_aborr) e (çL03_ e
|
||||
_acont) e (çL03_ e
|
||||
_agrad) e (çL03_ e
|
||||
_amanh) e (çL03_ e
|
||||
_amort) e (çL03_ e
|
||||
_anoit) e (çL03_ e
|
||||
_arref) e (çL03_ e
|
||||
_desguarn) e (çL03_ e
|
||||
_desguarnec) e (çL03_ e
|
||||
_enfraqu) e (çL03_ e
|
||||
@@ -825,6 +837,7 @@ estabel) e (çL03_ e // re-
|
||||
?1 v) o (lt O
|
||||
|
||||
//sort
|
||||
_f) o (L06_ o
|
||||
_engl) o (bL01_ O
|
||||
_s) o (bL02_ O
|
||||
_esn) o (bL04_ O
|
||||
@@ -851,6 +864,10 @@ _desabr) o (chL04_ O
|
||||
_ens) o (pL04_ O
|
||||
_s) o (prL04_ O
|
||||
_) o (ptL04_ O
|
||||
_inod) o (rL03_ O
|
||||
_inson) o (rL03_ O
|
||||
_comem) o (rL04 O
|
||||
_remem) o (rL04_ O
|
||||
_enf) o (rquL02_ O
|
||||
c) o (rrL01_ o // escorra, incorra, corra, recorra
|
||||
_m) o (rrL01_ o
|
||||
@@ -858,6 +875,7 @@ _desabr) o (chL04_ O
|
||||
_r) o (snL04_ O
|
||||
_c) o (spL02_ O
|
||||
p) ostos (_ Ost=Us# // dispostos etc.
|
||||
_gar) o (tL03_ o
|
||||
_g) o (zL04_ O
|
||||
_ad) o (çL03_ O
|
||||
_end) o (çL03_ O
|
||||
@@ -935,10 +953,9 @@ _desabr) o (chL04_ O
|
||||
r (C *@-
|
||||
A) r (A *
|
||||
A) r (_A *
|
||||
rr rx
|
||||
rr x
|
||||
XC) r (A R
|
||||
C) r (A *
|
||||
//?1 C) r (A r
|
||||
_) r x
|
||||
l) r x
|
||||
n) r (+ x
|
||||
|
||||
+4
-4
@@ -49,7 +49,7 @@ U+bcd ot.RU
|
||||
|
||||
|
||||
// speak Latin letters as English
|
||||
a e:j
|
||||
a e:j $atend
|
||||
b bi:
|
||||
c si:
|
||||
d di:
|
||||
@@ -57,7 +57,7 @@ e i:
|
||||
f Ef
|
||||
g dZi:
|
||||
h e:tS
|
||||
i a:j
|
||||
i a:j $atend
|
||||
j dZe:j
|
||||
k ke:j
|
||||
l El
|
||||
@@ -68,7 +68,7 @@ p pi:
|
||||
q kju:
|
||||
r a:R
|
||||
s Es
|
||||
t thi:
|
||||
t t#i:
|
||||
u ju:
|
||||
v vi:
|
||||
w dVbVlju:
|
||||
@@ -540,7 +540,7 @@ tamil தமிழ் $text
|
||||
கிர் $alt
|
||||
கங்க $alt
|
||||
காந்த $alt
|
||||
|
||||
கேம் $alt
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -334,6 +334,7 @@
|
||||
_) கி (ளாமர g
|
||||
_) கி (ளாஸ்_ g
|
||||
_) கி (ளாஸ்_மேட k
|
||||
_) கிளாஸ்க (ோ gl.a:sg
|
||||
_) கிளிக் (_L29 kl.ik
|
||||
_) கிளிட kl.it.V#
|
||||
_) கிளிண்ட (ன klint.V
|
||||
@@ -483,6 +484,7 @@ _மன்மதக்) க (ுகை g
|
||||
_) க (ேட்டைக் g
|
||||
_) க (ேட்டைத் g
|
||||
_) க (ேட்டைப் g
|
||||
_) க (ேமை g
|
||||
_) க (ேம்ஸ g
|
||||
_) கேரண்ட ge:rVn.t.V#
|
||||
_) க (ேலரி g
|
||||
@@ -667,6 +669,7 @@ _ஹன்L04ி) க (ா k
|
||||
அ) க (ாடமி k
|
||||
_நேர்) க (ாணல k
|
||||
_கண்) க (ாணா k
|
||||
_கர்ம) க (ாண்ட g
|
||||
உத்திரா) க (ாண்ட k
|
||||
_ராம) க (ாதை k
|
||||
இராம) க (ாதை k
|
||||
@@ -947,6 +950,7 @@ _துப்பாக்கி) க்க (ுண்ட gg
|
||||
_ப) சக் tSVk
|
||||
_) ச (க்கரவர்த்தி tSV
|
||||
_) ச (க்கிலி tSV
|
||||
_) சக் (ரவர்த்தி tSVk
|
||||
_க) ச (க்ஸ்தான zV
|
||||
சங்க (ர s.VNkV
|
||||
_) ச (ட்டL08ஸ்கர tSV
|
||||
@@ -1054,11 +1058,16 @@ _தணிகா) ச (ல tSV
|
||||
_வரதா) ச (ாரி tS
|
||||
_வேதா) ச (ாரி tS
|
||||
_கிருஷ்ணமா) ச (ாரி tS
|
||||
_கோபால) ச (ாரி tS
|
||||
_சங்கரா) ச (ாரி tS
|
||||
_தேசிகா) ச (ாரி tS
|
||||
_பட்டா) ச (ாரி tS
|
||||
_பிரம்ம) ச (ாரி tS
|
||||
_மத்வா) ச (ாரி tS
|
||||
அனந்தா) ச (ாரி tS
|
||||
அன்னமா) ச (ாரி tS
|
||||
ராஜகோபால) ச (ாரி tS
|
||||
ராமானுஜா) ச (ாரி tS
|
||||
ஆ) ச (ாரிய_ tS
|
||||
ஆ) ச (ாரியார tS
|
||||
அ) ச (ாருதீன z
|
||||
@@ -2157,6 +2166,7 @@ _ஸ்வர்ணல) த (ா t
|
||||
_மால) த (ி t
|
||||
_ரேவ) த (ி t
|
||||
_வசந்) த (ி t
|
||||
அவந்) த (ி t
|
||||
வாசந்) த (ி t
|
||||
_கோம) த (ி t
|
||||
ஜெயந்) த (ி t
|
||||
@@ -2594,6 +2604,10 @@ _டீயும்_) ப (ன்னும்_ bV
|
||||
_) ப (ாகீரதி b
|
||||
_) ப (ாக்கிக் b
|
||||
_) ப (ாக்கிய b
|
||||
_) ப (ாக்டரி_ f
|
||||
_) ப (ாக்டரியா b
|
||||
_) ப (ாக்டரியி f
|
||||
_) ப (ாக்டரியை f
|
||||
_) பாக்ட (ீரியா ba:kt.
|
||||
_) பாக்த (ாத ba:gd
|
||||
_) ப (ாக்ய b
|
||||
@@ -2790,6 +2804,7 @@ _விளையாடு_) ப (ாம்பே p
|
||||
_) ப (ாவேய b
|
||||
_) ப (ாவ்நகர b
|
||||
_) ப (ாஷாக்கள b
|
||||
_) ப (ாஷாபிமான b
|
||||
_) ப (ாஷாவ b
|
||||
_) ப (ாஷிய b
|
||||
_) ப (ாஷை b
|
||||
@@ -2939,6 +2954,7 @@ _விளையாடு_) ப (ாம்பே p
|
||||
_) பி (ராதித் p
|
||||
_) பி (ராத்தல b
|
||||
_) பி (ராந்தி_ b
|
||||
_) பி (ராந்திய_ p
|
||||
_) பி (ராந்தியங் p
|
||||
_) பி (ராந்தியத் p
|
||||
_) பி (ராந்தியம்_ p
|
||||
@@ -2978,8 +2994,10 @@ _விளையாடு_) ப (ாம்பே p
|
||||
_) பி (ரித்தானி b
|
||||
_) பிரின்சிப (ால prinsip
|
||||
_) பி (ரிமிய p
|
||||
_) பி (ரியங்கள p
|
||||
_) பிரியங்க (ா prijVNk
|
||||
_) பி (ரியதர p
|
||||
_) பி (ரியத்த p
|
||||
_) பி (ரியன p
|
||||
_) பி (ரியப்பட p
|
||||
_) பி (ரியம p
|
||||
@@ -3315,6 +3333,7 @@ _பெனசீர்_) ப (ுட்டோ b
|
||||
_) ப (ோதகன b
|
||||
_) ப (ோதகர b
|
||||
_) ப (ோதன b
|
||||
_) ப (ோதம b
|
||||
_) ப (ோதிக்க b
|
||||
_) ப (ோதிசத் b
|
||||
_) ப (ோதிசத்வ b
|
||||
@@ -3349,6 +3368,8 @@ _பெனசீர்_) ப (ுட்டோ b
|
||||
_) ப (ோர்_அடி b
|
||||
_) ப (ோர்ஜரி f
|
||||
_) ப (ோர்டL31 b
|
||||
_) ப (ோர்டு b
|
||||
_) ப (ோர்ட்டிகோ p
|
||||
_) ப (ோர்தான்_அடி b
|
||||
_) ப (ோர்மேன f
|
||||
_) ப (ோர்வெல் b
|
||||
@@ -3547,6 +3568,7 @@ _ஜெனி) ப (ர fV
|
||||
ஆ) ப (ரேஷன pV
|
||||
_கார்) ப (ரேஷன pV
|
||||
_பம்) ப (ர்_ pV
|
||||
அ) ப (ர்ணா pV
|
||||
_கன்) ப (ர்ம fV
|
||||
இன்) ப (ர்ம fV
|
||||
கரம்) ப (ற் pV
|
||||
@@ -3659,6 +3681,7 @@ _பிளாட்) ப (ார f
|
||||
இம்) ப (ால f
|
||||
இரு) ப (ால p
|
||||
ஒரு) ப (ால p
|
||||
_தங்க) ப (ால b
|
||||
ஆண்) ப (ால p
|
||||
_பெண்) ப (ால p
|
||||
L03தன்) ப (ால p
|
||||
@@ -4032,6 +4055,7 @@ _சந்தேக) ப்ப (ுத்தி bb
|
||||
கம்) ப்யூட (ர pjU:t.V
|
||||
_பெர்) ப் (யூம f
|
||||
_யூ) ப்ரட (ீஸ frVt.
|
||||
_சு) ப் (ரியா p
|
||||
_ஸ்ரீ) ப் (ரியா p
|
||||
_சு) ப் (ரீம p
|
||||
_) ப் (ரீயா f
|
||||
@@ -4218,6 +4242,7 @@ _சந்தேக) ப்ப (ுத்தி bb
|
||||
இ (ரதத்த
|
||||
இ (ரதம
|
||||
இ (ரத்த
|
||||
இ (ரபீந்திர
|
||||
இரப்ப (ர rVbbV
|
||||
இ (ரமண
|
||||
இ (ரம்மிய
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ p pi:
|
||||
q kju:
|
||||
r a:r
|
||||
s Es
|
||||
t thi:
|
||||
t t#i:
|
||||
u ju:
|
||||
v vi:
|
||||
w dVbVlju:
|
||||
|
||||
+4
-4
@@ -77,7 +77,7 @@ ỵ ỵ
|
||||
//================================
|
||||
// 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
|
||||
|
||||
|
||||
@@ -460,7 +460,7 @@ ỵ ỵ
|
||||
|
||||
.group i
|
||||
i i
|
||||
i (A j
|
||||
//i (A j
|
||||
ia i@
|
||||
ià i@2
|
||||
iá i@3
|
||||
@@ -822,7 +822,7 @@ ỵ ỵ
|
||||
|
||||
.group y
|
||||
y i
|
||||
y (A j
|
||||
// y (A j
|
||||
ya i@
|
||||
yà i@2
|
||||
yá i@3
|
||||
@@ -837,7 +837,7 @@ ỵ ỵ
|
||||
yệ i@6
|
||||
// yêu i@U
|
||||
|
||||
|
||||
y (L01 _^_EN
|
||||
|
||||
.group ỳ
|
||||
ỳ i2
|
||||
|
||||
+5
-6
@@ -24,8 +24,8 @@ Phoneme mnemonics can be used directly in the text input to <strong>espeak</stro
|
||||
<table>
|
||||
<tbody valign=top>
|
||||
<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>
|
||||
<td><code>[t]</code><td>
|
||||
<td><code>[d]</code><td>
|
||||
@@ -92,7 +92,7 @@ In rhotic accents, such as General American, the phonemes <code>[3:], [A@], [e@]
|
||||
<table>
|
||||
<tbody valign=top>
|
||||
<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>
|
||||
<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.
|
||||
@@ -105,7 +105,7 @@ In rhotic accents, such as General American, the phonemes <code>[3:], [A@], [e@]
|
||||
|
||||
<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>[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>st<b>ar</b>t
|
||||
<tr><td><p>
|
||||
@@ -161,8 +161,7 @@ Other languages will have their own vowel definitions, eg:
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<p>
|
||||
<code> [:] </code> can be used to lengthen a vowel, eg <code> [e:]</code>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Binary file not shown.
+53
-62
@@ -45,14 +45,14 @@ endphoneme
|
||||
|
||||
phoneme i
|
||||
vowel starttype #i endtype #i
|
||||
length 90 //150
|
||||
length 95 //150
|
||||
// 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
|
||||
ENDIF
|
||||
// "gider" TEST
|
||||
// "gider", vrider"
|
||||
IF nextPhW(D) AND next2PhW(V) OR next2PhW(?V) THEN
|
||||
length 90
|
||||
length 95
|
||||
ENDIF
|
||||
// PB long vowel followed by certain vowels - "pigen" [p'i@-n]
|
||||
IF nextPhW(#@) OR nextPhW(#e) THEN
|
||||
@@ -69,7 +69,7 @@ IF thisPh(isWordEnd) THEN
|
||||
ENDIF
|
||||
// "vilje" - short followed by 2 consonants
|
||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
|
||||
length 90
|
||||
length 95
|
||||
ENDIF
|
||||
// PB "tie", "stige", "krige" vowel + vowel: extra length
|
||||
// What is causing this very short [i] in words with final [@-]?
|
||||
@@ -99,14 +99,14 @@ endphoneme
|
||||
|
||||
phoneme e
|
||||
vowel starttype #e endtype #e
|
||||
length 90 //150
|
||||
length 95 //150
|
||||
// "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
|
||||
ENDIF
|
||||
// PB "ring", "ringe"
|
||||
IF nextPhW(N) THEN
|
||||
length 90
|
||||
length 95
|
||||
ENDIF
|
||||
// PB "enig", "enige", "evig"
|
||||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN
|
||||
@@ -118,7 +118,7 @@ IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN
|
||||
ENDIF
|
||||
// "nedladende" [n'eDl&D@-n@-] - before 2 consonants: short
|
||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
|
||||
length 90
|
||||
length 95
|
||||
ENDIF
|
||||
FMT(vowel/e)
|
||||
endphoneme
|
||||
@@ -133,14 +133,14 @@ endphoneme
|
||||
|
||||
phoneme E
|
||||
vowel starttype #e endtype #e
|
||||
length 90 //150
|
||||
length 100 //150
|
||||
// "værelse", "breve"
|
||||
IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(@-) THEN
|
||||
// length 150
|
||||
ENDIF
|
||||
// "ræve"
|
||||
IF nextVowel(#@) OR nextVowel(#e) THEN
|
||||
length 150
|
||||
length 160
|
||||
ENDIF
|
||||
// "ære", "kærester", "ærefrygt" - longer E
|
||||
IF nextPhW(V) THEN
|
||||
@@ -148,23 +148,23 @@ IF nextPhW(V) THEN
|
||||
ENDIF
|
||||
// Only the letter "æ" - long
|
||||
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN
|
||||
length 150
|
||||
length 160
|
||||
ENDIF
|
||||
// "stædig" [st'EDi] long
|
||||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN
|
||||
length 150
|
||||
length 160
|
||||
ENDIF
|
||||
// "længe" - short - 2 consonants => 1 consonant
|
||||
IF nextPhW(N) THEN
|
||||
length 90
|
||||
length 120
|
||||
ENDIF
|
||||
// "værelse" [v'E3-Vls@_!]
|
||||
IF nextPhW(3-) AND next2PhW(V) THEN
|
||||
length 90
|
||||
length 120
|
||||
ENDIF
|
||||
// "mælkebøtte" - short followed by 2 consonants
|
||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
|
||||
length 90
|
||||
length 120
|
||||
ENDIF
|
||||
FMT(vowel/e_mid2)
|
||||
endphoneme
|
||||
@@ -173,12 +173,8 @@ endphoneme
|
||||
// "læsse" vs. "læse"
|
||||
phoneme ?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)
|
||||
endphoneme
|
||||
|
||||
@@ -193,7 +189,7 @@ ENDIF
|
||||
// ThisPh + gooup #e or group #@
|
||||
// "ae", "aer" vowel + vowel: extra length
|
||||
IF nextPhW(#@) OR nextPhW(#e) THEN
|
||||
length 240
|
||||
length 220
|
||||
ENDIF
|
||||
// This vowel is word end - longer because it sounds too short
|
||||
// "ja", "Omaha"
|
||||
@@ -278,6 +274,10 @@ ENDIF
|
||||
// "bange" [bAN@-] - [N] = 2 consonants (ng) => short
|
||||
IF nextPhW(N) THEN
|
||||
length 90
|
||||
ENDIF
|
||||
// "fare" [f'A:A]
|
||||
IF nextPhW(A) THEN
|
||||
length 150
|
||||
ENDIF
|
||||
FMT(vowel/a_8)
|
||||
endphoneme
|
||||
@@ -297,27 +297,21 @@ endphoneme
|
||||
phoneme u
|
||||
vowel starttype #u endtype #u
|
||||
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
|
||||
length 150
|
||||
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
|
||||
length 180
|
||||
ENDIF
|
||||
// Only "u"
|
||||
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN
|
||||
length 150
|
||||
ENDIF
|
||||
// "fugl" [ful] - a bit longer
|
||||
IF nextPhW(isWordEnd) THEN
|
||||
length 120
|
||||
ENDIF
|
||||
FMT(vowel/u_bck)
|
||||
endphoneme
|
||||
@@ -332,20 +326,13 @@ endphoneme
|
||||
|
||||
phoneme 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
|
||||
ENDIF
|
||||
// "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
|
||||
ENDIF
|
||||
FMT(vowel/o_2)
|
||||
@@ -362,7 +349,7 @@ endphoneme
|
||||
phoneme O
|
||||
vowel starttype #o endtype #o
|
||||
length 90 // 150
|
||||
// PB "sove", "sover" - consonant + #e or #@: long
|
||||
// "sove", "sover" - consonant + #e or #@: long
|
||||
IF next2PhW(#@) OR next2PhW(#e) THEN
|
||||
length 150
|
||||
ENDIF
|
||||
@@ -377,7 +364,7 @@ ENDIF
|
||||
FMT(vowel/o_5)
|
||||
endphoneme
|
||||
|
||||
// PB Experimental glottal O
|
||||
// Short O
|
||||
// "toget" vs. "tåget"
|
||||
phoneme ?O
|
||||
vowel starttype #o endtype #o
|
||||
@@ -400,13 +387,17 @@ ENDIF
|
||||
IF nextPhW(isNotVowel) AND next2Ph(V) THEN
|
||||
length 90
|
||||
ENDIF
|
||||
// PB "snorke", "snorker", årlig
|
||||
// "snorke", "snorker", årlig
|
||||
IF next2PhW(3) OR next2PhW(V) OR next2PhW(@) OR next2PhW(i) THEN
|
||||
length 180
|
||||
ENDIF
|
||||
// "sove" [sVw3] - longer followed by w + 3
|
||||
IF nextPhW(w) AND next2PhW(3) THEN
|
||||
length 220
|
||||
ENDIF
|
||||
// PB "konge"
|
||||
IF nextPhW(N) THEN
|
||||
length 95
|
||||
ENDIF
|
||||
FMT(vowel/V_4)
|
||||
endphoneme
|
||||
@@ -415,7 +406,7 @@ endphoneme
|
||||
// "forstår" vs. "kåre"
|
||||
phoneme ?V
|
||||
vowel starttype #@ endtype #@
|
||||
length 100
|
||||
length 90
|
||||
FMT(vowel/V_4)
|
||||
endphoneme
|
||||
|
||||
@@ -432,7 +423,7 @@ ENDIF
|
||||
FMT(vowel/oo_2)
|
||||
endphoneme
|
||||
|
||||
// ?B short 0 "sukker"
|
||||
// Short 0 "sukker"
|
||||
phoneme ?0
|
||||
vowel starttype #o endtype #o
|
||||
length 90
|
||||
@@ -492,8 +483,8 @@ endphoneme
|
||||
|
||||
phoneme W
|
||||
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
|
||||
length 220
|
||||
ENDIF
|
||||
@@ -501,8 +492,8 @@ ENDIF
|
||||
IF next2PhW(#@) OR next2PhW(#e) THEN
|
||||
length 160
|
||||
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
|
||||
ENDIF
|
||||
// PB "nødig", "nødigt", "kølige"
|
||||
@@ -520,7 +511,7 @@ ENDIF
|
||||
FMT(vowel/oe)
|
||||
endphoneme
|
||||
|
||||
// PB short W
|
||||
// Short W
|
||||
// "prøv" vs. "prøve"
|
||||
phoneme ?W
|
||||
vowel starttype #@ endtype #@
|
||||
@@ -528,7 +519,7 @@ phoneme ?W
|
||||
FMT(vowel/oe)
|
||||
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#
|
||||
vowel starttype #@ endtype #@
|
||||
length 90 //150
|
||||
@@ -543,12 +534,12 @@ ENDIF
|
||||
FMT(vowel/V)
|
||||
endphoneme
|
||||
|
||||
// PB short W#
|
||||
// Short W#
|
||||
// "rømme"
|
||||
phoneme ?W#
|
||||
vowel starttype #@ endtype #@
|
||||
length 90
|
||||
FMT(vowel/V)
|
||||
FMT(vowel/V)
|
||||
endphoneme
|
||||
|
||||
phoneme aI
|
||||
@@ -594,10 +585,10 @@ phoneme l/3 // Replacement for [l/]
|
||||
|
||||
PrevVowelEndings
|
||||
VowelEnding(l/l_@)
|
||||
VowelEnding(l/l_a)
|
||||
VowelEnding(l/l_a,-70) // kvalt, kapital
|
||||
VowelEnding(l/l_e, -40)
|
||||
VowelEnding(l/l_i, -70)
|
||||
VowelEnding(l/l_o)
|
||||
VowelEnding(l/l_o,-70) // stole, skole, pistol
|
||||
VowelEnding(l/l_u, -70)
|
||||
EndSwitch
|
||||
|
||||
@@ -694,7 +685,7 @@ phoneme j
|
||||
VowelStart(j/ja)
|
||||
VowelStart(j/je,-35)
|
||||
VowelStart(j/ji)
|
||||
VowelStart(j/jo)
|
||||
VowelStart(j/jo,-65) // "kjole"
|
||||
VowelStart(j/ju)
|
||||
EndSwitch
|
||||
Vowelout len=70
|
||||
|
||||
@@ -145,6 +145,9 @@ phoneme @2 // Schwa, changes to I before a vowel
|
||||
IF nextPh(isVowel) THEN
|
||||
ChangePhoneme(I2)
|
||||
ENDIF
|
||||
IF nextPh(isVowel) THEN
|
||||
FMT(vowel/ii_4)
|
||||
ENDIF
|
||||
FMT(vowel/@)
|
||||
endphoneme
|
||||
|
||||
|
||||
+2
-4
@@ -33,14 +33,12 @@ phoneme V
|
||||
ChangePhoneme(NULL)
|
||||
ENDIF
|
||||
|
||||
IF nextVowel(isFlag1) THEN
|
||||
ELSE
|
||||
IF NOT nextVowel(isFlag1) THEN
|
||||
IF thisPh(isSeqFlag1) THEN
|
||||
// delete the last inherent vowel of a sequence
|
||||
ChangePhoneme(NULL)
|
||||
ELSE
|
||||
IF thisPh(isFirstVowel) THEN
|
||||
ELSE
|
||||
IF NOT thisPh(isFirstVowel) THEN
|
||||
// delete if not the first vowel, and is an isolated 'a'
|
||||
ChangePhoneme(NULL)
|
||||
ENDIF
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 28 KiB |
@@ -36,6 +36,7 @@
|
||||
#define NO_VARIADIC_MACROS
|
||||
#define INCLUDE_KLATT
|
||||
#define INCLUDE_MBROLA
|
||||
#define INCLUDE_SONIC
|
||||
|
||||
// will look for espeak_data directory here, and also in user's home directory
|
||||
#define PATH_ESPEAK_DATA "/usr/share/espeak-data"
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
#define LIBRARY
|
||||
#define INCLUDE_KLATT
|
||||
#define INCLUDE_MBROLA
|
||||
#define INCLUDE_SONIC
|
||||
|
||||
// will look for espeak_data directory here, and also in user's home directory
|
||||
#define PATH_ESPEAK_DATA "/usr/share/espeak-data"
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
//#define USE_NANOSLEEP
|
||||
#define INCLUDE_KLATT
|
||||
#define INCLUDE_MBROLA
|
||||
#define INCLUDE_SONIC
|
||||
|
||||
// will look for espeak_data directory here, and also in user's home directory
|
||||
#define PATH_ESPEAK_DATA "/usr/share/espeak-data"
|
||||
|
||||
+23
-5
@@ -745,6 +745,7 @@ static void CompileReport(void)
|
||||
REF_HASH_TAB **list;
|
||||
const char *data_path;
|
||||
int prev_table;
|
||||
int procedure_num;
|
||||
int prev_mnemonic;
|
||||
|
||||
if(f_report == NULL)
|
||||
@@ -802,7 +803,17 @@ static void CompileReport(void)
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -1856,7 +1867,7 @@ static int LoadWavefile(FILE *f, const char *fname)
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
@@ -2761,6 +2772,8 @@ int CompilePhoneme(int compile_phoneme)
|
||||
}
|
||||
strcpy(proc_names[n_procs], item_string);
|
||||
phoneme_out = &phoneme_out2;
|
||||
sprintf(number_buf,"%.3dP", n_procs);
|
||||
phoneme_out->mnemonic = StringToWord(number_buf);
|
||||
}
|
||||
|
||||
phoneme_out->code = phcode;
|
||||
@@ -3498,10 +3511,11 @@ static void CompilePhonemeData2(const char *source)
|
||||
make_envs();
|
||||
#endif
|
||||
|
||||
wxLogStatus(_T("Compiling phoneme data: ")+wxString(path_source,wxConvLocal));
|
||||
n_envelopes = 0;
|
||||
error_count = 0;
|
||||
resample_count = 0;
|
||||
memset(markers_used,0,sizeof(markers_used));
|
||||
memset(markers_used,0,sizeof(markers_used));
|
||||
|
||||
f_errors = stderr;
|
||||
|
||||
@@ -3668,7 +3682,7 @@ fprintf(f_errors,"\nRefs %d, Reused %d\n",count_references,duplicate_references
|
||||
|
||||
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);
|
||||
}
|
||||
wxLogStatus(report + report_dict);
|
||||
@@ -4138,7 +4152,11 @@ void CompilePhonemeData()
|
||||
void CompileSampleRate()
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
||||
+2
-2
@@ -3182,7 +3182,7 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor
|
||||
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
|
||||
continue;
|
||||
@@ -3194,7 +3194,7 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor
|
||||
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 {, : :}
|
||||
continue;
|
||||
|
||||
+2
-2
@@ -91,8 +91,8 @@ wxMenuBar *MakeMenu(int type, const char *dict_name)
|
||||
data_menu = new wxMenu;
|
||||
data_menu->Append(MENU_COMPILE_DICT, _("Compile &dictionary"));
|
||||
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->Append(MENU_COMPILE_MBROLA, _("Compile &mbrola phonemes list..."));
|
||||
data_menu->Append(MENU_COMPILE_INTONATION, _("Compile &intonation data"));
|
||||
|
||||
+46
-12
@@ -122,6 +122,8 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
int regression;
|
||||
int end_sourceix;
|
||||
int alternative;
|
||||
int delete_count;
|
||||
int word_start;
|
||||
PHONEME_DATA phdata;
|
||||
|
||||
int n_ph_list3;
|
||||
@@ -166,18 +168,40 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
}
|
||||
|
||||
// look for switch of phoneme tables
|
||||
delete_count = 0;
|
||||
current_phoneme_tab = tr->phoneme_tab_ix;
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
@@ -311,23 +335,39 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
// transfer all the phonemes of the clause into phoneme_list
|
||||
ph = phoneme_tab[phonPAUSE];
|
||||
ph_list3[0].ph = ph;
|
||||
word_start = 1;
|
||||
|
||||
for(j=0; insert_ph || ((j < n_ph_list3) && (ix < N_PHONEME_LIST-3)); j++)
|
||||
{
|
||||
plist3 = &ph_list3[j];
|
||||
|
||||
if(plist3->sourceix != 0)
|
||||
word_start = j;
|
||||
|
||||
if(insert_ph != 0)
|
||||
{
|
||||
// we have a (linking) phoneme which we need to insert here
|
||||
next = phoneme_tab[plist3->phcode]; // this phoneme, i.e. after the insert
|
||||
|
||||
// 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--;
|
||||
plist3 = plist3_inserted = &ph_list3[j];
|
||||
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));
|
||||
plist3->phcode = insert_ph;
|
||||
@@ -343,12 +383,6 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
|
||||
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
|
||||
SelectPhonemeTable(plist3->tone_ph);
|
||||
}
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@
|
||||
#include "translate.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;
|
||||
|
||||
int option_device_number = -1;
|
||||
|
||||
+1
-1
@@ -82,7 +82,7 @@ const char *WordToString(unsigned int word)
|
||||
int ix;
|
||||
static char buf[5];
|
||||
|
||||
for(ix=0; ix<3; ix++)
|
||||
for(ix=0; ix<4; ix++)
|
||||
buf[ix] = word >> (ix*8);
|
||||
buf[4] = 0;
|
||||
return(buf);
|
||||
|
||||
@@ -455,6 +455,7 @@ Translator *SelectTranslator(const char *name)
|
||||
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_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 };
|
||||
|
||||
// convert name string into a word of up to 4 characters, for the switch()
|
||||
@@ -731,6 +732,7 @@ Translator *SelectTranslator(const char *name)
|
||||
if(name2 == L('a','n'))
|
||||
{
|
||||
tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2;
|
||||
tr->langopts.numbers2 = 0;
|
||||
}
|
||||
else
|
||||
if(name2 == L_pap)
|
||||
@@ -1423,7 +1425,7 @@ SetLengthMods(tr,3); // all equal
|
||||
case L('m','r'): // Marathi
|
||||
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.stress_rule = STRESSPOSN_1L;
|
||||
@@ -1433,9 +1435,12 @@ SetLengthMods(tr,3); // all equal
|
||||
|
||||
if(name2 == L('t','a'))
|
||||
{
|
||||
SetupTranslator(tr,stress_lengths_ta, NULL);
|
||||
tr->letter_bits_offset = OFFSET_TAMIL;
|
||||
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'))
|
||||
{
|
||||
tr->letter_bits_offset = OFFSET_DEVANAGARI;
|
||||
@@ -1458,9 +1463,8 @@ SetLengthMods(tr,3); // all equal
|
||||
tr->letter_bits_offset = OFFSET_TELUGU;
|
||||
tr->langopts.numbers = 0x1;
|
||||
}
|
||||
tr->langopts.param[LOPT_WORD_MERGE] = 1; // don't break vowels betwen words
|
||||
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;
|
||||
|
||||
|
||||
+12
-3
@@ -846,7 +846,7 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt
|
||||
char prefix_chars[0x3f + 2];
|
||||
int found=0;
|
||||
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 last_char = 0;
|
||||
int add_plural_suffix = 0;
|
||||
@@ -916,7 +916,9 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt
|
||||
if((word_length == 1) && (wflags & FLAG_TRANSLATOR2))
|
||||
{
|
||||
// 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)
|
||||
@@ -1077,10 +1079,16 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt
|
||||
{
|
||||
if(word_length > 1)
|
||||
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);
|
||||
}
|
||||
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)
|
||||
{
|
||||
@@ -1936,6 +1944,7 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa
|
||||
if(ok)
|
||||
{
|
||||
*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
|
||||
if((sylimit > 0) && (CountSyllables(p) > (sylimit & 0x1f)))
|
||||
{
|
||||
|
||||
+1
-1
@@ -587,7 +587,7 @@ voice_t *LoadVoice(const char *vname, int control)
|
||||
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 ";
|
||||
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));
|
||||
|
||||
Reference in New Issue
Block a user