[1.46.51]

Language changes: da.
Fixed crash bug (in lang=hi), affects prevVowel(), isFirstVowel, etc in phoneme definitions.



git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@317 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
jonsd
2013-03-16 00:20:29 +00:00
parent 22289456f8
commit e75e5d9258
9 changed files with 1955 additions and 1931 deletions
+35 -38
View File
@@ -84,7 +84,7 @@ __ b'Onsdrai
¢ s'ent ¢ s'ent
¥ j'en: ¥ j'en:
µ my µ my
' apostr'Vf // PB o changed to V ' apostr'Vf
½ en'hal ½ en'hal
+ plus + plus
@@ -102,27 +102,27 @@ _9 n'i
_10 t'i _10 t'i
_11 'Elv@ _11 'Elv@
_12 t'Vl _12 t'Vl
_13 tR'?&#d@-n // PB & changed to &# _13 tR'?&#d@-n
_14 fj'ord@-n _14 fj'ord@-n
_15 f'Emd@-n _15 f'Emd@-n
_16 s'ajsd@-n _16 s'ajsd@-n
_17 s'Wd@-n // PP Y changed to W _17 s'Wd@-n
_18 '?&d@-n // PB a changed to & _18 '?&d@-n
_19 n'ed@-n _19 n'ed@-n
_2X t'y:?u _2X t'y:?u
_3X tR'&#Dv@ //PB [tR'ADv@] changed to [tR'&#Dv@] _3X tR'&#Dv@
_4X f'?W:_|V //PB [f'W:*3] changed to [ f'?W:V] _4X f'?W:_|V
_5X h&l't*Es // PB [a] changed to [&], e changed to E _5X h&l't*Es
_6X t*'Es // PB changed from e to E _6X t*'Es
_7X h&lfj'&rs // PV a changed to & _7X h&lfj'&rs
_8X f'irs _8X f'irs
_9X h&lf'Ems // PB a changed to & _9X h&lf'Ems // PB a changed to &
_0C h'un*VD _0C h'unRVD
_1C ed||h'unRV:D // PB added 'et hundrede' _1C ed||h'unRV:D
_0M1 t'u:s@-n _0M1 t'?us@-n
_1M1 ed||t'u:s@-n // PB added 'et' to tusind _1M1 ed||t'?us@-n
_1M2 'e:n||milij'o:n _1M2 'e:n||milij'o:n
_0M2 milij'o:nV // PB [3] changed to [V] _0M2 milij'o:nV
_1M3 'e:n||milij'A:d _1M3 'e:n||milij'A:d
_0M3 milij'A:d3 _0M3 milij'A:d3
_1M4 'e:n||bilij'o:n _1M4 'e:n||bilij'o:n
@@ -174,7 +174,7 @@ men $pause // but
eller // or eller // or
mens $pause // while mens $pause // while
for for
fordi fVd'i $pause // because - PB: changed stress fordi fVd'i $pause // because
når nVr $pause // while når nVr $pause // while
der dEr $u+ $u // PB changed from [dA] der dEr $u+ $u // PB changed from [dA]
hvor v'O // where hvor v'O // where
@@ -187,16 +187,15 @@ fra $u+ // from
ved $u+ // at ved $u+ // at
om $u+ $brk // about, within om $u+ $brk // about, within
med $u+ // with med $u+ // with
af & // PB changed from [a?] to [&] - sound too short in a sentence af &
// Also removed $u from 'af' and other words. They disappeared. ad &
ad & // PB added 'ad' ad &D $atend $sentence // "Det må ikke skille os ad."
ad &D $atend $sentence // PB "Det må ikke skille os ad." at & $u
at & $u // PB changed from [at] to [&:] hos
hos // at - PB: removed [$u+] som sVm $u // which / that
som sVm $u // which / that - PB: removed [$u+]
// pronouns // pronouns
jeg jaj $u+ // I jeg jAj $u+ // I
du du $u du du $u
de $u de $u
han $u han $u
@@ -205,8 +204,8 @@ det de $u
dét de dét de
vi vi $u vi vi $u
i _i $u+ i _i $u+
mig maj $u // me mig mAj $u // me
dig daj $u+ dig dAj $u+
dem $u dem $u
ham $u ham $u
hende $u hende $u
@@ -244,7 +243,7 @@ jeres $u+
er Er $u // is/are er Er $u // is/are
var vAr $u+ // was/were var vAr $u+ // was/were
har hAr $u+ // has/have har hAr $u+ // has/have
havde h&:D@ $u+ // had havde h&D@ $u+ // had
vil $u+ // will vil $u+ // will
skal $u+ // shall skal $u+ // shall
kan $u+ // can kan $u+ // can
@@ -360,7 +359,7 @@ window _^_EN
word _^_EN word _^_EN
warrior _^_EN warrior _^_EN
// PB names // Names
august OgOsd $capital august OgOsd $capital
austin _^_EN austin _^_EN
bailey _^_EN bailey _^_EN
@@ -381,7 +380,7 @@ piccadilly _^_EN
reynolds _^_EN reynolds _^_EN
white _^_EN white _^_EN
// PB French words // French words
croquis _^_FR croquis _^_FR
crouton _^_FR crouton _^_FR
jugement _^_FR jugement _^_FR
@@ -389,7 +388,7 @@ monsieur _^_FR
madame _^_FR madame _^_FR
mademoiselle _^_FR mademoiselle _^_FR
// PB (French) nouns with final -age - stressed a, "age" pronounced ['&S@] // French) nouns with final -age - stressed a, "age" pronounced ['&S@]
affutage $alt affutage $alt
apanage $alt apanage $alt
arbitrage $alt arbitrage $alt
@@ -448,7 +447,7 @@ takkelage $alt
tonnage $alt tonnage $alt
trikotage $alt trikotage $alt
// PB final -abel - stressed a // Final -abel - stressed a
// "el" has been removed in order to make rules for // "el" has been removed in order to make rules for
// "konstabel" and the plural "konstabler" without "e" // "konstabel" and the plural "konstabler" without "e"
acceptab $alt acceptab $alt
@@ -691,7 +690,7 @@ substans $alt
tolerans $alt tolerans $alt
varians $alt varians $alt
// PB nouns with final -ade - stressed a // Nouns with final -ade - stressed a
ambassade $alt ambassade $alt
arkade $alt arkade $alt
ballade $alt ballade $alt
@@ -755,7 +754,7 @@ tamponade $alt
tirade $alt tirade $alt
triade $alt triade $alt
// PB nouns and adjectives with final -al - stressed a // Nouns and adjectives with final -al - stressed a
admiral $alt admiral $alt
adverbial $alt adverbial $alt
aksial $alt aksial $alt
@@ -997,7 +996,7 @@ vokal $alt
ækvatorial $alt ækvatorial $alt
ødipal $alt ødipal $alt
// PB words with final -ar - stressed a // Words with final -ar - stressed a
dokumentar $alt dokumentar $alt
aktuar $alt aktuar $alt
proletar $alt proletar $alt
@@ -1067,7 +1066,7 @@ vegetar $alt
velar $alt velar $alt
vokabular $alt vokabular $alt
// PB final -agtig - stressed a // Final -agtig - stressed a
barnagtig $alt barnagtig $alt
blødagtig $alt blødagtig $alt
delagtig $alt delagtig $alt
@@ -1100,7 +1099,7 @@ svinagtig $alt
tvivlagtig $alt tvivlagtig $alt
tyvagtig $alt tyvagtig $alt
// PB words with final -an - stressed a // Words with final -an - stressed a
aeroplan $alt2 aeroplan $alt2
agraman $alt2 agraman $alt2
altan $alt2 altan $alt2
@@ -1128,7 +1127,6 @@ filigran $alt2
galan $alt2 galan $alt2
hortulan $alt2 hortulan $alt2
human $alt2 human $alt2
hvordan vVd'&n $alt
inhuman $alt2 inhuman $alt2
kapellan $alt2 kapellan $alt2
karljohan $alt2 karljohan $alt2
@@ -5778,7 +5776,6 @@ adstringer $alt
adviser $alt adviser $alt
advoker $alt advoker $alt
afficer $alt afficer $alt
'aflever $alt
'afmarcher $alt 'afmarcher $alt
afrikaniser $alt afrikaniser $alt
agere $alt agere $alt
@@ -11195,7 +11192,7 @@ skateboardet sk'eitbo@d3D // PB
(secret service) sigred||s'Wvis (secret service) sigred||s'Wvis
(happy hour) h&pi||'AuV (happy hour) h&pi||'AuV
chevrolet sjEvrol'e chevrolet sjEvrol'e
saigon sajg3-n // PB Saigon saigon sAjgVn // PB Saigon
managua m&n'&:gw& managua m&n'&:gw&
(deja-vu) deSja||'vy (deja-vu) deSja||'vy
(il duce) il||d'u:tSj@ // PB Italian Fascist (il duce) il||d'u:tSj@ // PB Italian Fascist
+292 -274
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -53,7 +53,7 @@ p r s S t T v w
x z x z
Dictionary da_dict 2013-03-13 Dictionary da_dict 2013-03-15
& &# 0 3 ?& ?&# ?0 ?A & &# 0 3 ?& ?&# ?0 ?A
?e ?E ?i ?o ?O ?u ?V ?W ?e ?E ?i ?o ?O ?u ?V ?W
@@ -156,7 +156,7 @@ l m n N p r R s
S s2 t v w Z S s2 t v w Z
Dictionary fr_dict 2013-03-14 Dictionary fr_dict 2013-03-15
@ @- a a- A~ e E e- @ @- a a- A~ e E e-
E: E~ i I o O O~ u E: E~ i I o O O~ u
@@ -206,7 +206,7 @@ q r r. s S s. t T
t# t. t.# v w x z t# t. t.# v w x z
Dictionary ta_dict 2013-03-14 Dictionary ta_dict 2013-03-15
a a: aI aU e E e: i a a: aI aU e E e: i
I i: o o: u U u2 u: I i: o o: u U u2 u:
+1
View File
@@ -3381,6 +3381,7 @@ Amy eImi
Andre 0ndreI Andre 0ndreI
Andrea andri@ Andrea andri@
Andreas A:ndr'eI@s Andreas A:ndr'eI@s
Angela $1
Anita $alt3 Anita $alt3
Anthony ant@ni Anthony ant@ni
Anton ant0n Anton ant0n
+1545 -1545
View File
File diff suppressed because it is too large Load Diff
+6 -6
View File
@@ -452,7 +452,7 @@ l/l_ [l] base
l/l_@ [l/3] base l/l_@ [l/3] base
[l/] fr [l/] fr
[l/3] da [l/3] da
l/l@ [¨2] base l/l@ [¨|5] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
@@ -486,7 +486,7 @@ l/L2_oL [l/2] base
l/L2_uL [l/2] base l/L2_uL [l/2] base
l/l_3 [l/] de l/l_3 [l/] de
l/l_4 [ll] sq l/l_4 [ll] sq
l/la [¨2] base l/la [¨|5] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
@@ -495,7 +495,7 @@ l/la [
l/l_a [l/3] base l/l_a [l/3] base
[l/] fr [l/] fr
[l/3] da [l/3] da
l/le [¨2] base l/le [¨|5] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
@@ -508,7 +508,7 @@ l/L_eL_af [&] af
[&:] af [&:] af
l/l_front [L] sq l/l_front [L] sq
l/l_front_ [l/4] sq l/l_front_ [l/4] sq
l/li [¨2] base l/li [¨|5] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
@@ -523,7 +523,7 @@ ll/ll [L] base
ll/_ll [L] base ll/_ll [L] base
l/l_long [l] base l/l_long [l] base
[l] fr [l] fr
l/lo [¨2] base l/lo [¨|5] base
[l#] base [l#] base
[l/2] fr [l/2] fr
[K] nso [K] nso
@@ -535,7 +535,7 @@ l^/l_rfx [l.] base
[l;] lt [l;] lt
[l] ru [l] ru
[l^] ru [l^] ru
l/lu [¨2] base l/lu [¨|5] base
[l#] base [l#] base
[l] fr [l] fr
[l/2] fr [l/2] fr
+53 -62
View File
@@ -45,14 +45,14 @@ endphoneme
phoneme i phoneme i
vowel starttype #i endtype #i vowel starttype #i endtype #i
length 90 //150 length 95 //150
// PB long vowel followed by consonant and certain vowels "gide" // PB long vowel followed by consonant and certain vowels "gide"
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(#e) THEN IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(V) THEN
length 150 length 150
ENDIF ENDIF
// "gider" TEST // "gider", vrider"
IF nextPhW(D) AND next2PhW(V) OR next2PhW(?V) THEN IF nextPhW(D) AND next2PhW(V) OR next2PhW(?V) THEN
length 90 length 95
ENDIF ENDIF
// PB long vowel followed by certain vowels - "pigen" [p'i@-n] // PB long vowel followed by certain vowels - "pigen" [p'i@-n]
IF nextPhW(#@) OR nextPhW(#e) THEN IF nextPhW(#@) OR nextPhW(#e) THEN
@@ -69,7 +69,7 @@ IF thisPh(isWordEnd) THEN
ENDIF ENDIF
// "vilje" - short followed by 2 consonants // "vilje" - short followed by 2 consonants
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
length 90 length 95
ENDIF ENDIF
// PB "tie", "stige", "krige" vowel + vowel: extra length // PB "tie", "stige", "krige" vowel + vowel: extra length
// What is causing this very short [i] in words with final [@-]? // What is causing this very short [i] in words with final [@-]?
@@ -99,14 +99,14 @@ endphoneme
phoneme e phoneme e
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 90 //150 length 95 //150
// "delte", "mente" // "delte", "mente"
IF nextPhW(#e) OR nextPhW(#@) OR next2PhW(#e) OR next2PhW(#@) THEN IF nextPhW(@-) OR nextPhW(V) OR next2PhW(@-) OR next2PhW(V) THEN
length 150 length 150
ENDIF ENDIF
// PB "ring", "ringe" // PB "ring", "ringe"
IF nextPhW(N) THEN IF nextPhW(N) THEN
length 90 length 95
ENDIF ENDIF
// PB "enig", "enige", "evig" // PB "enig", "enige", "evig"
IF nextPhW(isNotVowel) AND next2PhW(i) THEN IF nextPhW(isNotVowel) AND next2PhW(i) THEN
@@ -118,7 +118,7 @@ IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN
ENDIF ENDIF
// "nedladende" [n'eDl&D@-n@-] - before 2 consonants: short // "nedladende" [n'eDl&D@-n@-] - before 2 consonants: short
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
length 90 length 95
ENDIF ENDIF
FMT(vowel/e) FMT(vowel/e)
endphoneme endphoneme
@@ -133,14 +133,14 @@ endphoneme
phoneme E phoneme E
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 90 //150 length 100 //150
// "værelse", "breve" // "værelse", "breve"
IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(@-) THEN IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(@-) THEN
// length 150 // length 150
ENDIF ENDIF
// "ræve" // "ræve"
IF nextVowel(#@) OR nextVowel(#e) THEN IF nextVowel(#@) OR nextVowel(#e) THEN
length 150 length 160
ENDIF ENDIF
// "ære", "kærester", "ærefrygt" - longer E // "ære", "kærester", "ærefrygt" - longer E
IF nextPhW(V) THEN IF nextPhW(V) THEN
@@ -148,23 +148,23 @@ IF nextPhW(V) THEN
ENDIF ENDIF
// Only the letter "æ" - long // Only the letter "æ" - long
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN
length 150 length 160
ENDIF ENDIF
// "stædig" [st'EDi] long // "stædig" [st'EDi] long
IF nextPhW(isNotVowel) AND next2PhW(i) THEN IF nextPhW(isNotVowel) AND next2PhW(i) THEN
length 150 length 160
ENDIF ENDIF
// "længe" - short - 2 consonants => 1 consonant // "længe" - short - 2 consonants => 1 consonant
IF nextPhW(N) THEN IF nextPhW(N) THEN
length 90 length 120
ENDIF ENDIF
// "værelse" [v'E3-Vls@_!] // "værelse" [v'E3-Vls@_!]
IF nextPhW(3-) AND next2PhW(V) THEN IF nextPhW(3-) AND next2PhW(V) THEN
length 90 length 120
ENDIF ENDIF
// "mælkebøtte" - short followed by 2 consonants // "mælkebøtte" - short followed by 2 consonants
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
length 90 length 120
ENDIF ENDIF
FMT(vowel/e_mid2) FMT(vowel/e_mid2)
endphoneme endphoneme
@@ -173,12 +173,8 @@ endphoneme
// "læsse" vs. "læse" // "læsse" vs. "læse"
phoneme ?E phoneme ?E
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 90 ipa ε
// PB "færre" [f'?EV] - a bit longer because og the missing [ɐ] [ˈfæɐ̯ʌ] length 100
// Changed now [f'?E3-V] but it won't do any harm
IF nextPhW(V) THEN
length 120
ENDIF
FMT(vowel/e_mid2) FMT(vowel/e_mid2)
endphoneme endphoneme
@@ -193,7 +189,7 @@ ENDIF
// ThisPh + gooup #e or group #@ // ThisPh + gooup #e or group #@
// "ae", "aer" vowel + vowel: extra length // "ae", "aer" vowel + vowel: extra length
IF nextPhW(#@) OR nextPhW(#e) THEN IF nextPhW(#@) OR nextPhW(#e) THEN
length 240 length 220
ENDIF ENDIF
// This vowel is word end - longer because it sounds too short // This vowel is word end - longer because it sounds too short
// "ja", "Omaha" // "ja", "Omaha"
@@ -278,6 +274,10 @@ ENDIF
// "bange" [bAN@-] - [N] = 2 consonants (ng) => short // "bange" [bAN@-] - [N] = 2 consonants (ng) => short
IF nextPhW(N) THEN IF nextPhW(N) THEN
length 90 length 90
ENDIF
// "fare" [f'A:A]
IF nextPhW(A) THEN
length 150
ENDIF ENDIF
FMT(vowel/a_8) FMT(vowel/a_8)
endphoneme endphoneme
@@ -297,27 +297,21 @@ endphoneme
phoneme u phoneme u
vowel starttype #u endtype #u vowel starttype #u endtype #u
length 90 //150 length 90 //150
// Short vowel followed by consonant and NOT consonant + 3 or V or @ // "suge", "uge", "bluse", "julegave"
// "blus" vs. "bluse" and "bluser"
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
// glstop
// length 90
ENDIF
// "suge", "uge", bluse
IF nextPhW(#e) OR nextPhW(#@) OR next2PhW(#e) OR next2PhW(#@)THEN IF nextPhW(#e) OR nextPhW(#@) OR next2PhW(#e) OR next2PhW(#@)THEN
length 150 length 150
ENDIF ENDIF
// extra length followed by 3 or V or @ // "umulig" [u:m'uli]
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN
// length 240
ENDIF
// "umulig"
IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN
length 180 length 180
ENDIF ENDIF
// Only "u" // Only "u"
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN
length 150 length 150
ENDIF
// "fugl" [ful] - a bit longer
IF nextPhW(isWordEnd) THEN
length 120
ENDIF ENDIF
FMT(vowel/u_bck) FMT(vowel/u_bck)
endphoneme endphoneme
@@ -332,20 +326,13 @@ endphoneme
phoneme o phoneme o
vowel starttype #o endtype #o vowel starttype #o endtype #o
length 150 length 90 //150
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN // "bore", "borer"
glstop IF nextPhW(3) OR nextPhW(V) OR nextPhW(@-) THEN
length 90
ENDIF
// "tro"
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN
length 90
ENDIF
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN
length 150 length 150
ENDIF ENDIF
// "modig" - long vowel after consonant + [i] // "modig" - long vowel after consonant + [i]
IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(i) THEN IF nextPhW(D) AND next2PhW(i) THEN
length 150 length 150
ENDIF ENDIF
FMT(vowel/o_2) FMT(vowel/o_2)
@@ -362,7 +349,7 @@ endphoneme
phoneme O phoneme O
vowel starttype #o endtype #o vowel starttype #o endtype #o
length 90 // 150 length 90 // 150
// PB "sove", "sover" - consonant + #e or #@: long // "sove", "sover" - consonant + #e or #@: long
IF next2PhW(#@) OR next2PhW(#e) THEN IF next2PhW(#@) OR next2PhW(#e) THEN
length 150 length 150
ENDIF ENDIF
@@ -377,7 +364,7 @@ ENDIF
FMT(vowel/o_5) FMT(vowel/o_5)
endphoneme endphoneme
// PB Experimental glottal O // Short O
// "toget" vs. "tåget" // "toget" vs. "tåget"
phoneme ?O phoneme ?O
vowel starttype #o endtype #o vowel starttype #o endtype #o
@@ -400,13 +387,17 @@ ENDIF
IF nextPhW(isNotVowel) AND next2Ph(V) THEN IF nextPhW(isNotVowel) AND next2Ph(V) THEN
length 90 length 90
ENDIF ENDIF
// PB "snorke", "snorker", årlig // "snorke", "snorker", årlig
IF next2PhW(3) OR next2PhW(V) OR next2PhW(@) OR next2PhW(i) THEN IF next2PhW(3) OR next2PhW(V) OR next2PhW(@) OR next2PhW(i) THEN
length 180 length 180
ENDIF ENDIF
// "sove" [sVw3] - longer followed by w + 3 // "sove" [sVw3] - longer followed by w + 3
IF nextPhW(w) AND next2PhW(3) THEN IF nextPhW(w) AND next2PhW(3) THEN
length 220 length 220
ENDIF
// PB "konge"
IF nextPhW(N) THEN
length 95
ENDIF ENDIF
FMT(vowel/V_4) FMT(vowel/V_4)
endphoneme endphoneme
@@ -415,7 +406,7 @@ endphoneme
// "forstår" vs. "kåre" // "forstår" vs. "kåre"
phoneme ?V phoneme ?V
vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
length 100 length 90
FMT(vowel/V_4) FMT(vowel/V_4)
endphoneme endphoneme
@@ -432,7 +423,7 @@ ENDIF
FMT(vowel/oo_2) FMT(vowel/oo_2)
endphoneme endphoneme
// ?B short 0 "sukker" // Short 0 "sukker"
phoneme ?0 phoneme ?0
vowel starttype #o endtype #o vowel starttype #o endtype #o
length 90 length 90
@@ -492,8 +483,8 @@ endphoneme
phoneme W phoneme W
vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
length 99 //160 length 90 //160
// "kløe" vowel + vowel: extra length // "kløe" vowel + vowel: extra length
IF nextPhW(#@) OR nextPhW(#e) THEN IF nextPhW(#@) OR nextPhW(#e) THEN
length 220 length 220
ENDIF ENDIF
@@ -501,8 +492,8 @@ ENDIF
IF next2PhW(#@) OR next2PhW(#e) THEN IF next2PhW(#@) OR next2PhW(#e) THEN
length 160 length 160
ENDIF ENDIF
// "røveri" TEST // "røveri" but NOT "surfer" [sWf?V] TEST
IF next2PhW(V) OR next2PhW(?V) THEN IF next2PhW(V) OR next2PhW(?V) AND NOT next2PhW(isFinalVowel) THEN
length 90 length 90
ENDIF ENDIF
// PB "nødig", "nødigt", "kølige" // PB "nødig", "nødigt", "kølige"
@@ -520,7 +511,7 @@ ENDIF
FMT(vowel/oe) FMT(vowel/oe)
endphoneme endphoneme
// PB short W // Short W
// "prøv" vs. "prøve" // "prøv" vs. "prøve"
phoneme ?W phoneme ?W
vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
@@ -528,7 +519,7 @@ phoneme ?W
FMT(vowel/oe) FMT(vowel/oe)
endphoneme endphoneme
// PB added for the ø in "røv", "røg", "øje" instead of [V3] // Added for the ø in "røv", "røg", "øje" instead of [V3]
phoneme W# phoneme W#
vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
length 90 //150 length 90 //150
@@ -543,12 +534,12 @@ ENDIF
FMT(vowel/V) FMT(vowel/V)
endphoneme endphoneme
// PB short W# // Short W#
// "rømme" // "rømme"
phoneme ?W# phoneme ?W#
vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
length 90 length 90
FMT(vowel/V) FMT(vowel/V)
endphoneme endphoneme
phoneme aI phoneme aI
@@ -594,10 +585,10 @@ phoneme l/3 // Replacement for [l/]
PrevVowelEndings PrevVowelEndings
VowelEnding(l/l_@) VowelEnding(l/l_@)
VowelEnding(l/l_a) VowelEnding(l/l_a,-70) // kvalt, kapital
VowelEnding(l/l_e, -40) VowelEnding(l/l_e, -40)
VowelEnding(l/l_i, -70) VowelEnding(l/l_i, -70)
VowelEnding(l/l_o) VowelEnding(l/l_o,-70) // stole, skole, pistol
VowelEnding(l/l_u, -70) VowelEnding(l/l_u, -70)
EndSwitch EndSwitch
@@ -694,7 +685,7 @@ phoneme j
VowelStart(j/ja) VowelStart(j/ja)
VowelStart(j/je,-35) VowelStart(j/je,-35)
VowelStart(j/ji) VowelStart(j/ji)
VowelStart(j/jo) VowelStart(j/jo,-65) // "kjole"
VowelStart(j/ju) VowelStart(j/ju)
EndSwitch EndSwitch
Vowelout len=70 Vowelout len=70
+19 -2
View File
@@ -123,6 +123,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
int end_sourceix; int end_sourceix;
int alternative; int alternative;
int delete_count; int delete_count;
int word_start;
PHONEME_DATA phdata; PHONEME_DATA phdata;
int n_ph_list3; int n_ph_list3;
@@ -334,23 +335,39 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
// transfer all the phonemes of the clause into phoneme_list // transfer all the phonemes of the clause into phoneme_list
ph = phoneme_tab[phonPAUSE]; ph = phoneme_tab[phonPAUSE];
ph_list3[0].ph = ph; ph_list3[0].ph = ph;
word_start = 1;
for(j=0; insert_ph || ((j < n_ph_list3) && (ix < N_PHONEME_LIST-3)); j++) for(j=0; insert_ph || ((j < n_ph_list3) && (ix < N_PHONEME_LIST-3)); j++)
{ {
plist3 = &ph_list3[j]; plist3 = &ph_list3[j];
if(plist3->sourceix != 0)
word_start = j;
if(insert_ph != 0) if(insert_ph != 0)
{ {
// we have a (linking) phoneme which we need to insert here // we have a (linking) phoneme which we need to insert here
next = phoneme_tab[plist3->phcode]; // this phoneme, i.e. after the insert next = phoneme_tab[plist3->phcode]; // this phoneme, i.e. after the insert
// re-use the previous entry for the inserted phoneme. // re-use the previous entry for the inserted phoneme.
// That's OK because we don't look backwards from plist3 *** but CountVowelPosiion() and isAfterStress does !!! // That's OK because we don't look backwards from plist3 *** but CountVowelPosition() and isAfterStress does !!!
j--; j--;
plist3 = plist3_inserted = &ph_list3[j]; plist3 = plist3_inserted = &ph_list3[j];
if(j > 0) if(j > 0)
{ {
memcpy(&plist3[-1], &plist3[0], sizeof(*plist3)); // move all previous phonemes in the word back one place
int k;
if(word_start > 0)
{
k = word_start;
word_start--;
}
else
{
k = 2; // No more space, don't loose the start of word mark at ph_list2[word_start]
}
for(; k<=j; k++)
memcpy(&ph_list3[k-1], &ph_list3[k], sizeof(*plist3));
} }
memset(&plist3[0], 0, sizeof(*plist3)); memset(&plist3[0], 0, sizeof(*plist3));
plist3->phcode = insert_ph; plist3->phcode = insert_ph;
+1 -1
View File
@@ -35,7 +35,7 @@
#include "translate.h" #include "translate.h"
#include "wave.h" #include "wave.h"
const char *version_string = "1.46.50 15.Mar.13"; const char *version_string = "1.46.51 15.Mar.13";
const int version_phdata = 0x014640; const int version_phdata = 0x014640;
int option_device_number = -1; int option_device_number = -1;