mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
[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:
+35
-38
@@ -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
File diff suppressed because it is too large
Load Diff
@@ -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:
|
||||||
|
|||||||
@@ -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
File diff suppressed because it is too large
Load Diff
@@ -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
@@ -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
@@ -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
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user