mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 21:39:47 +00:00
[1.39.14]
Provide Viseme events on the Windows SAPI5 interface. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@199 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
+7
-6
@@ -148,6 +148,7 @@ _roman rum'eIns@
|
||||
|
||||
// Place names
|
||||
|
||||
afganistan afg'anistan
|
||||
alaska al'aska
|
||||
algerië alx2'e@re@:@-
|
||||
antwerpen antv&rp@n
|
||||
@@ -160,6 +161,7 @@ bermuda $2
|
||||
bethlehem bEt_liEm
|
||||
boedapest budapEst
|
||||
boekarest bukarEst
|
||||
bolivië bul'Ivi:@
|
||||
bonnievale _^_EN
|
||||
brittanje $2
|
||||
brooklyn _^_EN
|
||||
@@ -196,6 +198,7 @@ hermon $1
|
||||
hirosjima hiruS'ima
|
||||
israel IsraI:l
|
||||
italië it'A:li;@
|
||||
kalafong kalaf'ON
|
||||
kanada kanad%a
|
||||
kanaän kA:nA:an
|
||||
kaïro ka_'iru
|
||||
@@ -309,6 +312,7 @@ der d@r
|
||||
derick dErik
|
||||
deventer d'e@v@nt@r
|
||||
diana dij'A:na
|
||||
donaldson _^_EN
|
||||
du $u
|
||||
(du pisanie) du||pis'A:ni
|
||||
(du plessis) du||pl@s'i
|
||||
@@ -640,6 +644,8 @@ dis $u
|
||||
aangaande $2
|
||||
aanstaande $2
|
||||
adagio ad'A:dZi;%@U
|
||||
afgaanse afg'A:ns@
|
||||
afgane afg'A:n@
|
||||
africana $3
|
||||
afkere afke@r@
|
||||
agamemnon ax2am'EmnOn
|
||||
@@ -650,14 +656,12 @@ algaande $2
|
||||
alge alx2@
|
||||
algehele alx2@h,e@l@
|
||||
allegro al'Egru
|
||||
alles al@s
|
||||
almiskie $3
|
||||
alom al_'Om
|
||||
alreeds $2
|
||||
alternatiewe $4
|
||||
amen A:mEn
|
||||
anale an'A:l@
|
||||
//###anatomie $4 $only
|
||||
asof asOf
|
||||
asook %as_o@k
|
||||
aspris $2
|
||||
@@ -674,7 +678,7 @@ bene be@n@
|
||||
beswil bEsv@l
|
||||
besnedene b@sne@d@n@
|
||||
bestes bEst@s
|
||||
beta be@ta
|
||||
beta be@ta $only
|
||||
bewe be@v@
|
||||
bewend be@v@nt
|
||||
bewering b@ve@rIN
|
||||
@@ -766,7 +770,6 @@ hokaai hOkAI
|
||||
hoofsaaklik $2
|
||||
hoogedele ho@x2 _e@d@l@
|
||||
hosanna hus'ana
|
||||
//###huigelary $4
|
||||
|
||||
ibis $1
|
||||
idee $2
|
||||
@@ -941,7 +944,6 @@ sinagoge s@n@x2o@x2@
|
||||
senatore s@nat'o@r@
|
||||
singenot sInx2@nOt
|
||||
sir _^_EN
|
||||
skares skA:r@s
|
||||
skepsele skEps@l@
|
||||
skuldelas skWld@las
|
||||
s'n s@n $u
|
||||
@@ -1003,7 +1005,6 @@ verse f&:rs@
|
||||
vers f&:rs
|
||||
verste f&rst@
|
||||
verte f&rt@
|
||||
vertes f&rt@s
|
||||
verweg f&:rv&x2
|
||||
via via
|
||||
volheid $1
|
||||
|
||||
+14
-3
@@ -68,7 +68,6 @@
|
||||
a (riA 'A: // akwarium/barium/estuarium/herbarium/seminaria
|
||||
a (ristokr %a // shorten 1st a: aristokrasie/-kraat/-krate/-kraties
|
||||
arm (last %ar@-m // move default stress: armlastig/-e
|
||||
@C) as (_ as // shorten final a of words ending in -as: rigtingvas/jonkmanskas, etc.
|
||||
C) asie 'A:si
|
||||
@@@@) asie A:s%i
|
||||
oub) asie A:si // restore default stress: oubasie/-s
|
||||
@@ -256,6 +255,7 @@
|
||||
ar (seen %ar
|
||||
ar (tikel %ar // stress: artikel and compounds
|
||||
artiku %art%ik%y // stress and vowel sounds: artikulasie/artikuleer
|
||||
@C) as (_ as // shorten final a of words ending in -as: rigtingvas/jonkmanskas, etc.
|
||||
_) a (sië A: // fix stress and a sound: Asië/-r/-rs
|
||||
_) a (strA %a // astrant/astrale/astraal
|
||||
artille (rie %art@l@ // stress and vowel sounds: artillerie and compounds
|
||||
@@ -854,6 +854,7 @@
|
||||
CAC) e (CC @ // fix e sound: nalatenskap/wapenstilstand
|
||||
CAC) e (C% E // beesfilette/nougesette/onderbesette/voortgesette
|
||||
juwel) e (C @ // fix e sound: juwelekissie and similar compounds
|
||||
fontein) e (C @_ // fix e sound: Fonteinesirkel/-wisselaar, etc.
|
||||
kening) e (@ @ // fix e sound: rekeningeklerk/-navraag and similar
|
||||
narkos) e (C @ // fix e sound: narkosedood/-gas/-masker/-middel/-rekords, etc.
|
||||
ooi) e (C @ // fix e sound: dooiepunt/ooievaar and similar
|
||||
@@ -1048,7 +1049,7 @@
|
||||
AAv) eer e@r // restore default stress: pouveer/makouveer/horlosieveer/kraaiveer/rooiveer
|
||||
w) eer e@r // stress may vary in words containing weer: lugafweer/donderweer
|
||||
u) eer 'e@r // aktueer/konstrueer/salueer, etc.
|
||||
effek %e@fEk // move default stress and fix e sound: effek/-te/-tief
|
||||
effek (K %ifEk // move default stress and fix e sound: effek/-te/-tief/rimpeleffek
|
||||
eienaardig %eI@nA:rd@x2 // move default stress: eienaardig/-ste
|
||||
@) ein (dig 'eIn // nimmereindige/nimmereindigend
|
||||
eind (eks eInt_ // fix d sound and make short pause: eindeksamen/-s and compounds
|
||||
@@ -1967,6 +1968,11 @@
|
||||
j j
|
||||
j (j
|
||||
ja (broer jA: // fix a sound: jabroer/-s
|
||||
_) jag (A j''ax2_ // fix stress and a sound: jagavontuur/-ekspedisie/-entoesias/-eskader/-instink...
|
||||
jag (end jA:x2 // but long a in jagend/-e and compounds
|
||||
jag (er jA:x2 // long a in jager and compounds
|
||||
jag (ing jA:x2 // long a in (ver)jaging and similar
|
||||
jaguar jagwar // fix a, g and u sounds: jaguar and compounds
|
||||
_) ja (CobA j%a // fix stress and a sound: Jacoba/Jacobus/Jakobus
|
||||
jakaranda j%ak%ar'anda //jakaranda and compounds
|
||||
jakopewer j%ak%Ope@v@r_ // fix stress and vowel sounds: jakopewer/-oë
|
||||
@@ -3374,6 +3380,7 @@
|
||||
profesie prOf@s'i // fix vowel sounds and move stress
|
||||
profit (e pr%Of@t // fix stress and vowel sounds: profiteer/-tering
|
||||
pro (gram pr%u // fix stress and o sound: program/-e/ontwikkelingsprogram
|
||||
programme (ring pr%ux2r%ame@ // fix e sound and stress: (rekenaar)programmering(staal), etc.
|
||||
pro (gress pr%o@ // fix stress and o sound: progressie/-f/-we
|
||||
pro (CA pr%u // probeer/produk/proses/professie/provinsie
|
||||
produk (A pr%udWk_ // fix u sound, pause: produkopsies/-uitstalling, etc.
|
||||
@@ -3510,6 +3517,7 @@
|
||||
regime (_ r@Zi:m // regime/-s and compounds
|
||||
regi (ment r@x2@ // fix stress and e and i sounds: regement/-e and compounds
|
||||
regimen (ta@ r%Ex2%im%En // fix stress: regimentaal/-tale
|
||||
regi (sseuC r@x2@ // fix stress and e sound: (film-/kuns-/mede-/musiek-/oorklankings-)regisseur/-sseuse
|
||||
reg (ist r@x2 // registrasie/-nommer/register/bevolkingsregister
|
||||
regle (ment r@x2l@ // fix stress and e sounds: reglement/-e and compounds
|
||||
regverdig r&x2f'&rd@x2 // regverdig/onregverdige/regverdigheid - verwyder uit af_list
|
||||
@@ -3576,6 +3584,7 @@
|
||||
.group s
|
||||
s s
|
||||
s (s
|
||||
@) s (_S1q s // to correctly handle plurals of propernames in af_list: Jouberts, etc.
|
||||
@@@) s (_S1 s // to correctly handle plural s
|
||||
i) s (_ s // exceptions to rule: @@@) s (_S1 s
|
||||
se (_ s@ //the word se and some ending in se
|
||||
@@ -3630,7 +3639,7 @@
|
||||
seroto (ni s%Er@t%u // fix stress and vowel sounds: serotonien(vlakke, etc.)
|
||||
sitrus s'itr%Ws_ //i sound and stress in compounds
|
||||
|
||||
saamge (P6 s'A:mx2@ // saamgepers/-de/saamgetel/saamgeêet
|
||||
_) saam (P4 s'A:m // saamgepers/-de/saamgetel/saamgeêet/saampers
|
||||
saamgee sA:mx2e@ // fix ee in saamgee; see rule: saamge (P6
|
||||
sabot (A s%ab%ut // sabotasie/saboteer
|
||||
safari s%afA:r%i // fix 1st a: safari/safaripak, etc.
|
||||
@@ -4029,10 +4038,12 @@
|
||||
straa) t (j t // split tj sound: straat(jas/-joggie/-jonge/-joernaal)
|
||||
ui) tj tj // uitjaag/uitjou/uitjubel
|
||||
ui) tjie ci // beskuitjie/fluitjie/ruitjie/uitjie, etc.
|
||||
@) tjoernali tj%urn%al@ // fix stress, split t/j: front-/koerant-/sport-/vryskutjoernalis, etc.
|
||||
_) th (@@ t
|
||||
@) th (C t // drop h: Bothma/Neethling and similar
|
||||
_) theu t''Y@ // Theuns/Theunis
|
||||
_) th _^_EN // if only one vowel character
|
||||
@) thy (_ _^_EN // words and names ending in -thy are English: Cathy, etc.
|
||||
@) th (_N _^_EN
|
||||
@) tion (_ _^_EN //words ending in tion is English
|
||||
@) tions (_ _^_EN //words ending in tions is English
|
||||
|
||||
@@ -384,11 +384,6 @@ synchro) ni ni
|
||||
qu kv
|
||||
|
||||
.group r
|
||||
// r r
|
||||
// A) r (A *
|
||||
// C) r (A @-*
|
||||
// rr *r
|
||||
// right rajt
|
||||
K) r (K r-
|
||||
|
||||
r R
|
||||
|
||||
@@ -589,6 +589,13 @@
|
||||
&) ie (r_ 'i:
|
||||
u) ie (r_ _|'i:
|
||||
&) ie (rlich 'i:
|
||||
bank) ie (r I'e:
|
||||
barr) ie (r I'e:
|
||||
financ) ie (r I'e:
|
||||
hotel) ie (r I'e:
|
||||
prem) ie (r I'e:
|
||||
hyg) ie (n I'e:
|
||||
ital) ie (n I'e:
|
||||
d) ienst i:nst
|
||||
r) ien (@ IEn
|
||||
&) ien (_ =I@n
|
||||
|
||||
+49
-37
@@ -15,6 +15,19 @@ n N p r s S t tS
|
||||
v w x2 z Z
|
||||
|
||||
|
||||
Dictionary bn_dict
|
||||
|
||||
& a a: a~ e E e~ i
|
||||
I i: i:~ i~ l- o O o:
|
||||
o~ O~ r- U u u: u:~ u~
|
||||
|
||||
* b B c C ch d d.
|
||||
g h j J k kh l m
|
||||
n N n. n^ p ph Q r
|
||||
r. s S s. t t. t.h th
|
||||
tS x z
|
||||
|
||||
|
||||
Dictionary cs_dict
|
||||
|
||||
@- a a: aU e e: eI eU
|
||||
@@ -277,6 +290,34 @@ n^ p r R s S t tS
|
||||
ts tS; v x z Z
|
||||
|
||||
|
||||
Dictionary ml_dict
|
||||
|
||||
a a: aI aU e E e: i
|
||||
I i: o o: r- u u: V
|
||||
y
|
||||
|
||||
: b c ch d d. dZ f
|
||||
g h j J k kh l l.
|
||||
m n N n. n^ p ph R
|
||||
R2 s s. S; t t. t.h th
|
||||
tS v w z z.
|
||||
|
||||
|
||||
Dictionary ne_dict
|
||||
|
||||
@ @- @2 @3 a a: aI aU
|
||||
a~ e E e: E: E~ e~ i
|
||||
I i: i~ l- o O o: O:
|
||||
o~ O~ r- U u u: u~ V
|
||||
|
||||
- : b c ch d d. f
|
||||
g h H j J k kh l
|
||||
l. m n N n. n^ p ph
|
||||
Q q r r. s S s. t
|
||||
T t. t.h th v w x z
|
||||
z.
|
||||
|
||||
|
||||
Dictionary nl_dict
|
||||
|
||||
8 @ @- A a: E e: EI
|
||||
@@ -470,42 +511,13 @@ l m n N p r s t
|
||||
tS v w z
|
||||
|
||||
|
||||
Dictionary ml_dict
|
||||
Dictionary lv_dict
|
||||
|
||||
a a: aI aU e E e: i
|
||||
I i: o o: r- u u: V
|
||||
y
|
||||
a a: ai au e e: ei i
|
||||
i: ie iu o o: oi u u:
|
||||
ui uo
|
||||
|
||||
: b c ch d d. dZ f
|
||||
g h j J k kh l l.
|
||||
m n N n. n^ p ph R
|
||||
R2 s s. S; t t. t.h th
|
||||
tS v w z z.
|
||||
|
||||
|
||||
Dictionary bn_dict
|
||||
|
||||
& a a: a~ e E e~ i
|
||||
I i: i:~ i~ l- o O o:
|
||||
o~ O~ r- U u u: u:~ u~
|
||||
|
||||
* b B c C ch d d.
|
||||
g h j J k kh l m
|
||||
n N n. n^ p ph Q r
|
||||
r. s S s. t t. t.h th
|
||||
tS x z
|
||||
|
||||
|
||||
Dictionary ne_dict
|
||||
|
||||
@ @- @2 @3 a a: aI aU
|
||||
a~ e E e: E: E~ e~ i
|
||||
I i: i~ l- o O o: O:
|
||||
o~ O~ r- U u u: u~ V
|
||||
|
||||
- : b c ch d d. f
|
||||
g h H j J k kh l
|
||||
l. m n N n. n^ p ph
|
||||
Q q r r. s S s. t
|
||||
T t. t.h th v w x z
|
||||
z.
|
||||
b c d dZ f g h j
|
||||
J k l l^ m n N n^
|
||||
p R R2 s S t tS ts
|
||||
v z Z
|
||||
|
||||
+7
-2
@@ -350,6 +350,9 @@ prof $dot
|
||||
rev $dot
|
||||
st $dot
|
||||
|
||||
// not abbreviations when all-caps
|
||||
all O:l $allcaps
|
||||
no noU $allcaps
|
||||
|
||||
|
||||
// MAIN WORD DICTIONARY
|
||||
@@ -451,7 +454,6 @@ alfalfa alf'alf@
|
||||
alias eIli@s
|
||||
alibi al@baI
|
||||
alkali alk@laI
|
||||
all O:l $allcaps // not abbrev.
|
||||
allay a2leI
|
||||
allegiance a2li:dZ@ns
|
||||
allele a2li:l
|
||||
@@ -597,6 +599,7 @@ barometer b@r0mI2t3
|
||||
barrage barA:Z
|
||||
basis beIsIs
|
||||
bass beIs
|
||||
baste beIst
|
||||
bastion basti@n
|
||||
batman batman
|
||||
bayou baIu:
|
||||
@@ -937,6 +940,7 @@ edit EdIt
|
||||
edition I2dIS@n
|
||||
edwardian Edw'O@di@n
|
||||
efile i:faIl
|
||||
egg Eg // egging
|
||||
eh eI
|
||||
el ,El
|
||||
electricity I2lEktr'IsI2tI
|
||||
@@ -1795,6 +1799,7 @@ saline seIlaIn
|
||||
san ,san
|
||||
sardine $2
|
||||
satan seIt@n
|
||||
satanist seIt@nIst
|
||||
saucepan sO:sp@n
|
||||
saudi saUdI
|
||||
says sEz
|
||||
@@ -1852,6 +1857,7 @@ sierra sI'e@r@
|
||||
signage saInI2dZ
|
||||
sikh si:k
|
||||
silhouette sI2lUw'Et
|
||||
silo saIloU
|
||||
simon saIm@n
|
||||
simultaneous $3
|
||||
singly sINglI $verbf
|
||||
@@ -2421,7 +2427,6 @@ Denise d@ni:s
|
||||
Derek dErIk
|
||||
Dinah daIn@
|
||||
Dominic d0mI2nIk
|
||||
Donald d0n@Ld
|
||||
Doris d0rIs
|
||||
Dougall du:g@L
|
||||
Dylan dIl@n
|
||||
|
||||
+6
-1
@@ -29,6 +29,8 @@
|
||||
// ?7 Scottish
|
||||
// ?8 Use full vowel, not schwa in some word endings
|
||||
|
||||
.L01 l r
|
||||
|
||||
.replace
|
||||
ff ff // ligature
|
||||
fi fi
|
||||
@@ -2348,7 +2350,7 @@
|
||||
_) exc (e %Eks
|
||||
exc (i %Eks
|
||||
exc (elle Eks
|
||||
ex (e+ Eks
|
||||
C) ex (e Eks
|
||||
exe (cutio EksI
|
||||
ex (erc Eks
|
||||
_) ex (A %Egz
|
||||
@@ -2533,6 +2535,7 @@
|
||||
@) i (butive 'I
|
||||
@) i (butor 'I
|
||||
&) i (c_ =I
|
||||
&) i (ciCe_ =I
|
||||
&) i (ca_ =I
|
||||
&) ico (_ =I2koU
|
||||
&) i (cal =I
|
||||
@@ -3714,6 +3717,7 @@
|
||||
pers) on @n
|
||||
pers) on (i '0n
|
||||
postp) on 'oUn
|
||||
on (ald 0n
|
||||
d) on (at %oUn
|
||||
on (an_ oUn
|
||||
_) on (io Vn
|
||||
@@ -4322,6 +4326,7 @@
|
||||
rhyth rID
|
||||
_) rm ,A@Em
|
||||
rrhoea r'i@
|
||||
_) ru (bL01 ru:
|
||||
_) run (a rVn
|
||||
_) run (o rVn
|
||||
_) rw r%U
|
||||
|
||||
+2
-1
@@ -24,7 +24,7 @@
|
||||
|
||||
// 2006-11-18 Gilles Casse <gcasse@oralux.org>
|
||||
//
|
||||
// Updated 2008-10-13 Michel Such <michel.such@free.fr>
|
||||
// Updated 2008-10-24 Michel Such <michel.such@free.fr>
|
||||
//
|
||||
// * Numbers, a few abbreviations and exceptions.
|
||||
//
|
||||
@@ -268,6 +268,7 @@ anpe $abbrev
|
||||
api $abbrev
|
||||
avh aveaS
|
||||
bd boulevard $text
|
||||
brltty $abbrev
|
||||
cci $abbrev
|
||||
cio $abbrev
|
||||
ctrl control $text $pause
|
||||
|
||||
+16
-9
@@ -23,7 +23,7 @@
|
||||
|
||||
// 2006-11-18 Gilles Casse <gcasse@oralux.org>
|
||||
//
|
||||
// Updated: 2008-10-16 Michel Such <michel.such@free.fr>
|
||||
// Updated: 2008-11-01 Michel Such <michel.such@free.fr>
|
||||
//
|
||||
|
||||
// Letter classes:
|
||||
@@ -70,6 +70,8 @@
|
||||
|
||||
a (nnA a // manne
|
||||
an (K A~ // ancien, élan
|
||||
@@m) an (_ an // tennisman
|
||||
lism) an (_ A~ // talisman
|
||||
_C) aon (_ A~ // faon, paon, taon
|
||||
s) aoul (_ u // saoul
|
||||
s) aou (le u // saoule
|
||||
@@ -83,6 +85,7 @@
|
||||
_) auto (@P4 oto
|
||||
_) autom (n otO
|
||||
_) au (treX o2
|
||||
bb) aye (X ei // abbaye
|
||||
p) a (ys E // pays paysage
|
||||
ay (C E // aymé
|
||||
ay Ej // paye
|
||||
@@ -116,9 +119,11 @@
|
||||
cc (Y ks // accéder
|
||||
cc k // occuper
|
||||
_) ch (arism k // charisme, charismatique
|
||||
_) ch (irop k // chiroptère
|
||||
a) ch (_ k // almanach
|
||||
e) ch (_ k // varech
|
||||
_A) ch (o_ k // écho
|
||||
mani) ch (é k // manichéisme
|
||||
_eu) ch (ari k // eucharistie
|
||||
or) ch (esC k // orchestre
|
||||
or) ch (iC k // orchidée
|
||||
@@ -230,6 +235,7 @@ _) ç' (P2v s
|
||||
CC) ein (_ E~n2 // plein emploi
|
||||
e (il E // vieille
|
||||
ei E // neige
|
||||
eoi wA // asseoir
|
||||
ell El // selle
|
||||
el (K El // celsius, caramel
|
||||
_f) em (me a // femme
|
||||
@@ -248,18 +254,18 @@ _) ç' (P2v s
|
||||
em (p A~
|
||||
en (_ A~n2 // en
|
||||
en (hA A~n // enharmonique
|
||||
en (A A~n // enivrer
|
||||
_) en (A A~n // enivrer
|
||||
|
||||
C) en (d_ A~ // comprend dépend
|
||||
od) en (dr E~ // rhododendron
|
||||
qu) en (d_ A~
|
||||
|
||||
pati) en A~ // patient patience
|
||||
X) en (nu A~ // ennui
|
||||
|
||||
C) en (A @n // menu
|
||||
|
||||
en (nu A~ // ennui
|
||||
en (nA E // penne ennemi
|
||||
|
||||
é) en (_ E~ // européen
|
||||
|
||||
Ci) en (nA E // mienne
|
||||
|
||||
éC) en (t_ A~ // récent différent élément
|
||||
@@ -579,6 +585,7 @@ _) ç' (P2v s
|
||||
vin) gt (_sept t
|
||||
vin) gt (_huit t
|
||||
vin) gt (_neuf t
|
||||
vin) gt (_neuvi t
|
||||
|
||||
gt (_ // vingt doigts
|
||||
|
||||
@@ -794,7 +801,6 @@ _) half _^_en
|
||||
|
||||
_) n' (P2v n
|
||||
|
||||
A) ng (_ N // parking meeting
|
||||
nn n // panne
|
||||
_) n (_° nymero
|
||||
_) neuro (@@P5 nYro
|
||||
@@ -990,6 +996,7 @@ mou) rr rr // mourrai
|
||||
s s // verser sien
|
||||
|
||||
s (_S1 z2
|
||||
stein (_ Stajn
|
||||
|
||||
_) s' (P2v s // s'amène
|
||||
_) s' (esXP2v s // s'amène
|
||||
@@ -1079,7 +1086,6 @@ _tou) s (_leurs_
|
||||
_) sky _^_en
|
||||
_) smil _^_en // smile, smiley
|
||||
spy _^_en
|
||||
sy (_ _^_en
|
||||
|
||||
|
||||
.group t
|
||||
@@ -1280,7 +1286,8 @@ Vn) t (_ t2
|
||||
x ks
|
||||
xs ks // lexique lexicaux vox
|
||||
e) x (A gz // exagérer exemple
|
||||
le) x (i ks
|
||||
Ce) x (i ks
|
||||
ine) x (i gz
|
||||
_e) x (h gz // exhumer
|
||||
|
||||
ai) x (_ // voix paix prix
|
||||
|
||||
@@ -346,11 +346,6 @@ _administratív) n (e n
|
||||
qu kv
|
||||
|
||||
.group r
|
||||
// r r
|
||||
// A) r (A *
|
||||
// C) r (A @-*
|
||||
// rr *r
|
||||
|
||||
K) r (K r-
|
||||
r R
|
||||
rr R
|
||||
|
||||
+35
-1
@@ -1,4 +1,4 @@
|
||||
54 phoneme tables
|
||||
55 phoneme tables
|
||||
new total
|
||||
base 100 100
|
||||
base2 24 119
|
||||
@@ -54,6 +54,7 @@
|
||||
ml 13 139
|
||||
bn 59 145
|
||||
ne 14 141
|
||||
lv 26 121
|
||||
|
||||
Data file Used by
|
||||
b/b [b] base
|
||||
@@ -578,6 +579,7 @@ r3/r_trill [R2] base
|
||||
[R] sk
|
||||
[r*] sr
|
||||
[x] pt
|
||||
[R] lv
|
||||
r3/r_trill2 [R] base
|
||||
[r] cy
|
||||
[R] hr
|
||||
@@ -591,6 +593,7 @@ r3/r_trill.wav [R2] base
|
||||
[R] sk
|
||||
[r*] sr
|
||||
[x] pt
|
||||
[R] lv
|
||||
r3/r_u [(u)] base
|
||||
r3/rx [*] base
|
||||
[r/] base
|
||||
@@ -780,6 +783,7 @@ ustop/k_ [k] base
|
||||
[k] sw
|
||||
[k] sq
|
||||
[kh] bn
|
||||
[k] lv
|
||||
ustop/ki [c] base
|
||||
[k] base
|
||||
[k] base2
|
||||
@@ -797,6 +801,7 @@ ustop/ki [c] base
|
||||
[c] tr
|
||||
[J] ku
|
||||
[c] ku
|
||||
[k] lv
|
||||
ustop/kl [k] base
|
||||
[k] base2
|
||||
[k] en
|
||||
@@ -809,6 +814,7 @@ ustop/kl [k] base
|
||||
[k] zhy
|
||||
[k] sw
|
||||
[kh] bn
|
||||
[k] lv
|
||||
ustop/kr [k] base
|
||||
[k] base2
|
||||
[k] en
|
||||
@@ -821,6 +827,7 @@ ustop/kr [k] base
|
||||
[k] zhy
|
||||
[k] sw
|
||||
[kh] bn
|
||||
[k] lv
|
||||
ustop/k_unasp [k] base
|
||||
[k] base2
|
||||
[k] fi
|
||||
@@ -832,6 +839,7 @@ ustop/k_unasp [k] base
|
||||
[k`] ko
|
||||
[k] sq
|
||||
[k] bn
|
||||
[k] lv
|
||||
ustop/k_unasp_ [k] zh
|
||||
ustop/null [?] base
|
||||
ustop/p [p] base
|
||||
@@ -860,6 +868,7 @@ ustop/pl [p] base
|
||||
[p] sq
|
||||
[p] bn
|
||||
[ph] bn
|
||||
[p] lv
|
||||
ustop/pr [p] base
|
||||
[p] base2
|
||||
[p] fi
|
||||
@@ -884,6 +893,7 @@ ustop/p_unasp [p] base
|
||||
[p`] ko
|
||||
[p] sq
|
||||
[p] bn
|
||||
[p] lv
|
||||
ustop/p_unasp_ [p] base2
|
||||
[p] fi
|
||||
[p] hi
|
||||
@@ -893,6 +903,7 @@ ustop/p_unasp_ [p] base2
|
||||
[p;] ro
|
||||
[p] sq
|
||||
[p] bn
|
||||
[p] lv
|
||||
ustop/q [q] base
|
||||
ustop/q_u [q] base
|
||||
ustop/t [t] base
|
||||
@@ -913,6 +924,7 @@ ustop/t_ [t] base
|
||||
[t] sq
|
||||
[t.] bn
|
||||
[t.h] bn
|
||||
[t] lv
|
||||
ustop/t_dnt [t] base
|
||||
[t[] base
|
||||
[t] base2
|
||||
@@ -950,6 +962,7 @@ ustop/ts [ts] base2
|
||||
[ts;] ro
|
||||
[z] zhy
|
||||
[tsh] zh
|
||||
[ts] lv
|
||||
ustop/tsh [tS] base
|
||||
[c] zhy
|
||||
ustop/tsh_ [tS] base
|
||||
@@ -964,6 +977,7 @@ ustop/t_short [t] fr
|
||||
[t] el
|
||||
[t] sq
|
||||
[t.] bn
|
||||
[t] lv
|
||||
ustop/tsh_pzd [tS;] zh
|
||||
ustop/tsh_pzd_unasp [tS;] zh
|
||||
ustop/tsh_sr [tS] sr
|
||||
@@ -1012,6 +1026,7 @@ vdiph2/i@ [i@] en_n
|
||||
vdiph2/i@_2 [i@] en_wm
|
||||
vdiph2/ie [i@] en_wi
|
||||
[ie] fi
|
||||
vdiph2/ie_2 [ie] lv
|
||||
vdiph2/ii@ [i@] en
|
||||
[i@3] en
|
||||
vdiph2/ii@_3 [i@] vi
|
||||
@@ -1020,6 +1035,7 @@ vdiph2/iu [iU] base2
|
||||
[iU] vi
|
||||
[iu] zhy
|
||||
vdiph2/iu_2 [iu] fi
|
||||
[iu] lv
|
||||
vdiph2/iu_3 [iu] af
|
||||
vdiph2/iu_4 [Iu] cy
|
||||
[Yu] cy
|
||||
@@ -1033,6 +1049,7 @@ vdiph2/o_oo [o@] en_wi
|
||||
[o] zh
|
||||
vdiph2/u-@ [y@] vi
|
||||
vdiph2/u#@ [U@] en_sc
|
||||
vdiph2/uaa [uo] lv
|
||||
vdiph2/uo [uo] fi
|
||||
vdiph2/uu@ [U@] en
|
||||
[U@] en_n
|
||||
@@ -1057,6 +1074,7 @@ vdiph/aai_2 [AI] af
|
||||
[AY] cy
|
||||
vdiph/aai_3 [ai] fi
|
||||
vdiph/aau [au] fi
|
||||
[au] lv
|
||||
vdiph/aau_2 [aU] en_wi
|
||||
[aU] de
|
||||
[VU] nl
|
||||
@@ -1078,6 +1096,7 @@ vdiph/ai [aI] base2
|
||||
[aI] pt
|
||||
[a:I] vi
|
||||
[aI] id
|
||||
[ai] lv
|
||||
vdiph/ai_2 [aI] cy
|
||||
[aY] cy
|
||||
vdiph/ai_3 [aI] no
|
||||
@@ -1113,6 +1132,7 @@ vdiph/eei [EI] base2
|
||||
vdiph/eei_2 [eI] eo
|
||||
[ei] fi
|
||||
[eI] id
|
||||
[ei] lv
|
||||
vdiph/eei_3 [eI] sk
|
||||
[eI] ku
|
||||
vdiph/eeu [EU] pt
|
||||
@@ -1171,6 +1191,7 @@ vdiph/ooi [OI] en
|
||||
[oi] fi
|
||||
[OI] no
|
||||
[oi] zhy
|
||||
[oi] lv
|
||||
vdiph/ooi_2 [OI] af
|
||||
vdiph/ooi_3 [OI] en_rp
|
||||
[aI] en_wm
|
||||
@@ -1193,6 +1214,7 @@ vdiph/ui [uI] base2
|
||||
[ui] fi
|
||||
[uI] vi
|
||||
[ui] zhy
|
||||
[ui] lv
|
||||
vdiph/u-i [yI] vi
|
||||
vdiph/ui_2 [uI] af
|
||||
vdiph/ui_3 [uI] cy
|
||||
@@ -1360,6 +1382,7 @@ vowel/& [a] en_rp
|
||||
[&] sv
|
||||
[&] bn
|
||||
[&:] bn
|
||||
[&:] lv
|
||||
vowel/0 [0] en
|
||||
[O] hi
|
||||
[O] pt
|
||||
@@ -1421,6 +1444,7 @@ vowel/a# [a/] base2
|
||||
[&/] pt
|
||||
[a#] rw
|
||||
[a/] rw
|
||||
[&] lv
|
||||
vowel/a_2 [a] base2
|
||||
[a] en_wi
|
||||
[A:] en_wi
|
||||
@@ -1472,6 +1496,7 @@ vowel/a_5 [a:] ta
|
||||
[a] tr
|
||||
[a] sq
|
||||
[a:] ml
|
||||
[a] lv
|
||||
vowel/a_6 [a] fr
|
||||
[a2] fr
|
||||
vowel/aa [a] fi
|
||||
@@ -1489,6 +1514,7 @@ vowel/aa_2 [A:] en
|
||||
[A] zh
|
||||
vowel/aa_3 [A:] af
|
||||
[A] sq
|
||||
[a:] lv
|
||||
vowel/aa_4 [O:] en_us
|
||||
[A:] sv
|
||||
[O] vi
|
||||
@@ -1604,6 +1630,7 @@ vowel/e_mid [E] en_rp
|
||||
[E2] id
|
||||
[E] da
|
||||
[E] bn
|
||||
[e] lv
|
||||
vowel/e_mid2 [E] af
|
||||
[E] de
|
||||
[E2] de
|
||||
@@ -1617,6 +1644,7 @@ vowel/e_mid2 [E] af
|
||||
[e] sw
|
||||
[e] tr
|
||||
[E] ko
|
||||
[e:] lv
|
||||
vowel/@_fnt [@] en_wi
|
||||
[@2] en_wi
|
||||
[@2] hr
|
||||
@@ -1657,6 +1685,8 @@ vowel/i_3 [i] af
|
||||
[i] fr
|
||||
[i:] fr
|
||||
[i:] sk
|
||||
[i] lv
|
||||
[i:] lv
|
||||
vowel/i_4 [i] fi
|
||||
[i] hu
|
||||
[I] it
|
||||
@@ -1825,6 +1855,8 @@ vowel/oo_1 [O:] en_n
|
||||
[o] hr
|
||||
[o] vi
|
||||
[O/] sq
|
||||
[o] lv
|
||||
[o:] lv
|
||||
vowel/oo_2 [0] en_sc
|
||||
[O] cy
|
||||
[o] cs
|
||||
@@ -1928,6 +1960,8 @@ vowel/uu# [U] ku
|
||||
vowel/uu_2 [U] base2
|
||||
[U] de
|
||||
[U] tr
|
||||
[u] lv
|
||||
[u:] lv
|
||||
vowel/uu_3 [u] af
|
||||
[y] zh
|
||||
vowel/uu_4 [U] fi
|
||||
|
||||
@@ -425,6 +425,7 @@ phoneme r
|
||||
beforenotvowel r/2
|
||||
formants vwl_fr/@R3+r3/rx%30
|
||||
after @2 vwl_fr/@R5+r3/rx%40
|
||||
after (u) vwl_fr/@R5+r3/rx%30
|
||||
after (e) vwl_fr/@R4+r3/rx%20
|
||||
endphoneme
|
||||
|
||||
|
||||
@@ -1322,3 +1322,6 @@ include ph_bengali
|
||||
|
||||
phonemetable ne hi
|
||||
include ph_nepali
|
||||
|
||||
phonemetable lv base
|
||||
include ph_latvian
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Executable
BIN
Binary file not shown.
Binary file not shown.
@@ -23,13 +23,12 @@
|
||||
#include "src/speak_lib.h"
|
||||
#include "stdio.h"
|
||||
|
||||
|
||||
|
||||
#define CTRL_EMBEDDED 1
|
||||
|
||||
CTTSEngObj *m_EngObj;
|
||||
ISpTTSEngineSite* m_OutputSite;
|
||||
FILE *f_log2=NULL;
|
||||
ULONGLONG event_interest;
|
||||
|
||||
extern int AddNameData(const char *name, int wide);
|
||||
extern void InitNamedata(void);
|
||||
@@ -49,6 +48,10 @@ char *path_install = NULL;
|
||||
|
||||
unsigned long audio_offset = 0;
|
||||
unsigned long audio_latest = 0;
|
||||
int prev_phoneme = 0;
|
||||
int prev_phoneme_position = 0;
|
||||
unsigned long prev_phoneme_time = 0;
|
||||
|
||||
unsigned int gBufSize = 0;
|
||||
wchar_t *TextBuf=NULL;
|
||||
|
||||
@@ -65,6 +68,48 @@ int frag_count=0;
|
||||
FRAG_OFFSET *frag_offsets = NULL;
|
||||
|
||||
|
||||
int VisemeCode(unsigned int phoneme_name)
|
||||
{//======================================
|
||||
// Convert eSpeak phoneme name into a SAPI viseme code
|
||||
|
||||
int ix;
|
||||
unsigned int ph;
|
||||
unsigned int ph_name;
|
||||
|
||||
#define PH(c1,c2) (c2<<8)+c1 // combine two characters into an integer for phoneme name
|
||||
|
||||
const unsigned char initial_to_viseme[128] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 1, 0, 0, 0,19, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,
|
||||
4, 2,18,16,17, 4,18,20,12, 6,16,20,14,21,20, 3,
|
||||
21,20,13,16,17, 4, 1, 5,20, 7,16, 0, 0, 0, 0, 0,
|
||||
0, 1,21,16,19, 4,18,20,12, 6, 6,20,14,21,19, 8,
|
||||
21,20,13,15,19, 7,18, 7,20, 7,15, 0, 0, 0, 0, 0 };
|
||||
|
||||
const unsigned int viseme_exceptions[] = {
|
||||
PH('a','I'), 11,
|
||||
PH('a','U'), 9,
|
||||
PH('O','I'), 10,
|
||||
PH('t','S'), 16,
|
||||
PH('d','Z'), 16,
|
||||
PH('_','|'), 255,
|
||||
0
|
||||
};
|
||||
|
||||
ph_name = phoneme_name & 0xffff;
|
||||
for(ix=0; (ph = viseme_exceptions[ix]) != 0; ix+=2)
|
||||
{
|
||||
if(ph == ph_name)
|
||||
{
|
||||
return(viseme_exceptions[ix+1]);
|
||||
}
|
||||
}
|
||||
return(initial_to_viseme[phoneme_name & 0x7f]);
|
||||
}
|
||||
|
||||
|
||||
int SynthCallback(short *wav, int numsamples, espeak_EVENT *events);
|
||||
|
||||
int SynthCallback(short *wav, int numsamples, espeak_EVENT *events)
|
||||
@@ -73,6 +118,8 @@ int SynthCallback(short *wav, int numsamples, espeak_EVENT *events)
|
||||
wchar_t *tailptr;
|
||||
unsigned int text_offset;
|
||||
int length;
|
||||
int phoneme_duration;
|
||||
int this_viseme;
|
||||
|
||||
espeak_EVENT *event;
|
||||
#define N_EVENTS 100
|
||||
@@ -86,7 +133,7 @@ int SynthCallback(short *wav, int numsamples, espeak_EVENT *events)
|
||||
m_EngObj->CheckActions(m_OutputSite);
|
||||
|
||||
// return the events
|
||||
for(event=events; event->type != 0; event++)
|
||||
for(event=events; (event->type != 0) && (n_Events < N_EVENTS); event++)
|
||||
{
|
||||
audio_latest = event->audio_position + audio_offset;
|
||||
|
||||
@@ -121,6 +168,28 @@ int SynthCallback(short *wav, int numsamples, espeak_EVENT *events)
|
||||
Event->lParam = (long)event->id.name;
|
||||
Event->wParam = wcstol((wchar_t *)event->id.name,&tailptr,10);
|
||||
}
|
||||
if(event->type == espeakEVENT_PHONEME)
|
||||
{
|
||||
if(event_interest & SPEI_VISEME)
|
||||
{
|
||||
phoneme_duration = audio_latest - prev_phoneme_time;
|
||||
|
||||
// ignore some phonemes (which translate to viseme=255)
|
||||
if((this_viseme = VisemeCode(event->id.number)) != 255)
|
||||
{
|
||||
Event = &Events[n_Events++];
|
||||
Event->eEventId = SPEI_VISEME;
|
||||
Event->elParamType = SPET_LPARAM_IS_UNDEFINED;
|
||||
Event->ullAudioStreamOffset = ((prev_phoneme_position + audio_offset) * srate)/10; // ms -> bytes
|
||||
Event->lParam = phoneme_duration << 16 | this_viseme;
|
||||
Event->wParam = VisemeCode(prev_phoneme);
|
||||
|
||||
prev_phoneme = event->id.number;
|
||||
prev_phoneme_time = audio_latest;
|
||||
prev_phoneme_position = event->audio_position;
|
||||
}
|
||||
}
|
||||
}
|
||||
#ifdef deleted
|
||||
if(event->type == espeakEVENT_SENTENCE)
|
||||
{
|
||||
@@ -286,7 +355,7 @@ STDMETHODIMP CTTSEngObj::SetObjectToken(ISpObjectToken * pToken)
|
||||
gEmphasis = 0;
|
||||
gSayas = 0;
|
||||
|
||||
espeak_Initialize(AUDIO_OUTPUT_SYNCHRONOUS,100,path_install,0);
|
||||
espeak_Initialize(AUDIO_OUTPUT_SYNCHRONOUS,100,path_install,1);
|
||||
espeak_SetVoiceByName(voice);
|
||||
espeak_SetSynthCallback(SynthCallback);
|
||||
|
||||
@@ -654,7 +723,7 @@ STDMETHODIMP CTTSEngObj::Speak( DWORD dwSpeakFlags,
|
||||
m_ullAudioOff = 0;
|
||||
|
||||
m_OutputSite = pOutputSite;
|
||||
|
||||
pOutputSite->GetEventInterest(&event_interest);
|
||||
|
||||
xVolume = gVolume;
|
||||
xSpeed = gSpeed;
|
||||
@@ -694,6 +763,10 @@ STDMETHODIMP CTTSEngObj::Speak( DWORD dwSpeakFlags,
|
||||
}
|
||||
|
||||
audio_latest = 0;
|
||||
prev_phoneme = 0;
|
||||
prev_phoneme_time = 0;
|
||||
prev_phoneme_position = 0;
|
||||
|
||||
size = ProcessFragList(pTextFragList,TextBuf,pOutputSite,&n_text_frag);
|
||||
|
||||
if(size > 0)
|
||||
|
||||
+7
-1
@@ -966,7 +966,13 @@ int Translator::LookupNum3(int value, char *ph_out, int suppress_null, int thous
|
||||
|
||||
Lookup("_0C",ph_100);
|
||||
|
||||
if((hundreds >= 10) && (((langopts.numbers & 0x0800) == 0) || (hundreds != 19)))
|
||||
if(((langopts.numbers & 0x0800) != 0) && (hundreds == 19))
|
||||
{
|
||||
// speak numbers such as 1984 as years: nineteen-eighty-four
|
||||
// ph_100[0] = 0; // don't say "hundred", we also need to surpess "and"
|
||||
}
|
||||
else
|
||||
if(hundreds >= 10)
|
||||
{
|
||||
ph_digits[0] = 0;
|
||||
|
||||
|
||||
+1
-1
@@ -429,7 +429,7 @@ static void StopSpeak(int unused)
|
||||
int *flag;
|
||||
int val;
|
||||
};
|
||||
static int optind;
|
||||
int optind;
|
||||
static int optional_argument;
|
||||
static const char *arg_opts = "afklpsvw"; // which options have arguments
|
||||
static char *opt_string="";
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@
|
||||
#include "translate.h"
|
||||
#include "wave.h"
|
||||
|
||||
const char *version_string = "1.39.12 24.Oct.08";
|
||||
const char *version_string = "1.39.14 02.Nov.08";
|
||||
const int version_phdata = 0x013900;
|
||||
|
||||
int option_device_number = -1;
|
||||
|
||||
+16
-2
@@ -121,6 +121,9 @@ Translator *SelectTranslator(const char *name)
|
||||
int name2 = 0;
|
||||
Translator *tr;
|
||||
|
||||
static const unsigned char stress_amps_sk[8] = {16,16, 20,20, 20,24, 24,22 };
|
||||
static const short stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210};
|
||||
|
||||
// convert name string into a word of up to 4 characters, for the switch()
|
||||
while(*name != 0)
|
||||
name2 = (name2 << 8) + *name++;
|
||||
@@ -552,6 +555,19 @@ SetLengthMods(tr,3); // all equal
|
||||
}
|
||||
break;
|
||||
|
||||
case L('l','v'): // latvian
|
||||
{
|
||||
tr = new Translator();
|
||||
SetupTranslator(tr,stress_lengths_sk,stress_amps_sk);
|
||||
|
||||
tr->langopts.stress_rule = 0;
|
||||
tr->langopts.spelling_stress = 1;
|
||||
tr->charset_a0 = charsets[4]; // ISO-8859-4
|
||||
tr->langopts.numbers = 0x409;
|
||||
tr->langopts.stress_flags = 0x16;
|
||||
}
|
||||
break;
|
||||
|
||||
case L('m','k'): // Macedonian
|
||||
{
|
||||
static wchar_t vowels_cyrillic[] = {0x440, // also include 'р' [R]
|
||||
@@ -673,8 +689,6 @@ SetLengthMods(tr,3); // all equal
|
||||
case L('s','k'): // Slovak
|
||||
case L('c','s'): // Czech
|
||||
{
|
||||
static const unsigned char stress_amps_sk[8] = {16,16, 20,20, 20,24, 24,22 };
|
||||
static const short stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210};
|
||||
static const char *sk_voiced = "bdgjlmnrvwzaeiouy";
|
||||
|
||||
tr = new Translator();
|
||||
|
||||
Reference in New Issue
Block a user