Browse Source

[1.39.36]

*_list files: add attribute $max3 to limit repetitions of a symbol to 3.
-v command option, if the voice-name is not found, lookup using it as a language name.
Windows: allow longer path names for espeak-data.
-m option: Ignore text within <script> and <style> tags.
Reduce default pitch to 80-117.
WavegenCloseSound() check if there remain items to be spoken and re-open the sound channel.
Reduce voicing before voiced plosives.
Corrections to mbrola translation for lang=hi.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@205 d46cf337-b52f-0410-862d-fd96e6ae7743
master
jonsd 17 years ago
parent
commit
f90a4e369e
67 changed files with 1238 additions and 987 deletions
  1. 71
    62
      dictsource/dict_phonemes
  2. 21
    5
      dictsource/en_list
  3. 10
    26
      dictsource/en_rules
  4. 19
    10
      dictsource/eo_list
  5. 17
    20
      dictsource/eo_rules
  6. 20
    12
      dictsource/fr_list
  7. 8
    5
      dictsource/fr_rules
  8. 5
    1
      dictsource/hi_rules
  9. 9
    1
      dictsource/it_list
  10. 21
    59
      dictsource/it_rules
  11. 187
    186
      dictsource/pl_list
  12. 110
    102
      dictsource/pl_rules
  13. 4
    4
      dictsource/sw_list
  14. 3
    3
      dictsource/sw_rules
  15. 42
    10
      dictsource/vi_list
  16. 96
    88
      dictsource/vi_rules
  17. BIN
      phsource/b/xb
  18. 161
    111
      phsource/compile_report
  19. BIN
      phsource/d/xd
  20. BIN
      phsource/dzh/dz_pzd
  21. BIN
      phsource/dzh/dzh
  22. BIN
      phsource/dzh/xdz_pzd
  23. BIN
      phsource/dzh/xdzh
  24. 5
    5
      phsource/envelope/vi_5amp
  25. 10
    3
      phsource/envelope/vi_6amp
  26. BIN
      phsource/g/xg
  27. BIN
      phsource/g2/xg
  28. 8
    4
      phsource/mbrola/in1
  29. 2
    2
      phsource/ph_english_us
  30. 83
    66
      phsource/ph_hindi
  31. 1
    1
      phsource/ph_italian
  32. 10
    0
      phsource/ph_polish
  33. 0
    9
      phsource/ph_slovak
  34. 34
    31
      phsource/ph_vi
  35. 20
    4
      phsource/phonemes
  36. BIN
      phsource/vdiph/aai
  37. BIN
      phsource/vdiph/ai_4
  38. BIN
      phsource/vdiph/vowelchart.png
  39. BIN
      phsource/voc/Q_ulv
  40. BIN
      phsource/voc/zh
  41. BIN
      phsource/voc/zh_
  42. BIN
      phsource/vowel/@_2
  43. BIN
      phsource/vowel/V_7
  44. BIN
      phsource/vowel/a
  45. BIN
      phsource/vowel/a_5
  46. BIN
      phsource/vowel/e
  47. BIN
      phsource/vowel/i_4
  48. BIN
      phsource/vowel/o_2
  49. BIN
      phsource/vowel/u#_5
  50. BIN
      phsource/vowel/uu_4
  51. BIN
      phsource/vowel/vowelchart.png
  52. 61
    60
      platforms/windows/windows_cmd/src/speech.h
  53. 2
    2
      platforms/windows/windows_sapi/src/speech.h
  54. 3
    1
      src/compiledata.cpp
  55. 1
    0
      src/compiledict.cpp
  56. 51
    1
      src/dictionary.cpp
  57. 10
    4
      src/espeak.cpp
  58. 30
    9
      src/readclause.cpp
  59. 12
    5
      src/speak.cpp
  60. 7
    4
      src/speak_lib.cpp
  61. 1
    1
      src/synthdata.cpp
  62. 31
    21
      src/tr_languages.cpp
  63. 2
    1
      src/translate.cpp
  64. 4
    1
      src/translate.h
  65. 1
    1
      src/voice.h
  66. 15
    6
      src/voices.cpp
  67. 30
    40
      src/wavegen.cpp

+ 71
- 62
dictsource/dict_phonemes View File



& a a: a~ e E e~ i & a a: a~ e E e~ i
I i: i:~ i~ l- o O o: I i: i:~ i~ l- o O o:
o~ O~ r- U u u: u:~ u~
O~ o~ r- U u u: u:~ u~


* b B c C ch d d.
g h j J k kh l m
n N n. n^ p ph Q r
r. s S s. t t. t.h th
tS x z
* b B bh c C ch d
d. dh g gh h j J k
kh l m n N n. n^ p
ph Q r r. s S s. t
t. t.h th tS x z




Dictionary ca_dict Dictionary ca_dict


Dictionary fr_dict Dictionary fr_dict


@ @- @2 a A a2 A~ e
E E2 E~ i i: o O o2
O2 O~ u u: W W2 w^i wA
W~ y Y
@ @- @2 a a2 A~ e E
E2 E~ i i: o O o2 O2
O~ u u: W W2 w^i wA W~
y Y


: ; b d dZ f g h
j k l m n N n2 n^
p p2 r R r2 s S t
t2 t3 tS v w z Z z2
z3
: b d dZ f g h j
k l m n N n2 n^ p
p2 r R r2 s S t t2
t3 tS v w z Z z2 z3




Dictionary grc_dict Dictionary grc_dict


@ @- @2 @3 a a: aI aU @ @- @2 @3 a a: aI aU
e E e: E: E~ i I i: e E e: E: E~ i I i:
l- o O o: O: o~ O~ r-
l- o O o: O: O~ o~ r-
U u: u~ V U u: u~ V


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




Dictionary hu_dict Dictionary hu_dict
I i: o o: r- u u: V I i: o o: r- u u: V
y y


: b c ch d d. dZ f
g h j J k kh l l.
m n N n. n^ p ph R
R2 s S s. S; t t. t.h
th tS v w z
: b bh c ch d d. dh
dZ f g gh h j J k
kh l l. m n N n. n^
p ph R R2 s S s. S;
t t. t.h th tS v w z




Dictionary ko_dict Dictionary ko_dict
I i: o o: r- u u: V I i: o o: r- u u: V
y y


: b c ch d d. dZ f
g h j J k kh l l.
m n N n. n^ p ph R
R2 s s. S; t t. t.h th
tS v w z z.
: b bh c ch d d. dh
dZ f g gh h j J k
kh l l. m n N n. n^
p ph R R2 s s. S; t
t. t.h th tS v w z z.




Dictionary ne_dict Dictionary ne_dict


@ @/ @2 @3 a aI aU a~ @ @/ @2 @3 a aI aU a~
e E eI eU E~ e~ i I
i~ l- o O o: oI oU o~
O~ r- u uI u~ V VI VU
e E eI eU e~ E~ i I
i~ l- o O o: oI oU O~
o~ r- u uI u~ V VI VU
V~ V~


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




Dictionary nl_dict Dictionary nl_dict


Dictionary om_dict Dictionary om_dict


@# a a: E e I I# i:
O o: U u:
a A a# a: E e E# I
I# i: O O# o: U U# u:


** : a# b B c` d d`
** : b B c` d D d`
dZ f g h j k k` l dZ f g h j k k` l
m n n^ p p` R s S m n n^ p p` R s S
t t` tS v w z
s2 t t` tS v w z




Dictionary pl_dict Dictionary pl_dict


@- a E E# E~ i O O~
u y
a E E# E~ i O O~ u
y


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




Dictionary sq_dict Dictionary sq_dict


@ a A aI e E i O
u V y yE
@ @- @/ a A aI E e
eI i I I# O OI u V
y yE


* ** b c d D dZ f
g h j J k l ll m
n n^ p r R R2 s S
t T tS ts v w z Z
** b c d D dZ f g
h j J k l ll m n
n^ p r R R2 s S t
T tS ts v w z Z




Dictionary sv_dict Dictionary sv_dict


* : b d D f g h * : b d D f g h
j J k l m n N n^ j J k l m n N n^
p Q r s S t T tS
p Q R s S t T tS
v w x z v w x z




u@ uI y y@ yI u@ uI y y@ yI


b c d D f g h j b c d D f g h j
k kh l m n N n^ p
Q s t t[ ts; tS; v w
x z Z z;
J k kh l m n N n^
p Q r s s. t t[ ts;
tS; v w x z Z z.




Dictionary zh_dict Dictionary zh_dict
uo y y& y@ yE yi yu uo y y& y@ yE yi yu


(u) ; C f h j k kh (u) ; C f h j k kh
l m n N p ph r s
s. S; t th ts ts. ts. tS;
tS; tsh v w x X z.
l m n N p ph q r
s s. S; t th ts ts. ts.
tS; tS; tsh v w x X z.




Dictionary zhy_dict Dictionary zhy_dict
b c d f g h j k b c d f g h j k
l m n N p r s t l m n N p r s t
tS v w z tS v w z


Dictionary ga_dict

a A: E e: I O

b c C d k l r v
w x

+ 21
- 5
dictsource/en_list View File



// letter names, as they are spoken as a single character in text // letter names, as they are spoken as a single character in text
// precede by _ to distinguish from pronunciation as a language word // precede by _ to distinguish from pronunciation as a language word
test h'EloU


_a eI _a eI
b bi: b bi:
_¦ broUk@nb'A@ _¦ broUk@nb'A@
_¨ daIa2r'i:sIs _¨ daIa2r'i:sIs
_ª fEmI2nIn'O@dI2n@L _ª fEmI2nIn'O@dI2n@L
_« lEft'ang@LkwoUts
_« lEft'gIl@mEt
_­ makr0n _­ makr0n
_² su:p@skrIptt'u: _² su:p@skrIptt'u:
_³ su:p@skrIptT'ri: _³ su:p@skrIptT'ri:
_¸ sEd'Il@ _¸ sEd'Il@
_¹ su:p@skrIptw'0n _¹ su:p@skrIptw'0n
_º maskjUlIn'O@dI2n@L _º maskjUlIn'O@dI2n@L
_» raIt'ang@LkwoUts
_» raIt'gIl@mEt
_¿ Inv,3:tI2dkw'EstS@n _¿ Inv,3:tI2dkw'EstS@n


_‐ haIf@n _‐ haIf@n
_‼ Ekskla2m'eIS@nz _‼ Ekskla2m'eIS@nz
_₠ jU@roU _₠ jU@roU


\ bakstroUk $max3
/ stroUk $max3
?3 \ bakslaS $max3
?3 / slaS $max3
* ast@rIsk $max3
% p3sEnt $max3
= _:i:kw@Lz_: $max3
?5 % pVRs'Ent $max3
¢ sEnts ¢ sEnts
£ paUnd £ paUnd
¥ jEn ¥ jEn
cobol koUb0l cobol koUb0l
cocoa koUkoU cocoa koUkoU
cochlea k0kli:@ cochlea k0kli:@
cockeye k0kaI
cocksure ,k0kS'U@
coconut koUk@nVt coconut koUk@nVt
codify koUdI2faI codify koUdI2faI
coeur k3: coeur k3:
execute EksI2kju:t // not $2 execute EksI2kju:t // not $2
exile $1 exile $1
exodus Eks@d@s exodus Eks@d@s
expedite Eksp@daIt // expedited
expert Eksp3:t expert Eksp3:t
expertise Eksp3t'i:z expertise Eksp3t'i:z
exploit $1 $onlys exploit $1 $onlys
extract $1 $onlys extract $1 $onlys
extract $1 $only extract $1 $only
extract $2 $verb extract $2 $verb
extradite Ekstr@daIt // extradited
extrem Ekstr'i:m // extremism extrem Ekstr'i:m // extremism
extremist Ekstr'i:mIst extremist Ekstr'i:mIst
eyrie i@rI eyrie i@rI
interrupt $1 $onlys interrupt $1 $onlys
interrupt $3 $verb interrupt $3 $verb
interval Int3v@L interval Int3v@L
interven Int3v'i:n // for intervening
interven Int3v'i:n // for intervening
intray IntreI
intro $1 intro $1
irate aIr'eIt irate aIr'eIt
iris aIrIs iris aIrIs
iron aI@n
irony aIr@nI irony aIr@nI
isosceles aIs'0s@li:z isosceles aIs'0s@li:z
itinerary aIt'In@r@rI itinerary aIt'In@r@rI
papal peIp@L papal peIp@L
pagan peIg@n pagan peIg@n
pageant padZ@nt pageant padZ@nt
paltry pO:ltrI
panacea pana2s'i:@ panacea pana2s'i:@
panache $2 panache $2
parabola p@rab@l@ parabola p@rab@l@
truest tru:@st truest tru:@st
tryst trIst tryst trIst
tudor tju:d3 tudor tju:d3
turntable t3:nteIb@L
tulip tju:lIp tulip tju:lIp
turnkey t3:nki: turnkey t3:nki:
?5 turnkey tVRnki: ?5 turnkey tVRnki:
Cassey keIsI Cassey keIsI
Catherine kaTrI2n Catherine kaTrI2n
Cecile sEsi:l Cecile sEsi:l
Chloe kloUI
Chris krIs Chris krIs
Connor k0n3 Connor k0n3
Daphne dafnI Daphne dafnI
Campbell kamb@l Campbell kamb@l
Chrysler kraIzl3 Chrysler kraIzl3
Disney dIznI Disney dIznI
Patel p@t'El
Patel pa2tEl
Primavera pri:m@v'e@r@ Primavera pri:m@v'e@r@
Prentice prEntIs Prentice prEntIs
Reuter rOIt3 Reuter rOIt3

+ 10
- 26
dictsource/en_rules View File

@) ally (_S2 l%I @) ally (_S2 l%I
@@ic) ally (_S4 l%I @@ic) ally (_S4 l%I
inst) al (_ O:l inst) al (_ O:l
&) al (d @L
b) al (d O:l
&) al (d_ @L
b) al (d+ O:l
b) al (k O:l b) al (k O:l
f) al (k 0l f) al (k 0l
b) all (K O:l b) all (K O:l
au O: au O:
g) au (s aU g) au (s aU
?!3 s) au (s 0 ?!3 s) au (s 0
l) au (t_ aU
?!3 au (str 0 ?!3 au (str 0
au (_ aU au (_ aU
_) auch %O:x _) auch %O:x
s) au (rus_ 'O: s) au (rus_ 'O:
@) au (ri 'O: @) au (ri 'O:
C) aus (_ aUs C) aus (_ aUs
au (t_ aU
@) au (t_ aU
n) au (t_ O: n) au (t_ O:
authen %O:TEn authen %O:TEn
_) auto (@P4 ,O:toU // prefix _) auto (@P4 ,O:toU // prefix
ey (an eI ey (an eI
_) eye aI _) eye aI
eye eI eye eI
eyed (_S2 d
@m) eyer (_ aI3 @m) eyer (_ aI3
eyor (_ 'eI3 eyor (_ 'eI3


b) i (_ aI b) i (_ aI
c) i (_ aI c) i (_ aI
c) is (_ Is c) is (_ Is
d) i (_ =I
@@h) i (_ =I @@h) i (_ =I
h) i (_ =aI h) i (_ =aI
&sk) i (_ =I &sk) i (_ =I
@) i (cip 'I @) i (cip 'I
i (cus_ =I i (cus_ =I
_) id (_ aIdi: _) id (_ aIdi:
idea aId'i@
_) idea aId'i@
acc) i (d I acc) i (d I
c) i (dal 'aI c) i (dal 'aI
fr) i (day aI fr) i (day aI
_) i (dle aI _) i (dle aI
br) i (dl aI br) i (dl aI
_s) i (dl aI
f) i (del I2 f) i (del I2
br) i (dA aI br) i (dA aI
br) i (dg I br) i (dg I
l) iv (en aIv l) iv (en aIv
r) ival aIv@L r) ival aIv@L
ct) iv (al 'aIv ct) iv (al 'aIv
v) iv (al 'aIv
@v) iv (al 'aIv
ive (ness Iv ive (ness Iv
_al) iv (e aIv _al) iv (e aIv
n) iv (e_ aIv n) iv (e_ aIv
cla) ng (er Ng cla) ng (er Ng
ta) ngi ndZI ta) ngi ndZI
i) ng (er Ng i) ng (er Ng
bi) ng (er ndZ
gi) ng (er ndZ gi) ng (er ndZ
o) ng (er Ng o) ng (er Ng
you) ng (er Ng you) ng (er Ng
&) sib s@b &) sib s@b
ea) s (ie z ea) s (ie z
ea) s (il z ea) s (il z
_) sid (e# saId
C) sion S@n C) sion S@n
?3 er) sion Z@n ?3 er) sion Z@n
A) sion Z@n A) sion Z@n
g) th (en_ T g) th (en_ T
thai taI thai taI
th (ead th th (ead th
th (eart th
theless D@l'Es theless D@l'Es
theque tEk theque tEk
ther (_ D3 ther (_ D3
ñ n^ ñ n^




\\ bakstroUk
/ stroUk
?3 \\ bakslaS
?3 / slaS
' '
! _:Ekskl@meIS@n_: ! _:Ekskl@meIS@n_:
! (\! ! (\!
: koUl@n : koUl@n
D_) : (_DD_ // omit colon in time, eg: 2:30 D_) : (_DD_ // omit colon in time, eg: 2:30
$ d0l3 $ d0l3
% p3sEnt
?5 % pVRs'Ent
@ at_: @ at_:
& _!%and & _!%and
!= n0ti:kw@Lz != n0ti:kw@Lz
. (. _: . (. _:
\.) . \.) .


= __i:kw@Lz_
= (==
=) = (=
==) = (_ _::

* ast@rIsk
*) * (*
**
**) * (_ _::
% (%%
%) % (%
%%) % (_ _::


+ 19
- 10
dictsource/eo_list View File

_0M2 mili'ono _0M2 mili'ono
_0M3 mili'ardo _0M3 mili'ardo
_0M4 duili'ono _0M4 duili'ono
_dpt komo_
_dpt _komo_


// accent names // accent names
_acu dekst@-*akoRno _acu dekst@-*akoRno
_; punktokomo _; punktokomo
_, komo _, komo
_? demandosigno _? demandosigno
_! _k@-*isigno_
_- dividost@-*eko _- dividost@-*eko
__ subst@-*eko
~ tildo ~ tildo
° gradoI ° gradoI
% p@-*otsento % p@-*otsento
@ _tSe_ @ _tSe_
& kaI & kaI
= ,,egala,
\\ deklivo
/ oblik'vo
= egala
\ deklivo
/ oblikvo
| duktosigno
* asteRisko * asteRisko
© k'opiraIto
© kopiRaIto
_( Rondak@-*'ampo
_) feRm'itaRondak@-*'ampo
_[ Rektak@-*'ampo
_] f'eRmaRektak@-*'ampo
_{ k'u@-*bak@-*'ampo
_} f'eRmaku@-*bak@-*'ampo
_< angulk@-*'ampo
_> f'eRmaangulk@-*'ampo
_« du'oblaangulk@-*'ampo
_» f'eRmadu,oblaangulk@-*'ampo




v vo // not Roman numbers v vo // not Roman numbers
Kg k'ilog@-*'amoI Kg k'ilog@-*'amoI
Km k'ilom'et-*oI Km k'ilom'et-*oI
kp k,omp'aru $dot kp k,omp'aru $dot
k.s kaI,s'im'ile
k.s kaI,si'mile
n.b n'otu||b'one n.b n'otu||b'one
nro numeRo nro numeRo
pĝ padZo $dot pĝ padZo $dot
eĉ $brk eĉ $brk
pli pl,i pli pl,i
plej pl,eI plej pl,eI
//ĝojo dZoIo
//ĉashundo tSas,hundo
//ligno lig,no
//signo sig,no


// pronouns // pronouns
mi $u mi $u

+ 17
- 20
dictsource/eo_rules View File

D_-_) an (_ %an //'an' after a number D_-_) an (_ %an //'an' after a number
D_) a (_ %a //'a' after a number D_) a (_ %a //'a' after a number
D_) an (_ %an //'an' after a number D_) an (_ %an //'an' after a number
-) ano (_ an%o // 'ano' = member


.group b .group b
_) b(_ bo _) b(_ bo
_) d(_ do _) d(_ do
d d d d


_) d (-ro_ dokt'o
_) d (-rino_ d,okto

-) do (_ d%o
_) d (-ro dokt'o
_) d (-rino d,okto


.group e .group e
_) e(_ e _) e(_ e
_) f(_ fo _) f(_ fo
f f f f


_) f (-ino_ fR%aUl
_) f (-lo_ fRaU
_) f (-ino fR%aUl
_) f (-lo fRaU
.group g .group g
_) g(_ go _) g(_ go
_) k(_ ko _) k(_ ko
k k k k


_) k (-do_ kamaR'a
_) k (-dino_ k'amaRa
_) k (-ino_ k'amaRad
_) k (-do kamaR'a
_) k (-dino k'amaRa
_) k (-ino k'amaRad


.group l .group l
l l l l
ll (_ l ll (_ l


-) lo (_ l%o



.group m .group m
_) m(_ mo _) m(_ mo
n n n n
n (_S1 n n (_S1 n


_) n (-ro_ num'e
_) n (-ro num'e


.group o .group o
_) o(_ o _) o(_ o
o o o o
oj oI oj oI
-) o (_ %o
-) oj (_ %oI -) oj (_ %oI
-) on (_ %on -) on (_ %on
-X) o (_ %o // d-ro etc
-X) oj (_ %oI
-X) on (_ %on
.group p .group p
_) p(_ po _) p(_ po
K) r (A @-* K) r (A @-*
rr RR rr RR


-) ro (_ R%o // d-ro, n-ro

.group s .group s
_) s(_ so _) s(_ so
_) sh(_ So _) sh(_ So
sh (K S // foreign words sh (K S // foreign words
K) sh S // foreign words K) sh S // foreign words


_) s (-ino_ s,injoR
_) s (-ro_ sinj'o
_) s (-ino s,injoR
_) s (-ro sinj'o


_) s (-ano_ s'am,ide
_) s (-anino_ s'am,ide
_) s (-ano s'am,ide
_) s (-anino s'am,ide


_) s (-ta_ s'ank _) s (-ta_ s'ank


£ pundo £ pundo
£ (_D _pundoI_: £ (_D _pundoI_:
_! _k@-*isig'no_
__) - (_D minus_ __) - (_D minus_
D_) - (_D st@-*ek'eto_ D_) - (_D st@-*ek'eto_
A_) - (_D _ A_) - (_D _

+ 20
- 12
dictsource/fr_list View File



// 2006-11-18 Gilles Casse <[email protected]> // 2006-11-18 Gilles Casse <[email protected]>
// //
// Updated 2008-11-06 Michel Such <[email protected]>
// Updated 2008-12-03 Michel Such <[email protected]>
// //
// * Numbers, a few abbreviations and exceptions. // * Numbers, a few abbreviations and exceptions.
// //
_stk b'ar _stk b'ar
_tld t'ild _tld t'ild



// character names // character names


_cap maZysk'yl _cap maZysk'yl
_, virgyl _, virgyl
_- tirE _- tirE
_. _|pw%E~ _. _|pw%E~
_/ slaS
_: d'Ypw'E~
_; pwE~virg'yl
_/ bar||oblik
_: d'Y||pw'E~
_; pwE~||virg'yl
_< E~ferjWr _< E~ferjWr
_= egal _= egal
_> syperjWr _> syperjWr
_? pwE~dE~terogasj'O~
_? pwE~||dE~terogasj'O~
_! pwE~||dEksklamasj'O~
_[ uvr@-_kroSE _[ uvr@-_kroSE
_\ b'aksl'aS _\ b'aksl'aS
_] f'E2rm_kroS'E _] f'E2rm_kroS'E
__ sulin^e __ sulin^e
_` aks'A~_gr'av _` aks'A~_gr'av
_{ uvr_akOlad _{ uvr_akOlad
_| bar
_| bar_vErtik'al
_} f'E2rm_akOl'ad _} f'E2rm_akOl'ad
² pw^is'A~s||d'Y ² pw^is'A~s||d'Y
_« uvre||gijm'E
_» fErme||gijm'E
_’ a2postr'Of
_‘ a2postr'Of
_µ mikR'o
_§ sEksj'O~


// symbols that are normally spoken when reading text // symbols that are normally spoken when reading text
! Eksklamasj'O~
@ arobaz @ arobaz
% pursA~ % pursA~
& _e
& e $u $brk
_& _e_komErsj'al
+ plys + plys
~ tilde ~ tilde
€ @ro € @ro
¢ sEnt ¢ sEnt
¥ i;En
¥ jEn
£ livr £ livr
± pl'yz_'u_mw'E~ ± pl'yz_'u_mw'E~
× myltipli:'e_p'ar × myltipli:'e_p'ar
÷ diviz'e_p'ar ÷ diviz'e_p'ar
¼ W~_k'ar ¼ W~_k'ar
½ W~_d@m'i ½ W~_d@m'i
¾ trwAk'ar
¾ trwA_k'ar
© _^_EN © _^_EN
® m'ark_depos'e ® m'ark_depos'e


bluetooth blut'us bluetooth blut'us
computer _^_en computer _^_en
(cyber link) _^_en (cyber link) _^_en
debian dEbjAn
debian dEbjan
edit _^_en edit _^_en
emacs Emaks emacs Emaks
emacspeak Emakspi:k emacspeak Emakspi:k
leone leO2n leone leO2n
koweït kowEjt koweït kowEjt
taïwan tajwAn taïwan tajwAn
texas tEks'as
venezuela venezyela venezuela venezyela
(viêt nam) viEtnam (viêt nam) viEtnam
wallis wAlis wallis wAlis
zimbabwe zimbabwe zimbabwe zimbabwe






+ 8
- 5
dictsource/fr_rules View File



// 2006-11-18 Gilles Casse <[email protected]> // 2006-11-18 Gilles Casse <[email protected]>
// //
// Updated: 2008-11-19 Michel Such <[email protected]>
// Updated: 2008-11-28 Michel Such <[email protected]>
// //


// Letter classes: // Letter classes:


.L01 d e l n r t u .L01 d e l n r t u
.L02 b c d f g h k p t v .L02 b c d f g h k p t v
.L03 d l m n s t v




.group a .group a
_) h (ésit // hésiter _) h (ésit // hésiter
_) h (eure // heure _) h (eure // heure
_) h (iber // hibernation _) h (iber // hibernation
_) hi (A j // hier
_) h (ippo // hippodrome _) h (ippo // hippodrome
_) h (iro // hirondelle _) h (iro // hirondelle
_) h (ist // histoire _) h (ist // histoire
_) h (umb // humble _) h (umb // humble
_) h (umi // humide _) h (umi // humide
_) h (umo // humour _) h (umo // humour
_) hy (A j
_) h (y // hypermarché _) h (y // hypermarché
_) hyper (@P5 ipEr _) hyper (@P5 ipEr
_) hyper (_ ipEr _) hyper (_ ipEr


ai) s (em s // vraisemblable ai) s (em s // vraisemblable
aCè) s (_ s aCè) s (_ s
kansa) s (_ s // Kansas, Arkansas
ub) s (is z // subsister ub) s (is z // subsister
tran) s (A z // transition tran) s (A z // transition
tran) s (e s // transe tran) s (e s // transe


.group x .group x
x ks x ks
xs ks // lexique lexicaux vox
e) x (A gz // exagérer exemple e) x (A gz // exagérer exemple
Ce) x (i ks
ine) x (i gz
L03e) x (A ks // annexe, vexer
_ine) x (A gz
_e) x (h gz // exhumer _e) x (h gz // exhumer


ai) x (_ // voix paix prix ai) x (_ // voix paix prix


.group y .group y
y i // cryogénique myope y i // cryogénique myope
_) y (A _!i // yak, yacht
_) y (A j // yak, yacht
_) y (eu i // yeux _) y (eu i // yeux


_) yahoo (P5 ia'u _) yahoo (P5 ia'u

+ 5
- 1
dictsource/hi_rules View File



.group इ .group इ
इ I इ I
// इँ i~
// इं i~


.group ई .group ई
ई i: ई i:


.group ि .group ि
ि I ि I
// िँ i~
// िं i~


.group ी .group ी
ी i: ी i:
ँ n // candrabindu ँ n // candrabindu


.group ं .group ं
N // anusvara
n // anusvara
ं (प m ं (प m
ं (फ m ं (फ m
ं (ब m ं (ब m

+ 9
- 1
dictsource/it_list View File

o O: $atend o O: $atend




// foreign words
chat tSat
cliché kli:Se
internet 'internet
jeans dZi:nz
web wEb


// exceptions // exceptions
aereo $2 aereo $2
difficile $2 difficile $2
conoscerla $2 conoscerla $2
no nO no nO
posta pOsta posta pOsta
principi $1
tesser tess'ER tesser tess'ER
uomini $1 uomini $1
internet 'internet

+ 21
- 59
dictsource/it_rules View File

// translation rules // translation rules
// This file is UTF-8 encoded // This file is UTF-8 encoded


// letter groups
// A any vowel
// Y front vowels: e i (& accents)
.L01 a à o ò ó u ù


.group a .group a
a a: a a:
c k c k
cc k: cc k:
c (' tS c (' tS
c (e tS
c (é tS
c (è tS
c (i tS
c (ì tS
cc (e tS:
cc (é tS:
cc (è tS:
cc (i tS:
cc (ì tS:
c (Y tS
cc (Y tS:
ch k ch k
cch k: cch k:
ci (a tS
ci (à tS
ci (o tS
ci (ò tS
ci (u tS
ci (ù tS
cci (a tS:
cci (à tS:
cci (o tS:
cci (ò tS:
cci (u tS:
cci (ù tS:
ci (L01 tS
cci (L01 tS:
@) co (lA_ =ko @) co (lA_ =ko
.group d .group d
g g g g
gg g: gg g:
gh g gh g
g (e dZ
g (é dZ
g (è dZ
g (i dZ
g (ì dZ
gi (a dZj
gi (à dZj
gi (o dZj
gi (ò dZj
gi (u dZj
gi (ù dZj
gg (e dZ:
gg (é dZ:
gg (è dZ:
gg (i dZ:
gg (ì dZ:
ggi (a dZ:
ggi (à dZ:
ggi (o dZ:
ggi (ò dZ:
ggi (u dZ:
ggi (ù dZ:
g (Y dZ
gi (L01 dZj
gg (Y dZ:
ggi (L01 dZ:
@) gger (lo_ =dZ:eR @) gger (lo_ =dZ:eR
gl (i l^ gl (i l^
gl (ì l^ gl (ì l^
@) i (dere_ 'i @) i (dere_ 'i
@) i (le_ =i @) i (le_ =i
@) i (li_ =i @) i (li_ =i
@) i (ma_ =i
r) i (ma_ i
laCr) i (ma_ =i
st) i (ma_ i
enz) i (ma_ i
@) iera (_ i'E:Ra @) iera (_ i'E:Ra
@) iere (_ i'E:Re @) iere (_ i'E:Re
@) i (ente_ i @) i (ente_ i
@) o (metro_ 'O @) o (metro_ 'O
@) o (logo_ 'O @) o (logo_ 'O
o (str 'O o (str 'O
@) o (di_ =o
@) o (do_ =o
@) o (lo_ =o @) o (lo_ =o


ss ss ss ss
s (t s s (t s
s (x s s (x s
sc (e S
sc (é S
sc (è S
sc (i S
sc (ì S
// A) sc (e SS
// A) sc (é SS
// A) sc (è SS
// A) sc (i SS
// A) sc (ì SS
sch (e sk
sch (é sk
sch (è sk
sch (i sk
sch (ì sk
sc (Y S
sch (Y sk
sh (K S // foreign words sh (K S // foreign words
K) sh S // foreign words K) sh S // foreign words
@) sia s'ia @) sia s'ia

+ 187
- 186
dictsource/pl_list View File

// prefixed by a _ character. // prefixed by a _ character.


// Numbers // Numbers
_0 z'E*O:
_0 z'ERO:
_1 j'EdEn _1 j'EdEn
_2 dv'a _2 dv'a
_3 t|S'y _3 t|S'y
_4 tSt'E*y
_4 tSt'ERy
_5 p;'En^ts; _5 p;'En^ts;
_6 S'ES;ts; _6 S'ES;ts;
_7 S;'EdEm _7 S;'EdEm
_11 jEdEn'aS;ts;E _11 jEdEn'aS;ts;E
_12 dvan'aS;ts;E _12 dvan'aS;ts;E
_13 t|Syn'aS;ts;E _13 t|Syn'aS;ts;E
_14 tStE*n'aS;ts;E
_14 tStERn'aS;ts;E
_15 pjEtn'aS;ts;E _15 pjEtn'aS;ts;E
_16 SEsn'aS;ts;E _16 SEsn'aS;ts;E
_17 S;EdEmn'aS;ts;E _17 S;EdEmn'aS;ts;E
_19 dz;Ev;Etn'aS;ts;E _19 dz;Ev;Etn'aS;ts;E
_2X dvadz;'ES;ts;a _2X dvadz;'ES;ts;a
_3X t|Sydz;'ES;c;i _3X t|Sydz;'ES;c;i
_4X tStE*dz;'ES;c;i
_4X tStERdz;'ES;c;i
_5X p;En^dz;'ES;Ont _5X p;En^dz;'ES;Ont
_6X SEZ;dz;'ES;Ont _6X SEZ;dz;'ES;Ont
_7X S;EdEmdz;'ES;Ont _7X S;EdEmdz;'ES;Ont
_1C st'O _1C st'O
_2C dv;'ES;c;E _2C dv;'ES;c;E
_3C t|S'ysta _3C t|S'ysta
_4C tSt'E*ysta
_4C tSt'ERysta
_5C p;'En^ts;sEt _5C p;'En^ts;sEt
_6C S'ES;sEt _6C S'ES;sEt
_7C S;'EdEmsEt _7C S;'EdEmsEt
_0MA2 m;ilj'Ony _0MA2 m;ilj'Ony
_1M2 m;'iljOn _1M2 m;'iljOn
_0M2 m;ilj'Onuf _0M2 m;ilj'Onuf
_0MA3 m;ilj'a@-*dy
_1M3 m;'ilja@-*d
_0M3 m;ilj'a@-*duf
_0MA3 m;ilj'aRdy
_1M3 m;'iljaRd
_0M3 m;ilj'aRduf
_0MA4 b;ilj'Ony _0MA4 b;ilj'Ony
_1M4 b;'iljOn _1M4 b;'iljOn
_0M4 b;ilj'Onuf _0M4 b;ilj'Onuf
_dpt _pSEts;'inEk_ _dpt _pSEts;'inEk_


_cap d'uZE_ _cap d'uZE_
_?A litE*a
_?A litERa
_?? symbOl _?? symbOl
_#9 tab _#9 tab
_#32 spatsja _#32 spatsja


// accent names // accent names
_lig ligat'u*a
_acu _'Ost@-*E
_ac2 x,uNga*'umlawt // pOdv'ujnE_'Ost@-*E
_brv b@-*'Evis
_lig ligat'uRa
_acu _'OstRE
_ac2 x,uNgaR'umlawt // pOdv'ujnE_'OstRE
_brv bR'Evis
_ced z|tsEd;'ilO~ _ced z|tsEd;'ilO~
_cir z|d'aSc;Em //pSEts;'ONgwE _cir z|d'aSc;Em //pSEts;'ONgwE
_dia _'umlawt _dia _'umlawt
_dot z|k@-*OpkO~
_dot z|kROpkO~
_grv ts;'E~Sc;E _grv ts;'E~Sc;E
_hac h'atSEk _hac h'atSEk
_mcn nadk@-*ES;l'OnE //m'ak@-*On
_mcn nadkRES;l'OnE //m'akROn
_ogo z|Og'Onc;Em _ogo z|Og'Onc;Em
_rng z|k'uwc;Em //k'OwO _rng z|k'uwc;Em //k'OwO
_stk sk@-*ES;l'OnE // dz;ElOnE
_stk skRES;l'OnE // dz;ElOnE
_tld z|t'yldO~ _tld z|t'yldO~




w vy $u $atend
z zy $u $atend
_a a
ą O~
b bE
c tsE
ć ts;i
d dE
e E
ę E~
f Ef
g gjE
h xa
_i i
j jOt
k ka
l El
ł Ew
m Em
n En
ń n^i
_o O
,u_k@-*EskOv'anE
p pE
q ku
r E*
s Es
ś S;i
t tE
_u u
v faw
_w vu
x iks
y 'ig*Ek
_z zEt
ż ZEt|z|k@-*'OpkO~
ź Z;i
w vy $u $atend
z zy $u $atend
_a a
ą O~
b bE
c tsE
ć ts;i
d dE
e E
ę E~
f Ef
g gjE
h xa
_i i
j jOt
k ka
l El
ł wy
m Em
n En
ń n^i
_o O
,u_kREskOv'anE
p pE
q ku
r ER
s Es
ś S;i
t tE
_u u
v faw
_w vu
x iks
y 'igREk
_z zEt
ż ZEt|z|kR'OpkO~
ź Z;i


ä $accent ä $accent
ö $accent ö $accent
í $accent í $accent




// other characters

˘ b@-*'Evis
¤ val'uta
§ pa*'ag@-*af
¨ 'umlawt
° st'Op;En^
˛ Og'OnEk
´ ,Ost@-*y_'aktsEnt
ˇ k'a*On
¸ tsEd;'illa
˝ x,uNga*'umlawt
× @-*'azy
÷ dz;El'En^;E
˙ g'u*na_k@-*'Opka
¯ nadk@-*ES;l'En^E
² kv'ad@-*at
³ S'ES;tS;an
¼ jEdnatSf'a*ta
½ jEdnad@-*'uga
¾ t||SytSf'a*tE
¹ jEdEng'u*nE
™ t@-*'Ejdma*k
± plusm'inus
£ funt
® zastSEZ'Ony
¡ Odv@-*,Otny||vykS'ykn^ik
¢ tsEnt
¥ jEn
« f@-*ants,usci||tsudz'yswuf
¬ nEg'atsja
» p@-*'avy||f@-*ants,usci||tsudz'yswuf
¶ ak'apit
¿ Odv@-*,Otny||pytajn^ik

// redefine foreign letters from pl_rules as CHAR // redefine foreign letters from pl_rules as CHAR


ß S,arfEs_'Es ß S,arfEs_'Es


// all my keyboard... // all my keyboard...


_! vykS'ykn^ik
_= *'uvna||S;E
_< mn^'EjSE
_> w;'ENkSE
_" tsudz'yswuf
_. k@-*'Opka
_, pSEts;'inEk
_- m'yS;lnik // or minus?
_? zn,ak||zapyt'an^a
_~ t'ylda
__ pOdk*ES;l'En^E
_: dvuk@-*'OpEk
_; S;@-*'Edn^ik
_( nav;as
_) pOnav;'aS;E
_[ n,av;as||kvad@-*at'Ovy
_] p@-*avy||n,av;as||kvad@-*at'Ovy
_{ n,av;as||klam@-*Ovy
_} p@-*avy||n,av;as||klam@-*'Ovy
_' ap'Ost@-*Of
_/ slES
_* gv;'astka
_\ b'EkslES
_| k@-*,Eska||p;On'Ova
_# haS
_$ d'Ola*
% p@-*'OtsEnt
_^ d'aSEk // what's be better?
_& and
_` 'aktsEnt
_@ m'awpa
+ plus
_! vykS'ykn^ik
_< mn^'EjSE
_> w;'ENkSE
_" tsudz'yswuf
_, pSEts;'inEk
_- m'yS;lnik // or minus?
_? zn,ak||zapyt'an^a
__ pOdkRES;l'En^E
_: dvukR'OpEk
_; S;R'Edn^ik
_( nav;as
_) pOnav;'aS;E
_[ n,av;as||kvadRat'Ovy
_] pRavy||n,av;as||kvadRat'Ovy
_{ n,av;as||klamROvy
_} pRavy||n,av;as||klamR'Ovy
_' ap'OstROf

. kR'Opka
~ t'ylda
= R'uvna||S;E
/ slES
* gv;'astka
\ b'EkslES
| kR,Eska||p;On'Ova
# haS
_$ d'OlaR
% pR'OtsEnt
^ d'aSEk // what's be better?
& and
` 'aktsEnt
@ m'awpa
+ plus

// other characters

˘ bR'Evis
¤ val'uta
§ paR'agRaf
¨ 'umlawt
° st'Op;En^
˛ Og'OnEk
´ ,OstRy_'aktsEnt
ˇ k'aROn
¸ tsEd;'illa
˝ x,uNgaR'umlawt
× R'azy
÷ dz;El'En^;E
˙ g'uRna_kR'Opka
¯ nadkRES;l'En^E
² kv'adRat
³ S'ES;tS;an
¼ jEdnatSf'aRta
½ jEdnadR'uga
¾ t||SytSf'aRtE
¹ jEdEng'uRnE
™ tR'EjdmaRk
± plusm'inus
£ funt
® zastSEZ'Ony
¡ OdvR,Otny||vykS'ykn^ik
¢ tsEnt
¥ jEn
« fRants,usci||tsudz'yswuf
¬ nEg'atsja
» pR'avy||fRants,usci||tsudz'yswuf
¶ ak'apit
¿ OdvR,Otny||pytajn^ik




// screenreadery // screenreadery


nvda EnfawdE'a $abbrev nvda EnfawdE'a $abbrev
orca O*ka
orca ORka
jaws dZ'Ews $abbrev jaws dZ'Ews $abbrev


// komputery, komputery // komputery, komputery
office Ofis office Ofis
play plEj play plEj
scane skan scane skan
(screen reader) sk@-*in*'idEr
(sound juicer) sawnd||dZ'usE*
(screen reader) skRinR'idEr
(sound juicer) sawnd||dZ'usER
thunderbird $1 thunderbird $1
view v;u view v;u
(e mail) imEjl (e mail) imEjl
(e mailowe) imEjlOvE (e mailowe) imEjlOvE
delete dil'Ejt delete dil'Ejt
eject iZ'Ekt eject iZ'Ekt
forward fO*wE*d
backward bEkwE*d
forward fORwERd
backward bEkwERd
device div'ajs device div'ajs
devices divajsis devices divajsis
usb uEsb'E $abbrev usb uEsb'E $abbrev
url uE*'El $abbrev
url uER'El $abbrev
drive drajv drive drajv
scsi sk'azi $abbrev scsi sk'azi $abbrev
hda $abbrev hda $abbrev
dvd divid'i $abbrev dvd divid'i $abbrev
sh Es'xa $abbrev sh Es'xa $abbrev
ascii 'askEj $abbrev ascii 'askEj $abbrev
ctrl k'Ont@-*Ol $abbrev
right *ajt $abbrev
ctrl k'OntROl $abbrev
right Rajt $abbrev


// nazwy własne akcentowanie - wymowa w regułkach // nazwy własne akcentowanie - wymowa w regułkach
// todo: more! // todo: more!


andrew Endrju // nieodmienne andrew Endrju // nieodmienne
chihuahua tSiwawa chihuahua tSiwawa
francisco f@-*ansiskO
francisco fRansiskO
josé hOz'E josé hOz'E
jose hOz'E jose hOz'E
jake dZEjk jake dZEjk
jersey dZE*zi
jersey dZERzi
miami maj'ami miami maj'ami


janet dZanEt // żeńskie nie kończące się na a janet dZanEt // żeńskie nie kończące się na a
jane dZEjn jane dZEjn
alice Elis alice Elis
circe ki*kE
maureen mO*'in
circe kiRkE
maureen mOR'in
jackie dZEki jackie dZEki
jacqueline Zakl'in jacqueline Zakl'in
janice dZEn^is janice dZEn^is
jeanette Zan'Et jeanette Zan'Et


george dZOrdZ // i męskie zakończone samogłoską odmieniane przez apostrof george dZOrdZ // i męskie zakończone samogłoską odmieniane przez apostrof
maurice mO*is
maurice mORis
anthony EntOn anthony EntOn
anthony EntOny $1 $only anthony EntOny $1 $only
jerry dZE*
jerry dZE*y $only
jerry dZER
jerry dZERy $only




// some exceptions - dawać więcej! // some exceptions - dawać więcej!


//dr, mgr and so... //dr, mgr and so...


dr d'OktO* $dot
mgr mag'istE* $dot
dr d'OktOR $dot
mgr mag'istER $dot
doc d'OtsEnt $dot doc d'OtsEnt $dot
prof p*Of'EsO* $dot
prof pROf'EsOR $dot
hab habilitOv'any $dot hab habilitOv'any $dot
inż inZ'yn^E* $dot
inż inZ'yn^ER $dot
mec mEtsEnas $dot mec mEtsEnas $dot
//ks kS;Onts $dot //ks kS;Onts $dot
//bp biskup $dot //bp biskup $dot
//bpa biskupa //bpa biskupa
//hr h@-*ab;ja $dot
//hr hRab;ja $dot


//gen gEnE*aw $dot
//gen gEnERaw $dot
płk puwk'Ovnik $dot // declinated forms in pl_rules płk puwk'Ovnik $dot // declinated forms in pl_rules
ppłk pOtpuwk'Ovnik $dot ppłk pOtpuwk'Ovnik $dot
mjr m'ajO* $dot
mjr m'ajOR $dot
kpt kap'itan $dot kpt kap'itan $dot
//por pO*'utSn^ik $dot
ppor pOdpO*'utSn^ik $dot
kpr kap*al $dot
//por pOR'utSn^ik $dot
ppor pOdpOR'utSn^ik $dot
kpr kapRal $dot


// abbr // abbr


tzn tO||znatSy $dot tzn tO||znatSy $dot
itd i||tak||dalEj $dot itd i||tak||dalEj $dot
itp i||tEmu||pOdObnE $dot itp i||tEmu||pOdObnE $dot
etc Ets'EtE*a $dot
etc Ets'EtERa $dot
św S;v;Enty $dot św S;v;Enty $dot
śp S;v;EntEj||pam;En^ts;i $dot śp S;v;EntEj||pam;En^ts;i $dot


np napS'ykwad $dot np napS'ykwad $dot
tys tyS;E~tsy $dot tys tyS;E~tsy $dot
mln miljOnuf mln miljOnuf
mld milja*duf
mld miljaRduf


//popularne zagraniczniaki nieodmienne (no, prawie) //popularne zagraniczniaki nieodmienne (no, prawie)
(ad hoc) adh'Ok (ad hoc) adh'Ok
(ad oculos) ad'OkulOs (ad oculos) ad'OkulOs
angelica angElika $2 angelica angElika $2


(carte blanche) ka*tbl'anS
(carte blanche) kaRtbl'anS
challenge tSElEndZ challenge tSElEndZ
chanson SansO~ $2 chanson SansO~ $2
(chargé d'affaires) Sa*ZEdafE* $4
(charge d'affaires) Sa*ZEdafE* $4
charmant Sa*man $2
charme Sa*m
charmeur Sa*mE* $2
charmeuse Sa*mEz $2
(chargé d'affaires) SaRZEdafER $4
(charge d'affaires) SaRZEdafER $4
charmant SaRman $2
charme SaRm
charmeur SaRmER $2
charmeuse SaRmEz $2
chippendale tSipEndEjl chippendale tSipEndEjl
chippendale tSipEndEjl $1 $only chippendale tSipEndEjl $1 $only
(chow chow) tSawtSau $2 (chow chow) tSawtSau $2
ciao tSjaw ciao tSjaw
(cicer cum caule) ts,itsE*kumk'awlE
(cicer cum caule) ts,itsERkumk'awlE
(ci devant) sidEv'aN (ci devant) sidEv'aN
cinquecento tSinkwEtSEntO cinquecento tSinkwEtSEntO
circa tsi*ka
(cis dur) tsisd'u*
circa tsiRka
(cis dur) tsisd'uR
(cis moll) tsism'Ol (cis moll) tsism'Ol
cito tsitO cito tsitO
city tsity city tsity
comte kO~t comte kO~t
comtesse kO~t'Es comtesse kO~t'Es
con kOn con kOn
concierge kOnsj'E*Z
concierge kOnsj'ERZ
cool kul cool kul
copyright k'Opy*ajt
(cosa nostra) k,Ozan'Ost@-*a
copyright k'OpyRajt
(cosa nostra) k,Ozan'OstRa
cottage kOtydZ cottage kOtydZ
coupé kup'E coupé kup'E
coupe kup'E coupe kup'E
country kant@-*y
country kantRy
cubiculum kub'ikulum cubiculum kub'ikulum
culpa kulpa culpa kulpa
curriculum ku*'ikulum
curriculum kuR'ikulum


d'amour damu* $2
d'amour damuR $2
(de facto) dEfaktO (de facto) dEfaktO
(de iure) dEju*E
(de iure) dEjuRE
(déjà vu) dEZav'i (déjà vu) dEZav'i
(déjà vue) dEZav'i (déjà vue) dEZav'i
(deja vu) dEZav'i (deja vu) dEZav'i
(deja vue) dEZav'i (deja vue) dEZav'i
dell'arte dEl'a*
del'arte dEl'a*
(dies irae) d;'ijEs'i*E
dell'arte dEl'aR
del'arte dEl'aR
(dies irae) d;'ijEs'iRE
dinghy d;iNgi dinghy d;iNgi


faciendi fasjEndi faciendi fasjEndi
foyer fuaj'E foyer fuaj'E


gentleman $1 gentleman $1
graecas g@-*Ekas
graecas gREkas




monsieur mEsj'E monsieur mEsj'E
madame mad'am madame mad'am
mademoiselle madmuaz'El mademoiselle madmuaz'El
(maitré d'hotel) mEt*EdOt'El
(maitre d'hotel) mEt*EdOt'El
(maitré d'hotel) mEtREdOt'El
(maitre d'hotel) mEtREdOt'El
mlle madmuaz'El mlle madmuaz'El
(mon ami) mOnami $3 (mon ami) mOnami $3
(mon cher) mO~SE* $2
(mon cher) mO~SER $2


new n^;u new n^;u


out awt out awt


poirot puwa*'O // odmieniony w regułkach
poirot puwaR'O // odmieniony w regułkach


(qui pro quo) kvip*OkvO $3
(qui pro quo) kvipROkvO $3
rock rOk rock rOk


sir sE*
sire si*
street st@-*it
sir sER
sire siR
street stRit


(va banque) vab'aNk (va banque) vab'aNk
variétés varjEtE $3 variétés varjEtE $3
voodoo vudu voodoo vudu


// kuchnia, kuchnia, jeść nam się chce! // kuchnia, kuchnia, jeść nam się chce!
//ragout *ag'u // przen. do rules
//ragout Rag'u // przen. do rules
fondue fO~d'i fondue fO~d'i
beaujolais bOZOl'E beaujolais bOZOl'E
boeuf bEf boeuf bEf
cabernet kabE*n'E
camembert kamEmb'E*
cabernet kabERn'E
camembert kamEmb'ER
café kafE $2 café kafE $2
cafe kafE $2 cafe kafE $2
chablis Sabli $2 chablis Sabli $2
coca kOka coca kOka
cola kOla cola kOla
coleslaw kOlEslOw coleslaw kOlEslOw
croissant k@-*uas'aN
cumberland k'ambE*lEnd
(cura çao) ki*asaO
curaçao ki*asaO
curacao ki*asaO
curry ka*y
croissant kRuas'aN
cumberland k'ambERlEnd
(cura çao) kiRasaO
curaçao kiRasaO
curacao kiRasaO
curry kaRy
(de la maison) dElamEz'O~ (de la maison) dElamEz'O~
(de volaille) dEvOl'aj (de volaille) dEvOl'aj
(a la) al'a (a la) al'a

+ 110
- 102
dictsource/pl_rules View File

C) ai (r E C) ai (r E
_alt) ai (r ai _alt) ai (r ai
_k) ai (r ai _k) ai (r ai
_) archie E*tSi
_) archie (C E*tS|;E
_) archie ERtSi
_) archie (C ERtS|;E
acku (p Eka acku (p Eka
_) arcy (@P4t a*tsy
_) arcy (@P4t aRtsy


@ł) a (by_ =a @ł) a (by_ =a
@ł) a (bym_ =a @ł) a (bym_ =a


b b b b
ja) bł (kA p ja) bł (kA p
b (_A p
b (_ p
b (i b; b (i b;
bi (A b;j bi (A b;j


_) challeng (er tSElEndZ _) challeng (er tSElEndZ
cha (mpi tZE cha (mpi tZE
chan (nel tSa chan (nel tSa
_) charle (s tSa*ls
_) charle (s tSaRls
_) chie (f tSi _) chie (f tSi
_) ch (ip tS _) ch (ip tS
_) chippendal (A tSipEndEjl _) chippendal (A tSipEndEjl
_) c (ominu ts _) c (ominu ts
_) conc (ert kOntS _) conc (ert kOntS
_) c (onC k _) c (onC k
_) copywri (t kOpy*aj
_) copywri (t kOpyRaj
_) c (orC k _) c (orC k
_) c (owbo k _) c (owbo k
crack k@-*ak
_) croiss k@-*ruas
crack kRak
_) croiss kRruas
_) c (r k _) c (r k
_) c (umul k _) c (umul k
_) curie ki*i
_) curie kiRi
_) cu (rli kE _) cu (rli kE
cresc (end k@-*EStS
cresc (end kREStS


_) c (aps_ k _) c (aps_ k
_) c (apslo k _) c (apslo k
lo) ck (u_ k lo) ck (u_ k
lo) ck (iem_ k lo) ck (iem_ k
lo) ck (a_ k lo) ck (a_ k
_s) creenrea (d k@-*in*i
_s) creenrea (d kRinRi


.group ć .group ć
ć ts; ć ts;


.group d .group d
d d d d
d (_A t
d (_ t
d (i d; d (i d;
di (A dj di (A dj
dies (lA d;iz dies (lA d;iz
dies (el d;iz dies (el d;iz
dz dz dz dz
dz (_A ts
dz (_ ts
dz (i dz; dz (i dz;
dzi (A dz; dzi (A dz;
_na) dzi (em d|Z; _na) dzi (em d|Z;
_po) dzi (em d|Z; _po) dzi (em d|Z;
dź dz; dź dz;
dź (_A ts;
dź (_ ts;
dż dZ dż dZ
dż (_A tS
dż (_ tS


_o) dż d|Z _o) dż d|Z
_po) dż d|Z _po) dż d|Z
g g g g
g (i g; g (i g;
hi) gi (e gj hi) gi (e gj
g (_A k
gł (_ g
gł (_A k
g (_ k
gł (_ gw
gh g gh g
gate (s gEjt gate (s gEjt
_) gentleman dZEntElmEn _) gentleman dZEntElmEn
_) georgi (o_ dZO*dZj
_) georgi (ą_ dZO*dZj
_) georgi (ę_ dZO*dZj
_) georgi (i_ dZO*dZj
_) georgi (a_ dZO*dZj
_) georgi (o_ dZORdZj
_) georgi (ą_ dZORdZj
_) georgi (ę_ dZORdZj
_) georgi (i_ dZORdZj
_) georgi (a_ dZORdZj


.group h .group h
h x h x
_kl) i (e ;ij _kl) i (e ;ij
żm) ii (_ iji żm) ii (_ iji
rak) ii (_ iji rak) ii (_ iji
_f) ire (fox_ 'ajE*
_f) ire (fo ajE*
_f) ire (fox_ 'ajER
_f) ire (fo ajER
_m) ic (ro ajk _m) ic (ro ajk


C) ie (_ ;E# C) ie (_ ;E#


.group j .group j
jazz dZEz jazz dZEz
jazz (_ dZEs
j j j j


_) james dZEjms _) james dZEjms
.group k .group k
k k k k
// k (i c // k (i c
kł (_ k
kł (_ kw
// ki (A kj // ki (A kj
_) klow (n klaw _) klow (n klaw


qu (A kv qu (A kv


.group r .group r
r *
A_) r (A *
K) r (A @-*
ri (A *j
A) rr (A *
r R
A_) r (A R
K) r (A R
ri (A Rj
A) rr (A R
rz Z rz Z
rz (and *ts
_mu) rz (asichl *z
_mu) rz (o_+++ *z
_mu) rz (owie_+++ *z
_mu) rz (ą_+++ *z
_mu) rz (y_+++ *z
_mu) rz (ę_+++ *z
_mu) rz (a_+++ *z
_mu) rz (ów_+++ *z
_mu) rz (ami_+++ *z
_mu) rz (ach_+++ *z
_mi) rz (o_+++ *z
_mi) rz (owie_+++ *z
_mi) rz (ą_+++ *z
_mi) rz (y_+++ *z
_mi) rz (ę_+++ *z
_mi) rz (a_+++ *z
_mi) rz (ów_+++ *z
_mi) rz (ami_+++ *z
_mi) rz (ach_+++ *z
rz (_ S
rz (and Rts
_mu) rz (asichl Rz
_mu) rz (o_+++ Rz
_mu) rz (owie_+++ Rz
_mu) rz (ą_+++ Rz
_mu) rz (y_+++ Rz
_mu) rz (ę_+++ Rz
_mu) rz (a_+++ Rz
_mu) rz (ów_+++ Rz
_mu) rz (ami_+++ Rz
_mu) rz (ach_+++ Rz
_mi) rz (o_+++ Rz
_mi) rz (owie_+++ Rz
_mi) rz (ą_+++ Rz
_mi) rz (y_+++ Rz
_mi) rz (ę_+++ Rz
_mi) rz (a_+++ Rz
_mi) rz (ów_+++ Rz
_mi) rz (ami_+++ Rz
_mi) rz (ach_+++ Rz
c) rz (A S c) rz (A S
ć) rz (A S ć) rz (A S
cz) rz (A S cz) rz (A S
ś) rz (A S ś) rz (A S
sz) rz (A S sz) rz (A S
t) rz S t) rz S
rz (ini_ *ts
rz (inim_ *ts
rz (inimi_ *ts
rz (inich_ *ts
rz (iniemu_ *ts
rz (iniego_ *ts
rz (oni_ *ts
rz (onim_ *ts
rz (onimi_ *ts
rz (onich_ *ts
rz (oniemu_ *ts
rz (oniego_ *ts
r (zi *
A) r (zł *
ma) r (zn *
ma) r (zlin *
_zama) r (za *
_zma) r (za *
odma) r (za *
_bo) r (zoj *
ry' (e *
rz (ini_ Rts
rz (inim_ Rts
rz (inimi_ Rts
rz (inich_ Rts
rz (iniemu_ Rts
rz (iniego_ Rts
rz (oni_ Rts
rz (onim_ Rts
rz (onimi_ Rts
rz (onich_ Rts
rz (oniemu_ Rts
rz (oniego_ Rts
r (zi R
A) r (zł R
ma) r (zn R
ma) r (zlin R
_zama) r (za R
_zma) r (za R
odma) r (za R
_bo) r (zoj R
ry' (e R
.group s .group s


@) son (_S3t sOn @) son (_S3t sOn


skj (A S skj (A S


scherz skE*ts
scherz skERts
sch (ą sx sch (ą sx
sch (ę sx sch (ę sx
pa) sch (a sx pa) sch (a sx
_) sch (lebi sx _) sch (lebi sx
_) sch (etyn sx _) sch (etyn sx


schwarz Sva*ts
schwarz SvaRts
schoe SE schoe SE
sch S sch S


w v w v
w (sk _v w (sk _v
ier) wsz (A S ier) wsz (A S
w (_A f
w (_ f
c) w (A f c) w (A f
ć) w (A f ć) w (A f
cz) w (A f cz) w (A f


_) w (_c f
_) w (_f wE
_) w (_h f
_) w (_k f
_) w (_p f
_) w (_s f
_) w (_t f
_) w (_mn wE // 'w' should be written 'we' before 'mn', but not always
_) w (_ w

f) w (A f f) w (A f
h) w (A f h) w (A f
k) w (A f k) w (A f
_) window wyndOw _) window wyndOw
wee (k wi wee (k wi
_) washi wOSi _) washi wOSi
wrigh *aj
C) wrigh @-*aj
wrigh Raj
C) wrigh Raj


.group x .group x
x ks x ks


.group z .group z
z z z z
z (_A s
z (_ s
z (i Z; z (i Z;
zi (A Z; zi (A Z;
_) zi (p Z;i _) zi (p Z;i
_nie) zi (C z_i _nie) zi (C z_i
zi (C zi zi (C zi


_) z (_c s
_) z (_f s
_) z (_h s
_) z (_k s
_) z (_p s
_) z (_s s
_) z (_t s
_) z (_mn zE // 'z' should be written 'ze' before 'mn', but not always
_) z (_ z

mo) zi (ll zi mo) zi (ll zi
_ro) z (iC z _ro) z (iC z
_) zuri (ch tsu*y
_) zuri (ch tsuRy
_) zz (a_ z_z
zz (ini_ ts zz (ini_ ts
zz (inim_ ts zz (inim_ ts
zz (inimi_ ts zz (inimi_ ts


.group ź .group ź
ź Z; ź Z;
ź (_A S;
ź (_ S;


.group ż .group ż
ż Z ż Z
ż (_A S
ż (_ S


.group th .group th
_e) th (anak t _e) th (anak t
_) the (_A zi
_) the (_ zE
_) the (_ dE
th s th s
th (ie_ s; th (ie_ s;
_) th t _) th t
thew sju
_) thank fENk
thew fju


_) thunderbi (rd fEndE*bE
_) thunderbi (rd fEndERbE


.group dg .group dg
_na) dg dg _na) dg dg
_dy) sh sx _dy) sh sx
_fi) sh (armon sx _fi) sh (armon sx
sh S sh S
shire SajE*
shire SajER
.group ph .group ph
ph f ph f


'ego (_S4 EgO 'ego (_S4 EgO
'emu (_S4 Emu 'emu (_S4 Emu


$ dOla*
@ mawpa
% p@-*OtsEnt
+ plus
# haS
= *'uvna||S;E
/ slES
\ bEkslES
* gv;astka
| k@-*Eska||p;OnOva
^ d'aSEk
& and
` aktsEnt
. k@-*Opka
, pSEts;inEk
$ dOlaR



+ 4
- 4
dictsource/sw_list View File

n en n en
p pi p pi
q kju q kju
r ar
r aR
s es s es
t ti t ti
v vi v vi




// numbers // numbers
_0 sif'u*i
_0 sif'uRi
_1 m'oJa _1 m'oJa
_2 _|mb'ili _2 _|mb'ili
_3 t'atu _3 t'atu
_8 n'ane _8 n'ane
_9 t'isa _9 t'isa
_1X k'umi _1X k'umi
_2X iSi*'ini
_2X iSiR'ini
_3X TeleT'ini _3X TeleT'ini
_4X a*oba'ini
_4X aRoba'ini
_5X hams'ini _5X hams'ini
_6X sit'ini _6X sit'ini
_7X sab'ini _7X sab'ini

+ 3
- 3
dictsource/sw_rules View File

q k q k


.group r .group r
r r
A) r (A *
r R
A) r (A R
C) r (A @-* C) r (A @-*
rr *r
rr RR


.group s .group s
s s s s

+ 42
- 10
dictsource/vi_list View File

z zE3t z zE3t


// numbers // numbers
_0 z'ez,o
_1 m'o6t[
_2 h'a:I
_3 _b'a:
_4 _b'o3n
_5 n'am
_6 s'aU3
_7 _b'aI4
_8 t['a:3m
_9 ts;'i3n
_0 J'e1z.'o // dê-rô
_1 m'o6t[ // một
_2 h'a:I // hai
_3 _b'a: // ba
_4 _b'o3n // bốn
_5 n'am // năm
_6 s.'aU3 // sáu
_7 _b'aI4 // bảy
_8 t['a:3m // tám
_9 c'i3n // chín
_1X m'y@2j // mười
_2X h'a:I||m'y@2j // hai mười
_3X _b'a:||m'y@2j // ba mười
_4X _b'o3n||m'y@2j // bốn mười
_5X n'am||m'y@2j // năm mười
_6X s.'aU3||m'y@2j // sáu mười
_7X _b'aI4||m'y@2j // bảy mười
_8X t['a:3m||m'y@2j // tám mười
_9X c'i3n||m'y@2j // chín mười


_21 h'a:I||m'y@2j||m'o3t[
_31 _b'a:||m'y@2j||m'o3t[
_41 _b'o3n||m'y@2j||m'o3t[
_51 n'am||m'y@2j||m'o3t[
_61 s.'aU3||m'y@2j||m'o3t[
_71 _b'aI4||m'y@2j||m'o3t[
_81 t['a:3m||m'y@2j||m'o3t[
_91 c'i3n||m'y@2j||m'o3t[


_25 h'a:I||m'y@2j||l'a7m
_35 _b'a:||m'y@2j||l'a7m
_45 _b'o3n||m'y@2j||l'a7m
_55 n'am||m'y@2j||l'a7m
_65 s.'aU3||m'y@2j||l'a7m
_75 _b'aI4||m'y@2j||l'a7m
_85 t['a:3m||m'y@2j||l'a7m
_95 c'i3n||m'y@2j||l'a7m


_0C cr'am // trăm
_0M1 N'a:2n // ngàn
_0M2 cr'i@6w // triệu
_0M3 t['i4 // tỷ
_0and l,in^ // linh


// symbols // symbols



+ 96
- 88
dictsource/vi_rules View File

ỵ ỵ ỵ ỵ




//================================
// Consonants
//================================

.group b
b b
_) b _b

.group c
c k
c (_ kh
ch c // try [tS;] [tS] [c]

.group d
d J // try [z] [J] [dZ] [dZ;] [J^]

.group đ
đ d
_) đ _d

.group f
f f


.group g
g Q // try [g] [Q]
gh Q // or [g] [Q]
gi D // try [D] [z] [j] [J^] [z;] [J] [dZ]


.group h
h h


.group j
j Z


.group k
k k
k (_ kh
kh x

.group l
l l

.group m
m m

.group n
n n
ng N
ngh N
nh n^

.group ñ
ñ n^

.group p
p p
ph f

.group q
q k
q (_ kh
qu kw

.group r
r z. // try [z] [z.] [r] [z;]

.group s
s s. // try [s.] [s] [S]

.group t
t t[
th t
tr cr // try [cr] [tr] [tS;] [tS] [c] [dZ] [dz;]

.group v
v v

.group w
w w

.group x
x s

.group z
z z


//================================
// Vowels
//================================

.group a .group a
a a: a a:
ai a:I ai a:I
ậy @I6 ậy @I6
ậu @U6 ậu @U6


//================================
.group b
b b
_) b _b

.group c
c k
c (_ kh
ch c // try [ts;] [tS] [c] [dZ] [dz;]

.group d
d z

.group đ
đ d
_) đ _d


//=========================== //===========================
.group e .group e
e E e E
ệ e6 ệ e6
ệu eU6 ệu eU6


//============================
.group f
f f


.group g
g Q // try [g] [Q]
gh Q // or [g] [Q]
gi D // ??? [dZ]


.group h
h h



//============================ //============================
.group i .group i
ịu iU6 ịu iU6




//=============================
.group j
j Z


.group k
k k
k (_ kh
kh x

.group l
l l

.group m
m m

.group n
n n
ng N
ngh N
nh n^

.group ñ
ñ n^


//========================= //=========================
.group o .group o
ợu @:U6 ợu @:U6




//============================
.group p
p p
ph f

.group q
q k
q (_ kh
qu kw

.group r
r z;

.group s
s s

.group t
t t[
th t
tr c // try [ts;] [tS] [c] [dZ] [dz;]


//============================= //=============================
.group u .group u
u u u u
u (A w u (A w
A) u w
ui uI ui uI
uì uI2 uì uI2
uí uI3 uí uI3
ựu yw6 ựu yw6




//=============================
.group v
v v

.group w
w w

.group x
x s


.group y .group y
y i y i
ỵa i@6 ỵa i@6




.group z
z z

.group .group
$ d'o||l'a $ d'o||l'a
% f'@2n||tS;'am % f'@2n||tS;'am

BIN
phsource/b/xb View File


+ 161
- 111
phsource/compile_report View File

60 phoneme tables
61 phoneme tables
new total new total
base 101 101
base2 24 120
en 51 147
en_n 31 147
en_us 36 148
en_sc 39 149
en_rp 34 147
en_wm 30 147
en_wi 30 147
af 39 133
cy 29 127
de 33 128
eo 13 113
jbo 4 114
fi 40 132
fr 54 138
fr_ca 11 138
hi 52 139
ta 17 142
hu 23 117
lv 28 123
nl 28 124
pl 18 114
sk 29 132
cs 6 132
hr 26 137
mk 3 138
sr 14 137
ru 39 132
it 17 123
la 21 119
es 9 121
es_la 1 121
ca 9 122
pt 28 137
pt_pt 20 137
ro 36 144
el 8 120
grc 12 125
sv 25 123
no 28 127
is 33 127
vi 42 139
zhy 40 134
zh 65 151
sw 14 110
tr 18 125
ku 18 125
id 15 122
rw 15 127
ko 18 149
da 15 131
sq 24 129
ml 13 141
kn 15 141
bn 59 147
ne 23 151
hy 17 115
om 21 121
en_klatt 77 147
base 103 103
base2 24 122
en 51 149
en_n 31 149
en_us 36 150
en_sc 39 151
en_rp 34 149
en_wm 30 149
en_wi 30 149
af 39 135
cy 29 129
de 33 130
eo 13 115
jbo 4 116
fi 40 134
fr 54 140
fr_ca 11 140
hi 59 148
ta 17 151
hu 23 119
lv 28 125
nl 28 126
pl 19 116
sk 28 134
cs 6 134
hr 26 139
mk 3 140
sr 14 139
ru 39 134
it 17 125
la 21 121
es 9 123
es_la 1 123
ca 9 124
pt 28 139
pt_pt 20 139
ro 36 146
el 8 122
grc 12 127
sv 25 125
no 28 129
is 33 129
vi 42 140
zhy 40 136
zh 65 153
sw 14 112
tr 18 127
ku 18 127
id 15 124
rw 15 129
ko 18 158
da 15 133
sq 31 127
ml 13 150
kn 15 150
bn 59 153
ne 18 156
hy 16 116
om 25 125
en_klatt 77 149
ga 18 117


Data file Used by Data file Used by
b/b [b] base b/b [b] base
b/xb [b] base b/xb [b] base
[b] fr [b] fr
[b] hi [b] hi
[bh] hi
[b] bn [b] bn
d/d [d] base d/d [d] base
[d[] base [d[] base
[d] id [d] id
[d] bn [d] bn
[d.] bn [d.] bn
[d`] om
[d[] ga
d/d_ [d] base d/d_ [d] base
[d[] base [d[] base
[d] base2 [d] base2
[d] id [d] id
[d] bn [d] bn
[d.] bn [d.] bn
[d`] om
[d[] ga
d/d_dnt [d] sr d/d_dnt [d] sr
d/dr [*] base d/dr [*] base
[d] base [d] base
[d] id [d] id
[d] bn [d] bn
[d.] bn [d.] bn
[d[] ga
d/tap [*;] ro d/tap [*;] ro
d/tap1 [*] base d/tap1 [*] base
d/tap2 [t#] en_us d/tap2 [t#] en_us
[d] fr [d] fr
[d] hi [d] hi
[d.] hi [d.] hi
[dh] hi
[d] hu [d] hu
[d] pl [d] pl
[d] hr [d] hr
[d] id [d] id
[d] bn [d] bn
[d.] bn [d.] bn
[d[] ga
d/xd2 [d`] om
d/xd3 [dh] hi
d/xd_pzd [d;] pl d/xd_pzd [d;] pl
[d;] ru [d;] ru
d/x_tap [t#] en_us d/x_tap [t#] en_us
[J2] bn [J2] bn
envelope/i_risefall [11] zh envelope/i_risefall [11] zh
envelope/i_risefall2 [+2] rw envelope/i_risefall2 [+2] rw
envelope/p_214 [214] zh
envelope/p_512 [8] vi
envelope/p_214 [5] vi
[214] zh
envelope/p_512 [6] vi
envelope/p_fall [2] vi envelope/p_fall [2] vi
[7] vi [7] vi
[1] zhy [1] zhy
[5] zhy [5] zhy
[44] zh [44] zh
[35] zh [35] zh
envelope/vi_5 [5] vi
envelope/vi_5amp [5] vi envelope/vi_5amp [5] vi
envelope/vi_6 [6] vi
envelope/vi_6amp [6] vi envelope/vi_6amp [6] vi
g2/g [g-] base g2/g [g-] base
g2/g_ [g-] base g2/g_ [g-] base
g2/xg [g-] base g2/xg [g-] base
[g] hi [g] hi
[gh] hi
[g] bn [g] bn
g/g [g] base g/g [g] base
[g] cy [g] cy
[<h>] la [<h>] la
[H] bn [H] bn
[h] bn [h] bn
[a#] om
h/he [h] base h/he [h] base
[h] fi [h] fi
[H] hi [H] hi
[u] fr [u] fr
[u:] fr [u:] fr
[(u)] en_klatt [(u)] en_klatt
l/l_vi [l] vi
l/l_y [y] fr l/l_y [y] fr
l/tl [l] base l/tl [l] base
[l] en [l] en
[r] af [r] af
[R2] lv [R2] lv
[r] nl [r] nl
[R] sk
[R] pl
[r*] sr [r*] sr
[x] pt [x] pt
r3/r_trill2 [R] base r3/r_trill2 [R] base
[r] nl [r] nl
r3/r_trill.wav [R2] base r3/r_trill.wav [R2] base
[R2] lv [R2] lv
[R] sk
[R] pl
[r*] sr [r*] sr
[x] pt [x] pt
r3/r_u [(u)] base r3/r_u [(u)] base
[(u)] en_klatt [(u)] en_klatt
r3/r_ulv [r"] hy
r3/r_uvl [r"] hy
r3/r_ulv [r"] base
r3/r_uvl [r"] base
r3/rx [*] base r3/rx [*] base
[r/] base [r/] base
[r/] af [r/] af
[s#] pt [s#] pt
[z;] ro [z;] ro
[s2] is [s2] is
[s2] om
[s] en_klatt [s] en_klatt
[z] en_klatt [z] en_klatt
ufric/s! [s] base ufric/s! [s] base
[s] es [s] es
[s#] pt [s#] pt
[s2] is [s2] is
[s2] om
[s] en_klatt [s] en_klatt
ufric/s_continue [s2] fi ufric/s_continue [s2] fi
[s2] hu [s2] hu
[s2] lv [s2] lv
[s2] is [s2] is
[s2] om
ufric/sh [S] base ufric/sh [S] base
[S] fr [S] fr
[s#] pt_pt [s#] pt_pt
ufric/x_sr [h] sr ufric/x_sr [h] sr
[x] sr [x] sr
ufric/xx3 [X] base ufric/xx3 [X] base
[Q"] base
[Q] hy [Q] hy
ustop/c [c] base ustop/c [c] base
ustop/c_ejc [c`] om ustop/c_ejc [c`] om
ustop/k [k] base ustop/k [k] base
[k] en [k] en
[k] fr [k] fr
[kh] hi
[k] zhy [k] zhy
[k] sw [k] sw
[kh] bn [kh] bn
[k] en [k] en
[k] fi [k] fi
[k] fr [k] fr
[kh] hi
[k] hu [k] hu
[k] lv [k] lv
[k] sk [k] sk
[k] sw [k] sw
[k] sq [k] sq
[kh] bn [kh] bn
ustop/k_asp [gh] hi
[kh] hi
ustop/k_ejc [k`] om ustop/k_ejc [k`] om
ustop/ki [c] base ustop/ki [c] base
[k] base [k] base
[k] bn [k] bn
ustop/k_unasp_ [k] zh ustop/k_unasp_ [k] zh
ustop/null [?] base ustop/null [?] base
[dh] om
ustop/p [p] base ustop/p [p] base
[p] fr [p] fr
[p2] fr [p2] fr
[ph] zh [ph] zh
[ph] bn [ph] bn
[ph] hy [ph] hy
ustop/p_asp [ph] hi
ustop/p_asp [bh] hi
[ph] hi
[ph] hy [ph] hy
ustop/p_ejc [p`] om ustop/p_ejc [p`] om
ustop/percus10 [(X1] base ustop/percus10 [(X1] base
[t] sk [t] sk
[t] el [t] el
[th] zh [th] zh
[t] sq
[t2] sq
[t.] bn [t.] bn
[t.h] bn [t.h] bn
ustop/t_dnt [t] base ustop/t_dnt [t] base
[t2] en [t2] en
[t] fi [t] fi
[t] hi [t] hi
[dh] hi
[th] hi [th] hi
[t] hu [t] hu
[t] pl [t] pl
[t] sw [t] sw
[t`] ko [t`] ko
[t] bn [t] bn
[t[] ga
ustop/t_dnt2 [t[] vi ustop/t_dnt2 [t[] vi
ustop/t_ejc [t`] om ustop/t_ejc [t`] om
ustop/t_hi [t] hi ustop/t_hi [t] hi
[ts;] ro [ts;] ro
[z] zhy [z] zhy
[tsh] zh [tsh] zh
[ts] sq
[ts] hy [ts] hy
ustop/ts_ [ts] base2 ustop/ts_ [ts] base2
[ts] de [ts] de
[ts] pl [ts] pl
[ts] ru [ts] ru
[ts;] ro [ts;] ro
[ts] sq
[ts] hy [ts] hy
ustop/ts2 [ts] lv ustop/ts2 [ts] lv
ustop/tsh [tS] base ustop/tsh [tS] base
[t] lv [t] lv
[t] sk [t] sk
[t] el [t] el
[t] sq
[t2] sq
[t.] bn [t.] bn
ustop/tsh_pzd [tS;] zh ustop/tsh_pzd [tS;] zh
ustop/tsh_pzd_unasp [tS;] zh ustop/tsh_pzd_unasp [tS;] zh
vdiph2/e[u [e[u] ro vdiph2/e[u [e[u] ro
vdiph2/i@ [i@] en_n vdiph2/i@ [i@] en_n
[i@] hy [i@] hy
[i@] ga
vdiph2/i@_2 [i@] en_wm vdiph2/i@_2 [i@] en_wm
vdiph2/ie [i@] en_wi vdiph2/ie [i@] en_wi
[ie] fi [ie] fi
vdiph2/o_oo [o@] en_wi vdiph2/o_oo [o@] en_wi
[o] is [o] is
[o] zh [o] zh
vdiph2/u-@ [y@] vi
vdiph2/u@ [u@] ga
vdiph2/u#@ [U@] en_sc vdiph2/u#@ [U@] en_sc
vdiph2/uaa [uo] lv vdiph2/uaa [uo] lv
vdiph2/uo [uo] fi vdiph2/uo [uo] fi
vdiph2/yu [yU] nl vdiph2/yu [yU] nl
[yu] zh [yu] zh
vdiph2/y-y# [yY] fi vdiph2/y-y# [yY] fi
[y@] vi
vdiph/8u [oU] en_us vdiph/8u [oU] en_us
[ou] zh [ou] zh
vdiph/aae [aI] en_us vdiph/aae [aI] en_us
[eI] is [eI] is
[eI] vi [eI] vi
[ei] zhy [ei] zhy
[eI] sq
vdiph/eu [eU] base2 vdiph/eu [eU] base2
[eU] en [eU] en
[eU] cy [eU] cy
[eU] vi [eU] vi
[eU] ne [eU] ne
vdiph/eu_2 [eu] fi vdiph/eu_2 [eu] fi
vdiph/@i [@I] vi
[@:I] vi
[@I] ga
vdiph/&i [&i] fi vdiph/&i [&i] fi
[aI] hi [aI] hi
[aI] bn [aI] bn
[@I] ro [@I] ro
[ai] zhy [ai] zhy
vdiph/&i_3 [aI] vi vdiph/&i_3 [aI] vi
vdiph/@i_4 [@I] vi
vdiph/ii [iI] ro vdiph/ii [iI] ro
vdiph/i#i [yI] ro vdiph/i#i [yI] ro
vdiph/oi [oI] base2 vdiph/oi [oI] base2
vdiph/ooi_3 [OI] en_rp vdiph/ooi_3 [OI] en_rp
[aI] en_wm [aI] en_wm
vdiph/ooi_4 [OI] en_us vdiph/ooi_4 [OI] en_us
[OI] sq
vdiph/oou [oU] cs vdiph/oou [oU] cs
[OU] grc [OU] grc
vdiph/ou [ou] fi vdiph/ou [ou] fi
vdiph/ou_3 [oU] is vdiph/ou_3 [oU] is
[oU2] is [oU2] is
vdiph/@u [u:] en_wm vdiph/@u [u:] en_wm
[@U] vi
[@:U] vi
vdiph/@u_2 [oU] en_rp vdiph/@u_2 [oU] en_rp
vdiph/@u_3 [@U] ro vdiph/@u_3 [@U] ro
[@U] ga
vdiph/@u_en [oU] en vdiph/@u_en [oU] en
[@U] id [@U] id
vdiph/ui [uI] base2 vdiph/ui [uI] base2
vdiph/ui_2 [uI] af vdiph/ui_2 [uI] af
vdiph/ui_3 [uI] cy vdiph/ui_3 [uI] cy
[uY] cy [uY] cy
vdiph/Vi [@:I] vi
[VI] ne
vdiph/Vi [VI] ne
vdiph/Vu [@U] af vdiph/Vu [@U] af
[VU] ne [VU] ne
vdiph/Vu_2 [oU] en_wm vdiph/Vu_2 [oU] en_wm
vdiph/Vu_3 [o:] nl vdiph/Vu_3 [o:] nl
vdiph/Vu_4 [@U] vi
[@:U] vi
vdiph/&y [&y] fi vdiph/&y [&y] fi
[Wy] nl [Wy] nl
vdiph/yi [yi] fi vdiph/yi [yi] fi
vdiph/y#y_2 [Yy] af vdiph/y#y_2 [Yy] af
[eoi] zhy [eoi] zhy
vdiph/y#y_3 [Y:] nl vdiph/y#y_3 [Y:] nl
vnasal/aa_n [a~] bn
[a~] ne
vnasal/aa_n [a~] hi
[a~] bn
vnasal/aa_n2 [A~] en vnasal/aa_n2 [A~] en
[A~] fr [A~] fr
vnasal/aa_n3 [A~] af vnasal/aa_n3 [A~] af
[E~] bn [E~] bn
vnasal/ee_u_n [E~] pl vnasal/ee_u_n [E~] pl
vnasal/e_n [e~] af vnasal/e_n [e~] af
[e~] hi
[e~] pt [e~] pt
[e~] bn [e~] bn
[e~] ne
vnasal/i_n [i~] pt vnasal/i_n [i~] pt
[i~] bn [i~] bn
[i:~] bn [i:~] bn
[i~] ne
vnasal/i_n2 [i~] hi
vnasal/m- [m-] sw vnasal/m- [m-] sw
vnasal/n- [n-] sw vnasal/n- [n-] sw
vnasal/nn- [N-] sw vnasal/nn- [N-] sw
[u] zh [u] zh
[u~] bn [u~] bn
[u:~] bn [u:~] bn
[u~] ne
vnasal/V_n [V~] ne
vnasal/V_n [V~] hi
vnasal/W_n [E~] fr vnasal/W_n [E~] fr
[W~] fr [W~] fr
voc/bh [B] base voc/bh [B] base
[D] es [D] es
voc/dh_ [D] base voc/dh_ [D] base
[D] es [D] es
voc/dh_om [d`] om
[D] om
voc/dh_om [D] om
voc/j [J^] base voc/j [J^] base
voc/Q [Q] base voc/Q [Q] base
[Q^] base [Q^] base
[x2] pt [x2] pt
voc/Q_less [Q] nl voc/Q_less [Q] nl
[x2] pt [x2] pt
voc/Q_ulv [Q] hy
voc/Q_ulv [Q"] base
[Q] hy
voc/v [v] base voc/v [v] base
[v] fi [v] fi
[v] fr [v] fr
[v] fr [v] fr
vocw/dh [D] base vocw/dh [D] base
[D] es [D] es
[D] om
[d`] om
[D] en_klatt [D] en_klatt
vocw/Q [Q] base vocw/Q [Q] base
[Q^] base [Q^] base
[@] kn [@] kn
[@4] bn [@4] bn
[@] hy [@] hy
[@] ga
vowel/@- [@-] base vowel/@- [@-] base
[r*] hr [r*] hr
vowel/& [a] en_rp vowel/& [a] en_rp
vowel/0_3 [O] en_sc vowel/0_3 [O] en_sc
[0] en_rp [0] en_rp
[A] hu [A] hu
vowel/@_2 [@] vi
[@:] vi
[@] sq
[V] sq
[@/] sq
vowel/@_3 [@] en_sc vowel/@_3 [@] en_sc
[I] en_sc [I] en_sc
[@2] en_sc [@2] en_sc
[a] zh [a] zh
[a] id [a] id
[a] ko [a] ko
[a] ga
vowel/a# [a/] base2 vowel/a# [a/] base2
[a2] en_sc [a2] en_sc
[a2] en_wi [a2] en_wi
[&/] pt [&/] pt
[a#] rw [a#] rw
[a/] rw [a/] rw
[a] om
[a:] om
vowel/a_2 [a] base2 vowel/a_2 [a] base2
[a] en_wi [a] en_wi
[A:] en_wi [A:] en_wi
[A] pt [A] pt
[a] pt_pt [a] pt_pt
[a] ro [a] ro
[a:] vi
[a] rw [a] rw
[a] da [a] da
vowel/a#_2 [a#] pl vowel/a#_2 [a#] pl
[a2] sv [a2] sv
[&] is [&] is
[a/] sw [a/] sw
[a/] sq
[a] kn [a] kn
[a] om
vowel/a_3 [a] en_sc vowel/a_3 [a] en_sc
[a/] en_sc [a/] en_sc
[A:] en_sc [A:] en_sc
[a] is [a] is
[A] zh [A] zh
[A] da [A] da
[a] sq
vowel/a#_3 [a2] en vowel/a#_3 [a2] en
[a2] en_n [a2] en_n
[a2] en_us [a2] en_us
[a#] ca [a#] ca
[&] pt_pt [&] pt_pt
[&/] pt_pt [&/] pt_pt
[@] vi
[a] zhy [a] zhy
[a/] sq
[a] ml [a] ml
[a] bn [a] bn
[a#] om
vowel/a_4 [a/] el vowel/a_4 [a/] el
[a] vi [a] vi
[a:] om [a:] om
[a] sv [a] sv
[a] sw [a] sw
[a] tr [a] tr
[a] sq
[a:] ml [a:] ml
[a:] kn [a:] kn
[A:] om
[A] om
vowel/a_6 [a] fr vowel/a_6 [a] fr
[a2] fr [a2] fr
[a:] vi
vowel/aa [a] fi vowel/aa [a] fi
[A] fr_ca [A] fr_ca
[a] lv [a] lv
[A:] no [A:] no
[aa] zhy [aa] zhy
[a] hy [a] hy
[A:] ga
vowel/aa# [O] en_us vowel/aa# [O] en_us
[0] en_wi [0] en_wi
[a2] fi [a2] fi
[e#] rw [e#] rw
[e] ko [e] ko
[e] da [e] da
[e] sq
[e] ml [e] ml
[e:] ml [e:] ml
[e:] kn [e:] kn
[e] ne [e] ne
[e:] ga
vowel/e# [I] en_sc vowel/e# [I] en_sc
[I2] en_sc [I2] en_sc
vowel/e_2 [eI] en_sc vowel/e_2 [eI] en_sc
[e] ku [e] ku
vowel/e_5 [i] en_sc vowel/e_5 [i] en_sc
vowel/e_6 [e] om vowel/e_6 [e] om
vowel/e_7 [e] sq
vowel/ee [E] en_n vowel/ee [E] en_n
[E] sv [E] sv
vowel/e_e [E] en_sc vowel/e_e [E] en_sc
[E#] ku [E#] ku
[&] da [&] da
vowel/ee#_2 [E-] sv vowel/ee#_2 [E-] sv
[E] sq
vowel/ee_3 [&] af vowel/ee_3 [&] af
[&:] af [&:] af
[E] pt [E] pt
[E] vi [E] vi
vowel/ee_4 [E] sq
vowel/ee_6 [&] sk vowel/ee_6 [&] sk
[E3] sv [E3] sv
[E] ku [E] ku
[e] sw [e] sw
[e] tr [e] tr
[E] ko [E] ko
[e#] sq
[e] kn [e] kn
[E] om [E] om
[E#] om
[E] ga
vowel/@_fnt [@] en_wi vowel/@_fnt [@] en_wi
[@2] en_wi [@2] en_wi
[@2] hr [@2] hr
[i] ne [i] ne
[i] hy [i] hy
[i:] om [i:] om
[i:] ga
vowel/i# [y:] cy vowel/i# [y:] cy
vowel/i_2 [i2] de vowel/i_2 [i2] de
[i:] de [i:] de
[i] hu [i] hu
[I] it [I] it
[i] is [i] is
[i] vi
[i] da [i] da
vowel/i_5 [i:] en_sc vowel/i_5 [i:] en_sc
vowel/i#_5 [y] pt_pt vowel/i#_5 [y] pt_pt
[i/] pt_pt [i/] pt_pt
[y] ro [y] ro
vowel/i_6 [i] ta
vowel/i_6 [i] hi
[i] ta
[i] lv [i] lv
[i:] lv [i:] lv
[i] hr [i] hr
[i] kn [i] kn
vowel/i#_6 [i.] zh vowel/i#_6 [i.] zh
vowel/i_7 [i] pl vowel/i_7 [i] pl
[i] sq
vowel/i#_7 [i[] zh vowel/i#_7 [i[] zh
vowel/i_en [i:] en vowel/i_en [i:] en
[i:] en_us [i:] en_us
[i] vi
vowel/i_fnt [i:] en_wi vowel/i_fnt [i:] en_wi
[i] hi
[i:] hi [i:] hi
[i] bn [i] bn
[i:] bn [i:] bn
[I] is [I] is
[i] zhy [i] zhy
[I] ku [I] ku
[I#] sq
[I] om [I] om
[I#] om
[I] ga
vowel/ii# [Y] cy vowel/ii# [Y] cy
[Y] ru [Y] ru
[I] ku [I] ku
[i] sq [i] sq
[e#] sq
[y] ml [y] ml
[y] kn [y] kn
vowel/ii_2 [i] zh vowel/ii_2 [i] zh
[I] pt [I] pt
[y] pt [y] pt
[i/] pt [i/] pt
[i] sq
[I] sq
vowel/ii_en [i] en vowel/ii_en [i] en
[i] sq [i] sq
vowel/ii_final [i] en_us vowel/ii_final [i] en_us
[o:] kn [o:] kn
[o] bn [o] bn
[o] hy [o] hy
[o:] ga
vowel/o_2 [o:] cy vowel/o_2 [o:] cy
[o2] fr [o2] fr
[o:] hi [o:] hi
[o:] hu [o:] hu
[o:] la [o:] la
[o:] no [o:] no
[o] vi
[o] ko [o] ko
[o] da [o] da
[o:] bn [o:] bn
[o] zhy [o] zhy
[O] tr [O] tr
[O] id [O] id
[O] ga
vowel/oo_1 [O:] en_n vowel/oo_1 [O:] en_n
[O:] en_rp [O:] en_rp
[O@] en_rp [O@] en_rp
[o] sk [o] sk
[o:] sk [o:] sk
[o] hr [o] hr
[o] vi
[O/] sq [O/] sq
vowel/oo_2 [0] en_sc vowel/oo_2 [0] en_sc
[O] cy [O] cy
[O] it [O] it
[O] bn [O] bn
[O] om [O] om
[O#] om
vowel/oo_5 [O] pl vowel/oo_5 [O] pl
[O] is [O] is
[O] sq [O] sq
vowel/u_5 [u] lv vowel/u_5 [u] lv
[u:] lv [u:] lv
[u] sw [u] sw
vowel/u#_5 [y] vi
vowel/u_6 [U] pt_pt vowel/u_6 [U] pt_pt
[u] pt_pt [u] pt_pt
[u] ku [u] ku
[u] rw [u] rw
[u#] rw [u#] rw
[u] ko [u] ko
[u] sq
[u:] bn [u:] bn
[u] ne [u] ne
[u] hy [u] hy
[u:] ga
vowel/u_bck2 [u:] la vowel/u_bck2 [u:] la
[u] sq
vowel/u_fnt [u:] en_rp vowel/u_fnt [u:] en_rp
vowel/uu [U] en vowel/uu [U] en
[U] en_n [U] en_n
[u] zhy [u] zhy
[U] bn [U] bn
[U] om [U] om
[U#] om
[U] ga
vowel/u_unr [u-] ko vowel/u_unr [u-] ko
vowel/V [3] en_sc vowel/V [3] en_sc
vowel/V_2 [V] en vowel/V_2 [V] en
[V] ta [V] ta
[V] bn [V] bn
vowel/V_4 [V] en_sc vowel/V_4 [V] en_sc
[@:] vi
[V] da [V] da
vowel/V_6 [V] en_us vowel/V_6 [V] en_us
[@] sq
[V] sq
vowel/y [y:] en vowel/y [y:] en
[y:] de [y:] de
[y] fi [y] fi
[Y:] hu [Y:] hu
[8] nl [8] nl
[Y] ro [Y] ro
[y] vi
[oe] zhy [oe] zhy
[Y] ko [Y] ko
vowel/y## [y#] is vowel/y## [y#] is
[y] grc [y] grc
[y] is [y] is
[y] hy [y] hy
vweak/@ [@#] om
vwl_af/@ [@] af vwl_af/@ [@] af
vwl_af/I [I] af vwl_af/I [I] af
vwl_af/r@ [@] af vwl_af/r@ [@] af
vwl_no/y# [Y:] no vwl_no/y# [Y:] no
vwl_no/y#y [Yy] no vwl_no/y#y [Yy] no
vwl_ro/ii- [I^] ro vwl_ro/ii- [I^] ro
[I#] om
vwl_ro/li [I^] ro vwl_ro/li [I^] ro
vwl_ro/mi [I^] ru vwl_ro/mi [I^] ru
[I^] ro [I^] ro
[w] pl [w] pl
[w] sk [w] sk
[w] pt_pt [w] pt_pt
[w] sq
w/wa [(a)] base w/wa [(a)] base
w/we [(e)] base w/we [(e)] base
w/wi [(i)] base w/wi [(i)] base
[d] id [d] id
[d] bn [d] bn
[d.] bn [d.] bn
[d`] om
[d] en_klatt [d] en_klatt
[d[] ga
x/d_dnt [d[] base x/d_dnt [d[] base
[d] base2 [d] base2
[d] fi [d] fi
[d;] ro [d;] ro
[d] sw [d] sw
[d] bn [d] bn
[d[] ga
x/d_pzd [d;] pl x/d_pzd [d;] pl
[d;] ru [d;] ru
x/dzh [J] base x/dzh [J] base

BIN
phsource/d/xd View File


BIN
phsource/dzh/dz_pzd View File


BIN
phsource/dzh/dzh View File


BIN
phsource/dzh/xdz_pzd View File


BIN
phsource/dzh/xdzh View File


+ 5
- 5
phsource/envelope/vi_5amp View File

ENVELOPE ENVELOPE
0 100
34 100
50 63
66 100
100 100
0 95
33 95
49 55
65 95
100 95

+ 10
- 3
phsource/envelope/vi_6amp View File

ENVELOPE ENVELOPE
0 100 0 100
34 100 34 100
50 100
63 100
100 20
47 66
64 100
73 100
74 0
85 95
86 95
92 95
94 0
100 0






BIN
phsource/g/xg View File


BIN
phsource/g2/xg View File


+ 8
- 4
phsource/mbrola/in1 View File

0 @2 NULL 0 a 0 @2 NULL 0 a
0 @3 NULL 0 a 0 @3 NULL 0 a
0 @4 NULL 0 a 0 @4 NULL 0 a
0 i NULL 0 ii
0 i: NULL 0 ii 0 i: NULL 0 ii
0 I NULL 0 i
0 I NULL 0 ii
0 e: NULL 0 e 0 e: NULL 0 e
0 e NULL 0 e 0 e NULL 0 e
0 E: NULL 0 ai 0 E: NULL 0 ai
0 a: NULL 0 aa 0 a: NULL 0 aa
0 o: NULL 0 o 0 o: NULL 0 o
0 o NULL 0 o 0 o NULL 0 o
0 O NULL 0 o
0 O: NULL 0 au 0 O: NULL 0 au
0 o~ NULL 0 o
0 O~ NULL 0 au
0 U NULL 0 uu 0 U NULL 0 uu
0 u: NULL 0 uu 0 u: NULL 0 uu
0 aI NULL 0 ai 0 aI NULL 0 ai
0 aU NULL 0 au 0 aU NULL 0 au


0 o~ NULL 60 o n
0 O~ NULL 60 au n
0 u~ NULL 60 uu n

0 H NULL 0 h 0 H NULL 0 h
0 t. NULL 0 T 0 t. NULL 0 T
0 t.h NULL 0 Th 0 t.h NULL 0 Th
0 j NULL 0 y 0 j NULL 0 y
0 S NULL 0 sh 0 S NULL 0 sh
0 s. NULL 0 sh 0 s. NULL 0 sh
0 l. NULL 0 l



+ 2
- 2
phsource/ph_english_us View File



phoneme aI@ phoneme aI@
vowel starttype (a) endtype (@) vowel starttype (a) endtype (@)
length 260
length 300
formants vwl_en_us/ai@ formants vwl_en_us/ai@
linkout r- linkout r-
endphoneme endphoneme


phoneme aU@ phoneme aU@
vowel starttype (a) endtype (@) vowel starttype (a) endtype (@)
length 260
length 270
formants vwl_en/aU@ formants vwl_en/aU@
linkout r- linkout r-
endphoneme endphoneme

+ 83
- 66
phsource/ph_hindi View File

phoneme i // as [i:] but not marked as 'long' phoneme i // as [i:] but not marked as 'long'
vowel starttype (i) endtype (i) vowel starttype (i) endtype (i)
length 230 length 230
formants vowel/i_fnt
formants vowel/i_6
linkout ; linkout ;
endphoneme endphoneme


formants vowel/e_mid formants vowel/e_mid
endphoneme endphoneme


phoneme E~
vowel starttype (e) endtype (e)
length 230
formants vnasal/ee_n2
endphoneme


phoneme &: phoneme &:
vowel long starttype (a) endtype (a) vowel long starttype (a) endtype (a)
length 220 length 220
formants vowel/oo_4 formants vowel/oo_4
endphoneme endphoneme


phoneme o~
vowel long starttype (o) endtype (o)
length 220
formants vnasal/o_n
endphoneme

phoneme O~
vowel long starttype (o) endtype (o)
length 230
formants vnasal/oo_n2
endphoneme



phoneme O phoneme O
vowel starttype (o) endtype (o) vowel starttype (o) endtype (o)
endphoneme endphoneme




// Nasal vowels
//=============

phoneme i~
vowel long starttype (i) endtype (i)
length 220
formants vnasal/i_n2
endphoneme

phoneme e~
vowel long starttype (e) endtype (e)
length 220
formants vnasal/e_n
endphoneme

phoneme E~
vowel starttype (e) endtype (e)
length 230
formants vnasal/ee_n2
endphoneme

phoneme a~
vowel long starttype (a) endtype (a)
length 250
formants vnasal/aa_n
endphoneme

phoneme V~
vowel long starttype (@) endtype (@)
length 250
formants vnasal/V_n
endphoneme

phoneme O~
vowel long starttype (o) endtype (o)
length 230
formants vnasal/oo_n2
endphoneme

phoneme o~
vowel long starttype (o) endtype (o)
length 220
formants vnasal/o_n
endphoneme

phoneme u~ phoneme u~
vowel long starttype (u) endtype (u) vowel long starttype (u) endtype (u)
length 230 length 230
endphoneme endphoneme




//phoneme bh // use [b]+[h]
// vcd blb stop
// vowelout f1=1 f2=1000 -500 -300 f3=-300 80 brk
// formants b/b+x/b
// before _ b/b_+x/b_
// before (a) b/ba+x/b
// before (@) b/b@+x/b
// before (e) b/be+x/b
// before (i) b/bi+x/b
// before (o) b/bo+x/b
// before (u) b/bu+x/b
// before @- b/b@2+x/b
// after _ NULL
// after @ b/xb
// lengthmod 5
// switchvoicing p
//endphoneme
phoneme bh
vcd blb stop
vowelin f1=0 f2=1000 -50 -100 f3=-200 80
vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30
lengthmod 5
formants b/xb+ustop/p_asp%70
after @ b/xb
switchvoicing ph
endphoneme









phoneme th // dental variant of /t/ phoneme th // dental variant of /t/
vls dnt stop vls dnt stop
vowelin f1=0 f2=1500 -300 300 f3=-100 80
vowelin f1=0 f2=1500 -300 300 f3=-100 80 amp=16
vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
lengthmod 2 lengthmod 2
wave ustop/t_dnt%50 wave ustop/t_dnt%50
endphoneme endphoneme




phoneme dh
vcd dnt stop
vowelin f1=0 f2=1500 -300 300 f3=-100 80
vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
lengthmod 5
formants d/xd3+ustop/t_dnt%40
before _ ustop/t_dnt%35
after @ d/xd
switchvoicing th
endphoneme


//phoneme dh // use [d]+[h]
// vcd dnt stop
// vowelin f1=1 f2=1700 -200 200 f3=100 80
// vowelout f1=1 f2=1700 -200 200 f3=100 80 rms=20 len=1
// formants d/d+x/d_dnt%60
// before _ d/d_+x/d_
// before r d/dr+x/d_dnt%60
// after _ NULL
// after @ d/xd
// lengthmod 5
// switchvoicing t
//endphoneme






vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70 vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
vowelout f1=0 f2=2700 400 600 f3=300 80 colr=1 vowelout f1=0 f2=2700 400 600 f3=300 80 colr=1
lengthmod 2 lengthmod 2
wave ustop/ts_pzd2%80
wave ustop/ts_pzd2%90
before _ ustop/ts_pzd_ before _ ustop/ts_pzd_
switchvoicing J switchvoicing J
endphoneme endphoneme
switchvoicing g switchvoicing g
endphoneme endphoneme


phoneme kh // this is english [k]
phoneme kh
vls vel stop vls vel stop
vowelin f1=0 f2=2300 200 300 f3=-150 80 vowelin f1=0 f2=2300 200 300 f3=-150 80
vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20 vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20
lengthmod 2 lengthmod 2
wave ustop/k
before _ ustop/k_
wave ustop/k_asp%90
before _ ustop/k_asp%50
before r ustop/kr before r ustop/kr
before l ustop/kl before l ustop/kl
switchvoicing g switchvoicing g
endphoneme endphoneme




phoneme g //
phoneme g
vcd vel stop vcd vel stop
vowelin f1=1 f2=2300 200 300 f3=-300 80 vowelin f1=1 f2=2300 200 300 f3=-300 80
vowelout f1=1 f2=2300 250 300 f3=-300 80 brk vowelout f1=1 f2=2300 250 300 f3=-300 80 brk
lengthmod 5 lengthmod 5
endphoneme endphoneme


//phoneme gh // this is English [g] // use [g]+[h]
// vcd vel stop
// vowelin f1=1 f2=2300 200 400 f3=-100 80
// vowelout f1=1 f2=2300 250 300 f3=-300 80 brk
// formants g/g+x/g
// before _ g/g_+x/g_
// after _ NULL
// after @ g/xg
// lengthmod 5
// switchvoicing k
//endphoneme
phoneme gh
vcd dnt stop
vowelin f1=1 f2=2300 200 300 f3=-150 80 rms=20
vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20
lengthmod 5
formants g2/xg+ustop/k_asp%70
after @ g2/xg
switchvoicing kh
endphoneme





+ 1
- 1
phsource/ph_italian View File



phoneme : // Lengthen previous vowel by "length" phoneme : // Lengthen previous vowel by "length"
virtual virtual
length 40
length 50
endphoneme endphoneme





+ 10
- 0
phsource/ph_polish View File

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


phoneme R
liquid
vowelin f1=0 f2=1700 -300 300 f3=-300 80
vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk
formants r3/r_trill+r3/r_trill.wav%50
trill
lengthmod 6
endphoneme


phoneme t phoneme t
vls dnt stop vls dnt stop
vowelin f1=0 f2=1600 -300 300 f3=-100 80 vowelin f1=0 f2=1600 -300 300 f3=-100 80

+ 0
- 9
phsource/ph_slovak View File

endphoneme endphoneme




phoneme R
liquid
vowelin f1=0 f2=1700 -300 300 f3=-300 80
vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk
formants r3/r_trill+r3/r_trill.wav%50
trill
lengthmod 6
endphoneme



phoneme R^ // Czech r-caron phoneme R^ // Czech r-caron
vcd pla frc sibilant vcd pla frc sibilant

+ 34
- 31
phsource/ph_vi View File

//==================================================== //====================================================




phoneme 1 // tone: level
phoneme 1 // ngang tone: level
stress stress
length 11 length 11
tone 28 32 envelope/p_level NULL tone 28 32 envelope/p_level NULL
endphoneme endphoneme




phoneme 2 // tone: low falling
phoneme 2 // huyền tone: low falling
stress stress
length 12 length 12
tone 20 8 envelope/p_fall NULL tone 20 8 envelope/p_fall NULL
endphoneme endphoneme




phoneme 3 // tone rising
phoneme 3 // sắc tone rising
stress stress
length 13 length 13
tone 28 43 envelope/p_rise NULL
tone 25 50 envelope/p_rise NULL
endphoneme endphoneme




phoneme 4 // tone curve (dipping rising)
phoneme 4 // hỏi tone curve (dipping rising)
stress stress
length 14 length 14
tone 28 5 envelope/p_fallrise NULL
tone 30 5 envelope/p_fallrise NULL
endphoneme endphoneme




phoneme 5 // tone: broken (creaking rising)
phoneme 5 // ngã tone: broken (creaking rising)
stress stress
length 15 length 15
tone 28 45 envelope/vi_5 envelope/vi_5amp
tone 30 55 envelope/p_214 envelope/vi_5amp
endphoneme endphoneme




phoneme 6 // tone drop (constricted)
phoneme 6 // nặng tone drop (constricted)
stress stress
length 16 length 16
tone 30 5 envelope/vi_6 envelope/vi_6amp
tone 40 20 envelope/p_512 envelope/vi_6amp
endphoneme endphoneme




phoneme 7 // tone 1 at end of clause
phoneme 7 // tone 1 (ngang) at end of clause
stress stress
length 17 length 17
tone 30 20 envelope/p_fall NULL
tone 40 20 envelope/p_fall NULL
endphoneme endphoneme




phoneme 8 // TEST
stress
length 18
tone 30 6 envelope/p_512 NULL
endphoneme


// Vowels // Vowels
//======= //=======
phoneme a: phoneme a:
vowel starttype (a) endtype (a) vowel starttype (a) endtype (a)
length 280 length 280
formants vowel/a_2
formants vowel/a_6
endphoneme endphoneme




phoneme i phoneme i
vowel starttype (i) endtype (i) vowel starttype (i) endtype (i)
length 190 length 190
formants vowel/i_en
formants vowel/i_4
after w w/wi after w w/wi
linkout ; linkout ;
endphoneme endphoneme
phoneme o phoneme o
vowel starttype (o) endtype (o) vowel starttype (o) endtype (o)
length 200 length 200
formants vowel/oo_1
formants vowel/o_2
endphoneme endphoneme




phoneme y phoneme y
vowel starttype (u) endtype (u) vowel starttype (u) endtype (u)
length 200 length 200
formants vowel/y#
formants vowel/u#_5
endphoneme endphoneme




phoneme @ phoneme @
vowel starttype (@) endtype (a) vowel starttype (@) endtype (a)
length 130 length 130
formants vowel/a#_3
formants vowel/@_2
endphoneme endphoneme




phoneme @: phoneme @:
vowel starttype (@) endtype (@) vowel starttype (@) endtype (@)
length 280 length 280
formants vowel/V_4
formants vowel/@_2
endphoneme endphoneme




phoneme @I phoneme @I
vowel starttype (@) endtype (i) vowel starttype (@) endtype (i)
length 250 length 250
formants vdiph/@i_4
formants vdiph/@i
endphoneme endphoneme




phoneme @:I phoneme @:I
vowel starttype (@) endtype (i) vowel starttype (@) endtype (i)
length 250 length 250
formants vdiph/Vi
formants vdiph/@i
endphoneme endphoneme






phoneme aU phoneme aU
vowel starttype (a) endtype (u) vowel starttype (a) endtype (u)
length 230
length 210
formants vdiph/aau_4 formants vdiph/aau_4
endphoneme endphoneme




phoneme a:U phoneme a:U
vowel starttype (a) endtype (u) vowel starttype (a) endtype (u)
length 260
length 270
formants vdiph/au formants vdiph/au
endphoneme endphoneme


phoneme @U phoneme @U
vowel starttype (@) endtype (u) vowel starttype (@) endtype (u)
length 200 length 200
formants vdiph/Vu_4
formants vdiph/@u
endphoneme endphoneme


phoneme @:U phoneme @:U
vowel starttype (@) endtype (u) vowel starttype (@) endtype (u)
length 260
formants vdiph/Vu_4
length 270
formants vdiph/@u
endphoneme endphoneme




phoneme y@ phoneme y@
vowel starttype (i) endtype (@) vowel starttype (i) endtype (@)
length 200 length 200
formants vdiph2/u-@
formants vdiph2/y-y#
endphoneme endphoneme


phoneme u@ phoneme u@
switchvoicing Q switchvoicing Q
endphoneme endphoneme


phoneme l
liquid
length 100
lengthmod 7
beforenotvowel l/
formants l/l_vi
endphoneme


+ 20
- 4
phsource/phonemes View File

endphoneme endphoneme




phoneme r" // uvular trill
vcd uvl frc
formants r3/r_ulv+r3/r_uvl%75
before _ r3/r_ulv+r3/r_uvl%50
lengthmod 6
endphoneme



phoneme l phoneme l
liquid liquid
vcd pla afr sibilant vcd pla afr sibilant
vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70 vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70
vowelout f1=2 f2=2700 400 600 f3=300 80 colr=1 vowelout f1=2 f2=2700 400 600 f3=300 80 colr=1
formants dzh/dz_pzd+x/dzh%40
formants dzh/dz_pzd+x/dzh%45
before _ dzh/dz_pzd_+x/dzh%35 before _ dzh/dz_pzd_+x/dzh%35
after _ NULL after _ NULL
after @ dzh/xdz_pzd after @ dzh/xdz_pzd
vcd pla frc sibilant vcd pla frc sibilant
vowelin f1=0 f2=2000 0 300 f3=-200 80 vowelin f1=0 f2=2000 0 300 f3=-200 80
vowelout f1=2 f2=2000 0 300 f3=-200 80 brk vowelout f1=2 f2=2000 0 300 f3=-200 80 brk
formants voc/zh+vocw/zh
formants voc/zh+vocw/zh%130
before _ voc/zh_+vocw/zh before _ voc/zh_+vocw/zh
lengthmod 6 lengthmod 6
switchvoicing S switchvoicing S
switchvoicing x switchvoicing x
endphoneme endphoneme


phoneme Q" // voiced velar fricative
vcd uvl frc
formants voc/Q_ulv+ufric/xx3%80
before _ voc/Q_ulv+ufric/xx3%60
lengthmod 6
endphoneme





//******************************************************************* //*******************************************************************
phonemetable da is phonemetable da is
include ph_danish include ph_danish


phonemetable sq base2
phonemetable sq base
include ph_albanian include ph_albanian


phonemetable ml hi phonemetable ml hi


phonemetable en_klatt en phonemetable en_klatt en
include ph_english_klatt include ph_english_klatt
]

phonemetable ga base
include ph_irish

BIN
phsource/vdiph/aai View File


BIN
phsource/vdiph/ai_4 View File


BIN
phsource/vdiph/vowelchart.png View File


BIN
phsource/voc/Q_ulv View File


BIN
phsource/voc/zh View File


BIN
phsource/voc/zh_ View File


BIN
phsource/vowel/@_2 View File


BIN
phsource/vowel/V_7 View File


BIN
phsource/vowel/a View File


BIN
phsource/vowel/a_5 View File


BIN
phsource/vowel/e View File


BIN
phsource/vowel/i_4 View File


BIN
phsource/vowel/o_2 View File


BIN
phsource/vowel/u#_5 View File


BIN
phsource/vowel/uu_4 View File


BIN
phsource/vowel/vowelchart.png View File


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

/***************************************************************************
* Copyright (C) 2005,2006 by Jonathan Duddington *
* [email protected] *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/

// Windows command-line version of eSpeak


// conditional compilation options

#define PLATFORM_WINDOWS
#define __WIN32__
#define NEED_WCSTOF
#define NEED_GETOPT

#define PATHSEP '\\'
#define USE_PORTAUDIO
#define ESPEAK_API

// will look for espeak_data directory here, and also in user's home directory
#define PATH_ESPEAK_DATA "/usr/share/espeak-data"

typedef unsigned short USHORT;
typedef unsigned char UCHAR;
typedef double DOUBLEX;




typedef struct {
const char *mnem;
int value;
} MNEM_TAB;
int LookupMnem(MNEM_TAB *table, char *string);



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

extern void strncpy0(char *to,const char *from, int size);
int GetFileLength(const char *filename);
char *Alloc(int size);
void Free(void *ptr);

/***************************************************************************
* Copyright (C) 2005,2006 by Jonathan Duddington *
* [email protected] *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
// Windows command-line version of eSpeak
// conditional compilation options
#define PLATFORM_WINDOWS
#define __WIN32__
#define NEED_WCSTOF
#define NEED_GETOPT
#define PATHSEP '\\'
#define USE_PORTAUDIO
#define ESPEAK_API
#define INCLUDE_KLATT
// will look for espeak_data directory here, and also in user's home directory
#define PATH_ESPEAK_DATA "/usr/share/espeak-data"
typedef unsigned short USHORT;
typedef unsigned char UCHAR;
typedef double DOUBLEX;
typedef struct {
const char *mnem;
int value;
} MNEM_TAB;
int LookupMnem(MNEM_TAB *table, char *string);
#define N_PATH_HOME 220
extern char path_home[N_PATH_HOME]; // this is the espeak-data directory
extern void strncpy0(char *to,const char *from, int size);
int GetFileLength(const char *filename);
char *Alloc(int size);
void Free(void *ptr);

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

//#define __cdecl // define as null, needed for Borland compiler ? //#define __cdecl // define as null, needed for Borland compiler ?
//#define USE_PORTAUDIO //#define USE_PORTAUDIO
//#define USE_NANOSLEEP //#define USE_NANOSLEEP
#define INCLUDE_KLATT


// 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"






#define N_PATH_HOME 120
#define N_PATH_HOME 220
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);

+ 3
- 1
src/compiledata.cpp View File

{"f4", 0x300000a}, {"f4", 0x300000a},
{"paus", 0x300000b}, {"paus", 0x300000b},
{"colr=",0x300000c}, {"colr=",0x300000c},
{"amp=", 0x300000d},
{"amp=", 0x300000d}, // set rms of 1st frame as fraction of rms of 2nd frame (1/30ths)

{"", -1} {"", -1}
}; };


vcolour = NextItem(tNUMBER); vcolour = NextItem(tNUMBER);
break; break;
case 13: case 13:
// set rms of 1st frame as fraction of rms of 2nd frame (1/30ths)
rms = (Range(NextItem(tNUMBER), 1, 0, 31) & 0x1f) | 0x20; rms = (Range(NextItem(tNUMBER), 1, 0, 31) & 0x1f) | 0x20;
flags |= 1; flags |= 1;
break; break;

+ 1
- 0
src/compiledict.cpp View File

{"$alt2", 21}, {"$alt2", 21},


{"$max3", 27}, // limit to 3 repetitions
{"$brk", 28}, // a shorter $pause {"$brk", 28}, // a shorter $pause
{"$text", 29}, // word translates to replcement text, not phonemes {"$text", 29}, // word translates to replcement text, not phonemes



+ 51
- 1
src/dictionary.cpp View File

// match the word against a list of utf-8 strings // match the word against a list of utf-8 strings
char *p; char *p;
char *w; char *w;
int len;


p = letterGroups[group]; p = letterGroups[group];
if(p == NULL) if(p == NULL)


while(*p != RULE_GROUP_END) while(*p != RULE_GROUP_END)
{ {
w = word;
if(pre)
{
len = strlen(p);
w = word - len + 1;
}
else
{
w = word;
}
while(*p == *w) while(*p == *w)
{ {
w++; w++;
p++; p++;
} }
if(*p == 0) if(*p == 0)
{
if(pre)
return(len);
return(w-word); // matched a complete string return(w-word); // matched a complete string
}


while(*p++ != 0); // skip to end of string while(*p++ != 0); // skip to end of string
} }


unsigned char vowel_stress[N_WORD_PHONEMES/2]; unsigned char vowel_stress[N_WORD_PHONEMES/2];
char syllable_weight[N_WORD_PHONEMES/2]; char syllable_weight[N_WORD_PHONEMES/2];
char vowel_length[N_WORD_PHONEMES/2];
unsigned char phonetic[N_WORD_PHONEMES]; unsigned char phonetic[N_WORD_PHONEMES];


static char consonant_types[16] = {0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0}; static char consonant_types[16] = {0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0};
// long vowel, increase syllable weight // long vowel, increase syllable weight
weight++; weight++;
} }
vowel_length[ix] = weight;


if(lengthened) p++; // advance over phonLENGTHEN if(lengthened) p++; // advance over phonLENGTHEN


} }
} }
} }
if(langopts.stress_flags & 0x80000)
{
// stress on last syllable if it has a long vowel, but previous syllable has a short vowel
if(vowel_length[vowel_count - 1] > vowel_length[vowel_count - 2])
{
stressed_syllable = vowel_count - 1;
}
}


if(vowel_stress[stressed_syllable] == 1) if(vowel_stress[stressed_syllable] == 1)
{ {
} }
p += (wc_bytes-1); p += (wc_bytes-1);
} }
else
{
phonemes_repeat_count = 0;
}
} }
} }


// any language specific changes ? // any language specific changes ?
ApplySpecialAttribute(phonemes,dict_flags0); ApplySpecialAttribute(phonemes,dict_flags0);
memcpy(p_start,word_copy,strlen(word_copy)); memcpy(p_start,word_copy,strlen(word_copy));

return(0); return(0);
} /* end of TranslateRules */ } /* end of TranslateRules */




found = LookupDict2(word, word1, ph_out, flags, end_flags, wtab); found = LookupDict2(word, word1, ph_out, flags, end_flags, wtab);


if(flags[0] & FLAG_MAX3)
{
if(strcmp(ph_out, phonemes_repeat) == 0)
{
phonemes_repeat_count++;
if(phonemes_repeat_count > 3)
{
ph_out[0] = 0;
}
}
else
{
strncpy0(phonemes_repeat, ph_out, sizeof(phonemes_repeat));
phonemes_repeat_count = 1;
}
}
else
{
phonemes_repeat_count = 0;
}


if((found == 0) && (flags[1] & FLAG_ACCENT)) if((found == 0) && (flags[1] & FLAG_ACCENT))
{ {
int letter; int letter;

+ 10
- 4
src/espeak.cpp View File



FILE *f_text=NULL; FILE *f_text=NULL;
char *p_text=NULL; char *p_text=NULL;
FILE *f_phonemes_out = stderr;
FILE *f_phonemes_out = stdout;
char *data_path = NULL; // use default path for espeak-data char *data_path = NULL; // use default path for espeak-data


int option_index = 0; int option_index = 0;
int option_linelength = 0; int option_linelength = 0;
int option_waveout = 0; int option_waveout = 0;


char filename[120];
espeak_VOICE voice_select;
char filename[200];
char voicename[40]; char voicename[40];
char voice_mbrola[20]; char voice_mbrola[20];
char dictname[40]; char dictname[40];


if(espeak_SetVoiceByName(voicename) != EE_OK) if(espeak_SetVoiceByName(voicename) != EE_OK)
{ {
fprintf(stderr,"%svoice '%s'\n",err_load,voicename);
exit(2);
memset(&voice_select,0,sizeof(voice_select));
voice_select.languages = voicename;
if(espeak_SetVoiceByProperties(&voice_select) != EE_OK)
{
fprintf(stderr,"%svoice '%s'\n",err_load,voicename);
exit(2);
}
} }


if(flag_compile) if(flag_compile)

+ 30
- 9
src/readclause.cpp View File

0x037e, // Greek question mark (looks like semicolon) 0x037e, // Greek question mark (looks like semicolon)
0x0387, // Greek semicolon, ano teleia 0x0387, // Greek semicolon, ano teleia
0x0964, // Devanagari Danda (fullstop) 0x0964, // Devanagari Danda (fullstop)
0x3001, // ideograph comma
0x3002, // ideograph period


0x0589, // Armenian period 0x0589, // Armenian period
0x055d, // Armenian comma 0x055d, // Armenian comma
0x055e, // Armenian question 0x055e, // Armenian question
0x055b, // Armenian emphasis mark 0x055b, // Armenian emphasis mark


0x1362, // Ethiopic period
0x1363,
0x1364,
0x1365,
0x1366,
0x1367,
0x1368,

0x3001, // ideograph comma
0x3002, // ideograph period

0xff01, // fullwidth exclamation 0xff01, // fullwidth exclamation
0xff0c, // fullwidth comma 0xff0c, // fullwidth comma
0xff0e, // fullwidth period 0xff0e, // fullwidth period
CLAUSE_QUESTION, // Greek question mark CLAUSE_QUESTION, // Greek question mark
CLAUSE_SEMICOLON, // Greek semicolon CLAUSE_SEMICOLON, // Greek semicolon
CLAUSE_PERIOD+0x8000, // Devanagari Danda (fullstop) CLAUSE_PERIOD+0x8000, // Devanagari Danda (fullstop)
CLAUSE_COMMA+0x8000, // ideograph comma
CLAUSE_PERIOD+0x8000, // ideograph period


CLAUSE_PERIOD+0x8000, // Armenian period CLAUSE_PERIOD+0x8000, // Armenian period
CLAUSE_COMMA, // Armenian comma CLAUSE_COMMA, // Armenian comma
CLAUSE_QUESTION + PUNCT_IN_WORD, // Armenian question CLAUSE_QUESTION + PUNCT_IN_WORD, // Armenian question
CLAUSE_PERIOD + PUNCT_IN_WORD, // Armenian emphasis mark CLAUSE_PERIOD + PUNCT_IN_WORD, // Armenian emphasis mark


CLAUSE_PERIOD, // Ethiopic period
CLAUSE_COMMA, // Ethiopic comma
CLAUSE_SEMICOLON, // Ethiopic semicolon
CLAUSE_COLON, // Ethiopic colon
CLAUSE_COLON, // Ethiopic preface colon
CLAUSE_QUESTION, // Ethiopic question mark
CLAUSE_PERIOD, // Ethiopic paragraph

CLAUSE_COMMA+0x8000, // ideograph comma
CLAUSE_PERIOD+0x8000, // ideograph period

CLAUSE_EXCLAMATION+0x8000, // fullwidth CLAUSE_EXCLAMATION+0x8000, // fullwidth
CLAUSE_COMMA+0x8000, CLAUSE_COMMA+0x8000,
CLAUSE_PERIOD+0x8000, CLAUSE_PERIOD+0x8000,
#define SSML_AUDIO 11 #define SSML_AUDIO 11
#define SSML_EMPHASIS 12 #define SSML_EMPHASIS 12
#define SSML_BREAK 13 #define SSML_BREAK 13
#define SSML_METADATA 14
#define SSML_IGNORE_TEXT 14
#define HTML_BREAK 15 #define HTML_BREAK 15
#define SSML_CLOSE 0x10 // for a closing tag, OR this with the tag type #define SSML_CLOSE 0x10 // for a closing tag, OR this with the tag type


{"audio", SSML_AUDIO}, {"audio", SSML_AUDIO},
{"emphasis", SSML_EMPHASIS}, {"emphasis", SSML_EMPHASIS},
{"break", SSML_BREAK}, {"break", SSML_BREAK},
{"metadata", SSML_METADATA},
{"metadata", SSML_IGNORE_TEXT},


{"br", HTML_BREAK}, {"br", HTML_BREAK},
{"li", HTML_BREAK}, {"li", HTML_BREAK},
{"h3", SSML_PARAGRAPH}, {"h3", SSML_PARAGRAPH},
{"h4", SSML_PARAGRAPH}, {"h4", SSML_PARAGRAPH},
{"hr", SSML_PARAGRAPH}, {"hr", SSML_PARAGRAPH},
{"script", SSML_IGNORE_TEXT},
{"style", SSML_IGNORE_TEXT},
{NULL,0}}; {NULL,0}};




SSML_STACK *sp; SSML_STACK *sp;
const char *v_id; const char *v_id;
int voice_name_specified; int voice_name_specified;
int voice_found;
espeak_VOICE voice_select; espeak_VOICE voice_select;
char voice_name[40]; char voice_name[40];
char language[40]; char language[40];


voice_select.name = voice_name; voice_select.name = voice_name;
voice_select.languages = language; voice_select.languages = language;
v_id = SelectVoice(&voice_select);
v_id = SelectVoice(&voice_select, &voice_found);
if(v_id == NULL) if(v_id == NULL)
return("default"); return("default");
return(v_id); return(v_id);
} }
break; break;


case SSML_METADATA:
case SSML_IGNORE_TEXT:
ignore_text = 1; ignore_text = 1;
break; break;


case SSML_SUB + SSML_CLOSE: case SSML_SUB + SSML_CLOSE:
case SSML_METADATA + SSML_CLOSE:
case SSML_IGNORE_TEXT + SSML_CLOSE:
ignore_text = 0; ignore_text = 0;
break; break;



+ 12
- 5
src/speak.cpp View File

static int optional_argument; static int optional_argument;
static const char *arg_opts = "afklpsvw"; // which options have arguments static const char *arg_opts = "afklpsvw"; // which options have arguments
static char *opt_string=""; static char *opt_string="";
#define no_argument 0
#define no_argument 0
#define required_argument 1 #define required_argument 1
#define optional_argument 2 #define optional_argument 2
#endif #endif
int flag_stdin = 0; int flag_stdin = 0;
int flag_compile = 0; int flag_compile = 0;
int pitch_adjustment = 50; int pitch_adjustment = 50;
char filename[120];
espeak_VOICE voice_select;
char filename[200];
char voicename[40]; char voicename[40];
char dictname[40]; char dictname[40];


option_endpause = 1; option_endpause = 1;
option_phoneme_input = 1; option_phoneme_input = 1;
option_multibyte = espeakCHARS_AUTO; // auto option_multibyte = espeakCHARS_AUTO; // auto
f_trans = stderr;
f_trans = stdout;


#ifdef NEED_GETOPT #ifdef NEED_GETOPT
optind = 1; optind = 1;
opt_string = "";
while(optind < argc) while(optind < argc)
{ {
int len; int len;


if(SetVoiceByName(voicename) != EE_OK) if(SetVoiceByName(voicename) != EE_OK)
{ {
fprintf(stderr,"%svoice '%s'\n",err_load,voicename);
exit(2);
memset(&voice_select,0,sizeof(voice_select));
voice_select.languages = voicename;
if(SetVoiceByProperties(&voice_select) != EE_OK)
{
fprintf(stderr,"%svoice '%s'\n",err_load,voicename);
exit(2);
}
} }


SetParameter(espeakRATE,speed,0); SetParameter(espeakRATE,speed,0);

+ 7
- 4
src/speak_lib.cpp View File





ESPEAK_API espeak_ERROR espeak_SetVoiceByName(const char *name) ESPEAK_API espeak_ERROR espeak_SetVoiceByName(const char *name)
{//===================================================
{//============================================================
ENTER("espeak_SetVoiceByName"); ENTER("espeak_SetVoiceByName");


#ifdef USE_ASYNC
//#ifdef USE_ASYNC
// I don't think there's a need to queue change voice requests
#ifdef deleted
espeak_ERROR a_error; espeak_ERROR a_error;


if(synchronous_mode) if(synchronous_mode)




ESPEAK_API espeak_ERROR espeak_SetVoiceByProperties(espeak_VOICE *voice_selector) ESPEAK_API espeak_ERROR espeak_SetVoiceByProperties(espeak_VOICE *voice_selector)
{//=====================================================================
{//==============================================================================
ENTER("espeak_SetVoiceByProperties"); ENTER("espeak_SetVoiceByProperties");


#ifdef USE_ASYNC
//#ifdef USE_ASYNC
#ifdef deleted
espeak_ERROR a_error; espeak_ERROR a_error;


if(synchronous_mode) if(synchronous_mode)

+ 1
- 1
src/synthdata.cpp View File

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


const char *version_string = "1.39.29 23.Nov.08";
const char *version_string = "1.39.36 03.Dec.08";
const int version_phdata = 0x013900; const int version_phdata = 0x013900;


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

+ 31
- 21
src/tr_languages.cpp View File

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


static const unsigned char stress_amps_sk[8] = {16,16, 20,20, 20,24, 24,22 };
static const unsigned char stress_amps_sk[8] = {17,17, 20,20, 20,24, 24,22 };
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};


// 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()


case L('d','a'): // Danish case L('d','a'): // Danish
{ {
static const unsigned char stress_amps_da[] = {16,16, 20,20, 20,24, 24,22 };
static const short stress_lengths_da[8] = {160,140, 200,200, 0,0, 220,210}; static const short stress_lengths_da[8] = {160,140, 200,200, 0,0, 220,210};
tr = new Translator(); tr = new Translator();
SetupTranslator(tr,stress_lengths_da,stress_amps_da);
SetupTranslator(tr,stress_lengths_da,NULL);


tr->langopts.stress_rule = 0; tr->langopts.stress_rule = 0;
SetLetterVowel(tr,'y'); SetLetterVowel(tr,'y');
} }
break; break;


#ifdef deleted
case L('g','a'): // Irish Gaelic
{
tr = new Translator();

tr->langopts.stress_rule = 1;
}
break;
#endif

case L('h','i'): // Hindi case L('h','i'): // Hindi
case L('n','e'): // Nepali case L('n','e'): // Nepali
{ {
case L('b','s'): // Bosnian case L('b','s'): // Bosnian
case L('s','r'): // Serbian case L('s','r'): // Serbian
{ {
static const unsigned char stress_amps_hr[8] = {16,16, 20,20, 20,24, 24,22 };
static const unsigned char stress_amps_hr[8] = {17,17, 20,20, 20,24, 24,22 };
static const short stress_lengths_hr[8] = {180,160, 200,200, 0,0, 220,230}; static const short stress_lengths_hr[8] = {180,160, 200,200, 0,0, 220,230};
static const short stress_lengths_sr[8] = {160,150, 200,200, 0,0, 250,260}; static const short stress_lengths_sr[8] = {160,150, 200,200, 0,0, 250,260};




case L('i','s'): // Icelandic case L('i','s'): // Icelandic
{ {
static const unsigned char stress_amps_is[] = {16,16, 20,20, 20,24, 24,22 };
static const short stress_lengths_is[8] = {180,160, 200,200, 0,0, 240,250}; static const short stress_lengths_is[8] = {180,160, 200,200, 0,0, 240,250};
static const wchar_t is_lettergroup_B[] = {'c','f','h','k','p','t','x',0xfe,0}; // voiceless conants, including 'þ' ?? 's' static const wchar_t is_lettergroup_B[] = {'c','f','h','k','p','t','x',0xfe,0}; // voiceless conants, including 'þ' ?? 's'


tr = new Translator(); tr = new Translator();
SetupTranslator(tr,stress_lengths_is,stress_amps_is);
SetupTranslator(tr,stress_lengths_is,NULL);
tr->langopts.stress_rule = 0; tr->langopts.stress_rule = 0;
tr->langopts.stress_flags = 0x10; tr->langopts.stress_flags = 0x10;
tr->langopts.param[LOPT_IT_LENGTHEN] = 0x11; // remove lengthen indicator from unstressed vowels tr->langopts.param[LOPT_IT_LENGTHEN] = 0x11; // remove lengthen indicator from unstressed vowels


case L('i','t'): // Italian case L('i','t'): // Italian
{ {
static const short stress_lengths_it[8] = {150, 140, 180, 180, 0, 0, 270, 320};
static const unsigned char stress_amps_it[8] = {15,14, 19,19, 20,24, 24,22 };
static const short stress_lengths_it[8] = {150, 140, 170, 170, 0, 0, 300, 330};
static const unsigned char stress_amps_it[8] = {15,14, 19,19, 20,22, 22,20 };


tr = new Translator(); tr = new Translator();
SetupTranslator(tr,stress_lengths_it,stress_amps_it); SetupTranslator(tr,stress_lengths_it,stress_amps_it);
{ {
static wchar_t vowels_cyrillic[] = {0x440, // also include 'р' [R] static wchar_t vowels_cyrillic[] = {0x440, // also include 'р' [R]
0x430,0x435,0x438,0x439,0x43e,0x443,0x44b,0x44d,0x44e,0x44f,0x450,0x451,0x456,0x457,0x45d,0x45e,0}; 0x430,0x435,0x438,0x439,0x43e,0x443,0x44b,0x44d,0x44e,0x44f,0x450,0x451,0x456,0x457,0x45d,0x45e,0};
static const unsigned char stress_amps_mk[8] = {16,16, 20,20, 20,24, 24,22 };
static const unsigned char stress_amps_mk[8] = {17,17, 20,20, 20,24, 24,22 };
static const short stress_lengths_mk[8] = {180,160, 200,200, 0,0, 220,230}; static const short stress_lengths_mk[8] = {180,160, 200,200, 0,0, 220,230};


tr = new Translator(); tr = new Translator();


case L('n','o'): // Norwegian case L('n','o'): // Norwegian
{ {
static const unsigned char stress_amps_no[] = {16,16, 20,20, 20,24, 24,22 };
static const short stress_lengths_no[8] = {160,140, 200,200, 0,0, 220,210}; static const short stress_lengths_no[8] = {160,140, 200,200, 0,0, 220,210};
tr = new Translator(); tr = new Translator();
SetupTranslator(tr,stress_lengths_no,stress_amps_no);
SetupTranslator(tr,stress_lengths_no,NULL);


tr->langopts.stress_rule = 0; tr->langopts.stress_rule = 0;
SetLetterVowel(tr,'y'); SetLetterVowel(tr,'y');


case L('o','m'): case L('o','m'):
{ {
static const unsigned char stress_amps_om[] = {16,16, 20,20, 20,24, 24,22 };
static const unsigned char stress_amps_om[] = {18,15, 20,20, 20,22, 22,22 };
static const short stress_lengths_om[8] = {200,200, 200,200, 0,0, 200,200}; static const short stress_lengths_om[8] = {200,200, 200,200, 0,0, 200,200};
tr = new Translator(); tr = new Translator();
SetupTranslator(tr,stress_lengths_om,stress_amps_om); SetupTranslator(tr,stress_lengths_om,stress_amps_om);


tr->langopts.stress_rule = 3;
tr->langopts.stress_rule = 2;
tr->langopts.stress_flags = 0x16 + 0x80000;
} }
break; break;




case L('s','q'): // Albanian case L('s','q'): // Albanian
{ {
static const short stress_lengths_sq[8] = {170, 170, 170, 170, 0, 0, 250, 270};
static const unsigned char stress_amps_sq[8] = {17,12, 17,17, 20,20, 24,22 };
static const short stress_lengths_sq[8] = {150, 150, 180, 180, 0, 0, 300, 300};
static const unsigned char stress_amps_sq[8] = {16,12, 16,16, 20,20, 21,19 };
tr = new Translator(); tr = new Translator();
SetupTranslator(tr,stress_lengths_sq,stress_amps_sq); SetupTranslator(tr,stress_lengths_sq,stress_amps_sq);
tr->langopts.stress_flags = 0x4 + 0x10;

tr->langopts.stress_rule = 2;
tr->langopts.stress_flags = 0x16 + 0x100;
SetLetterVowel(tr,'y'); SetLetterVowel(tr,'y');
tr->langopts.numbers = 0x69 + 0x8000; tr->langopts.numbers = 0x69 + 0x8000;
} }


case L('v','i'): // Vietnamese case L('v','i'): // Vietnamese
{ {
static const short stress_lengths_vi[8] = {150, 150, 180, 180, 210, 220, 220, 280};
static const unsigned char stress_amps_vi[] = {16,16, 16,16, 24,24, 24,22 };
static const short stress_lengths_vi[8] = {150, 150, 180, 180, 210, 230, 230, 240};
static const unsigned char stress_amps_vi[] = {16,16, 16,16, 22,22, 22,22 };
static wchar_t vowels_vi[] = { static wchar_t vowels_vi[] = {
0x61, 0xe0, 0xe1, 0x1ea3, 0xe3, 0x1ea1, // a 0x61, 0xe0, 0xe1, 0x1ea3, 0xe3, 0x1ea1, // a
0x103, 0x1eb1, 0x1eaf, 0x1eb3, 0x1eb5, 0x1eb7, // ă 0x103, 0x1eb1, 0x1eaf, 0x1eb3, 0x1eb5, 0x1eb7, // ă
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable


tr->langopts.stress_rule = 0; tr->langopts.stress_rule = 0;
tr->langopts.word_gap = 0x20; // length of a final vowel is less dependent on the next consonant
tr->langopts.vowel_pause = 4;
tr->langopts.word_gap = 0x21; // length of a final vowel is less dependent on the next consonant, don't merge consonant with next word
// tr->langopts.vowel_pause = 4;
tr->letter_groups[0] = vowels_vi; tr->letter_groups[0] = vowels_vi;
// tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words
tr->langopts.tone_language = 1; // Tone language, use CalcPitches_Tone() rather than CalcPitches() tr->langopts.tone_language = 1; // Tone language, use CalcPitches_Tone() rather than CalcPitches()
tr->langopts.unstressed_wd1 = 2; tr->langopts.unstressed_wd1 = 2;
tr->langopts.numbers = 0x0049;


} }
break; break;

+ 2
- 1
src/translate.cpp View File

Translator::Translator() Translator::Translator()
{//===================== {//=====================
int ix; int ix;
static const unsigned char stress_amps2[] = {16,16, 20,20, 20,24, 24,21 };
static const unsigned char stress_amps2[] = {17,17, 20,20, 20,24, 24,21 };
static const short stress_lengths2[8] = {182,140, 220,220, 220,240, 260,280}; static const short stress_lengths2[8] = {182,140, 220,220, 220,240, 260,280};
static const wchar_t empty_wstring[1] = {0}; static const wchar_t empty_wstring[1] = {0};
static const wchar_t punct_in_word[2] = {'\'', 0}; // allow hyphen within words static const wchar_t punct_in_word[2] = {'\'', 0}; // allow hyphen within words
expect_verb_s=0; expect_verb_s=0;
end_stressed_vowel=0; end_stressed_vowel=0;
prev_dict_flags = 0; prev_dict_flags = 0;
phonemes_repeat_count = 0;


sbuf[0] = 0; sbuf[0] = 0;
sbuf[1] = ' '; sbuf[1] = ' ';

+ 4
- 1
src/translate.h View File

#define FLAG_ALT_TRANS 0x100000 // language specific #define FLAG_ALT_TRANS 0x100000 // language specific
#define FLAG_ALT2_TRANS 0x200000 // language specific #define FLAG_ALT2_TRANS 0x200000 // language specific


#define FLAG_MAX3 0x08000000 // limit to 3 repeats
#define FLAG_PAUSE1 0x10000000 // shorter prepause #define FLAG_PAUSE1 0x10000000 // shorter prepause
#define FLAG_TEXTMODE 0x20000000 // word translates to replacement text, not phonemes #define FLAG_TEXTMODE 0x20000000 // word translates to replacement text, not phonemes
#define BITNUM_FLAG_TEXTMODE 29 #define BITNUM_FLAG_TEXTMODE 29
// bit16= Don't diminish consecutive syllables within a word. // bit16= Don't diminish consecutive syllables within a word.
// bit17= "priority" stress reduces other primary stress to "unstressed" not "secondary" // bit17= "priority" stress reduces other primary stress to "unstressed" not "secondary"
// bit18= don't lengthen short vowels more than long vowels at end-of-clause // bit18= don't lengthen short vowels more than long vowels at end-of-clause
// bit19=stress on final syllable if it has a long vowel, but previous syllable has a short vowel


int stress_flags; int stress_flags;
int unstressed_wd1; // stress for $u word of 1 syllable int unstressed_wd1; // stress for $u word of 1 syllable


char phon_out[300]; char phon_out[300];
char word_phonemes[N_WORD_PHONEMES]; // a word translated into phoneme codes char word_phonemes[N_WORD_PHONEMES]; // a word translated into phoneme codes
char phonemes_repeat[20];
int phonemes_repeat_count;


unsigned char stress_amps[8]; unsigned char stress_amps[8];
unsigned char stress_amps_r[8]; unsigned char stress_amps_r[8];

+ 1
- 1
src/voice.h View File

extern voice_t *voice; extern voice_t *voice;
extern int tone_points[12]; extern int tone_points[12];


const char *SelectVoice(espeak_VOICE *voice_select);
const char *SelectVoice(espeak_VOICE *voice_select, int *found);
espeak_VOICE *SelectVoiceByName(espeak_VOICE **voices, const char *name); espeak_VOICE *SelectVoiceByName(espeak_VOICE **voices, const char *name);
voice_t *LoadVoice(const char *voice_name, int control); voice_t *LoadVoice(const char *voice_name, int control);
voice_t *LoadVoiceVariant(const char *voice_name, int variant); voice_t *LoadVoiceVariant(const char *voice_name, int variant);

+ 15
- 6
src/voices.cpp View File

static int breath_widths[N_PEAKS] = {0,200,200,400,400,400,600,600,600}; static int breath_widths[N_PEAKS] = {0,200,200,400,400,400,600,600,600};


// default is: pitch 82,118 // default is: pitch 82,118
voice->pitch_base = 0x49000; // default, 73 << 12;
voice->pitch_range = 0x0f30; // default = 0x1000
// voice->pitch_base = 0x49000; // default, 73 << 12;
// voice->pitch_range = 0x0f30; // default = 0x1000
voice->pitch_base = 0x47000;
voice->pitch_range = 3996;

voice->formant_factor = 256; voice->formant_factor = 256;


voice->echo_delay = 0; voice->echo_delay = 0;
matching_parts += matching; // number of parts which match matching_parts += matching; // number of parts which match


if(matching_parts == 0) if(matching_parts == 0)
break; // no matching parts for this language
continue; // no matching parts for this language


x = 5; x = 5;
// reduce the score if not all parts of the required language match // reduce the score if not all parts of the required language match






char const *SelectVoice(espeak_VOICE *voice_select)
{//================================================
char const *SelectVoice(espeak_VOICE *voice_select, int *found)
{//============================================================
// Returns a path within espeak-voices, with a possible +variant suffix // Returns a path within espeak-voices, with a possible +variant suffix
// variant is an output-only parameter // variant is an output-only parameter
int nv; // number of candidates int nv; // number of candidates
static espeak_VOICE voice_variants[N_VOICE_VARIANTS]; static espeak_VOICE voice_variants[N_VOICE_VARIANTS];
static char voice_id[50]; static char voice_id[50];


*found = 1;
memcpy(&voice_select2,voice_select,sizeof(voice_select2)); memcpy(&voice_select2,voice_select,sizeof(voice_select2));


if(n_voices_list == 0) if(n_voices_list == 0)
if(nv == 0) if(nv == 0)
{ {
// no matching voice, choose the default // no matching voice, choose the default
*found = 0;
if((voices[0] = SelectVoiceByName(voices_list,"default")) != NULL) if((voices[0] = SelectVoiceByName(voices_list,"default")) != NULL)
nv = 1; nv = 1;
} }
espeak_ERROR SetVoiceByProperties(espeak_VOICE *voice_selector) espeak_ERROR SetVoiceByProperties(espeak_VOICE *voice_selector)
{//============================================================ {//============================================================
const char *voice_id; const char *voice_id;
int voice_found;

voice_id = SelectVoice(voice_selector, &voice_found);


voice_id = SelectVoice(voice_selector);
if(voice_found == 0)
return(EE_NOT_FOUND);


LoadVoiceVariant(voice_id,0); LoadVoiceVariant(voice_id,0);
DoVoiceChange(voice); DoVoiceChange(voice);

+ 30
- 40
src/wavegen.cpp View File



FILE *f_log = NULL; FILE *f_log = NULL;
int option_waveout = 0; int option_waveout = 0;
int option_harmonic1 = 11; // 10
int option_harmonic1 = 10; // 10
int option_log_frames = 0; int option_log_frames = 0;
static int flutter_amp = 64; static int flutter_amp = 64;


}; };


// waveform shape table for HF peaks, formants 6,7,8 // waveform shape table for HF peaks, formants 6,7,8
#define N_WAVEMULT 512
#define N_WAVEMULT 128
static int wavemult_offset=0; static int wavemult_offset=0;
static int wavemult_max=0; static int wavemult_max=0;


218,213,207,201,194,188,181,174,166,159,152,144,136,128,121,113, 218,213,207,201,194,188,181,174,166,159,152,144,136,128,121,113,
105, 98, 90, 83, 76, 69, 62, 55, 49, 43, 37, 32, 27, 22, 18, 14, 105, 98, 90, 83, 76, 69, 62, 55, 49, 43, 37, 32, 27, 22, 18, 14,
11, 8, 5, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 8, 5, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };


// set from y = pow(2,x) * 128, x=-1 to 1 // set from y = pow(2,x) * 128, x=-1 to 1
unsigned char pitch_adjust_tab[MAX_PITCH_VALUE+1] = { unsigned char pitch_adjust_tab[MAX_PITCH_VALUE+1] = {
} }





int WavegenCloseSound() int WavegenCloseSound()
{//==================== {//====================
PaError active; PaError active;


// check whether speaking has finished, and close the stream // check whether speaking has finished, and close the stream
// if(pa_stream != NULL)
if((pa_stream != NULL) && (WcmdqUsed() == 0)) // TEST, also check that queue is empty
if(pa_stream != NULL)
{ {
#if USE_PORTAUDIO == 18 #if USE_PORTAUDIO == 18
active = Pa_StreamActive(pa_stream); active = Pa_StreamActive(pa_stream);
#else #else
active = Pa_IsStreamActive(pa_stream); active = Pa_IsStreamActive(pa_stream);
#endif #endif
if(active == 0)
if(WcmdqUsed() == 0) // also check that the queue is empty
{ {
Pa_CloseStream(pa_stream);
pa_stream = NULL;
return(1);
if(active == 0)
{
Pa_CloseStream(pa_stream);
pa_stream = NULL;
return(1);
}
}
else
{
WavegenOpenSound(); // still items in the queue, shouldn't be closed
} }
} }
return(0); return(0);
} }
} }


// increase bass, up to the F1 peak
h=1;
x = peaks[1].height * 24;
for(f=pitch; f<peaks[1].freq; f+=pitch)
{
int y;
int h2;
// increase bass
y = peaks[1].height * 10; // addition as a multiple of 1/256s
h2 = (1000<<16)/pitch; // decrease until 1000Hz
x = y/h2;
h = 1;
while(y > 0)
{ {
htab[h++] += x;
htab[h++] += y;
y -= x;
} }
}


// find the nearest harmonic for HF peaks where we don't use shape // find the nearest harmonic for HF peaks where we don't use shape
for(; pk<N_PEAKS; pk++) for(; pk<N_PEAKS; pk++)
if((ix = amp_ix>>8) > 127) ix = 127; if((ix = amp_ix>>8) > 127) ix = 127;
amp = amplitude_env[ix]; amp = amplitude_env[ix];
amplitude2 = (amplitude2 * amp)/255; amplitude2 = (amplitude2 * amp)/255;
if(amp < 255)
modulation_type = 7;
// if(amp < 255)
// modulation_type = 7;
} }


// introduce roughness into the sound by reducing the amplitude of // introduce roughness into the sound by reducing the amplitude of

Loading…
Cancel
Save