Browse Source

[1.45.02] Release

Fix Mbrola translation for nl2 (phoneme [w]) and de4 (phoneme [?]).
Fix bug, lang=tr, letter capital-I-dot not recognized on Windows.
Only use "sonic" speed-up above 450wpm.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@258 d46cf337-b52f-0410-862d-fd96e6ae7743
master
jonsd 14 years ago
parent
commit
478fde1a20

+ 2
- 2
dictsource/de_list View File

@@ -109,7 +109,7 @@ _13 'draItse:n
_14 'fIrtse:n
_15 'fynftse:n
_16 'zECtse:n
_17 'zi:btse:n
_17 'zi:ptse:n
_18 '_axtse:n
_19 'nOYntse:n
_2X 'tsvantsIC
@@ -117,7 +117,7 @@ _3X 'draIsIC
_4X 'fIrtsIC
_5X 'fynftsIC
_6X 'zECtsIC
_7X 'zi:btsIC
_7X 'zi:ptsIC
_8X '_axtsIC
_9X 'nOYntsIC
_0C 'hUnd3t

+ 3
- 1
dictsource/de_rules View File

@@ -19,7 +19,7 @@
// ***************************************************************************/

.L01 l r
.L02 c f h k p q s t // unvoiced, except s+vowel
.L02 c f h k p q s t z // unvoiced, except s+vowel

// This file is UTF-8 encoded

@@ -521,6 +521,8 @@
_) ge (imp g@
ge (mach g@
ge (mal g@
_) ge (mK gE
_) ge (nK gE
ge (tr g@
general ge:nEr'al
general (is ge:n@ral

+ 5
- 5
dictsource/dict_phonemes View File

@@ -77,7 +77,7 @@ n n^ p r R R2 s S
s2 t t2 tS ts v z Z


Dictionary de_dict 2011-03-13
Dictionary de_dict 2011-03-14

3 3: @ @- a A A: aI
aU A~ e E E2 E: e: EI
@@ -402,7 +402,7 @@ ts; v v; w w2 x z Z
z; Z;


Dictionary ru_dict 2011-03-10
Dictionary ru_dict 2011-03-14

8 @- a A e E E# E%
E2 i I I# I3 I^ ja ju
@@ -463,7 +463,7 @@ p Q R s S t T tS
v w x z


Dictionary sl_dict 2010-08-14
Dictionary sl_dict 2011-03-14

@ a a: e E e: i i:
o O o: u u: y
@@ -688,7 +688,7 @@ t. th th. tS v w x z
Z


Dictionary kn_dict 2011-03-11
Dictionary kn_dict 2011-03-14

a a: aI aU e E e: i
I i: o o: r- u u:
@@ -713,7 +713,7 @@ R R3 s S t T tS ts
v w x X z


Dictionary te_dict 2011-02-08
Dictionary te_dict 2011-03-14

a a: aI aU e E e: i
i: l- o o: r- u u: V

+ 154
- 0
dictsource/ka_list View File

@@ -0,0 +1,154 @@
// translation rules for Georgian
// This file is UTF-8 encoded

_0 n'uli
_1 'ert#i
_2 'ori
_3 s'ami
_4 'ot#xi
_5 x'ut#i
_6 'ek#vsi
_7 Sv'idi
_8 rv'a
_9 ts#xr'a

_0a n'ul
_1a 'ert#
_2a 'or
_3a s'am
_4a 'ot#x
_5a x'ut#
_6a 'ek#vs
_7a Sv'id

_10 'at#i
_11 t#'ert#meti
_12 t#'ormeti
_13 ts#'ameti
_14 t#'ot#xmeti
_15 t#x'ut#meti
_16 t#'ek#vsmeti
_17 tSv'idmeti
_18 t#vr'ameti
_19 ts#xr'ameti

_10a 'at#
_11a t#'ert#met
_12a t#'ormet
_13a ts#'amet
_14a t#'ot#xmet
_15a t#x'ut#met
_16a t#'ek#vsmet
_17a tSv'idmet
_18a t#vr'amet
_19a ts#xr'amet

_20 'ots#i
_20a 'ots#
_2X 'ots#
_40 'ormotsi
_40a 'ormots
_4X 'ormots
_60 s'amotsi
_60a s'amots
_6X s'amots
_80 'ot#xotsi
_80a 'ot#xots
_8X 'ot#xots
_0C0 asi
_0C as
_0M1 'at#asi
_0M2 m'ilioni

_0and d%a
_dpt mt#eli_

_0Z1 me'at#edi
_0Z2 me'asedi
_0Z3 me'at#asedi
_0Z4 me'at#iat#asedi
_0Z5 me'asiat#asedi
_0Z6 mem'ilionedi

// letter and symbol names

ა a
_ე e
ი i
ო o
უ u

ბ b'@
გ g'@
დ d'@
ვ v'@
ზ z'@
თ t#'@
კ k'@
ლ l'@
მ m'@
ნ n'@
პ p'@
ჟ Z'@
რ r'@
ს s'@
ტ t'@
ფ p#'@
ქ k#'@
ღ Q'@
ყ q'@
შ S'@
ჩ tS'@
ც ts#'@
ძ dz'@
წ ts'@
ჭ c'@
ხ x'@
ჯ dZ'@
ჰ h'@

ჱ he
ჲ hie
ჳ vie
ჴ har
ჵ hoe
ჶ fi
ჷ shva
ჸ elifi
უ unbrigu


% prots#enti $max3
+ pliusi $max3
= toloba $max3
* varvskvlavi $max3
@ dzaQluka
& da
# n'omeri $max3
! dz'axilis||n,iSani
_? k'it#xvis||n,iSani
. tsertili
_- tire
_: ortsertili
_; tsertilmdzime
_, mdzime
_" br@-cqali
_> metoba
_< nakleboba
_' apostrofi
_` ukuQma||apostrofi
_( m'arts#xena||p#'igur,uli||p#r@-tSx'ili
_) m'ardZvena||p#'igur,uli||p#r@-tSx'ili
_[ m'arts#xena||kv'adrat,uli||p#r@-tSx'ili
_] m'ardZvena||p#'igur,uli||p#r@-tSx'ili
_( m'arts#xena||mr@-gv'ali||p#r@-tSx'ili
_) m'ardZvena||mr@-gv'ali||p#r@-tSx'ili
/ m'arts#xniv||d'axrili||x'azi $max3
\ m'ardZvniv||d'axrili||x'azi $max3

// abbreviations
(http ://) 'ejtStitiphi_

// common function words
და $u $brk

+ 152
- 0
dictsource/ka_rules View File

@@ -0,0 +1,152 @@

// translation rules for Georgian
// This file is UTF-8 encoded
// all words lower case

.group ა
ა a
-) ა (_ %a

.group ბ
ბ b

.group გ
გ g

.group დ
დ d

.group ე
ე e
-) ე (_ %e

.group ვ
ვ v

.group ზ
ზ z

.group თ
თ t#

.group ი
ი i
-) ი (_ %i

.group კ
კ k

.group ლ
ლ l

.group მ
მ m

.group ნ
ნ n

.group ო
ო o
-) ო (_ %o

.group პ
პ p

.group ჟ
ჟ Z

.group რ
რ r
K) რ (CC r@-

.group ს
ს s

.group ტ
ტ t

.group უ
უ u
-) უ (_ %u

.group ფ
ფ p#

.group ქ
ქ k#

.group ღ
ღ Q

.group ყ
ყ q

.group შ
შ S

.group ჩ
ჩ tS

.group ც
ც ts#

.group ძ
ძ dz

.group წ
წ ts

.group ჭ
ჭ c

.group ხ
ხ x

.group ჯ
ჯ dZ

.group ჰ
ჰ h

.group ჱ
ჱ ej

.group ჲ
ჲ j

.group ჳ
ჳ w

.group ჴ
ჴ x

.group ჵ
ჵ o:

.group ჶ
ჶ f

.group ჷ
ჷ @

.group ჸ
ჸ ?

.group ჹ

.group ჺ

// For cyrillic characters (U+0400 to U+04FF) use Russian voice
.group 0xd0
\320 _^_RU
.group 0xd1
\321 _^_RU
.group 0xd2
\322 _^_RU
.group 0xd3
\323 _^_RU

.group
$ dolari

+ 297
- 0
dictsource/kn_list View File

@@ -0,0 +1,297 @@
// This file is UTF8 encoded
// Spelling to phoneme words and exceptions for Kannada
// letter names (consonants)
// speak Latin letters as English
a e:j
b bi:
c si:
d di:
e i:
f Ef
g dZi:
h e:tS
i a:j
j dZe:j
k ke:j
l El
m Em
n En
o o:
p pi:
q kju:
r a:r
s Es
t thi:
u ju:
v vi:
w dabalju:
x Eks
y wa:j
z zEd
_?? aks.ara // 'unknown character'
// letter names
ಕ್ ik
ಖ್ ikh
ಗ್ ig
ಘ್ igh
ಙ್ iN
ಚ್ ic
ಛ್ ich
ಜ್ iJ
ಝ್ iJh
ಞ್ in^
ಟ್ it.
ಠ್ ith.
ಡ್ id.
ಢ್ idh.
ಣ್ in.
ತ್ it
ಥ್ ith
ದ್ id
ಧ್ id.
ನ್ in
ಪ್ ip
ಫ್ iph
ಬ್ ib
ಭ್ ibh
ಮ್ im
ಯ್ ij
ರ್ ir
ಱ್ ir
ಲ್ il
ಳ್ il.
ವ್ iv
ಶ್ iS;
ಷ್ is.
ಸ್ is
ಹ್ ih
ೞ್ if
U+c82 am
U+c83 ah
U+cbc nukta
U+cbd avagraha
U+ccd vattu
// combining vowels, precede by a click so they can be distinguished from stand-alone vowels
ಾ #X2a::
ಿ #X1i
ೀ #X2i::
ು #X1u
ೂ #X2u::
ೃ #X1ru
ೄ #X2r-:
ೆ #X1e
ೇ #X2e::
ೈ #X2aI
ೊ #X1o
ೋ #X2o::
ೌ #X2aU
// symbols
% pratis.ata
! a:scharjachinhe
_? aks.ara
. pu:rn.avira:ma
, alpavira:ma
¼ ka:lu
½ ardha
¾ mukka:lu
(1 / 2) ardha
(1 / 4) ka:lu
(3 / 4) mukka:lu
÷ bha:ga:ka:ra
& mattu
// numbers
_0 s'onne
_1 'ondu
_2 'erad.u
_3 m'u:ru
_4 n'a:lku
_5 'aIdu
_6 'a:ru
_7 'e:l.u
_8 'ent.u
_9 'ombath:u
_1X h'ath:u
_11 hann'ondu
_12 han:erad.u
_13 hadim'u:ru
_14 hadin'a:lku
_15 hadinaIdu
_16 hadina:ru
_17 hadin'e:l.u
_18 hadin'ent.u
_19 ha'th:'ombath:u
_2X Ip:ath:u
_21 'Ip:a'th:ondu
_22 Ip:a'th:erad.u
_23 Ip:a'th:m'u:ru
_24 Ip:a'th:n'a:lku
_25 Ip:a'th:'aIdu
_26 Ip:a'th:a:ru
_27 Ip:a'th:e:l.u
_28 Ip:a'th:ent.u
_29 Ip:a'th:ombath:u
_3X m'ovath:u
_31 m'ovath:ondu
_32 m'ovatherad.u
_33 m'ovathm'u:ru
_34 m'ovathn'a:lku
_35 m'ovath'aIdu
_36 m'ovatha:ru
_37 m'ovathe:l.u
_38 m'ovathent.u
_39 m'ovathombath:u
_4X n'alavath:u
_41 n'alavath:ondu
_42 n'alavatherad.u
_43 n'alavathm'u:ru
_44 n'alavathn'a:lku
_45 n'alavathaIdu
_46 n'alavatha:ru
_47 n'alavathe:l.u
_48 n'alavathent.u
_49 n'alavathombath:u
_5X 'aIvath:u
_51 aIvath:ondu
_52 aIvatherad.u
_53 aIvathm'u:ru
_54 aIvathn'a:lku
_55 aIvath'aIdu
_56 aIvatha:ru
_57 aIvathe:l.u
_58 aIvathent.u
_59 aIvathombath:u
_6X 'aravath:u
_61 aravath:ondu
_62 aravatherad.u
_63 aravathm'u:ru
_64 aravathn'a:lku
_65 aravathaIdu
_66 aravatha:ru
_67 aravathe:l.u
_68 aravathent.u
_69 aravathombath:u
_7X 'Ep:ath:u
_71 Ep:ath:ondu
_72 Ep:atherad.u
_73 Ep:athm'u:ru
_74 Ep:athn'a:lku
_75 Ep:athaIdu
_76 Ep:atha:ru
_77 Ep:athe:l.u
_78 Ep:athent.u
_79 Ep:athombath:u
_8X 'Embath:u
_81 Embath:ondu
_82 Embatherad.u
_83 Embathm'u:ru
_84 Embathn'a:lku
_85 EmbathaIdu
_86 Embatha:ru
_87 Embathe:l.u
_88 Embathent.u
_89 Embathombath:u
_9X th'ombath:u
_91 th'ombath:ondu
_92 th'ombath:erad.u
_93 th'ombathm'u:ru
_94 th'ombathn'a:lku
_95 th'ombathaIdu
_96 th'ombatha:ru
_97 th'ombathe:l.u
_98 th'ombathent.u
_99 th'ombathombath:u
_0C0 n'u:ru
_1C0 nu:ru
_2C0 'innu:ru
_3C0 m'unnu:ru
_5C0 'aInu:ru
_9C0 ombainu:ru
_0C n'u:ra:
_1C nu:ra:
_2C 'innu:ra:
_3C m'unnu:ra:
_5C 'aInu:ra:
_9C ombainu:ra:
_0M1 s'a:virada
_0M1x s'a:vira
_0M2x l'akSa // 100,000
_0M2 l'akSada
_0M3 k'oti // 100,00,000
_0M4 b'ilion // ?? English
_dpt _d'as.a:ms.a
// abbreviations
(http ://) e:tSti:ti:'pi:_
// unstressed words
ಅದು $u // that
ಅದರ $u // that, possessive
ಅವು $u // those
ಅವುಗಳ $u // those, possessive
ಇದು $u // it/this
ಇದರ $u // it/this, possessive
ಇವು $u // these
ಇವುಗಳ $u // these, possessive
ನಾನು $u // I
ನನ್ನ $u // my
ನಾವು $u // we
ನಮ್ಮ $u // our
ನೀನು $u // you
ನಿನ್ನ $u // your
ನೀವು $u // you (formal)
ನಿಮ್ಮ $u // your (formal)
ಅವರು $u // they
ಅವರ $u // their
ಇವರು $u // they
ಇವರ $u // their
ಅವನು $u // he
ಅವನ $u // his
ಇವನು $u // he
ಇವನ $u // his
ತಾವು $u // you (more formal), (also used to indicate self)
ತಮ್ಮ $u // (possessive form of the above) also means (his/her own)
ಅವಳು $u // she
ಅವಳ $u // her
ಇವಳು $u // she
ಇವಳ $u // her
ಕೆಲವು $u // few
ಹಲವು $u // many
ಅನೇಕ $u // several
ಇತರ $u // other
ಮತ್ತು $u $pause // and
ಆದರೆ $u $pause // but
ಆದ್ದರಿಂದ $u $pause // so, therefore.
ಆದಾಗ್ಯೂ $u $pause // though
ಈ $u+ // [i:] (this) $u+ so it's stressed if it's by itself, as a letter name
ಆ $u+ // [a:] (that)
ಇಂದ $u // from
ಯಾವುದು $u // which
ಯಾವುದೇ $u // whichever (adding the "ಏ" in the end of the word, indicates ever)
ಈಗ $u // now.
// ಕ್ಕೆ, ಗೆ, ಗ್ಗೆ to (note: these do not come independently, means they come as a part of the word in the end)
// ದ (adds the possession to words [postfix])

+ 265
- 0
dictsource/kn_rules View File

@@ -0,0 +1,265 @@

// This file is UTF8 encoded
// Spelling to phoneme rules for Kannada

// A means vowel letters (not vowel signs)
// B means a combining vowel sign or a virama


.replace
೦ 0 // Convert Kannada numbers
೧ 1
೨ 2
೩ 3
೪ 4
೫ 5
೬ 6
೭ 7
೮ 8
೯ 9


.group ಕ
ಕ ka
ಕ (B k

.group ಖ
ಖ kha
ಖ (B kh

.group ಗ
ಗ ga
ಗ (B g

.group ಘ
ಘ gha
ಘ (B gh

.group ಙ
ಙ Na
ಙ (B N

.group ಚ
ಚ ca
ಚ (B c

.group ಛ
ಛ cha
ಛ (B ch

.group ಜ
ಜ Ja
ಜ (B J

.group ಝ
ಝ Jha
ಝ (B Jh

.group ಞ
ಞ n^a
ಞ (B n^

.group ಟ
ಟ t.a
ಟ (B t.

.group ಠ
ಠ th.a
ಠ (B th.

.group ಡ
ಡ d.a
ಡ (B d.

.group ಢ
ಢ dh.a
ಢ (B dh.

.group ಣ
ಣ n.a
ಣ (B n.

.group ತ
ತ ta
ತ (B t

.group ಥ
ಥ tha
ಥ (B th

.group ದ
ದ da
ದ (B d

.group ಧ
ಧ dha
ಧ (B dh

.group ನ
ನ na
ನ (B n

.group ಪ
ಪ pa
ಪ (B p

.group ಫ
ಫ pha
ಫ (B ph

.group ಬ
ಬ ba
ಬ (B b

.group ಭ
ಭ bha
ಭ (B bh

.group ಮ
ಮ ma
ಮ (B m

.group ಯ
ಯ ja
ಯ (B j

.group ರ
ರ ra
ರ (B r

.group ಱ
ಱ ra
ಱ (B r

.group ಲ
ಲ la
ಲ (B l

.group ಳ
ಳ l.a
ಳ (B l.

.group ವ
ವ va
ವ (B v

.group ಶ
ಶ S;a
ಶ (B S;

.group ಷ
ಷ s.a
ಷ (B s.

.group ಸ
ಸ sa
ಸ (B s

.group ಹ
ಹ ha
ಹ (B h

.group ೞ
ೞ fa
ೞ (B f

.group ೠ
ೠ r-


// Stand-alone vowels
.group ಅ
ಅ a

.group ಆ
ಆ a:

.group ಇ
ಇ i

.group ಈ
ಈ i:

.group ಉ
ಉ u

.group ಊ
ಊ u:

.group ಋ
ಋ ru

.group ಎ
ಎ e

.group ಏ
ಏ e:

.group ಐ
ಐ aI

.group ಒ
ಒ o

.group ಓ
ಓ o:

.group ಔ
ಔ aU



.group 0xe0b2 // characters which start with UTF-8 bytes: [e0 b2]

ಂ m // anusvara (this should nasalize the vowel)

ಃ h // visarga

// combining vowel signs

ಾ a:

ಿ i


.group 0xe0b3 // characters which start with UTF-8 bytes: [e0 b3]

ೀ i:

ು u

ೂ u:

ೃ ru

ೄ r-:

ೆ e

ೇ e:

ೈ aI

ೊ o

ೋ o:

ೌ aU

್ // virama
// ್ (C y // virama+consonant, insert epenthetic vowel

ೕ : // length mark ??
ೖ : // ai length mark ??


.group 0xe0a4 // devanagari
\340\244 _^_HI // switch to hindi voice for devanagari characters
.group 0xe0a5 // devanagari
\340\245 _^_HI


.group
$ do:l.ar



+ 25
- 0
dictsource/nci_list View File

@@ -0,0 +1,25 @@

// This file is UTF8 encoded
// Spelling to phoneme words for Nahuatl.

// Note: initial/final "." has already been removed

// numeric

//_0 zero $text // TEST
_0 a?tle
_1 se:
_2 O:me
_3 e:ji
_4 na:wi
_5 ma:kwi:lli
_6 tSikwase:
_7 tSicO:me
_8 tSiwke:ji
_9 tSiwkna:wi
_10 ma?tlaktli
_1X ma?tlaktlion
_20 sempO:walli
_2X sempO:wallion
_30 sempO:walliomma?tlaktli
_3X sempO:walliomma?tlaktlion

+ 90
- 0
dictsource/nci_rules View File

@@ -0,0 +1,90 @@
// translation rules for Classical Nahuatl
// This file is UTF-8 encoded

.L01 e ē i ī // letter group for front vowels


.group a
a a

.group ā
ā a:

.group c
c k
c (L01 s
ch tS
cu kw

.group e
e e

.group ē
ē e:
ē (_ 'e: // vocative, stress in final vowel

.group h
h ?
hu w

.group i
i i

.group ī
ī i:

.group l
l l

.group m
m m


.group n
n n

.group o
o o

.group ō
ō o:

.group p
p p

.group q
qu k

.group t
t t

.group u
u o
u (A w
uc wk
uq k
uh w


.group x
x S

.group y
y j

.group z
z s

.group
b b
d d
f f
g g
j x
k k
r R
s s
v v
w w
ç s
# _:

+ 9
- 0
dictsource/ta_rules View File

@@ -173,6 +173,7 @@
_) கி (ரீன்லாந்த g
_) கி (ரீம k
_) க (ிரீஷ g
_) கி (ரீஸ g
_) க (ிருகஸ்தர g
_) க (ிருகிரு g
_) க (ிருஹஸ்தர g
@@ -707,6 +708,7 @@ _தணிகா) ச (ல tSV
சு (வாதீன s
சு (வாமி s
_) சுவாரசி (ய sva:rVs
அ) சுவாரசி (ய sva:rVs
சு (வாரஸ்ய s
_) சு (விட்ச s
_) சு (வீட s
@@ -777,6 +779,7 @@ _ரிப்போர்) ட t.V#
இண்டர்மீடியே) ட t.V#
_) ட (க்கர t.V
ங்) ட (ன t.V // -ington
_நியூ) ட (ன t.V
_மில்) ட (ன t.V
_) ட (ன் t.V
_) ட (ப்_ t.V
@@ -836,6 +839,7 @@ _நாவல்) ட (ி t.
_) ட (ிப்ஸ t.
_) டி (யூசன t.
_) டியூட (ி d.jU:t.
_) டி (யூன t.
_) டி (யூஷன t.
_) டி (ரங் t.
_) டி (ரங்கு t.
@@ -922,6 +926,8 @@ _லான்_) ட (ென்னிஸ t.
_ரெ) ட்ட (ியா d.d.
இ) ட்ட (ிலி d.d.
அப்பாயிண்) ட்மெண்ட t.men.t.V#
_) ட் (யூசன t.
_) ட் (யூன t.
ஸ்) ட் (ர _|t. // ?? make t. distinct
_) ட் (ரங் t.
_) ட் (ரங்கு t.
@@ -1400,6 +1406,7 @@ _காமசூ) த் (ர t
ந nV
ந (B n // dental n
_) நி (யாய n
_) நி (யூ n


.group ன
@@ -2065,12 +2072,14 @@ _பச்சாதா) ப (+ bV#
திரௌ) ப (தி pV
பிரஜா) பத (ி pVt
மகுட) பதி pVti
அலோ) ப (தி pV
பிரகஸ்) பதி pVti
லக்ஷ்மி) பதி pVti
வித்யா) பதி pVti
_ராஷ்டிர) ப (தி pV
அம்பிகா) பதி pVti
இராஷ்டிர) ப (தி pV
மியோ) ப (தி pV
வளையா) பதி pVti
வேங்கட) பதி pVti
_புகு) ப (திகை pV

+ 24
- 10
docs/languages.html View File

@@ -51,7 +51,7 @@ For details of the voice files see <a href="voices.html">Voices</a>.
<p>
<dt>
<strong>en-sc</strong><br>
<dd> Scottish English.
<dd> English with a Scottish accent.
<p>
<dt>
<strong>en-n<br>
@@ -68,7 +68,7 @@ To make alternative voices for a language, you can make additional voice files i
<p>
Alternatively there are some preset voice variants which can be applied to any of the language voices, by appending <code>+</code> and a variant name. Their effects are defined by files in <code>espeak-data/voices/!v</code>.
<p>
The variants are <code> +m1 +m2 +m3 +m4 +m5 </code> for male voices, <code> +f1 +f2 +f3 +f4 </code> for female voices, and <code> +croak +wisper</code> for other effects. For example:
The variants are <code> +m1 +m2 +m3 +m4 +m5 +m6 +m7</code> for male voices, <code> +f1 +f2 +f3 +f4 +f5 </code> for female voices, and <code> +croak +whisper</code> for other effects. For example:
<pre> espeak -ven+m3</pre>
The available voice variants can be listed with:<br>
<pre> espeak --voices=variant</pre>
@@ -96,6 +96,11 @@ The eSpeak speech synthesizer does text to speech for the following additional l
</dd>
<p>
<dt>
<strong>da &nbsp;Danish</strong><br>
<dd>Usable.
</dd>
<p>
<dt>
<strong>de &nbsp;German</strong><br>
<dd>This has improved from easlier versions. A problem is stress placement (which like English is irregular), prosody, and the use of compound words where correct detection of the sub-word boundaries would probably be needed for accurate pronunciation.
</dd>
@@ -143,6 +148,11 @@ This contains a few changes from <strong>es</strong>, notably the pronunciation
<dd>This has had some feedback from a native speaker but more work is needed. Spelling is fairly regular, but stress marks and vowel accents are often omitted from text, so for some words the dictionary/exceptions list will need to determine the stress position or whether to use open/close [e] or [E] and [o] or [O].</dd>
<p>
<dt>
<strong>kn &nbsp;Kannada</strong><br>
<dd>Not much feedback yet, but I'm told that it sounds reasonable.
</dd>
<p>
<dt>
<strong>ku &nbsp;Kurdish</strong><br>
<dd>
Not much work yet, but Kurdish has good spelling rules so it should be OK.
@@ -154,6 +164,11 @@ Not much work yet, but Kurdish has good spelling rules so it should be OK.
</dd>
<p>
<dt>
<strong>nl &nbsp;Dutch</strong><br>
<dd>Needs improvement of the spelling-to-phoneme rules.
</dd>
<p>
<dt>
<strong>pl &nbsp;Polish</strong><br>
<dd>
Usable.
@@ -176,7 +191,7 @@ Usable.
<p>
<dt>
<strong>sk &nbsp;Slovak</strong><br>
<dd>This has had assistance from a nativ speaker, so it should be OK.
<dd>This has had assistance from a native speaker, so it should be OK.
</dd>
<p>
<dt>
@@ -196,8 +211,7 @@ Usable.
<p>
<dt>
<strong>ta &nbsp;Tamil</strong><br>
<dd>
Not much work yet, but I'm told it sounds reasonable.
<dd>This has had assistance from a native speaker, so it should be OK.
</dd>
<p>
<dt>
@@ -255,6 +269,11 @@ These languages are only initial naive implementations which have had little or
</dd>
<p>
<dt>
<strong>ka &nbsp;Georgian</strong><br>
<dd>An initial guess, awaiting feedback.
</dd>
<p>
<dt>
<strong>la &nbsp;Latin</strong><br>
<dd>Stress rules are implemented, but it needs text where long vowels are marked with macrons.
</dd>
@@ -265,11 +284,6 @@ These languages are only initial naive implementations which have had little or
</dd>
<p>
<dt>
<strong>nl &nbsp;Dutch</strong><br>
<dd>Needs improvement of the spelling-to-phoneme rules.
</dd>
<p>
<dt>
<strong>no &nbsp;Norwegian</strong><br>
<dd>An initial guess, awaiting feedback.
</dd>

+ 6
- 6
phsource/compile_report View File

@@ -360,7 +360,7 @@ l/l_ [l] base
[l/] fr
l/l_@ [l/3] base
[l/] fr
l/l@ [h¶p] base
l/l@ [h–x] base
[l#] base
[l] fr
[l/2] fr
@@ -394,7 +394,7 @@ l/L2_oL [l/2] base
l/L2_uL [l/2] base
l/l_3 [l/] de
l/l_4 [ll] sq
l/la [h¶p] base
l/la [h–x] base
[l#] base
[l] fr
[l/2] fr
@@ -402,7 +402,7 @@ l/la [h
[K] tn
l/l_a [l/3] base
[l/] fr
l/le [h¶p] base
l/le [h–x] base
[l#] base
[l] fr
[l/2] fr
@@ -414,7 +414,7 @@ l/L_eL_af [&] af
[&:] af
l/l_front [L] sq
l/l_front_ [l/4] sq
l/li [h¶p] base
l/li [h–x] base
[l#] base
[l] fr
[l/2] fr
@@ -428,7 +428,7 @@ ll/ll [L] bg
ll/_ll [L] bg
l/l_long [l] base
[l] fr
l/lo [h¶p] base
l/lo [h–x] base
[l#] base
[l/2] fr
[K] nso
@@ -438,7 +438,7 @@ l/l_o [l/3] base
l^/l_rfx [l.] base
[l] ru
[l^] ru
l/lu [h¶p] base
l/lu [h–x] base
[l#] base
[l] fr
[l/2] fr

+ 3
- 1
phsource/mbrola/de4 View File

@@ -41,7 +41,6 @@
0 Y: NULL 0 2:
0 OI NULL 0 OY
0 3 NULL 0 6
0 _| NULL 0 ?
0 pF NULL 0 pf
0 r NULL 0 R

@@ -51,6 +50,9 @@
0 A~ NULL 0 a~
0 O~ NULL 0 o~

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

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

+ 6
- 3
phsource/mbrola/nl View File

@@ -16,7 +16,7 @@
0 d; NULL 0 dj
0 J NULL 0 dj
0 n^ NULL 0 nj
0 v2 NULL 0 v
0 v# NULL 0 w
0 s; NULL 0 S
0 C NULL 0 x
0 Q NULL 0 G
@@ -33,6 +33,8 @@
0 Wy NULL 0 9y
0 VU NULL 0 Au
0 eU NULL 70 e W
0 yU NULL 70 y W
0 E2 NULL 0 E


// phonemes for English words
@@ -48,7 +50,7 @@
0 a# NULL 0 @
0 I2 NULL 0 I
0 aa NULL 0 a
0 V NULL 0 @
0 V NULL 0 2
0 U NULL 0 u
0 0 NULL 0 O
0 3: NULL 0 2
@@ -67,7 +69,8 @@
0 aI@ NULL 70 a @
0 aU@ NULL 70 Au @

0 dZ NULL 0 dj
0 dZ VWL 0 dj
0 dZ NULL 0 tj
0 tS NULL 0 tj
0 T NULL 0 t
0 D NULL 0 z

+ 1
- 1
phsource/ph_spanish View File

@@ -98,7 +98,7 @@ phoneme s
ELIF nextPh(p) OR nextPh(t) OR nextPh(k) THEN
WAV(ufric/s!)
ENDIF
WAV(ufric/s)
WAV(ufric/s, 80)
endphoneme



BIN
phsource/vdiph/ai_5 View File


+ 19
- 3
platforms/windows/make_espeak.iss View File

@@ -2,7 +2,7 @@
[Setup]
AppName=eSpeak
AppVerName=eSpeak version 1.44.01
AppVerName=eSpeak version 1.45.01
AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details).
WindowVisible=yes
@@ -13,9 +13,13 @@ Compression=lzma
SolidCompression=yes
ShowLanguageDialog=auto
[Icons]
Name: "{group}\TTSApp"; Filename: "{app}\TTSApp.exe"; WorkingDir: "{app}"
[InstallDelete]
Type: files; Name: "{app}\espeak.dll"
Type: filesandordirs; Name: "{app}\espeak-data\voices\test"
Type: filesandordirs; Name: "{app}\docs"
[Dirs]
Name: "{app}\espeak-data\soundicons"
@@ -30,6 +34,7 @@ Source: "docs\*"; DestDir: "{app}\docs"; Flags: recursesubdirs
Source: "command_line\*"; DestDir: "{app}\command_line"
Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme
Source: "License.txt"; DestDir: "{app}";
Source: "ChangeLog.txt"; DestDir: "{app}";
[Registry]
Root: HKLM; Subkey: "Software\Microsoft\Speech\PhoneConverters\Tokens\eSpeak"; Flags: deletekey uninsdeletekey
@@ -57,7 +62,7 @@ Name: "pt"; MessagesFile: "compiler:Languages\Portuguese.isl"
Name: "ro"; MessagesFile: "compiler:Languages\Romanian.isl"
Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl"
Name: "sk"; MessagesFile: "compiler:Languages\Slovak.isl"
Name: "sq"; MessagesFile: "compiler:Languages\Albanian-2-5.1.11.isl"
;Name: "sq"; MessagesFile: "compiler:Languages\Albanian-2-5.1.11.isl"
Name: "sr"; MessagesFile: "compiler:Languages\Serbian.isl"
Name: "tr"; MessagesFile: "compiler:Languages\Turkish.isl"
Name: "zh"; MessagesFile: "compiler:Languages\ChineseSimp-12-5.1.11.isl"
@@ -150,11 +155,13 @@ begin
$39: Result := 'hi';
$41: Result := 'sw';
$49: Result := 'ta';
//$4b: Result := 'kn';
$4b: Result := 'kn';
//$50: Result := 'mn';
$52: Result := 'cy';
//$5e: Result := 'am';
//$61: Result := 'ne';
//$87: Result := 'rw';
//$88: Result := 'wo';
end;
// is there a match on the full language code?
@@ -191,6 +198,7 @@ begin
// when a SAPI5 voice is installed.
case lang1 of
'af': value := $436;
'am': value := $45e;
'az': value := $42c;
'bg': value := $402;
'bs': value := $41a; // should be $141a but Jaws crashes on startup
@@ -199,12 +207,15 @@ begin
'cy': value := $452;
'da': value := $406;
'de': value := $407;
'dv': value := $465;
'el': value := $408;
'en': value := $409;
'es': value := $40a;
'et': value := $425;
'eu': value := $42d;
'fi': value := $40b;
'fr': value := $40c;
'gu': value := $447;
'hi': value := $439;
'hr': value := $41a;
'hu': value := $40e;
@@ -212,10 +223,12 @@ begin
'id': value := $421;
'is': value := $40f;
'it': value := $410;
'ka': value := $437;
'kn': value := $44b;
'ko': value := $412;
'lv': value := $426;
'mk': value := $42f;
'ml': value := $44c;
'mn': value := $450;
'ne': value := $461;
'nl': value := $413;
@@ -231,8 +244,11 @@ begin
'sv': value := $41d;
'sw': value := $441;
'ta': value := $449;
'te': value := $44a;
'tn': value := $432;
'tr': value := $41f;
'vi': value := $42a;
'wo': value := $488;
'zh': value := $804;
// mbrola voices
'-af': value := $436;

+ 2
- 2
platforms/windows/make_espeakedit.iss View File

@@ -1,7 +1,7 @@
[Setup]
AppName=eSpeakEdit
AppVerName=eSpeakEdit version 1.44.01
AppVerName=eSpeakEdit version 1.45.01
DefaultDirName={pf}\eSpeak
DefaultGroupName=eSpeak
OutputBaseFilename=setup_espeakedit
@@ -50,7 +50,7 @@ Name: "pt"; MessagesFile: "compiler:Languages\Portuguese.isl"
Name: "ro"; MessagesFile: "compiler:Languages\Romanian.isl"
Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl"
Name: "sk"; MessagesFile: "compiler:Languages\Slovak.isl"
Name: "sq"; MessagesFile: "compiler:Languages\Albanian-2-5.1.11.isl"
;Name: "sq"; MessagesFile: "compiler:Languages\Albanian-2-5.1.11.isl"
Name: "sr"; MessagesFile: "compiler:Languages\Serbian.isl"
Name: "tr"; MessagesFile: "compiler:Languages\Turkish.isl"
Name: "zh"; MessagesFile: "compiler:Languages\ChineseSimp-12-5.1.11.isl"

+ 5
- 5
platforms/windows/windows_sapi/version.rc2 View File

@@ -5,8 +5,8 @@
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,44,00
PRODUCTVERSION 1,0,44,00
FILEVERSION 1,0,45,00
PRODUCTVERSION 1,0,45,00
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -24,14 +24,14 @@ BEGIN
VALUE "Comments", "\0"
VALUE "CompanyName", "Jonathan Duddington\0"
VALUE "FileDescription", "Text to Speech\0"
VALUE "FileVersion", "1, 0,44,00\0"
VALUE "InternalName", "espeak1.44\0"
VALUE "FileVersion", "1, 0,45,00\0"
VALUE "InternalName", "espeak1.45\0"
VALUE "LegalCopyright", "Copyright (c) Jonathan Duddington\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "espeak_sapi.dll\0"
VALUE "PrivateBuild", "\0"
VALUE "ProductName", "espeak TTS\0"
VALUE "ProductVersion", "1, 0, 44, 00\0"
VALUE "ProductVersion", "1, 0, 45, 00\0"
VALUE "SpecialBuild", "\0"
END
END

+ 1
- 1
src/Makefile View File

@@ -7,7 +7,7 @@ BINDIR=$(PREFIX)/bin
INCDIR=$(PREFIX)/include/espeak
LIBDIR=$(PREFIX)/lib

RELEASE = 1.44
RELEASE = 1.45
BIN_NAME = speak
BIN2_NAME = espeak
LIB_NAME = libespeak.so

+ 14
- 4
src/readclause.cpp View File

@@ -202,18 +202,18 @@ const int param_defaults[N_SPEECH_PARAM] = {
0, // voice type
};


#ifdef NEED_WCHAR_FUNCTIONS

// additional Latin characters beyond the Latin1 character set
#define MAX_WALPHA 0x233
// indexed by character - 0x100
// 0=not alphabetic, 0xff=lower case, other=value to add to upper case to convert to lower case
// 0=not alphabetic, 0xff=lower case, 0xfe=special case
// other=value to add to upper case to convert to lower case
static unsigned char walpha_tab[MAX_WALPHA-0xff] = {
1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 100
1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 110
1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 120
0xff,0xff, 1,0xff, 1,0xff, 1,0xff,0xff, 1,0xff, 1,0xff, 1,0xff, 1, // 130
0xfe,0xff, 1,0xff, 1,0xff, 1,0xff,0xff, 1,0xff, 1,0xff, 1,0xff, 1, // 130
0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff,0xff, 1,0xff, 1,0xff, 1,0xff, // 140
1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 150
1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 160
@@ -264,6 +264,12 @@ int towlower(int c)
return(tolower(c));
if((c > MAX_WALPHA) || ((x = walpha_tab[c-0x100])==0xff))
return(c); // already lower case
if(x == 0xfe)
{
// special cases
if(c == 0x130) // uppercase i-dot
return('i');
}
return(c + x); // convert to lower case
}

@@ -358,7 +364,11 @@ int towlower2(unsigned int c)
{
c = 0x131; // I -> ı
}
}
}
#ifdef __WIN32__
if(c == 0x130) // uppercase i-dot
return('i');
#endif
return(towlower(c));
}


+ 23
- 6
src/synth_mbrola.cpp View File

@@ -109,7 +109,7 @@ void unload_MBR()

static MBROLA_TAB *mbrola_tab = NULL;
static int mbrola_control = 0;
static int mbr_name_prefix = 0;

espeak_ERROR LoadMbrolaTable(const char *mbrola_voice, const char *phtrans, int srate)
{//===================================================================================
@@ -123,6 +123,7 @@ espeak_ERROR LoadMbrolaTable(const char *mbrola_voice, const char *phtrans, int

mbrola_name[0] = 0;
mbrola_delay = 0;
mbr_name_prefix = 0;

if(mbrola_voice == NULL)
{
@@ -200,16 +201,22 @@ static int GetMbrName(PHONEME_LIST *plist, PHONEME_TAB *ph, PHONEME_TAB *ph_prev
{//==========================================================================================================================================
// Look up a phoneme in the mbrola phoneme name translation table
// It may give none, 1, or 2 mbrola phonemes
int mnem = ph->mnemonic;
MBROLA_TAB *pr;
PHONEME_TAB *other_ph;
int found = 0;
static int mnem;

// control
// bit 0 skip the next phoneme
// bit 1 match this and Previous phoneme
// bit 2 only at the start of a word
// bit 3 don't match two phonemes across a word boundary
// bit 4 add this phoneme name as a prefix to the next phoneme name (used for de4 phoneme prefix '?')

*name2=0;
*split=0;
*control=0;
mnem = ph->mnemonic;

pr = mbrola_tab;
while(pr->name != 0)
@@ -249,15 +256,25 @@ static int GetMbrName(PHONEME_LIST *plist, PHONEME_TAB *ph, PHONEME_TAB *ph_prev
*name2 = pr->mbr_name2;
*split = pr->percent;
*control = pr->control;
return(pr->mbr_name);

if(pr->control & 0x10)
{
mbr_name_prefix = pr->mbr_name;
return(0);
}
mnem = pr->mbr_name;
break;
}
}

pr++;
}
*name2=0;
*split=0;
*control=0;

if(mbr_name_prefix != 0)
{
mnem = (mnem << 8) | (mbr_name_prefix & 0xff);
}
mbr_name_prefix = 0;
return(mnem);
}


+ 2
- 2
src/synthdata.cpp View File

@@ -35,8 +35,8 @@
#include "translate.h"
#include "wave.h"

const char *version_string = "1.44.42 12.Mar.11";
const int version_phdata = 0x014415;
const char *version_string = "1.45.02 15.Mar.11";
const int version_phdata = 0x014500;

int option_device_number = -1;
FILE *f_logespeak = NULL;

+ 1
- 1
src/voices.cpp View File

@@ -411,7 +411,7 @@ void VoiceReset(int tone_only)
voice->samplerate = 22050;
memset(voice->klattv,0,sizeof(voice->klattv));

speed.fast_settings[0] = 400;
speed.fast_settings[0] = 450;
speed.fast_settings[1] = 800;
speed.fast_settings[2] = 175;


Loading…
Cancel
Save