Browse Source

Merge branch 'development'

master
Reece H. Dunn 12 years ago
parent
commit
abad47b859

+ 23
- 18
dictsource/da_list View File

_10 t'i _10 t'i
_11 'Elv@ _11 'Elv@
_12 t'Vl _12 t'Vl
_13 tR'&#d@-n // PB & changed to &#
_13 tR'?&#d@-n // PB & changed to &#
_14 fj'ord@-n _14 fj'ord@-n
_15 f'emt@-n
_15 f'Emd@-n
_16 s'ajsd@-n _16 s'ajsd@-n
_17 s'Wd@-n // PP Y changed to W _17 s'Wd@-n // PP Y changed to W
_18 '&d@-n // PB a changed to &
_18 '?&d@-n // PB a changed to &
_19 n'ed@-n _19 n'ed@-n
_2X t'y:w
_2X t'y:?u
_3X tR'&#Dv@ //PB [tR'ADv@] changed to [tR'&#Dv@] _3X tR'&#Dv@ //PB [tR'ADv@] changed to [tR'&#Dv@]
_4X f'W:V //PB [f'W:*3] changed to [ f'W:V]
_4X f'?W:_|V //PB [f'W:*3] changed to [ f'?W:V]
_5X h&l't*Es // PB [a] changed to [&], e changed to E _5X h&l't*Es // PB [a] changed to [&], e changed to E
_6X t*'Es // PB changed from e to E _6X t*'Es // PB changed from e to E
_7X h&lfj'&rs // PV a changed to & _7X h&lfj'&rs // PV a changed to &
ved $u+ // at ved $u+ // at
om $u+ $brk // about, within om $u+ $brk // about, within
med $u+ // with med $u+ // with
af & // PB changed from [a?] to [&] - sound too short in a sentence
af &_| // PB changed from [a?] to [&] - sound too short in a sentence
// Also removed $u from 'af' and other words. They disappeared. // Also removed $u from 'af' and other words. They disappeared.
ad &: // PB added 'ad' ad &: // PB added 'ad'
ad &D $atend $sentence // PB "Det må ikke skille os ad." ad &D $atend $sentence // PB "Det må ikke skille os ad."
// possessive pronouns // possessive pronouns
min min $u min min $u
mit mit $u mit mit $u
mine m'in@
mine m'in3
din d'in $u+ din d'in $u+
dit d'it $u dit d'it $u
dine d'ine
dine d'in3
deres dE:Vs $u deres dE:Vs $u
hans $u+ hans $u+
hendes $u+ hendes $u+
the _^_EN the _^_EN
skinhead _^_EN skinhead _^_EN
skinheads _^_EN skinheads _^_EN
street _^_EN
boy _^_EN boy _^_EN
square _^_EN square _^_EN
apple _^_EN apple _^_EN


// exceptions // exceptions
alene &l'en@ // alone alene &l'en@ // alone
egen a:j@n
egen _|aj@-n
mc mak' $capital // PB McDonald mc mak' $capital // PB McDonald
egne a:in@
egne ajn@-
enter entV enter entV
ide id'e // idea ide id'e // idea
idé id'e // idea idé id'e // idea
tune tun3 $capital // PB Tune lufthavn - not "tune a car" [tjune] tune tun3 $capital // PB Tune lufthavn - not "tune a car" [tjune]
ny ny // new ny ny // new
også Vs@ // also
også Vs@- // also
idet id'e // in so far as idet id'e // in so far as
(rub og stub) R'Ob||V||sd'Ob (rub og stub) R'Ob||V||sd'Ob
tre tr'e // the number 3
tre tr'E // the number 3
rejicere rejis'eV // PB should not be pronounced [raje] rejicere rejis'eV // PB should not be pronounced [raje]
rejicerer rejis'eV // PB rejicerer rejis'eV // PB
rejiceres rejis'eVs // PB rejiceres rejis'eVs // PB
konfirmandernes kVnferm'&nd3-n@s // PB konfirmandernes kVnferm'&nd3-n@s // PB
giv g'i // PB the v shouldn't be pronounced giv g'i // PB the v shouldn't be pronounced
giver gir // PB the v shouldn't be pronounced giver gir // PB the v shouldn't be pronounced
opgiver Vpgir // PB
jaloux sj&'lu // PB jaloux jaloux sj&'lu // PB jaloux
aficionado afisjo'na:do // PB aficionado afisjo'na:do // PB
breakdance brEig'da:ns // PB breakdance breakdance brEig'da:ns // PB breakdance
wien v'i:n // PB Wien - the town of Vienna wien v'i:n // PB Wien - the town of Vienna
calais kal'E // PB Calais - town in France calais kal'E // PB Calais - town in France
date dejt // PB date - stævnemøde date dejt // PB date - stævnemøde
siger sir // PB silent d
//siger sir // PB silent d
(tids nok) tis||n'Vk // PB silent d (tids nok) tis||n'Vk // PB silent d
skateboardet sk'eitbo@d3D // PB skateboardet sk'eitbo@d3D // PB
(hole in one) h'oulinw,0n // PB English golf expression used in Danish (hole in one) h'oulinw,0n // PB English golf expression used in Danish
(deres kvarter) dE:Vs||kvA'ter // PB (deres kvarter) dE:Vs||kvA'ter // PB
(det kvarter) de||kvA'ter // PB (det kvarter) de||kvA'ter // PB
(i kvarter) i||kv'A:dV (i kvarter) i||kv'A:dV
(at have) &||h&: // PB the verb 'have', not the noun 'have' = garden
(vil have) vel||h'&: // PB
(du have) du||h&: // PB
(må have) m'O:||h&: // PB
(at have) &||h& // PB the verb 'have', not the noun 'have' = garden
(vil have) vel||h'& // PB
(ville have) v?il3||h'& // PB
(du have) du||h& // PB
(må have) mO:||h& // PB
(skal have) sk?&||h& // PB
(helst have) h'Elst||h&
(gerne have) g'Ern3||h&
(kan have) k?&n||h& // PB
(ikke have) ege||h& // PB (ikke have) ege||h& // PB
// PB 'hav' = ocean - 'hav' = have (a nice day) // PB 'hav' = ocean - 'hav' = have (a nice day)
(et hav) ed||hAu (et hav) ed||hAu

+ 1779
- 1288
dictsource/da_rules
File diff suppressed because it is too large
View File


+ 1
- 0
dictsource/en_list View File

Dolce d0ltSeI Dolce d0ltSeI
Dvorak d@-vo@Zak Dvorak d@-vo@Zak
Emory Em3ri Emory Em3ri
Fleming flEmIN
Folger foUldZ3 Folger foUldZ3
Genghis dZENgIs Genghis dZENgIs
Gibson gIbs@n Gibson gIbs@n

+ 2
- 35
dictsource/pt_list View File

concordo $alt concordo $alt
conforto $alt $verb conforto $alt $verb
consolo $alt2 $noun consolo $alt2 $noun
contivermos $alt
controle $alt2 $noun controle $alt2 $noun
controlo $alt2 $noun controlo $alt2 $noun
coreia $alt coreia $alt
corveta $alt2 corveta $alt2
corvos $alt corvos $alt
coto $alt2 coto $alt2
couberdes $alt
coubermos $alt
cratera $alt cratera $alt
crede $alt2 crede $alt2
der $alt
derdes $alt
desapego $alt2 $noun desapego $alt2 $noun
descabelo $alt descabelo $alt
descordo $alt descordo $alt
envolto $alt2 envolto $alt2
enxerto $alt2 $noun enxerto $alt2 $noun
epopeia $alt epopeia $alt
erga $alt2
ergam $alt2
ergo $alt2
eritreia $alt eritreia $alt
erro $alt2 $noun erro $alt2 $noun
erros $alt2 erros $alt2
espoleta $alt2 espoleta $alt2
esposa $alt2 esposa $alt2
esqueleto $alt2 esqueleto $alt2
estiverdes $alt
estivermos $alt
estrela $alt2 estrela $alt2
estrofe $alt estrofe $alt
estorno $alt $verb estorno $alt $verb
ferozes $alt ferozes $alt
fezes $alt fezes $alt
?1 fixe fiSy ?1 fixe fiSy
fizerdes $alt
fizermos $alt
foda $alt2 $verb foda $alt2 $verb
folheto $alt2 folheto $alt2
folga $alt folga $alt
hemorroida $alt hemorroida $alt
hoje $alt2 hoje $alt2
horrores $alt2 horrores $alt2
houverdes $alt
houvermos $alt
ideia $alt ideia $alt
insonoro $alt insonoro $alt
interesse $alt2 $noun interesse $alt2 $noun
lopes $alt lopes $alt
maior $alt maior $alt
maleta $alt2 maleta $alt2
mantiverdes $alt
mantiveres $alt
mantivermos $alt
marcelo $alt marcelo $alt
marmelo $alt marmelo $alt
marreta $alt2 marreta $alt2
miolo $alt2 miolo $alt2
miolos $alt miolos $alt
moeda $alt moeda $alt
modos $alt
molho $alt2 $noun molho $alt2 $noun
monera $alt monera $alt
morcego $alt2 morcego $alt2
nervo $alt2 nervo $alt2
novos $alt novos $alt
obstetra $alt obstetra $alt
obtivera $alt
obtivermos $alt
odisseia $alt odisseia $alt
onu $1 onu $1
olho $alt2 $noun olho $alt2 $noun
osso $alt2
ossos $alt
opereta $alt2 opereta $alt2
ordens $alt ordens $alt
osso $alt2
ossos $alt
ostra $alt2 ostra $alt2
ovos $alt ovos $alt
pachorra $alt2 pachorra $alt2
pedra $alt pedra $alt
pelego $alt2 pelego $alt2
pelo $alt $verb pelo $alt $verb
pesque $alt
pesquem $alt
peso $alt $verb peso $alt $verb
piloto $alt2 $noun piloto $alt2 $noun
pintora $alt2 pintora $alt2
preço $alt2 preço $alt2
primavera $alt primavera $alt
provo $alt provo $alt
puder $alt
puderdes $alt
pudermos $alt
puserdes $alt
quarteto $alt2 quarteto $alt2
queda $alt queda $alt
quinteto $alt2 quinteto $alt2
quiserdes $alt
quisermos $alt
recomeço $alt2 $noun recomeço $alt2 $noun
recordo $alt recordo $alt
recorto $alt recorto $alt
soro $alt2 soro $alt2
sorvete $alt2 sorvete $alt2
sossego $alt2 $noun sossego $alt2 $noun
souberdes $alt
soubermos $alt
suborno $alt $verb suborno $alt $verb
sufoco $alt2 $noun sufoco $alt2 $noun
sufocos $alt2 sufocos $alt2
tempero $alt2 $noun tempero $alt2 $noun
teta $alt2 teta $alt2
tetra $alt tetra $alt
tiverdes $alt
tivermos $alt
tocha $alt tocha $alt
toga $alt toga $alt
topo $alt $verb topo $alt $verb
vanessa $alt2 vanessa $alt2
velozes $alt velozes $alt
verme $alt verme $alt
vierem $alt
violeta $alt2 violeta $alt2
violoncelo $alt violoncelo $alt
voga $alt voga $alt

+ 18
- 6
dictsource/pt_rules View File

.L02 e em .L02 e em
.L03 a am o .L03 a am o
.L04 a am e em o ue uem .L04 a am e em o ue uem
.L05 r ra ram re rem rdes
.L06 ra ram ste re rem
.L05 r ra ram re rem rde rmo
.L06 ra ram ste re rem rmo
.L07 sse ssem ste .L07 sse ssem ste




sf) e (ra_ E // esfera, biosfera sf) e (ra_ E // esfera, biosfera


//sort //sort
_d) e (L05_ E
_vi) e (L05_ E
fiz) e (L05_ E fiz) e (L05_ E
pus) e (L05_ E / com- im- de-
tiv) e (L05_ E // es- tiv) e (L05_ E // es-
_com) e (L05_ e _com) e (L05_ e
_pud) e (L05_ E
_coub) e (L05_ E _coub) e (L05_ E
_exag) e (L05_ E _exag) e (L05_ E
_houv) e (L05_ E _houv) e (L05_ E
_perd) e (L05_ e _perd) e (L05_ e
_quis) e (L05_ E
_soub) e (L05_ E _soub) e (L05_ E
_rend) e (L06_ e _rend) e (L06_ e
_vend) e (L06_ e _vend) e (L06_ e
_tem) e (L07_ e _tem) e (L07_ e
colh) e (L07_ e // & es- colh) e (L07_ e // & es-
corr) e (L07_ e // per- con- in- so- dis- corr) e (L07_ e // per- con- in- so- dis-
nasc) e (L07_ e / re-
torc) e (L07_ e // con- torc) e (L07_ e // con-
venc) e (L07_ e // con- venc) e (L07_ e // con-
vert) e (L07_ e // in- re- con- vert) e (L07_ e // in- re- con-
_aborrec) e (L07_ e _aborrec) e (L07_ e
_adoec) e (L07_ e _adoec) e (L07_ e
_adormec) e (L07_ e _adormec) e (L07_ e
_agradec) e (L07_ e
_amanhec) e (L07_ e _amanhec) e (L07_ e
_anoitec) e (L07_ e _anoitec) e (L07_ e
_arrepend) e (L07_ e _arrepend) e (L07_ e
_cresc) e (L07_ e
_defend) e (L07_ e _defend) e (L07_ e
_depend) e (L07_ e _depend) e (L07_ e
_emagrec) e (L07_ e
_enlouquec) e (L07_ e _enlouquec) e (L07_ e
_entristec) e (L07_ e _entristec) e (L07_ e
_envaidec) e (L07_ e _envaidec) e (L07_ e
_p) e (quL02_ E _p) e (quL02_ E
_s) e (quL02_ E _s) e (quL02_ E
l) e (que_ E l) e (que_ E
_sug) e (rL02_ E
_imp) e (rL03_ E _imp) e (rL03_ E
_sev) e (rL03_ E _sev) e (rL03_ E
_reit) e (rL03_ E _reit) e (rL03_ E
_sinc) e (rL03_ E _sinc) e (rL03_ E
_g) e (rL04_ E
g) e (rL04_ E / su- refri-
qu) e (rL04_ E / re-
_op) e (rL04_ E _op) e (rL04_ E
_qu) e (rL04_ E
_alt) e (rL04_ E _alt) e (rL04_ E
_sup) e (rL04_ E _sup) e (rL04_ E
_tol) e (rL04_ E _tol) e (rL04_ E
_p) e (rdL02_ E _p) e (rdL02_ E
_l) e (rdL03_ E _l) e (rdL03_ E
_h) e (rdL04_ E _h) e (rdL04_ E
_) e (rgL03_ e
_) e (rguL02_ E _) e (rguL02_ E
_alb) e (rguL02_ E _alb) e (rguL02_ E
_enx) e (rguL02_ E _enx) e (rguL02_ E
_cr) e (scL02_ E _cr) e (scL02_ E
_p) e (scL03_ E _p) e (scL03_ E
_m) e (sclL04 E _m) e (sclL04 E
_p) e (squL02_ E
_l) e (ssL02_ e _l) e (ssL02_ e
_esp) e (ssL03_ e _esp) e (ssL03_ e
_c) e (stL03_ e _c) e (stL03_ e
_embel) e (zL04_ E _embel) e (zL04_ E
_acont) e (çL01_ e _acont) e (çL01_ e
_arref) e (çL01_ e _arref) e (çL01_ e
_emagr) e (çL03
par) e (çL03_ e // a- re- com- rea- desa- par) e (çL03_ e // a- re- com- rea- desa-
_ado) e (çL03_ e _ado) e (çL03_ e
_aqu) e (çL03_ e _aqu) e (çL03_ e
_ofer) e (çL03_ e _ofer) e (çL03_ e
abast) e (çL03_ e // re- abast) e (çL03_ e // re-
_aborr) e (çL03_ e _aborr) e (çL03_ e
_agrad) e (çL03_ e
_amanh) e (çL03_ e _amanh) e (çL03_ e
_anoit) e (çL03_ e _anoit) e (çL03_ e
_enfraqu) e (çL03_ e _enfraqu) e (çL03_ e
_c) o (pL03_ O _c) o (pL03_ O
_ens) o (pL04_ O _ens) o (pL04_ O
_s) o (prL04_ O _s) o (prL04_ O
_) o (ptL04_ O
_enf) o (rquL02_ O _enf) o (rquL02_ O
c) o (rrL01_ o // escorra, incorra, corra, recorra c) o (rrL01_ o // escorra, incorra, corra, recorra
_m) o (rrL01_ o _m) o (rrL01_ o
__) - (_D m'enUs __) - (_D m'enUs
A_) - (_D _ A_) - (_D _
C_) - (_D _ C_) - (_D _


+ 2
- 0
espeak-data/voices/asia/zh View File

words 1 words 1
pitch 80 118 pitch 80 118


dict_min 100000

//for some dialects //for some dialects


//[en]: replace ng with n //[en]: replace ng with n

+ 1
- 0
espeak-data/voices/asia/zh-yue View File

dictrules 1 dictrules 1


words 1 words 1
dict_min 10000

+ 1
- 0
espeak-data/voices/europe/ru View File



replace 03 a a# replace 03 a a#


dict_min 20000

+ 436
- 25
phsource/ph_danish View File

phoneme @ phoneme @
vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
unstressed unstressed
length 110
length 60
FMT(vowel/@_3) FMT(vowel/@_3)
endphoneme endphoneme


phoneme @- // very short schwa
vowel starttype #@ endtype #@
unstressed nonsyllabic
ipa ə
IF nextPhW(*) OR nextPhW(r) THEN
ipa NULL // @-* is used to make 'r'
ENDIF
length 40
FMT(vowel/@-)
endphoneme

// ToDo: change [@] to [a#] if adjacent to [r] or [R] // ToDo: change [@] to [a#] if adjacent to [r] or [R]
phoneme 3 phoneme 3
vowel starttype #a endtype #a vowel starttype #a endtype #a
unstressed unstressed
length 110
length 40
FMT(vowel/a#_3) FMT(vowel/a#_3)
endphoneme endphoneme


// PB sort of schwa [ɐ] (0250+032F)
// "spurgt" [sp'o3-d] – ipa [spˈoɐ̯d]
phoneme 3- // used for 'r' after a vowel (to create a diphthong)
liquid
lengthmod 7
ipa ɐ̯
FMT(r/a_)
endphoneme

phoneme i phoneme i
vowel starttype #i endtype #i vowel starttype #i endtype #i
length 150 length 150
IfNextVowelAppend(;)
// IfNextVowelAppend(;)
IF nextPhW(isNotVowel) AND NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@-) THEN
glstop
length 90
ENDIF
// PB "tie", "stige", "krige" vowel + vowel: extra length
// What is causing this very short [i] in words with final [@-]?
// NOT "galleriet" [g,?&lVR'i@-D] NOT "krigen" [kR'i@-n]
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) AND NOT next2PhW(D) AND NOT next2PhW(n) THEN
length 240
ENDIF
// "siden"
IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(@-) AND nextPhW(D) THEN
length 150
ENDIF
// "lise"
IF nextPhW(isNotVowel) AND nextVowel(@-) OR nextVowel(@) THEN
length 150
ENDIF
// PB "Bishop"
IF nextPhW(S) AND next2PhW(V) THEN
length 90
ENDIF
// "pjækkeri", "røveri"
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 90
ENDIF
// "vilje"
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
length 90
ENDIF
FMT(vowel/i_4) FMT(vowel/i_4)
endphoneme endphoneme


// sviret vs. svirret // sviret vs. svirret
phoneme ?i phoneme ?i
vowel starttype #i endtype #i vowel starttype #i endtype #i
length 95
length 90
IfNextVowelAppend(;) IfNextVowelAppend(;)
FMT(vowel/i_4) FMT(vowel/i_4)
endphoneme endphoneme
phoneme e phoneme e
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 150 length 150
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
glstop
length 90
ENDIF
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN
length 150
ENDIF
// "delte", "mante", "evig" [evi]
IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(@) OR nextVowel(@-) THEN
length 150
ENDIF
// "prinsen" - TEST
IF nextPhW(n) AND next2PhW(s) THEN
length 90
ENDIF
// "slesk", "sleske" short vowel
IF nextPhW(s) AND next2PhW(t) AND nextVowel(@-) THEN
length 90
ELIF nextPhW(s) AND next2PhW(k) AND nextVowel(@-) THEN
length 90
// "skriften" - very broad: short before 2 consonants
ELIF nextPhW(isNotVowel) AND next2PhW(isNotVowel) AND nextVowel(@-) THEN
length 90
ENDIF
// PB "ring", "ringe"
IF nextPhW(N) THEN
length 90
ENDIF
// PB "enig", "enige", "evig"
IF nextPhW(isNotVowel) AND next2PhW(i) THEN
length 150
ENDIF
// "labyrinter" , "labyrinten" - short followed by 2 consonants
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
length 60
ENDIF
FMT(vowel/e) FMT(vowel/e)
endphoneme endphoneme


// "skille" vs. "skele", "pille" vs. "pile" // "skille" vs. "skele", "pille" vs. "pile"
phoneme ?e phoneme ?e
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 95
length 90
FMT(vowel/e) FMT(vowel/e)
endphoneme endphoneme


phoneme E phoneme E
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 150 length 150
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
glstop
length 90
ENDIF
// example?
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN
length 50
ENDIF
// "værelse", "breve"
IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(@-) THEN
length 150
ENDIF
// "fest", "feste" short vowel
IF nextPhW(s) AND next2PhW(t) AND nextVowel(@-) THEN
length 90
ELIF nextPhW(s) AND next2PhW(k) AND nextVowel(@-) THEN
length 90
// PB knægten
ELIF nextPhW(g) AND next2PhW(t) AND nextVowel(@-) THEN
length 90
// "femten", "tænker" - very broad: short before 2 consonants
ELIF nextPhW(isNotVowel) AND next2PhW(isNotVowel) AND nextVowel(@-) OR nextVowel(V)THEN
length 90
// PB "kærlig" [k'Erli]- a bit longer because og the missing [ɐ] [ˈkæɐ̯li]
ELIF nextPhW(r) AND next2PhW(isNotVowel) AND nextVowel(i) THEN
length 130
ENDIF
// "ære", "kærester", "ærefrygt" - longer E
IF nextPhW(V) THEN
length 180
ENDIF
FMT(vowel/e_mid2) FMT(vowel/e_mid2)
endphoneme endphoneme


// "læsse" vs. "læse" // "læsse" vs. "læse"
phoneme ?E phoneme ?E
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 95
length 90
// PB "færre" [f'?EV] - a bit longer because og the missing [ɐ] [ˈfæɐ̯ʌ]
// Changed now [f'?E3-V] but it won't do any harm
IF nextPhW(V) THEN
length 120
ENDIF
FMT(vowel/e_mid2) FMT(vowel/e_mid2)
endphoneme endphoneme


phoneme & phoneme &
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 150 length 150
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
glstop
length 90
ENDIF
// PB "sable", "sabler", "anede", "David"
IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(i) OR nextVowel(@-) THEN
length 150
ENDIF
// "stadig" [st&Di]
IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN
length 180
// "stadigt" [st&Dit]
ELIF nextVowel(i) AND nextVowel(isFinalVowel) AND next2PhW(t) THEN
length 180
// "latin" [l&t'in]
ELIF nextVowel(i) AND nextVowel(isFinalVowel) AND NOT next2PhW(t) THEN
length 90
ENDIF
// "ae", "aer", "dagen" vowel + vowel: extra length
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN
length 240
ENDIF
// "Alfie", "alfer" - short before 2 consonants
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
length 90
ENDIF
// "Omaha"
IF thisPh(isWordEnd) THEN
length 90
ENDIF
FMT(vowel/ee_2) FMT(vowel/ee_2)
endphoneme endphoneme


// PB Experimental glottal a // PB Experimental glottal a
// e.g. the last a in "staldkarl" // e.g. the last a in "staldkarl"
// "sale" vs. "sal"
phoneme ?& phoneme ?&
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 95
length 90
FMT(vowel/ee_2) FMT(vowel/ee_2)
endphoneme endphoneme


phoneme &# phoneme &#
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 120 length 120
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
glstop
length 90
ENDIF
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN
length 150
ENDIF
FMT(vowel/&) FMT(vowel/&)
endphoneme endphoneme


// PB short &#
// "revl" vs. "tremme"
phoneme ?&#
vowel starttype #e endtype #e
length 90
FMT(vowel/&)
endphoneme

phoneme a phoneme a
vowel starttype #a endtype #a vowel starttype #a endtype #a
length 150 length 150
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
glstop
length 90
ENDIF
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN
length 150
ENDIF
FMT(vowel/a_2)
endphoneme

// PB short (glottal) a
// "bragt"
phoneme ?a
vowel starttype #a endtype #a
length 90
FMT(vowel/a_2) FMT(vowel/a_2)
endphoneme endphoneme


phoneme A phoneme A
vowel starttype #a endtype #a vowel starttype #a endtype #a
length 150 length 150
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
glstop
length 90
ENDIF
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN
length 150
ENDIF
// "far", "bastard" - a bit longer followed by [r]
IF nextPhW(r) THEN
length 120
ENDIF
FMT(vowel/a_3)
endphoneme

// PB glottal a
// "drab" vs. "drabelig"
phoneme ?A
vowel starttype #a endtype #a
length 90
// "straffeattest", "straffe" - a bit longer after R
IF prevPhW(R) AND nextPhW(isNotVowel) THEN
length 120
ENDIF
FMT(vowel/a_3) FMT(vowel/a_3)
endphoneme endphoneme


phoneme u phoneme u
vowel starttype #u endtype #u vowel starttype #u endtype #u
length 150 length 150
// Short vowel followed by consonant and NOT consonant + 3 or V or @
// "blus" vs. "bluse" and "bluser"
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
glstop
length 90
ENDIF
// "hue", "suge", "uge"
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN
length 150
ENDIF
// extra length followed by 3 or V or @
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN
length 240
ENDIF
// "umulig"
IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN
length 180
ENDIF
FMT(vowel/u_bck) FMT(vowel/u_bck)
endphoneme endphoneme


// PB glottal u // PB glottal u
// "gud" vs. "guden" - [guD] [g?D@n]
// "tude" vs. "tuden" - [tuD3] [t?uD@n]
phoneme ?u phoneme ?u
vowel starttype #u endtype #u vowel starttype #u endtype #u
length 95
length 90
FMT(vowel/u_bck) FMT(vowel/u_bck)
endphoneme endphoneme


phoneme o phoneme o
vowel starttype #o endtype #o vowel starttype #o endtype #o
length 150 length 150
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
glstop
length 90
ENDIF
// "tro"
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 90
ENDIF
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN
length 150
ENDIF
// "modig" - long vowel after consonant + [i]
IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(i) THEN
length 150
ENDIF
FMT(vowel/o_2)
endphoneme

// PB Short o
// "patron" vs. "kone"
phoneme ?o
vowel starttype #o endtype #o
length 95
FMT(vowel/o_2) FMT(vowel/o_2)
endphoneme endphoneme


phoneme O phoneme O
vowel starttype #o endtype #o vowel starttype #o endtype #o
length 150 length 150
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
glstop
length 90
ENDIF
// PB "gået"
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN
length 150
ENDIF
// "rådig"
IF nextVowel(i) AND nextVowel(isFinalVowel) THEN
length 180
ENDIF
FMT(vowel/o_5) FMT(vowel/o_5)
endphoneme endphoneme


// "toget" vs. "tåget" // "toget" vs. "tåget"
phoneme ?O phoneme ?O
vowel starttype #o endtype #o vowel starttype #o endtype #o
length 95
length 90
FMT(vowel/o_5) FMT(vowel/o_5)
endphoneme endphoneme


phoneme V phoneme V
vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
length 150 length 150
// "sport" [spV:t]
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
glstop
length 90
ENDIF
IF nextPh(3) OR nextPh(V) OR nextPh(@) THEN
length 150
ENDIF
// PB short V in "holder", "solder"
IF nextPhW(isNotVowel) AND next2Ph(V) THEN
length 90
ENDIF
// PB "snorke", "snorker", årlig
IF next2PhW(3) OR next2PhW(V) OR next2PhW(@) OR next2PhW(i) THEN
length 180
ENDIF
// "sove" [sVw3] - longer followed by w + 3
IF nextPhW(w) AND next2PhW(3) THEN
length 220
ENDIF
FMT(vowel/V_4)
endphoneme

// PB Glottal (short) å
// "forstår" vs. "kåre"
phoneme ?V
vowel starttype #@ endtype #@
length 100
FMT(vowel/V_4) FMT(vowel/V_4)
endphoneme endphoneme


phoneme 0 phoneme 0
vowel starttype #o endtype #o vowel starttype #o endtype #o
length 150 length 150
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
glstop
length 90
ENDIF
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN
length 150
ENDIF
FMT(vowel/oo_2) FMT(vowel/oo_2)
endphoneme endphoneme


// ?B short 0 "sukker"
phoneme ?0
vowel starttype #o endtype #o
length 90
FMT(vowel/oo_2)
endphoneme


phoneme y phoneme y
vowel starttype #i endtype #i vowel starttype #i endtype #i
// experiment: changed to short from 150
length 150 length 150
// Short vowel followed by consonant and NOT consonant + 3 or V
// "lyd" vs. "lyde" and "lyder"
IF nextPhW(isNotVowel) AND NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@)AND NOT next2PhW(@-) THEN
glstop
length 90
ENDIF
// "syg" [sy]
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 90
ENDIF
// "skyd"
IF thisPh(isFinalVowel) AND nextPhW(isWordEnd) AND nextPhW(isNotVowel) THEN
length 90
ENDIF
// "dydig" [dyDi]
IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(i) THEN
length 150
ENDIF
// "syge" [sy3] vowel + vowel: extra length, but NOT "fyret" [fyVD]
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) AND NOT next2PhW(D) THEN
length 220
ENDIF
// PB "kryster" - short y
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
length 80
ENDIF
// PB "gryden"
FMT(vowel/y) FMT(vowel/y)
endphoneme endphoneme


// PB glottal y
// PB Short y
// "kylling" vs. "kyle", "krybbe" vs. "krybe" // "kylling" vs. "kyle", "krybbe" vs. "krybe"
phoneme ?y phoneme ?y
vowel starttype #i endtype #i vowel starttype #i endtype #i
length 95
length 70
FMT(vowel/y) FMT(vowel/y)
endphoneme endphoneme


phoneme Y phoneme Y
vowel starttype #i endtype #i vowel starttype #i endtype #i
length 150 length 150
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
glstop
length 90
ENDIF
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN
length 150
ENDIF
FMT(vowel/yy) FMT(vowel/yy)
endphoneme endphoneme


phoneme W phoneme W
vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
length 150
length 160
// Shorter vowel when followed by consonant
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
glstop
length 90
ENDIF
// "kløe" vowel + vowel: extra length
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN
length 220
ENDIF
// "klø" short W when word ends with W
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 90
ENDIF
// røde" W + 1 consonant + 3 or W or @
IF next2PhW(3) OR next2PhW(V) OR next2PhW(@) THEN
length 160
ENDIF
// PB "nødig", "nødigt", "kølige"
IF nextVowel(i) THEN
length 160
ENDIF
// "møve" [mWw@-]
IF nextPhW(w) AND nextVowel(@-) THEN
length 160
ENDIF
// "børnebog"
IF nextPhW(r) AND next2PhW(n) AND nextVowel(@-) THEN
length 150
ENDIF
FMT(vowel/oe) FMT(vowel/oe)
endphoneme endphoneme


// "prøv" vs. "prøve" // "prøv" vs. "prøve"
phoneme ?W phoneme ?W
vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
length 80
length 95
FMT(vowel/oe) FMT(vowel/oe)
endphoneme endphoneme


phoneme W# phoneme W#
vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
length 150 length 150
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
glstop
length 90
ENDIF
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN
length 150
ENDIF
FMT(vowel/V) FMT(vowel/V)
endphoneme endphoneme


// PB short W#
// "rømme"
phoneme ?W#
vowel starttype #@ endtype #@
length 90
FMT(vowel/V)
endphoneme

phoneme aI phoneme aI
vowel starttype #a endtype #i vowel starttype #a endtype #i
length 250
length 300
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2Ph(@-) AND nextPhW(isNotVowel) THEN
glstop
length 150
ENDIF
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN
length 300
ENDIF
// PB "drej" vs. "dreje"
IF thisPh(isWordEnd) THEN
length 140
ENDIF
FMT(vdiph/ai) FMT(vdiph/ai)
endphoneme endphoneme


voicingswitch f voicingswitch f
endphoneme endphoneme


// PB Actually a kind of schwa = [ɐ]? - "byder" [bˈyðɐʌ]
phoneme r // used for 'r' after a vowel (to create a diphthong) phoneme r // used for 'r' after a vowel (to create a diphthong)
liquid liquid
lengthmod 7 lengthmod 7
IF nextPhW(isVowel) THEN
ipa ɐ̯
IF nextPhW(isVowel) AND NOT nextPhW(?V) AND NOT nextPhW(V) THEN
ChangePhoneme(R) ChangePhoneme(R)
ENDIF ENDIF
FMT(r/a_) FMT(r/a_)
endphoneme endphoneme


phoneme R phoneme R
lengthmod 7
lengthmod 6
liquid liquid
ipa ʁ ipa ʁ
FMT(r/aa) FMT(r/aa)
endphoneme endphoneme




// don't weaken consonants at end of word or before a stop // don't weaken consonants at end of word or before a stop


phoneme s phoneme s
WAV(ufric/s) WAV(ufric/s)
endphoneme endphoneme



phoneme p phoneme p
vls blb stop vls blb stop
voicingswitch b voicingswitch b
lengthmod 2
lengthmod 7
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11 Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22 Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22


WAV(ustop/p) WAV(ustop/p)
endphoneme endphoneme




phoneme t phoneme t
vls alv stop vls alv stop
voicingswitch d voicingswitch d
lengthmod 2
lengthmod 7
Vowelin f1=0 f2=1700 -300 300 f3=-100 80 Vowelin f1=0 f2=1700 -300 300 f3=-100 80
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20


WAV(ustop/t, 90) WAV(ustop/t, 90)
endphoneme endphoneme


phoneme j
liquid palatal
lengthmod 7

IF nextPhW(isVowel) THEN
NextVowelStarts
VowelStart(j/j@)
VowelStart(j/ja)
VowelStart(j/je,-60)
VowelStart(j/ji)
VowelStart(j/jo)
VowelStart(j/ju)
EndSwitch
Vowelout len=70
VowelEnding(j/xj, -30)

IF prevPh(isPause) THEN
FMT(j/_j)
ENDIF
ELSE
// no vowel follows
Vowelout len=70
FMT(j/j_)
ENDIF
endphoneme

+ 2
- 2
platforms/windows/espeakedit/src/speech.h View File

#define mkdir(p1,p2) mkdir(p1) #define mkdir(p1,p2) mkdir(p1)
#define PATHSEP '\\' #define PATHSEP '\\'
#define USE_PORTAUDIO
//#define USE_PORTAUDIO
//#define USE_NANOSLEEP //#define USE_NANOSLEEP
#define NO_VARIADIC_MACROS #define NO_VARIADIC_MACROS
#define __cdecl #define __cdecl
#define N_PATH_HOME 120
#define N_PATH_HOME 230
extern char path_home[N_PATH_HOME]; // this is the espeak-data directory extern char path_home[N_PATH_HOME]; // this is the espeak-data directory
extern void strncpy0(char *to,const char *from, int size); extern void strncpy0(char *to,const char *from, int size);

+ 2
- 2
platforms/windows/espeakedit/src_copy/speech.h View File

#define mkdir(p1,p2) mkdir(p1) #define mkdir(p1,p2) mkdir(p1)
#define PATHSEP '\\' #define PATHSEP '\\'
#define USE_PORTAUDIO
//#define USE_PORTAUDIO
//#define USE_NANOSLEEP //#define USE_NANOSLEEP
#define NO_VARIADIC_MACROS #define NO_VARIADIC_MACROS
#define __cdecl #define __cdecl
#define N_PATH_HOME 120
#define N_PATH_HOME 230
extern char path_home[N_PATH_HOME]; // this is the espeak-data directory extern char path_home[N_PATH_HOME]; // this is the espeak-data directory
extern void strncpy0(char *to,const char *from, int size); extern void strncpy0(char *to,const char *from, int size);

+ 9
- 1
platforms/windows/make_espeak.iss View File

[Setup] [Setup]
AppName=eSpeak AppName=eSpeak
AppVerName=eSpeak version 1.46.31
AppVerName=eSpeak version 1.46.42
AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details).
WindowVisible=yes WindowVisible=yes
[InstallDelete] [InstallDelete]
Type: files; Name: "{app}\espeak.dll" Type: files; Name: "{app}\espeak.dll"
Type: files; Name: "{app}\espeak-data\voices\*"
Type: filesandordirs; Name: "{app}\espeak-data\voices\en"
Type: filesandordirs; Name: "{app}\espeak-data\voices\asia"
Type: filesandordirs; Name: "{app}\espeak-data\voices\europe"
Type: filesandordirs; Name: "{app}\espeak-data\voices\other"
Type: filesandordirs; Name: "{app}\espeak-data\voices\test" Type: filesandordirs; Name: "{app}\espeak-data\voices\test"
Type: filesandordirs; Name: "{app}\docs" Type: filesandordirs; Name: "{app}\docs"
$41: Result := 'sw'; $41: Result := 'sw';
//$44: Result := 'tt'; //$44: Result := 'tt';
$49: Result := 'ta'; $49: Result := 'ta';
$46: Result := 'pa';
$4b: Result := 'kn'; $4b: Result := 'kn';
//$50: Result := 'mn'; //$50: Result := 'mn';
$52: Result := 'cy'; $52: Result := 'cy';
'an': value := $40a; // Aragon, use code for Spanish 'an': value := $40a; // Aragon, use code for Spanish
'az': value := $42c; 'az': value := $42c;
'bg': value := $402; 'bg': value := $402;
'bn': value := $445;
'bs': value := $41a; // should be $141a but Jaws crashes on startup 'bs': value := $41a; // should be $141a but Jaws crashes on startup
'ca': value := $403; 'ca': value := $403;
'cs': value := $405; 'cs': value := $405;
'ne': value := $461; 'ne': value := $461;
'nl': value := $413; 'nl': value := $413;
'no': value := $414; 'no': value := $414;
'pa': value := $446;
'pl': value := $415; 'pl': value := $415;
'pt': value := $416; 'pt': value := $416;
'ro': value := $418; 'ro': value := $418;

+ 1
- 1
platforms/windows/windows_cmd/src/speech.h View File

#define N_PATH_HOME 220
#define N_PATH_HOME 230
extern char path_home[N_PATH_HOME]; // this is the espeak-data directory extern char path_home[N_PATH_HOME]; // this is the espeak-data directory
extern void strncpy0(char *to,const char *from, int size); extern void strncpy0(char *to,const char *from, int size);

+ 1
- 1
platforms/windows/windows_dll/src/speech.h View File







#define N_PATH_HOME 120
#define N_PATH_HOME 230
extern char path_home[N_PATH_HOME]; // this is the espeak-data directory extern char path_home[N_PATH_HOME]; // this is the espeak-data directory


extern void strncpy0(char *to,const char *from, int size); extern void strncpy0(char *to,const char *from, int size);

+ 1
- 1
platforms/windows/windows_sapi/src/speech.h View File

#define N_PATH_HOME 220
#define N_PATH_HOME 230
extern char path_home[N_PATH_HOME]; // this is the espeak-data directory extern char path_home[N_PATH_HOME]; // this is the espeak-data directory
extern void strncpy0(char *to,const char *from, int size); extern void strncpy0(char *to,const char *from, int size);

+ 5
- 0
src/dictionary.cpp View File

p++; // skip over the zero which terminates the list for this hash value p++; // skip over the zero which terminates the list for this hash value
} }


if((tr->dict_min_size > 0) && (size < tr->dict_min_size))
{
fprintf(stderr, "Full dictionary is not installed for '%s'\n", name);
}

return(0); return(0);
} // end of LoadDictionary } // end of LoadDictionary



+ 2
- 2
src/speech.h View File





#ifdef PLATFORM_WINDOWS #ifdef PLATFORM_WINDOWS
#define N_PATH_HOME 220
#define N_PATH_HOME 230
#else #else
#define N_PATH_HOME 150
#define N_PATH_HOME 160
#endif #endif


extern char path_home[N_PATH_HOME]; // this is the espeak-data directory extern char path_home[N_PATH_HOME]; // this is the espeak-data directory

+ 1
- 1
src/synthdata.cpp View File

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


const char *version_string = "1.46.42 06.Mar.13";
const char *version_string = "1.46.43 07.Mar.13";
const int version_phdata = 0x014640; const int version_phdata = 0x014640;


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

+ 3
- 2
src/tr_languages.cpp View File

tr->charset_a0 = charsets[1]; // ISO-8859-1, this is for when the input is not utf8 tr->charset_a0 = charsets[1]; // ISO-8859-1, this is for when the input is not utf8
dictionary_name[0] = 0; dictionary_name[0] = 0;
tr->dict_condition=0; tr->dict_condition=0;
tr->dict_min_size = 0;
tr->data_dictrules = NULL; // language_1 translation rules file tr->data_dictrules = NULL; // language_1 translation rules file
tr->data_dictlist = NULL; // language_2 dictionary lookup file tr->data_dictlist = NULL; // language_2 dictionary lookup file


int name2 = 0; int name2 = 0;
Translator *tr; Translator *tr;


static const short stress_lengths_equal[8] = {250, 250, 250, 250, 0, 0, 250, 250};
static const short stress_lengths_equal[8] = {230, 230, 230, 230, 0, 0, 230, 230};
static const unsigned char stress_amps_equal[8] = {18,18, 18,18, 18,18, 18,18 }; static const unsigned char stress_amps_equal[8] = {18,18, 18,18, 18,18, 18,18 };


static const short stress_lengths_fr[8] = {190, 170, 190, 200, 0, 0, 190, 240}; static const short stress_lengths_fr[8] = {190, 170, 190, 200, 0, 0, 190, 240};
static const unsigned char stress_amps_sk[8] = {17,16, 20,20, 20,22, 22,21 }; static const unsigned char stress_amps_sk[8] = {17,16, 20,20, 20,22, 22,21 };
static const short stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210}; static const short stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210};


static const short stress_lengths_ta[8] = {240, 240, 250, 250, 0, 0, 270, 270};
static const short stress_lengths_ta[8] = {200, 200, 210, 210, 0, 0, 230, 230};
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 };


// convert name string into a word of up to 4 characters, for the switch() // convert name string into a word of up to 4 characters, for the switch()

+ 1
- 0
src/translate.h View File

unsigned char stress_amps_r[8]; unsigned char stress_amps_r[8];
short stress_lengths[8]; short stress_lengths[8];
int dict_condition; // conditional apply some pronunciation rules and dict.lookups int dict_condition; // conditional apply some pronunciation rules and dict.lookups
int dict_min_size;
const unsigned short *charset_a0; // unicodes for characters 0xa0 to oxff const unsigned short *charset_a0; // unicodes for characters 0xa0 to oxff
const wchar_t *char_plus_apostrophe; // single chars + apostrophe treated as words const wchar_t *char_plus_apostrophe; // single chars + apostrophe treated as words
const wchar_t *punct_within_word; // allow these punctuation characters within words const wchar_t *punct_within_word; // allow these punctuation characters within words

+ 1
- 1
src/transldlg.cpp View File

wxString filename; wxString filename;
char *p; char *p;
char vname[40]; char vname[40];
char fname[sizeof(path_home)+10];
char fname[sizeof(path_home)+30];


if(variant) if(variant)
{ {

+ 1
- 1
src/voice.h View File

int phoneme_tab_ix; // phoneme table number int phoneme_tab_ix; // phoneme table number
int pitch_base; // Hz<<12 int pitch_base; // Hz<<12
int pitch_range; // standard = 0x1000 int pitch_range; // standard = 0x1000
int speedf1; int speedf1;
int speedf2; int speedf2;
int speedf3; int speedf3;

+ 10
- 1
src/voices.cpp View File

V_KLATT, V_KLATT,
V_FAST, V_FAST,
V_SPEED, V_SPEED,
V_DICTMIN,


// these need a phoneme table to have been specified // these need a phoneme table to have been specified
V_REPLACE, V_REPLACE,
{"klatt", V_KLATT}, {"klatt", V_KLATT},
{"fast_test2", V_FAST}, {"fast_test2", V_FAST},
{"speed", V_SPEED}, {"speed", V_SPEED},
{"dict_min", V_DICTMIN},


// these just set a value in langopts.param[] // these just set a value in langopts.param[]
{"l_dieresis", 0x100+LOPT_DIERESES}, {"l_dieresis", 0x100+LOPT_DIERESES},
char phonemes_name[40]; char phonemes_name[40];
char option_name[40]; char option_name[40];
const char *language_type; const char *language_type;
char buf[200];
char buf[sizeof(path_home)+30];
char path_voices[sizeof(path_home)+12]; char path_voices[sizeof(path_home)+12];


int dict_min = 0;
int stress_amps[8]; int stress_amps[8];
int stress_lengths[8]; int stress_lengths[8];
int stress_add[8]; int stress_add[8];
SetSpeed(3); SetSpeed(3);
break; break;


case V_DICTMIN:
sscanf(p,"%d",&dict_min);
break;

default: default:
if((key & 0xff00) == 0x100) if((key & 0xff00) == 0x100)
{ {
} }
voice->phoneme_tab_ix = ix; voice->phoneme_tab_ix = ix;
new_translator->phoneme_tab_ix = ix; new_translator->phoneme_tab_ix = ix;
new_translator->dict_min_size = dict_min;
LoadDictionary(new_translator, new_dictionary, control & 4); LoadDictionary(new_translator, new_dictionary, control & 4);
if(dictionary_name[0]==0) if(dictionary_name[0]==0)
return(NULL); // no dictionary loaded return(NULL); // no dictionary loaded
translator = new_translator; translator = new_translator;
} }



// relative lengths of different stress syllables // relative lengths of different stress syllables
for(ix=0; ix<stress_lengths_set; ix++) for(ix=0; ix<stress_lengths_set; ix++)
{ {

Loading…
Cancel
Save