Browse Source

[1.31.12]

Fix: reset phoneme table if speech is cancelled while switched to a second language.
"speak": add -z options (same as for "espeak").
Numbers: Add option to speak "and" before hundreds.


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

+ 18
- 7
dictsource/dict_phonemes View File

@@ -72,10 +72,10 @@ aU@ E e@ eI I I2 i: i@
i@3 IR O O: o: O@ o@ OI
oU O~ U u: U@ V VR

: ; b C d D dZ f
g h j k l m n N
p Q r r- s S t T
t2 tS v w x z Z
; b C d D dZ f g
h j k l m n N p
Q r r- s S t T t2
tS v w x z Z


Dictionary eo_dict
@@ -111,9 +111,9 @@ S s2 t v Z

Dictionary fr_dict

@ @- a A A~ e E E:
E~ i i: o O O~ u W
w^i W~ y Y
@ @- a A A~ e E E~
i i: o O O~ u W w^i
W~ y Y

* : ; b c d D dZ
f g h j k l L m
@@ -401,3 +401,14 @@ u# W y Y
j k l m n p Q r
R s S t tS v w z
Z


Dictionary ku_dict

a e E eI i I o u
U y

: b d dZ f g h j
k l m n p q r R
s S t tS v w x z
Z

+ 2
- 3
dictsource/en_list View File

@@ -67,7 +67,7 @@ _& amp@sand
_' praIm
_( ElbrakIt
_) A@brakIt
_* ast@rIsk:
_* ast@rIsk
_+ plVs
_, k0m@
_- h,aIf@n
@@ -313,7 +313,7 @@ ague eIgju:
aha a2hA:
ahem a2h'@m
ahoy a2hOI
airbus e@:bVs
airbus e@bVs
airpower 'e@p,aU@
aisle aI@l
ajar a2dZA@
@@ -2218,7 +2218,6 @@ Emma Em@
Evan Ev@n
Gary garI2
Geraint gEraInt
Gilbert gIlb3t
Giles gaIlz
Glynn glIn
Graeme greI@m

+ 1
- 0
dictsource/en_rules View File

@@ -2372,6 +2372,7 @@
g (i dZ
gi (_ gI2
_) g (il g
g (ilC g
l) ging dZI2N
g (y dZ
_) g (n

+ 73
- 73
dictsource/fr_list View File

@@ -5,7 +5,7 @@

// 2006-11-18 Gilles Casse <[email protected]>
//
// Updated 2008-02-11 Michel Such <[email protected]>
// Updated 2008-02-14 Michel Such <[email protected]>
//
// * Numbers, a few abbreviations and exceptions.
//
@@ -421,7 +421,6 @@ adéquat adekuat2
adéquate adekuat
airbus Erbys
anus anys
any Eni
ardent aRdA~
bissus bisys
bonus bonys
@@ -433,20 +432,18 @@ choeur k@r
cocus coky
discident disidA~
estomac Estoma
eye aj
eyes ajz
fils fis
imprudent E~pRydA~
iris iris
juin ZyE~
malus malys
many mEni
mars maRs
minus minys
occident OksidA~
orient ORjA~
pays pEi
phallus falys
polder pOldEr
prudent pRydA~
secret sYkRE
souris suri
@@ -475,13 +472,13 @@ processus pROsEsys
août ut
azimut azim'yt
brut bR'yt
bouse buz
but by $verb
but byt
club kl@b
(le pub) l@||p'@b
(un pub) W~||p'@b
(du pub) dy||p'@b
connecticut kOnEktikyt
cut cWt
helmut Elmut
hub _|@b
@@ -499,19 +496,15 @@ zut zyt

// et (t is said)

bridget bRidZEt
exocet EgzOsEt
fret fR'Et
gadget gadZEt
budget bydZE
hamlet amlEt
jacket ZakEt
knesset knEsEt
lazaret lazaREt
margaret maRgaREt
net nEt
offset OfsEt
pickpocket pikpOkEt
racket RakEt
set sEt
soviet sOvjEt

@@ -525,7 +518,6 @@ yogourt yoguRt
short SORt

// art (t said)
stewart stiwaRt
steward stiwaRt
stuttgart StutgaRt
hart aRt
@@ -539,95 +531,103 @@ flirt fl@Rt


// words from other languages
about @bawt
about _^_en
acer asEr
again _^_en
against _^_en
alone _^_en
also _^_en
and _^_en
amazon amaz'On
(audible manager) od'ibl||manadZ'@r
be bi
being biiN
by baj
any Eni
apple _^_en
at _^_en
(audible manager) odibl||manadZ@r
be _^_en
being _^_en
bluetooth blut'us
byte bajt
bytes bajts
both _^_en
browser _^_en
can _^_en
computer _^_en
(cyber link) sibEr||link
debian dEbjAn
driver drajv@rz2
download dOnlod
does _^_en
doesn't _^_en
don't _^_en
driver _^_en
edit edit
emacs Emaks
emacspeak Emakspi:k
end _^_en
enter 'Ent@r
epson EpsOn
espeak @spi:k
ethernet etERnEt
exit egzit
(file zilla) fajl@-||zija
eye _^_en
eyes _^_en
(file zilla) fajl||zija
fire _^_en
firefox faj@RfOks
(fire wire) faj@R||wajr
firewire faj@Rwajr
google gu:g'@l
girl g@Rl
get _^_en
google gu:g@l
gnome gnom
gnu gnu
hamburger _!A~b@rg@r
has _!az $u
his _!iz $u
inside insajd
insight insajt
help _^_en
in _^_en
into _^_en
inside _^_en
insight _^_en
internet E~tERnEt
(internet explorer) E~tErn'Et||EksplOr'@r
is iz
it it
its its
is _^_en
it _^_en
its _^_en
klaxon klaksOn
leader li:d@R
let lEt
layer _^_en
let _^_en
liszt list
lite lajt
lite _^_en
logon _^_en
(mac os x) makoEsiks
mail mE:jl
maker mE:jk@r
made _^_en
mail _^_en
media medja
messenger mesEnZ'@r
movy mu:v'i
my maj
name nejm
not nOt
messenger _^_en
my _^_en
name _^_en
not _^_en
of _^_en
often _^_en
ok oke
open Op'@n
outlook autluk
outside autsajd
outsider autsajd@r
player plEj'@r
quick kwik
outside _^_en
outsider _^_en
player _^_en
redhat REdat
release rili:z
same sejm
same _^_en
sametime _^_en
schubert SubER
screamer skri:m@r
(search & destroy) s@:rS_||end_||dEsstrOj
skype sk'ajp@-
spybot spajbOt
sun s@n
sunlight s@nlajt
since _^_en
sun _^_en
(text aloud) tEkst||@lawd
than Dan
the D@ $u
them DEm $u
then DEn $u
there DEr $u
they DE $u
thunderbird f@ndERb@Rd
time tajm
timer tajm@r
their _^_en
there _^_en
these _^_en
those _^_en
they _^_en
thus _^_en
thunderbird D'@ndYR||b@Rd
time _^_en
timer _^_en
ubuntu ubuntu
update @pd'E:jt
upload @plod
very vEri
viavoice viavOjs
was waz $u
window windo
windows windoz
word wWRd
writer rajt@r
up _^_en
viking vikiN
was _^_en
won't _^_en
yacht jot
yes jEs $brk


+ 213
- 53
dictsource/fr_rules View File

@@ -1,12 +1,13 @@
// French translation rules

// This file is UTF-8 encoded

// 2006-11-18 Gilles Casse <[email protected]>
//
// Updated: 2008-02-11 Michel Such <[email protected]>
// Updated: 2008-02-14 Michel Such <[email protected]>
//
// * The rules are based on Cicero TTS.
//
// Y

// Letter classes:
// A all vowels: a e i o u y â ä é ê è î ï ô ö ù û
@@ -28,8 +29,6 @@
a (il_ a
aie (me E // paiement
ai E // aile
a (lk O // talk
a (ll_ O // football handball
am (b A~ // jambon
am (p A~ // camp
am (m a // programmation
@@ -50,12 +49,32 @@
ay Ej // paye
a a // bateau

// group a: English section
_C) ad (_ _^_en // bad, had, sad
alk _^_en // talk, walk
all (_ _^_en // football handball
f) all (en_ _^_en // fallen
sm) all _^_en // small, smaller
ally (_ _^_en // really, naturally
a (wC _^_en


.group b
bb b // abbé
om) b (_ // plomb applomb
b b // aube

// group b: English section
bird _^_en // bird
bly (_ _^_en // probably
board _^_en // board, keyboard
box (_ _^_en // box, inbox, outbox
bug (_ _^_en // bug, debug
bug (g _^_en // debugger
buil _^_en // build, built
_) buy _^_en
_) by _^_en // by, bye, bypass


.group c
c' s // s
@@ -98,6 +117,12 @@
cien (t_ i // ils appr�ient, remercient.
i) cien (t_ sjA~ // coefficient

// group c: English section
cast (_ _^_en // broadcast
calt (_ _^_en // difficult
cut (_ _^_en // cut, shortcut
cy (_ _^_en // currency, frequency


.group d
dd d // addition
@@ -108,8 +133,6 @@
Csan) d (_ d
_tan) d (_ d // stand
Ctan) d (_ d
for) d (_ d
lor) d (_ d

Can) d (_ t2 // grand ami, grand marchand
Cen) d (_ t2
@@ -124,29 +147,25 @@
r) d (_ // lourd placard
d d // don bled

// group d: English section
') d (_ _^_en
lor) d (_ _^_en
day (_ _^_en
dle (X _^_en // bundle, handle
dly (_ _^_en
dy (_ _^_en


.group e
e (Ce_ E
eau o // bateau cheveaux
C) ea (d i: // read
Cr) ea (m i: // stream
Cl) ea (n i: // clean
C) ea (Cer i: // reader, cleaner
g) ea (s_ a // mangeas
j) e (a // Jean Jeanne
sp) ea (k i: // speak speaker
p) ect (_ E // suspect
ect (_ Ekt // direct
_trépi) ed e
_pi) ed e // pied
ee i: // meeting
_cl) ef (_ e // clef
Ck) e (r_ @ // worker, talker
_Cett) e (r_ @ // letter, better
eaC) e (r_ @ // speaker, streamer
gh) e (r_ @ // higher
ght) e (r_ @ // fighter, lighter
ooC) e (r_ @ // scooter
_ov) e (r @ // over
ein (C E~ // peindre
ein (_ E~
e (il E // vieille
@@ -244,10 +263,6 @@
_trav) er (_ ER
_ti) er (_ ER

th) er (_ @R // brother
th) er (s_ @R
w) er (_ @R // power
w) er (s_ @R

er (_ e // parler léger
er (s_ e
@@ -283,6 +298,7 @@

@Cr) es (_C @-
rC) es (_C @- // fortes dames
dg) et (_ Et // Bridget, gadget

') eu (_ y // eu
eu (r_ @ // peur
@@ -301,12 +317,6 @@
_) eû y // eût
eû Y // jeûne

ew (_ ju // new
ews juz // news, newsreader
r) ew (_ u // crew
r) ews uz
i) ew (_ u // view
i) ews uz
e (x E // exact
ey (_ e // dahomey
ey (C e // ceylan
@@ -367,6 +377,33 @@

e @ // menue

// group e: English section
C) ead _^_en // read, head
eaf _^_en // leaf
eak _^_en // break, speak
Cr) eam _^_en // stream
Cl) ean _^_en // clean
l) ean _^_en // lean
m) ean _^_en // mean
ear _^_en // ear, search
eas _^_en // please
eat _^_en // eat, seat
ed (_ _^_en
ee _^_en // meeting
eave _^_en // leave
eft (_ _^_en // left
eive _^_en // receive
eith _^_en // either neither
ely (_ _^_en // lately
ooC) er (_ _^_en // scooter
_ov) er _^_en // over
_C) etter (_ _^_en // letter, better
ack) et (_ _^_en // racket, packet
ock) et (_ _^_en // rocket, pocket
ery (_ _^_en // query
qu) est (_ _^_en // request
qu) este (X_ _^_en // requested, requester


.group ë
u) ë // ambiguë
@@ -379,6 +416,17 @@
_neu) f (_ans v // liaison: neuf ans
_neu) f (_heures v

// group f: English section
fail (_ _^_en // fail
fail (A _^_en // failure
faith _^_en // failure
fly _^_en
ford (_ _^_en
friend _^_en // friend, friendly
full (_ _^_en
fully (_ _^_en
fy (_ _^_en


.group g
g g
@@ -421,6 +469,13 @@
g (_ g // grog gag goulag
g Z // congé george

// group g: English section
gh _^_en // high, higher
girl _^_en // girl
gly (_ _^_en
give (X _^_en
gy (_ _^_en


.group h
_) h (ac _! // hache
@@ -467,7 +522,6 @@ _) h (ic _! // hic
_) h (ide _! // hideux
_) h (iér _! // hiéroglyphe
_) h (i-fi _! // hi-fi
_) h (igh _! // highlandais
_) h (i-han _! // hi-han
_) h (iss _! // hisser
_) h (it _! // hit, hit-parad
@@ -503,6 +557,11 @@ _) h (umi // humide
_) h (umo // humour
h // ahuri

// group h: English section
_) half _^_en
_) h (As_ _^_en // has, his
here (_ _^_en // here


.group i
i i // cri
@@ -511,9 +570,6 @@ _) h (umo // humour
i (es_ i // parties
i (e_ i
i (A j // fermier portier patio renier
ig (h aj // right, fight, light
wh) ile ajll // while, endwhile
wr) i (tA aj // write
_) ill ill // illégal
_m) ill il // mille
v) ill il // village
@@ -527,18 +583,26 @@ _) h (umo // humour
imm imm // immaculé
im (_ im // karim
im (C E~ // timbre
ing (_ iN // parking
in (h in // inhumain
inct (_ E~ // distinct
ind (_ ajnd // find, mind
ind (ing_ ajnd // find, mind
ink ink // link, pink
in (n i // innombrable
in (C E~ // vingt
// in (_ E~ // vin
in (_ W~ // vin
ique (_ ik

// group i: English section
ike (X _^_en // bike, like
ill (_ _^_en // ill, will, fill
C) illy (_ _^_en // silly
ing (_ _^_en // parking
ind (_ _^_en // find, mind
ind (er_ _^_en // finder, reminder
ink _^_en // link, pink
ious (_ _^_en // various
iously (_ _^_en // previously
ism (_ _^_en // tourism
ize _^_en // realize


.group î
î i // abîme
@@ -560,10 +624,12 @@ _) h (umo // humour

.group k
k k // kafka
ket (_ kEt // basket
kets (_ kEt // basket


// group k: English section
ke (X _^_en // basket, make, take
ky (_ _^_en

.group l
l l // lit
ll l // aller
@@ -572,11 +638,22 @@ _) h (umo // humour
outi) l (_ // outil
ui) ll j // juillet

// group l: English section
') ld (_ _^_en
') ll (_ _^_en
less (_ _^_en // noiseless
lessly (_ _^_en // endlessly


.group m
m m // film
mm m // pomme

// group m: English section
mail (A _^_en // mailer
may _^_en
mov (A _^_en // move, movy


.group n
n n // une
@@ -588,6 +665,10 @@ _) h (umo // humour
A) ng (_ N // parking meeting
nn n // panne

// group n: English section
n't (_ _^_en
ny (_ _^_en


.group o
cr) oc (_ o // escroc
@@ -635,11 +716,8 @@ p) oing (_ wE~ // poing
r) o (ne_ o

alc) oo (l O // alcool
oo (Ce u // boomer
C) oot ut // bootable football
z) oo o // zoo
z) oo (l oo // zoologue
z) oo (ph oo // zoophile
z) oo (C oo // zoologue
z) oo (m u // zoom
oo (X u // pool
_gal) op (_ o // galop
@@ -650,7 +728,6 @@ p) oing (_ wE~ // poing
v) ost (_ o // Prévost
o (sA o // poser
ot (_ o // mot dépots
C) ou (nd aw // sound, found
_C) oup (_ u // coup, loup
uC) oup (_ up2 // beaucoup

@@ -660,8 +737,6 @@ p) oing (_ wE~ // poing
oû u // coûter
oyes (_ wa // troyes
oy (A waj // noyer voyelles
oy (_ Oj // boy, toy
oys (_ Ojz // boys, toys
oy wa // roy
o (_ o // zorro allégro
o (z_ o // berlioz
@@ -672,6 +747,20 @@ p) oing (_ wE~ // poing

o O // sobre notions émotions

// group o: English section
C) oad (_ _^_en // load, road
C) oad (eX _^_en // loaded
C) oat _^_en // boat
old (er_ _^_en // folder, older
oo (Ce _^_en // boomer
C) oot _^_en // bootable football
C) ou (ld_ _^_en // could, should
oun (C _^_en // bounce, found
_C) ouse _^_en // mouse, house
C) outh _^_en // mouth, south
ow _^_en // cow, town, down
oy (X _^_en // boy, toy


.group ô
ôt (_ o // rôt
@@ -700,6 +789,16 @@ p) oing (_ wE~ // poing
se) pt (_ t // sept
se) pt (iè t // septième

// group p: English section
plug _^_en // plug
ply (_ _^_en // simply
print (_ _^_en // print
printer (_ _^_en // printer
_) prove (X _^_en // prove
_AC) prove (X _^_en // improve
_AC) provem _^_en // improvement
py (_ _^_en // copy


.group q
q k // coq
@@ -715,15 +814,21 @@ p) oing (_ wE~ // poing
_) qu' (P3 k // qu'il
n) q (_ k // cinq cent

// group q: English section
quick _^_en // quick, quickly


.group r
right rajt // copyright
_su) rr RR // surréaliste
cou) rr RR // courrai
mou) rr RR // mourrai
rr R // erreur
r r // rien

// group r: English section
_) rule (X _^_en // rule
ry (_ _^_en // theory


.group s
s s // verser sien
@@ -740,6 +845,7 @@ e) s (_h z2
sch S // schéma
dé) sh (A z // déshabiller
sh S // shérif
CA) sh (_ _^_en // punish
ss s // assez

ai) s (em s // vraisemblable
@@ -767,6 +873,7 @@ e) s (_h z2
ïu) s (_ s // laïus
Culu) s (_ s // cumulus
plu) s (_ z2 // plus, surplus
ylu) s (_ s // stylus
mu) s (_ s
_mu) s (_
ému) s (_
@@ -795,11 +902,27 @@ e) s (_h z2
s (j z
s (v z

// group s: English section
') s (_ _^_en // possessive
ship _^_en // friendship
shop _^_en // shop
sh (At _^_en // shut, shot
shout _^_en
sky _^_en
_) smil _^_en // smile, smiley
spy _^_en
A) ss (_ _^_en // boss, cross
C) s (ton _^_en // winston
stone (_ _^_en
sy (_ _^_en


.group t
t t // bataille
V) t (_ t2 // silent at end of verb unless next word starts with a vowel
t (_ // silent at end of word
_) th (onX t // thon
_) th (ymX t // shym
ts (_S1 z2 // silent at end of word unless next word starts with a vowel
C) t (_ t // compost watt soft script malttact abrupt
Vn) t (_ t2 // silent at end of verb unless next word starts with a vowel
@@ -813,7 +936,6 @@ C) te (_ t@- // patte

s) th (m // asthme
th t // théorie
sCar) t (_ t // smart, start
hui) t (_ t // huit

_) t t // tien tiers
@@ -856,12 +978,20 @@ C) te (_ t@- // patte

_ce) t (_ t

// group t: English section
_) th (AX _^_en // that, this, then, than
C) th (_ _^_en // month
try (_ _^_en // try, country
sCar) t (_ _^_en // smart, start
sCar) t (er_ _^_en // starter
ty (_ _^_en // party, buty


.group u
u y // cruel nuage brut
ui w^i

_b) usi iz // business, businessman
_b) usi _^_en // business, businessman
c) ueill Wj // cueillir
c) ueil (_ Wj // recueil
_c) ul (_ y
@@ -874,25 +1004,55 @@ C) te (_ t@- // patte
um (b W~ // humble
um (p W~
un (C W~ // emprunt lundi
C) un (_ W~ // brun
CC) un (_ W~ // brun
uc) un (_ W~n2 // aucun
un (_ W~n2 // un avion
_f) un @n // fun
_g) un @n // gun
_r) un @n // run
_s) un @n // sun, sunday

fl) ux (_ y // flux, reflux
g) u (A // fatigue
g) u (ï y // ambiguïté
g) u (ë y // ambiguë

// group u: English section
C) u (ch_ _^_en // much such
C) ui (ce _^_en // produice, juice
up (C _^_en // upper, update
under _^_en // under, understand, thunder
C) ur (ch _^_en // church
urn (X _^_en // burn, turn
ust (_ _^_en // just, trust
rib) u (teX _^_en // tribute, attribute


.group v
v v

// goup v: English section
') ve (_ _^_en
voice (_ _^_en
void (_ _^_en
vy (_ _^_en


.group w
w w
wa (Ce_ wE // hardware software wave
w (agon v // wagon
w (r // write

// group w: English section
A) w _^_en
wa (Ce_ _^_en // hardware software wave
wr _^_en // write
w (ACh _^_en // wash, wish, with
way _^_en // way, away
wh _^_en // what, which, who
_) wi _^_en // winner, window, wire
wise _^_en
_) wom _^_en // woman
wor _^_en // word, world


.group x

+ 1
- 1
dictsource/zh_rules View File

@@ -202,7 +202,7 @@ language).
t) u (DnK wu@
uo uo

sh) ui wei
sh) ui rei
sh) u (DnK wo-
sh) uo wo


+ 2
- 0
docs/mbrola.html View File

@@ -73,6 +73,8 @@ will put the Mbrola speech output into a WAV file. Or you can pipe the output f
<p>
The -e option prevents Mbrola from stopping if it finds a combination
of phonemes which it doesn't recognise.
<p>
Some mbrola voices (de5, de6) use a sample rate of 22050 Hz. These need -r22050 rather than -r16000.
</ol>
<h3>Mbrola Voice Files</h3>


+ 1
- 1
espeak-data/voices/mb/mb-de5-en View File

@@ -3,5 +3,5 @@ language en
gender female

pitch 140 220
mbrola de5 de5_phtrans 22050
mbrola de5 de6_phtrans 22050


+ 16
- 3
phsource/compile_report View File

@@ -1,4 +1,4 @@
48 phoneme tables
49 phoneme tables
new total
base 99 99
base2 24 118
@@ -30,7 +30,7 @@
ru 38 129
it 17 121
la 21 117
es 8 119
es 9 119
es_la 1 119
pt 27 134
pt_pt 20 134
@@ -47,6 +47,7 @@
th 50 142
id 14 120
tr 14 123
ku 12 120
ja 7 104

Data file Used by
@@ -621,6 +622,7 @@ ufric/x2 [x2] af
[x2] nl
[x2] pt
ufric/x_hr [x] hr
[x] ku
ufric/x_sr [h] sr
[x] sr
ustop/c [c] base
@@ -678,7 +680,6 @@ ustop/kr [k] base
[k] zhy
[k] sw
ustop/k_unasp [k] base
[q] base
[k] base2
[k] fi
[k] hi
@@ -738,6 +739,7 @@ ustop/p_unasp_ [p] base2
[p] sk
[p] la
[p;] ro
ustop/q [q] base
ustop/t [t] base
[t2] en
[t] fr
@@ -940,6 +942,7 @@ vdiph/eei_2 [eI] eo
[eI] id
vdiph/eei_3 [eI] en_rp
[eI] sk
[eI] ku
vdiph/eeu [EU] pt
[EU] grc
[EU] vi
@@ -1169,6 +1172,7 @@ vowel/& [a] en_rp
[&] fi
[&:] hi
[&] sv
[E] ku
vowel/0 [0] en
[O] hi
[O] pt
@@ -1275,6 +1279,7 @@ vowel/aa [a] fi
[aa] zhy
vowel/aa# [0] en_wi
[a2] fi
[a] ku
vowel/aa_2 [A:] en
[A@] en
[A:] cy
@@ -1383,6 +1388,7 @@ vowel/e_mid2 [E] af
[e] fi
[E] nl
[e] sk
[e] es
[e] ro
[e] el
[e] sw
@@ -1442,6 +1448,7 @@ vowel/i_6 [i:] en_us
[i] hr
[i] id
[i] tr
[i] ku
vowel/i#_6 [i.] zh
vowel/i#_7 [i[] zh
vowel/i_en [i:] en
@@ -1460,9 +1467,11 @@ vowel/ii [I] en_rp
[I] nl
[I] is
[i] zhy
[e] ku
vowel/ii# [Y] cy
[y] pl
[Y] ru
[I] ku
vowel/ii_2 [i] zh
vowel/ii_3 [I] cy
[I] fi
@@ -1526,6 +1535,7 @@ vowel/o_4 [oU] en_n
vowel/o-_4 [o] ro
vowel/o_5 [O] nl
vowel/o_6 [O:] nl
vowel/o_7 [o] ku
vowel/oe [W] en
[W] af
[W] de
@@ -1623,6 +1633,7 @@ vowel/u#_4 [U] en_sc
vowel/u_5 [u] sw
vowel/u_6 [U] pt_pt
[u] pt_pt
[u] ku
vowel/u#_6 [u:] en_us
vowel/u_7 [u] vi
vowel/u#_7 [u#] tr
@@ -1649,6 +1660,7 @@ vowel/u_bck2 [u:] la
vowel/u_fnt [u:] en_rp
vowel/uu [U] en
[U] en_wm
vowel/uu# [U] ku
vowel/uu_2 [U] base2
[U] de
[U] ta
@@ -1706,6 +1718,7 @@ vowel/y#_3 [W] is
vowel/y_4 [y:] no
vowel/y_5 [y:] sv
[y] tr
[y] ku
vowel/yy [y"] fr_ca
[y] no
vowel/yy_3 [y] sv

+ 6
- 0
phsource/ph_spanish View File

@@ -3,6 +3,12 @@
// Spanish - based on Base2
//====================================================

phoneme e
vowel starttype (e) endtype (e)
length 170
formants vowel/e_mid2
endphoneme

phoneme E
vowel starttype (e) endtype (e)
length 180

+ 6
- 0
phsource/ph_spanish_la View File

@@ -0,0 +1,6 @@

//====================================================
// Latin American Spanish - based on Spanish
//====================================================



+ 5
- 2
phsource/phonemes View File

@@ -996,8 +996,8 @@ phoneme q
vowelin f1=1 f2=1700 0 200 f3=-300 80 f4 paus rms=35
vowelout f1=1 f2=1700 0 200 f3=-300 80 f4 rms=30
lengthmod 2
wave ustop/k_unasp%60
before _ ustop/k_unasp%50
wave ustop/q%50
before _ ustop/q%40
endphoneme


@@ -1282,5 +1282,8 @@ include ph_indonesian
phonemetable tr base2
include ph_turkish

phonemetable ku base2
include ph_kurdish

phonemetable ja base
include ph_japanese

BIN
phsource/r3/@tap View File


BIN
phsource/vowel/& View File


BIN
phsource/vowel/ii# View File


BIN
phsource/vowel/u_6 View File


BIN
phsource/vowel/uu# View File


+ 4
- 2
src/Makefile View File

@@ -1,3 +1,5 @@
# removed -fno-exceptions because it caused problems with stdio library on some platforms

PREFIX=/
BINDIR=$(PREFIX)/usr/bin
INCDIR=$(PREFIX)/usr/include/espeak
@@ -66,7 +68,7 @@ all: $(BIN_NAME) $(LIB_NAME) $(STATIC_LIB_NAME) $(BIN2_NAME)
mv $(LIB_NAME) $(LIB_NAME).$(LIBTAG)

.cpp.o:
$(CXX) $(CXXFLAGS) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -pedantic -I. -c -fno-exceptions $<
$(CXX) $(CXXFLAGS) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -pedantic -I. -c $<

$(BIN_NAME): $(OBJS1)
$(CXX) -o $@ $(OBJS1) $(LIBS1)
@@ -78,7 +80,7 @@ $(BIN2_NAME): $(OBJS3) $(LIB_NAME)

x_%.o: %.cpp
$(CXX) $(CXXFLAGS) -Wall -fpic -pedantic \
-I. -D LIBRARY -c -fno-exceptions $< -o x_$*.o
-I. -D LIBRARY -c $< -o x_$*.o

$(LIB_NAME): $(OBJS2)
$(CXX) -shared $(SONAME_OPT)$(LIB_NAME).$(LIB_VERSION) -o $@ $(OBJS2) $(LIBS2)

+ 8
- 1
src/numbers.cpp View File

@@ -454,6 +454,7 @@ int Translator::LookupNum3(int value, char *ph_out, int suppress_null, int thous
char ph_digits[50];
char ph_thousands[50];
char ph_hundred_and[12];
char ph_thousand_and[12];
hundreds = value / 100;
buf1[0] = 0;
@@ -461,6 +462,7 @@ int Translator::LookupNum3(int value, char *ph_out, int suppress_null, int thous
if(hundreds > 0)
{
ph_thousands[0] = 0;
ph_thousand_and[0] = 0;

Lookup("_0C",ph_100);

@@ -486,6 +488,11 @@ int Translator::LookupNum3(int value, char *ph_out, int suppress_null, int thous
ph_digits[0] = 0;
if(hundreds > 0)
{
if((langopts.numbers & 0x100000) && (prev_thousands || (ph_thousands[0] != 0)))
{
Lookup("_0and",ph_thousand_and);
}

suppress_null = 1;

found = 0;
@@ -513,7 +520,7 @@ int Translator::LookupNum3(int value, char *ph_out, int suppress_null, int thous
}
}

sprintf(buf1,"%s%s%s",ph_thousands,ph_digits,ph_100);
sprintf(buf1,"%s%s%s%s",ph_thousands,ph_thousand_and,ph_digits,ph_100);
}

ph_hundred_and[0] = 0;

+ 1
- 0
src/phoneme.h View File

@@ -127,6 +127,7 @@ typedef struct {
// Several phoneme tables may be loaded into memory. phoneme_tab points to
// one for the current voice
extern int n_phoneme_tab;
extern int current_phoneme_table;
extern PHONEME_TAB *phoneme_tab[N_PHONEME_TAB];
extern unsigned char phoneme_tab_flags[N_PHONEME_TAB]; // bit 0: not inherited


+ 7
- 1
src/speak.cpp View File

@@ -91,6 +91,7 @@ static const char *help_text =
"-q\t Quiet, don't produce any speech (may be useful with -x)\n"
"-x\t Write phoneme mnemonics to stdout\n"
"-X\t Write phonemes mnemonics and translation trace to stdout\n"
"-z\t No final sentence pause at the end of the text\n"
"--stdout Write speech output to stdout\n"
"--compile=<voice name>\n"
"\t Compile the pronunciation rules and dictionary in the current\n"
@@ -500,6 +501,7 @@ int main (int argc, char **argv)
option_phonemes = 0;
option_waveout = 0;
option_wordgap = 0;
option_endpause = 1;
option_multibyte = espeakCHARS_AUTO; // auto
f_trans = stdout;

@@ -559,7 +561,7 @@ int main (int argc, char **argv)
#else
while(true)
{
c = getopt_long (argc, argv, "a:bf:g:hk:l:p:qs:v:w:xXm",
c = getopt_long (argc, argv, "a:bf:g:hk:l:p:qs:v:w:xXmz",
long_options, &option_index);

/* Detect the end of the options. */
@@ -635,6 +637,10 @@ int main (int argc, char **argv)
strncpy0(wavefile,optarg2,sizeof(wavefile));
break;

case 'z':
option_endpause = 0;
break;

case 0x100: // --stdin
flag_stdin = 1;
break;

+ 3
- 1
src/synthdata.cpp View File

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

const char *version_string = "1.31.10 12.Feb.08";
const char *version_string = "1.31.12 16.Feb.08";
const int version_phdata = 0x013105;

int option_device_number = -1;

// copy the current phoneme table into here
int n_phoneme_tab;
int current_phoneme_table;
PHONEME_TAB *phoneme_tab[N_PHONEME_TAB];
unsigned char phoneme_tab_flags[N_PHONEME_TAB]; // bit 0: not inherited

@@ -574,6 +575,7 @@ void SelectPhonemeTable(int number)
n_phoneme_tab = 0;
SetUpPhonemeTable(number,0); // recursively for included phoneme tables
n_phoneme_tab++;
current_phoneme_table = number;
} // end of SelectPhonemeTable



+ 5
- 0
src/synthesize.cpp View File

@@ -1544,6 +1544,11 @@ int SpeakNextClause(FILE *f_in, const void *text_in, int control)
return(0);
}

if(current_phoneme_table != voice->phoneme_tab_ix)
{
SelectPhonemeTable(voice->phoneme_tab_ix);
}

// read the next clause from the input text file, translate it, and generate
// entries in the wavegen command queue
p_text = translator->TranslateClause(f_text,p_text,&clause_tone,&voice_change);

+ 16
- 0
src/tr_languages.cpp View File

@@ -440,6 +440,22 @@ SetLengthMods(tr,3); // all equal
}
break;

case L('k','u'): // Kurdish
{
static const unsigned char stress_amps_ku[8] = {16,16, 20,20, 20,24, 24,22 };
static const short stress_lengths_ku[8] = {170,170, 190,170, 0,0, 230,240};

tr = new Translator();
SetupTranslator(tr,stress_lengths_ku,stress_amps_ku);
tr->charset_a0 = charsets[9]; // ISO-8859-9 - Latin5

tr->langopts.stress_rule = 7; // stress on the last syllable, before any explicitly unstressed syllable

tr->langopts.numbers = 0x100c69;
tr->langopts.max_initial_consonants = 2;
}
break;

case L('l','a'): //Latin
{
tr = new Translator();

+ 2
- 1
src/translate.h View File

@@ -316,7 +316,7 @@ typedef struct {
// bit3= , decimal separator, not .
// bit4=use three-and-twenty rather than twenty-three
// bit5='and' between tens and units
// bit6=add "and" after hundred and thousand
// bit6=add "and" after hundred or thousand
// bit7=don't have "and" both after hundreds and also between tens and units
// bit8=only one primary stress in tens+units
// bit9=only one vowel betwen tens and units
@@ -328,6 +328,7 @@ typedef struct {
// bit17=recognize roman numbers
// bit18=Roman numbers only if upper case
// bit19=don't add pause after a number
// bit20='and' before hundreds
int numbers;

// bits 1-4 use variant form of numbers before thousands,millions,etc.

Loading…
Cancel
Save