Browse Source

[1.31.09]

More fixes for &--; sequences.
lang=es: use phoneme [O] for letter 'o' except at end of word.
leng=es: attempt to improve single 'r' between two vowels.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@139 d46cf337-b52f-0410-862d-fd96e6ae7743
master
jonsd 17 years ago
parent
commit
ab7edfc7f7

+ 8
- 8
dictsource/dict_phonemes View File

Dictionary es_dict Dictionary es_dict


@- a aI e E eI eU i @- a aI e E eI eU i
o oI u
o O oI u


* ** b B d D f g
j J J^ k l l^ m n
n^ p Q r R s t T
tS v w x
* ** : b B d D f
g j J J^ k l l^ m
n n^ p Q r R s t
T tS v w x




Dictionary fi_dict Dictionary fi_dict
uai y uai y


(u) : f h j k kh l (u) : f h j k kh l
m n N p ph r s S#
s. S; t th ts ts. ts. tS;
tS; tsh v w x z z.
m n N p ph r s s.
S; t th ts ts. ts. tS; tS;
tsh v w x z z.




Dictionary jbo_dict Dictionary jbo_dict

+ 42
- 42
dictsource/es_list View File

// letters // letters


_cap m'aJ^us _cap m'aJ^us
_?? s'imbolo
_?? s'imbOlo
_#32 Esp'aTjo _#32 Esp'aTjo




// names of symbols // names of symbols
_. punto _. punto
_, koma
_; p,untoik'oma
_: d,osp'untos
_! TE*R'aRaDmi**aTj'on
_? TE*R'aRintE*R,oQaTj'on
_¡ aB@-*'iRaDmi**aTj'on
_¿ aB@-*'iRintE*R,oQaTj'on
_, kOma
_; p,untOik'Oma
_: d,Osp'untOs
_! TE*R'aRaDmi**aTj'On
_? TE*R'aRintE*R,OQaTj'On
_¡ aB@-*'iRaDmi**aTj'On
_¿ aB@-*'iRintE*R,OQaTj'On
_= iQw'al _= iQw'al
_< mEn'oRke
_> maJ^'oRke
_' apost@-*'ofo
_" kom'iJ^as
_+ s'iQnodesum'aR
_$ dolar
_# almoaD'il^a
_< mEn'ORke
_> maJ^'ORke
_' apOst@-*'Ofo
_" kOm'iJ^as
_+ s'iQnOdesum'aR
_$ dOlar
_# almOaD'il^a
_* astE*'isko _* astE*'isko
_- gJ^on
_- gJ^On
__ suB@-*aJ^'aDo __ suB@-*aJ^'aDo
_/ ba*Ra _/ ba*Ra
_\ b'a*RaimbERt'iDa _\ b'a*RaimbERt'iDa
_` aT'Entog@-*'aBe
_` aT'EntOg@-*'aBe
_( ,aB@-*epa**'EntEsis _( ,aB@-*epa**'EntEsis
_) Tj,E*Rapa**'EntEsis _) Tj,E*Rapa**'EntEsis
_[ ,aB@-*ekoRtS'Ete
_] Tj,E*RakoRtS'Ete
_[ ,aB@-*ekORtS'Ete
_] Tj,E*RakORtS'Ete
_{ ,aB@-*eJ^'aBe _{ ,aB@-*eJ^'aBe
_} Tj,E*RaJ^'aBe _} Tj,E*RaJ^'aBe
_« kom'iJ^as||iTkJ^'ERDas
_» kom'iJ^as||dE**'EtSas
_« kOm'iJ^as||iTkJ^'ERDas
_» kOm'iJ^as||dE**'EtSas


^ TiRkumfl'Exo ^ TiRkumfl'Exo
€ eU*o € eU*o
% porTj'Ento
% pOrTj'Ento
& ampERs'ant & ampERs'ant
@ a*R'oBa
@ a*R'OBa
/ ba*Ra / ba*Ra
© kopi*R'aIt
© kOpi*R'aIt
£ liB@-*as £ liB@-*as
¶ p'a*Rafo ¶ p'a*Rafo
§ sEkTj'on
§ sEkTj'On




// numbers // numbers
_0 TE*o _0 TE*o
_1 'uno _1 'uno
_2 d'os
_2 d'Os
_3 t@-*'es _3 t@-*'es
_4 kw'at@-*o _4 kw'at@-*o
_5 T'inko _5 T'inko
_6 s'eIs _6 s'eIs
_7 sj'Ete _7 sj'Ete
_8 'otSo
_8 'OtSo
_9 nw'Eve _9 nw'Eve
_1X dj'ET _1X dj'ET
_11 'onTe
_12 d'oTe
_11 'OnTe
_12 d'OTe
_13 t@-*'ETe _13 t@-*'ETe
_14 kat'oRTe
_14 kat'ORTe
_15 k'inTe _15 k'inTe
_20 v'eInte _20 v'eInte
_2X v'eInt _2X v'eInt
_5X Tinkw'Enta _5X Tinkw'Enta
_6X sEs'Enta _6X sEs'Enta
_7X sEt'Enta _7X sEt'Enta
_8X otS'Enta
_9X nov'Enta
_0C T'ientos
_8X OtS'Enta
_9X nOv'Enta
_0C T'ientOs
_1C0 T'ien // exactly one hundred _1C0 T'ien // exactly one hundred
_1C T'iento _1C T'iento
_5C kinj'Entos
_7C s,EtETj'Entos
_9C n,ovETj'Entos
_5C kinj'EntOs
_7C s,EtETj'EntOs
_9C n,OvETj'EntOs
_0M1 m'il _0M1 m'il
_1M1 m'il // no '1' before thousand _1M1 m'il // no '1' before thousand
_0M2 mil^'ones
_1M2 'unmil^'on
_0M4 _bil^'ones
_1M4 'unbil^'on
_0M2 mil^'Ones
_1M2 'unmil^'On
_0M4 _bil^'Ones
_1M4 'unbil^'On
_0and i _0and i
_dpt koma
//_roman Rom'ano
_dpt kOma
//_roman ROm'ano


vi vi // not a Roman number vi vi // not a Roman number



+ 11
- 9
dictsource/es_rules View File





.group j .group j
_) j (_ x'ota
_) j (_ x'Ota
j x j x






.group o .group o
_) o (_ o _) o (_ o
o o
o O
o (_ o
oy (K oI oy (K oI
oy (_ 'oI oy (_ 'oI


.group p .group p
_) p (_ pe _) p (_ pe
p p p p
p (t p:




.group q .group q




.group w .group w
_) w (_ ,uBe||d'oBle
_) w (_ ,uBe||d'OBle
w w w w




.group x .group x
_) x (_ Ekis _) x (_ Ekis
x ks x ks
A) x (A Qs
// A) x (A Qs // ??
x (_ =Qs x (_ =Qs




á ''a á ''a
é ''E é ''E
í ''i í ''i
ó ''o
ó ''O
ú ''u ú ''u
ü u ü u
ñ n^ ñ n^
_)ñ (_ En^e _)ñ (_ En^e


$ d'olar
$ d'Olar


+ m'as + m'as
_) ++ (_ masm'as _) ++ (_ masm'as
\+\+\+) + // ignore + after the first 3 \+\+\+) + // ignore + after the first 3


# almoaD'il^a
# almOaD'il^a
\#) # \#) #


__) - (_D m'Enos
__) - (_D m'EnOs
A_) - (_D _ A_) - (_D _
C_) - (_D _ C_) - (_D _
--) - --) -
. (. _: . (. _:
\.) . \.) .


, (D koma
, (D kOma

+ 23
- 4
dictsource/fr_list View File



// 2006-11-18 Gilles Casse <[email protected]> // 2006-11-18 Gilles Casse <[email protected]>
// //
// Updated 2008-02-08 Michel Such <[email protected]>
// Updated 2008-02-10 Michel Such <[email protected]>
// //
// * Numbers, a few abbreviations and exceptions. // * Numbers, a few abbreviations and exceptions.
// //
adsl $abbrev adsl $abbrev
alt $pause alt $pause
amd $abbrev amd $abbrev
anpe $abbrev
api $abbrev api $abbrev
avh $abbrev avh $abbrev
cci $abbrev cci $abbrev
mr m@sjY mr m@sjY
nti $abbrev nti $abbrev
nvda $abbrev nvda $abbrev
ong $abbrev
pci $abbrev pci $abbrev
pda $abbrev pda $abbrev
p.s postskRiptOm p.s postskRiptOm
accident aksidA~ accident aksidA~
adéquat adekuat2 adéquat adekuat2
adéquate adekuat adéquate adekuat
airbus Erbys
anus anys
any Eni
ardent aRdA~ ardent aRdA~
bissus bisys
bonus bonys
bus bys bus bys
bus by $verb
campus kA~pys
casus kazys
choeur k@r choeur k@r
cocus coky
discident disidA~ discident disidA~
eye aj
eyes ajz
fils fis fils fis
imprudent E~pRydA~ imprudent E~pRydA~
juin ZyE~ juin ZyE~
malus malys
many mEni
mars maRs mars maRs
minus minys
occident OksidA~ occident OksidA~
orient ORjA~ orient ORjA~
pays pEi pays pEi
phallus falys
prudent pRydA~ prudent pRydA~
secret sYkRE secret sYkRE
souris suri souris suri

sus sys
sus sy $verb
to tu
vénus venys




mens mA~z2 mens mA~z2


// words from other languages // words from other languages
about @bawt about @bawt
acer asEr
amazon amaz'On amazon amaz'On
(audible manager) od'ibl||manadZ'@r (audible manager) od'ibl||manadZ'@r
be bi be bi
klaxon klaksOn klaxon klaksOn
leader li:d@R leader li:d@R
let lEt let lEt
link link
liszt list liszt list
lite lajt lite lajt
(mac os x) makoEsiks (mac os x) makoEsiks
schubert SubER schubert SubER
screamer skri:m@r screamer skri:m@r
(search & destroy) s@:rS_||end_||dEsstrOj (search & destroy) s@:rS_||end_||dEsstrOj
shrink Sr'ink
skype sk'ajp@- skype sk'ajp@-
spybot spajbOt spybot spajbOt
sun s@n sun s@n

+ 36
- 11
dictsource/fr_rules View File



// 2006-11-18 Gilles Casse <[email protected]> // 2006-11-18 Gilles Casse <[email protected]>
// //
// Updated: 2008-02-08 Michel Such <[email protected]>
// Updated: 2008-02-10 Michel Such <[email protected]>
// //
// * The rules are based on Cicero TTS. // * The rules are based on Cicero TTS.
// //
em (me a // femme patiemment em (me a // femme patiemment
em (b A~ // décembre em (b A~ // décembre
em (m A~ // emmancher em (m A~ // emmancher
em (manu e // emmanuel
em (p A~ em (p A~
en (_ A~n2 // en en (_ A~n2 // en
en (hA A~n // enharmonique en (hA A~n // enharmonique
_) h (arf _! // harfang _) h (arf _! // harfang
_) h (argn _! // hargne _) h (argn _! // hargne
_) h (ari _! // haricot haridelle _) h (ari _! // haricot haridelle
_) h (ark _! // harka
_) h (arn _! // harnais _) h (arn _! // harnais
_) h (arp _! // harpe _) h (arp _! // harpe
_) h (as _! // hasard, hase _) h (as _! // hasard, hase
_) h (âs _! // hâte _) h (âs _! // hâte
_) h (au _! // haut _) h (au _! // haut
_) h (av _! // havre _) h (av _! // havre

_) h (eau _! // heaume _) h (eau _! // heaume
_) h (él _! // hélas, héler _) h (él _! // hélas, héler
_) h (èl _! // hèlement _) h (èl _! // hèlement
_) h (êtr _! // hêtre, hêtraie _) h (êtr _! // hêtre, hêtraie
_) h (eula _! // heulandite _) h (eula _! // heulandite
_) h (eurt _! // heurter _) h (eurt _! // heurter

_) h (iat _! // hiatal, hiatus _) h (iat _! // hiatal, hiatus
_) h (ibo _! // hibou _) h (ibo _! // hibou
_) h (ic _! // hic _) h (ic _! // hic
_) h (i-han _! // hi-han _) h (i-han _! // hi-han
_) h (iss _! // hisser _) h (iss _! // hisser
_) h (it _! // hit, hit-parad _) h (it _! // hit, hit-parad

_) h (ob _! // hobby, hobereau _) h (ob _! // hobby, hobereau
_) h (och _! // hocher _) h (och _! // hocher
_) h (ock _! // hockey _) h (ock _! // hockey
_) h (ou _! // houle, housse _) h (ou _! // houle, housse


_) h (u _! _) h (u _!
_) h (uil // huile
_) h (uiss // huissier _) h (uiss // huissier
_) h (uî // huître _) h (uî // huître
_) h (umain // humain _) h (umain // humain
ing (_ iN // parking ing (_ iN // parking
in (h in // inhumain in (h in // inhumain
inct (_ E~ // distinct inct (_ E~ // distinct
ink (_ ink // link, pink
in (n i // innombrable in (n i // innombrable
in (C E~ // vingt in (C E~ // vingt
// in (_ E~ // vin // in (_ E~ // vin
o (che_ O // poche, cloche o (che_ O // poche, cloche
oe (ll wa // moelleux oe (ll wa // moelleux
_) oe (C Y // oesophage _) oe (C Y // oesophage
_ph) oe (t Y // phoetus
oeu @ // soeur coeur oeu @ // soeur coeur
oeufs @ // oeufs boeufs oeufs @ // oeufs boeufs
o (eC o // coefficient o (eC o // coefficient
xpan) s (A s // expansion xpan) s (A s // expansion




ibu) s (_ s
_u) s (_ s
Cu) s (_
Abu) s (_ s
_Abu) s (_
mbu) s (_ s mbu) s (_ s

cu) s (_ s // focus phallus cumulus minus
iu) s (_ s
Acu) s (_ s
écu) s (_
odu) s (_ s
gu) s (_ s
igu) s (_ // aigus
iu) s (_ s // radius
ïu) s (_ s // laïus
Culu) s (_ s // cumulus
plu) s (_ z2 // plus, surplus
mu) s (_ s mu) s (_ s
nu) s (_ s
pu) s (_ s
llu) s (_ s
ulu) s (_ s
_mu) s (_
ému) s (_
opu) s (_ s // opus, octopus
Aru) s (_ s // virus
aru) s (_ // disparus
psu) s (_ s // lapsus


atu) s (_ s // stratus cactus motus atu) s (_ s // stratus cactus motus
ctu) s (_ s
ctu) s (_ s // cactus
etu) s (_ s
aitu) s (_
itu) s (_ s itu) s (_ s
otu) s (_ s
ltu) s (_ s // altus
otu) s (_ s // motus


_tou) s (_C _tou) s (_C
_tou) s (_ s _tou) s (_ s
u y // cruel nuage brut u y // cruel nuage brut
ui w^i ui w^i


_b) usi iz // business, businessman
c) ueill Wj // cueillir c) ueill Wj // cueillir
c) ueil (_ Wj // recueil c) ueil (_ Wj // recueil
_c) ul (_ y
g) ueill Wj // orgueilleux g) ueill Wj // orgueilleux
g) ueil (_ Wj // orgueil g) ueil (_ Wj // orgueil


ym (p E~ // tympan ym (p E~ // tympan
y (nn i y (nn i
y (nA i y (nA i
ys (_ is
yx (_ iks yx (_ iks


yn E~ // laryngite yn E~ // laryngite

+ 1
- 0
dictsource/zh_rules View File

.group y .group y
y j //before a o e i y j //before a o e i
y (u //NULL before u y (u //NULL before u
y (uDn j
yo (DngK yu yo (DngK yu
y (K i // foreign words y (K i // foreign words



+ 9
- 10
phsource/compile_report View File

is 32 124 is 32 124
vi 42 137 vi 42 137
zhy 40 132 zhy 40 132
zh 64 148
zh 63 147
sw 14 108 sw 14 108
th 50 142 th 50 142
id 14 120 id 14 120
[s#] pt_pt [s#] pt_pt
ufric/sh_pzd [S;] base ufric/sh_pzd [S;] base
[S;] ro [S;] ro
[S;] zh
ufric/sh_pzd_ [S;] base ufric/sh_pzd_ [S;] base
[Z;] base [Z;] base
ufric/sh_rfx [s.] base
[s.] zh
ufric/sh_sr [S#] zh
ufric/sh_sr.wav [S] sr
ufric/sh_pzd2 [S] sr
[Z] sr [Z] sr
[dZ] sr [dZ] sr
[S;] zh
ufric/sh_rfx [s.] base
[s.] zh
ufric/s_pzd [s;] base ufric/s_pzd [s;] base
[z;] base [z;] base
[s;] ro [s;] ro
[ch] th [ch] th
ustop/tsh_pzd_unasp [tS;] zh ustop/tsh_pzd_unasp [tS;] zh
[c] th [c] th
ustop/tsh_sr.wav [tS] sr
ustop/tsh_sr [tS] sr
ustop/ts_pzd [tS;] base ustop/ts_pzd [tS;] base
[ts;] base [ts;] base
[ch] hi [ch] hi
[t] zh [t] zh
ustop/ts_rfx [ts.] zh ustop/ts_rfx [ts.] zh
ustop/ts_rfx_unasp [ts.] zh ustop/ts_rfx_unasp [ts.] zh
ustop/ts_sr.wav [tS;] sr
ustop/ts_sr [tS;] sr
[dZ;] sr [dZ;] sr
ustop/ts_unasp [ts] zh ustop/ts_unasp [ts] zh
ustop/t_unasp [t] th ustop/t_unasp [t] th
[u@] vi [u@] vi
[ua] th [ua] th
[u:a] th [u:a] th
vdiph2/y@ [y@] zh
vdiph2/y#@ [Y@] af vdiph2/y#@ [Y@] af
[y@] zh
vdiph2/yu [yU] nl vdiph2/yu [yU] nl
[yu] zh [yu] zh
vdiph2/y-y# [yY] fi vdiph2/y-y# [yY] fi
[O@] en_wi [O@] en_wi
[O] de [O] de
[o] eo [o] eo
[o] es
[O] es
[o] el [o] el
[O] sv [O] sv
[O] no [O] no

+ 14
- 24
phsource/ph_serbian View File

// ufric/x_sr
// ufric/ch_sr
// ufric/sh_sr
// ustop/t_sr
// ustop/ts_sr
// ustop/tsh_sr
// r3/r_sr
// m/m_sr
// n/n_sr
// n^/nj_sr


// This file inherits phonemes from ph_croatian // This file inherits phonemes from ph_croatian
// Only phonemes which differ from the inherited phonemes need // Only phonemes which differ from the inherited phonemes need
vcd pla afr sibilant vcd pla afr sibilant
vowelin f1=2 f2=2300 200 400 f3=100 80 vowelin f1=2 f2=2300 200 400 f3=100 80
vowelout f1=2 f2=2300 250 300 f3=100 80 brk vowelout f1=2 f2=2300 250 300 f3=100 80 brk
formants dzh/dzh+ufric/sh_sr.wav
before _ dzh/dzh+ufric/sh_sr.wav
formants dzh/dzh+ufric/sh_pzd2
before _ dzh/dzh+ufric/sh_pzd2
after _ NULL after _ NULL
after @ dzh/dzh+ufric/sh_sr.wav
after @ dzh/dzh+ufric/sh_pzd2
lengthmod 5 lengthmod 5
switchvoicing tS switchvoicing tS
endphoneme endphoneme
phoneme dZ; phoneme dZ;
vcd pla afr sibilant palatal vcd pla afr sibilant palatal
vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70 vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70
formants dzh/dzh+ustop/ts_sr.wav
before _ dzh/dzh+ustop/ts_sr.wav
formants dzh/dzh+ustop/ts_sr
before _ dzh/dzh+ustop/ts_sr
after _ NULL after _ NULL
after @ dzh/dzh+ustop/ts_sr.wav
after @ dzh/dzh+ustop/ts_sr
lengthmod 5 lengthmod 5
switchvoicing tS; switchvoicing tS;
endphoneme endphoneme
vls pla afr sibilant vls pla afr sibilant
vowelin f1=0 f2=2300 200 400 f3=-100 80 vowelin f1=0 f2=2300 200 400 f3=-100 80
lengthmod 2 lengthmod 2
wave ustop/tsh_sr.wav%50
before _ ustop/tsh_sr.wav%50
wave ustop/tsh_sr%50
before _ ustop/tsh_sr%50
switchvoicing dZ switchvoicing dZ
endphoneme endphoneme


vls pal afr sibilant palatal vls pal afr sibilant palatal
vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70 vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
lengthmod 2 lengthmod 2
wave ustop/ts_sr.wav
before _ ustop/ts_sr.wav
wave ustop/ts_sr
before _ ustop/ts_sr
switchvoicing dZ; switchvoicing dZ;
endphoneme endphoneme


vcd pla frc sibilant vcd pla frc sibilant
vowelin f1=0 f2=2000 0 300 f3=-200 80 vowelin f1=0 f2=2000 0 300 f3=-200 80
vowelout f1=2 f2=2000 0 300 f3=-200 80 brk vowelout f1=2 f2=2000 0 300 f3=-200 80 brk
formants voc/zh+ufric/sh_sr.wav%60
before _ voc/zh+ufric/sh_sr.wav%50
formants voc/zh+ufric/sh_pzd2%60
before _ voc/zh+ufric/sh_pzd2%50
lengthmod 6 lengthmod 6
switchvoicing S switchvoicing S
endphoneme endphoneme
vowelout f1=0 f2=2100 100 300 f3=-100 80 vowelout f1=0 f2=2100 100 300 f3=-100 80
length 100 length 100
lengthmod 3 lengthmod 3
wave ufric/sh_sr.wav%70
before _ ufric/sh_sr.wav%60
wave ufric/sh_pzd2%70
before _ ufric/sh_pzd2%60
switchvoicing Z switchvoicing Z
endphoneme endphoneme



+ 1
- 1
phsource/ph_spanish View File

formants vowel/e_mid formants vowel/e_mid
endphoneme endphoneme


phoneme o
phoneme O
vowel starttype (o) endtype (o) vowel starttype (o) endtype (o)
length 170 length 170
formants vowel/oo formants vowel/oo

+ 4
- 11
phsource/ph_zh View File

vls pal afr sibilant palatal vls pal afr sibilant palatal
vowelin f1=0 f2=2700 400 600 f3=300 80 vowelin f1=0 f2=2700 400 600 f3=300 80
lengthmod 2 lengthmod 2
wave ustop/tsh_pzd
wave ustop/tsh_pzd%80
endphoneme endphoneme


phoneme S; phoneme S;
vls pla frc sibilant vls pla frc sibilant
vowelin f1=0 f2=2700 400 600 f3=300 80 vowelin f1=0 f2=2700 400 600 f3=300 80
lengthmod 2 lengthmod 2
wave ufric/sh_pzd
endphoneme

phoneme S#
vls pla frc sibilant
vowelin f1=0 f2=2700 400 600 f3=300 80
lengthmod 2
wave ufric/sh_sr%20
wave ufric/sh_pzd2%20
endphoneme endphoneme


phoneme s. phoneme s.
vowelout f1=0 f2=1800 -100 300 f3=-300 80 vowelout f1=0 f2=1800 -100 300 f3=-300 80
length 100 length 100
lengthmod 3 lengthmod 3
wave ufric/sh_rfx%60 // quieter
wave ufric/sh_rfx%50 // quieter
before _ ufric/sh_rfx%50 before _ ufric/sh_rfx%50
endphoneme endphoneme


phoneme y@ phoneme y@
vowel starttype (i) endtype (@) vowel starttype (i) endtype (@)
length 250 length 250
formants vdiph2/y#@
formants vdiph2/y@
endphoneme endphoneme

+ 2
- 2
phsource/phonemes View File

phoneme ** // TEST flap phoneme ** // TEST flap
liquid alv liquid alv
vowelout f1=3 f2=1600 -300 300 f3=-300 80 rms=35 len=15 vowelout f1=3 f2=1600 -300 300 f3=-300 80 rms=35 len=15
vowelin f1=2 f2=1600 -300 300 f3=-300 80
formants r3/@tap+r3/rx%50
vowelin f1=2 f2=1600 -300 300 f3=-100 80 len=20
formants r3/@tap
vowelin f1=3 f2=1600 -300 300 f3=-300 80 vowelin f1=3 f2=1600 -300 300 f3=-300 80
before (i) r3/@tap_i+r3/rx before (i) r3/@tap_i+r3/rx
before (e) r3/@tap_i+r3/rx before (e) r3/@tap_i+r3/rx

BIN
phsource/r3/@tap View File


phsource/ufric/sh_sr.wav → phsource/ufric/sh_pzd2.wav View File


BIN
phsource/ustop/tsh_pzd.wav View File


BIN
phsource/vdiph2/vowelchart.png View File


BIN
phsource/vdiph2/y@ View File


BIN
phsource/vowel/o View File


BIN
phsource/vwl_zh/a_n View File


+ 4
- 4
src/intonation.cpp View File

}; };


static TONE_NUCLEUS tone_nucleus_table[N_TONE_NUCLEUS_TABLE] = { static TONE_NUCLEUS tone_nucleus_table[N_TONE_NUCLEUS_TABLE] = {
{PITCHfall, 30, 5, PITCHfall, 30, 8, NULL, 12, 7, 0}, // 0 statement
{PITCHfall, 30, 5, PITCHfall, 32, 9, NULL, 12, 7, 0}, // 0 statement
{PITCHfrise, 35, 8, PITCHfrise2, 35,10, NULL, 15, 23, 0}, // 1 comma {PITCHfrise, 35, 8, PITCHfrise2, 35,10, NULL, 15, 23, 0}, // 1 comma
{PITCHfrise, 39,10, PITCHfrise2, 36,10, NULL, 15, 28, 0}, // 2 question {PITCHfrise, 39,10, PITCHfrise2, 36,10, NULL, 15, 28, 0}, // 2 question
// {PITCHfall, 41, 4, PITCHfall, 41,27, NULL, 16, 4, T_EMPH}, // 3 exclamation // {PITCHfall, 41, 4, PITCHfall, 41,27, NULL, 16, 4, T_EMPH}, // 3 exclamation
{PITCHfall, 43, 3, PITCHfall, 43,35, NULL, 35, 4, T_EMPH}, // 3 exclamation
// {PITCHrisefall,47, 8, PITCHrise, 48,30, NULL, 48, 5, T_EMPH}, // 3 exclamation
{PITCHfall, 41, 4, PITCHfall, 41,35, NULL, 35, 4, T_EMPH}, // 3 exclamation
{PITCHfall, 38, 2, PITCHfall, 42,30, NULL, 15, 5, 0}, // 4 statement, emphatic {PITCHfall, 38, 2, PITCHfall, 42,30, NULL, 15, 5, 0}, // 4 statement, emphatic
{PITCHfall, 28, 5, PITCHfall, 28, 9, NULL, 12, 7, 0}, // 5 statement, less intonation {PITCHfall, 28, 5, PITCHfall, 28, 9, NULL, 12, 7, 0}, // 5 statement, less intonation
{PITCHfrise, 30, 8, PITCHfrise2, 30,10, NULL, 13, 20, 0}, // 6 comma, less intonation {PITCHfrise, 30, 8, PITCHfrise2, 30,10, NULL, 13, 20, 0}, // 6 comma, less intonation
if((p->type == phPAUSE) && (p->ph->std_length > 50)) if((p->type == phPAUSE) && (p->ph->std_length > 50))
{ {
pause = 1; // there is a pause since the previous vowel pause = 1; // there is a pause since the previous vowel
prevw_tph = phoneme_tab[phonPAUSE]; // forget previous tone
} }


if(p->newword) if(p->newword)
} }
} }


if(prev_tph->mnemonic == 0x343132) // [214]
if(prevw_tph->mnemonic == 0x343132) // [214]
{ {
if(tph->mnemonic == 0x343132) // [214] if(tph->mnemonic == 0x343132) // [214]
prev_p->tone_ph = LookupPh("35"); prev_p->tone_ph = LookupPh("35");

+ 57
- 20
src/readclause.cpp View File

{"amp", '&'}, {"amp", '&'},
{"quot", '"'}, {"quot", '"'},
{"nbsp", ' '}, {"nbsp", ' '},
{"apos", '\''},
{NULL,-1}}; {NULL,-1}};




int n_xml_buf; int n_xml_buf;
int terminator; int terminator;
int punct; int punct;
int found;
int any_alnum = 0; int any_alnum = 0;
int self_closing; int self_closing;
int punct_data; int punct_data;
const char *p; const char *p;
char buf2[40];
wchar_t xml_buf[N_XML_BUF+1]; wchar_t xml_buf[N_XML_BUF+1];


#define N_XML_BUF2 12
char buf2[N_XML_BUF2+2];
static char ungot_string[N_XML_BUF2+4];
static int ungot_string_ix = -1;

if(clear_skipping_text) if(clear_skipping_text)
{ {
skipping_text = 0; skipping_text = 0;
if(ungot_char2 != 0) if(ungot_char2 != 0)
{ {
c2 = ungot_char2; c2 = ungot_char2;
ungot_char2 = 0;
} }
else else
{ {
c2 = GetC(); c2 = GetC();
} }


while(!Eof() || (ungot_char != 0))
while(!Eof() || (ungot_char != 0) || (ungot_char2 != 0) || (ungot_string_ix >= 0))
{ {
if(!iswalnum(c1)) if(!iswalnum(c1))
{ {


cprev = c1; cprev = c1;
c1 = c2; c1 = c2;
c2 = GetC();


if(Eof())
if(ungot_string_ix >= 0)
{ {
c2 = ' ';
if(ungot_string[ungot_string_ix] == 0)
ungot_string_ix = -1;
} }


if((ungot_string_ix == 0) && (ungot_char2 == 0))
{
c1 = ungot_string[ungot_string_ix++];
}
if(ungot_string_ix >= 0)
{
c2 = ungot_string[ungot_string_ix++];
}
else
{
c2 = GetC();

if(Eof())
{
c2 = ' ';
}
}
ungot_char2 = 0;

if((option_ssml) && (phoneme_mode==0)) if((option_ssml) && (phoneme_mode==0))
{ {
if((ssml_ignore_l_angle != '&') && (c1 == '&') && ((c2=='#') || ((c2 >= 'a') && (c2 <= 'z')))) if((ssml_ignore_l_angle != '&') && (c1 == '&') && ((c2=='#') || ((c2 >= 'a') && (c2 <= 'z'))))
{ {
n_xml_buf = 0; n_xml_buf = 0;
c1 = c2; c1 = c2;
while(!Eof() && (iswalnum(c1) || (c1=='#')) && (n_xml_buf < 12))
while(!Eof() && (iswalnum(c1) || (c1=='#')) && (n_xml_buf < N_XML_BUF2))
{ {
buf2[n_xml_buf++] = c1; buf2[n_xml_buf++] = c1;
c1 = GetC(); c1 = GetC();
} }
buf2[n_xml_buf] = 0; buf2[n_xml_buf] = 0;
c2 = GetC(); c2 = GetC();
sprintf(ungot_string,"%s%c%c",&buf2[0],c1,c2);


if(buf2[0] == '#')
if(c1 == ';')
{ {
// character code number
c1 = '#'; // in case there isn't a number
if(buf2[1] == 'x')
sscanf(&buf2[2],"%x",(unsigned int *)(&c1));
else
sscanf(&buf2[1],"%d",&c1);
}
else
{
if((j = LookupMnem(xml_char_mnemonics,buf2)) != -1)
if(buf2[0] == '#')
{ {
c1 = j;
// character code number
if(buf2[1] == 'x')
found = sscanf(&buf2[2],"%x",(unsigned int *)(&c1));
else
found = sscanf(&buf2[1],"%d",&c1);
} }
else else
{ {
c1 = '&';
if((found = LookupMnem(xml_char_mnemonics,buf2)) != -1)
{
c1 = found;
if(c2 == 0)
c2 = ' ';
}
} }
} }
else
{
found = -1;
}

if(found <= 0)
{
ungot_string_ix = 0;
c1 = '&';
c2 = ' ';
}

if((sayas_mode == 0x14) && (c1 <= 0x20)) if((sayas_mode == 0x14) && (c1 <= 0x20))
{ {
c1 += 0xe000; // move into unicode private usage area c1 += 0xe000; // move into unicode private usage area

+ 3
- 0
src/setlengths.cpp View File

else else
p->prepause = 60; p->prepause = 60;


if(prev->type == phSTOP)
p->prepause = 60;

if((langopts.word_gap & 0x10) && (p->newword)) if((langopts.word_gap & 0x10) && (p->newword))
p->prepause = 60; p->prepause = 60;



+ 1
- 1
src/synthdata.cpp View File

#include "translate.h" #include "translate.h"
#include "wave.h" #include "wave.h"


const char *version_string = "1.31.08 08.Feb.08";
const char *version_string = "1.31.09 11.Feb.08";
const int version_phdata = 0x013105; const int version_phdata = 0x013105;


int option_device_number = -1; int option_device_number = -1;

Loading…
Cancel
Save