Browse Source

[1.43.03] release

Fix crash when embedded control codes are followed by numbers of 5 or more digits.

Fix lang=hu,  First character of an abbreviation is missed after an ordinal number (eg."2. cd")

Fix XML tag not recognized after "..." when announce punctuation is enabled.

Fix lang=zh-yue, 'p' 't' 'k' after a vowel give a long pause.

Fix lang=ru, "o" missing in unstressed syllables.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@241 d46cf337-b52f-0410-862d-fd96e6ae7743
master
jonsd 15 years ago
parent
commit
805c5dfdee

+ 9
- 1
dictsource/da_list View File

@@ -261,7 +261,8 @@ square _^_EN
appeal _^_EN
apple _^_EN
bbc _^_EN
beat _^_EN
beachbuggy _^_EN
beachvolley _^_EN
browser _^_EN
byte _^_EN
camcorder _^_EN
@@ -361,6 +362,7 @@ warrior _^_EN
austin _^_EN
bailey _^_EN
bronx _^_EN
clarence _^_EN
cyrus _^_EN
fox _^_EN
jean _^_EN
@@ -2299,6 +2301,7 @@ billie bile // PB the name Billie
(union station) junj3n||steisj@n // PB
chevrolet sjEvrol'e
saigon sajg3-n // PB Saigon
managua m&n'&:gw&

// Abbreviations
pga pOgR'O?n'a? $hasdot // PB short for 'på grund af'
@@ -2333,3 +2336,8 @@ phil fil/3 $hasdot // PB fx cand. phil.
(sig til) si||tel // PB sig til ham, at han skal ...
(gav sig til) g&||saj||tel // PB han gav sig til at ...
sig si $capital PB Sig = si with capital S - Sig det med blomster
// avoid [staj] as in "flæskesteg"
(han steg) h&n||st'e
(hun steg) hOn||st'e
(vi steg) vi||st'e
(de steg) di||st'e

+ 67
- 31
dictsource/da_rules View File

@@ -1,4 +1,4 @@

// This file is UTF8 encoded
// Spelling-to-phoneme rules for Danish

@@ -40,11 +40,13 @@ agglomer) a (t 'A // PB stressed a in 'agglomerat'
a (nt '& // PB stressed a in words with -ant - interessant
Ah) a (nd '& // PB stressed a in words with -hand - behendling
ok) a (l '& // PB stressed a in 'vokal, lokal, bifokal'
v) a (nlig '& // PB usædvanlig - stressed a
bl) a a // PB blad
fr) a A // PB fra, fratage
gr) a A // PB gratis
a (L03K &: // PB alle, anden
h) a (CK & // PB han
hvabeh) ar 'A // PB hvabehar
a (L03 &: // PB foran halvvokal
a (v+ A // PB tavs
L08) a (v & // PB stav
@@ -271,7 +273,7 @@ stikor) d // PB exception - no d in 'stikord'
ri) d (e D
si) d (e D
ti) d (e D
ur) d (e d
// ur) d (e d
vi) d (e D
æl) d (e
Coe) d (e // PB boede without d
@@ -279,7 +281,7 @@ stikor) d // PB exception - no d in 'stikord'
ral) d (e
sag) d (e
snu) d (e D
A) de (N_ D@ // PB change to D?
A) de (_ D@ // PB change to D?
in) d (eks d
mo) d (el 'd
or) d (el d
@@ -369,6 +371,7 @@ tilfre) d (s
afl) e 3 // PB aflevere
ov) e (r 3 // PB over
l) e (r 3 // PB forhandlere
fl) e (r e // PB flere
e (lse @ // PB fornøjelse
sk) e (t_ e // PB sket
r) eau o // PB bureaukratiske
@@ -382,7 +385,10 @@ tilfre) d (s
nt) e @ // PB tante, hente
nt) e (r V // PB tanter, henter
mont) e (r e // PB montere
e (r_++ V // PB changed from [e (rK] - 'vers' mispronounced
v) e (r+ e // PB vers, verden
e (rK+ V // PB efter
k) e (r+ e // PB forkert
er (ne V // PB kammeraterne
_) e (r_++ er // PB er
h) e (r++ e // PB her, herhen
_sk) er (_ er // PB sker
@@ -391,14 +397,15 @@ tilfre) d (s
fr) e (L03 a // PB fremme, frende, frelse
fr) e (d e // PB fred fredag
l) e (t e // PB toilet
_l) e (r_ e // PB ler
_l) er (_++ er // PB ler
hv) e (r e // PB hver
el) e (r V // PB hellere
mm) e (l @ // PB gammel
s) e (_ @ // PB rose, skose
_s) e (_ e? // PB se
L06) er (_ &r // PB per
L06L06) (er V // PB klipper
L06L06) er V // PB klipper
L03L06) er (_ V // PB bomber
_) er (_ &r // PB er
_a) e (_ 3 // PB ae
pl) e (men 3 // PB supplement
@@ -479,12 +486,16 @@ softic) e // PB softice
e (gn a // PB tegne , hegn
bl) e (m 3 // PB møblement
probl) e (m 'e // PB stressed e
C) e (ring 'e // PB stressed e in words with -ering (1.000) - likvidering
e (ndig 'e // PB stressed e in words with -endig - elendig, nødvendig
ni) e (n e
ani) e (l e
lini) e @ // PB changed from [e] to [@]
r) e (_N 3_: // PB mere
// r) e (_T e // PB for words in the list file with -ere
r) e (nd a // PB rend
n) e (r V // PM klovner
hvab) e (har_ 3 // PB hvabehar
_r) e e
// r) e (
r) e (l e
@@ -509,7 +520,8 @@ absorb) e (r 'e // PB absorber, absorberer, absorbere, absorberet
gourm) e 'e // PB gourmet
@) e (kt 'e: // PB stressed e in words with -ekt - konfekt
L06) eg (e aj // PB p) changed to L06 to include b
L08) eg aj // PB steg, spegepølse
L08) eg aj // PB steg, spegepølse - problem with the verb stige/steg
best) eg (_ 'e // PB besteg
jav) e (l 'e // PB stressed e in 'javel'
m) eg (a eg
eg (et a:j
@@ -552,11 +564,13 @@ absorb) e (r 'e // PB absorber, absorberer, absorbere, absorberet
Ad) en (@ '@-n // udenlandsk, udenad
&) ene (_ @-n@
&) ende (_ @-nn@
&) ere (_T 'e:3 // PB can't get 'vurdere' to work with -ere words in list file
&) eren (_ 3r3n
&) ere (_T 'er3 // PB stressed - manipulere, protestere - words in list file
&) ere (NT_ 'e:3 // PB stressed - manipulere, protestere - words in list file
&) erede (NS2_ =D3 // PB stressed - manipulerede, protesterede - words in list file
&) eres (TNS1_ =s // PB stressed - manipuleres, protesteres - words in list file
&) eret (TNS1_ =3D // PB stressed - manipuleret, protestet 1.810 words in list file
&) eres (NS1_ =s // PB stressed - manipuleres, protesteres - words in list file
&) erer (NS1_ =V // PB stressed - manipuleres, protesteres - words in list file
&) eret (S1_ =3D // PB stressed - manipuleret, protestet 1.810 words in list file
_sen) ere er3 // PB senere
&) eren (s_ 3r3n
&) es (_ @s
@@ -568,7 +582,9 @@ absorb) e (r 'e // PB absorber, absorberer, absorbere, absorberet
ir) e (n 'e
yr) e (n 'e
ork) e (ster 'e // PB stressed e in 'orkester'
forur) e (ne 'e // PB stressed - forurene
st) e (ret // PB orkesteret
b) ea (t i: // PB beat, beatorkester
ompet) en (ce aN
ress) en (timent aN // PB ressentiment
bl) e (g aj // PB bleg
@@ -630,6 +646,7 @@ absorb) e (r 'e // PB absorber, absorberer, absorbere, absorberet
g) g (e
g (ent g
g (entl j // PB egentlig
ami) g (o g // PB amigo
&) g (r g
g (ård g
g (ment g
@@ -640,7 +657,7 @@ absorb) e (r 'e // PB absorber, absorberer, absorbere, absorberet
ser) gent 'sjant // PB sergent
gjorde gjo:3 // PB gjorde
ki) g k // PB kig, udkig
a) g (C ?w
// a) g (C ?w
a) g (e
a) g (en g
a) g (i g
@@ -648,7 +665,6 @@ absorb) e (r 'e // PB absorber, absorberer, absorbere, absorberet
a) g (urk 'g
g) g
//e) g (e
ste) g j // PB steg, stegefedt
e) g (o g
i) g (t g
i) g (t_
@@ -782,6 +798,7 @@ trikota) g (e =S // PB trikotage
bor) g u
bud) g (et S
gti) g
gti) g (ere // PB vigtigere
hol) g (er g
jer) g (A w
jer) g (C w
@@ -855,32 +872,39 @@ foreta) g (e
ige (_ i;@
iew j'u
i (nK i
r) i (nK e // PB ring
am) i (go 'i // PB amigo
i (nn e
i (mK e
i (k e // PB ikke, pik
l) i (k i // PB likvid
pr) i (+ i // PB privat
i (kk+ e // PB skiderikker
i (r+ i // PB Irland, irrationel
L02) i (L03 e // PB foran halvvokal - til
// L02) i (L03 e // PB foran halvvokal - til
t) i (me i: // PB time
s) i (dA+ i: // PB siden
// s) i (d_ e // PB sid
s) i (d_ e // PB sid
s) i (dd+ e: // PB sidde
s) i (gA+ i // PB siger
s) i (n e // PB tusind
t) i (d+ i // PB tiden
t) i (l e // PB til
t) i (n e // PB tin, ting
l) i (p e // PB slippe
//L03) i (L03K i // PB mellem to halvvokaler midt, vil, til SHOULD BE e FIND A RULE FOR Camilla with
i
L03) i (L03L03 e // PB middag
L03) i (L03 i //PB vide
L03) i (g+ i // PB ligne
L03) i (gt+ e // vigtig
L03) i (L03L02 e // PB spille
v) i (l+ e // PB vil
) i (l e // PB til
t) i (l e // PB til
to) i (l // PB toilet
ju) i (ce // juice - skip the i
soft) i (ce aj // PB softice
fr) i e // PB fri
fr) i i // PB fri
fr) i (L08 e // PB friste
s) i (kC e // PB sikker, sikre
p) is es // PB pis
p) i (L08+ i // PB pisk, pistol
@@ -914,10 +938,11 @@ prosod) i 'i // PB prosodi, prosodien
perfid) i 'i // PB perfidi
rapsod) i 'i // PB rapsodi
ortopæd) i 'i // PB ortopædi
v) i (sk e // PB viskelæder
v) i (L08 e // PB viskelæder
l) i (e j
n) i (e i
r) i (g i
r) i (gt e // PB rigtigt
s) i (e j
t) i (e j
t) i (on // i ommitted because of sj
@@ -946,7 +971,7 @@ ortopæd) i 'i // PB ortopædi

k k
kk k
k) (oordinat oVdi'nat
k (oordinat oVdi'nat
s) k g
pun) k (t N
run) k (en N
@@ -1032,7 +1057,7 @@ bombarde) ment m'AN // PB bombardement

n n
// nn n
band) (er n? // PB takes away the d in 'bander' = 'gangs' - n => n?
ba) nd (er n? // PB takes away the d in 'bander' = 'gangs' - n => n?
ka) n_ // no n - kan
nd (K n
nd (ow nd
@@ -1105,14 +1130,16 @@ bombarde) ment m'AN // PB bombardement
o (sse V // PB tosse, nosse
j) o (b V // PB job
o (vA+ Vu // PB over, oven
o (v++ V // PB sjov, lov, skov
o (v+ V // PB sjov, lov, skov
l) o (ve+ Vu // PB love
h) o (v+ o // hov, sove
telef) o (n 'o // PB telefon
L08j) o (l V // PB skjold
tr) o o // PB tro
bistr) o 'o // PB stressed o in 'bistro'
pist) o (l 'o // PB stressed o - pistol
_m) o (C o // PB m + o + 2 consonants: mor, mord,
L08) o (L03 o: // PB exception from the rule above - skole, spole
L08) o (l o: // PB skole, spole
o (L03A o // PB - romantisk, hoved
// L02) o (L03_ V // PB consonant + o + semivowel + end of word - kom, som
_C) o (_ o // PB jo, ko, lo, so
@@ -1125,6 +1152,7 @@ bombarde) ment m'AN // PB bombardement
o (f V // PB ofte
l) o (f V
r) o (f o // PB profil
r) o (tt V // PB rotte
spr) o (g o // PB sprog
k) ors V:s // PB kors, korsage
c) o (rs V // PB corsage
@@ -1178,6 +1206,8 @@ transp) o (rt 'V: // PB transport
ou 'u // PB poussin, toupe
ough Vf // PB tough, rough - only 2 words
oun aVn // PB discount
nark) o (tik 'o // PB narkotika, narkotisk
ul) o (v 'V // PB stressed o - ulovlig

.group or

@@ -1267,7 +1297,7 @@ transp) o (rt 'V: // PB transport
_f) or (kammer 'V // PB forkammer
_f) or (kant 'o // PB forkant
_f) or (karl 'o // PB forkarl
_f) orka) (rl+ a // PB forkarl
_f) orka (rl+ a // PB forkarl
_f) or (klog 'o // PB forklog, forklogskab
_f) or (kontor 'o // PB forkontor
_f) or (krop 'o // PB forkrop
@@ -1444,18 +1474,21 @@ transp) o (rt 'V: // PB transport
suppo) r //PB support [s@p'@t]
r (K r // not followed by a vowel
e) r (_ // PB end of word: no r - lager [l&:V]
ve) r (+ r // PB over, overrasket
r (e_ // PB end of word before e: no r
r (e_T+ r
_se) r (_ r // PB ser
he) r (_ r // PB her
e) r (es 3 // PB jeres, deres
bu) rd (eK rd
// &) rd (eKK r
&) rd (eNKK r
ve) rd (eKK rd
&) rd (e_ r
o) rd (el++ rd
o) rd (en++ d // PB exception - pronounce d in 'orden, ordentlig'
o) rd (rin d
A) r (eT // PB bære without r
A) r (e_T // PB hellere
// A) r (eN // PB bære without r
A) r (eN_ // PB hellere
transpo) r (t //PB transport


@@ -1467,7 +1500,7 @@ transpo) r (t //PB transport
s (C s
s (A s
s (ie s
s (ion S
s (ion S' // PB stress added
s (j s
sch S // PB changed from [s(ch] - casch
al) s (ace 's // PB Alsace (French region)
@@ -1481,6 +1514,7 @@ kompromi) s
p) t t // PB toptitel
s) t d // PB stor
A) t (er d // PB Peter, efter, alter
A) t (ere t // PB invitere
teress tr@s // PB interessant
L03) t t // PB garanteret
r) t d // PB kuffert
@@ -1506,7 +1540,7 @@ simpel) th (en th
t (ie t
t (ion+ sj'
t (iøs+ sj'
&) tt t
// &) tt t

.group u
u u: // PB u => u: - u couldn't be heard in 'umuligt'
@@ -1563,7 +1597,7 @@ proven) u y
le) v (et // PB blevet, levet
la) v (A // PB no v - laver
la) v (ement @ // PB lavement
ve (lse @ // PB øvelse
ve (lse v3 // PB øvelse
&A) v v
&r) v v
al) v (A v
@@ -1616,7 +1650,8 @@ proven) u y
y (nK W // PB changed from Y to W - synge, ynde
l) y (n y // PB lyn
whisk) y i // PB whisky
y (nde 'W // PB begynde - stressed
y (nd 'W // PB begynde - stressed
best) y (r 'y // PB bestyre - stressed
y (mK Y
d) y (_ i
b) y (A y
@@ -1632,7 +1667,7 @@ proven) u y

.group æ
æ E
æ (CK E
æ (CK E:
æ (bK E // PB dræb, slæb
æ (bt ae? // PB dræbt - FIND A BETTER VOWEL
f) æ (re 'E: // PB affære, atmosfære, sfære
@@ -1665,6 +1700,7 @@ proven) u y
g) ø (r @:
h) ø (j V
ø (je V3 // PB øje
ø (jn V3 // PB øjne
h) ø (r W:
//k) ø (r W:
l) øg (n 'Vj

+ 7
- 4
dictsource/fr_rules View File

@@ -23,7 +23,7 @@

// 2006-11-18 Gilles Casse <[email protected]>
//
// Updated: 2010-03-05 Michel Such <[email protected]>
// Updated: 2010-03-08 Michel Such <[email protected]>
//

// Letter classes:
@@ -61,7 +61,7 @@
a (ils_ a
a (il_ a
aie (me E2 // paiement
ai E2 // aile
ai E // aile
ai (L06 E // aile
ai (CAX E // aile
am (b A~ // jambon
@@ -650,7 +650,7 @@ dia) g (no g
vin) gt (_neuvi t

gt (_ // vingt doigts
gt t // vingtaine doigté
vin) gt (A t // vingtaine doigté

gu (i g // anguille
ai) gui (l gw^i // aiguillage
@@ -768,6 +768,7 @@ C) i (es_ i
C) ill ij // famille
a) il (_ j // bail
e) il (_ j
gt) i (m aj
u) il (_ j // deuil
L01_f) ils (_ is // fils (enfant)

@@ -782,7 +783,7 @@ C) i (es_ i
in (C E~ // vingt
in (_ W~ // vin
ing (_ iN
_) infra (_P5 E~fra
_) infra (sP5 E~fra
_) inter (@@P5 E~tEr
_) interr (A E~tEr
_) inter (_ E~t'Er
@@ -989,6 +990,8 @@ C) i (es_ i
oû u // coûter
oyes (_ ua // troyes
oy (A uaj // noyer voyelles
_b) oy (co oi- // boycott
_c) oy (o oi // coyote
_y) o (y o
oy ua // roy
o (_ o // zorro allégro

+ 3
- 0
dictsource/hu_list View File

@@ -141,6 +141,8 @@ _#-áig a:ig $alt2
_#-étől e:tY:l $alt2
_#-ét e:t $alt2
_#-át a:t $alt2
_#-ének e:nEk
_#-ának a:nAk

(1-e) elseje $text $alt2
(1-én) elsején $text $alt2
@@ -163,6 +165,7 @@ _#-át a:t $alt2
(1-jére) elsejére $text $alt2
(1-jétől) elsejétől $text $alt2
(1-jéig) elsejéig $text $alt2
(1-ének) elsejének $text $alt2
(2-i) másodikai $text $alt2
(2-ig) másodikáig $text $alt2
(3-i) hAR2_mAdikAi $alt2

+ 18
- 17
dictsource/hu_rules View File

@@ -70,7 +70,7 @@
kavi) cs (zátony tS
har) c (cselek ts
külön) c (sé ts
mala) c (sül ts
mala) c (sül ts


.group ch
@@ -165,10 +165,10 @@ menetren) dsz (erű d|s
ötö) dsz (ör ts:
ezre) d (szin d
ha) d (szin d
hor) d (szí d
ezre) d (szá d
kó) d (sor d
máso) d (szin d
hor) d (szí d
ezre) d (szá d
kó) d (sor d
máso) d (szin d


.group dz
@@ -270,7 +270,7 @@ ritkasá) g (gyűjt g
é) gh (ajla kh
se) gg (fe g
se) gg (be g
pro) g (gyak g
pro) g (gyak g

.group gy
gy J
@@ -336,8 +336,8 @@ tizene) gy (edik J:
e) gy (aránt J:
e) gy (enrang J:
e) gy (előre J:
e) gy (enként J:
félmege) gy (ez J:
e) gy (enként J:
félmege) gy (ez J:


.group h
@@ -389,7 +389,7 @@ félmege) gy (ez J:
kossutht koSu:t:
készségg ke:SSe:g:
_a) kk (reditál k
_) köztük kYstyk
_) köztük kYstyk

.group l
l l
@@ -436,7 +436,7 @@ keresztü) l (j l
me) ll (kas l
inte) ll (ige l
e) ll (ipsz l
_) e) lj (ár lj
_) e) lj (ár lj



@@ -501,6 +501,7 @@ tulajdo) n (jog n
egye) n (jogú n
beto) n (járda n
verse) ny (jog n^
irá) ny (jel n^

.group o
o o
@@ -740,7 +741,7 @@ gyalogo) ssz Ss
rádió) ssz (ob Ss
jelzé) ssz (erű Ss
kitöré) ssz (erű Ss
hatá) ssz (üne Ss
hatá) ssz (üne Ss

.group sz
sz s
@@ -941,7 +942,7 @@ terüle) t (cél t
néme) t (juhá t
pó) t (je t
halo) tt (ba t
éle) t (jel t
éle) t (jel t

.group ts
ts (_S2 tS //general rule with word end of ts letters
@@ -1138,7 +1139,7 @@ találko) z (t s
zsz z|s //general exception. Need difference first z and second sz phoneme. For example, rajzszög, rajzszeg, mézszín words.
pén) z (t s
rende) z (ked s
kocká) z (ta s
kocká) z (ta s
hibá) z (tat s
különbö) z (tet s
válto) z (tat s
@@ -1156,10 +1157,10 @@ tájéko) z (tass s
búcsú) z (ko s
nyújtó) z (ko s
ő) z (sörét z
szedelő) z (kö s
alkalma) z (ko s
egye) z (ke s
egye) z (te s
szedelő) z (kö s
alkalma) z (ko s
egye) z (ke s
egye) z (te s


.group

+ 5
- 5
dictsource/ru_list View File

@@ -28,7 +28,7 @@ _10 d;'es;It;
_11 Od;'innVttsVt;
_12 dv;In'AttsVt;
_13 tR;In'AttsVt;
_14 ts;It'y@-*nVttsVt;
_14 tS;It'y@-*nVttsVt;
_15 p;Itn'AttsVt;
_16 SE#stn'AttsVt;
_17 s;Imn'AttsVt;
@@ -45,15 +45,15 @@ _9X d;E2v;In'ostO
_0C st'o
_2C dv;'es;t;I
_3C tr;'ista
_4C ts;It'yr;E2sta
_4C tS;It'yr;E2sta
_5C p;,It;s'ot
_6C S,E#s;t;s'ot
_7C s;,Ims'ot
_8C vOs;Ims'ot
_9C dev;Vn'ostO
_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

+ 19
- 18
phsource/compile_report View File

@@ -320,8 +320,8 @@ l/l_@ [l/3] base
[W] fr
[Y] fr
[l/] fr
l/l@ [L] base
[¼ÈÔ] base
l/l@ [] base
[L] base
[W] fr
[Y] fr
[l] fr
@@ -347,14 +347,14 @@ l/L2_oL [l/2] base
l/L2_uL [l/2] base
l/l_3 [l/] de
l/l_4 [ll] sq
l/la [L] base
[¼ÈÔ] base
l/la [] base
[L] base
[a] fr
[l] fr
l/l_a [l/3] base
[l/] fr
l/le [L] base
[¼ÈÔ] base
l/le [] base
[L] base
[l] fr
l/l_e [l/3] base
[l/] fr
@@ -362,8 +362,8 @@ l/L_eL_af [&] af
[&:] af
l/l_front [L] sq
l/l_front_ [l/4] sq
l/li [L] base
[¼ÈÔ] base
l/li [] base
[L] base
[l] fr
[l] zh
l/l_i [l/3] base
@@ -371,15 +371,15 @@ l/l_i [l/3] base
[i] sq
l/l_long [l] base
[l] fr
l/lo [L] base
[¼ÈÔ] base
l/lo [] base
[L] base
[l] fr
l/l_o [l/3] base
[l/] fr
[o2] fr
l^/l_rfx [l.] base
l/lu [L] base
[¼ÈÔ] base
l/lu [] base
[L] base
[l] fr
[w^i] fr
l/l_u [l/3] base
@@ -1868,23 +1868,23 @@ vwl_fr/r [r] fr
vwl_fr/_r [r] fr
vwl_fr/r_ [r/2] fr
vwl_fr/r_@ [r/2] fr
vwl_fr/r@ [g] fr
vwl_fr/r@ [Ég] fr
vwl_fr/@R [x] pt_pt
vwl_fr/_r2 [r] fr
vwl_fr/@R2 [R] fr_ca
vwl_fr/ra [g] fr
vwl_fr/ra [Ég] fr
vwl_fr/r_a [r/2] fr
vwl_fr/raa [A~] fr
vwl_fr/r_an [A~] fr
vwl_fr/re [g] fr
vwl_fr/re [Ég] fr
vwl_fr/r_e [r/2] fr
vwl_fr/ri [g] fr
vwl_fr/ri [Ég] fr
vwl_fr/r_i [r/2] fr
vwl_fr/ro [g] fr
vwl_fr/ro [Ég] fr
vwl_fr/r_o [o] fr
[o2] fr
[r/2] fr
vwl_fr/ru [g] fr
vwl_fr/ru [Ég] fr
vwl_fr/r_u [r/2] fr
vwl_fr/ry [y] fr
[w^i] fr
@@ -1926,6 +1926,7 @@ vwl_ru/ii# [I#] ru
vwl_ru/ja [ja] ru
vwl_ru/ju [ju] ru
vwl_ru/o [o] ru
vwl_ru/oo [O] ru
vwl_ru/u [u] ru
vwl_ru/u# [u#] ru
vwl_ru/u#u [u"] ru

+ 25
- 10
phsource/ph_french View File

@@ -1,7 +1,7 @@
//====================================================
// French
//====================================================
// Updated 2010-02-25 Michel Such <[email protected]>
// Updated 2010-03-12 Michel Such <[email protected]>

phoneme #l virtual
// Used for l and l/
@@ -39,7 +39,7 @@ phoneme r
ENDIF

IF nextPh(isStressed) THEN
length 45
length 40
ENDIF

VowelEnding(vwl_fr/xr)
@@ -48,13 +48,21 @@ phoneme r
IF prevPh(isPause) OR prevPhW(r/2) THEN
FMT(vwl_fr/_r)
ELIF prevPhW(p) OR prevPhW(k) THEN
length 50
IF nextPh(isNotStressed) THEN
length 50
ENDIF
FMT(vwl_fr/tr)
ELIF prevPhW(t) THEN
length 45
IF nextPh(isNotStressed) THEN
length 60
ENDIF
FMT(vwl_fr/tr) addWav(r3/rx,30)
ELIF prevPhW(f) OR prevPhW(g) OR prevPhW(v) THEN
ELIF prevPhW(f) OR prevPhW(v) THEN
length 40
ELIF prevPhW(g) OR prevPh(b) THEN
IF nextPh(isNotStressed) THEN
length 60
ENDIF
ENDIF

IF thisPh(isWordStart) THEN
@@ -101,12 +109,19 @@ phoneme r/2 // variant of [r] when not preceding a vowel
VowelEnding(vwl_fr/r_u)
EndSwitch

IF prevPh(t) OR prevPh(p) OR prevPh(k) OR prevPh(d) THEN
IF prevPh(t) OR prevPh(p) OR prevPh(k) THEN
FMT(vwl_fr/trr)
ENDIF

IF thisPh(isWordEnd) THEN
FMT(vwl_fr/r_) addWav(r3/rx, 20)
IF prevPhW(v) THEN
length 40
ELIF prevPhW(f) THEN
length 60
ELIF prevPhW(d) THEN
length 80
ENDIF
FMT(vwl_fr/r_) addWav(r3/rx, 15)
ENDIF

IF prevPh(isVowel) THEN
@@ -531,7 +546,7 @@ phoneme d
IF nextPh(isPause2) OR nextPh(isPause) THEN
FMT(d/d_) addWav(x/d_, 50)
// ELIF nextPh(#r) THEN
// FMT(d/dr) addWav(x/d, 50)
// FMT(d/dr) addWav(x/d, 30)
ELIF prevPh(isPause) THEN
FMT(d/d) addWav(x/d, 50)
ENDIF
@@ -605,8 +620,7 @@ phoneme p
ELIF nextPh(#l) THEN
WAV(ustop/pl, 30)
ELIF nextPh(#r) THEN
length 50
WAV(ustop/pr, 30)
WAV(ustop/pr, 25)
ENDIF
WAV(ustop/p_unasp_, 90)
endphoneme
@@ -705,6 +719,7 @@ phoneme v
vcd lbd frc
voicingswitch f
lengthmod 6
length 90
Vowelin f1=0 f2=1000 -300 -200 f3=-300 100
Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50


+ 1
- 0
phsource/ph_russian View File

@@ -261,6 +261,7 @@ phoneme O
IF thisPh(isMaxStress) THEN
ChangePhoneme(o)
ENDIF
FMT(vwl_ru/oo)
endphoneme



+ 3
- 3
phsource/ph_zh_yue View File

@@ -75,7 +75,7 @@ phoneme k
vls vel stop
lengthmod 2
Vowelin f1=0 f2=2300 200 300 f3=-200 80
Vowelout f1=0 f2=2300 300 400 f3=-200 80 rms=20
Vowelout f1=1 f2=2300 300 400 f3=-200 80 rms=20

IF nextPh(isPause2) THEN
WAV(NULL)
@@ -101,7 +101,7 @@ phoneme p
vls blb stop
lengthmod 2
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 rms=30
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22
Vowelout f1=1 f2=1000 -500 -350 f3=-300 80 rms=22
IF nextPh(isPause2) THEN
WAV(NULL)
ENDIF
@@ -112,7 +112,7 @@ phoneme t
vls alv stop
lengthmod 2
Vowelin f1=0 f2=1700 -300 300 f3=100 80
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
Vowelout f1=1 f2=1700 -300 250 f3=-100 80 rms=20
IF nextPh(isPause2) THEN
WAV(NULL)
ENDIF

BIN
phsource/vwl_fr/_r View File


BIN
phsource/vwl_fr/_r2 View File


BIN
phsource/vwl_fr/r View File


BIN
phsource/vwl_fr/r@ View File


BIN
phsource/vwl_fr/ra View File


BIN
phsource/vwl_fr/raa View File


BIN
phsource/vwl_fr/re View File


BIN
phsource/vwl_fr/ri View File


BIN
phsource/vwl_fr/ro View File


BIN
phsource/vwl_fr/ru View File


BIN
phsource/vwl_fr/ry View File


BIN
phsource/vwl_fr/tr View File


BIN
phsource/vwl_fr/xr View File


+ 5
- 2
src/readclause.cpp View File

@@ -2454,9 +2454,12 @@ if(option_ssml) parag=1;
c1 = 0x2026;
c2 = ' ';
}
UngetC(c_next);
if(c1 == 0x2026)
c2 = c_next;
else
UngetC(c_next);
}
punct_data = 0;
if((punct = lookupwchar(punct_chars,c1)) != 0)
{

+ 1
- 1
src/synthdata.cpp View File

@@ -35,7 +35,7 @@
#include "translate.h"
#include "wave.h"

const char *version_string = "1.43.10 12.Mar.10";
const char *version_string = "1.43.12 13.Mar.10";
const int version_phdata = 0x014300;

int option_device_number = -1;

+ 10
- 2
src/synthesize.cpp View File

@@ -411,8 +411,16 @@ int DoSample3(PHONEME_DATA *phdata, int length_mod, int amp)
amp2 = (amp2 * 32)/100;
}

seq_len_adjust=0;
len = DoSample2(phdata->sound_addr[pd_WAV], 2, phdata->pd_param[pd_LENGTHMOD]*2, phdata->pd_control, length_mod, amp2);
seq_len_adjust=0;

if(phdata->sound_addr[pd_WAV] == 0)
{
len = 0;
}
else
{
len = DoSample2(phdata->sound_addr[pd_WAV], 2, phdata->pd_param[pd_LENGTHMOD]*2, phdata->pd_control, length_mod, amp2);
}
last_frame = NULL;
return(len);
} // end of DoSample3

+ 7
- 3
src/translate.cpp View File

@@ -840,14 +840,18 @@ if((wmark > 0) && (wmark < 8))

length=0;
while(wordx[length] != ' ') length++;
if(length > 0)
wordx[-1] = ' '; // prevent this affecting the pronunciation of the pronuncable part
}
SetSpellingStress(tr,unpron_phonemes,0,posn);

// anything left ?
if(*wordx != ' ')
{
if(unpron_phonemes[0] != 0)
{
// letters which have been spoken individually from affecting the pronunciation of the pronuncable part
wordx[-1] = ' ';
}

// Translate the stem
end_type = TranslateRules(tr, wordx, phonemes, N_WORD_PHONEMES, end_phonemes, wflags, dictionary_flags);

@@ -2802,7 +2806,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre

for(j=1; j<=nw; j++)
{
num_wtab[j].flags &= ~FLAG_MULTIPLE_SPACES; // don't use this flag for subsequent parts when splitting a number
num_wtab[j].flags &= ~(FLAG_MULTIPLE_SPACES | FLAG_EMBEDDED); // don't use these flags for subsequent parts when splitting a number
}

// include the next few characters, in case there are an ordinal indicator or other suffix

Loading…
Cancel
Save