Browse Source

[1.45.28]

Amplitude changes now apply also to mbrola voices.

"voicing" attribute is now used in mbrola voice files to set the voice loudness.

SSML commands such as <mark> and <prosody> were ignored if they were inside a multiword group (defined in *_list).  This is now fixed so that the command is processed at the end of the group.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@267 d46cf337-b52f-0410-862d-fd96e6ae7743
master
jonsd 14 years ago
parent
commit
1284a5334c
67 changed files with 432 additions and 242 deletions
  1. 6
    2
      dictsource/de_list
  2. 38
    26
      dictsource/de_rules
  3. 8
    7
      dictsource/dict_phonemes
  4. 142
    138
      dictsource/en_list
  5. 1
    1
      dictsource/fr_list
  6. 9
    2
      dictsource/fr_rules
  7. 3
    0
      dictsource/ta_list
  8. 42
    0
      dictsource/ta_rules
  9. 0
    8
      espeak-data/voices/grc
  10. 0
    3
      espeak-data/voices/jbo
  11. 2
    0
      espeak-data/voices/mb/mb-br1
  12. 2
    1
      espeak-data/voices/mb/mb-br3
  13. 2
    0
      espeak-data/voices/mb/mb-br4
  14. 1
    0
      espeak-data/voices/mb/mb-cr1
  15. 1
    0
      espeak-data/voices/mb/mb-de2
  16. 2
    0
      espeak-data/voices/mb/mb-de4
  17. 2
    0
      espeak-data/voices/mb/mb-de4-en
  18. 1
    0
      espeak-data/voices/mb/mb-de7
  19. 1
    0
      espeak-data/voices/mb/mb-en1
  20. 2
    0
      espeak-data/voices/mb/mb-fr1
  21. 1
    0
      espeak-data/voices/mb/mb-fr1-en
  22. 1
    0
      espeak-data/voices/mb/mb-fr4
  23. 1
    0
      espeak-data/voices/mb/mb-fr4-en
  24. 1
    0
      espeak-data/voices/mb/mb-gr2
  25. 1
    0
      espeak-data/voices/mb/mb-gr2-en
  26. 1
    0
      espeak-data/voices/mb/mb-hu1
  27. 1
    0
      espeak-data/voices/mb/mb-hu1-en
  28. 1
    0
      espeak-data/voices/mb/mb-ic1
  29. 1
    0
      espeak-data/voices/mb/mb-id1
  30. 1
    0
      espeak-data/voices/mb/mb-it3
  31. 1
    0
      espeak-data/voices/mb/mb-it4
  32. 2
    0
      espeak-data/voices/mb/mb-nl2
  33. 2
    0
      espeak-data/voices/mb/mb-nl2-en
  34. 1
    0
      espeak-data/voices/mb/mb-pl1
  35. 2
    1
      espeak-data/voices/mb/mb-pt1
  36. 2
    0
      espeak-data/voices/mb/mb-sw1
  37. 2
    0
      espeak-data/voices/mb/mb-sw1-en
  38. 2
    0
      espeak-data/voices/mb/mb-sw2
  39. 2
    0
      espeak-data/voices/mb/mb-sw2-en
  40. 2
    0
      espeak-data/voices/mb/mb-tr2
  41. 1
    0
      espeak-data/voices/mb/mb-us2
  42. 1
    0
      espeak-data/voices/mb/mb-us3
  43. 13
    13
      phsource/compile_report
  44. 2
    0
      phsource/mbrola/af1
  45. 0
    1
      phsource/mbrola/cr1
  46. 1
    1
      phsource/mbrola/de4
  47. 1
    1
      phsource/mbrola/en1
  48. 1
    1
      phsource/mbrola/fr1
  49. 1
    1
      phsource/mbrola/gr2
  50. 0
    1
      phsource/mbrola/hu1
  51. 0
    1
      phsource/mbrola/id1
  52. 1
    0
      phsource/mbrola/it3
  53. 2
    0
      phsource/mbrola/pt1
  54. 2
    0
      phsource/mbrola/ptbr
  55. 1
    1
      phsource/mbrola/sv
  56. 1
    1
      phsource/mbrola/sv2
  57. 31
    0
      phsource/ph_german
  58. 1
    1
      phsource/phonemes
  59. 16
    3
      src/dictionary.cpp
  60. 3
    5
      src/phoneme.h
  61. 34
    14
      src/synth_mbrola.cpp
  62. 1
    1
      src/synthdata.cpp
  63. 2
    2
      src/synthesize.cpp
  64. 1
    1
      src/synthesize.h
  65. 20
    3
      src/translate.cpp
  66. 1
    0
      src/translate.h
  67. 1
    1
      src/wavegen.cpp

+ 6
- 2
dictsource/de_list View File

_] 'EkIg@kl'am3||ts'u: _] 'EkIg@kl'am3||ts'u:
_< klaIn3 _< klaIn3
_> grY:s3 _> grY:s3
_« 'anfy:RUNsts,aIC@n
_» 'anfy:RUNsts,aIC@n||ts'u:
_` grA:v _` grA:v
_^ tsIrkUmflEks _^ tsIrkUmflEks
_— g@d'aNk@nStr,IC _— g@d'aNk@nStr,IC
sondern $pause sondern $pause
denn dEn $u+ $pause denn dEn $u+ $pause
weil $pause weil $pause
als $u+ $brk
als als $u+ $brk
bevor b@fo:r $2 $pause bevor b@fo:r $2 $pause
also $pause also $pause
wenn ,vEn $pause $strend wenn ,vEn $pause $strend
war %vA:r $only war %vA:r $only
warst %vA:rst $only warst %vA:rst $only
wart %vA:rt $only wart %vA:rt $only
waren 'vA:r@n
waren %vA:r@n


will %vIl $only will %vIl $only
willst %vIlst $only willst %vIlst $only


changier SaNZ'i:r changier SaNZ'i:r
ciao tSaU ciao tSaU
clique kli:k@
coup ku: coup ku:


dahlie $alt dahlie $alt
erst e:rst erst e:rst
ersten e:rst@n ersten e:rst@n
erstmal e:rstma:l erstmal e:rstma:l
erzgebirg e:rtsg@bIrg
extravagant $1 extravagant $1
extrem Ekstr'e:m extrem Ekstr'e:m



+ 38
- 26
dictsource/de_rules View File

.L01 l r .L01 l r
.L02 c f h k p q s t z // unvoiced, except s+vowel .L02 c f h k p q s t z // unvoiced, except s+vowel
.L03 a ä .L03 a ä
.L04 o ö




// This file is UTF-8 encoded // This file is UTF-8 encoded
a (CC a a (CC a
a (sch a a (sch a
a (x a a (x a
a (ph A:
&CC) a (_ =A: &CC) a (_ =A:


ai aI ai aI
.group b .group b
_) b (_ be: _) b (_ be:
_) b (L01A b // allow bl br at start of word _) b (L01A b // allow bl br at start of word
_) b (jA b // allow bj
b b b b
b) b b) b
b (_N p b (_N p
b (L02 p b (L02 p
blich plIC
b (sA b b (sA b
bt (_N pt bt (_N pt


c) c c) c
ck k ck k


_) c (el S
_) c (el ts
fa) c (et ts fa) c (et ts
_) cey tsaI _) cey tsaI
chef (_ SEf chef (_ SEf
d) d d) d
d (_N t d (_N t
d (L02 t d (L02 t
dlich tlIC
d (sA d d (sA d
ds (_ ts ds (_ ts
dt t dt t
e (CC E e (CC E
e (sch E e (sch E
e (x E e (x E
e (ph e:


ei aI ei aI
eu OY eu OY
h) ee (_ 'e: h) ee (_ 'e:
_) e (ff %E _) e (ff %E
l) e (g_ 'e: l) e (g_ 'e:
kr) e (ier e:
eih (_ aI eih (_ aI
_) eil (aP3 'aIl _) eil (aP3 'aIl
_) eil (fP3 'aIl _) eil (fP3 'aIl
g (g g (g
g (_N k g (_N k
g (L02 k g (L02 k
glich klIC
g (sA g g (sA g
gd (_N kt gd (_N kt
_) gh (A g _) gh (A g
ungs) ge (C@ g@ ungs) ge (C@ g@
_) ge (beX ge: _) ge (beX ge:
geben ge:b@n geben ge:b@n
ge(birg g@
gebirge (_S7 g@bIrg@
_) gegen (@P5 ge:g@n _) gegen (@P5 ge:g@n
gegen ge:g@n gegen ge:g@n
gegn ge:gn gegn ge:gn
i (CC I i (CC I
i (sch I i (sch I
i (x I i (x I
i (ph i:


@) i (ng I @) i (ng I
&CC) i (_ =i: &CC) i (_ =i:
_) leit (@P4 l'aIt _) leit (@P4 l'aIt
_) lern (@@P4 l'Ern _) lern (@@P4 l'Ern
_) lexi (@ lEksi: _) lexi (@ lEksi:
&) lich (_S4 lIC
&) liche (_S5 lIC@
&) lichem (_S6 lIC@m
&) lichen (_S6 lIC@n
&) licher (_S6 lIC3
&) liches (_S6 lIC@s
&) lichere (_S7 lIC@r@
&) licherem (_S8 lIC@r@m
&) licheren (_S8 lIC@r@n
&) licherer (_S8 lIC@r@3
&) licheres (_S8 lIC@r@s
&) lichste (_S7 lICst@
&) lichstem (_S8 lICst@m
&) lichsten (_S8 lICst@n
&) lichster (_S8 lICst@r
&) lichstes (_S8 lICst@s
&) lichkeit (_S8 lICkaIt
&) lichung (_S7 lIC%UN
&) lich (_S4 l2IC // [l2] means devoice previous consonant
&) liche (_S5 l2IC@
&) lichem (_S6 l2IC@m
&) lichen (_S6 l2IC@n
&) licher (_S6 l2IC3
&) liches (_S6 l2IC@s
&) lichere (_S7 l2IC@r@
&) licherem (_S8 l2IC@r@m
&) licheren (_S8 l2IC@r@n
&) licherer (_S8 l2IC@r@3
&) licheres (_S8 l2IC@r@s
&) lichste (_S7 l2ICst@
&) lichstem (_S8 l2ICst@m
&) lichsten (_S8 l2ICst@n
&) lichster (_S8 l2ICst@r
&) lichstes (_S8 l2ICst@s
&) lichkeit (_S8 l2ICkaIt
&) lichung (_S7 l2IC%UN
@) lo (gisch l'o: @) lo (gisch l'o:
_) luft (CP4 l'Uft _) luft (CP4 l'Uft


&) ness (_N _^_EN &) ness (_N _^_EN
news _^_EN news _^_EN
nieder ni:d3 nieder ni:d3
nord (L04st n%Ort
nord (west n%Ort


.group o .group o
_) o (_ o: _) o (_ o:
o (CC O o (CC O
o (sch O o (sch O
o (x O o (x O
o (ph o:
&CC) o (_ =o: &CC) o (_ =o:
o (Co_ 'o: o (Co_ 'o:
o (lo_ o: o (lo_ o:
_) peri p,e:ri: _) peri p,e:ri:
_) perio p,e:rIo: _) perio p,e:rIo:
_) periphe p,e:ri:fe: _) periphe p,e:ri:fe:
_) personen (@P8 pErs'o:n@n
_) personen (@P8 pErz'o:n@n
person p%Erzo:n
philie f'i:li: philie f'i:li:
_) photo f,o:to: _) photo f,o:to:
_) pro (@ %pro: _) pro (@ %pro:
q k q k
qu kv qu kv
@) que (_ =k @) que (_ =k
@) quen (_ =k@n




.group r .group r
&C) sten (_S4 st@n &C) sten (_S4 st@n
&C) ster (_S4 st3 &C) ster (_S4 st3
&C) stes (_S4 st@s &C) stes (_S4 st@s
&n) st (_ st // needs more work


_be) st St _be) st St
_ge) st St _ge) st St
@) straße (_S6 str,A:s@ @) straße (_S6 str,A:s@
_) street _^_EN _) street _^_EN
style _^_EN style _^_EN
süd (L04st z%y:t
süd (west z%y:t
synthesi _^_EN synthesi _^_EN
system z%Iste:m
system z%yste:m
s (system s




.group t .group t
$ dOl'A: $ dOl'A:


__) - (_D mi:nUs __) - (_D mi:nUs
D_) - (_D daS
D_) - (_D StrIC
_) - (_D _ _) - (_D _



+ 8
- 7
dictsource/dict_phonemes View File

s2 t t2 tS ts v z Z s2 t t2 tS ts v z Z




Dictionary de_dict 2011-05-14
Dictionary de_dict 2011-05-23


3 @ @- a A A: aI aU 3 @ @- a A A: aI aU
A~ E E2 E: e: EI i I A~ E E2 E: e: EI i I
u: W y y: Y: u: W y y: Y:


* : ; b C d D dZ * : ; b C d D dZ
f g g# h j k l m
n N p pF r s S t
tS ts v w x z Z
f g g# h j k l l2
m n N p pF r R s
S t tS ts v w x z
Z




Dictionary el_dict 2011-05-19 Dictionary el_dict 2011-05-19
ts v x z ts v x z




Dictionary en_dict 2011-05-18
Dictionary en_dict 2011-05-24


0 3 3: @ @- @2 @5 @L 0 3 3: @ @- @2 @5 @L
a a# A: A@ aa aI aI@ aU a a# A: A@ aa aI aI@ aU
s2 t v w Z s2 t v w Z




Dictionary fr_dict 2011-04-15
Dictionary fr_dict 2011-05-21


@ @- a A~ e E E: E~ @ @- a A~ e E E: E~
i I o O O~ u u: w i I o O O~ u u: w
t. th th. v w x z t. th th. v w x z




Dictionary ta_dict 2011-05-08
Dictionary ta_dict 2011-05-23


a a: aI aU e E e: i a a: aI aU e E e: i
I i: o o: u U u2 u: I i: o o: u U u2 u:

+ 142
- 138
dictsource/en_list
File diff suppressed because it is too large
View File


+ 1
- 1
dictsource/fr_list View File

/
// *************************************************************************** // ***************************************************************************
// * Copyright (C) 2005 to 2010 by Jonathan Duddington * // * Copyright (C) 2005 to 2010 by Jonathan Duddington *
// * email: [email protected] * // * email: [email protected] *

+ 9
- 2
dictsource/fr_rules View File

// French translation rules for Espeak // French translation rules for Espeak


// *************************************************************************** // ***************************************************************************
// * Copyright (C) 2005 to 2010 by Jonathan Duddington *
// * Copyright (C) 2005 to 2011 by Jonathan Duddington *
// * email: [email protected] * // * email: [email protected] *
// * * // * *
// * This program is free software; you can redistribute it and/or modify * // * This program is free software; you can redistribute it and/or modify *
// http://www.fluxnic.net/cicero // http://www.fluxnic.net/cicero
// //
// Rules are now maintained by Michel Such <[email protected]> // Rules are now maintained by Michel Such <[email protected]>
// Last update: 2011-04-15 Michel Such <[email protected]>
// Last update: 2011-05-20 Michel Such <[email protected]>
// //


// Letter classes: // Letter classes:
.L14 be in up ut .L14 be in up ut
.L15 c f g h .L15 c f g h


// Hours
.L16 0 1 2 3 4 5 6 7 8 9 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23

// Minutes
.L17 0 1 2 3 4 5





.group a .group a


// symbols that are normally spoken when reading text // symbols that are normally spoken when reading text
// , (D pilk:u // , (D pilk:u
_L16_) : (_L17D_ Wr // Say time
$ dOlar $ dOlar
° d@gre ° d@gre
_n_) ° // n° _n_) ° // n°

+ 3
- 0
dictsource/ta_list View File

போரடிக்காம $alt போரடிக்காம $alt
பரத் $alt பரத் $alt
பாஷா $alt பாஷா $alt
பூட் $alt
படுக $alt
படுகா $alt
(பி . ஏ) bije: (பி . ஏ) bije:





+ 42
- 0
dictsource/ta_rules View File

_) க (ந்தர்வ gV _) க (ந்தர்வ gV
_) க (னக்க gV _) க (னக்க gV
_) க (னத் gV _) க (னத் gV
_) க (னபாடி gV
_) க (னம gV _) க (னம gV
_) கப் (L04ா gVp _) கப் (L04ா gVp
_) கப்ச (ிப் gVptS _) கப்ச (ிப் gVptS
_) க (ானா g _) க (ானா g
க (ாரன k க (ாரன k
க (ாரர k க (ாரர k
_) க (ார்டன g
_) க (ிடுகிடு g _) க (ிடுகிடு g
_) க (ின்னஸ g _) க (ின்னஸ g
_) க (ின்னென்ற g _) க (ின்னென்ற g
_) கி (ளாL04ை k _) கி (ளாL04ை k
_) கி (ளாஸ்_ g _) கி (ளாஸ்_ g
_) கிளிட kl.it.V# _) கிளிட kl.it.V#
_) கிளிண்ட (ன klint.V
_) கி (ளினிக் k _) கி (ளினிக் k
_) கிளிப் (_ kl.ip _) கிளிப் (_ kl.ip
_) கி (ளிப்பில k _) கி (ளிப்பில k
_தாலு) க (ா k _தாலு) க (ா k
_ராதி) க (ா k _ராதி) க (ா k
_லங்) க (ா k _லங்) க (ா k
ஆஷி) க (ா k
இலா) க (ா k இலா) க (ா k
_கீர்த்தி) க (ா k _கீர்த்தி) க (ா k
_கேஷி) க (ா k
_தாலூ) க (ா k _தாலூ) க (ா k
_தேவி) க (ா k _தேவி) க (ா k
_யுரே) க (ா k _யுரே) க (ா k
_மௌனி) க (ா k _மௌனி) க (ா k
_ஸ்ரீலங்) க (ா k _ஸ்ரீலங்) க (ா k
_ஹன்L04ி) க (ா k _ஹன்L04ி) க (ா k
அனாமி) க (ா k
_ஹாங்) க (ாங் k _ஹாங்) க (ாங் k
_தென்) க (ாசி k _தென்) க (ாசி k
_நேர்) க (ாணல k _நேர்) க (ாணல k
ச (ந்திர tSV ச (ந்திர tSV
_ஹட்) ச (ன sV _ஹட்) ச (ன sV
_வாட்) ச (ன sV _வாட்) ச (ன sV
_டேவிட்) ச (ன sV
_) ச (ப்பா tSV _) ச (ப்பா tSV
_) ச (ப்பி tSV _) ச (ப்பி tSV
_) ச (ப்பு tSV _) ச (ப்பு tSV
_) ச (ேலஞ் tS _) ச (ேலஞ் tS
_) ச (ேஷ்டை tS _) ச (ேஷ்டை tS
_) ச (ைத்திய tS _) ச (ைத்திய tS
_) ச (ைனா tS
_) ச (ைனா_நேவால s
_) ச (ைனாவ tS _) ச (ைனாவ tS
_) ச (ைனீஸ tS _) ச (ைனீஸ tS
_) ச (ௌதரி tS _) ச (ௌதரி tS


//sort //sort


_வால்) ட t.V#
_கமெண்) ட t.V# _கமெண்) ட t.V#
_ரிப்போர்) ட t.V# _ரிப்போர்) ட t.V#
அL04ால்) ட t.V# அL04ால்) ட t.V#
ங்) ட (ன t.V // -ington ங்) ட (ன t.V // -ington
_நியூ) ட (ன t.V _நியூ) ட (ன t.V
_மில்) ட (ன t.V _மில்) ட (ன t.V
_) ட (னல t.V
_) ட (ன் t.V _) ட (ன் t.V
_) ட (ப்_ t.V _) ட (ப்_ t.V
_) டப்ப (ில t.Vbb _) டப்ப (ில t.Vbb
_) ட (யரு t.V _) ட (யரு t.V
_) ட (யர் t.V _) ட (யர் t.V
_ப்ரிண்) ட (ர t.V _ப்ரிண்) ட (ர t.V
_ஷெல்) ட (ர t.V
_ஸ்கூ) ட (ர t.V _ஸ்கூ) ட (ர t.V
என்கவுண்) ட (ர t.V என்கவுண்) ட (ர t.V
என்கௌண்) ட (ர t.V என்கௌண்) ட (ர t.V
_டியூ) ட (ி t. _டியூ) ட (ி t.
_ட்யூ) ட (ி t. _ட்யூ) ட (ி t.
_சேஃப்) ட (ி t. _சேஃப்) ட (ி t.
_பேண்) ட (ி t.
_ராயல்) ட (ி t. _ராயல்) ட (ி t.
_க்வாலி) ட (ி t. _க்வாலி) ட (ி t.
_நாவல்) ட (ி t. _நாவல்) ட (ி t.
_) டி (யூசன t. _) டி (யூசன t.
_) டியூட (ி d.jU:t. _) டியூட (ி d.jU:t.
_) டி (யூன t. _) டி (யூன t.
_) டி (யூப t.
_) டி (யூஷன t. _) டி (யூஷன t.
_) டி (ரங் t. _) டி (ரங் t.
_) டி (ரங்கு t. _) டி (ரங்கு t.
_) டி (ரெயின t. _) டி (ரெயின t.
_) டி (ரெய்லர t. _) டி (ரெய்லர t.
_) டி (ரெஸ d. _) டி (ரெஸ d.
இண்) டி (ரெஸ்ட t.
_) டிரேயின (ை t.re:jn _) டிரேயின (ை t.re:jn
_) டி (ரை_ d. _) டி (ரை_ d.
_) டி (ரை_செஞ்ச t. _) டி (ரை_செஞ்ச t.
_) டோரண்ட (ோ t.o:rVn.t. _) டோரண்ட (ோ t.o:rVn.t.
_ப்ரி) ட (ோரிய t. _ப்ரி) ட (ோரிய t.
@மெண்) ட் t. // -ment @மெண்) ட் t. // -ment
_பேண்) ட் t.
இண்டர்நெ) ட் t. இண்டர்நெ) ட் t.
_ல) ட்ட d.d.V# _ல) ட்ட d.d.V#
_ரெ) ட்ட (ியா d.d. _ரெ) ட்ட (ியா d.d.
அப்பாயிண்) ட்மெண்ட t.men.t.V# அப்பாயிண்) ட்மெண்ட t.men.t.V#
_) ட் (யூசன t. _) ட் (யூசன t.
_) ட் (யூன t. _) ட் (யூன t.
_) ட் (யூப t.
ஸ்) ட் (ர _|t. // ?? make t. distinct ஸ்) ட் (ர _|t. // ?? make t. distinct
_) ட் (ரங் t. _) ட் (ரங் t.
_) ட் (ரங்கு t. _) ட் (ரங்கு t.
_) ட் (ராலி t. _) ட் (ராலி t.
_) ட் (ராவல t. _) ட் (ராவல t.
_) ட் (ராவெல t. _) ட் (ராவெல t.
எண்) ட் (ரி t.
_) ட்ரிக (ர t.riggV _) ட்ரிக (ர t.riggV
_) ட்ரிக் t.rik _) ட்ரிக் t.rik
_) ட்ரிக்க (ர t.riggV _) ட்ரிக்க (ர t.riggV
_போ) ட் (ரு t. _போ) ட் (ரு t.
_) ட்ரெயி (லர t.rej _) ட்ரெயி (லர t.rej
_) ட் (ரெய்லர t. _) ட் (ரெய்லர t.
இண்) ட் (ரேஸ்ட t.
_) ட் (ரை_செஞ்ச t. _) ட் (ரை_செஞ்ச t.
_) ட் (ரை_செய் t. _) ட் (ரை_செய் t.
_) ட் (ரை_பண் t. _) ட் (ரை_பண் t.
_) த (டிமாட dV _) த (டிமாட dV
_) த (டியன dV _) த (டியன dV
_) த (டியர dV _) த (டியர dV
_) த (டியான dV
_) த (ட்சசீல dV _) த (ட்சசீல dV
_) த (ட்சன dV _) த (ட்சன dV
_) த (ட்சிண dV _) த (ட்சிண dV
_) த (ேச d _) த (ேச d
_) த (ேவகான d _) த (ேவகான d
_) த (ேவகி d _) த (ேவகி d
_) த (ேவகுரு d
_) த (ேவகுல d _) த (ேவகுல d
_) த (ேவக் d _) த (ேவக் d
_) த (ேவசேன d _) த (ேவசேன d
_பிர) த (ீ t _பிர) த (ீ t
த (ுறை t த (ுறை t
வீண்) த (ேவை t வீண்) த (ேவை t
_நிவேதி) த (ை t
வீண்) த (ொல்லை t வீண்) த (ொல்லை t
அம்பே) த்க tkV# அம்பே) த்க tkV#
யு) த்த ddV# யு) த்த ddV#
வி) த்த (ையால்_ dd வி) த்த (ையால்_ dd
வி) த்த (ையி dd வி) த்த (ையி dd
வி) த்த (ையை dd வி) த்த (ையை dd
_ஜெ) த் (மலானி t
ச) த (்ய t ச) த (்ய t
நி) த (்ய t நி) த (்ய t
இ) த் (யாதி t இ) த் (யாதி t
_) ப (ச்சன bV _) ப (ச்சன bV
_) ப (ச்சான bV _) ப (ச்சான bV
_) ப (ஜ bV _) ப (ஜ bV
_) ப (டுகாக்கள bV
_) ப (டுகாவ bV
_) ப (ட்சண bV _) ப (ட்சண bV
_) ப (ட்சிக்க bV _) ப (ட்சிக்க bV
_) ப (ட்சிப்ப bV _) ப (ட்சிப்ப bV
_) ப (ர்கர bV _) ப (ர்கர bV
_) ப (ர்த் bV _) ப (ர்த் bV
_) ப (ர்னாலா bV _) ப (ர்னாலா bV
_) பர்னிச (ர fVrnitSV
_) ப (ர்னிச்சர fV
_) ப (ர்மா bV _) ப (ர்மா bV
_) ப (ர்லாங் fV _) ப (ர்லாங் fV
_) ப (லகீன bV _) ப (லகீன bV
_) ப (ாமாவ b _) ப (ாமாவ b
_) ப (ாமினி b _) ப (ாமினி b
_) ப (ாம்பே b _) ப (ாம்பே b
_ஆடு_) ப (ாம்பே p
_விளையாடு_) ப (ாம்பே p
_) ப (ாரத b _) ப (ாரத b
_) ப (ாரதி b _) ப (ாரதி b
_) ப (ாரத்த b _) ப (ாரத்த b
_) ப (ாரம b _) ப (ாரம b
_) ப (ாரம்பரிய p _) ப (ாரம்பரிய p
_) ப (ாரவி b
_) ப (ாராமுல்லா b _) ப (ாராமுல்லா b
_) ப (ாரிஸ்டர b _) ப (ாரிஸ்டர b
_) ப (ார்L04லோனா b _) ப (ார்L04லோனா b
_) ப (ிட்டடி b _) ப (ிட்டடி b
_) ப (ினாமி b _) ப (ினாமி b
_) ப (ினிஷ f _) ப (ினிஷ f
_) பின் (_லேடன b
_) ப (ின்லாந்த f _) ப (ின்லாந்த f
_) பிப (ி bip _) பிப (ி bip
_) ப (ிபிசி b // bbc _) ப (ிபிசி b // bbc
_) பி (ராண்ட p _) பி (ராண்ட p
_) பி (ராண்ட்_ b _) பி (ராண்ட்_ b
_) பி (ராதித் p _) பி (ராதித் p
_) பி (ராத்தல b
_) பி (ராந்தி_ b _) பி (ராந்தி_ b
_) பி (ராந்தியங் p _) பி (ராந்தியங் p
_) பி (ராந்தியத் p _) பி (ராந்தியத் p
_) பி (ரிஸ்டல b _) பி (ரிஸ்டல b
_) பிரிஸ்ப (ேன brisb _) பிரிஸ்ப (ேன brisb
_) பிரு (கன்நளை bri _) பிரு (கன்நளை bri
_) பி (ருகு b
_) பிரு (ந்தா bri _) பிரு (ந்தா bri
_) பிரெஞ்ச fren^tSV# _) பிரெஞ்ச fren^tSV#
_) பிரெட்ரிக் fred.rik _) பிரெட்ரிக் fred.rik
_) பி (ரைல b _) பி (ரைல b
_) பி (ரோகிதர p _) பி (ரோகிதர p
_) பி (ரௌச b _) பி (ரௌச b
_) பி (ரௌன b
_) ப (ில்டப் b
_) ப (ில்டிங் b _) ப (ில்டிங் b
_) ப (ில்லியன b _) ப (ில்லியன b
_) பி (ளவுஸ b _) பி (ளவுஸ b
_) ப (ேகத் b _) ப (ேகத் b
_) ப (ேகம b _) ப (ேகம b
_) ப (ேக்கரி b _) ப (ேக்கரி b
_) ப (ேங்க் b
_) ப (ேச்சலர b _) ப (ேச்சலர b
_) ப (ேச்சிலர b _) ப (ேச்சிலர b
_) ப (ேச்சுலர b _) ப (ேச்சுலர b
_) ப (ொம்மன b _) ப (ொம்மன b
_) ப (ொம்மல b _) ப (ொம்மல b
_) ப (ொம்மை b _) ப (ொம்மை b
_) ப (ோஃபோர் b
_) ப (ோக_L11 b _) ப (ோக_L11 b
_) ப (ோகங்க b _) ப (ோகங்க b
_) ப (ோகத்த b _) ப (ோகத்த b
_) ப (ோன்கள f _) ப (ோன்கள f
_) ப (ோன்ஸ்லே b _) ப (ோன்ஸ்லே b
_) போப (ால bo:p _) போப (ால bo:p
_) போப (ோர் bo:f
_) ப (ோரடிக்காமலா b _) ப (ோரடிக்காமலா b
_) ப (ோரடிக்குத b _) ப (ோரடிக்குத b
_) ப (ோரடிக்கும b _) ப (ோரடிக்கும b
_) ப் (ரவுச b _) ப் (ரவுச b
_) ப் (ரஷ் b _) ப் (ரஷ் b
_) ப் (ரஸல்ஸ b _) ப் (ரஸல்ஸ b
_) ப் (ராத்தல b
_) ப் (ரான்சிஸ்க f _) ப் (ரான்சிஸ்க f
_) ப் (ரான்ஸ f _) ப் (ரான்ஸ f
_) ப் (ராவ b _) ப் (ராவ b
_) ப் (ரோக்கர b _) ப் (ரோக்கர b
_) ப்ரோட (ான pro:t _) ப்ரோட (ான pro:t
_) ப் (ரௌச b _) ப் (ரௌச b
_) ப் (ரௌன b
_) ப் (ளவுஸ b _) ப் (ளவுஸ b
_) ப் (ளோரிடா f _) ப் (ளோரிடா f
_) ப் (ளௌஸ b _) ப் (ளௌஸ b
கண்டு) ப (ிடி p கண்டு) ப (ிடி p
திமிர்) ப (ிடி p திமிர்) ப (ிடி p
ராவல்) ப (ிண்டி p ராவல்) ப (ிண்டி p
_டால்) ப (ின f
ஒ) ப (ினியன p ஒ) ப (ினியன p
அன்) ப (ின் b அன்) ப (ின் b
_பண்) ப (ின் b _பண்) ப (ின் b
இ (ரசிக்க இ (ரசிக்க
இ (ரசித்த இ (ரசித்த
இ (ரத்த இ (ரத்த
இரப்ப (ர irVbbV
இ (ரயில இ (ரயில
இ (ராக இ (ராக
இ (ராச இ (ராச

+ 0
- 8
espeak-data/voices/grc View File

name greek-ancient
language grc
gender male

stressLength 170 170 190 190 0 0 230 240
dictrules 1
words 3


+ 0
- 3
espeak-data/voices/jbo View File

name lojban
language jbo


+ 2
- 0
espeak-data/voices/mb/mb-br1 View File

language pt 7 language pt 7
name brazil-mbrola-1 name brazil-mbrola-1
gender male gender male

pitch 82 117 pitch 82 117
voicing 80


dictrules 2 3 4 dictrules 2 3 4



+ 2
- 1
espeak-data/voices/mb/mb-br3 View File

language pt 7 language pt 7
name brazil-mbrola-3 name brazil-mbrola-3
gender male gender male
pitch 82 117
pitch 80 120


dictrules 2 3 4 dictrules 2 3 4
voicing 120


mbrola br3 ptbr_phtrans mbrola br3 ptbr_phtrans



+ 2
- 0
espeak-data/voices/mb/mb-br4 View File

language pt 7 language pt 7
name brazil-mbrola-4 name brazil-mbrola-4
gender female gender female

pitch 140 220 pitch 140 220
voicing 80


dictrules 2 3 4 dictrules 2 3 4



+ 1
- 0
espeak-data/voices/mb/mb-cr1 View File

dictionary hbs dictionary hbs
dictrules 1 dictrules 1


voicing 150
pitch 82 117 pitch 82 117
mbrola cr1 cr1_phtrans mbrola cr1 cr1_phtrans

+ 1
- 0
espeak-data/voices/mb/mb-de2 View File

name german-mbrola-2 name german-mbrola-2
language de 6 language de 6
gender male gender male
voicing 80


mbrola de2 de2_phtrans mbrola de2 de2_phtrans



+ 2
- 0
espeak-data/voices/mb/mb-de4 View File

language de 6 language de 6
gender male gender male


voicing 130

mbrola de4 de4_phtrans mbrola de4 de4_phtrans



+ 2
- 0
espeak-data/voices/mb/mb-de4-en View File

language en 9 language en 9
gender male gender male


voicing 130

mbrola de4 de4_phtrans mbrola de4 de4_phtrans



+ 1
- 0
espeak-data/voices/mb/mb-de7 View File

language de 7 language de 7
gender female gender female


voicing 150
pitch 140 220 pitch 140 220
mbrola de7 de6_phtrans 22050 mbrola de7 de6_phtrans 22050



+ 1
- 0
espeak-data/voices/mb/mb-en1 View File

language en 2 language en 2
gender male gender male


voicing 150
pitch 82 117 pitch 82 117
mbrola en1 en1_phtrans mbrola en1 en1_phtrans

+ 2
- 0
espeak-data/voices/mb/mb-fr1 View File

dictrules 1 dictrules 1
stressLength 180 180 180 180 0 0 220 220 stressLength 180 180 180 180 0 0 220 220
pitch 82 117 pitch 82 117
voicing 70

mbrola fr1 fr1_phtrans mbrola fr1 fr1_phtrans



+ 1
- 0
espeak-data/voices/mb/mb-fr1-en View File



dictrules 1 dictrules 1
pitch 82 117 pitch 82 117
voicing 70
mbrola fr1 fr1_phtrans mbrola fr1 fr1_phtrans



+ 1
- 0
espeak-data/voices/mb/mb-fr4 View File



dictrules 1 dictrules 1
pitch 140 220 pitch 140 220
voicing 90
mbrola fr1 fr1_phtrans mbrola fr1 fr1_phtrans



+ 1
- 0
espeak-data/voices/mb/mb-fr4-en View File



dictrules 1 dictrules 1
pitch 140 220 pitch 140 220
voicing 90
mbrola fr1 fr1_phtrans mbrola fr1 fr1_phtrans



+ 1
- 0
espeak-data/voices/mb/mb-gr2 View File

gender male gender male


pitch 82 117 pitch 82 117
voicing 65
mbrola gr2 gr2_phtrans mbrola gr2 gr2_phtrans

+ 1
- 0
espeak-data/voices/mb/mb-gr2-en View File

gender male gender male


pitch 82 117 pitch 82 117
voicing 65
mbrola gr2 gr2_phtrans mbrola gr2 gr2_phtrans

+ 1
- 0
espeak-data/voices/mb/mb-hu1 View File

gender female gender female


pitch 140 220 pitch 140 220
voicing 160
mbrola hu1 hu1_phtrans mbrola hu1 hu1_phtrans

+ 1
- 0
espeak-data/voices/mb/mb-hu1-en View File

gender female gender female


pitch 140 220 pitch 140 220
voicing 160
mbrola hu1 hu1_phtrans mbrola hu1 hu1_phtrans

+ 1
- 0
espeak-data/voices/mb/mb-ic1 View File

language is 6 language is 6
gender male gender male


voicing 180
mbrola ic1 ic1_phtrans mbrola ic1 ic1_phtrans

+ 1
- 0
espeak-data/voices/mb/mb-id1 View File

gender male gender male


pitch 82 117 pitch 82 117
voicing 120
mbrola id1 id1_phtrans mbrola id1 id1_phtrans



+ 1
- 0
espeak-data/voices/mb/mb-it3 View File

gender male gender male


pitch 82 117 pitch 82 117
voicing 65
mbrola it3 it3_phtrans mbrola it3 it3_phtrans


replace 03 i I // final unstressed "i" replace 03 i I // final unstressed "i"

+ 1
- 0
espeak-data/voices/mb/mb-it4 View File

gender female gender female


pitch 140 220 pitch 140 220
voicing 60
mbrola it4 it3_phtrans mbrola it4 it3_phtrans


replace 03 i I // final unstressed "i" replace 03 i I // final unstressed "i"

+ 2
- 0
espeak-data/voices/mb/mb-nl2 View File

gender male gender male


pitch 82 117 pitch 82 117
voicing 130

mbrola nl2 nl_phtrans mbrola nl2 nl_phtrans



+ 2
- 0
espeak-data/voices/mb/mb-nl2-en View File

gender male gender male


pitch 82 117 pitch 82 117
voicing 130

mbrola nl2 nl_phtrans mbrola nl2 nl_phtrans



+ 1
- 0
espeak-data/voices/mb/mb-pl1 View File

gender female gender female


pitch 140 220 pitch 140 220
voicing 120
mbrola pl1 pl1_phtrans mbrola pl1 pl1_phtrans

+ 2
- 1
espeak-data/voices/mb/mb-pt1 View File

language pt 7 language pt 7
name portugal-mbrola-1 name portugal-mbrola-1
gender female gender female
pitch 140 220
pitch 145 240


dictrules 1 dictrules 1
voicing 70


mbrola pt1 pt1_phtrans mbrola pt1 pt1_phtrans



+ 2
- 0
espeak-data/voices/mb/mb-sw1 View File

gender male gender male


pitch 82 117 pitch 82 117
voicing 120

mbrola sw1 sv_phtrans mbrola sw1 sv_phtrans



+ 2
- 0
espeak-data/voices/mb/mb-sw1-en View File

gender male gender male


pitch 82 117 pitch 82 117
voicing 120

mbrola sw1 sv_phtrans mbrola sw1 sv_phtrans



+ 2
- 0
espeak-data/voices/mb/mb-sw2 View File

gender female gender female


pitch 140 220 pitch 140 220
voicing 130

mbrola sw2 sv2_phtrans mbrola sw2 sv2_phtrans



+ 2
- 0
espeak-data/voices/mb/mb-sw2-en View File

gender female gender female


pitch 140 220 pitch 140 220
voicing 130

mbrola sw2 sv2_phtrans mbrola sw2 sv2_phtrans



+ 2
- 0
espeak-data/voices/mb/mb-tr2 View File

gender female gender female


pitch 140 220 pitch 140 220
voicing 170

mbrola tr2 tr1_phtrans mbrola tr2 tr1_phtrans
dictrules 1 dictrules 1



+ 1
- 0
espeak-data/voices/mb/mb-us2 View File

stressLength 170 135 205 205 0 0 245 275 stressLength 170 135 205 205 0 0 245 275


pitch 82 117 pitch 82 117
voicing 80
mbrola us2 us_phtrans mbrola us2 us_phtrans

+ 1
- 0
espeak-data/voices/mb/mb-us3 View File



stressLength 170 135 205 205 0 0 245 275 stressLength 170 135 205 205 0 0 245 275


voicing 150
pitch 82 117 pitch 82 117
mbrola us3 us3_phtrans mbrola us3 us3_phtrans

+ 13
- 13
phsource/compile_report View File

en-wi 30 150 en-wi 30 150
af 39 136 af 39 136
cy 29 132 cy 29 132
de 37 138
de 41 139
eo 13 114 eo 13 114
jbo 2 114 jbo 2 114
nci 3 123 nci 3 123
[l/] fr [l/] fr
l/l_@ [l/3] base l/l_@ [l/3] base
[l/] fr [l/] fr
l/l@ [h†s] base
[l#] base
l/l@ [l#] base
[”¦] base
[l] fr [l] fr
[l/2] fr [l/2] fr
[K] nso [K] nso
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 [h†s] base
[l#] base
l/la [l#] base
[”¦] base
[l] fr [l] fr
[l/2] fr [l/2] fr
[K] nso [K] nso
[K] tn [K] tn
l/l_a [l/3] base l/l_a [l/3] base
[l/] fr [l/] fr
l/le [h†s] base
[l#] base
l/le [l#] base
[”¦] base
[l] fr [l] fr
[l/2] fr [l/2] fr
[K] nso [K] nso
[&:] 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 [h†s] base
[l#] base
l/li [l#] base
[”¦] base
[l] fr [l] fr
[l/2] fr [l/2] fr
[l] zh [l] zh
ll/_ll [L] bg ll/_ll [L] bg
l/l_long [l] base l/l_long [l] base
[l] fr [l] fr
l/lo [h†s] base
[l#] base
l/lo [l#] base
[”¦] base
[l/2] fr [l/2] fr
[K] nso [K] nso
[K] tn [K] tn
l^/l_rfx [l.] base l^/l_rfx [l.] base
[l] ru [l] ru
[l^] ru [l^] ru
l/lu [h†s] base
[l#] base
l/lu [l#] base
[”¦] base
[l] fr [l] fr
[l/2] fr [l/2] fr
[K] nso [K] nso

+ 2
- 0
phsource/mbrola/af1 View File

volume 16

0 l/2 NULL 0 l 0 l/2 NULL 0 l
0 l/ NULL 0 l 0 l/ NULL 0 l
0 r/ NULL 0 r 0 r/ NULL 0 r

+ 0
- 1
phsource/mbrola/cr1 View File

volume 16


0 l/2 NULL 0 l 0 l/2 NULL 0 l
0 l/ NULL 0 l 0 l/ NULL 0 l

+ 1
- 1
phsource/mbrola/de4 View File

0 O~ NULL 0 o~ 0 O~ NULL 0 o~


16 _| VWL 0 ? 16 _| VWL 0 ?
16 _! VWL 0 ?
//16 _! VWL 0 ?


// phonemes for English words // phonemes for English words
0 @L NULL 0 L 0 @L NULL 0 L

+ 1
- 1
phsource/mbrola/en1 View File

//volume 29
0 oU NULL 0 @U 0 oU NULL 0 @U
0 a# NULL 0 @ 0 a# NULL 0 @
0 @2 NULL 0 @ 0 @2 NULL 0 @

+ 1
- 1
phsource/mbrola/fr1 View File

volume 15
0 l/2 NULL 0 l 0 l/2 NULL 0 l
0 l/ NULL 0 l 0 l/ NULL 0 l
0 l2 NULL 0 l 0 l2 NULL 0 l

+ 1
- 1
phsource/mbrola/gr2 View File

volume 16
volume 15


0 l/2 NULL 0 l 0 l/2 NULL 0 l
0 l/ NULL 0 l 0 l/ NULL 0 l

+ 0
- 1
phsource/mbrola/hu1 View File

volume 32


0 l/2 NULL 0 l 0 l/2 NULL 0 l
0 l/ NULL 0 l 0 l/ NULL 0 l

+ 0
- 1
phsource/mbrola/id1 View File

volume 32


// CR1 doesn't like same phonemes twice // CR1 doesn't like same phonemes twice
0 e E 5 e _ 0 e E 5 e _

+ 1
- 0
phsource/mbrola/it3 View File

// for voices "it3" "it4" // for voices "it3" "it4"
volume 15


0 r/ NULL 0 r 0 r/ NULL 0 r
0 w/ NULL 0 w 0 w/ NULL 0 w

+ 2
- 0
phsource/mbrola/pt1 View File

volume 15

0 l/ NULL 0 w 0 l/ NULL 0 w
0 l/2 w 0 l 0 l/2 w 0 l
0 l/2 j 0 l 0 l/2 j 0 l

+ 2
- 0
phsource/mbrola/ptbr View File

volume 15

0 l/ NULL 0 w 0 l/ NULL 0 w
0 l/2 w 0 l 0 l/2 w 0 l
0 l/2 j 0 l 0 l/2 j 0 l

+ 1
- 1
phsource/mbrola/sv View File

0 aU@ NULL 70 A: u0 0 aU@ NULL 70 A: u0
0 T VWL 0 th 0 T VWL 0 th
0 T NULL 0 t 0 T NULL 0 t
0 D NULL 0 z
0 D NULL 0 d
0 w NULL 0 v 0 w NULL 0 v
0 z NULL 0 s 0 z NULL 0 s
0 tS NULL 50 t rs 0 tS NULL 50 t rs

+ 1
- 1
phsource/mbrola/sv2 View File

0 aU@ NULL 70 A: u0 0 aU@ NULL 70 A: u0
0 T VWL 0 th 0 T VWL 0 th
0 T NULL 0 t 0 T NULL 0 t
0 D NULL 0 z
0 D NULL 0 d
0 w NULL 0 v 0 w NULL 0 v
0 z NULL 0 s 0 z NULL 0 s
0 tS NULL 50 t s 0 tS NULL 50 t s

+ 31
- 0
phsource/ph_german View File

FMT(vnasal/aa_n4) FMT(vnasal/aa_n4)
endphoneme endphoneme



phoneme l2 // as [l] but devoice previous phoneme
liquid lengthmod 7
ChangePhoneme (l)
endphoneme

phoneme b
vcd alv frc sibilant
IF nextPh(l2) THEN
ChangePhoneme(p)
ENDIF
CALL base/b
endphoneme

phoneme d
vcd alv stop
IF nextPh(l2) THEN
ChangePhoneme(t)
ENDIF
CALL base/d
endphoneme

phoneme g
vcd vel stop
IF nextPh(l2) THEN
ChangePhoneme(k)
ENDIF
CALL base/g
endphoneme


// translate from English to German phonemes // translate from English to German phonemes
equivalents NULL // disable this table equivalents NULL // disable this table
0 O 0 O

+ 1
- 1
phsource/phonemes View File



phoneme || // End Word phoneme || // End Word
pause pause
lengthmod 1
lengthmod 9 // no effect
endphoneme endphoneme


phoneme _ // Short pause phoneme _ // Short pause

+ 16
- 3
src/dictionary.cpp View File



phon_out = *buf; phon_out = *buf;


if(ph->code == phonEND_WORD)
{
// ignore
phon_out[0] = 0;
return;
}

if(option_phonemes == 3) if(option_phonemes == 3)
{ {
// has an ipa name been defined for this phoneme ? // has an ipa name been defined for this phoneme ?
const char *word_end; const char *word_end;
const char *word1; const char *word1;
int wflags = 0; int wflags = 0;
int wflags2;
char word_buf[N_WORD_BYTES+1]; char word_buf[N_WORD_BYTES+1];


if(wtab != NULL) if(wtab != NULL)
skipwords = flag - 80; skipwords = flag - 80;


// don't use the contraction if any of the words are emphasized // don't use the contraction if any of the words are emphasized
for(ix=0; ix <= skipwords; ix++)
// or has an embedded command, such as MARK
if(wtab != NULL)
{ {
if(wflags & FLAG_EMPHASIZED2)
for(ix=0; ix <= skipwords; ix++)
{ {
condition_failed = 1;
if(wtab[ix].flags & FLAG_EMPHASIZED2)
// if(((wflags2 = wtab[ix].flags) & FLAG_EMPHASIZED2) || ((ix > 0) && (wflags2 & FLAG_EMBEDDED)))
{
condition_failed = 1;
}
} }
} }



+ 3
- 5
src/phoneme.h View File

#define phVOWEL2 0x100 // liquid that is considered a vowel #define phVOWEL2 0x100 // liquid that is considered a vowel
#define phPALATAL 0x200 #define phPALATAL 0x200
#define phSINGLE_INSTN 0x1000 // this phoneme has a single instruction program, with an implicit Return #define phSINGLE_INSTN 0x1000 // this phoneme has a single instruction program, with an implicit Return
#define phAPPENDPH 0x2000 // always insert another phoneme (link_out) after this one
#define phBRKAFTER 0x4000 // [*] add a post-pause #define phBRKAFTER 0x4000 // [*] add a post-pause
#define phBEFOREPAUSE 0x8000 // replace with the link_out phoneme if the next phoneme is a pause


#define phNONSYLLABIC 0x100000 // don't count this vowel as a syllable when finding the stress position #define phNONSYLLABIC 0x100000 // don't count this vowel as a syllable when finding the stress position
#define phLONG 0x200000 #define phLONG 0x200000
// main table of phonemes, index by phoneme number (1-254) // main table of phonemes, index by phoneme number (1-254)


typedef struct { typedef struct {
unsigned int mnemonic; // 1st char is in the l.s.byte
unsigned int mnemonic; // Up to 4 characters. The first char is in the l.s.byte
unsigned int phflags; // bits 16-19 place of articulation unsigned int phflags; // bits 16-19 place of articulation
unsigned short program;
unsigned short program; // index into phondata file
unsigned char code; // the phoneme number unsigned char code; // the phoneme number
unsigned char type; // phVOWEL, phPAUSE, phSTOP etc unsigned char type; // phVOWEL, phPAUSE, phSTOP etc
unsigned char start_type; unsigned char start_type;
unsigned char end_type; unsigned char end_type;
unsigned char std_length; // for vowels, in mS/2; for phSTRESS, the stress/tone type
unsigned char std_length; // for vowels, in mS/2; for phSTRESS phonemes, this is the stress/tone type
unsigned char length_mod; // a length_mod group number, used to access length_mod_tab unsigned char length_mod; // a length_mod group number, used to access length_mod_tab
} PHONEME_TAB; } PHONEME_TAB;

+ 34
- 14
src/synth_mbrola.cpp View File

if(GetFileLength(path) <= 0) if(GetFileLength(path) <= 0)
{ {
sprintf(path,"/usr/share/mbrola/%s",mbrola_voice); sprintf(path,"/usr/share/mbrola/%s",mbrola_voice);

if(GetFileLength(path) <= 0)
{
sprintf(path,"/usr/share/mbrola/%s/%s",mbrola_voice,mbrola_voice);

if(GetFileLength(path) <= 0)
{
sprintf(path,"/usr/share/mbrola/voices/%s",mbrola_voice);
}
}
} }
if(GetFileLength(path) <= 0)
{
sprintf(path,"/usr/share/mbrola/%s/%s",mbrola_voice,mbrola_voice);
}
if(GetFileLength(path) <= 0)
{
sprintf(path,"/usr/share/mbrola/voices/%s",mbrola_voice);
}
close_MBR();
#endif #endif
#ifdef PLATFORM_WINDOWS #ifdef PLATFORM_WINDOWS
if(load_MBR() == FALSE) // load mbrola.dll if(load_MBR() == FALSE) // load mbrola.dll
else else
len = (80 * speed.wav_factor)/256; len = (80 * speed.wav_factor)/256;


DoMarker(espeakEVENT_PHONEME, (p->sourceix & 0x7ff) + clause_start_char, 0, ph->mnemonic);
if(ph->code != phonEND_WORD)
DoMarker(espeakEVENT_PHONEME, (p->sourceix & 0x7ff) + clause_start_char, 0, ph->mnemonic);


ptr += sprintf(ptr,"%s\t",WordToString(name)); ptr += sprintf(ptr,"%s\t",WordToString(name));


} }




int MbrolaFill(int length, int resume)
{//===================================
// Read audio data from Mbrola (length is in milisecs)
int MbrolaFill(int length, int resume, int amplitude)
{//==================================================
// Read audio data from Mbrola (length is in millisecs)


static int n_samples; static int n_samples;
int req_samples, result; int req_samples, result;
int ix;
short value16;
int value;


if (!resume) if (!resume)
n_samples = samplerate * length / 1000; n_samples = samplerate * length / 1000;
result = read_MBR((short *)out_ptr, req_samples); result = read_MBR((short *)out_ptr, req_samples);
if (result <= 0) if (result <= 0)
return 0; return 0;
out_ptr += result*2;

for(ix=0; ix < result; ix++)
{
value16 = out_ptr[0] + (out_ptr[1] << 8);
value = value16 * amplitude;
value = value / 40; // adjust this constant to give a suitable amplitude for mbrola voices
if(value > 0x7fff)
value = 0x7fff;
if(value < -0x8000)
value = 0x8000;
out_ptr[0] = value;
out_ptr[1] = value >> 8;
out_ptr += 2;
}
n_samples -= result; n_samples -= result;
return n_samples ? 1 : 0; return n_samples ? 1 : 0;
} }
return(0); return(0);
} }


int MbrolaFill(int length, int resume)
int MbrolaFill(int length, int resume, int amplitude)
{ {
return(0); return(0);
} }

+ 1
- 1
src/synthdata.cpp View File

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


const char *version_string = "1.45.27 19.May.11";
const char *version_string = "1.45.28 24.May.11";
const int version_phdata = 0x014500; const int version_phdata = 0x014500;


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

+ 2
- 2
src/synthesize.cpp View File

// DoMarker(espeakEVENT_END, count_characters, 0, count_sentences); // end of clause // DoMarker(espeakEVENT_END, count_characters, 0, count_sentences); // end of clause


if(p->newword & 1) if(p->newword & 1)
DoMarker(espeakEVENT_WORD, sourceix, p->sourceix >> 11, clause_start_word + word_count++);
DoMarker(espeakEVENT_WORD, sourceix, p->sourceix >> 11, clause_start_word + word_count++); // NOTE, this count doesn't include multiple-word pronunciations in *_list. eg (of a)
} }


EndAmplitude(); EndAmplitude();
if(p->prepause > 0) if(p->prepause > 0)
DoPause(p->prepause,1); DoPause(p->prepause,1);


if(option_phoneme_events && (p->type != phVOWEL))
if(option_phoneme_events && (p->type != phVOWEL) && (p->ph->code != phonEND_WORD))
{ {
// Note, for vowels, do the phoneme event after the vowel-start // Note, for vowels, do the phoneme event after the vowel-start
DoMarker(espeakEVENT_PHONEME, sourceix, 0, p->ph->mnemonic); DoMarker(espeakEVENT_PHONEME, sourceix, 0, p->ph->mnemonic);

+ 1
- 1
src/synthesize.h View File

void SetParameter(int parameter, int value, int relative); void SetParameter(int parameter, int value, int relative);
int MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, int resume, FILE *f_mbrola); int MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, int resume, FILE *f_mbrola);
int MbrolaGenerate(PHONEME_LIST *phoneme_list, int *n_ph, int resume); int MbrolaGenerate(PHONEME_LIST *phoneme_list, int *n_ph, int resume);
int MbrolaFill(int length, int resume);
int MbrolaFill(int length, int resume, int amplitude);
void MbrolaReset(void); void MbrolaReset(void);
void DoEmbedded(int *embix, int sourceix); void DoEmbedded(int *embix, int sourceix);
void DoMarker(int type, int char_posn, int length, int value); void DoMarker(int type, int char_posn, int length, int value);

+ 20
- 3
src/translate.cpp View File

} while((embedded_cmd & 0x80) == 0); } while((embedded_cmd & 0x80) == 0);
} }


if(word[0] == 0)
if((word[0] == 0) || (word_flags & FLAG_DELETE_WORD))
{ {
// nothing to translate
// nothing to translate. Add a dummy phoneme to carry any embedded commands
if(embedded_flag)
{
ph_list2[n_ph_list2].phcode = phonEND_WORD;
ph_list2[n_ph_list2].stresslevel = 0;
ph_list2[n_ph_list2].wordstress = 0;
ph_list2[n_ph_list2].tone_ph = 0;
ph_list2[n_ph_list2].synthflags = embedded_flag;
ph_list2[n_ph_list2].sourceix = 0;
n_ph_list2++;
embedded_flag = 0;
}
word_phonemes[0] = 0; word_phonemes[0] = 0;
return(0); return(0);
} }
else else
{ {
pre_pause = 0; pre_pause = 0;

dict_flags = TranslateWord2(tr, word, &words[ix], words[ix].pre_pause, words[ix+1].pre_pause); dict_flags = TranslateWord2(tr, word, &words[ix], words[ix].pre_pause, words[ix+1].pre_pause);


if(pre_pause > words[ix+1].pre_pause) if(pre_pause > words[ix+1].pre_pause)


if(dict_flags & FLAG_SKIPWORDS) if(dict_flags & FLAG_SKIPWORDS)
{ {
ix += dictionary_skipwords; // dictionary indicates skip next word(s)
// dictionary indicates skip next word(s)
while(dictionary_skipwords > 0)
{
words[ix+dictionary_skipwords].flags |= FLAG_DELETE_WORD;
dictionary_skipwords--;
}
} }
} }



+ 1
- 0
src/translate.h View File

#define FLAG_COMMA_AFTER 0x20000 // comma after this word #define FLAG_COMMA_AFTER 0x20000 // comma after this word
#define FLAG_MULTIPLE_SPACES 0x40000 // word is preceded by multiple spaces, newline, or tab #define FLAG_MULTIPLE_SPACES 0x40000 // word is preceded by multiple spaces, newline, or tab
#define FLAG_INDIVIDUAL_DIGITS 0x80000 // speak number as individual digits #define FLAG_INDIVIDUAL_DIGITS 0x80000 // speak number as individual digits
#define FLAG_DELETE_WORD 0x100000 // don't speak this word, it has been spoken as part of the previous word


#define FLAG_SUFFIX_VOWEL 0x08000000 // remember an initial vowel from the suffix #define FLAG_SUFFIX_VOWEL 0x08000000 // remember an initial vowel from the suffix
#define FLAG_NO_TRACE 0x10000000 // passed to TranslateRules() to suppress dictionary lookup printout #define FLAG_NO_TRACE 0x10000000 // passed to TranslateRules() to suppress dictionary lookup printout

+ 1
- 1
src/wavegen.cpp View File

break; break;


case WCMD_MBROLA_DATA: case WCMD_MBROLA_DATA:
result = MbrolaFill(length, resume);
result = MbrolaFill(length, resume, (general_amplitude * wvoice->voicing)/64);
break; break;


case WCMD_FMT_AMPLITUDE: case WCMD_FMT_AMPLITUDE:

Loading…
Cancel
Save