Browse Source

[1.45.31]

Don't omit <marker> event for words which are recognized as pairs (such as "of the").

Lang=Spanish, fix missing "y" in numbers such as "21".

Lang=EN-US, Don't add 'intrusive r' between phoneme [i@] and a following vowel.


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

+ 1
- 1
dictsource/de_list View File

@@ -538,7 +538,7 @@ bronchie $alt

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

dahlie $alt

+ 2
- 0
dictsource/de_rules View File

@@ -500,6 +500,7 @@
_) faks (i f%akz
_) farb (C@P4 f'arp
_) farb (l@P4 f'arb
_) farc fars
_) fein (@P4 f'aIn
_) fertig (C@P6 f'ErtiC
_) fest (@P4 f'Est
@@ -1365,6 +1366,7 @@ formal) ie =I@
_) zigaretten (@P10 tsi:gar'Et@n
_) zigeu tsi:g'OY
_) zu (C@P2 ts%u:
_) zu (ck tsU
_) zu (eP2 ts%u:
_) zu (g@ tsu:
_) zu (gu@P2 ts%u:

+ 9
- 9
dictsource/dict_phonemes View File

@@ -66,7 +66,7 @@ s S t T tS v w x
z Z


Dictionary hu_dict 2011-05-13
Dictionary hu_dict 2011-06-25

a A a: E e: i i: o
o: u u: Y y y: Y:
@@ -77,7 +77,7 @@ n n^ p r R R2 s S
s2 t t2 tS ts v z Z


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

3 @ @- a A A: aI aU
A~ E E2 E: e: EI i I
@@ -101,14 +101,14 @@ p Q r R s s; t T
ts v x z


Dictionary en_dict 2011-05-24
Dictionary en_dict 2011-06-21

0 3 3: @ @- @2 @5 @L
a a# A: A@ aa aI aI@ aU
aU@ A~ E e: e@ eI i I
I2 i: i@ i@3 IR O O: o:
O@ o@ OI oU O~ U u: U@
V VR
I# I2 i: i@ i@3 IR O O:
o: O@ o@ OI oU O~ U u:
U@ V VR

: ; ? b C d D d#
dZ f g h j k l l#
@@ -201,7 +201,7 @@ q r r. s S s. t T
t. th th. v w x z


Dictionary ta_dict 2011-05-23
Dictionary ta_dict 2011-06-25

a a: aI aU e E e: i
I i: o o: u U u2 u:
@@ -326,7 +326,7 @@ k l m n p R s S
t tS v w x


Dictionary nl_dict 2011-05-18
Dictionary nl_dict 2011-06-08

8 @ @- a A a: A~ e
E e# E2 e: EI eU i I
@@ -690,7 +690,7 @@ t. th th. tS v w x z
Z


Dictionary kn_dict 2011-04-06
Dictionary kn_dict 2011-06-25

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

+ 166
- 86
dictsource/en_list
File diff suppressed because it is too large
View File


+ 179
- 102
dictsource/en_rules
File diff suppressed because it is too large
View File


+ 10
- 2
dictsource/hu_list View File

@@ -37,7 +37,7 @@ _1M3 EJmillia:R2d
_2M3 ke:tmillia:R2d

_0M4 billio:
_1M4 billio:
_1M4 EJbillio:
_2M4 ke:tbillio:
_dpt ||Ege:s //Not need the pause before this word

@@ -1764,7 +1764,15 @@ hangoztatta $unstressend
jogok $unstressend
felelt $unstressend
állította $unstressend

járó $unstressend
jelenség $unstressend
nyertesei $unstressend
tartására $unstressend
eset $unstressend
fajták $unstressend
körülményei $unstressend
bízva $unstressend
száma $unstressend
// word pairs

(hogy a) h,oJ,A

+ 6
- 1
dictsource/hu_rules View File

@@ -56,7 +56,6 @@

csz ts|s
papu) cs tS

ar) c (cson ts
mala) c (sá ts
pá) c (só ts
@@ -530,6 +529,7 @@ harmince) gy (edik J:
nem-e) gy (ik J:
e) gy (összeg J:
e) gys (ík J|S //for example egysíkú word need spokening single J and S phoneme
_e) gy (öntet J:

.group h
h h
@@ -1172,6 +1172,9 @@ helyze) tj (el tj
spor) tj (áték tj
rokkan) tj (áradék tj
interne) tj (egy tj
álla) tj (ólét tj
dolgoza) tj (avít tj
természe) tj (ár tj

.group ts
ts (_S2 tS //general rule with word end of ts letters
@@ -1570,6 +1573,8 @@ szellő) z (tet s
magyará) z (kod s
kalau) z (ság z
pofo) z (kod s
ezkö) z (sáv z
eszkö) z (sáv z

.group
$ dolla:R2

+ 4
- 0
dictsource/kn_list View File

@@ -79,6 +79,9 @@ U+c83 ah
U+cbc nukta
U+cbd avagraha
U+ccd vattu
ಫ಼್ if
ಜ಼್ iz
// combining vowels, precede by a click so they can be distinguished from stand-alone vowels
ಾ #X2a::
@@ -245,6 +248,7 @@ _dpt _d'as.a:ms.a
// abbreviations
(http ://) e:tSti:ti:'pi:_
pvt praIvat
// English words

+ 4
- 0
dictsource/kn_rules View File

@@ -50,6 +50,8 @@
.group ಜ
ಜ Ja
ಜ (B J
ಜ಼ za // nukta
ಜ಼ (B z

.group ಝ
ಝ Jha
@@ -106,6 +108,8 @@
.group ಫ
ಫ pha
ಫ (B ph
ಫ಼ fa // nukta
ಫ಼ (B f

.group ಬ
ಬ ba

+ 2
- 0
dictsource/nl_list View File

@@ -1476,6 +1476,8 @@ verderop $3
volledig $2
vrouwengek $alt3
waarschijnlijk $2
wanen v#a:n@n
wangen v#AN@n
ziekenhuisbevalling zi:k@nhWysb@vAlIN



+ 10
- 1
dictsource/nl_rules View File

@@ -1,5 +1,9 @@
// translation rules for Dutch
// This file is UTF-8 encoded

.L01 g k


.group a
a a:
a (CK A
@@ -332,7 +336,7 @@
ie (ren_ 'i
ie (rd_ 'i
@) ig (_S2dq @x
@) ige (_ @Q@
@) ige (_S3dq @Q@
@) igen (_ @Q@n
@) iger (_ @Q@r
@) igere (_ @Q@r@
@@ -520,6 +524,8 @@ _) inn (@P2 'I // ?? inneren
s s
s (s
A) s (A z
s (b z
s (g z
sc s
sch sx
sch (_ s
@@ -634,6 +640,9 @@ _) inn (@P2 'I // ?? inneren
w (CK w

_) wan (@P3 v#'An
_) wan (L01@P3 v#'AN
_) wan (del v#An
_) wan (kel v#AN
_) weg (@P3 v#'EQ
_) weg (en v#e:Q
_) weg (e_ v#e:Q // bewegelijk

+ 6
- 1
dictsource/ta_list View File

@@ -182,7 +182,8 @@ _1M3 orUko:d.ie:

_dpt _pul.l.i


_#ம் a:m // ordinal suffix
_#-ம் a:m // ordinal suffix


// English words
@@ -301,6 +302,9 @@ tamil தமிழ் $text
பூட் $alt
படுக $alt
படுகா $alt
பந்தா $alt
பிரா bra:
ப்ரா $alt
(பி . ஏ) bije:


@@ -361,6 +365,7 @@ tamil தமிழ் $text
தடிக்க $alt
தின $alt
தில் $alt
தன $alt


// initial ட

+ 63
- 5
dictsource/ta_rules View File

@@ -184,7 +184,9 @@
_) கி (ரிகோரிய g
_) க (ிரிஜா g
_) க (ிரிதர g
_) கி (ரித்த k
_) கிரிஸ்டோப (ர krist.o:fV
_) கி (ரிஸ்த k
_) கி (ரீட k
_) கி (ரீன g
_) கி (ரீன்லாந்த g
@@ -217,6 +219,7 @@
_) கிளியோபாட் (ரா klijo:pa:t
_) கி (ளீன k
_) கி (ளேச k
_) கி (ளைமாக்ஸ k
_) கி (ளௌ k
_) க (ீதல k
_) க (ீத்த k
@@ -250,6 +253,7 @@ _மன்மதக்) க (ுகை g
_) குண்டாந்த (டி gun.d.a:ntV
_) க (ுண்டாய g
_) க (ுண்டு g
_) க (ுண்டூசி g
_) க (ுண்டை g
_) க (ுண்டோதர g
_) க (ுதிக் g
@@ -289,6 +293,10 @@ _மன்மதக்) க (ுகை g
_) க (ுருவுடை g
_) க (ுருவை g
_) க (ுருவோட g
_) க (ுலாப g
_) க (ுலாம g
_) க (ுலேபா g
_) கு (லோபல g
_) க (ுவஹாத்தி g
_) குவாலிட(ி kwa:lit.
_) குவ (ாலிபிகேஷன kw
@@ -475,6 +483,7 @@ _தொன்ம) க (ால k
_ம) க (ிந்த H
மோ) க (ினி H
_ம) க (ிமை H
எக்ஸ்) கி (யூஸ k
கி (ரண g
_ராஜ்) க (ிரண k
பொற்) கி (ரண g
@@ -565,6 +574,7 @@ _வேதா) க்க (ினி gg
வைரா) க்க (ிய gg
அநு) க்கி (ர gg
அனு) க்கி (ர gg
_நவ) க்கி (ரL06 gg
L03) க்கி (ரக gg // a,i
_வி) க்க (ிரக gg
சத்தியா) க்கி (ரக gg
@@ -652,6 +662,8 @@ _துப்பாக்கி) க்க (ுண்ட gg
_ஹட்) ச (ன sV
_வாட்) ச (ன sV
_டேவிட்) ச (ன sV
_பாவவிமோ) ச (ன tSV
_விமோ) ச (ன tSV
_) ச (ப்பா tSV
_) ச (ப்பி tSV
_) ச (ப்பு tSV
@@ -673,6 +685,7 @@ _தணிகா) ச (ல tSV
_) சாந்த (ின tSa:nd
_தே) ச (ாந்திர s
_) சாந்த (ில tSa:nd
_) சா (னல tSe:
_) ச (ான்ஸ tS
_) சாப் (ளின tSa:p
_) ச (ாமுண்ட tS
@@ -702,7 +715,7 @@ _தணிகா) ச (ல tSV
_) சிக் (லெட் tSik
_) ச (ிட்டாக tS
_) ச (ிட்டாட்ட tS
_) ச (ிட்டி tS
_) ச (ிட்டிபாபு tS
_) ச (ிட்டு tS
_) ச (ிட்ல tS
_) ச (ிதம்பர tS
@@ -717,6 +730,7 @@ _தணிகா) ச (ல tSV
_) ச (ித்ரா tS
சு) சித (்ரா tSit
_) சி (நே s
_ச) ச (ின tS
_) சி (னே s
_) ச (ின் tS
_) சிப் (கள tSip
@@ -850,6 +864,7 @@ _ரிப்போர்) ட t.V#
_) ட (யரில t.V
_) ட (யரு t.V
_) ட (யர் t.V
_செண்) ட (ர t.V
_ப்ரிண்) ட (ர t.V
_ஷெல்) ட (ர t.V
_ஸ்கூ) ட (ர t.V
@@ -886,6 +901,7 @@ _ரிப்போர்) ட t.V#
அண்) டார்டிக t.a:rt.ikV#
_) ட (ாலமி t.
_) ட (ால்ஸ்டாய t.
பெண்) டாஸ்டிக் t.a:st.ik
_) ட (ாஸ்மாக் t.
_டியூ) ட (ி t.
_ட்யூ) ட (ி t.
@@ -953,6 +969,7 @@ _நாவல்) ட (ி t.
_) டி (ரை_பண் t.
_) டி (ரைவ d.
கண்) டி (ரோல t.
_நெக) ட (ிவ t.
_) ட (ிவிக t.
_) டிவிங்க (ிள t.wiNk
_) ட (ிவிய t.
@@ -969,6 +986,7 @@ _நாவல்) ட (ி t.
_) டெக் (னாலஜி t.ek
_) டெக்னிக (ல t.eknikV
_) ட (ெக்ஸாஸ t.
_) ட (ெண்டர t.
_) ட (ெண்டுல்கர t.
_) டென்டுல்க (ர t.ent.UlkV
_டேபிள்_) ட (ென்னிஸ t.
@@ -1020,6 +1038,7 @@ _லான்_) ட (ென்னிஸ t.
ஆ) ட் (ரா t.
_) ட்ராஃபிக் t.ra:fik
_) ட்ராக் t.ra:k
அ) ட்ராக் t.ra:k
_காண்) ட் (ராக்டர t.
_) ட் (ராஜ t.
_நியூ) ட் (ரான t.
@@ -1334,7 +1353,9 @@ _நடுரோ) ட் (ல t.
_) துவ (ார dv
_) து (வேச d
_) து (வேஷ d
_) துவைத dvaItV#
_) துவைத (_ dvaItV
_) துவைத (த்தில dvaItV
_) துவைத (ம dvaItV
_) த (ுஷ் d
_) த (ூச d
_) த (ூசி d
@@ -1417,6 +1438,7 @@ _வசந்) த tV#
சுஜா) த (ா t
லலி) த (ா t
_சுனி) த (ா t
_மம்) த (ா t
_ஹரி) த (ா t
_வனி) த (ா t
_வினி) த (ா t
@@ -1507,6 +1529,7 @@ _சிறை) த்த (ண்டனை ddV
ச) த (்ய t
நி) த (்ய t
இ) த் (யாதி t
_மி) த் (ர t
_காமசூ) த் (ர t
ச) த்ரபதி trVpVti
சி) த (்ரா t
@@ -1578,8 +1601,10 @@ _காமசூ) த் (ர t
_) பக் (ரீத bVk
_) ப (க்ருதீன fV
_) ப (ங்கம bV
_) பங்க (ர bVNkV
_) ப (ங்களா bV
_) ப (ங்கார bV
_) ப (ங்க் bV
_) ப (சவகல்யாண bV
_) ப (ச்சன bV
_) ப (ச்சான bV
@@ -1604,11 +1629,14 @@ _சொந்த_) ப (ந்த bV
_) ப (ந்தத் bV
_) ப (ந்தப் bV
_) ப (ந்தம bV
_) ப (ந்தாவ bV
_) ப (ந்துக்கள bV
_) பந்த (ுலு bVnt
_) ப (ந்துவ bV
_) ப (ந்தோபஸ்த bV
_) ப (னியன bV
_) ப (ன்னாரி bV
_) ப (ன்ருட்டி bV
_) ப (ம்பர bV
_) ப (ம்பாய bV
_) ப (யங் bV
@@ -1762,7 +1790,7 @@ _விளையாடு_) ப (ாம்பே p
_) ப (ாராமுல்லா b
_) ப (ாரிஸ்டர b
_) ப (ார்L04லோனா b
_) ப (ார்கவி b
_) ப (ார்கவ b
_) ப (ார்டர b
_) பார்ப (டா ba:rbV
_) ப (ார்ம f
@@ -1842,7 +1870,7 @@ _ராகத்தின்_) ப (ாவ b
_) ப (ிட்டடி b
_) ப (ினாமி b
_) ப (ினிஷ f
_) பின் (_லேடன b
_) ப (ின்_லேடன b
_) ப (ின்லாந்த f
_) பிப (ி bip
_) ப (ிபிசி b // bbc
@@ -1873,6 +1901,7 @@ _ராகத்தின்_) ப (ாவ b
_) பி (ரச்சினை p
_) பிரச (்னை prVtS
_) பி (ரஜ p
_) பி (ரணவ p
_) பிர (ண்ட்ஸ fre
_) பி (ரதம p
_) பி (ரதர்_ b
@@ -1971,10 +2000,12 @@ _ராகத்தின்_) ப (ாவ b
_) பி (ருகு b
_) பிரு (ந்தா bri
_) பிரெஞ்ச fren^tSV#
_) பி (ரெட் b
_) பிரெட்ரிக் fred.rik
_) பி (ரெண்ட்ஸ f
_) பி (ரெயில b
_) பி (ரெய்ல b
_) பி (ரெஷ் f
_) பி (ரே p
_) பி (ரேக்க b
_) பி (ரேசில b
@@ -1982,6 +2013,7 @@ _ராகத்தின்_) ப (ாவ b
_) பி (ரோகிதர p
_) பி (ரௌச b
_) பி (ரௌன b
_) ப (ிலாஸ்பூர b
_) ப (ில்டப் b
_) ப (ில்டிங் b
_) ப (ில்லியன b
@@ -2098,6 +2130,8 @@ _பெனசீர்_) ப (ுட்டோ b
_) பெஞ்ச (மின ben^dZV
_) பெட்ட (ுக்கு bed.d.
_) ப (ெட்ரூம b
_) ப (ெண்டாஸ்டிக் f
_) ப (ெதர f
_) ப (ெனசீர b
_) ப (ெப்ரவரி f
_) ப (ெர்னாட்ஷா b
@@ -2190,9 +2224,11 @@ _சந்திர_) ப (ோஸ b
_) ப் (ராவ b
_) ப்ரிஸ்ப (ேன brisb
_) ப் (ரெஞ்ச் f
_) ப் (ரெட் b
_) ப்ரெட்ரிக் fred.rik
_) ப் (ரெயில b
_) ப் (ரெய்ல b
_) ப் (ரெஷ் f
_) ப் (ரேக்க b
_) ப் (ரேசில b
_) ப் (ரைல b
@@ -2212,6 +2248,7 @@ _சந்திர_) ப (ோஸ b
_பிரதீ) ப pV#
ஒலிம்) ப pV#
சங்கல்) ப pV#
_சொல்) ப pV#
_பயன்) ப pV
_விகல்) ப pV#
அடால்) ப fV#
@@ -2301,12 +2338,15 @@ _சொந்த) ப (ந்த bV
கரம்) ப (ற் pV
ப (ற்றி_ pV
_பக்க) ப (ல bV
ஆத்ம) ப (ல bV
_பக்கப்) ப (ல bV
ஆன்ம) ப (ல bV
படைப்) ப (ல bV
_முனிசி) ப (ல pV
ஆயுதப்) ப (ல bV
_மகா) ப (லி bV
_மூடு) ப (ல்லக் pV
_க) ப (ளிகர bV
வேலைப்) ப (ளு bV
வட) ப (ழ pV
வீண்) ப (ழி pV
@@ -2351,6 +2391,8 @@ _வெளிப்) ப (ாக b
ஔரங்கா) ப (ாத b
ஜிந்தா) ப (ாத் b
ச) பாபதி ba:pVti
_) பாபவிமோசன pa:bVvimo:tSV
_சாய்) பாப (ா ba:b
அ) பாயிண்ட்மெண்ட pa:jin.t.ment.V#
_டீ) ப (ாய் p
எதிர்) ப (ார p
@@ -2554,8 +2596,10 @@ _மைக்ரோசா) ப் (ட f
_ஜ) ப்ப (ார bb
அ) ப்ப (ாஸ bb
உ) ப்ப (ி_ bb
உ) ப்ப (ின_ bb
உ) ப்ப (ிப் bb
உ) ப்ப (ிய bb
அ) ப்ப (ியாச bb
அதிக) ப்பி (ரசங்க pp
_நில) ப்பி (ரபு pp
மன) ப்பி (ரமை bb
@@ -2646,6 +2690,7 @@ _சந்தேக) ப்ப (ுத்தி bb
ம (B m
_சL07) மி (ய m


.group ய
ய jV
ய (B j
@@ -2655,6 +2700,8 @@ _சந்தேக) ப்ப (ுத்தி bb
ர rV
ர (B r

_விம) ரி (ச r
_நித) ரி (சன r

.group ற
ற RV
@@ -2686,6 +2733,13 @@ _சந்தேக) ப்ப (ுத்தி bb
_) வி (யா v
வி (யூக v

D_) வ (து_ a:vV
D_) வ (தும்_ a:vV
D_) வ (துமாக_ a:vV
-) வ (து_ a:vV
-) வ (தும்_ a:vV
-) வ (துமாக_ a:vV


.group ஶ
ஶ SV
@@ -2730,8 +2784,12 @@ _சந்தேக) ப்ப (ுத்தி bb
இ (ரசிக
இ (ரசிக்க
இ (ரசித்த
இ (ரத_
இ (ரதங்கள
இ (ரதத்த
இ (ரதம
இ (ரத்த
இரப்ப (ர irVbbV
இரப்ப (ர rVbbV
இ (ரயில
இ (ராக
இ (ராச

+ 1
- 1
espeak-data/voices/hy-west View File

@@ -1,5 +1,5 @@
name armenian-west
language hy
language hy-west
gender male

// change consonants for West Armenian pronunciation

+ 1
- 1
espeak-data/voices/sw View File

@@ -1,4 +1,4 @@
name swahihi-test
name swahili-test
language sw
gender male


+ 10
- 8
phsource/compile_report View File

@@ -3,13 +3,13 @@
base 107 107
consonants 10 116
base2 26 123
en 50 150
en-n 32 150
en-us 37 151
en-sc 39 152
en-rp 33 150
en-wm 30 150
en-wi 30 150
en 52 152
en-n 32 152
en-us 38 153
en-sc 39 154
en-rp 33 152
en-wm 30 152
en-wi 30 152
af 39 136
cy 29 132
de 41 139
@@ -959,6 +959,7 @@ vdiph2/ie [i@] en-wi
vdiph2/ie_2 [ie] lv
vdiph2/ii@ [i@] en
[i@3] en
[i@] en-us
[ja] ru
vdiph2/ii@_3 [i@] vi
vdiph2/iioo [io] zh
@@ -1341,7 +1342,8 @@ vowel/@_2 [@] vi
[@] sq
[V] sq
[@/] sq
vowel/@_3 [@] en-sc
vowel/@_3 [@#] en
[@] en-sc
[I] en-sc
[@2] en-sc
[@5] en-sc

+ 2
- 2
phsource/ph_dutch View File

@@ -87,14 +87,14 @@ endphoneme

phoneme a // ?? suggested by aegis, but seems too short
vowel starttype #a endtype #a
length 140
length 150
FMT(vowel/a_2)
endphoneme


phoneme A
vowel starttype #a endtype #a
length 140
length 150
IF thisPh(isUnstressed) THEN
FMT(vowel/a#_2)
ENDIF

+ 15
- 0
phsource/ph_english View File

@@ -224,6 +224,14 @@ phoneme I2
FMT(vowel/ii_4)
endphoneme

phoneme I# // used for [I] which may be [@] in some accents
vowel starttype #i endtype #i
unstressed
length 130
IfNextVowelAppend(;)
ChangePhoneme(I2)
endphoneme

phoneme i // optional variant of [I] for end of words
vowel starttype #i endtype #i
ipa ɪ
@@ -483,3 +491,10 @@ phoneme e:
endphoneme


phoneme @# // TEST: [@] which is slightly more 'front'
vowel starttype #i endtype #i
unstressed
length 130
FMT(vowel/@_3)
endphoneme


+ 7
- 0
phsource/ph_english_us View File

@@ -279,6 +279,13 @@ phoneme e@
endphoneme


phoneme i@
vowel starttype #i endtype #@
length 250
FMT(vdiph2/ii@) // don't append [r] before a vowel
endphoneme


phoneme i@3
vowel starttype #i endtype #@
length 280

+ 4
- 3
src/dictionary.cpp View File

@@ -478,6 +478,7 @@ void DecodePhonemes(const char *inptr, char *outptr)
PHONEME_TAB *ph;
static const char *stress_chars = "==,,'* ";

sprintf(outptr,"* ");
while((phcode = *inptr++) > 0)
{
if(phcode == 255)
@@ -2464,9 +2465,9 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c
if((option_phonemes == 2) && ((word_flags & FLAG_NO_TRACE)==0))
{
char wordbuf[120];
int ix;
unsigned int ix;

for(ix=0; ((c = p_start[ix]) != ' ') && (c != 0); ix++)
for(ix=0; ((c = p_start[ix]) != ' ') && (c != 0) && (ix < (sizeof(wordbuf)-1)); ix++)
{
wordbuf[ix] = c;
}
@@ -3168,7 +3169,7 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor
}
if(dictionary_flags2 & FLAG_NOUN)
{
if(!tr->expect_noun)
if((!tr->expect_noun) || (end_flags & SUFX_V))
{
/* don't use the 'noun' pronunciation unless we are
expecting a noun */

+ 1
- 1
src/numbers.cpp View File

@@ -1302,7 +1302,7 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out)
{
Lookup(tr, "_0and", ph_and);

if(tr->langopts.numbers2 & NUM2_MULTIPLE_ORDINAL)
if((control & 1) && (tr->langopts.numbers2 & NUM2_MULTIPLE_ORDINAL))
ph_and[0] = 0;

if(tr->langopts.numbers & NUM_SWAP_TENS)

+ 14
- 2
src/readclause.cpp View File

@@ -1376,11 +1376,12 @@ int AddNameData(const char *name, int wide)
if(namedata_ix+len >= n_namedata)
{
// allocate more space for marker names
if((vp = realloc(namedata, namedata_ix+len + 300)) == NULL)
if((vp = realloc(namedata, namedata_ix+len + 1000)) == NULL)
return(-1); // failed to allocate, original data is unchanged but ignore this new name
// !!! Bug?? If the allocated data shifts position, then pointers given to user application will be invalid

namedata = (char *)vp;
n_namedata = namedata_ix+len + 300;
n_namedata = namedata_ix+len + 1000;
}
memcpy(&namedata[ix = namedata_ix],name,len);
namedata_ix += len;
@@ -2218,6 +2219,17 @@ f_input = f_in; // for GetC etc
else
if((c2 == '/') || iswalpha(c2))
{
// check for space in the output buffer for embedded commands produced by the SSML tag
if(ix > (n_buf - 20))
{
// Perhaps not enough room, end the clause before the SSML tag
UngetC(c2);
ungot_char2 = c1;
buf[ix] = ' ';
buf[ix+1] = 0;
return(CLAUSE_NONE);
}

// SSML Tag
n_xml_buf = 0;
c1 = c2;

+ 1
- 1
src/synthdata.cpp View File

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

const char *version_string = "1.45.28 24.May.11";
const char *version_string = "1.45.31 25.Jun.11";
const int version_phdata = 0x014500;

int option_device_number = -1;

+ 11
- 9
src/synthesize.cpp View File

@@ -1209,12 +1209,14 @@ void DoMarker(int type, int char_posn, int length, int value)
{//==========================================================
// This could be used to return an index to the word currently being spoken
// Type 1=word, 2=sentence, 3=named marker, 4=play audio, 5=end
wcmdq[wcmdq_tail][0] = WCMD_MARKER;
wcmdq[wcmdq_tail][1] = type;
wcmdq[wcmdq_tail][2] = (char_posn & 0xffffff) | (length << 24);
wcmdq[wcmdq_tail][3] = value;
WcmdqInc();

if(WcmdqFree() > 5)
{
wcmdq[wcmdq_tail][0] = WCMD_MARKER;
wcmdq[wcmdq_tail][1] = type;
wcmdq[wcmdq_tail][2] = (char_posn & 0xffffff) | (length << 24);
wcmdq[wcmdq_tail][3] = value;
WcmdqInc();
}
} // end of DoMarker


@@ -1354,12 +1356,12 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
p = &phoneme_list[ix];

if(p->type == phPAUSE)
free_min = 5;
free_min = 10;
else
if(p->type != phVOWEL)
free_min = 10; // we need less Q space for non-vowels, and we need to generate phonemes after a vowel so that the pitch_length is filled in
free_min = 15; // we need less Q space for non-vowels, and we need to generate phonemes after a vowel so that the pitch_length is filled in
else
free_min = MIN_WCMDQ; // 22
free_min = MIN_WCMDQ; // 25

if(WcmdqFree() <= free_min)
return(1); // wait

+ 2
- 2
src/synthesize.h View File

@@ -455,8 +455,8 @@ extern unsigned char pitch_adjust_tab[MAX_PITCH_VALUE+1];



#define N_WCMDQ 160
#define MIN_WCMDQ 22 // need this many free entries before adding new phoneme
#define N_WCMDQ 170
#define MIN_WCMDQ 25 // need this many free entries before adding new phoneme

extern long wcmdq[N_WCMDQ][4];
extern int wcmdq_head;

+ 9
- 1
src/tr_languages.cpp View File

@@ -1243,6 +1243,7 @@ SetLengthMods(tr,3); // all equal
#endif

case L('t','r'): // Turkish
case L('a','z'): // Azerbaijan
{
static const unsigned char stress_amps_tr[8] = {18,16, 20,21, 20,21, 21,20 };
static const short stress_lengths_tr[8] = {190,180, 200,230, 0,0, 240,250};
@@ -1253,7 +1254,14 @@ SetLengthMods(tr,3); // all equal
tr->langopts.stress_rule = 7; // stress on the last syllable, before any explicitly unstressed syllable
tr->langopts.stress_flags = 0x20; //no automatic secondary stress

tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_DFRACTION_2;
if(name2 == L('a','z'))
{
tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_DFRACTION_2;
}
else
{
tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_DFRACTION_2;
}
tr->langopts.max_initial_consonants = 2;
}
break;

+ 7
- 3
src/wavegen.cpp View File

@@ -1550,10 +1550,14 @@ static void SetPitchFormants()
if((pitch_value = embedded_value[EMBED_P]) > MAX_PITCH_VALUE)
pitch_value = MAX_PITCH_VALUE;

factor = 256 + (25 * (pitch_value - 50))/50;
for(ix=0; ix<=5; ix++)
if(pitch_value > 50)
{
wvoice->freq[ix] = (wvoice->freq2[ix] * factor)/256;
// only adjust if the pitch is higher than normal
factor = 256 + (25 * (pitch_value - 50))/50;
for(ix=0; ix<=5; ix++)
{
wvoice->freq[ix] = (wvoice->freq2[ix] * factor)/256;
}
}
factor = embedded_value[EMBED_T]*3;
wvoice->height[0] = (wvoice->height2[0] * (256 - factor*2))/256;

Loading…
Cancel
Save