mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
[1.30.04] SSML <audio src=""> now works without using a UriCallback() function, and works with the command-line espeak.
Pitch changes for mbrola are now applied over the first 80% of the phoneme, not over the whole length of the phoneme. This seems to give better intonation for mbrola voices. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@118 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
+8
-2
@@ -289,9 +289,11 @@ napoleon nap'o@liOn
|
||||
natasha n%at'aSa
|
||||
naudé nOd'e@
|
||||
neil _^_EN
|
||||
ontong OntON
|
||||
philip fIl@p
|
||||
phillips fIl@ps
|
||||
pierre p'e@r
|
||||
petronella pe@trun'&la
|
||||
petrus pe@trWs
|
||||
phoebe fi:bi
|
||||
rachmaninoff rax2m'aninOf
|
||||
@@ -458,7 +460,7 @@ hulleself hWl@s&lf $verbf
|
||||
my $u $verbf
|
||||
jou $u $verbf
|
||||
hom $u $verbf
|
||||
haar $u $verbf
|
||||
haar $u $only $verbf
|
||||
se s@
|
||||
|
||||
dis $u
|
||||
@@ -702,6 +704,8 @@ ongewoons $1
|
||||
onkunde $1
|
||||
onmag $1
|
||||
onmin $1
|
||||
oorleg $2
|
||||
oorstroom $2
|
||||
oplaas $2
|
||||
onraad $1
|
||||
onrus $1
|
||||
@@ -710,8 +714,8 @@ oorkom $2
|
||||
oorleef $2
|
||||
oorsee $2
|
||||
oorsese $2
|
||||
oorspronklike $2
|
||||
oorval $2 $verb
|
||||
oudsher @Utsh&r
|
||||
|
||||
pandemonium pand@m'o@niWm
|
||||
parate par'A:t@
|
||||
@@ -724,6 +728,8 @@ persent p@rsEnt
|
||||
petite p@tit
|
||||
pinotage pinut'A:Z
|
||||
pirouette p@ru:'Et
|
||||
primaat $2
|
||||
primate $2
|
||||
|
||||
rebelleer r@b@le@r
|
||||
retireer r@t@re@:r
|
||||
|
||||
+75
-7
@@ -1,4 +1,4 @@
|
||||
//maintainer: Willem van der Walt
|
||||
//maintainer: Willem van der Walt
|
||||
// email: wvdwalt@csir.co.za
|
||||
// tel: +27 12 8413996
|
||||
// Meraka Institute, CSIR
|
||||
@@ -699,6 +699,7 @@
|
||||
olw) e (C @ // fix e sound: golweslag/wolwedans
|
||||
blak) e (r @ // fix e sound: blakerend/-e/blakering
|
||||
skilf) e (r @ // fix e sound: skilferagtig/skilferdeeg/-kors/afgeskilferde/verskilfering
|
||||
syf) e (r @ // fix e sound: (be-/in-/ont-/uitsyfering
|
||||
CAC) e (rkK & // fix e sound: deurgewerk; exception to: CAC) e (CC
|
||||
CAp) e (rkC @ // fix e sound: hiperkrities/koperkleurig/koperknope
|
||||
CAw) e (rkA & // buitewerker/bywerking/genadewerking/grondbewerking/klerewerker/nawerking...
|
||||
@@ -725,6 +726,7 @@
|
||||
Cing) e (lA @ // fix e sound: dwingeland/klingeling/kringelend/tingeling
|
||||
maand) e (lA @ // fix e sound: (twee)maandelikse/maandelange
|
||||
KeuC) e (lC@ @ // fix e sound: euweldaad/kneukelbeentjie/kreupelsorg/onkreukelbaar...
|
||||
@mp) e (lC@ @ // fix e sound: dompeldoop/-koker/-verwarmer/drumpeltrapper/pampelmoes/rimpelpapier...
|
||||
@k) e (lde_ @ // fix e sound: gekronkelde/(ge/ver)kreukelde
|
||||
mp) e (lde_ @ // fix e sound: gemompelde/oorrompelde/verskrompelde and similar
|
||||
@C) e (lk_ & // fix e sound: many compounds ending in kelk/melk
|
||||
@@ -987,7 +989,7 @@
|
||||
entjie EiNci
|
||||
&k) entjie iNci // fix -entjie sound: bakentjie/dekentjie/kuikentjielakentjie/tekentjie, etc.
|
||||
edjie 'E:ici
|
||||
etjie ici
|
||||
&) etjie ici
|
||||
Cn) etjies Eicis // kraaknetjies/hipernetjies
|
||||
nn) etjies icis // kannetjies/mannetjies/pennetjies, etc.
|
||||
&) elik (_S4 @l@k
|
||||
@@ -1012,6 +1014,7 @@
|
||||
_) er (v &r' // ervaar/ervare/ervarings/ervaringe
|
||||
&) ere (_ @r@
|
||||
@l) ere (_ e@r@ // fix e sound: staanlere/toonlere
|
||||
sw) ere (_ e@:r@ // fix e sound: pitswere and similar compounds
|
||||
@) ery (_ @reI
|
||||
@) ery (e_ @reI // fix 2nd e sound: delwerye and similar
|
||||
eti (ket %Et%i // shorten e sound and move stress: etiket/-te
|
||||
@@ -1084,6 +1087,7 @@
|
||||
_) e (ks %E //move default stress in words starting with eks
|
||||
_C) e (on_ 'i //Leon, Deon etc.
|
||||
CoeC) e (C+ @ //fix e in boetedoening, boedelbelasting and many others
|
||||
CoeC) e (tjie i // fix e sound: (water)poeletjie/(garing)spoeletjie/groenetjies, etc.
|
||||
orr) e (l @ //fix e in borrel, orrel, korrel in compounds
|
||||
intell) e (k %E //intellek, and friends
|
||||
p) e (ring 'e@ //emansipering and others e sound and stress
|
||||
@@ -1140,6 +1144,7 @@
|
||||
flu (we fl%y // move default stress: fluweel/fluwele and compounds
|
||||
folio fo@li_u // fix o sounds: folio and compounds
|
||||
@) fonie fun'i // kakofonie/simfonieorkes/telefonie
|
||||
@) fonies f'o@nis // fix stress: simfoniese/polifonies/telefonies
|
||||
fon (tein f%On // move default stress: fontein/fonteinwater, etc.
|
||||
_) for (C f%Or // formeel/formele/forseer/fortuin
|
||||
fore (l f%ur& // fix stress and e sound: forel/-e and compounds
|
||||
@@ -2111,6 +2116,7 @@
|
||||
mental (iteit m,Ental // fix stress: mentaliteit/sentimentaliteit and compounds
|
||||
mentjie m'EiNci // monumentjie/dokumentjies
|
||||
merino m@rin%u // fix stress and vowel sounds: merino/-skaap/-ram, etc.
|
||||
me (rrie mE // fix e sound: merrie/-s/perdemerrie and similar compounds
|
||||
AAs) mes (_ mEs // fix last e sound in compounds like kombuismes
|
||||
Cs) mes (_ mEs // fix last e sound in compounds like slagtersmes
|
||||
metaal m@tA:l
|
||||
@@ -2141,6 +2147,7 @@
|
||||
oo) n (g n // hoongelag/loongeld/telefoongesprek/woongeriewe and similar
|
||||
Cui) n (g n // basuingeskal/bruingebrand/bruingeel/tuingereedskap/tuingewas/tuingrond
|
||||
y) n (g n // fyngoud/hooflyngesprek/langtermyngroei/kaplyngrens
|
||||
&) n (gat n // split "ng": mangat/-e/woongat/-e/opwengat/-e
|
||||
ng (eer Nx2 // diftongeer/gedistingeerde/rangeer and compounds
|
||||
n (_g N
|
||||
ng (ent Nx2 // kontingent/tangent and derivitives
|
||||
@@ -2271,6 +2278,7 @@
|
||||
orang )(oet %ur%aN_ // fix stress and o sound: orangoetang and compounds
|
||||
oranje %o@ranj@ // fix stress and e sound in compounds: oranjeagtig/oranjekleur
|
||||
_) ordent %OrdEnt // move default stress: ordentlik/-e/-er/-ste/-heid
|
||||
_) orde Ord@ // fix e sound: ordenende/ordening/ordeteken
|
||||
orent (K %o@rEnt // fix stress of orent in compounds: kiertsorent/orentspring, etc.
|
||||
orgi (de %Orx2@ // move default stress: orgidee/orgideë and compounds
|
||||
orie o@ri
|
||||
@@ -2344,6 +2352,7 @@
|
||||
om (ly %Om // move default stress: omlyn/-ing
|
||||
_) om (raam %Om // move default stress: omraam and derivitives
|
||||
om (ring %Om // move default stress
|
||||
om (seil %Om // move default stress: (on)omseil(baar)
|
||||
om (sig %Om // move default stress: omsigtig/-heid
|
||||
omsingel %OmsIN@l // fix stress: omsingel/fix e sound: omsingelde
|
||||
_) om (sirkel %Om // move default stress: omsirkel and derivitives
|
||||
@@ -2374,9 +2383,11 @@
|
||||
opera (K o@p@r%a // stress: opera/operas/operamusiek/-sanger
|
||||
opinie o@p'ini // opinie/-s
|
||||
opium o@piWm // fix vowel sounds: opium and compounds
|
||||
_) opmerkli (k %Opm&rkl@ // move default stress: opmerklik/-e/-heid
|
||||
op (nuut %Op // move default stress: opnuut
|
||||
op (offer Op // fix o sound: selfopperende, etc.
|
||||
oppon (A %Op@n // opponent/opponeer
|
||||
oppor (tu %Op%Or // fix stress, strip p: opportunis/-me/-ties/opportuun
|
||||
_) op (reg %Op // move default stress: opreg/-te
|
||||
op (roerig %Op // oproerig/-e/-heid, but oproer
|
||||
op (ruien %Op // move default stress: opruiend/-e
|
||||
@@ -2385,6 +2396,7 @@
|
||||
_) op (sy %Op // move default stress: opsy and compounds
|
||||
op (standig %Op // move default stress: opstandig/-e/-heid
|
||||
opti (mA %Opt%i // optimis/-me/-te/-ties/optimaal
|
||||
_) opu (s o@pW // "op" not prefix: opus/-se
|
||||
op (winde %Op // move default stress: opwindend and derivitives
|
||||
o (rakel %O // fix stress and o sound: orakel/-spreuk/-taal, etc.
|
||||
_) or (ga %Or // move default stress: orgaan/organe
|
||||
@@ -2392,7 +2404,9 @@
|
||||
ose (a %o@S%i // fix stress and s and e sounds: oseaan/oseane and compounds
|
||||
@) oties 'o@tis // antibioties/eksoties/eroties/neuroties
|
||||
_) o (va@ %o@ // move default stress: ovaal/ovale/ovaalvormig
|
||||
ovu %Ov%y // fix stress, o and v sounds: ovulasie/ovuleer
|
||||
ower (@ o@v@r // lowergroen/betowerend/dowerig/compounds of owerheid
|
||||
ower (spelig %o@v@r // move default stress: owerspelig/-e
|
||||
oë u@ //
|
||||
|
||||
.group on
|
||||
@@ -2424,14 +2438,18 @@
|
||||
onheil ''OnheIl // stress: onheil/e/onheilbringer/onheilsvoorspelling
|
||||
onheil (ig %Onh'eIl // stress: onheilig/e
|
||||
onheil (spel %Onh%eIl // stress: onheilspellend/e
|
||||
oniks o@n@ks // "on" not prefix: oniks and compounds: onikssteen, etc.
|
||||
_)on (koste On // restore default stress: onkoste/-s and compounds
|
||||
_) on (kruid On // restore default stress: onkruid/-doder and similar
|
||||
_) on (lus On // restore default stress: onlus/-te/onlusgebied, etc.
|
||||
_) onnie Oni // onnie/-s; not on- prefix
|
||||
_) on (paar On // restore default stress: onpaar/-skoene
|
||||
onreg (K Onr&x2 // stress: onreg/te/onregmatig
|
||||
on (regv++ %On // stress: onregverdig/e/heid
|
||||
on (sin_N On // restore default stress: onsin
|
||||
on (skuld_N 'On // restore default stress: onskuld
|
||||
_) ont (@P3 %Ont
|
||||
_) on (taal %On // "ont" not prefix here: ontaalkundig/-e
|
||||
_) on (tasba %On // prevent short break after t: ontasbaar/-heid/ontasbare
|
||||
ont (d@ %On // remove t sound: ontdaan/belastingontduiking/ontdooi
|
||||
onteenseg Onte@ns'&x2 // onteenseglik/e
|
||||
@@ -2440,7 +2458,10 @@
|
||||
on (toe %On // ontoereikend/heid
|
||||
on (tugtig %On // fix stress and avoid ont prefix: ontugtig/-e/-heid
|
||||
on (tug On // stress on 1st slb and avoid ont prefix: ontug/-pleger...
|
||||
on (twyfel %On // "ont" not prefix: ontwyfelbaar/-bare/-baarheid
|
||||
on (tyd %On // ontydig and derivitives
|
||||
_) onuit (@P5 On_Yyt // fix stress: onuitblusbaar/onuithou(d)baar/onuitputlik/onuitroeibaar/onuitspreekbaar
|
||||
_) on (uitge@++P2 On_ // fix stress: onuitgedoof/onuitgegee/onuitgekeer/onuitgeloot/onuitgemaak...
|
||||
_) on (wAs 'On // onwis/onwys
|
||||
_) onweer Onve@r // stress on 1st slb.: onweer/-snag/-swolke...
|
||||
_) onweer (l %Onv%e@r // but onweerlegbaar/-bare/-baarheid
|
||||
@@ -2448,6 +2469,7 @@
|
||||
_) onweer (staan %Onv%e@r // onweerstaanbaar/-bare/-baarheid
|
||||
_) onge (@P4 Onx2@
|
||||
_) ongees %Onx2%e@s // ongeesdriftig; see rule: _) onge (@P4 Onx2@
|
||||
onge (diert Onx2@ // restore default stress for ongedierte/-s
|
||||
_) ongeloofli (k Onx2@l'o@fl@ // to avoid "lik" suffix retranslation of "ongeloof"
|
||||
onge (luk_ o~Nx2@ // ongeluk/verkeersongeluk, etc.
|
||||
onge (lukke_ o~Nx2@ // ongelukke/verkeersongelukke, etc.
|
||||
@@ -2473,6 +2495,8 @@
|
||||
onder (skeid_N On@r // restore default stress: onderskeid
|
||||
onderstebo %On@rst@bo@ // fix stress: onderstebo/koponderstebo
|
||||
onder (steu %On@r // exception to default stress rule: ondersteun/-ing/-ers
|
||||
onder (stre %On@r // move default stress: onderstreep/-te/onderstreping
|
||||
onder (vang %On@r // move default stress: ondervang/-ing
|
||||
onder (vin %On@r // exception to default stress rule: ondervind/ondervinding
|
||||
onder (vra %On@r // move default stress: ondervra/-ging
|
||||
onder (werping %On@r // move default stress: onderwerping/-sklousule
|
||||
@@ -2500,33 +2524,45 @@
|
||||
oor (blyw %o@r // move default stress: oorblywend/-e
|
||||
oorbodig o@rb'o@d@x2 // stress: oorbodig/-e/-heid
|
||||
_) oor (dag %o@r // move default stress: oordag/-te
|
||||
_) oorde (k %o@rd& // fix stress and e sound: oordek/-king/-te
|
||||
_) oor (denk %o@r // move default stress: oordenk/-ing/-s
|
||||
oordrewe o@rdr'e@v@ // stress: oordrewe/oordrewenheid
|
||||
oor (dink %o@r // move default stress
|
||||
oor (doen %o@r // move default stress
|
||||
oor (donder %o@r // move default stress: oordonder/-ing
|
||||
oor (draag %o@r // move default stress: oordraagbaar/-lik, etc.
|
||||
_) oor (dryC %o@r // move default stress: oordryf/oordrywing
|
||||
_) oordwars %o@rdwars // fix stress and d sound: oordwars/-e
|
||||
oor (een %o@r // move default stress: ooreen/ooreenkom/ooreenkoms/ooreenstem
|
||||
oor (een@@ ,o@r // move default stress: ooreenkomstig/ooreenstemmend
|
||||
oor (eet %o@r_ // move default stress: ooreet/-gewoonte/-patroon
|
||||
oorerflik %o@r_&rfl@k // stress and pause: oorerflik/-e/-heid
|
||||
oor (eis %o@r_ // stress, short break: ooreis/-ing
|
||||
oor (gank %o@r // move default stress: oorganklik/-e/-heid
|
||||
_) oor (groei %o@r // move default stress: oorgroei/-de
|
||||
_) oor (haas %o@r // move default stress: oorhaas/-tig/-ting
|
||||
oor (hand@ o@r' // stress oorhandig/ing, but oorhand
|
||||
oor (heers %o@r // move default stress
|
||||
_) oor (hoofs %o@r // move default stress: oorhoofs/-e
|
||||
oorkoepel o@rk'up@l // stress and pronunc. of el: oorkoepelend/oorkoepeling
|
||||
_) oorlede o@rl'e@d@ // stress oorlede/ne/s
|
||||
oorle (wAn o@rl''e@ // stress on 2nd slb.: oorlewing/-sekuriteit/-situasie/oorlewendes
|
||||
oorle (wAn o@rl''e@ // stress on 2nd slb.: oorlewing/-sekuriteit/-situasie/oorlewendes
|
||||
oor (meester %o@r // move default stress: oormeester
|
||||
_) oor (peins %o@r // move default stress: oorpeins/-ing
|
||||
oor (reed %o@r // move default stress
|
||||
oor (redA %o@r // move default stress: oorredingskrag
|
||||
oor (rompel %o@r // move default stress
|
||||
oor (sk %o@r // stress: oorskadu/oorskat/oorskrei
|
||||
_) oor (skiet o@r // stress on 1st slb.: oorskiet and compounds
|
||||
_) oor (skadu %o@r // move default stress: oorskadu/-wing
|
||||
_) oor (skat %o@r // move default stress: oorskat/-te/-ting
|
||||
oor (skrei %o@r // stress: oorskrei/-ding snd compounds
|
||||
oor (spronk %o@r // move default stress: (on)oorspronklik and compounds
|
||||
_) oor (stelp %o@r // move default stress: oorstelp/-ing
|
||||
_) oor (stromi %o@r // move default stress: oorstroming and compounds
|
||||
oor (stur %o@r // move default stress: oorsturig/-e/-heid
|
||||
_) oorstuurs %o@rsty:rs // move default stress: oorstuurs/-e/-heid
|
||||
oor (tr %o@r // oortree/oortreding/oortref
|
||||
oor (trek o@r // restore default stress: oortreksel/oortrekpapier/oortrektrui
|
||||
_) oor (trom o@r // restore default stress: oortrom/-me
|
||||
oor (tuig %o@r // oortuig/oortuiging/oortuigende
|
||||
_) oor (vleuel %o@r // move default stress: oorvleuel/-ing
|
||||
_) oor (vloedig %o@r // move default stress: oorvloedig/-e vs. oorvloed
|
||||
@@ -2539,14 +2575,19 @@
|
||||
p p
|
||||
p (p
|
||||
_) paarl p&:r@L // Paarl/Paarlberg/Paarlvallei
|
||||
_) padda p''ada // fix stress and 2nd a sound: paddavis/paddaman, etc.
|
||||
pajama p@dZ'A:ma //pajama and compounds
|
||||
pak (A pak? // pakesel/pakos/verpakafdeling
|
||||
pakistan p%ak%istan //first a and stress
|
||||
pakke (t p%akE // pakket/-te and compounds
|
||||
pale (t p%alE // fix stress and a sound: palet/-te and compounds
|
||||
palin (dro p%al@n // fix stress and a sound: palindroom/-drome/-dromies
|
||||
_) palja (K palj''a // fix stress on -jas: (ge)paljas/paljasse/paljasagtig/-e
|
||||
pal (miet p%al // move default stress: palmiet and compounds
|
||||
_) pan (dem p%an // move default stress: pandemie/-s and compounds
|
||||
_) pan (do p%an // move default stress: pandoer/-e/Pandora/pandok
|
||||
panga paNga // fix g sound: panga/-s
|
||||
pano (ram p%an%u // fix stress and vowel sounds: panorama/panoramies
|
||||
_) pan (to p%an // move default stress: pantoffel and compounds/pantoen
|
||||
papaja p%ap'A:ia //papaja and compounds
|
||||
papawer p%apA:v@r // move default stress: papawer/-s and compounds
|
||||
@@ -2560,17 +2601,20 @@
|
||||
pa (pirus p%a // move default stress: papirus and compounds
|
||||
parle (ment p%arl@ // move default stress and fix e sound: parlement and compounds, eg.
|
||||
parme (saan p%arm@ // move default stress: parmesaan(kaas) and compounds
|
||||
paro (di p%ar%u // fix stress and vowel sounds: parodie and compounds
|
||||
parti (tu p%art@ // fix stress and i sound: partituur/partiture and compounds
|
||||
pa (tat p@ // patat/warmpatat/wurgpatat
|
||||
patie (K p%at'i //words ending in patie has stress at end + a sound/simpatiek
|
||||
para (C ,para //paralel, paragraaf etc.
|
||||
parade (K p@rA:d@ // parade and compounds
|
||||
par (C@ p%ar // (ge)parkeer/parkeerplek/party(keer/maal...)/parfuum/parmantig
|
||||
pars (C pars // restore default stress: parsbalie/-kuip/-tyd, etc.
|
||||
_) pas (AA pas // pasaangeër/pasoortreding
|
||||
pas (op p%as // pasop/pasoppens
|
||||
passa (sier p%as%a // stress: passasier and compounds
|
||||
_) pa (stei p%a // move default stress: pastei and compounds
|
||||
_) pasto (rA p%ast%u // pastorie/-paar/-moeder/pastoraal/pastorale
|
||||
_) pasto (rA@ p%ast%u // pastorie/-paar/-moeder/pastoraal/pastorale
|
||||
_) pa (sto p%a // move default stress: pastoor/pastore
|
||||
_) pa (tA p%a // pateties/patee/patent/paterniteit
|
||||
pa (trA p%a // patrollie/patroon/patrys
|
||||
patri (@ p%atr%i // move default stress: patriarg/patriot/-te and derivitives
|
||||
@@ -2578,9 +2622,11 @@
|
||||
pa (Ciljoe p%a% // fix stress: pawiljoen/paviljoen/-e and compounds
|
||||
polio po@li;u // polio and compounds
|
||||
_) peli (ka p%El%i // move default stress: pelikaan/pelikane
|
||||
pe (narie p@ // fix e sound: penarie/-s and compounds
|
||||
pen (dule p%En // move defaul;t stress: pendule/-s
|
||||
pene (_ p@n@ // geroepenes/ontslapenes/uitgeworpenes
|
||||
pene (trA p%En@ // fix e sounds: penetrasie/(ge)penetreer
|
||||
penisi (lli p%En@s@ // fix stress and vowel sounds: penisillien/penisilline and compounds
|
||||
pensi (oen p%EnS%i; // move default stress: pensioen and compounds
|
||||
ry) per (d p&:r // fix e sound: ryperd/-e
|
||||
_) perde p'&:rd@
|
||||
@@ -2594,21 +2640,28 @@
|
||||
perfek p@rfEk // perfek/-te/-sie/-sionis
|
||||
peri (o p%e@r%i; // stress: periode/-s and compounds
|
||||
peri (stal p%Er@ // fix stress and vowel sounds: peristalties/-e/peristaltiek
|
||||
perle (moe p%&rl@ // move default stress: perlemoen/perlemoer and compounds
|
||||
per (kussie p@r // fix stress and e sound: perkussie and compounds
|
||||
perle (moe p%&rl@ // move default stress: perlemoen/perlemoer and compounds/reperkussie/-s
|
||||
pe (rron p@ // move default stress and fix e sound: perron and derivitives
|
||||
r) peling (_ p@l@N //verwerpeling etc.
|
||||
peloton pEl@t'On
|
||||
permanen p&rman'En // permanent/e/permanensie
|
||||
permit p@rm'It
|
||||
per (seel p%&r // move default stress: perseel and compounds
|
||||
per (sepsi p@r // fix stress and 1st e sound: persepsie/-s and compounds
|
||||
per (so p@r // persoon/persone
|
||||
perso (neel p%&rs%u // personeel and compounds
|
||||
pervers p@rf&rs // pervers/perversie
|
||||
pe (tieter p@ // fix stress and 1st e sound: petieterig/-e/-heid
|
||||
pe (tisi p@ // fix stress and e sound: petisie/petisionaris and compounds
|
||||
_) pe (trA_ pe@ // lengthen e sound: Petro/Petra
|
||||
petrol pEtr@l_ // o = schwa: petrol and compounds
|
||||
petrol (eum p@tro@l // move default stress and soften e: petroleum and compounds
|
||||
pe (tunia p@ // fix stress and e sound: petunia/-s
|
||||
ph (_ f // fix ph sound: Rudolph/Joseph
|
||||
phi (lippA_ f@ // fix stress and 1st i sound: Philippa/Philippi
|
||||
pi (kant p%i // move default stress: pikant/-e, etc.
|
||||
pikke (wyn p@k@ // move default stress: pikkewyn and compounds
|
||||
_) pi (la p%i // move default stress: pilaar/pilare/pilatus
|
||||
pio (nier p%i%u // fix stress and vowel sounds: pionier and compounds
|
||||
pira (mi p%ir%a // move default stress: piramide/-s/piramiedvormig
|
||||
@@ -2618,6 +2671,7 @@
|
||||
_) pla (kka pl%a // move default stress: plakkaat/plakkate
|
||||
plane (tA pl%an@' // planetarium/interplanetêr
|
||||
planete pl%ane@t@ // move default stress and fix a sound: planete and compounds like planetebaan
|
||||
plant (aardi pl%ant_ // fix stress and insert short break: plantaardig/-e
|
||||
_) pla (ta pl%a // move default stress: plataan/-boom/platane
|
||||
plei (dooi pl%eI // (slot)pleidooi/-e
|
||||
plesier pl@s'i:r
|
||||
@@ -2628,6 +2682,8 @@
|
||||
po (liep p%u // fix stress and o sound: poliep/-e/-agtig and compounds of poliep
|
||||
polisie pul'isi
|
||||
poli (tAAC p%Ol@ // politiek/politoer and compounds
|
||||
polities p%ulit%is // fix stress and o sound: polities/-e
|
||||
pol (vy p%Ol // move default stress: polvy/-e and compounds
|
||||
_) pon (dok p%On // move default stress: pondok/-ke/-kie
|
||||
popu ,pOpy
|
||||
_) por (C %pOr //portret portaal etc.
|
||||
@@ -2654,6 +2710,7 @@
|
||||
primi (t pr@m@ // make i sounds schwa: primitief/primitiewe
|
||||
prinsi (pA pr@ns@ // move default stress: prinsipaal/prinsipale/prinsipaals/prinsipieel/-ële
|
||||
prinsipe (K pr@nsip@ // stress on 2nd slb.: prinsipe/-s
|
||||
priso (nier pr@s@ // fix stress and vowel sounds: prisonier and many compounds
|
||||
ple (k pl&
|
||||
posisie puz'isi
|
||||
predi (kant pr%e@d@ // predikant and compounds
|
||||
@@ -2666,17 +2723,21 @@
|
||||
pro (gram pr%u // fix stress and o sound: program/-e/ontwikkelingsprogram
|
||||
pro (CA pr%u // probeer/produk/proses/professie/provinsie
|
||||
prokie pro@k%i //sprokie and compounds
|
||||
promenade pr%Om@nA:d@ // fix stress and vowel sounds: promenade/-dek/-konsert, etc.
|
||||
promisku pr%Om@sky // fix stress and o sound: promisku/-e/-íteit
|
||||
proposi pr%Op@zi // stress, o and s sounds: (besigheids)proposisie/-si, etc.
|
||||
prosa pr'o@sa //prosa and compounds
|
||||
prosa (ïe pr%o@sA: // fix stress and vowel sounds: prosaïes/-e
|
||||
proses pr%usEs // proses/versoeningsproses/strafproseswet
|
||||
|
||||
projek pr%ujEk
|
||||
projek (tiel pr%o@j%Ek // fix stress: projektiel/-e and compounds
|
||||
proku (rA pr%Ok%y // prokureur and compounds/prokurasie
|
||||
prominen prOmin'En // prominent/e/prominensie
|
||||
propag ,prOpax2
|
||||
|
||||
prosedure prOs@d'yr@
|
||||
prosti (tu pr%Ost@ // fix stress and i sound: prostituut/prostitute/prostitusie and compounds
|
||||
protes prut'Es
|
||||
protes (te_N pr%utEs // proteste, but prevent breaking protestering
|
||||
protest ,prOt@st
|
||||
@@ -2684,6 +2745,7 @@
|
||||
provi (and pr%o@v%i // fix stress and v sound: proviand/-meester, etc.
|
||||
ps (igA s // psigologie/kinderpsigoloog
|
||||
psalm p@sal@m // schwa between p and s
|
||||
psalmis p@s%al@mIs // move default stress: psalmis/-te
|
||||
|
||||
pub (li p%Wb
|
||||
puntener p%Wnt@ne@r // stress and 2nd e sound: puntenerig and derivitives
|
||||
@@ -2878,6 +2940,7 @@
|
||||
se (llin s%&' // stress on 'in: (met)gesellin/-ne/-netjie, etc.
|
||||
_) selon (sC s@lo~n // fix stress and e, nasalise o: selonspampoen/-roos/-rose, etc.
|
||||
@) sel (wig s'&l // stress: (ver)eenselwig and derivitives
|
||||
polisie) se (lK s& // fix e sound: polisiesel/-le
|
||||
_) seme (Ct s@mE // sementtafel/blad/vierkant/semester/-s
|
||||
_) semi (_ sEmi // fix e sound: semi/semi-formeel, etc.
|
||||
semi (na s%Em%i // seminaar/seminare/seminarium
|
||||
@@ -3099,6 +3162,7 @@
|
||||
@) tiewe (_ t'iv@ // alternatiewe/aktiewe/instinktiewe/(ak)kumulatiewe
|
||||
tink (tink t@Nk // move default stress: tinktinkie/-s
|
||||
ti (ra t%i // move default stress tiran tirade
|
||||
titel tit@l // fix e sound: (on)getiteld/titelblad/-geveg and many similar
|
||||
tj tS
|
||||
@) tj (a tj // separate tj: agtjarig/blatjang/bontjas/olifantjag/ouditjaar/tweegatjakkals
|
||||
@) tjank tSaNk // but: angstjank, etc.
|
||||
@@ -3106,6 +3170,7 @@
|
||||
tje (llis tS%E // move default stress and fix e sound: tjellis/-te
|
||||
tj (ie c
|
||||
_) tj (ie tS
|
||||
re) tjie ici // fix e sound: portretjies/sigaretjie
|
||||
ui) tj tj // uitjaag/uitjou/uitjubel
|
||||
ui) tjie ci // beskuitjie/fluitjie/ruitjie/uitjie, etc.
|
||||
_) th (@@ t
|
||||
@@ -3372,6 +3437,7 @@
|
||||
virtu v@rtS%y //virtueel virtuose etc. fix v and t sounds and assure lack of stress
|
||||
ver (kyker f'&:r //verkyker and compounds
|
||||
_) ver (@P3 f@r
|
||||
@C) ver (_ f&:r // fix e sound in compounds ending in -ver
|
||||
verant (w f@r%ant // (on)verantwoordelik/-heid/verantwoording
|
||||
verant (woord_ f@r_ant // fix stress: (on)verantwoord (single word)
|
||||
verant (woorde_ f@r_ant // fix stress: (on)verantwoorde (single word)
|
||||
@@ -3456,6 +3522,7 @@
|
||||
volwasse fOlv'as@ // (on)volwassene/s/(on)volwassenheid
|
||||
vo (lC f%O // volledig/volmaakte/voltooi
|
||||
vol (g fOl // volgeling/volgende/volgorde
|
||||
vol (groei f%Ol // fix stress: (on)volgroeid/-e/-es
|
||||
voren f'o@r@n // alvorens/vorentoe
|
||||
voog (dy f%o@x2 // fix stress: voogdy and compounds
|
||||
voorbar fo@rb'A:r // move default stress: voorbarig and derivitives
|
||||
@@ -3503,6 +3570,7 @@
|
||||
lyks) w (aaC v // fix w sound: lykswaad/-waak
|
||||
s) w (art w // fix w sound in compounds like donderswart
|
||||
&s) w (eefs v // fix w sound: compounds like -sweefsel/tuisweefstof, etc.
|
||||
plaas) w (erC v // fix w sound: plaaswerf/-werwe
|
||||
s) w (ou v // fix w sound: bamboeswoud/keerkringswoud and similar
|
||||
s) w (r v // fix w sound: skeepswrak/sielswroeging/aardswreedheid
|
||||
wreed (a vre@t_ // fix d sound and insert short pause: wreedaard/-s
|
||||
|
||||
@@ -252,10 +252,9 @@ s t t[ ts; v w z
|
||||
|
||||
Dictionary zhy_dict
|
||||
|
||||
a aa aai aan aau ai ang au
|
||||
e ei eng eo eoi eu i ing
|
||||
iu ng o oe oen oi ong ou
|
||||
u ui ung yu
|
||||
a aa aai aan aau ai au e
|
||||
ei eo eoi eu i iu o oe
|
||||
oi ong ou u ui yu
|
||||
|
||||
b c d f g h j k
|
||||
l m n N p r s t
|
||||
|
||||
+1
-15
@@ -73,6 +73,7 @@
|
||||
#define tINCLUDE 31
|
||||
|
||||
extern void Write4Bytes(FILE *f, int value);
|
||||
extern int Read4Bytes(FILE *f);
|
||||
extern void MakeVowelLists(void);
|
||||
extern void FindPhonemesUsed(void);
|
||||
extern void DrawEnvelopes();
|
||||
@@ -309,21 +310,6 @@ static unsigned int StringToWord(const char *string)
|
||||
}
|
||||
|
||||
|
||||
int Read4Bytes(FILE *f)
|
||||
{//====================
|
||||
// Read 4 bytes (least significant first) into a word
|
||||
int ix;
|
||||
unsigned char c;
|
||||
int acc=0;
|
||||
|
||||
for(ix=0; ix<4; ix++)
|
||||
{
|
||||
c = fgetc(f) & 0xff;
|
||||
acc += (c << (ix*8));
|
||||
}
|
||||
return(acc);
|
||||
}
|
||||
|
||||
|
||||
static FILE *fopen_log(FILE *f_log, const char *fname,const char *access)
|
||||
{//==================================================
|
||||
|
||||
+102
-10
@@ -511,6 +511,21 @@ const char *Translator::LookupCharName(int c)
|
||||
return(buf);
|
||||
}
|
||||
|
||||
int Read4Bytes(FILE *f)
|
||||
{//====================
|
||||
// Read 4 bytes (least significant first) into a word
|
||||
int ix;
|
||||
unsigned char c;
|
||||
int acc=0;
|
||||
|
||||
for(ix=0; ix<4; ix++)
|
||||
{
|
||||
c = fgetc(f) & 0xff;
|
||||
acc += (c << (ix*8));
|
||||
}
|
||||
return(acc);
|
||||
}
|
||||
|
||||
|
||||
static int LoadSoundFile(const char *fname, int index)
|
||||
{//===================================================
|
||||
@@ -520,7 +535,7 @@ static int LoadSoundFile(const char *fname, int index)
|
||||
int length;
|
||||
char fname_temp[100];
|
||||
char fname2[sizeof(path_home)+13+40];
|
||||
char command[sizeof(fname2)+sizeof(fname2)+30];
|
||||
char command[sizeof(fname2)+sizeof(fname2)+40];
|
||||
|
||||
if(fname == NULL)
|
||||
{
|
||||
@@ -542,16 +557,27 @@ static int LoadSoundFile(const char *fname, int index)
|
||||
#ifdef PLATFORM_POSIX
|
||||
if((f = fopen(fname,"rb")) != NULL)
|
||||
{
|
||||
int header[11];
|
||||
fread(header, 1, 44, f);
|
||||
int ix;
|
||||
const char *resample;
|
||||
int header[3];
|
||||
|
||||
if(header[6] != samplerate)
|
||||
fseek(f,20,SEEK_SET);
|
||||
for(ix=0; ix<3; ix++)
|
||||
header[ix] = Read4Bytes(f);
|
||||
|
||||
// if the sound file is not mono, 16 bit signed, at the correct sample rate, then convert it
|
||||
if((header[0] != 0x10001) || (header[1] != samplerate) || (header[2] != samplerate*2))
|
||||
{
|
||||
fclose(f);
|
||||
f = NULL;
|
||||
|
||||
if(header[2] == samplerate)
|
||||
resample = "";
|
||||
else
|
||||
resample = "polyphase";
|
||||
|
||||
sprintf(fname_temp,"%s.wav",tmpnam(NULL));
|
||||
sprintf(command,"sox \"%s\" -r %d -w %s polyphase\n",fname,samplerate,fname_temp);
|
||||
sprintf(command,"sox \"%s\" -r %d -w -s -c1 %s %s\n", fname, samplerate, fname_temp, resample);
|
||||
if(system(command) == 0)
|
||||
{
|
||||
fname = fname_temp;
|
||||
@@ -572,14 +598,18 @@ static int LoadSoundFile(const char *fname, int index)
|
||||
|
||||
length = GetFileLength(fname);
|
||||
fseek(f,0,SEEK_SET);
|
||||
p = Alloc(length);
|
||||
if((p = (char *)realloc(soundicon_tab[index].data, length)) == NULL)
|
||||
{
|
||||
fclose(f);
|
||||
return(4);
|
||||
}
|
||||
fread(p,length,1,f);
|
||||
fclose(f);
|
||||
remove(fname_temp);
|
||||
|
||||
ip = (int *)(&p[40]);
|
||||
soundicon_tab[index].length = (*ip) / 2; // length in samples
|
||||
soundicon_tab[index].data = p+44; // skip WAV header
|
||||
soundicon_tab[index].data = p;
|
||||
return(0);
|
||||
} // end of LoadSoundFile
|
||||
|
||||
@@ -589,7 +619,7 @@ static int LookupSoundicon(int c)
|
||||
// Find the sound icon number for a punctuation chatacter
|
||||
int ix;
|
||||
|
||||
for(ix=0; ix<n_soundicon_tab; ix++)
|
||||
for(ix=N_SOUNDICON_SLOTS; ix<n_soundicon_tab; ix++)
|
||||
{
|
||||
if(soundicon_tab[ix].name == c)
|
||||
{
|
||||
@@ -605,6 +635,34 @@ static int LookupSoundicon(int c)
|
||||
}
|
||||
|
||||
|
||||
static int LoadSoundFile2(const char *fname)
|
||||
{//=========================================
|
||||
// Load a sound file into one of the reserved slots in the sound icon table
|
||||
// (if it'snot already loaded)
|
||||
|
||||
int ix;
|
||||
static int slot = -1;
|
||||
|
||||
for(ix=0; ix<n_soundicon_tab; ix++)
|
||||
{
|
||||
if(((soundicon_tab[ix].filename != NULL) && strcmp(fname, soundicon_tab[ix].filename) == 0))
|
||||
return(ix); // already loaded
|
||||
}
|
||||
|
||||
// load the file into the next slot
|
||||
slot++;
|
||||
if(slot >= N_SOUNDICON_SLOTS)
|
||||
slot = 0;
|
||||
|
||||
if(LoadSoundFile(fname, slot) != 0)
|
||||
return(-1);
|
||||
|
||||
soundicon_tab[slot].filename = (char *)realloc(soundicon_tab[ix].filename, strlen(fname)+1);
|
||||
strcpy(soundicon_tab[slot].filename, fname);
|
||||
return(slot);
|
||||
}
|
||||
|
||||
|
||||
|
||||
int Translator::AnnouncePunctuation(int c1, int c2, char *buf, int bufix)
|
||||
{//======================================================================
|
||||
@@ -1462,12 +1520,27 @@ static int ProcessSsmlTag(wchar_t *xml_buf, char *outbuf, int &outix, int n_outb
|
||||
|
||||
if((attr1 = GetSsmlAttribute(px,"src")) != NULL)
|
||||
{
|
||||
char fname[256];
|
||||
attrcopy_utf8(buf,attr1,sizeof(buf));
|
||||
|
||||
if(uri_callback == NULL)
|
||||
{
|
||||
// we could load the audio file as a sound icon (assuming it's a local WAV file)
|
||||
// But when to free() the data?
|
||||
if((xmlbase != NULL) && (buf[0] != '/'))
|
||||
{
|
||||
sprintf(fname,"%s/%s",xmlbase,buf);
|
||||
index = LoadSoundFile2(fname);
|
||||
}
|
||||
else
|
||||
{
|
||||
index = LoadSoundFile2(buf);
|
||||
}
|
||||
if(index >= 0)
|
||||
{
|
||||
sprintf(buf,"%c%dI",CTRL_EMBEDDED,index);
|
||||
strcpy(&outbuf[outix],buf);
|
||||
outix += strlen(buf);
|
||||
sp->parameter[espeakSILENCE] = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1853,6 +1926,25 @@ f_input = f_in; // for GetC etc
|
||||
|
||||
if(iswalnum(c1))
|
||||
any_alnum = 1;
|
||||
else
|
||||
if(iswspace(c1))
|
||||
{
|
||||
if(translator_name == 0x6a626f)
|
||||
{
|
||||
// language jbo : lojban
|
||||
// treat "i" or ".i" as end-of-sentence
|
||||
if(buf[ix-1] == 'i')
|
||||
{
|
||||
if(iswspace(buf[ix-2]) || ((buf[ix-2] == '.') && iswspace(buf[ix-3])))
|
||||
{
|
||||
UngetC(c2);
|
||||
buf[ix] = ' ';
|
||||
buf[ix+1] = 0;
|
||||
return(CLAUSE_PERIOD);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(iswupper(c1))
|
||||
{
|
||||
|
||||
+1
-3
@@ -305,9 +305,7 @@ static int initialise(void)
|
||||
else
|
||||
fprintf(stderr,"Wrong version of espeak-data 0x%x (expects 0x%x)\n",result,version_phdata);
|
||||
}
|
||||
#ifndef PLATFORM_WINDOWS
|
||||
LoadConfig(); // causes problem on Windows, don't know why
|
||||
#endif
|
||||
LoadConfig();
|
||||
SetVoiceStack(NULL);
|
||||
SynthesizeInit();
|
||||
|
||||
|
||||
@@ -335,9 +335,7 @@ static int initialise(void)
|
||||
int param;
|
||||
int result;
|
||||
|
||||
#ifndef __WIN32__
|
||||
LoadConfig();
|
||||
#endif
|
||||
WavegenInit(22050,0); // 22050
|
||||
if((result = LoadPhData()) != 1)
|
||||
{
|
||||
|
||||
+39
-15
@@ -252,8 +252,9 @@ int GetMbrName(PHONEME_LIST *plist, PHONEME_TAB *ph, PHONEME_TAB *ph_prev, PHONE
|
||||
}
|
||||
|
||||
|
||||
static char *WritePitch(int env, int pitch1, int pitch2, int split)
|
||||
{//================================================================
|
||||
static char *WritePitch(int env, int pitch1, int pitch2, int split, int final)
|
||||
{//===========================================================================
|
||||
// final=1: only give the final pitch value.
|
||||
int x;
|
||||
int ix;
|
||||
int pitch_base;
|
||||
@@ -264,11 +265,12 @@ static char *WritePitch(int env, int pitch1, int pitch2, int split)
|
||||
int min = 999;
|
||||
int y_max=0;
|
||||
int y_min=0;
|
||||
int env100 = 80; // apply the pitch change only over this proportion of the mbrola phoneme(s)
|
||||
int y2;
|
||||
int y[4];
|
||||
int env_split;
|
||||
char buf[40];
|
||||
static char output[40];
|
||||
char buf[50];
|
||||
static char output[50];
|
||||
|
||||
output[0] = 0;
|
||||
pitch_env = envelope_data[env];
|
||||
@@ -335,18 +337,18 @@ static char *WritePitch(int env, int pitch1, int pitch2, int split)
|
||||
|
||||
if(split > 0)
|
||||
{
|
||||
y2 = (y[ix] * 100)/env_split;
|
||||
y2 = (y[ix] * env100)/env_split;
|
||||
}
|
||||
else
|
||||
if(split < 0)
|
||||
{
|
||||
y2 = ((y[ix]-env_split) * 100)/env_split;
|
||||
y2 = ((y[ix]-env_split) * env100)/env_split;
|
||||
}
|
||||
else
|
||||
{
|
||||
y2 = (y[ix] * 100)/128;
|
||||
y2 = (y[ix] * env100)/128;
|
||||
}
|
||||
if((y2 > 0) && (y2 <= 100))
|
||||
if((y2 > 0) && (y2 <= env100))
|
||||
{
|
||||
sprintf(buf," %d %d",y2,p2/4096);
|
||||
strcat(output,buf);
|
||||
@@ -354,14 +356,23 @@ static char *WritePitch(int env, int pitch1, int pitch2, int split)
|
||||
}
|
||||
}
|
||||
|
||||
p_end = p_end/4096;
|
||||
if(split <= 0)
|
||||
{
|
||||
sprintf(buf," 100 %d",p_end/4096);
|
||||
sprintf(buf," %d %d",env100,p_end);
|
||||
strcat(output,buf);
|
||||
}
|
||||
if(env100 < 100)
|
||||
{
|
||||
sprintf(buf," %d %d",100,p_end);
|
||||
strcat(output,buf);
|
||||
}
|
||||
strcat(output,"\n");
|
||||
|
||||
if(final)
|
||||
sprintf(output,"\t100 %d\n",p_end);
|
||||
return(output);
|
||||
} // end of SetPitch
|
||||
} // end of WritePitch
|
||||
|
||||
|
||||
#ifdef USE_MBROLA_LIB
|
||||
@@ -506,6 +517,7 @@ void MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, FILE *f_mbrola)
|
||||
int control;
|
||||
int done;
|
||||
int len_percent;
|
||||
const char *final_pitch;
|
||||
char buf[80];
|
||||
char mbr_buf[120];
|
||||
|
||||
@@ -562,7 +574,7 @@ void MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, FILE *f_mbrola)
|
||||
len = 1;
|
||||
}
|
||||
else
|
||||
len = (70 * speed_factor2)/256;
|
||||
len = (80 * speed_factor2)/256;
|
||||
|
||||
sprintf(buf,"%s\t",WordToString(name));
|
||||
strcat(mbr_buf,buf);
|
||||
@@ -575,6 +587,7 @@ void MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, FILE *f_mbrola)
|
||||
}
|
||||
|
||||
done = 0;
|
||||
final_pitch = "";
|
||||
|
||||
switch(ph->type)
|
||||
{
|
||||
@@ -589,16 +602,16 @@ void MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, FILE *f_mbrola)
|
||||
|
||||
if(name2 == 0)
|
||||
{
|
||||
sprintf(buf,"%d\t%s", len, WritePitch(p->env,p->pitch1,p->pitch2,0));
|
||||
sprintf(buf,"%d\t%s", len, WritePitch(p->env,p->pitch1,p->pitch2,0,0));
|
||||
strcat(mbr_buf,buf);
|
||||
}
|
||||
else
|
||||
{
|
||||
len1 = (len * len_percent)/100;
|
||||
sprintf(buf,"%d\t%s", len1, WritePitch(p->env,p->pitch1,p->pitch2,len_percent));
|
||||
sprintf(buf,"%d\t%s", len1, WritePitch(p->env,p->pitch1,p->pitch2,len_percent,0));
|
||||
strcat(mbr_buf,buf);
|
||||
|
||||
sprintf(buf,"%s\t%d\t%s", WordToString(name2), len-len1, WritePitch(p->env,p->pitch1,p->pitch2,-len_percent));
|
||||
sprintf(buf,"%s\t%d\t%s", WordToString(name2), len-len1, WritePitch(p->env,p->pitch1,p->pitch2,-len_percent,0));
|
||||
strcat(mbr_buf,buf);
|
||||
}
|
||||
done = 1;
|
||||
@@ -635,6 +648,17 @@ void MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, FILE *f_mbrola)
|
||||
{
|
||||
len = DoSpect(p->ph,prev->ph,phoneme_tab[phonPAUSE],2,p,-1);
|
||||
len = (len * 1000)/samplerate;
|
||||
if(next->type == phPAUSE)
|
||||
len += 50;
|
||||
final_pitch = WritePitch(p->env,p->pitch1,p->pitch2,0,1);
|
||||
}
|
||||
break;
|
||||
|
||||
case phLIQUID:
|
||||
if(next->type == phPAUSE)
|
||||
{
|
||||
len += 50;
|
||||
final_pitch = WritePitch(p->env,p->pitch1,p->pitch2,0,1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -648,7 +672,7 @@ void MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, FILE *f_mbrola)
|
||||
strcat(mbr_buf,buf);
|
||||
len -= len1;
|
||||
}
|
||||
sprintf(buf,"%d\n",len);
|
||||
sprintf(buf,"%d%s\n",len,final_pitch);
|
||||
strcat(mbr_buf,buf);
|
||||
}
|
||||
|
||||
|
||||
+7
-1
@@ -35,7 +35,7 @@
|
||||
#include "translate.h"
|
||||
#include "wave.h"
|
||||
|
||||
const char *version_string = "1.30.03 04.Jan.08";
|
||||
const char *version_string = "1.30.04 07.Jan.08";
|
||||
const int version_phdata = 0x013000;
|
||||
|
||||
int option_device_number = -1;
|
||||
@@ -622,6 +622,12 @@ void LoadConfig(void)
|
||||
char *p;
|
||||
char string[200];
|
||||
|
||||
for(ix=0; ix<N_SOUNDICON_SLOTS; ix++)
|
||||
{
|
||||
soundicon_tab[ix].filename = NULL;
|
||||
soundicon_tab[ix].data = NULL;
|
||||
}
|
||||
|
||||
sprintf(buf,"%s%c%s",path_home,PATHSEP,"config");
|
||||
if((f = fopen(buf,"r"))==NULL)
|
||||
{
|
||||
|
||||
+4
-4
@@ -62,7 +62,7 @@ static int syllable_centre;
|
||||
|
||||
static voice_t *new_voice=NULL;
|
||||
|
||||
int n_soundicon_tab=0;
|
||||
int n_soundicon_tab=N_SOUNDICON_SLOTS;
|
||||
SOUND_ICON soundicon_tab[N_SOUNDICON_TAB];
|
||||
|
||||
#define RMS_GLOTTAL1 35 // vowel before glottal stop
|
||||
@@ -1041,13 +1041,13 @@ static void DoEmbedded(int &embix, int sourceix)
|
||||
case EMBED_I: // play dynamically loaded wav data (sound icon)
|
||||
if((int)value < n_soundicon_tab)
|
||||
{
|
||||
if((wcmdq[wcmdq_tail][1] = soundicon_tab[value].length) != 0)
|
||||
if(soundicon_tab[value].length != 0)
|
||||
{
|
||||
DoPause(10); // ensure a break in the speech
|
||||
wcmdq[wcmdq_tail][0] = WCMD_WAVE;
|
||||
wcmdq[wcmdq_tail][1] = soundicon_tab[value].length;
|
||||
wcmdq[wcmdq_tail][2] = (long)soundicon_tab[value].data;
|
||||
wcmdq[wcmdq_tail][3] = 0x1f00; // 16 bit data, amp=32
|
||||
wcmdq[wcmdq_tail][2] = (long)soundicon_tab[value].data + 44; // skip WAV header
|
||||
wcmdq[wcmdq_tail][3] = 0x1500; // 16 bit data, amp=21
|
||||
WcmdqInc();
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -262,7 +262,8 @@ extern int option_log_frames;
|
||||
extern const char *version_string;
|
||||
extern const int version_phdata;
|
||||
|
||||
#define N_SOUNDICON_TAB 100
|
||||
#define N_SOUNDICON_TAB 80 // total entries in soundicon_tab
|
||||
#define N_SOUNDICON_SLOTS 4 // number of slots reserved for dynamic loading of autio files
|
||||
extern int n_soundicon_tab;
|
||||
extern SOUND_ICON soundicon_tab[N_SOUNDICON_TAB];
|
||||
|
||||
|
||||
+1
-1
@@ -1724,7 +1724,7 @@ void *Translator::TranslateClause(FILE *f_text, const void *vp_input, int *tone_
|
||||
WORD_TAB words[N_CLAUSE_WORDS];
|
||||
int word_count=0; // index into words
|
||||
|
||||
char sbuf[512];
|
||||
char sbuf[N_TR_SOURCE];
|
||||
|
||||
int terminator;
|
||||
int tone;
|
||||
|
||||
Reference in New Issue
Block a user