mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
Merge branch 'upstream' into development
Conflicts: dictsource/dict_phonemes phsource/compile_report
This commit is contained in:
+2
-1
@@ -1,4 +1,4 @@
|
||||
// Aragon translation rules
|
||||
// Aragon translation rules
|
||||
// This file is UTF-8 encoded
|
||||
|
||||
// letters
|
||||
@@ -182,6 +182,7 @@ $ d'olar
|
||||
/ baRRa
|
||||
\ kontraBaRRa
|
||||
| b'aRRaBertik'al
|
||||
° graUs
|
||||
|
||||
_- gj'on
|
||||
! TaRR'ar||eksklamaTj'on
|
||||
|
||||
+28
-16
@@ -5,7 +5,7 @@
|
||||
// Bengali numbers are changed to latin characters before translation
|
||||
_0 S'unjO
|
||||
_1 '&k
|
||||
_2 duj
|
||||
_2 d'uj
|
||||
_3 t'in
|
||||
_4 tS'ar
|
||||
_5 p'a~tS
|
||||
@@ -125,7 +125,7 @@ _0M1 h'ajar
|
||||
_0M2 l'ak#
|
||||
_0M3 k'ot.i
|
||||
_0M4 'Orbud
|
||||
_dpt dOsomik
|
||||
_dpt _d'Osomik_
|
||||
|
||||
|
||||
// Single consonants
|
||||
@@ -133,40 +133,42 @@ _dpt dOsomik
|
||||
খ k#O
|
||||
গ gO
|
||||
ঘ g#O
|
||||
ঙ 'uNO
|
||||
ঙ 'uNO~
|
||||
চ tSO
|
||||
ছ tShO // [h] to distinguish from [tS]
|
||||
জ JO
|
||||
ঝ J#O
|
||||
ঞ 'iNO
|
||||
ঞ 'iNO~
|
||||
ট t.O
|
||||
ঠ t.#O
|
||||
ড d.O
|
||||
ঢ d.#O
|
||||
ণ m'odd#ennO
|
||||
ণ m,odd#en.n.'O
|
||||
ত tO
|
||||
থ t#O
|
||||
দ dO
|
||||
ধ d#O
|
||||
ন d'ontennO
|
||||
ন d,ontenn'O
|
||||
প pO
|
||||
ফ fO // or [p#O] ?
|
||||
ব bO
|
||||
ভ b#O
|
||||
ম mO
|
||||
য় Oj
|
||||
য ontostedZ'O
|
||||
য ,ontostedZ'O
|
||||
র rO
|
||||
ড় r.O
|
||||
ড় r.O // (d. + nukta)
|
||||
ঢ় hr.O
|
||||
ঢ় hr.O // (d#. + nukta)
|
||||
ল lO
|
||||
শ taleboS:O
|
||||
ষ mud#en:oS:O
|
||||
স d'onteS:O
|
||||
শ t,aleboS:'O
|
||||
ষ m,ud#en:oS:'O
|
||||
স d,onteS:'O
|
||||
হ hO
|
||||
ৎ kh'Ond.otO
|
||||
ৎ kh,Ond.ot'O
|
||||
ক্ষ k,ojmud#en:oS:'O
|
||||
|
||||
|
||||
// full vowels
|
||||
অ O
|
||||
@@ -176,11 +178,16 @@ _dpt dOsomik
|
||||
উ hrOS:o'u
|
||||
ঊ dirg#o'u
|
||||
ঋ ri
|
||||
এ e
|
||||
ঐ oj
|
||||
ও o
|
||||
ঔ ow
|
||||
|
||||
এ e $u+ // word 'it'
|
||||
ঐ oj $u+ // word 'that'
|
||||
ও o $u+ $brk // 'and'
|
||||
_এ e
|
||||
_ঐ oj
|
||||
_ও o
|
||||
|
||||
|
||||
// combining vowel signs
|
||||
া 'akar
|
||||
ি r'oS:ikar
|
||||
@@ -200,12 +207,17 @@ _dpt dOsomik
|
||||
ঁ tS'Ondrobindu
|
||||
় b'indu
|
||||
|
||||
_, koma
|
||||
$ d.Olar
|
||||
% SOtk'Ora
|
||||
+ jOg
|
||||
= SOman
|
||||
|
||||
|
||||
|
||||
// Punctuation
|
||||
। dVn.d.V
|
||||
|
||||
_, koma
|
||||
_? pr'oSnOtSihnO
|
||||
|
||||
// Pronouns
|
||||
আমি $u // main: I
|
||||
|
||||
+3
-1
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
// This file is UTF8 encoded
|
||||
|
||||
// letter groups:
|
||||
@@ -384,3 +384,5 @@
|
||||
ৢ l-
|
||||
ৣ l-
|
||||
|
||||
__) - (_D bij'og
|
||||
D_) - (_D bij'og
|
||||
|
||||
+19
-19
@@ -54,38 +54,38 @@ _?? symbol
|
||||
_#9 tab
|
||||
_#32 blank
|
||||
|
||||
* 'asd&r,isg $max3
|
||||
% pRos'end $max3
|
||||
@ sn,&:bel'&:
|
||||
/ sgRVsdrai $max3
|
||||
\ 'Vmvendsgr,VsdRai $max3
|
||||
* '&sd@-r,isg $max3
|
||||
% pRos'End $max3
|
||||
@ sn,&b@-l'&:
|
||||
/ sgRVsdrAj $max3
|
||||
\ 'VmvEndsgr,VsdRai $max3
|
||||
_, k'oma:
|
||||
_; se:mi:ko:lVn
|
||||
_; semiko:lVn
|
||||
_: k'o:lVn
|
||||
_. pONtOm // PN u => O
|
||||
_? spWrgsmVlstajn
|
||||
_! udRVbstejn
|
||||
_- binnesdrai
|
||||
__ b'Onsdrai
|
||||
_? spWrsmOlstAjn
|
||||
_! udRVbstAjn
|
||||
_- bin@-sdrAi
|
||||
__ b'OnsdrAi
|
||||
& _Vw
|
||||
£ pun?
|
||||
€ euro
|
||||
© kVpirajt
|
||||
÷ divid'eReD||meD
|
||||
© kVpirAjt
|
||||
÷ divid'eRVD||mED
|
||||
= l'imeD
|
||||
# n'OmV
|
||||
§ paragr'af
|
||||
× g'aNe
|
||||
ª feminin||Wdin'al
|
||||
º m'askulin||Wdin'al
|
||||
® registr'Er@D||v'ar@mErk3
|
||||
¼ en||kvart
|
||||
¾ trEkv'art
|
||||
® registr'ErVD||v'Ar@-mErk@-
|
||||
¼ en||kvArt
|
||||
¾ trEkv'Art
|
||||
¢ s'ent
|
||||
¥ j'en:
|
||||
µ my
|
||||
' apostr'Vf
|
||||
½ en'hal
|
||||
½ en'h&l
|
||||
+ plus
|
||||
|
||||
// numbers
|
||||
@@ -11132,7 +11132,7 @@ ide id'e // idea
|
||||
idé id'e // idea
|
||||
tune tun3 $capital // PB Tune lufthavn - not "tune a car" [tjune]
|
||||
ny ny // new
|
||||
også Vs@- // also
|
||||
også ?Vs@- // also
|
||||
idet id'e // in so far as
|
||||
(rub og stub) R'Ob||V||sd'Ob
|
||||
tre tr'E // the number 3
|
||||
@@ -11140,8 +11140,8 @@ rejicere rejis'eV // PB should not be pronounced [raje]
|
||||
rejicerer rejis'eV // PB
|
||||
rejiceres rejis'eVs // PB
|
||||
rejicering rejis'eRiN // PB
|
||||
nogle n'o:@-n // PB English: 'some' - must be pronounced like the Danish word 'nogen'
|
||||
nogen n'o:@-n // PB
|
||||
nogle n'o@-n // PB English: 'some' - must be pronounced like the Danish word 'nogen'
|
||||
nogen n'o@-n // PB
|
||||
ligesom l?isVm // PB
|
||||
bliver blir // PB
|
||||
konfirmand kVnferm'&nd // PB
|
||||
|
||||
+279
-239
File diff suppressed because it is too large
Load Diff
+2
-1
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
// You can use the en_extra file, rather than this one
|
||||
// to add your own pronunciation definitions.
|
||||
|
||||
@@ -1631,6 +1631,7 @@ gigantic dZaIg'antIk
|
||||
gilead g'IlIad
|
||||
gimme gImi
|
||||
giraffe dZI2raaf
|
||||
github gIthVb
|
||||
glacier gleIS3
|
||||
goin ,goUI2n $only // for goin'
|
||||
gonna g,@n@
|
||||
|
||||
@@ -29,6 +29,7 @@ _tld t'ilde
|
||||
// names of symbols
|
||||
ª a
|
||||
º o
|
||||
° grados
|
||||
_. punto
|
||||
_, koma
|
||||
_; p,untoik'oma
|
||||
|
||||
+15
-4
@@ -162,7 +162,7 @@ _dpt _d@s@ml'o:_ // ?? what is Hi for "." ?
|
||||
श S@
|
||||
ष s.@ // retroflex [S]
|
||||
स s@
|
||||
ह H@-
|
||||
ह H@
|
||||
क़ q@
|
||||
ख़ x@
|
||||
ग़ Q@
|
||||
@@ -196,10 +196,21 @@ _dpt _d@s@ml'o:_ // ?? what is Hi for "." ?
|
||||
|
||||
_?? Vks.@r
|
||||
|
||||
// Alphabet names
|
||||
_ar 'Vrbi
|
||||
_cyr sIrIk'Ik
|
||||
_zh c'i@ni
|
||||
|
||||
// Punctuation
|
||||
। dVn.d.V
|
||||
|
||||
$ dOl@r
|
||||
% pVt'IS@t
|
||||
+ plVs
|
||||
= bVr'a:b@r
|
||||
* ta:r'a:Nk@n
|
||||
*
|
||||
|
||||
// Pronouns
|
||||
मैं $u // main: IrI
|
||||
मुझे $u
|
||||
@@ -262,7 +273,7 @@ _?? Vks.@r
|
||||
को $u // ko: to
|
||||
तक $u // tak: until, for(time)
|
||||
बिना $u $pause // without (preposition)
|
||||
में $u // me: in
|
||||
में me~: $u+ // me: in
|
||||
से $u // se: from, with, by
|
||||
|
||||
|
||||
@@ -272,7 +283,7 @@ _?? Vks.@r
|
||||
|
||||
// Conjunctions
|
||||
|
||||
और $u $pause // aur: and
|
||||
और $u $brk // aur: and
|
||||
य j@ $u $pause // ja: or
|
||||
अगर $u $pause // agar: if
|
||||
यदि $u $pause // yadi: if, whether
|
||||
@@ -299,5 +310,5 @@ _?? Vks.@r
|
||||
|
||||
|
||||
// Exceptions
|
||||
क्रिकेट krIk'Et
|
||||
क्रिकेट kr'IkIt
|
||||
सायबर s'aIb@r
|
||||
|
||||
+2
-7
@@ -390,7 +390,7 @@
|
||||
ः H // visarga
|
||||
|
||||
.group ् // virama
|
||||
्
|
||||
्
|
||||
|
||||
// Extra consonants
|
||||
|
||||
@@ -410,7 +410,7 @@
|
||||
ज़ zV
|
||||
ज़ (B z
|
||||
|
||||
.group ड़ // dddha (should retroflex flap)
|
||||
.group ड़ // dddha (should retroflex flap ?)
|
||||
ड़ r.V
|
||||
ड़ (B r.
|
||||
|
||||
@@ -443,8 +443,3 @@
|
||||
|
||||
|
||||
|
||||
.group
|
||||
$ dOlV
|
||||
% pVsEnt
|
||||
|
||||
|
||||
|
||||
+2
-1
@@ -1,4 +1,4 @@
|
||||
// This file is UTF-8 encoded
|
||||
// This file is UTF-8 encoded
|
||||
|
||||
|
||||
// $alt change [e] or [o] in the stressed syllable to [E] or [O]
|
||||
@@ -82,6 +82,7 @@ _tld t'ilde
|
||||
# kantSellet:o
|
||||
@ ki'otS:ola
|
||||
~ tilde
|
||||
° g@-*'a:di
|
||||
: d,uep'unti
|
||||
|
||||
_! p,untoesklamat'ivo
|
||||
|
||||
@@ -295,12 +295,5 @@
|
||||
|
||||
|
||||
|
||||
.group 0xe0a4 // devanagari
|
||||
0xe0a4 _^_HI // switch to hindi voice
|
||||
|
||||
.group 0xe0a5 // devanagari
|
||||
0xe0a5 _^_HI
|
||||
|
||||
|
||||
.group
|
||||
$ do:l.ar
|
||||
|
||||
+2
-1
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
// This file in UTF8 encoded
|
||||
|
||||
// $alt2, remove s from plural, remove en from plural
|
||||
@@ -80,6 +80,7 @@ _- k'OpElt,e:k@n
|
||||
= Q@l'EIkte:k@n
|
||||
__ l'IgEntst@-*'e:pj@
|
||||
€ 'Y:*o:t,e:k@n
|
||||
° Qra:d@n
|
||||
|
||||
|
||||
// numbers
|
||||
|
||||
+45
-35
@@ -683,6 +683,7 @@ bolo $alt2
|
||||
bolo $alt $verb
|
||||
borboleta $alt2
|
||||
bordo $alt
|
||||
borra $alt2 $noun
|
||||
bosque $alt
|
||||
boto $alt2 $noun
|
||||
brejo $alt
|
||||
@@ -693,12 +694,13 @@ cacete $alt2
|
||||
cachorra $alt2
|
||||
caderneta $alt2
|
||||
cadete $alt2
|
||||
camelha $alt
|
||||
camelo $alt2
|
||||
camiseta $alt2
|
||||
cantora $alt2
|
||||
capacete $alt2
|
||||
caractere $alt
|
||||
carbureto $alt2
|
||||
carbureto $alt2
|
||||
careta $alt2
|
||||
carreta $alt2
|
||||
carroça $alt
|
||||
@@ -707,7 +709,7 @@ cateto $alt2
|
||||
catorze $alt2
|
||||
cebola $alt2
|
||||
cefaleia $alt
|
||||
centopeia $alt
|
||||
centopeia $alt
|
||||
cerca $alt
|
||||
cerca $alt2 $noun
|
||||
cerco $alt $verb
|
||||
@@ -735,8 +737,11 @@ concerto $alt2 $noun
|
||||
concertos $alt2
|
||||
concordo $alt
|
||||
conforto $alt $verb
|
||||
console $alt2 $noun
|
||||
consolo $alt2 $noun
|
||||
controle $alt2 $noun
|
||||
controles $alt2
|
||||
controles $alt $verb
|
||||
controlo $alt2 $noun
|
||||
coreia $alt
|
||||
coreto $alt2
|
||||
@@ -747,19 +752,19 @@ corto $alt
|
||||
corveta $alt2
|
||||
corvos $alt
|
||||
coto $alt2
|
||||
cotovelo $alt2
|
||||
cotovelo $alt2
|
||||
cratera $alt
|
||||
crede $alt2
|
||||
crepe $alt
|
||||
decore $alt
|
||||
degelo $alt2
|
||||
degelo $alt2
|
||||
desapego $alt2 $noun
|
||||
descordo $alt
|
||||
desemprego $alt2
|
||||
desemprego $alt $verb
|
||||
desespero $alt2 $noun
|
||||
desfecho $alt2
|
||||
desmantelo $alt2 $noun
|
||||
desmantelo $alt2 $noun
|
||||
desporto $alt2
|
||||
desportos $alt
|
||||
desprezo $alt2 $noun
|
||||
@@ -768,7 +773,7 @@ desse $alt $verb
|
||||
deste $alt2
|
||||
deste $alt $verb
|
||||
desterro $alt2
|
||||
destroem $alt
|
||||
destroem $alt
|
||||
deveras $alt
|
||||
dez $alt
|
||||
diarreia $alt
|
||||
@@ -787,11 +792,12 @@ endereço $alt $verb
|
||||
enforco $alt
|
||||
engordo $alt
|
||||
enredo $alt $verb
|
||||
enrosco $alt $verb
|
||||
enrosco $alt $verb
|
||||
enterro $alt2 $noun
|
||||
enumerem $alt
|
||||
envelope $alt
|
||||
envolto $alt2
|
||||
enxaqueca $alt2
|
||||
enxerto $alt2 $noun
|
||||
epopeia $alt
|
||||
eritreia $alt
|
||||
@@ -800,7 +806,7 @@ erro $alt $verb
|
||||
esboço $alt $verb
|
||||
escopeta $alt2
|
||||
escova $alt2 $noun
|
||||
escovas $alt2
|
||||
escovas $alt2
|
||||
escovo $alt
|
||||
escroto $alt2
|
||||
esforço $alt $verb
|
||||
@@ -813,18 +819,18 @@ espiroqueta $alt2
|
||||
espoleta $alt2
|
||||
esposa $alt2
|
||||
esqueleto $alt2
|
||||
estilete $alt2
|
||||
estilete $alt2
|
||||
estrela $alt2
|
||||
estrofe $alt
|
||||
estorno $alt $verb
|
||||
estorvo $alt $verb
|
||||
etiqueta $alt2
|
||||
europa $alt
|
||||
europeia $alt
|
||||
europeia $alt
|
||||
exagero $alt $verb
|
||||
explore $alt
|
||||
faceta $alt2
|
||||
fantoche $alt
|
||||
fantoche $alt
|
||||
farofa $alt
|
||||
febre $alt
|
||||
fera $alt
|
||||
@@ -843,7 +849,7 @@ forca $alt2
|
||||
força $alt2 $noun
|
||||
forças $alt2
|
||||
forço $alt
|
||||
formos $alt2
|
||||
formos $alt2
|
||||
forro $alt $verb
|
||||
frevo $alt2
|
||||
fulgores $alt2
|
||||
@@ -851,8 +857,8 @@ galera $alt
|
||||
galileia $alt
|
||||
gameta $alt2
|
||||
geleia $alt
|
||||
gelo $alt2
|
||||
gelo $alt $verb
|
||||
gelo $alt2
|
||||
gelo $alt $verb
|
||||
genebra $alt
|
||||
gesso $alt2
|
||||
golpe $alt
|
||||
@@ -871,16 +877,18 @@ hemorroida $alt
|
||||
hoje $alt2
|
||||
horrores $alt2
|
||||
ideia $alt
|
||||
interesse $alt2 $noun
|
||||
imberbe $alt
|
||||
interesse $alt2
|
||||
interesse $alt $verb
|
||||
jogo $alt2 $noun
|
||||
joguete $alt2
|
||||
lagosta $alt2
|
||||
lambreta $alt2
|
||||
lebre $alt
|
||||
lembrete $alt2
|
||||
lepra $alt
|
||||
lepra $alt
|
||||
leste $alt2 $verb
|
||||
lingueta $alt2
|
||||
lingueta $alt2
|
||||
lopes $alt
|
||||
macete $alt2
|
||||
maior $alt
|
||||
@@ -901,9 +909,9 @@ minueto $alt2
|
||||
miolo $alt2
|
||||
miolos $alt
|
||||
modelo $alt2
|
||||
modelo $alt $verb
|
||||
modelo $alt $verb
|
||||
moeda $alt
|
||||
mofo $alt $verb
|
||||
mofo $alt $verb
|
||||
molho $alt2 $noun
|
||||
monera $alt
|
||||
morcego $alt2
|
||||
@@ -928,7 +936,7 @@ obstetra $alt
|
||||
odisseia $alt
|
||||
onu $1
|
||||
olho $alt2 $noun
|
||||
onomatopeia $alt
|
||||
onomatopeia $alt
|
||||
opereta $alt2
|
||||
ordens $alt
|
||||
osso $alt2
|
||||
@@ -942,7 +950,6 @@ palacete $alt2
|
||||
palheta $alt2
|
||||
panfleto $alt2
|
||||
pangeia $alt
|
||||
panqueca p,&~Nk'Ek&
|
||||
pantera $alt
|
||||
parede $alt2
|
||||
pastora $alt2
|
||||
@@ -970,7 +977,7 @@ pose $alt2
|
||||
povos $alt
|
||||
poxa p'oS&
|
||||
primavera $alt
|
||||
prosopopeia $alt
|
||||
prosopopeia $alt
|
||||
quarteto $alt2
|
||||
queda $alt
|
||||
quede $alt2
|
||||
@@ -986,13 +993,13 @@ reforço $alt $verb
|
||||
reforços $alt
|
||||
refresco $alt $verb
|
||||
reitora $alt2
|
||||
rejo $alt
|
||||
rejo $alt
|
||||
relevo $alt2 $noun
|
||||
remorso $alt
|
||||
renovo $alt $verb
|
||||
renovo $alt $verb
|
||||
retorno $alt $verb
|
||||
reuva $alt
|
||||
rigores $alt2
|
||||
reuva $alt
|
||||
rigores $alt2
|
||||
rixa x'iS&
|
||||
rocha $alt
|
||||
rock $alt
|
||||
@@ -1037,10 +1044,10 @@ tocha $alt
|
||||
toga $alt
|
||||
topo $alt $verb
|
||||
torno $alt $verb
|
||||
tornozelo $alt2
|
||||
tornozelo $alt2
|
||||
torre $alt2 $noun
|
||||
torres $alt2
|
||||
torro $alt
|
||||
torro $alt
|
||||
tortos $alt
|
||||
traqueia $alt
|
||||
travesso $alt2
|
||||
@@ -1054,6 +1061,7 @@ tumores $alt2
|
||||
valeta $alt2
|
||||
vanessa $alt2
|
||||
velozes $alt
|
||||
verbete $alt2
|
||||
violeta $alt2
|
||||
violoncelo $alt
|
||||
voga $alt
|
||||
@@ -1070,7 +1078,8 @@ zorra $alt2
|
||||
?1 back b'Ek
|
||||
?2 backup bEk'&p
|
||||
?2 backups bEk'&ps
|
||||
?1 blind bl'aind
|
||||
blind bl'aind
|
||||
book buk
|
||||
?1 braille b:r'aily
|
||||
?2 Braille bR'aili
|
||||
?1 cancel k'&ns'El
|
||||
@@ -1087,7 +1096,6 @@ zorra $alt2
|
||||
?2 download daUNl'owd
|
||||
?3 download dau~Nl'owd
|
||||
?1 end 'end
|
||||
?1 escape Sk'eIpy
|
||||
?2 esc 'Esk
|
||||
?3 esc 'EskI
|
||||
?1 explorer ,ekspl'O:*&r-
|
||||
@@ -1110,6 +1118,7 @@ zorra $alt2
|
||||
?2 Intranet iNtRan'Et
|
||||
?1 kernel k'Ern,El
|
||||
?2 kernel k'Ern@l
|
||||
laptop lEptOp
|
||||
?1 line l'ain
|
||||
layout l'eI,aUt
|
||||
?2 logo l'OgU
|
||||
@@ -1140,14 +1149,12 @@ símbolo s'imbolU
|
||||
?2 software s'Oftwe@-
|
||||
?1 space sp'eIsy
|
||||
?1 sporting sp'Ort,ing
|
||||
?1 tab t'ab
|
||||
tab t'aby
|
||||
?1 telemóvel t,El,Em'OvEl
|
||||
?1 telemóveis t,El,Em'OveIs#
|
||||
?1 up &p
|
||||
?1 upload &pl'oud
|
||||
?2 web w'Eb
|
||||
?2 verbete verb'etSi
|
||||
?2 verbetes verb'etSis
|
||||
?1 yahoo 'i,ah'u
|
||||
?2 yahoo iah'u
|
||||
?1 yes j'Es
|
||||
@@ -1161,14 +1168,16 @@ louis _^_FR
|
||||
// foreign product names
|
||||
?1 access 'aks,Es
|
||||
?1 adobe &d'Oby
|
||||
apple 'Epow
|
||||
chrome kR'owmi
|
||||
debian d'Ebj&~N
|
||||
?1 excel ,Eks'El
|
||||
?1 express ,Ekspr'Es
|
||||
espeak isp'i:k
|
||||
?1 espeakedit isp'i:kEd,it
|
||||
facebook feisybuk
|
||||
?1 fedora _^_EN
|
||||
?1 firefox f'ai&rfOks
|
||||
?2 firefox f'ai@fOks
|
||||
firefox f'ai@fOks
|
||||
?1 front fr'ont
|
||||
?1 jaws dZ'au:z
|
||||
?1 linux l,in'uks
|
||||
@@ -1203,6 +1212,7 @@ playstation _^_EN
|
||||
suse z'u:ts@
|
||||
?1 start st'art // nero StartSmart
|
||||
?1 time t'aImy // nero show time
|
||||
twitter tw'iter
|
||||
ubuntu ub'untu
|
||||
?1 unix ,u:n'iks
|
||||
?2 unix j'uniks
|
||||
|
||||
+37
-26
@@ -100,6 +100,7 @@
|
||||
ái (s ''aI
|
||||
á (iCK ''a
|
||||
áy ''aI
|
||||
ál (C ''aU
|
||||
áu ''aU
|
||||
áu (s ''aU
|
||||
?1 ál ''Al
|
||||
@@ -221,13 +222,13 @@
|
||||
f) e (rem_ E
|
||||
|
||||
e (que_ E
|
||||
e (quem_ E
|
||||
|
||||
e (quem_ E
|
||||
|
||||
e (rgA_ E
|
||||
e (rgAm_ E
|
||||
|
||||
e (rgue_ E
|
||||
e (rguem_ E
|
||||
e (rgue_ E
|
||||
e (rguem_ E
|
||||
|
||||
e (rsA_ E
|
||||
e (rsAm_ E
|
||||
@@ -242,7 +243,7 @@ e (rguem_ E
|
||||
e (stAm_ E
|
||||
e (strA_ E
|
||||
|
||||
e (rme_ E
|
||||
e (rme_ E
|
||||
|
||||
e (rnA_ E
|
||||
e (rnAm_ E
|
||||
@@ -461,6 +462,7 @@ respond) e (L07_ e // cor-
|
||||
_gr) e (gL03_ e
|
||||
_gal) e (gL03_ e
|
||||
_n) e (grL03_ e
|
||||
_ch) e (guL02_ e
|
||||
estr) ei (L04_ EI
|
||||
_inv) e (jL04_ E
|
||||
tr) e (pL04_ E // es-
|
||||
@@ -488,10 +490,9 @@ _recup) e (rL04_ E
|
||||
_refrig) e (rL04_ E
|
||||
_v) e (rbL03_ E
|
||||
_p) e (rdL02_ E
|
||||
_ch) e (guL02_ e
|
||||
_l) e (rdL03_ E
|
||||
_h) e (rdL04_ E
|
||||
_bez) e (rrL03_ e
|
||||
_bez) e (rrL03_ e
|
||||
_inv) e (rtL03_ e
|
||||
_f) e (rvL03_ e
|
||||
_refr) e (scL01_ E
|
||||
@@ -536,6 +537,7 @@ _entorp) e (çL03_ e
|
||||
éi (s ''EI
|
||||
é (iCK ''E
|
||||
éy ''eI
|
||||
él (C ''EU
|
||||
éu ''EU
|
||||
éu (s ''EU
|
||||
é (uCK ''E
|
||||
@@ -576,18 +578,18 @@ _entorp) e (çL03_ e
|
||||
gu (Y g
|
||||
a) gu (ent gw
|
||||
_ar) gu (i gw
|
||||
averi) gu (e gw
|
||||
averi) gu (e gw
|
||||
enxa) gu (e gw
|
||||
i) gu (idade gw
|
||||
i) gu (idade gw
|
||||
lin) gu (e gw
|
||||
lin) gu (i gw
|
||||
_min) gu (e gw
|
||||
_min) gu (e gw
|
||||
_pin) gu (im_ gw
|
||||
_pin) gu (ins_ gw
|
||||
_sa) gu (i gw
|
||||
_sa) gu (i gw
|
||||
san) gu (ín gw
|
||||
san) gu (in gw
|
||||
tin) gu (i gw
|
||||
tin) gu (i gw
|
||||
?1 n) gu (A gw // eg: língua, etc.
|
||||
?1 man) gu (ei g // mangueira
|
||||
?1 gu (ém_ g // eg: alguém, ninguém, etc...
|
||||
@@ -620,6 +622,8 @@ _entorp) e (çL03_ e
|
||||
|
||||
i (A_ 'i
|
||||
i (am_ 'i
|
||||
i (em_ 'i
|
||||
|
||||
io (_ iU
|
||||
io (s_ iU
|
||||
i (oCK i
|
||||
@@ -657,6 +661,7 @@ _entorp) e (çL03_ e
|
||||
ím (C ''im
|
||||
ín (K ''iN
|
||||
ính ''in^
|
||||
íl (C ''IU
|
||||
|
||||
|
||||
.group j
|
||||
@@ -754,6 +759,9 @@ _entorp) e (çL03_ e
|
||||
o (ltA_ O
|
||||
o (ltAm_ O
|
||||
|
||||
o (lve_ O
|
||||
o (lvem_ O
|
||||
|
||||
o (sA_ O
|
||||
o (so_N o // not for osos_
|
||||
o (sAm_ O
|
||||
@@ -831,10 +839,10 @@ _entorp) e (çL03_ e
|
||||
//sort
|
||||
_f) o (L05_ o
|
||||
_f) o (L07_ o
|
||||
_engl) o (bL04_ O
|
||||
_s) o (bL02_ O
|
||||
_af) o (bL04_ O
|
||||
_esn) o (bL04_ O
|
||||
_af) o (bL04_ O
|
||||
_engl) o (bL04_ O
|
||||
br) o (chL04_ O
|
||||
_deb) o (chL04_ O
|
||||
_m) o (fL01_ O
|
||||
@@ -842,8 +850,6 @@ _entorp) e (çL03_ e
|
||||
_s) o (frL02_ O
|
||||
r) o (gL04_ O // inter-
|
||||
_j) o (gL04_ O
|
||||
_emp) o (lgL04_ O
|
||||
_f) o (lgL04_ O
|
||||
_af) o (gL04_ O
|
||||
_adv) o (gL04_ O
|
||||
_ref) o (gL04_ O
|
||||
@@ -851,15 +857,12 @@ _f) o (lgL04_ O
|
||||
_ap) oi (L02_ OI
|
||||
_b) oi (L04_ OI
|
||||
_t) o (lL03_ o
|
||||
_f) o (lgL04_ O
|
||||
_emp) o (lgL04_ O
|
||||
c) o (lhL02_ O // es- en- re-
|
||||
_t) o (lhL02_ O
|
||||
_m) o (lhL04_ O
|
||||
env) o (lvL02_ O // des-
|
||||
_abs) o (lvL02_ O
|
||||
_dev) o (lvL02_ O
|
||||
_res) o (lvL02_ O
|
||||
_rev) o (lvL02_ O
|
||||
_ent) o (pL02_ O
|
||||
ent) o (pL02_ O
|
||||
_c) o (pL03_ O
|
||||
_ens) o (pL04_ O
|
||||
_s) o (prL04_ O
|
||||
@@ -941,21 +944,21 @@ _remem) o (rL04_ O
|
||||
?1 _) qua kwa // quatro, etc.
|
||||
?1 _) que ke // quente, etc.
|
||||
?1 _) quei (C k'eI // queira, queima, etc
|
||||
A) quên (C kw'eN // frequência, etc.
|
||||
C) quên (C kw'eN // delinquência, etc.
|
||||
C) quên (A kw'eN // quinquênio, etc.
|
||||
quên kw'eN // quinquênio, etc.
|
||||
ade) qu (e kw
|
||||
_a) qu (idade_ kw
|
||||
_a) qu (ífero_ kw
|
||||
e) qu (estr kw
|
||||
ese) qu (ív kw
|
||||
_e) qu (in kw
|
||||
fre) qu (ent kw
|
||||
_ini) qu (idade_ kw
|
||||
li) qu (id kw
|
||||
lí) qu (id kw
|
||||
n) qu (en kw
|
||||
_) qu (inqu kw
|
||||
se) qu (en kw
|
||||
tran) qu (il kw
|
||||
?1 quec kes // esquece, etc.
|
||||
?1 queç kes // esqueça.
|
||||
?1 A) que (nA_ ke // pequeno, etc.
|
||||
?1 C) quê (_ ke // porquê, etc.
|
||||
@@ -1013,6 +1016,14 @@ _remem) o (rL04_ O
|
||||
?1 A) s (G+ Z
|
||||
?1 A) s (_KS1 s#
|
||||
?1 A) s (_G+S1 Z
|
||||
s (b z
|
||||
s (d z
|
||||
s (g z
|
||||
s (l z
|
||||
s (m z
|
||||
s (n z
|
||||
sr zx
|
||||
s (v z
|
||||
|
||||
_) sobre (@P5 sob*e
|
||||
|
||||
|
||||
+3
-3
@@ -51,9 +51,9 @@ _6C S,E#s;t;s'ot
|
||||
_7C s;,Ims'ot
|
||||
_8C vOs;Ims'ot
|
||||
_9C dev;Vts'ot
|
||||
_1MA1 t'ys;Its;V // no '1' before thousand
|
||||
_0MA1 t'ys;Its;i
|
||||
_0M1 t'ys;Vts;
|
||||
_1MA1 t'ys;ItS;V // no '1' before thousand
|
||||
_0MA1 t'ys;ItS;i
|
||||
_0M1 t'ys;VtS;
|
||||
_1MA2 m;,IlI;'on
|
||||
_0MA2 m;,IlI;'ona
|
||||
_0M2 m;,IlI;'onof
|
||||
|
||||
+8
-8
@@ -22,7 +22,7 @@ n En
|
||||
o o:
|
||||
p pi:
|
||||
q kju:
|
||||
r a:r
|
||||
r a:rp
|
||||
s Es
|
||||
t t#i:
|
||||
u ju:
|
||||
@@ -40,7 +40,7 @@ _1 okat.i
|
||||
_1a oka
|
||||
_2 rend.u
|
||||
_3 mu:d.u
|
||||
_4 na:lgu
|
||||
_4 na:lugu
|
||||
_5 aIdu
|
||||
_6 a:ru
|
||||
_7 ;e:d.u
|
||||
@@ -48,20 +48,20 @@ _8 ;enimidi
|
||||
_9 tommidi
|
||||
_1X padi
|
||||
_11 padakond.u
|
||||
_12 pannemd.u
|
||||
_13 padamu:d.u:
|
||||
_12 pannend.u
|
||||
_13 padammu:d.u:
|
||||
_14 pad#na:lugu
|
||||
_15 padihe:nu
|
||||
_16 padaha:ru
|
||||
_17 padihe:d.u
|
||||
_18 padd#enimidi
|
||||
_19 pamdommadi
|
||||
_19 pandommidi
|
||||
_2X irav#aI
|
||||
_3X muppaI
|
||||
_4X nalub#aI
|
||||
_5X ja:b#aI
|
||||
_6X arav#aI
|
||||
_7X d.eb#baI
|
||||
_7X d.#eb#baI
|
||||
_8X jenab#aI
|
||||
_9X tomb#aI
|
||||
_0C v#andala
|
||||
@@ -85,7 +85,7 @@ _?? aks.aram // 'unknown character'
|
||||
+ ku:d.ika
|
||||
* naks.atra
|
||||
\ bja:kasla:s.
|
||||
/ sla:s.
|
||||
/ kudiva:lugi:ta
|
||||
© ka:pi:raIt.
|
||||
¶ v#e:ra:
|
||||
|
||||
@@ -137,7 +137,7 @@ U+c4d v#ottu
|
||||
ఫ్ ip#
|
||||
బ్ ib
|
||||
భ్ ib#
|
||||
మ్ im
|
||||
మ్ imu:
|
||||
య్ ij
|
||||
ర్ ir
|
||||
ఱ్ ir
|
||||
|
||||
+2
-2
@@ -224,7 +224,7 @@
|
||||
|
||||
. ఁ n // candrabindu
|
||||
|
||||
ం m // anusvara (this should nasalize the vowel)
|
||||
ం n // anusvara (this should nasalize the vowel)
|
||||
|
||||
ః h // visarga
|
||||
|
||||
@@ -243,7 +243,7 @@
|
||||
|
||||
ూ u:
|
||||
|
||||
ృ ru
|
||||
ృ r-
|
||||
|
||||
ౄ r-:
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
name english
|
||||
language en-uk 2
|
||||
language en-gb 2
|
||||
language en-uk 2
|
||||
language en 2
|
||||
gender male
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name spanish-latin-american
|
||||
name spanish-latin-am
|
||||
language es-la
|
||||
language es-mx 6
|
||||
language es 6
|
||||
|
||||
+6
-6
@@ -35,37 +35,37 @@ endphoneme
|
||||
|
||||
phoneme i
|
||||
vowel starttype #i endtype #i
|
||||
length 200
|
||||
length 210
|
||||
FMT(vowel/i_6)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme u
|
||||
vowel starttype #u endtype #u
|
||||
length 200
|
||||
length 210
|
||||
FMT(vowel/u)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme e
|
||||
vowel starttype #e endtype #e
|
||||
length 200
|
||||
length 210
|
||||
FMT(vowel/e)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme &
|
||||
vowel starttype #a endtype #a
|
||||
length 200
|
||||
length 210
|
||||
FMT(vowel/&_2)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme o
|
||||
vowel starttype #o endtype #o
|
||||
length 200
|
||||
length 210
|
||||
IF nextPhW(w) THEN
|
||||
length 160
|
||||
length 170
|
||||
ENDIF
|
||||
FMT(vowel/o)
|
||||
endphoneme
|
||||
|
||||
+155
-186
@@ -8,6 +8,116 @@
|
||||
// AC + @- OR V: Long "pile" [pi:l@-]
|
||||
// AC[i]: Long "smidig" [smi:Di]
|
||||
|
||||
// Change the length of short vowels (?+vowel)
|
||||
procedure ShortVowelLength
|
||||
// "endelig" - Short initial vowel sounds too short
|
||||
IF thisPh(isWordStart) THEN
|
||||
length 160
|
||||
RETURN
|
||||
ENDIF
|
||||
// "slutte" t/d + @- makes the u too long
|
||||
IF next2PhW(@-) THEN
|
||||
IF nextPhW(t) OR nextPhW(d) THEN
|
||||
//length 100
|
||||
LengthAdd -50
|
||||
// Don't shorten it further if it comes after an "r" sound
|
||||
// Exit the procedure
|
||||
RETURN
|
||||
ENDIF
|
||||
ENDIF
|
||||
// "bygget" - consonant + [@-D] makes the vowel too long
|
||||
IF next2PhW(@-) THEN
|
||||
IF next3PhW(t) OR next3PhW(d) OR next3PhW(D) THEN
|
||||
LengthAdd -50
|
||||
// Don't shorten it further if it comes after an "r" sound ("brygget")
|
||||
// Exit the procedure
|
||||
RETURN
|
||||
ENDIF
|
||||
ENDIF
|
||||
// "bygger" - consonant + [V] makes the vowel too long
|
||||
IF nextPhW(isNotVowel) AND next2PhW(V) THEN
|
||||
LengthAdd -50
|
||||
// Don't shorten it further if it comes after an "r" sound ("brygger")
|
||||
// Exit the procedure
|
||||
RETURN
|
||||
ENDIF
|
||||
// "rigtigt", "fred", "frem", "centralen" - R makes the vowel too long
|
||||
IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN
|
||||
// length 100
|
||||
LengthAdd -50
|
||||
ENDIF
|
||||
// "ring", "ringe", "fængsel"
|
||||
IF nextPhW(N) THEN
|
||||
// length 100
|
||||
LengthAdd -10
|
||||
ENDIF
|
||||
// "sigte" t/d + @- makes the vowel too long
|
||||
IF nextPhW(isNotVowel) AND next2PhW(t) OR next2PhW(d) THEN
|
||||
IF next3PhW(@-) THEN
|
||||
// length 100
|
||||
LengthAdd -50
|
||||
ENDIF
|
||||
ENDIF
|
||||
endprocedure
|
||||
|
||||
// Change the length of normal vowels (without ? in front of them)
|
||||
procedure LongVowelLength
|
||||
// "alene" - Short initial vowel sounds too short at length 140
|
||||
IF thisPh(isWordStart) THEN
|
||||
length 160
|
||||
RETURN
|
||||
ENDIF
|
||||
// "forlade" - [D@-] makes the vowel too long
|
||||
IF nextPhW(D) AND next2PhW(@-) THEN
|
||||
length 180
|
||||
RETURN
|
||||
ENDIF
|
||||
// PB long vowel followed by [@-] or [V](vowel+vowel) - "pigen" [p'i@-n]
|
||||
IF nextPhW(@-) OR nextPhW(V) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// PB "enig", "enige", "evig", "stædig" - vowel+consolant+[i]
|
||||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "ræve", "dele", "mene", "røve", "møve"
|
||||
IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(3) OR next3PhW(@-) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "vilje", "nedladende" [n'eDl&D@-n@-], "delte" - short followed by 2 consonants
|
||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
|
||||
// Don't make "møve" [m'Ww_!@-_!] short
|
||||
IF NOT next2PhW(_!) THEN
|
||||
length 140
|
||||
ENDIF
|
||||
ENDIF
|
||||
// "bryde", "bryder", "strålen", "henrivende" R makes the vowel too long
|
||||
IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN
|
||||
IF next2PhW(@-) OR next2PhW(V) THEN
|
||||
// length 180
|
||||
LengthAdd -70
|
||||
ENDIF
|
||||
ENDIF
|
||||
// "syste", "sylte" t/d/D + @- makes the vowel too long
|
||||
// "international", - added [V] TEST
|
||||
IF nextPhW(isNotVowel) AND next2PhW(t) OR next2PhW(d) OR next2PhW(D) THEN
|
||||
IF next3PhW(@-) OR next3PhW(V) THEN
|
||||
length 110
|
||||
ENDIF
|
||||
ENDIF
|
||||
// "glimrende" [l/3] makes the following vowel too long
|
||||
// LengthAdd doesn't work here. The length could be 225 or 140 - 30
|
||||
IF prevPhW(l/3) THEN
|
||||
// LengthAdd -30
|
||||
length 110
|
||||
ENDIF
|
||||
// "længe" - short - 2 consonants => 1 consonant (ng => [N])
|
||||
IF nextPhW(N) THEN
|
||||
length 140
|
||||
ENDIF
|
||||
endprocedure
|
||||
|
||||
// A bit longer than [@-]
|
||||
phoneme @
|
||||
vowel starttype #@ endtype #@
|
||||
unstressed
|
||||
@@ -59,26 +169,12 @@ phoneme i
|
||||
length 140
|
||||
// Long vowel followed by consonant and @- "gide", "pile"
|
||||
IF nextPhW(isNotVowel) AND next2PhW(@-) THEN
|
||||
length 225
|
||||
// length 225
|
||||
ENDIF
|
||||
// "gider", vrider"
|
||||
IF nextPhW(D) AND next2PhW(V) OR next2PhW(?V) THEN
|
||||
length 140
|
||||
ENDIF
|
||||
// PB long vowel followed by [@-] - "pigen" [p'i@-n]
|
||||
IF nextPhW(@-) OR nextPhW(V) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "vilje" - short followed by 2 consonants
|
||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
|
||||
length 140
|
||||
ENDIF
|
||||
// PB "tie", "stige", "krige" vowel + vowel: extra length
|
||||
// What is causing this very short [i] in words with final [@-]?
|
||||
// NOT "galleriet" [g,?&lVR'i@-D]
|
||||
IF nextPhW(V) OR nextPhW(@) OR nextPhW(@-) AND NOT next2PhW(D) THEN
|
||||
// length 240
|
||||
ENDIF
|
||||
//"skider" short
|
||||
IF nextPhW(D) AND next2PhW(V) THEN
|
||||
length 140
|
||||
@@ -87,7 +183,7 @@ ENDIF
|
||||
IF nextPhW(D) AND next2PhW(V) AND next3PhW(V) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
|
||||
CALL LongVowelLength
|
||||
FMT(vowel/i_4)
|
||||
endphoneme
|
||||
|
||||
@@ -95,7 +191,8 @@ endphoneme
|
||||
// sviret vs. svirret
|
||||
phoneme ?i
|
||||
vowel starttype #i endtype #i
|
||||
length 100
|
||||
length 140
|
||||
CALL ShortVowelLength
|
||||
IfNextVowelAppend(;)
|
||||
FMT(vowel/i_4)
|
||||
endphoneme
|
||||
@@ -111,22 +208,8 @@ endphoneme
|
||||
phoneme e
|
||||
vowel starttype #e endtype #e
|
||||
length 140
|
||||
// "dele", "mene"
|
||||
IF next2PhW(@-) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// PB "ring", "ringe"
|
||||
IF nextPhW(N) THEN
|
||||
length 140
|
||||
ENDIF
|
||||
// PB "enig", "enige", "evig"
|
||||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "nedladende" [n'eDl&D@-n@-], "delte" - before 2 consonants: short
|
||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
|
||||
length 140
|
||||
ENDIF
|
||||
CALL LongVowelLength
|
||||
CALL ShortVowelLength
|
||||
FMT(vowel/e)
|
||||
endphoneme
|
||||
|
||||
@@ -135,14 +218,7 @@ endphoneme
|
||||
phoneme ?e
|
||||
vowel starttype #e endtype #e
|
||||
length 140
|
||||
// "rigtigt" R makes the e too long
|
||||
IF prevPhW(R) THEN
|
||||
length 100
|
||||
ENDIF
|
||||
// "sigte" t/d + @- makes the e too long
|
||||
IF nextPhW(isNotVowel) AND next2PhW(t) OR next2PhW(d) AND next3PhW(@-) THEN
|
||||
length 100
|
||||
ENDIF
|
||||
CALL ShortVowelLength
|
||||
FMT(vowel/e)
|
||||
endphoneme
|
||||
|
||||
@@ -153,29 +229,18 @@ phoneme E
|
||||
IF thisPh(isWordEnd) THEN
|
||||
IfNextVowelAppend(_!)
|
||||
ENDIF
|
||||
// "ræve"
|
||||
IF nextVowel(@-) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "ære", "kærester", "ærefrygt" - longer E
|
||||
// "ære", "kærester", "ærefrygt" - vowel + vowel
|
||||
IF nextPhW(V) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "stædig" [st'EDi] long
|
||||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN
|
||||
// "dræber" TEST shortened by -70 in procedure because of the "r" sound
|
||||
IF prevPhW(R) OR prevPhW(r) OR prevPhW(3-) AND next2PhW(V) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "længe" - short - 2 consonants => 1 consonant
|
||||
IF nextPhW(N) THEN
|
||||
length 140
|
||||
ENDIF
|
||||
CALL LongVowelLength
|
||||
// "værelse" [v'E3-Vls@_!]
|
||||
IF nextPhW(3-) AND next2PhW(V) THEN
|
||||
length 100
|
||||
ENDIF
|
||||
// "mælkebøtte" - short followed by 2 consonants
|
||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
|
||||
length 140
|
||||
ENDIF
|
||||
FMT(vowel/e_mid2)
|
||||
endphoneme
|
||||
@@ -186,14 +251,7 @@ phoneme ?E
|
||||
vowel starttype #e endtype #e
|
||||
ipa ε
|
||||
length 140
|
||||
// "fred" R makes the E too long
|
||||
IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN
|
||||
length 100
|
||||
ENDIF
|
||||
// "fængsel" N makes the E too long
|
||||
IF nextPhW(N) THEN
|
||||
length 100
|
||||
ENDIF
|
||||
CALL ShortVowelLength
|
||||
FMT(vowel/e_mid2)
|
||||
endphoneme
|
||||
|
||||
@@ -203,22 +261,17 @@ phoneme &
|
||||
length 140
|
||||
// "same", "sale", "bade" - consonant + @-: long
|
||||
// but NOT "hinanden"
|
||||
IF next2PhW(@-) OR next2PhW(@) AND NOT next3PhW(n) THEN
|
||||
length 225
|
||||
IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(@) THEN
|
||||
IF NOT next3PhW(n) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
ENDIF
|
||||
// ThisPh + V or @-
|
||||
// "ae", "aer" vowel + vowel: extra length
|
||||
IF nextPhW(@-) OR nextPhW(V) THEN
|
||||
length 260
|
||||
ENDIF
|
||||
// "stadig" [st&Di], "stadigt" [st&Dit]
|
||||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "Alfie", "alfer" - short before 2 consonants
|
||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
|
||||
length 140
|
||||
ENDIF
|
||||
CALL LongVowelLength
|
||||
FMT(vowel/ee_2)
|
||||
endphoneme
|
||||
|
||||
@@ -228,7 +281,7 @@ endphoneme
|
||||
phoneme ?&
|
||||
vowel starttype #e endtype #e
|
||||
length 140
|
||||
FMT(vowel/ee_2)
|
||||
FMT(vowel/ee_2)
|
||||
endphoneme
|
||||
|
||||
// Added for the æ in "dræbt"
|
||||
@@ -236,6 +289,8 @@ phoneme &#
|
||||
vowel starttype #e endtype #e
|
||||
length 140
|
||||
ipa a
|
||||
CALL LongVowelLength
|
||||
// CALL ShortVowelLength
|
||||
FMT(vowel/&)
|
||||
endphoneme
|
||||
|
||||
@@ -243,40 +298,28 @@ endphoneme
|
||||
// "revl" vs. "tremme"
|
||||
phoneme ?&#
|
||||
vowel starttype #e endtype #e
|
||||
length 120
|
||||
length 140
|
||||
CALL ShortVowelLength
|
||||
FMT(vowel/&)
|
||||
endphoneme
|
||||
|
||||
phoneme A // PB changed to a_8
|
||||
vowel starttype #a endtype #a
|
||||
length 140
|
||||
// PB long vowel followed by consonant and certain vowels - "drabelig"
|
||||
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(V) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "bange" [bAN@-] - [N] = 2 consonants (ng) => short
|
||||
IF nextPhW(N) THEN
|
||||
length 140
|
||||
ENDIF
|
||||
CALL LongVowelLength
|
||||
// "fare" [f'A:A]
|
||||
IF nextPhW(A) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "gratis"
|
||||
IF next2PhW(i) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
|
||||
length 140
|
||||
ENDIF
|
||||
FMT(vowel/a_8)
|
||||
endphoneme
|
||||
|
||||
// PB short A
|
||||
// "drab" vs. "drabelig"
|
||||
// "krabbe" vs. "drabelig"
|
||||
phoneme ?A
|
||||
vowel starttype #a endtype #a
|
||||
length 140
|
||||
CALL ShortVowelLength
|
||||
FMT(vowel/a_8)
|
||||
endphoneme
|
||||
|
||||
@@ -287,10 +330,7 @@ phoneme u
|
||||
IF nextPhW(@-) OR nextPhW(V) OR next2PhW(@-) OR next2PhW(V)THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "umulig" [u:m'uli]
|
||||
IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
CALL LongVowelLength
|
||||
FMT(vowel/u_bck)
|
||||
endphoneme
|
||||
|
||||
@@ -299,10 +339,7 @@ endphoneme
|
||||
phoneme ?u
|
||||
vowel starttype #u endtype #u
|
||||
length 140
|
||||
// "slutte" t/d + @- makes the u too long
|
||||
IF nextPhW(t) OR nextPhW(d) AND next2PhW(@-) THEN
|
||||
length 100
|
||||
ENDIF
|
||||
CALL ShortVowelLength
|
||||
FMT(vowel/u_bck)
|
||||
endphoneme
|
||||
|
||||
@@ -317,10 +354,7 @@ ENDIF
|
||||
IF next2PhW(V) OR next2PhW(@-) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "modig" - long vowel after consonant + [i]
|
||||
IF nextPhW(D) AND next2PhW(i) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
CALL LongVowelLength
|
||||
FMT(vowel/o_2)
|
||||
endphoneme
|
||||
|
||||
@@ -344,14 +378,11 @@ ENDIF
|
||||
IF nextPhW(V) OR nextPhW(@-) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "rådig"
|
||||
IF nextVowel(i) AND nextVowel(isFinalVowel) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "såre", "sårede" [s'O:?OD@-]
|
||||
IF nextPhW(O) OR nextPhW(?O) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
CALL LongVowelLength
|
||||
FMT(vowel/o_5)
|
||||
endphoneme
|
||||
|
||||
@@ -366,14 +397,7 @@ endphoneme
|
||||
phoneme V
|
||||
vowel starttype #@ endtype #@
|
||||
length 140
|
||||
// "forlig"
|
||||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// PB "konge" - ng=>n
|
||||
IF nextPhW(N) THEN
|
||||
length 140
|
||||
ENDIF
|
||||
CALL LongVowelLength
|
||||
FMT(vowel/V_4)
|
||||
endphoneme
|
||||
|
||||
@@ -387,10 +411,8 @@ endphoneme
|
||||
|
||||
phoneme 0
|
||||
vowel starttype #o endtype #o
|
||||
length 140 //225
|
||||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@-) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
length 140
|
||||
ipa ɔ
|
||||
FMT(vowel/oo_2)
|
||||
endphoneme
|
||||
|
||||
@@ -398,6 +420,7 @@ endphoneme
|
||||
phoneme ?0
|
||||
vowel starttype #o endtype #o
|
||||
length 140
|
||||
ipa ɔ
|
||||
FMT(vowel/oo_2)
|
||||
endphoneme
|
||||
|
||||
@@ -407,24 +430,20 @@ phoneme y
|
||||
// PB long vowel followed by consonant and certain vowels
|
||||
// "gyde", "gyder"
|
||||
IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(V) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "dydig" [dyDi]
|
||||
IF nextPhW(isNotVowel) AND next2PhW(i) THEN
|
||||
length 225
|
||||
// not "gebyret" TEST
|
||||
IF NOT nextPhW(3-) AND NOT nextPhW(R) AND NOT nextPhW(r) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
ENDIF
|
||||
// "syge" [sy@-] vowel + vowel: extra length, but NOT "fyret" [fyVD]
|
||||
IF nextPhW(@-) OR nextPhW(3) AND NOT next2PhW(D) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "tyve"
|
||||
IF nextPhW(?u) AND next2PhW(@-) THEN
|
||||
IF nextPhW(w) AND next2PhW(@-) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "bryde" R makes the y too long
|
||||
IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN
|
||||
length 180
|
||||
ENDIF
|
||||
CALL LongVowelLength
|
||||
FMT(vowel/y)
|
||||
endphoneme
|
||||
|
||||
@@ -433,25 +452,14 @@ endphoneme
|
||||
phoneme ?y
|
||||
vowel starttype #i endtype #i
|
||||
length 140
|
||||
// "udrydde" R makes the y too long
|
||||
IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN
|
||||
length 100
|
||||
ENDIF
|
||||
// "hytte" t/d + @- makes the y too long
|
||||
IF nextPhW(t) OR nextPhW(d) AND next2PhW(@-) THEN
|
||||
length 100
|
||||
ENDIF
|
||||
CALL ShortVowelLength
|
||||
FMT(vowel/y)
|
||||
endphoneme
|
||||
|
||||
phoneme Y
|
||||
vowel starttype #i endtype #i
|
||||
length 225
|
||||
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
|
||||
glstop
|
||||
length 140
|
||||
ENDIF
|
||||
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN
|
||||
length 140
|
||||
IF nextPhW(V) OR nextPhW(@-) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
FMT(vowel/yy)
|
||||
@@ -460,34 +468,15 @@ endphoneme
|
||||
phoneme W
|
||||
vowel starttype #@ endtype #@
|
||||
length 140
|
||||
// "kløe" vowel + vowel: long
|
||||
IF nextPhW(@-) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "røve" W + 1 consonant + 3 or W or @
|
||||
IF next2PhW(@-) OR next2PhW(3) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "røveri" but NOT "surfer" [sWfV] TEST
|
||||
IF next2PhW(V) OR next2PhW(?V) AND NOT next2PhW(isFinalVowel) THEN
|
||||
length 140
|
||||
ENDIF
|
||||
// PB "nødig", "nødigt", "kølige" - long
|
||||
IF nextVowel(i) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "møve" [mWw@-] - long
|
||||
IF nextPhW(w) AND nextVowel(@-) THEN
|
||||
length 225
|
||||
ENDIF
|
||||
// "børnebog" - short
|
||||
IF nextPhW(r) AND next2PhW(n) AND next3PhW(@-) THEN
|
||||
length 140
|
||||
ENDIF
|
||||
// PB "synge"
|
||||
IF nextPhW(N) THEN
|
||||
length 140
|
||||
ENDIF
|
||||
CALL LongVowelLength
|
||||
FMT(vowel/oe)
|
||||
endphoneme
|
||||
|
||||
@@ -496,10 +485,7 @@ endphoneme
|
||||
phoneme ?W
|
||||
vowel starttype #@ endtype #@
|
||||
length 140
|
||||
// "bryllup", "rødder" R makes the y too long
|
||||
IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN
|
||||
length 100
|
||||
ENDIF
|
||||
CALL ShortVowelLength
|
||||
FMT(vowel/oe)
|
||||
endphoneme
|
||||
|
||||
@@ -519,6 +505,7 @@ endphoneme
|
||||
phoneme ?W#
|
||||
vowel starttype #@ endtype #@
|
||||
length 140
|
||||
CALL ShortVowelLength
|
||||
FMT(vowel/V)
|
||||
endphoneme
|
||||
|
||||
@@ -562,24 +549,6 @@ endphoneme
|
||||
phoneme l/3 // Replacement for [l/]
|
||||
liquid
|
||||
lengthmod 7
|
||||
|
||||
IF nextPhW(isVowel) THEN
|
||||
// ChangePhoneme(l)
|
||||
ENDIF
|
||||
|
||||
PrevVowelEndings
|
||||
VowelEnding(l/l_@)
|
||||
VowelEnding(l/l_a)
|
||||
VowelEnding(l/l_e, -50) // hjælpe
|
||||
VowelEnding(l/l_i, -70) // flygte?
|
||||
VowelEnding(l/l_o, -60) // stole, skole, hjulpet
|
||||
VowelEnding(l/l_u, -70)
|
||||
EndSwitch
|
||||
|
||||
// IF nextPh(isLiquid) THEN
|
||||
// FMT(l/_l)
|
||||
// ENDIF
|
||||
|
||||
FMT(l/l_)
|
||||
endphoneme
|
||||
|
||||
|
||||
@@ -322,7 +322,7 @@ endphoneme
|
||||
|
||||
phoneme aI3
|
||||
vowel starttype #a endtype #@
|
||||
length 300
|
||||
length 310
|
||||
ipa aɪɚ
|
||||
IfNextVowelAppend(r-)
|
||||
FMT(vwl_en_us/ai3)
|
||||
|
||||
@@ -159,3 +159,7 @@ phoneme # // a NULL phoneme for 'virama'
|
||||
ChangePhoneme(NULL)
|
||||
endphoneme
|
||||
|
||||
phoneme z.
|
||||
CALL base/z.
|
||||
ipa U+027B
|
||||
endphoneme
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -3059,6 +3059,7 @@ int CompilePhoneme(int compile_phoneme)
|
||||
|
||||
case kRETURN:
|
||||
*prog_out++ = i_RETURN;
|
||||
DecThenCount();
|
||||
break;
|
||||
|
||||
case kINCLUDE:
|
||||
|
||||
+29
-2
@@ -699,11 +699,38 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control)
|
||||
else
|
||||
language = L('e','n');
|
||||
|
||||
if(language != tr->translator_name)
|
||||
if((language != tr->translator_name) || (language == L('k','o')))
|
||||
{
|
||||
char *p3;
|
||||
int initial, code;
|
||||
char hangul_buf[12];
|
||||
|
||||
// speak in the language for this alphabet (or English)
|
||||
ph_buf[2] = SetTranslator2(WordToString2(language));
|
||||
LookupLetter(translator2, letter, word[n_bytes], &ph_buf[3], control & 1);
|
||||
|
||||
if(((code = letter - 0xac00) >= 0) && (letter <= 0xd7af))
|
||||
{
|
||||
// Special case for Korean letters.
|
||||
// break a syllable hangul into 2 or 3 individual jamo
|
||||
|
||||
hangul_buf[0] = ' ';
|
||||
p3 = &hangul_buf[1];
|
||||
if((initial = (code/28)/21) != 11)
|
||||
{
|
||||
p3 += utf8_out(initial + 0x1100, p3);
|
||||
}
|
||||
utf8_out(((code/28) % 21) + 0x1161, p3); // medial
|
||||
utf8_out((code % 28) + 0x11a7, &p3[3]); // final
|
||||
p3[6] = ' ';
|
||||
p3[7] = 0;
|
||||
ph_buf[3] = 0;
|
||||
TranslateRules(translator2, &hangul_buf[1], &ph_buf[3], sizeof(ph_buf)-3, NULL, 0, NULL);
|
||||
SetWordStress(translator2, &ph_buf[3], NULL, -1, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
LookupLetter(translator2, letter, word[n_bytes], &ph_buf[3], control & 1);
|
||||
}
|
||||
|
||||
if(ph_buf[3] == phonSWITCH)
|
||||
{
|
||||
|
||||
+59
-50
@@ -125,6 +125,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
int delete_count;
|
||||
int word_start;
|
||||
int inserted;
|
||||
int deleted;
|
||||
PHONEME_DATA phdata;
|
||||
|
||||
int n_ph_list3;
|
||||
@@ -343,6 +344,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
plist3 = &ph_list3[j];
|
||||
|
||||
inserted = 0;
|
||||
deleted = 0;
|
||||
if(insert_ph != 0)
|
||||
{
|
||||
// we have a (linking) phoneme which we need to insert here
|
||||
@@ -431,23 +433,27 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
plist3->phcode = alternative;
|
||||
|
||||
if(alternative == 1)
|
||||
continue; // NULL phoneme, discard
|
||||
|
||||
if(ph->type == phVOWEL)
|
||||
{
|
||||
plist3->synthflags |= SFLAG_SYLLABLE;
|
||||
if(ph2->type != phVOWEL)
|
||||
plist3->stresslevel = 0; // change from non-vowel to vowel, make sure it's unstressed
|
||||
deleted = 1; // NULL phoneme, discard
|
||||
}
|
||||
else
|
||||
plist3->synthflags &= ~SFLAG_SYLLABLE;
|
||||
{
|
||||
if(ph->type == phVOWEL)
|
||||
{
|
||||
plist3->synthflags |= SFLAG_SYLLABLE;
|
||||
if(ph2->type != phVOWEL)
|
||||
plist3->stresslevel = 0; // change from non-vowel to vowel, make sure it's unstressed
|
||||
}
|
||||
else
|
||||
plist3->synthflags &= ~SFLAG_SYLLABLE;
|
||||
|
||||
// re-interpret the changed phoneme
|
||||
// But it doesn't obey a second ChangePhoneme()
|
||||
InterpretPhoneme(tr, 0x100, plist3, &phdata, &worddata);
|
||||
// re-interpret the changed phoneme
|
||||
// But it doesn't obey a second ChangePhoneme()
|
||||
InterpretPhoneme(tr, 0x100, plist3, &phdata, &worddata);
|
||||
}
|
||||
}
|
||||
|
||||
if(ph->type == phVOWEL)
|
||||
if((ph->type == phVOWEL) && (deleted == 0))
|
||||
{
|
||||
PHONEME_LIST *p;
|
||||
|
||||
@@ -552,7 +558,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
}
|
||||
}
|
||||
|
||||
if(plist3 != plist3_inserted)
|
||||
if((plist3 != plist3_inserted) && (ix > 0))
|
||||
{
|
||||
if((x = (tr->langopts.word_gap & 0x7)) != 0)
|
||||
{
|
||||
@@ -585,51 +591,54 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
// not yet implemented
|
||||
}
|
||||
|
||||
phlist[ix].ph = ph;
|
||||
phlist[ix].type = ph->type;
|
||||
phlist[ix].env = PITCHfall; // default, can be changed in the "intonation" module
|
||||
phlist[ix].synthflags = plist3->synthflags;
|
||||
phlist[ix].stresslevel = plist3->stresslevel & 0xf;
|
||||
phlist[ix].wordstress = plist3->wordstress;
|
||||
phlist[ix].tone_ph = plist3->tone_ph;
|
||||
phlist[ix].sourceix = 0;
|
||||
phlist[ix].phcode = ph->code;
|
||||
|
||||
if(plist3->sourceix != 0)
|
||||
if(deleted == 0)
|
||||
{
|
||||
phlist[ix].sourceix = plist3->sourceix;
|
||||
phlist[ix].newword = 1; // this phoneme is the start of a word
|
||||
phlist[ix].ph = ph;
|
||||
phlist[ix].type = ph->type;
|
||||
phlist[ix].env = PITCHfall; // default, can be changed in the "intonation" module
|
||||
phlist[ix].synthflags = plist3->synthflags;
|
||||
phlist[ix].stresslevel = plist3->stresslevel & 0xf;
|
||||
phlist[ix].wordstress = plist3->wordstress;
|
||||
phlist[ix].tone_ph = plist3->tone_ph;
|
||||
phlist[ix].sourceix = 0;
|
||||
phlist[ix].phcode = ph->code;
|
||||
|
||||
if(start_sentence)
|
||||
if(plist3->sourceix != 0)
|
||||
{
|
||||
phlist[ix].newword = 5; // start of sentence + start of word
|
||||
start_sentence = 0;
|
||||
phlist[ix].sourceix = plist3->sourceix;
|
||||
phlist[ix].newword = 1; // this phoneme is the start of a word
|
||||
|
||||
if(start_sentence)
|
||||
{
|
||||
phlist[ix].newword = 5; // start of sentence + start of word
|
||||
start_sentence = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
phlist[ix].newword = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
phlist[ix].newword = 0;
|
||||
}
|
||||
|
||||
// phlist[ix].length = ph->std_length;
|
||||
phlist[ix].length = phdata.pd_param[i_SET_LENGTH]*2;
|
||||
if((ph->code == phonPAUSE_LONG) && (option_wordgap > 0))
|
||||
{
|
||||
phlist[ix].ph = phoneme_tab[phonPAUSE_SHORT];
|
||||
phlist[ix].length = option_wordgap*14; // 10mS per unit at the default speed
|
||||
}
|
||||
// phlist[ix].length = ph->std_length;
|
||||
phlist[ix].length = phdata.pd_param[i_SET_LENGTH]*2;
|
||||
if((ph->code == phonPAUSE_LONG) && (option_wordgap > 0) && (plist3[1].sourceix != 0))
|
||||
{
|
||||
phlist[ix].ph = phoneme_tab[phonPAUSE_SHORT];
|
||||
phlist[ix].length = option_wordgap*14; // 10mS per unit at the default speed
|
||||
}
|
||||
|
||||
if(ph->type==phVOWEL || ph->type==phLIQUID || ph->type==phNASAL || ph->type==phVSTOP || ph->type==phVFRICATIVE || (ph->phflags & phPREVOICE))
|
||||
{
|
||||
phlist[ix].length = 128; // length_mod
|
||||
phlist[ix].env = PITCHfall;
|
||||
}
|
||||
if(ph->type==phVOWEL || ph->type==phLIQUID || ph->type==phNASAL || ph->type==phVSTOP || ph->type==phVFRICATIVE || (ph->phflags & phPREVOICE))
|
||||
{
|
||||
phlist[ix].length = 128; // length_mod
|
||||
phlist[ix].env = PITCHfall;
|
||||
}
|
||||
|
||||
phlist[ix].prepause = 0;
|
||||
phlist[ix].amp = 20; // default, will be changed later
|
||||
phlist[ix].pitch1 = 255;
|
||||
phlist[ix].pitch2 = 255;
|
||||
ix++;
|
||||
phlist[ix].prepause = 0;
|
||||
phlist[ix].amp = 20; // default, will be changed later
|
||||
phlist[ix].pitch1 = 255;
|
||||
phlist[ix].pitch2 = 255;
|
||||
ix++;
|
||||
}
|
||||
}
|
||||
phlist[ix].newword = 2; // end of clause
|
||||
|
||||
|
||||
@@ -85,6 +85,7 @@ static const unsigned short punct_chars[] = {',','.','?','!',':',';',
|
||||
0x055e, // Armenian question
|
||||
0x055b, // Armenian emphasis mark
|
||||
|
||||
0x060c, // Arabic ,
|
||||
0x061b, // Arabic ;
|
||||
0x061f, // Arabic ?
|
||||
0x06d4, // Arabic .
|
||||
@@ -132,6 +133,7 @@ static const unsigned int punct_attributes [] = { 0,
|
||||
CLAUSE_QUESTION | PUNCT_IN_WORD, // Armenian question
|
||||
CLAUSE_PERIOD | PUNCT_IN_WORD, // Armenian emphasis mark
|
||||
|
||||
CLAUSE_COMMA, // Arabic ,
|
||||
CLAUSE_SEMICOLON, // Arabic ;
|
||||
CLAUSE_QUESTION, // Arabic question mark
|
||||
CLAUSE_PERIOD, // Arabic full stop
|
||||
|
||||
+24
-4
@@ -575,6 +575,7 @@ void CalcLengths(Translator *tr)
|
||||
int last_pitch = 0;
|
||||
int pitch_start;
|
||||
int length_mod;
|
||||
int next2type;
|
||||
int len;
|
||||
int env2;
|
||||
int end_of_clause;
|
||||
@@ -689,8 +690,19 @@ void CalcLengths(Translator *tr)
|
||||
|
||||
p->prepause = 40;
|
||||
|
||||
if((prev->type == phPAUSE) || (prev->type == phVOWEL)) // || (prev->ph->mnemonic == ('/'*256+'r')))
|
||||
p->prepause = 0;
|
||||
if(prev->type == phVOWEL)
|
||||
{
|
||||
p->prepause = 0; // use murmur instead to link from the preceding vowel
|
||||
}
|
||||
else
|
||||
if(prev->type == phPAUSE)
|
||||
{
|
||||
// reduce by the length of the preceding pause
|
||||
if(prev->length < p->prepause)
|
||||
p->prepause -= prev->length;
|
||||
else
|
||||
p->prepause = 0;
|
||||
}
|
||||
else
|
||||
if(p->newword==0)
|
||||
{
|
||||
@@ -827,9 +839,17 @@ if(stress <= 1)
|
||||
next3 = &phoneme_list[ix+4];
|
||||
}
|
||||
|
||||
next2type = next2->ph->length_mod;
|
||||
if(more_syllables==0)
|
||||
{
|
||||
len = tr->langopts.length_mods0[next2->ph->length_mod *10+ next->ph->length_mod];
|
||||
if(next->newword || next2->newword)
|
||||
{
|
||||
// don't use 2nd phoneme over a word boundary, unless it's a pause
|
||||
if(next2type != 1)
|
||||
next2type = 0;
|
||||
}
|
||||
|
||||
len = tr->langopts.length_mods0[next2type *10+ next->ph->length_mod];
|
||||
|
||||
if((next->newword) && (tr->langopts.word_gap & 0x20))
|
||||
{
|
||||
@@ -841,7 +861,7 @@ if(stress <= 1)
|
||||
}
|
||||
else
|
||||
{
|
||||
length_mod = tr->langopts.length_mods[next2->ph->length_mod *10+ next->ph->length_mod];
|
||||
length_mod = tr->langopts.length_mods[next2type *10+ next->ph->length_mod];
|
||||
|
||||
if((next->type == phNASAL) && (next2->type == phSTOP || next2->type == phVSTOP) && (next3->ph->phflags & phFORTIS))
|
||||
length_mod -= 15;
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@
|
||||
#include "translate.h"
|
||||
#include "wave.h"
|
||||
|
||||
const char *version_string = "1.47.03e 29.Mar.13";
|
||||
const char *version_string = "1.47.03f 31.Mar.13";
|
||||
const int version_phdata = 0x014701;
|
||||
|
||||
int option_device_number = -1;
|
||||
|
||||
@@ -93,12 +93,12 @@ ALPHABET alphabets [] = {
|
||||
{"_ti", OFFSET_TIBET, 0xf00, 0xfff, 0, 0},
|
||||
{"_my", OFFSET_MYANMAR, 0x1000,0x109f, 0, 0},
|
||||
{"_ka", OFFSET_GEORGIAN, 0x10a0,0x10ff, L('k','a'), AL_WORDS},
|
||||
{"_ko", OFFSET_KOREAN, 0x1100,0x11ff, 0, 0},
|
||||
{"_ko", OFFSET_KOREAN, 0x1100,0x11ff, L('k','o'), AL_WORDS},
|
||||
{"_eth", OFFSET_ETHIOPIC, 0x1200,0x139f, 0, 0},
|
||||
{"_braille", 0x2800, 0x2800,0x28ff, 0, AL_NO_SYMBOL},
|
||||
{"_ja", 0x3040, 0x3040,0x30ff, 0, AL_NOT_CODE},
|
||||
{"_zh", 0x3100, 0x3100,0x9fff, 0, AL_NOT_CODE},
|
||||
{"_ko", 0xa700, 0xa700,0xd7ff, 0, AL_NOT_CODE},
|
||||
{"_ko", 0xa700, 0xa700,0xd7ff, L('k','o'), AL_NOT_CODE | AL_WORDS},
|
||||
{NULL, 0, 0, 0, 0, 0}
|
||||
};
|
||||
|
||||
|
||||
+31
-31
@@ -1732,6 +1732,7 @@ int SetTranslator2(const char *new_language)
|
||||
translator2->phoneme_tab_ix = new_phoneme_tab;
|
||||
}
|
||||
}
|
||||
translator2->phonemes_repeat[0] = 0;
|
||||
return(new_phoneme_tab);
|
||||
} // end of SetTranslator2
|
||||
|
||||
@@ -2440,6 +2441,35 @@ static int TranslateChar(Translator *tr, char *ptr, int prev_in, unsigned int c,
|
||||
0x72,0x73,0x74,0x75
|
||||
};
|
||||
|
||||
// check for Korean Hangul letters
|
||||
if(((code = c - 0xac00) >= 0) && (c <= 0xd7af))
|
||||
{
|
||||
// break a syllable hangul into 2 or 3 individual jamo
|
||||
initial = (code/28)/21;
|
||||
medial = (code/28) % 21;
|
||||
final = code % 28;
|
||||
|
||||
if(initial == 11)
|
||||
{
|
||||
// null initial
|
||||
c = medial + 0x1161;
|
||||
if(final > 0)
|
||||
*insert = final + 0x11a7;
|
||||
}
|
||||
else
|
||||
{
|
||||
// extact the initial and insert the remainder with a null initial
|
||||
c = initial + 0x1100;
|
||||
*insert = (11*28*21) + (medial*28) + final + 0xac00;
|
||||
}
|
||||
return(c);
|
||||
}
|
||||
else if(((code = c - 0x3130) >= 0) && (code < 0x34))
|
||||
{
|
||||
// Hangul compatibility jamo
|
||||
return(hangul_compatibility[code] + 0x1100);
|
||||
}
|
||||
|
||||
switch(tr->translator_name)
|
||||
{
|
||||
case L('a','f'):
|
||||
@@ -2467,36 +2497,6 @@ static int TranslateChar(Translator *tr, char *ptr, int prev_in, unsigned int c,
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case L('k','o'):
|
||||
if(((code = c - 0xac00) >= 0) && (c <= 0xd7af))
|
||||
{
|
||||
// break a syllable hangul into 2 or 3 individual jamo
|
||||
initial = (code/28)/21;
|
||||
medial = (code/28) % 21;
|
||||
final = code % 28;
|
||||
|
||||
if(initial == 11)
|
||||
{
|
||||
// null initial
|
||||
c = medial + 0x1161;
|
||||
if(final > 0)
|
||||
*insert = final + 0x11a7;
|
||||
}
|
||||
else
|
||||
{
|
||||
// extact the initial and insert the remainder with a null initial
|
||||
c = initial + 0x1100;
|
||||
*insert = (11*28*21) + (medial*28) + final + 0xac00;
|
||||
}
|
||||
return(c);
|
||||
}
|
||||
else if(((code = c - 0x3130) >= 0) && (code < 0x34))
|
||||
{
|
||||
// Hangul compatibility jamo
|
||||
return(hangul_compatibility[code] + 0x1100);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return(SubstituteChar(tr, c, next_in, insert, wordflags));
|
||||
}
|
||||
@@ -2951,7 +2951,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
|
||||
}
|
||||
else
|
||||
{
|
||||
if(iswlower(prev_in))
|
||||
if((iswlower(prev_in)) && (prev_in != 0xba)) // Windows thinks masc.ordinal (0xba) is lower-case
|
||||
{
|
||||
// lower case followed by upper case in a word
|
||||
if(UpperCaseInWord(tr, &sbuf[ix], c) == 1)
|
||||
|
||||
+14
-3
@@ -1883,12 +1883,24 @@ void FreeVoiceList()
|
||||
|
||||
ESPEAK_API const espeak_VOICE **espeak_ListVoices(espeak_VOICE *voice_spec)
|
||||
{//========================================================================
|
||||
#ifndef PLATFORM_RISCOS
|
||||
char path_voices[sizeof(path_home)+12];
|
||||
|
||||
|
||||
#ifdef PLATFORM_RISCOS
|
||||
if(n_voices_list == 0)
|
||||
{
|
||||
sprintf(path_voices,"%s%cvoices",path_home,PATHSEP);
|
||||
len_path_voices = strlen(path_voices)+1;
|
||||
GetVoices(path_voices);
|
||||
voices_list[n_voices_list] = NULL; // voices list terminator
|
||||
}
|
||||
return((const espeak_VOICE **)voices_list);
|
||||
|
||||
#else
|
||||
int ix;
|
||||
int j;
|
||||
espeak_VOICE *v;
|
||||
static espeak_VOICE **voices = NULL;
|
||||
char path_voices[sizeof(path_home)+12];
|
||||
|
||||
// free previous voice list data
|
||||
FreeVoiceList();
|
||||
@@ -1926,7 +1938,6 @@ ESPEAK_API const espeak_VOICE **espeak_ListVoices(espeak_VOICE *voice_spec)
|
||||
}
|
||||
return((const espeak_VOICE **)voices);
|
||||
#endif
|
||||
return((const espeak_VOICE **)voices_list);
|
||||
} // end of espeak_ListVoices
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user