Browse Source

[1.46.43]

language changes: da, pt


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@309 d46cf337-b52f-0410-862d-fd96e6ae7743
master
jonsd 12 years ago
parent
commit
2d64d32893

+ 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


+ 12
- 11
dictsource/dict_phonemes View File

x z x z




Dictionary da_dict 2013-01-30
Dictionary da_dict 2013-03-06


& &# 0 3 ?& ?e ?E ?i
?O ?u ?W ?y @ @- a A
aI e E i o O u V
& &# 0 3 ?& ?&# ?0 ?a
?A ?e ?E ?i ?o ?O ?u ?V
?W ?W# ?y @ @- a A aI
e E i I o O u V
W W# y Y W W# y Y


* - : ? b B d D
dZ f g h j J k l
l/2 l/3 m n N p r R
R3 s S t T tS v w
x z Z
* - 3- : ; ? b B
d D dZ f g h j J
k l l/2 l/3 m n N p
r R R3 s S t T tS
v w x z Z




Dictionary hu_dict 2013-02-25 Dictionary hu_dict 2013-02-25
ts; v w x z Z Z; ts; v w x z Z Z;




Dictionary pt_dict 2013-03-06
Dictionary pt_dict 2013-03-07


& &/ &U~ &~ @ @- a A & &/ &U~ &~ @ @- a A
aI aU e E eI EI eU EU aI aU e E eI EI eU EU
tS tS` v w x z Z tS tS` v w x z Z




Dictionary ml_dict 2013-02-28
Dictionary ml_dict 2013-03-06


@ a a# a: aI aU e E @ a a# a: aI aU e E
e: i I i: o o: r- u e: i I i: o o: r- u

+ 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 _


+ 25
- 7
phsource/compile_report View File

id 15 127 id 15 127
sq 33 127 sq 33 127
hy 23 119 hy 23 119
da 36 131
da 46 139
ka 20 114 ka 20 114
rw 15 132 rw 15 132
pa 15 152 pa 15 152
j2/xj2 [;] base j2/xj2 [;] base
j/_j [j] base j/_j [j] base
[j] zh [j] zh
[j] da
j/j_ [j] base j/j_ [j] base
[j] de [j] de
[j] zh [j] zh
[j] da
j/j@ [j] base j/j@ [j] base
[j] de [j] de
[j/] fr [j/] fr
[j] zh [j] zh
[j] da
j/ja [j] base j/ja [j] base
[j] de [j] de
[j/] fr [j/] fr
[j] zh [j] zh
[j] da
j/je [j] base j/je [j] base
[j] de [j] de
[j/] fr [j/] fr
[j] zh [j] zh
[j] da
j/ji [j] base j/ji [j] base
[j] de [j] de
[j/] fr [j/] fr
[j] zh [j] zh
[j] da
j/jo [j] base j/jo [j] base
[j] de [j] de
[j/] fr [j/] fr
[j] zh [j] zh
[j] da
j/_j_short [j] de j/_j_short [j] de
j/ju [j] base j/ju [j] base
[j] de [j] de
[j/] fr [j/] fr
[j] zh [j] zh
[j] da
j/xj [j] base j/xj [j] base
[j] de [j] de
[j] zh [j] zh
[j] da
klatt/b [b] base klatt/b [b] base
[b] fr [b] fr
klatt/bh [B] base klatt/bh [B] base
[l/] fr [l/] fr
l/l_@ [l/3] base l/l_@ [l/3] base
[l/] fr [l/] fr
l/l@ [¨\-] base
l/l@ [¨-] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
l/L2_uL [l/2] base l/L2_uL [l/2] base
l/l_3 [l/] de l/l_3 [l/] de
l/l_4 [ll] sq l/l_4 [ll] sq
l/la [¨\-] base
l/la [¨-] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
[K] tn [K] tn
l/l_a [l/3] base l/l_a [l/3] base
[l/] fr [l/] fr
l/le [¨\-] base
l/le [¨-] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
[&:] af [&:] af
l/l_front [L] sq l/l_front [L] sq
l/l_front_ [l/4] sq l/l_front_ [l/4] sq
l/li [¨\-] base
l/li [¨-] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
ll/_ll [L] base ll/_ll [L] base
l/l_long [l] base l/l_long [l] base
[l] fr [l] fr
l/lo [¨\-] base
l/lo [¨-] base
[l#] base [l#] base
[l/2] fr [l/2] fr
[K] nso [K] nso
[l;] lt [l;] lt
[l] ru [l] ru
[l^] ru [l^] ru
l/lu [¨\-] base
l/lu [¨-] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
[*] ko [*] ko
r3/@tap_rfx [r.] base r3/@tap_rfx [r.] base
r/a_ [r] da r/a_ [r] da
[3-] da
r/aa [R] da r/aa [R] da
r/r [r] base r/r [r] base
[r-] en [r-] en
[U#] ga [U#] ga
vowel/@- [@-] base vowel/@- [@-] base
[r*] hr [r*] hr
[@-] da
vowel/& [a] en-rp vowel/& [a] en-rp
[&] fi [&] fi
[&] et [&] et
[ja#] ru [ja#] ru
[&] sv [&] sv
[&#] da [&#] da
[?&#] da
[&] az [&] az
[a] fa [a] fa
vowel/0 [0] en vowel/0 [0] en
[a] ro [a] ro
[a] el [a] el
[a] da [a] da
[?a] da
[a] rw [a] rw
vowel/a#_2 [a] kn vowel/a#_2 [a] kn
[a] ml [a] ml
[A] zh [A] zh
[a] sq [a] sq
[A] da [A] da
[?A] da
[a:] si [a:] si
vowel/a#_3 [a#] en vowel/a#_3 [a#] en
[a#] en-n [a#] en-n
[o:] no [o:] no
[o] vi [o] vi
[o] da [o] da
[?o] da
vowel/o-_2 [V] en-n vowel/o-_2 [V] en-n
[V] en-wm [V] en-wm
vowel/o_3 [oU] en-sc vowel/o_3 [oU] en-sc
[O] cy [O] cy
[o] cs [o] cs
[0] da [0] da
[?0] da
[O] ak [O] ak
[@] ko [@] ko
vowel/oo_3 [O] af vowel/oo_3 [O] af
[@] bg [@] bg
[@] vi [@] vi
[W#] da [W#] da
[?W#] da
vowel/V_2 [V] en vowel/V_2 [V] en
[a] af [a] af
[V] fr [V] fr
[V] pa [V] pa
vowel/V_4 [V] en-sc vowel/V_4 [V] en-sc
[V] da [V] da
[?V] da
vowel/V_6 [V] en-us vowel/V_6 [V] en-us
[a#] lv [a#] lv
vowel/y [y] base2 vowel/y [y] base2

+ 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

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

//#define SPECT_EDITOR //#define SPECT_EDITOR
#define INCLUDE_KLATT #define INCLUDE_KLATT
#define INCLUDE_MBROLA #define INCLUDE_MBROLA
#define INCLUDE_SONIC
#define _ESPEAKEDIT
#include <windows.h> #include <windows.h>
#define PLATFORM_WINDOWS #define PLATFORM_WINDOWS
#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
- 3
platforms/windows/espeakedit/src_copy/speech.h View File

//#define SPECT_EDITOR //#define SPECT_EDITOR
#define INCLUDE_KLATT #define INCLUDE_KLATT
#define INCLUDE_MBROLA #define INCLUDE_MBROLA
#define INCLUDE_SONIC
#define _ESPEAKEDIT
#include <windows.h> #include <windows.h>
#define PLATFORM_WINDOWS #define PLATFORM_WINDOWS
#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);

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

#define NO_VARIADIC_MACROS #define NO_VARIADIC_MACROS
#define INCLUDE_KLATT #define INCLUDE_KLATT
#define INCLUDE_MBROLA #define INCLUDE_MBROLA
#define INCLUDE_SONIC
// will look for espeak_data directory here, and also in user's home directory // will look for espeak_data directory here, and also in user's home directory
#define PATH_ESPEAK_DATA "/usr/share/espeak-data" #define PATH_ESPEAK_DATA "/usr/share/espeak-data"
typedef unsigned short USHORT; typedef unsigned short USHORT;
typedef unsigned char UCHAR; typedef unsigned char UCHAR;
typedef double DOUBLEX; typedef double DOUBLEX;
#ifdef __WIN64__
typedef uint64_t long64; // use this for conversion between pointers and integers
#else
typedef unsigned long long64;
#endif
#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);

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

#define LIBRARY #define LIBRARY
#define INCLUDE_KLATT #define INCLUDE_KLATT
#define INCLUDE_MBROLA #define INCLUDE_MBROLA
#define INCLUDE_SONIC



// will look for espeak_data directory here, and also in user's home directory // will look for espeak_data directory here, and also in user's home directory
#define PATH_ESPEAK_DATA "/usr/share/espeak-data" #define PATH_ESPEAK_DATA "/usr/share/espeak-data"
typedef unsigned short USHORT; typedef unsigned short USHORT;
typedef unsigned char UCHAR; typedef unsigned char UCHAR;
typedef double DOUBLEX; typedef double DOUBLEX;
#ifdef __WIN64__
typedef uint64_t long64; // use this for conversion between pointers and integers
#else
typedef unsigned long long64;
#endif












#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);

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

//#define USE_NANOSLEEP //#define USE_NANOSLEEP
#define INCLUDE_KLATT #define INCLUDE_KLATT
#define INCLUDE_MBROLA #define INCLUDE_MBROLA
#define INCLUDE_SONIC
// will look for espeak_data directory here, and also in user's home directory // will look for espeak_data directory here, and also in user's home directory
#define PATH_ESPEAK_DATA "/usr/share/espeak-data" #define PATH_ESPEAK_DATA "/usr/share/espeak-data"
typedef unsigned short USHORT; typedef unsigned short USHORT;
typedef unsigned char UCHAR; typedef unsigned char UCHAR;
typedef double DOUBLEX; typedef double DOUBLEX;
#ifdef __WIN64__
typedef uint64_t long64; // use this for conversion between pointers and integers
#else
typedef unsigned long long64;
#endif
#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