mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 13:38:47 +00:00
Merge remote-tracking branch 'hozosch/master'
This commit is contained in:
+7
-11
@@ -34,21 +34,16 @@
|
||||
0 _| NULL 0 _
|
||||
0 pF NULL 0 pf
|
||||
0 r NULL 0 R
|
||||
0 V# NULL 0 R
|
||||
0 V# NULL 0 6
|
||||
0 UR NULL 60 U R
|
||||
|
||||
0 eI VWL 60 e j
|
||||
0 eI VWL 60 E j
|
||||
0 eI NULL 0 e:
|
||||
0 oU NULL 0 o:
|
||||
0 W~ NULL 0 E~
|
||||
0 A~ NULL 0 a~
|
||||
0 O~ NULL 0 o~
|
||||
|
||||
// phonemes for Spanish words
|
||||
0 e NULL 0 E
|
||||
0 ** NULL 0 R
|
||||
0 n^ NULL 40 n j
|
||||
|
||||
// phonemes for English words
|
||||
0 @L NULL 50 @ l
|
||||
0 @2 NULL 0 @
|
||||
@@ -62,7 +57,7 @@
|
||||
0 3: NULL 0 @
|
||||
0 i@ NULL 60 i: @
|
||||
0 i@3 NULL 60 i: @
|
||||
0 e@ NULL 60 e: @
|
||||
0 e@ NULL 60 E 6
|
||||
0 o@ NULL 70 o: 6
|
||||
0 O@ NULL 70 O 6
|
||||
0 O: NULL 0 O
|
||||
@@ -70,10 +65,11 @@
|
||||
0 U@ NULL 60 U @
|
||||
0 aI@ NULL 70 aI @
|
||||
0 aU@ NULL 70 aU @
|
||||
0 3: NULL 60 E: R
|
||||
|
||||
|
||||
0 dZ NULL 0 tS
|
||||
0 w NULL 0 v
|
||||
0 T NULL 0 f
|
||||
0 D NULL 0 v
|
||||
0 T NULL 0 f
|
||||
0 i NULL 0 i:
|
||||
0 EI NULL 0 e:
|
||||
|
||||
|
||||
+6
-9
@@ -26,12 +26,12 @@
|
||||
0 l- NULL 0 l
|
||||
0 w/ NULL 0 w
|
||||
0 j/ NULL 0 j
|
||||
0 ; NULL 0 NULL
|
||||
0 ; NULL 0 j
|
||||
0 g- NULL 0 NULL
|
||||
0 @- NULL 0 NULL
|
||||
0 * NULL 0 R
|
||||
0 V# NULL 0 R
|
||||
0 UR NULL 60 U R
|
||||
0 V# NULL 0 6
|
||||
0 UR NULL 60 U 6
|
||||
|
||||
0 E2 NULL 0 E
|
||||
0 y NULL 0 Y
|
||||
@@ -51,12 +51,9 @@
|
||||
0 O~ NULL 0 o~
|
||||
|
||||
16 _| VWL 0 ?
|
||||
//16 _! VWL 0 ?
|
||||
|
||||
// phonemes for Spanish words
|
||||
0 e NULL 0 E
|
||||
0 ** NULL 0 R
|
||||
0 n^ NULL 40 n j
|
||||
16 _! VWL 0 ?
|
||||
16 ? VWL 0 ?
|
||||
16 _^_ VWL 0 NULL
|
||||
|
||||
// phonemes for English words
|
||||
0 @L NULL 0 L
|
||||
|
||||
+2
-9
@@ -25,7 +25,7 @@
|
||||
0 _! VWL 0 ?
|
||||
0 pF NULL 0 pf
|
||||
0 r NULL 0 R
|
||||
0 V# NULL 0 R
|
||||
0 V# NULL 0 6
|
||||
0 UR NULL 60 U R
|
||||
|
||||
|
||||
@@ -35,20 +35,13 @@
|
||||
0 A~ NULL 0 a~
|
||||
0 O~ NULL 0 o~
|
||||
|
||||
// phonemes for Spanish words
|
||||
0 e NULL 0 E
|
||||
0 ** NULL 0 R
|
||||
0 n^ NULL 40 n j
|
||||
|
||||
// phonemes for English words
|
||||
0 @L NULL 40 @ l
|
||||
0 m- NULL 20 @ m
|
||||
0 n- NULL 20 @ n
|
||||
0 @2 NULL 0 @
|
||||
0 @5 NULL 0 @
|
||||
0 a# NULL 0 @
|
||||
0 I2 NULL 0 I
|
||||
0 i NULL 0 I
|
||||
0 i NULL 0 i:
|
||||
0 aa NULL 0 a
|
||||
0 V NULL 0 a:
|
||||
0 0 NULL 0 a:
|
||||
|
||||
+200
-134
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
|
||||
//=========================================================
|
||||
// German
|
||||
@@ -9,34 +9,148 @@
|
||||
phoneme @ // Schwa
|
||||
vwl starttype #@ endtype #@
|
||||
unstressed
|
||||
length 120
|
||||
length 80
|
||||
IF nextPh(r) THEN
|
||||
IF next2Ph(isVowel) THEN
|
||||
ELSE
|
||||
ChangePhoneme(3)
|
||||
ENDIF
|
||||
ENDIF
|
||||
IF nextPh(n) THEN
|
||||
length 15
|
||||
ENDIF
|
||||
FMT(vowel/@_4)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme 3 // open Schwa+r
|
||||
vwl starttype #@ endtype #@
|
||||
unstressed flag1
|
||||
length 160
|
||||
IF thisPh(isFinalVowel) THEN
|
||||
length 210
|
||||
phoneme A~
|
||||
vowel starttype #a endtype #a
|
||||
length 260
|
||||
FMT(vnasal/aa_n4)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme l2 // as [l] but devoice previous phoneme
|
||||
liquid lengthmod 7
|
||||
ChangePhoneme (l)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme b
|
||||
vcd blb stp
|
||||
voicingswitch p
|
||||
IF nextPh(l2) THEN
|
||||
ChangePhoneme(p)
|
||||
ENDIF
|
||||
CALL base/b
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme d
|
||||
vcd alv stp
|
||||
voicingswitch t
|
||||
IF nextPh(l2) THEN
|
||||
ChangePhoneme(t)
|
||||
ENDIF
|
||||
lengthmod 5
|
||||
Vowelin f1=1 f2=1700 -300 300 f3=-100 80
|
||||
Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk
|
||||
|
||||
IF PreVoicing THEN
|
||||
FMT(d/xd)
|
||||
ENDIF
|
||||
|
||||
IF nextPh(isPause2) THEN
|
||||
FMT(d/d_) addWav(x/d_)
|
||||
ELIF nextPh(r) THEN
|
||||
FMT(d/dr) addWav(x/d)
|
||||
ENDIF
|
||||
|
||||
FMT(d/d) addWav(x/d)
|
||||
endphoneme
|
||||
|
||||
phoneme g
|
||||
vcd vel stp
|
||||
voicingswitch k
|
||||
IF nextPh(l2) THEN
|
||||
ChangePhoneme(k)
|
||||
ENDIF
|
||||
CALL base/g
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme k
|
||||
vls vel stp
|
||||
voicingswitch g
|
||||
lengthmod 2
|
||||
Vowelin f1=0 f2=2300 200 300 f3=-200 80
|
||||
Vowelout f1=0 f2=2300 300 400 f3=-200 80 rms=20
|
||||
|
||||
IF KlattSynth THEN
|
||||
Vowelout f1=0 f2=2300 200 300 f3=-200 80 rms=20
|
||||
ENDIF
|
||||
|
||||
IF nextPh(isPause2) THEN
|
||||
WAV(ustop/k_)
|
||||
ELIF nextPh(r) OR nextPh(R) OR nextPh(R2) THEN
|
||||
WAV(ustop/k_)
|
||||
ELIF nextPh(i:) OR nextPh(;) THEN
|
||||
WAV(ustop/ki)
|
||||
ELIF nextPh(l) THEN
|
||||
WAV(ustop/kl)
|
||||
ELIF nextPh(@-) THEN
|
||||
WAV(ustop/k_unasp, 70)
|
||||
ENDIF
|
||||
WAV(ustop/k)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme p
|
||||
vls blb stp
|
||||
voicingswitch b
|
||||
lengthmod 2
|
||||
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
|
||||
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22
|
||||
|
||||
IF nextPh(isPause2) THEN
|
||||
WAV(ustop/p_)
|
||||
ELIF nextPh(r) THEN
|
||||
WAV(ustop/p)
|
||||
ELIF nextPh(@-) THEN
|
||||
WAV(ustop/p_unasp)
|
||||
ELIF nextPh(l) THEN
|
||||
WAV(ustop/pl)
|
||||
ENDIF
|
||||
WAV(ustop/p)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme 3 // Schwa+r
|
||||
vwl starttype #a endtype #a
|
||||
unstressed flag1
|
||||
length 140
|
||||
IF thisPh(isWordEnd) THEN
|
||||
FMT(vowel/V_3)
|
||||
ELSE
|
||||
FMT(vowel/V_3)
|
||||
ENDIF
|
||||
endphoneme
|
||||
|
||||
phoneme 3: // Schwa+r
|
||||
vwl starttype #a endtype #a
|
||||
unstressed flag1
|
||||
length 220
|
||||
IF thisPh(isWordEnd) THEN
|
||||
FMT(vowel/V_3)
|
||||
ELSE
|
||||
FMT(vowel/a#_3)
|
||||
ENDIF
|
||||
FMT(vowel/a#_3) // in eSpeak 1.44, this used vowel/V_3 at end-of-word
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme a
|
||||
vwl starttype #a endtype #a
|
||||
length 110
|
||||
IF nextPh(isRhotic) THEN
|
||||
length 125
|
||||
ENDIF
|
||||
FMT(vowel/a)
|
||||
endphoneme
|
||||
|
||||
@@ -44,9 +158,6 @@ endphoneme
|
||||
phoneme E
|
||||
vwl starttype #e endtype #e
|
||||
length 120
|
||||
IF nextPh(*) THEN
|
||||
length 135
|
||||
ENDIF
|
||||
FMT(vowel/e_mid2)
|
||||
endphoneme
|
||||
|
||||
@@ -55,9 +166,6 @@ phoneme E2 // as[E] but reduces to @ if unstressed
|
||||
vwl starttype #e endtype #e
|
||||
length 120
|
||||
ChangeIfDiminished(@)
|
||||
IF nextPh(*) THEN
|
||||
length 135
|
||||
ENDIF
|
||||
FMT(vowel/e_mid2)
|
||||
endphoneme
|
||||
|
||||
@@ -65,9 +173,6 @@ endphoneme
|
||||
phoneme I
|
||||
vwl starttype #i endtype #i
|
||||
length 120
|
||||
IF nextPh(*) THEN
|
||||
length 135
|
||||
ENDIF
|
||||
IfNextVowelAppend(;)
|
||||
FMT(vowel/ii)
|
||||
endphoneme
|
||||
@@ -80,12 +185,18 @@ phoneme I:
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme iR // TEST "vier" = [f'iR] not successful
|
||||
vwl starttype #i endtype #@
|
||||
ipa i?
|
||||
flag1
|
||||
length 240
|
||||
FMT(vdiph2/i@_3)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme O
|
||||
vwl starttype #o endtype #o
|
||||
length 120
|
||||
IF nextPh(*) THEN
|
||||
length 135
|
||||
ENDIF
|
||||
FMT(vowel/oo)
|
||||
endphoneme
|
||||
|
||||
@@ -93,12 +204,11 @@ endphoneme
|
||||
phoneme U
|
||||
vwl starttype #u endtype #u
|
||||
length 120
|
||||
IF nextPh(*) THEN
|
||||
length 135
|
||||
ENDIF
|
||||
|
||||
IF nextPh(r) AND next2Ph(isNotVowel) THEN
|
||||
ChangePhoneme(UR)
|
||||
IF nextPh(r) THEN
|
||||
IF next2Ph(isVowel) THEN
|
||||
ELSE
|
||||
ChangePhoneme(UR)
|
||||
ENDIF
|
||||
ENDIF
|
||||
FMT(vowel/uu_2)
|
||||
endphoneme
|
||||
@@ -125,10 +235,6 @@ phoneme i:
|
||||
IF prevPh(w) THEN
|
||||
VowelStart(w/wi2)
|
||||
ENDIF
|
||||
|
||||
// IF nextPh(r) AND next2Ph(isNotVowel) THEN
|
||||
// ChangePhoneme(iR)
|
||||
// ENDIF
|
||||
FMT(vowel/i_2)
|
||||
endphoneme
|
||||
|
||||
@@ -166,17 +272,15 @@ endphoneme
|
||||
|
||||
|
||||
phoneme EI
|
||||
vwl starttype #e endtype #i
|
||||
length 210
|
||||
FMT(vdiph/eei)
|
||||
import_phoneme en-us/eI
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
phoneme OY
|
||||
vwl starttype #o endtype #i
|
||||
vwl starttype #o endtype #e
|
||||
length 220
|
||||
FMT(vdiph/oi)
|
||||
FMT(vwl_de/eu)
|
||||
endphoneme
|
||||
|
||||
|
||||
@@ -209,29 +313,23 @@ endphoneme
|
||||
|
||||
|
||||
phoneme y
|
||||
vwl starttype #u endtype #u
|
||||
ipa ʏ
|
||||
vwl starttype #@ endtype #u
|
||||
ipa ?
|
||||
length 110
|
||||
IF nextPh(*) THEN
|
||||
length 115
|
||||
ENDIF
|
||||
FMT(vowel/yy_4)
|
||||
FMT(vwl_de/ue_short)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme Y:
|
||||
vwl starttype #@ endtype #@
|
||||
length 180
|
||||
FMT(vowel/y#)
|
||||
vwl starttype #@ endtype #u
|
||||
length 220
|
||||
FMT(vwl_de/y#)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme W
|
||||
vwl starttype #@ endtype #@
|
||||
length 150
|
||||
IF nextPh(*) THEN
|
||||
length 160
|
||||
ENDIF
|
||||
FMT(vowel/oe)
|
||||
endphoneme
|
||||
|
||||
@@ -240,8 +338,9 @@ endphoneme
|
||||
// CONSONANTS
|
||||
//===========
|
||||
|
||||
|
||||
phoneme t
|
||||
vls alv stp
|
||||
vls alv stp
|
||||
voicingswitch d
|
||||
lengthmod 2
|
||||
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
|
||||
@@ -258,14 +357,13 @@ phoneme t
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
phoneme ts
|
||||
import_phoneme consonants/ts
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme pF
|
||||
vls bld afr
|
||||
vls blb afr
|
||||
ipa pf
|
||||
Vowelout f1=0 f2=1000 -500 -350 f3=-200 80
|
||||
lengthmod 2
|
||||
@@ -324,7 +422,7 @@ phoneme j
|
||||
VowelEnding(j/xj, -30)
|
||||
|
||||
IF prevPh(isPause) THEN
|
||||
FMT(j/_j_short) // difference from base1/j
|
||||
FMT(j/_j_short) // difference from base/j
|
||||
ENDIF
|
||||
ELSE
|
||||
// no vowel follows
|
||||
@@ -334,109 +432,77 @@ phoneme j
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme r // note, following consonant must be 'ustop/t_' not 'ustop/tr' etc.
|
||||
liquid alv rhotic
|
||||
phoneme r
|
||||
liquid uvl
|
||||
ipa ʀ
|
||||
lengthmod 6
|
||||
|
||||
IF prevPhW(@-) THEN
|
||||
length 110
|
||||
IF nextPhW(isVowel) THEN
|
||||
FMT(r3/r_uvl) addWav(r3/r_uvl.wav, 50)
|
||||
ELSE
|
||||
IF nextPhW(isVowel) THEN
|
||||
IF prevPhW(isVowel) THEN
|
||||
ChangePhoneme(R)
|
||||
ELSE
|
||||
IF prevPhW(t) THEN
|
||||
PauseBefore 30
|
||||
ELSEIF prevPhW(d) OR prevPhW(b) OR prevPhW(g) OR prevPhW(k) OR prevPhW(p) THEN
|
||||
PauseBefore 15
|
||||
ELSE
|
||||
InsertPhoneme(@-)
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF prevPh(isFlag1) THEN
|
||||
IF prevPh(isFlag1) THEN
|
||||
ChangePhoneme(NULL) // 'r' is already included in the previous vowel
|
||||
ELSE
|
||||
ChangePhoneme(V#)
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
CALL base1/*
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme V# // used for 'r' after a vowel (to create a diphthong)
|
||||
liquid
|
||||
lengthmod 7
|
||||
IF nextPhW(isVowel) THEN
|
||||
ChangePhoneme(r)
|
||||
ENDIF
|
||||
|
||||
phoneme iR // TEST "vier" = [f'iR] not successful
|
||||
vwl starttype #i endtype #@
|
||||
ipa iɐ
|
||||
flag1
|
||||
length 240
|
||||
FMT(vdiph2/i@_3)
|
||||
ipa ?
|
||||
IF prevPh(#a) THEN
|
||||
FMT(r/V_2_)
|
||||
ENDIF
|
||||
IF prevPh(e:) OR prevPh (Y:) THEN
|
||||
FMT(vowel/V_3)
|
||||
ENDIF
|
||||
IF prevPh(E) THEN
|
||||
FMT(r/V_2_)
|
||||
ENDIF
|
||||
IF prevPh(#u) THEN
|
||||
FMT(r/@_)
|
||||
ENDIF
|
||||
FMT(r/V_)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme UR
|
||||
vwl starttype #u endtype #@
|
||||
ipa ʊɐ
|
||||
ipa ??
|
||||
flag1
|
||||
length 180
|
||||
FMT(vwl_de/uu_@)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme r2
|
||||
vcd alv flp
|
||||
|
||||
IF prevPhW(isVowel) THEN
|
||||
ChangePhoneme(*)
|
||||
ENDIF
|
||||
|
||||
InsertPhoneme(@-)
|
||||
ChangePhoneme(*)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
phoneme oU // for English words
|
||||
import_phoneme en-us/oU
|
||||
endphoneme
|
||||
|
||||
phoneme A~
|
||||
vwl starttype #a endtype #a
|
||||
length 260
|
||||
FMT(vnasal/aa_n4)
|
||||
|
||||
phoneme W~
|
||||
vwl starttype #@ endtype #@
|
||||
length 200
|
||||
FMT(vnasal/W_n)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme l2 // as [l] but devoice previous phoneme
|
||||
liquid lengthmod 7
|
||||
ChangePhoneme (l)
|
||||
endphoneme
|
||||
|
||||
phoneme b
|
||||
vcd alv frc sib
|
||||
voicingswitch p
|
||||
IF nextPh(l2) THEN
|
||||
ChangePhoneme(p)
|
||||
ENDIF
|
||||
CALL base1/b
|
||||
endphoneme
|
||||
|
||||
phoneme d
|
||||
vcd alv stp
|
||||
voicingswitch t
|
||||
IF nextPh(l2) THEN
|
||||
ChangePhoneme(t)
|
||||
ENDIF
|
||||
lengthmod 5
|
||||
Vowelin f1=1 f2=1700 -300 300 f3=-100 80
|
||||
Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk
|
||||
|
||||
IF PreVoicing THEN
|
||||
FMT(d/xd)
|
||||
ENDIF
|
||||
|
||||
IF nextPh(isPause2) THEN
|
||||
FMT(d/d_) addWav(x/d_)
|
||||
ELIF nextPh(r) THEN
|
||||
FMT(d/dr) addWav(x/d)
|
||||
ENDIF
|
||||
|
||||
FMT(d/d) addWav(x/d)
|
||||
endphoneme
|
||||
|
||||
phoneme g
|
||||
vcd vel stp
|
||||
voicingswitch k
|
||||
IF nextPh(l2) THEN
|
||||
ChangePhoneme(k)
|
||||
ENDIF
|
||||
CALL base1/g
|
||||
endphoneme
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user