Browse Source

[1.31.13]

Error message if accented letters are not recognized as alphabetic.
"speak" program.  Don't finish when an empty sentence is found.
Compile dictionary: compile *_listx after *_list, not before.


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

+ 4
- 4
dictsource/dict_phonemes View File

O~ r- U u: V O~ r- U u: V


: b c ch d d. f g : b c ch d d. f g
h H j J k kh l m
n N n. n^ p ph Q q
r s S s. t T t. t.h
th v w x z
h H j J k kh l l.
m n N n. n^ p ph Q
q r s S s. t T t.
t.h th v w x z




Dictionary hu_dict Dictionary hu_dict

+ 1
- 1
dictsource/en_rules View File

phab) et (_ Et phab) et (_ Et
ber) et (_ eI ber) et (_ eI
gr) et (+ Et gr) et (+ Et
f) et (a i:
f) et (a i:t
_m) et (e i:t _m) et (e i:t
_p) et (e i:t _p) et (e i:t
et (itor 'Et et (itor 'Et

+ 31
- 18
dictsource/fr_list View File



// 2006-11-18 Gilles Casse <[email protected]> // 2006-11-18 Gilles Casse <[email protected]>
// //
// Updated 2008-02-14 Michel Such <[email protected]>
// Updated 2008-02-20 Michel Such <[email protected]>
// //
// * Numbers, a few abbreviations and exceptions. // * Numbers, a few abbreviations and exceptions.
// //
f Ef f Ef
g Ze g Ze
h aS h aS
i i
// i i
ï i:tRema ï i:tRema
j Zi j Zi
k ka k ka
mlle mad@mwazEl mlle mad@mwazEl
mme madam mme madam
mr m@sjY mr m@sjY
nsi $abbrev
nsis $abbrev
nti $abbrev nti $abbrev
nvda $abbrev nvda $abbrev
ong $abbrev ong $abbrev
// Letters which can be words // Letters which can be words
//=========================== //===========================
à a:aksA~gRav $atend à a:aksA~gRav $atend
i i $atend
y i:gR'Ek $atend y i:gR'Ek $atend




consent kO~s'A~t2 consent kO~s'A~t2
scient si scient si
bénéficient benefisi $verb bénéficient benefisi $verb
coing kwE~
concurrent kO~kyR'A~ concurrent kO~kyR'A~
content kO~t@-t2 $verb content kO~t@-t2 $verb
couvent k'uvt2 $verb couvent k'uvt2 $verb
évident evidt2 $verb évident evidt2 $verb
ferment fErm'A~ ferment fErm'A~
ferment f'Ermt2 $verb ferment f'Ermt2 $verb
firent f'irt2
parent paR'A~ parent paR'A~
parent p'art2 $verb parent p'art2 $verb
pastis pastis pastis pastis
poing pwE~
président pRezid'A~ président pRezid'A~
président pRezidt2 $verb président pRezidt2 $verb
résident Rezid'A~ résident Rezid'A~
serment sErm'A~ serment sErm'A~
serpent sErp'A~ serpent sErp'A~
torrent tOR'A~ torrent tOR'A~
tunis tynis




// MAIN WORD DICTIONARY // MAIN WORD DICTIONARY
imprudent E~pRydA~ imprudent E~pRydA~
iris iris iris iris
juin ZyE~ juin ZyE~
laser lazEr
malus malys malus malys
mars maRs mars maRs
minus minys minus minys
// words from other languages // words from other languages
about _^_en about _^_en
acer asEr acer asEr
again _^_en
against _^_en
alone _^_en alone _^_en
also _^_en also _^_en
and _^_en and _^_en
amazon amaz'On amazon amaz'On
any Eni
apple _^_en apple _^_en
april _^_en
at _^_en at _^_en
(audible manager) odibl||manadZ@r (audible manager) odibl||manadZ@r
be _^_en be _^_en
being _^_en
bit _^_en
bluetooth blut'us bluetooth blut'us
both _^_en both _^_en
browser _^_en
can _^_en can _^_en
computer _^_en computer _^_en
(cyber link) sibEr||link
(cyber link) _^_en
debian dEbjAn debian dEbjAn
does _^_en
doesn't _^_en
don't _^_en don't _^_en
driver _^_en driver _^_en
edit edit
emacs Emaks emacs Emaks
emacspeak Emakspi:k emacspeak Emakspi:k
end _^_en end _^_en
enter 'Ent@r
epson EpsOn epson EpsOn
espeak @spi:k espeak @spi:k
ethernet etERnEt ethernet etERnEt
ever _^_en
exit egzit exit egzit
eye _^_en eye _^_en
eyes _^_en eyes _^_en
false _^_en
(file zilla) fajl||zija (file zilla) fajl||zija
fire _^_en
firefox faj@RfOks
for _^_en
get _^_en get _^_en
google gu:g@l google gu:g@l
gnome gnom gnome gnom
gnu gnu gnu gnu
hamburger _!A~b@rg@r hamburger _!A~b@rg@r
help _^_en help _^_en
hot _^_en
in _^_en in _^_en
into _^_en into _^_en
inside _^_en inside _^_en
is _^_en is _^_en
it _^_en it _^_en
its _^_en its _^_en
june _^_en
july _^_en
klaxon klaksOn klaxon klaksOn
later _^_en
latest _^_en
layer _^_en layer _^_en
let _^_en let _^_en
liszt list liszt list
lite _^_en lite _^_en
login _^_en
logon _^_en logon _^_en
(mac os x) makoEsiks (mac os x) makoEsiks
made _^_en made _^_en
mail _^_en mail _^_en
march _^_en
media medja media medja
messenger _^_en messenger _^_en
my _^_en my _^_en
name _^_en name _^_en
never _^_en
not _^_en not _^_en
null _^_en
october _^_en
of _^_en of _^_en
often _^_en often _^_en
ok oke ok oke
outlook autluk outlook autluk
outside _^_en outside _^_en
outsider _^_en outsider _^_en
paint _^_en
player _^_en player _^_en
redhat REdat redhat REdat
same _^_en same _^_en
sametime _^_en sametime _^_en
she _^_en
schubert SubER schubert SubER
since _^_en since _^_en
sun _^_en sun _^_en
sure _^_en
(text aloud) tEkst||@lawd (text aloud) tEkst||@lawd
their _^_en their _^_en
there _^_en there _^_en
those _^_en those _^_en
they _^_en they _^_en
thus _^_en thus _^_en
thunderbird D'@ndYR||b@Rd
time _^_en
timer _^_en
true _^_en
ubuntu ubuntu ubuntu ubuntu
up _^_en up _^_en
viking vikiN viking vikiN
was _^_en was _^_en
won't _^_en won't _^_en
yacht jot yacht jot
yes jEs $brk
yes _^_en




// tions (tjO~ instead of sjO~) // tions (tjO~ instead of sjO~)

+ 126
- 28
dictsource/fr_rules View File



// 2006-11-18 Gilles Casse <[email protected]> // 2006-11-18 Gilles Casse <[email protected]>
// //
// Updated: 2008-02-14 Michel Such <[email protected]>
// Updated: 2008-02-20 Michel Such <[email protected]>
// //
// * The rules are based on Cicero TTS. // * The rules are based on Cicero TTS.
// Y // Y
// Y front vowels: e i y é ê è î // Y front vowels: e i y é ê è î
// K not a vowel (i.e. consonant, space, ) // K not a vowel (i.e. consonant, space, )


.L01 a b c d e f g h i l p q r t v
.L02 a e i o u y



.group a .group a
ae (_ e // reggae vitae ae (_ e // reggae vitae


// group a: English section // group a: English section
_C) ad (_ _^_en // bad, had, sad _C) ad (_ _^_en // bad, had, sad
_) again (X _^_en // again, against
alk _^_en // talk, walk alk _^_en // talk, walk
all (_ _^_en // football handball
f) all (en_ _^_en // fallen f) all (en_ _^_en // fallen
sm) all _^_en // small, smaller sm) all _^_en // small, smaller
ally (_ _^_en // really, naturally
ank _^_en // tank, blank
ark _^_en // dark, park
ainl _^_en
ainm _^_en
_C) ast (_ _^_en
_C) ast (eX _^_en
ather (_ _^_en // rather
aunc _^_en
a (wC _^_en a (wC _^_en




b b // aube b b // aube


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




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




// group d: English section // group d: English section
') d (_ _^_en ') d (_ _^_en
lor) d (_ _^_en
day (_ _^_en day (_ _^_en
_) dec _^_en
dece _^_en
_) def _^_en
dele _^_en
deter _^_en
_) devic _^_en
diffe _^_en
dle (X _^_en // bundle, handle dle (X _^_en // bundle, handle
dly (_ _^_en dly (_ _^_en
dy (_ _^_en dy (_ _^_en
_Ch) er (_ ER // cher _Ch) er (_ ER // cher
_env) er (_ ER _env) er (_ ER
_hi) er (_ ER // hier _hi) er (_ ER // hier
_hyp) er (_ ER // hyper
_hiv) er (_ ER // hiver _hiv) er (_ ER // hiver
_sup) er (_ ER // super
_trav) er (_ ER _trav) er (_ ER
_univ) er (_ ER
_ti) er (_ ER _ti) er (_ ER




e @ // menue e @ // menue


// group e: English section // group e: English section
eac _^_en
C) ead _^_en // read, head C) ead _^_en // read, head
eaf _^_en // leaf eaf _^_en // leaf
eag _^_en // eagle
eak _^_en // break, speak eak _^_en // break, speak
Cr) eam _^_en // stream Cr) eam _^_en // stream
Cl) ean _^_en // clean Cl) ean _^_en // clean
ear _^_en // ear, search ear _^_en // ear, search
eas _^_en // please eas _^_en // please
eat _^_en // eat, seat eat _^_en // eat, seat
eave _^_en // leave
ed (_ _^_en ed (_ _^_en
_) edit _^_en
ee _^_en // meeting ee _^_en // meeting
eave _^_en // leave
eft (_ _^_en // left eft (_ _^_en // left
ehen _^_en // comprehensive
eing _^_en // being, goeing
eive _^_en // receive eive _^_en // receive
eith _^_en // either neither eith _^_en // either neither
ej _^_en
_) el (AC _^_en // element, eliminate
eld (_ _^_en // field
elf (_ _^_en // shelf
elves (_ _^_en // shelves
ember (_ _^_en
enter (_ _^_en // enter, center
ely (_ _^_en // lately ely (_ _^_en // lately
_) enhan _^_en
ooC) er (_ _^_en // scooter ooC) er (_ _^_en // scooter
_ov) er _^_en // over
ern (_ _^_en // western
_C) etter (_ _^_en // letter, better _C) etter (_ _^_en // letter, better
ack) et (_ _^_en // racket, packet ack) et (_ _^_en // racket, packet
ock) et (_ _^_en // rocket, pocket ock) et (_ _^_en // rocket, pocket
ery (_ _^_en // query
qu) est (_ _^_en // request qu) est (_ _^_en // request
qu) este (X_ _^_en // requested, requester qu) este (X_ _^_en // requested, requester
_) ev _^_en // even, ever, event
oC) ever _^_en // forever, however




.group ë .group ë
fail (_ _^_en // fail fail (_ _^_en // fail
fail (A _^_en // failure fail (A _^_en // failure
faith _^_en // failure faith _^_en // failure
_) fire _^_en
fly _^_en fly _^_en
ford (_ _^_en ford (_ _^_en
_) frame _^_en
_) freq _^_en
friend _^_en // friend, friendly friend _^_en // friend, friendly
full (_ _^_en
fully (_ _^_en
fy (_ _^_en fy (_ _^_en




g Z // congé george g Z // congé george


// group g: English section // group g: English section
_) game (X _^_en
@@) gate (X _^_en
gh _^_en // high, higher gh _^_en // high, higher
girl _^_en // girl girl _^_en // girl
gly (_ _^_en gly (_ _^_en
ique (_ ik ique (_ ik


// group i: English section // group i: English section
A_) i (_ _^_en
C_) i (_ _^_en
_) i (_A _^_en
_) i (_C _^_en
L02C) ic (_ _^_en
L02CC) ic (_ _^_en
@C) id (_ _^_en
idd _^_en
iev _^_en
ife (_ _^_en
igg _^_en
ike (X _^_en // bike, like ike (X _^_en // bike, like
ill (_ _^_en // ill, will, fill
C) illy (_ _^_en // silly
ild _^_en
ilt _^_en
ing (_ _^_en // parking ing (_ _^_en // parking
ind (_ _^_en // find, mind ind (_ _^_en // find, mind
ind (er_ _^_en // finder, reminder
_C) ind (er_ _^_en // finder, reminder
_AC) ind (er_ _^_en // finder, reminder
ink _^_en // link, pink ink _^_en // link, pink
ip (_ _^_en // chip, ship
ious (_ _^_en // various ious (_ _^_en // various
iously (_ _^_en // previously iously (_ _^_en // previously
ist (_ _^_en // tourist
ism (_ _^_en // tourism ism (_ _^_en // tourism
ize _^_en // realize ize _^_en // realize




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


.group l .group l
') ld (_ _^_en ') ld (_ _^_en
') ll (_ _^_en ') ll (_ _^_en
less (_ _^_en // noiseless less (_ _^_en // noiseless
_) live _^_en
ll (_ _^_en
lly (_ _^_en
lk (_ _^_en
lessly (_ _^_en // endlessly lessly (_ _^_en // endlessly
lord (_ _^_en




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


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


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




_) oi (gnon O // oignons _) oi (gnon O // oignons
oin (C wE~ oin (C wE~
oin (_ wE~ // coin oin (_ wE~ // coin
C) oing (_ o'iN // going
c) oing (_ wE~ // coing
p) oing (_ wE~ // poing
oing (_ wE~ // poing, coing
oi wa // poil oi wa // poil
oid (_ wa // froid oid (_ wa // froid
oê (l wa // poêle oê (l wa // poêle
z) oo o // zoo z) oo o // zoo
z) oo (C oo // zoologue z) oo (C oo // zoologue
z) oo (m u // zoom z) oo (m u // zoom
oo (X u // pool
_gal) op (_ o // galop _gal) op (_ o // galop


_sir) op (_ o // sirop _sir) op (_ o // sirop
o O // sobre notions émotions o O // sobre notions émotions


// group o: English section // group o: English section
C) oad (_ _^_en // load, road
C) oad (eX _^_en // loaded
C) oat _^_en // boat
oa (X _^_en // approach, load
oa (CeX _^_en
oach _^_en
oes (_ _^_en
old (er_ _^_en // folder, older old (er_ _^_en // folder, older
C) oing (_ _^_en // going
_aC) ong (_ _^_en // along, among
oo (Ce _^_en // boomer oo (Ce _^_en // boomer
oo (X _^_en // pool
C) oot _^_en // bootable football C) oot _^_en // bootable football
_) one _^_en
_) onl _^_en
orm (_ _^_en
_sC) ot _^_en
othe _^_en // other, mother
C) ou (ld_ _^_en // could, should C) ou (ld_ _^_en // could, should
oun (C _^_en // bounce, found oun (C _^_en // bounce, found
_C) ouse _^_en // mouse, house _C) ouse _^_en // mouse, house
C) outh _^_en // mouth, south C) outh _^_en // mouth, south
_) over _^_en // over
ow _^_en // cow, town, down ow _^_en // cow, town, down
oy (X _^_en // boy, toy oy (X _^_en // boy, toy


se) pt (iè t // septième se) pt (iè t // septième


// group p: English section // group p: English section
pad (_ _^_en
plug _^_en // plug plug _^_en // plug
pmen _^_en
ply (_ _^_en // simply ply (_ _^_en // simply
_) pre (L01 _^_en
press (_ _^_en
print (_ _^_en // print print (_ _^_en // print
printer (_ _^_en // printer printer (_ _^_en // printer
_) prove (X _^_en // prove _) prove (X _^_en // prove
r r // rien r r // rien


// group r: English section // group r: English section
AC) ram (_ _^_en
_) real _^_en
rese _^_en
rst (_ _^_en
_) rule (X _^_en // rule _) rule (X _^_en // rule
ry (_ _^_en // theory ry (_ _^_en // theory


s (v z s (v z


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


// group t: English section // group t: English section
tch (_ _^_en
_) th (AX _^_en // that, this, then, than _) th (AX _^_en // that, this, then, than
C) th (_ _^_en // month C) th (_ _^_en // month
_) time _^_en
tle (_ _^_en
too _^_en
ttl _^_en
try (_ _^_en // try, country try (_ _^_en // try, country
sCar) t (_ _^_en // smart, start sCar) t (_ _^_en // smart, start
sCar) t (er_ _^_en // starter sCar) t (er_ _^_en // starter
tme _^_en
tne _^_en
_) tun (AX _^_en
ty (_ _^_en // party, buty ty (_ _^_en // party, buty




// group u: English section // group u: English section
C) u (ch_ _^_en // much such C) u (ch_ _^_en // much such
C) ui (ce _^_en // produice, juice C) ui (ce _^_en // produice, juice
up (C _^_en // upper, update
umber (_ _^_en
ump (_ _^_en
unch _^_en
_C) unct _^_en // function, punctuation
under _^_en // under, understand, thunder under _^_en // under, understand, thunder
_) up (C _^_en // upper, update
upt (_ _^_en
up (_ _^_en // setup
C) ur (ch _^_en // church C) ur (ch _^_en // church
urn (X _^_en // burn, turn urn (X _^_en // burn, turn
ust (_ _^_en // just, trust ust (_ _^_en // just, trust


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


// group w: English section // group w: English section
A) w _^_en A) w _^_en
wa (Ce_ _^_en // hardware software wave wa (Ce_ _^_en // hardware software wave
_) wan _^_en
wr _^_en // write wr _^_en // write
w (ACh _^_en // wash, wish, with
w (ACC _^_en // wash, wish, with
way _^_en // way, away way _^_en // way, away
wh _^_en // what, which, who wh _^_en // what, which, who
_) wi _^_en // winner, window, wire
_) wi _^_en // wire
win _^_en // winner, window
wise _^_en wise _^_en
_) wom _^_en // woman _) wom _^_en // woman
wor _^_en // word, world wor _^_en // word, world
si) x (iè z // sixième si) x (iè z // sixième
deu) x (iè z // deuxième deu) x (iè z // deuxième


// group x: English section
xamp _^_en



.group y .group y
y i // cryogénique myope y i // cryogénique myope

+ 1
- 0
dictsource/hi_list View File

य j@ य j@
र r@ र r@
ऱ r@ ऱ r@
ळ l.@
व v@ व v@
श S@ श S@
ष s.@ // should be retroflex [S] ष s.@ // should be retroflex [S]

+ 8
- 8
dictsource/hi_rules View File

्) ल (_ lV ्) ल (_ lV


.group ळ .group ळ
ळ lV // (temporary) same as [l]
ळ (B l
?1 ल (_ l
्) ल (_ lV
ळ l.V
ळ (B l.
?1 ल (_ l.
्) ल (_ l.V


.group ऴ .group ऴ
ऴ lV // (temporary) same as [l]
ऴ (B l
?1 ल (_ l
्) ल (_ lV
ऴ l.V // (temporary) same as [l.]
ऴ (B l.
?1 ल (_ l.
्) ल (_ l.V


.group व .group व
व vV व vV

+ 7
- 1
dictsource/tr_list View File

_8 sekiz _8 sekiz
_9 dokuz _9 dokuz
_10 on _10 on
_11 'onbir
_12 'oniki
_1X on _1X on
_2X jirmi _2X jirmi
_3X otuz _3X otuz
_8X seksEn _8X seksEn
_9X doksan _9X doksan
_0C jyz _0C jyz
_2C 'ikijyz
_0M1 bIn _0M1 bIn
_1M1 bIn
_0M2 miljon _0M2 miljon
_1M2 miljon
_0M3 miljar _0M3 miljar
_dpt _virg,Yl
_1M3 miljar
_dpt _virg,Yl_|







+ 4
- 0
dictsource/tr_rules View File

.group a .group a
a a a a


avru (pa avr'u

.group b .group b
b b b b


.group d .group d
d d d d


_) d (eğil 'd

.group e .group e
e e e e



+ 2
- 0
dictsource/zh_rules View File

4 51 4 51
5 11 5 11


| _|


espeak-data/voices/es_la → espeak-data/voices/es-la View File


+ 5
- 4
phsource/compile_report View File

fi 40 130 fi 40 130
fr 44 125 fr 44 125
fr_ca 11 125 fr_ca 11 125
hi 50 135
ta 16 138
hi 51 136
ta 15 138
hu 23 115 hu 23 115
nl 28 122 nl 28 122
pl 15 110 pl 15 110
th 50 142 th 50 142
id 14 120 id 14 120
tr 14 123 tr 14 123
ku 12 120
ku 13 120
ja 7 104 ja 7 104


Data file Used by Data file Used by
[l;] ro [l;] ro
l/lo [(o)] base l/lo [(o)] base
[l] fr [l] fr
l^/l_rfx [l.] ta
l^/l_rfx [l.] hi
l/lu [(u)] base l/lu [(u)] base
[l] fr [l] fr
l/tl [l] base l/tl [l] base
[EU] pt_pt [EU] pt_pt
vdiph/eeu_3 [aU] en_n vdiph/eeu_3 [aU] en_n
[aU] en_wm [aU] en_wm
[eU] ku
vdiph/eey [ey] fi vdiph/eey [ey] fi
vdiph/ei [eI] base2 vdiph/ei [eI] base2
[e:] nl [e:] nl

+ 7
- 0
phsource/ph_hindi View File

// CONSONANTS // CONSONANTS
//=========== //===========


phoneme l.
liquid rfx
lengthmod 7
formants l^/l_rfx
endphoneme




phoneme v // no fricative noise phoneme v // no fricative noise
vcd lbd frc vcd lbd frc

+ 0
- 7
phsource/ph_tamil View File

endphoneme endphoneme




phoneme l.
liquid rfx
lengthmod 7
formants l^/l_rfx
endphoneme


// ?? This is standard [v]. Should be it [v] without the fricative noise? // ?? This is standard [v]. Should be it [v] without the fricative noise?
phoneme v phoneme v
vcd lbd frc vcd lbd frc

+ 1
- 1
src/compiledict.cpp View File



fprintf(f_log,"Using phonemetable: '%s'\n",PhonemeTabName()); fprintf(f_log,"Using phonemetable: '%s'\n",PhonemeTabName());
compile_dictlist_file(path,"roots"); compile_dictlist_file(path,"roots");
compile_dictlist_file(path,"listx");
compile_dictlist_file(path,"list"); compile_dictlist_file(path,"list");
compile_dictlist_file(path,"listx");
compile_dictlist_file(path,"extra"); compile_dictlist_file(path,"extra");
compile_dictlist_end(f_out); compile_dictlist_end(f_out);

+ 8
- 5
src/intonation.cpp View File



int *body_drops; int *body_drops;
unsigned char body_max_steps; unsigned char body_max_steps;
unsigned char body_lower_u;
char body_lower_u;


char n_overflow; char n_overflow;
short *overflow; short *overflow;
{20, 25, 34, 22, drops_0, 3, 3, 5, oflow}, // 8 pitch raises at end of sentence {20, 25, 34, 22, drops_0, 3, 3, 5, oflow}, // 8 pitch raises at end of sentence
{20, 25, 34, 20, drops_0, 3, 3, 5, oflow}, // 9 comma {20, 25, 34, 20, drops_0, 3, 3, 5, oflow}, // 9 comma
{20, 25, 34, 22, drops_0, 3, 3, 5, oflow}, // 10 question {20, 25, 34, 22, drops_0, 3, 3, 5, oflow}, // 10 question
{20, 25, 24, 22, drops_0, 3, 3, 5, oflow_less}, // 11 test
{19, 26, 36, 20, drops_0, 2, 4, 5, oflow_test2}, // 12 test
{15, 18, 18, 14, drops_0, 3, 3, 5, oflow_less}, // 11 test
{20, 25, 24, 22, drops_0, 3, 3, 5, oflow_less}, // 12 test
}; };


static TONE_NUCLEUS tone_nucleus_table[N_TONE_NUCLEUS_TABLE] = { static TONE_NUCLEUS tone_nucleus_table[N_TONE_NUCLEUS_TABLE] = {
{ {
p->env = PITCHrise; p->env = PITCHrise;
} }
else
if(p->tone > 5)
p->env = syl->env;

if(p->pitch1 > p->pitch2) if(p->pitch1 > p->pitch2)
{ {
// swap so that pitch2 is the higher // swap so that pitch2 is the higher
p->pitch1 = p->pitch2; p->pitch1 = p->pitch2;
p->pitch2 = x; p->pitch2 = x;
} }
if(p->tone > 5)
p->env = syl->env;



if(syl->flags & SYL_EMPHASIS) if(syl->flags & SYL_EMPHASIS)
{ {

+ 8
- 4
src/numbers.cpp View File







void Translator::LookupLetter(int letter, int next_byte, char *ph_buf1)
{//==================================================================
void Translator::LookupLetter(unsigned int letter, int next_byte, char *ph_buf1)
{//=============================================================================
int len; int len;
unsigned char *p; unsigned char *p;
static char single_letter[10] = {0,0}; static char single_letter[10] = {0,0};
int this_value; int this_value;
static int prev_value; static int prev_value;
int decimal_count; int decimal_count;
int max_decimal_count;
char string[12]; // for looking up entries in de_list char string[12]; // for looking up entries in de_list
char buf1[100]; char buf1[100];
char ph_append[50]; char ph_append[50];


if(decimal_count > 1) if(decimal_count > 1)
{ {
switch(langopts.numbers & 0x6000)
max_decimal_count = 2;
switch(langopts.numbers & 0xe000)
{ {
case 0x8000:
max_decimal_count = 5;
case 0x4000: case 0x4000:
// French/Polish decimal fraction // French/Polish decimal fraction
while(word[n_digits] == '0') while(word[n_digits] == '0')
decimal_count--; decimal_count--;
n_digits++; n_digits++;
} }
if(decimal_count < 6)
if(decimal_count <= max_decimal_count)
{ {
LookupNum3(atoi(&word[n_digits]),buf1,0,0,0); LookupNum3(atoi(&word[n_digits]),buf1,0,0,0);
strcat(ph_out,buf1); strcat(ph_out,buf1);

+ 10
- 3
src/speak.cpp View File

int (* phoneme_callback)(const char *) = NULL; int (* phoneme_callback)(const char *) = NULL;


FILE *f_wave = NULL; FILE *f_wave = NULL;
int quiet = 0;
int quiet = 0;
unsigned int samples_total = 0; unsigned int samples_total = 0;
unsigned int samples_split = 0; unsigned int samples_split = 0;
unsigned int wavefile_count = 0; unsigned int wavefile_count = 0;


finished = WavegenFill(0); finished = WavegenFill(0);


if(quiet)
return(finished);

if(f_wave == NULL) if(f_wave == NULL)
{ {
sprintf(fname,"%s_%.2d%s",wavefile,++wavefile_count,filetype); sprintf(fname,"%s_%.2d%s",wavefile,++wavefile_count,filetype);
InitText(0); InitText(0);
SpeakNextClause(f_text,p_text,0); SpeakNextClause(f_text,p_text,0);


ix = 1;
for(;;) for(;;)
{ {
if(WavegenFile() != 0) if(WavegenFile() != 0)
{ {
break; // finished, wavegen command queue is empty
if(ix == 0)
break; // finished, wavegen command queue is empty
} }


if(Generate(phoneme_list,&n_phoneme_list,1)==0) if(Generate(phoneme_list,&n_phoneme_list,1)==0)
SpeakNextClause(NULL,NULL,1);
{
ix = SpeakNextClause(NULL,NULL,1);
}
} }


CloseWaveFile(); CloseWaveFile();

+ 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.12 16.Feb.08";
const char *version_string = "1.31.13 21.Feb.08";
const int version_phdata = 0x013105; const int version_phdata = 0x013105;


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

+ 6
- 0
src/synthesize.cpp View File

// next_pause.ph = phoneme_tab[phonPAUSE]; // this must be done after voice selection // next_pause.ph = phoneme_tab[phonPAUSE]; // this must be done after voice selection
next_pause.type = phPAUSE; next_pause.type = phPAUSE;
next_pause.newword = 0; next_pause.newword = 0;

if(!iswalpha(0x010d))
{
// check that c-caron is recognized as an alphabetic character
fprintf(stderr,"iswalpha() Accented letters are not recognized\n");
}
} }





+ 4
- 4
src/tr_languages.cpp View File

tr->langopts.stress_flags = 0x0024; // don't use secondary stress tr->langopts.stress_flags = 0x0024; // don't use secondary stress
tr->langopts.param[LOPT_IT_LENGTHEN] = 1; // remove lengthen indicator from unstressed syllables tr->langopts.param[LOPT_IT_LENGTHEN] = 1; // remove lengthen indicator from unstressed syllables


tr->langopts.numbers = 0x1509 + 0x4000 + NUM_NOPAUSE | NUM_ROMAN;
tr->langopts.numbers = 0x1509 + 0x8000 + NUM_NOPAUSE | NUM_ROMAN;
SetLetterVowel(tr,'y'); SetLetterVowel(tr,'y');
} }
break; break;
} }
break; break;


case L('t','a'):
case L('t','a'): // Tamil
{ {
static const short stress_lengths_ta[8] = {190, 190, 200, 200, 0, 0, 220, 220}; static const short stress_lengths_ta[8] = {190, 190, 200, 200, 0, 0, 220, 220};
static const unsigned char stress_amps_ta[8] = {18,18, 18,18, 20,20, 22,22 }; static const unsigned char stress_amps_ta[8] = {18,18, 18,18, 20,20, 22,22 };


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


tr->langopts.numbers = 0x1d09;
tr->langopts.numbers = 0x1d09 + 0x4000;
tr->langopts.max_initial_consonants = 2; tr->langopts.max_initial_consonants = 2;
} }
break; break;
case L('z','h'): case L('z','h'):
case L_zhy: case L_zhy:
{ {
static const short stress_lengths_zh[8] = {230,150, 230,230, 230,0, 240,290};
static const short stress_lengths_zh[8] = {230,150, 230,230, 230,0, 240,250}; // 1=tone5. end-of-sentence, 6=tone 1&4, 7=tone 2&3
static const unsigned char stress_amps_zh[] = {22,16, 22,22, 22,22, 22,22 }; static const unsigned char stress_amps_zh[] = {22,16, 22,22, 22,22, 22,22 };


tr = new Translator; tr = new Translator;

+ 2
- 2
src/translate.cpp View File

return(1); // Devanagari vowel signs and other signs return(1); // Devanagari vowel signs and other signs


if((c >= 0xb81) && (c <= 0xbe5)) if((c >= 0xb81) && (c <= 0xbe5))
return(1); // Devanagari vowel signs and other signs
return(1); // Tamil vowel signs and other signs


if((c >= 0x300) && (c <= 0x36f)) if((c >= 0x300) && (c <= 0x36f))
return(1); // combining accents return(1); // combining accents
else else
if(IsAlpha(c)) if(IsAlpha(c))
{ {
if(!IsAlpha(prev_out) || (langopts.ideographs && ((c >= 0x3000) || (prev_out >= 0x3000))))
if(!IsAlpha(prev_out) || (langopts.ideographs && ((c > 0x3040) || (prev_out > 0x3040))))
{ {
if(wcschr(punct_within_word,prev_out) == 0) if(wcschr(punct_within_word,prev_out) == 0)
letter_count = 0; // don't reset count for an apostrophy within a word letter_count = 0; // don't reset count for an apostrophy within a word

+ 1
- 1
src/translate.h View File

const char *LookupDict2(const char *word, const char *word2, char *phonetic, unsigned int *flags, int end_flags, WORD_TAB *wtab); const char *LookupDict2(const char *word, const char *word2, char *phonetic, unsigned int *flags, int end_flags, WORD_TAB *wtab);
const char *LookupSpecial(const char *string); const char *LookupSpecial(const char *string);
const char *LookupCharName(int c); const char *LookupCharName(int c);
void LookupLetter(int letter, int next_byte, char *ph_buf);
void LookupLetter(unsigned int letter, int next_byte, char *ph_buf);
int LookupNum2(int value, int control, char *ph_out); int LookupNum2(int value, int control, char *ph_out);
int LookupNum3(int value, char *ph_out, int suppress_null, int thousandplex, int prev_thousands); int LookupNum3(int value, char *ph_out, int suppress_null, int thousandplex, int prev_thousands);
int LookupThousands(int value, int thousandplex, char *ph_out); int LookupThousands(int value, int thousandplex, char *ph_out);

Loading…
Cancel
Save