mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-14 01:32:29 +00:00
Merge branch 'master' into android
This commit is contained in:
@@ -0,0 +1,518 @@
|
||||
// short vowels
|
||||
phoneme a
|
||||
vowel starttype #a endtype #a
|
||||
unstressed
|
||||
length 180
|
||||
CALL ShortVowelLength
|
||||
IF prevPh(s[) OR prevPh(d[) OR prevPh(t[) OR prevPh(Z) THEN
|
||||
FMT(vowel/0_3)
|
||||
ELSE
|
||||
FMT(vowel/a#)
|
||||
ENDIF
|
||||
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme i
|
||||
vowel starttype #i endtype #i
|
||||
length 140
|
||||
unstressed
|
||||
CALL ShortVowelLength
|
||||
FMT(vowel/i)
|
||||
endphoneme
|
||||
|
||||
phoneme u
|
||||
vowel starttype #u endtype #u
|
||||
unstressed
|
||||
length 140
|
||||
CALL ShortVowelLength
|
||||
FMT(vowel/u)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
phoneme : // lengthen previous vowel by "length"
|
||||
virtual
|
||||
length 200
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
|
||||
// long vowels
|
||||
phoneme a:
|
||||
vowel starttype #a endtype #a
|
||||
length 300
|
||||
//CALL LongVowelLength
|
||||
IF prevPh(s[) OR prevPh(d[) OR prevPh(t[) OR prevPh(Z) THEN
|
||||
FMT(vowel/0_3)
|
||||
ELSE
|
||||
FMT(vowel/a#)
|
||||
ENDIF
|
||||
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme i:
|
||||
vowel starttype #i endtype #i
|
||||
length 300
|
||||
//CALL LongVowelLength
|
||||
FMT(vowel/i)
|
||||
endphoneme
|
||||
|
||||
phoneme u:
|
||||
vowel starttype #u endtype #u
|
||||
length 300
|
||||
//CALL LongVowelLength
|
||||
FMT(vowel/u)
|
||||
endphoneme
|
||||
|
||||
|
||||
// Redifine consnant for arabic
|
||||
|
||||
|
||||
|
||||
|
||||
phoneme l
|
||||
liquid
|
||||
lengthmod 7
|
||||
|
||||
IF nextPh(isNotVowel) THEN
|
||||
ChangePhoneme(l/)
|
||||
ENDIF
|
||||
|
||||
IF nextPh(isNotVowel) THEN
|
||||
// in case the next phoneme is no longer a vowel, in pass=2
|
||||
PrevVowelEndings
|
||||
VowelEnding(l/L1_@L, -60)
|
||||
VowelEnding(l/L1_aL, -40)
|
||||
VowelEnding(l/L1_eL, -30)
|
||||
VowelEnding(l/L1_iL, -30)
|
||||
VowelEnding(l/L1_oL, -40)
|
||||
VowelEnding(l/L1_uL, -40)
|
||||
EndSwitch
|
||||
|
||||
FMT(l/l_)
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
CALL vowelstart_l
|
||||
|
||||
IF prevPh(#@) THEN
|
||||
VowelEnding(l/xl, -50)
|
||||
ELIF prevPh(isVowel) THEN
|
||||
VowelEnding(l/xl, -40)
|
||||
ENDIF
|
||||
|
||||
IF prevPh(isPause) THEN
|
||||
FMT(l/_l)
|
||||
ENDIF
|
||||
|
||||
IF prevPh(t) THEN
|
||||
FMT(l/tl)
|
||||
ENDIF
|
||||
|
||||
IF prevPh(l/) THEN
|
||||
FMT(l/l_long) // double l, make it longer
|
||||
ENDIF
|
||||
|
||||
FMT(l/l)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
phoneme w
|
||||
liquid
|
||||
lengthmod 7
|
||||
FMT(w/w_)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
phoneme j
|
||||
liquid palatal
|
||||
lengthmod 7
|
||||
FMT(j/j_)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
//*******************************************************************
|
||||
// NASAL CONSONANTS
|
||||
//*******************************************************************
|
||||
|
||||
|
||||
phoneme m
|
||||
vcd blb nasal
|
||||
Vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk
|
||||
lengthmod 4
|
||||
FMT(m/m_)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme n
|
||||
vcd alv nasal
|
||||
Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk
|
||||
lengthmod 4
|
||||
FMT(n/n_)
|
||||
endphoneme
|
||||
|
||||
|
||||
//*******************************************************************
|
||||
// VOICED STOPS
|
||||
//*******************************************************************
|
||||
|
||||
|
||||
phoneme b
|
||||
vcd blb stop
|
||||
voicingswitch p
|
||||
Vowelout f1=2 f2=1000 -500 -300 f3=-300 80 brk
|
||||
lengthmod 7
|
||||
FMT(b/b) addWav(x/b)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme d
|
||||
vcd alv stop
|
||||
voicingswitch t
|
||||
lengthmod 5
|
||||
Vowelin f1=1 f2=1700 -300 300 f3=-100 80
|
||||
Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk
|
||||
|
||||
FMT(d/d) addWav(x/d)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme d[
|
||||
vcd dnt stop
|
||||
voicingswitch t[
|
||||
lengthmod 5
|
||||
Vowelin f1=2 f2=1500 -300 300 f3=-150 80
|
||||
Vowelout f1=2 f2=1500 -300 300 f3=-150 80
|
||||
FMT(d/d) addWav(x/d_dnt, 100)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme dZ
|
||||
vcd pla afr sibilant
|
||||
voicingswitch tS
|
||||
//lengthmod 8
|
||||
Vowelin f1=2 f2=2300 200 400 f3=100 80
|
||||
Vowelout f1=2 f2=2300 250 300 f3=100 80 brk
|
||||
|
||||
FMT(dzh/dzh) addWav(x/dzh)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
phoneme J
|
||||
vcd pal afr sibilant palatal
|
||||
voicingswitch c
|
||||
lengthmod 5
|
||||
Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70
|
||||
Vowelout f1=2 f2=2700 400 600 f3=300 80 colr=1
|
||||
|
||||
IF KlattSynth THEN
|
||||
IF nextPh(isPause2) THEN
|
||||
FMT(klatt/dz_pzd_) addWav(x/dzh, 35)
|
||||
ENDIF
|
||||
FMT(klatt/dz_pzd) addWav(x/dzh, 45)
|
||||
ENDIF
|
||||
|
||||
FMT(dzh/dz_pzd) addWav(x/dzh, 45)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme g
|
||||
vcd vel stop
|
||||
voicingswitch k
|
||||
lengthmod 5
|
||||
Vowelin f1=2 f2=2300 200 300 f3=-300 80
|
||||
Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
|
||||
|
||||
FMT(g/g) addWav(x/g2, 150)
|
||||
endphoneme
|
||||
|
||||
//*******************************************************************
|
||||
// VOICED fricatives
|
||||
//*******************************************************************
|
||||
|
||||
phoneme D
|
||||
vcd dnt frc
|
||||
voicingswitch T
|
||||
lengthmod 6
|
||||
Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50
|
||||
|
||||
IF KlattSynth THEN
|
||||
Vowelin f1=0 f2=1290 -300 300 f3=0 0
|
||||
ENDIF
|
||||
FMT(voc/dh) addWav(vocw/dh)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme z
|
||||
vcd alv frc sibilant
|
||||
//voicingswitch s
|
||||
lengthmod 1
|
||||
Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50
|
||||
|
||||
IF KlattSynth THEN
|
||||
Vowelin f1=0 f2=1390 -300 300 f3=0 0
|
||||
Vowelout f1=1 f2=1390 -300 300 f3=-100 60 len=50 brk
|
||||
ENDIF
|
||||
|
||||
FMT(voc/z) addWav(ufric/s_, 85)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme Z
|
||||
vcd pla frc sibilant
|
||||
voicingswitch S
|
||||
lengthmod 6
|
||||
Vowelin f1=0 f2=2000 0 300 f3=-200 80
|
||||
Vowelout f1=2 f2=2000 0 300 f3=-200 80 brk
|
||||
|
||||
IF KlattSynth THEN
|
||||
IF nextPh(isPause2) THEN
|
||||
FMT(klatt/zh_) addWav(vocw/zh)
|
||||
ENDIF
|
||||
FMT(klatt/zh) addWav(vocw/zh, 130)
|
||||
ENDIF
|
||||
|
||||
FMT(voc/zh) addWav(vocw/zh, 130)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//*******************************************************************
|
||||
// UNVOICED STOPS
|
||||
//*******************************************************************
|
||||
|
||||
phoneme t
|
||||
vls alv stop
|
||||
voicingswitch d
|
||||
lengthmod 2
|
||||
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
|
||||
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
|
||||
WAV(ustop/t, 90)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme t[ // dental variant of /t/
|
||||
vls dnt stop
|
||||
voicingswitch d[
|
||||
lengthmod 2
|
||||
Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16
|
||||
Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
|
||||
|
||||
WAV(ustop/t_dnt, 35)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
|
||||
phoneme k
|
||||
vls vel stop
|
||||
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
|
||||
|
||||
WAV(ustop/k)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme q
|
||||
vls uvl stop
|
||||
lengthmod 2
|
||||
Vowelin f1=1 f2=1700 0 200 f3=-300 80 gpaus f4 rms=30
|
||||
Vowelout f1=1 f2=1700 -100 200 f3=-300 80 f4 rms=35
|
||||
WAV(ustop/q, 48)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
//*******************************************************************
|
||||
// UNVOICED fricatives
|
||||
//*******************************************************************
|
||||
|
||||
phoneme f
|
||||
vls lbd frc
|
||||
voicingswitch v
|
||||
lengthmod 3
|
||||
Vowelout f1=0 f2=1000 -500 -350 f3=-200 80
|
||||
WAV(ufric/f)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme T
|
||||
vls dnt frc
|
||||
voicingswitch D
|
||||
lengthmod 3
|
||||
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
|
||||
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
|
||||
WAV(ufric/th)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme s
|
||||
vls alv frc sibilant
|
||||
voicingswitch z
|
||||
lengthmod 3
|
||||
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
|
||||
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
|
||||
WAV(ufric/s)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme S
|
||||
vls pla frc sibilant
|
||||
voicingswitch Z
|
||||
lengthmod 3
|
||||
Vowelin f1=0 f2=2100 100 300 f3=-100 80
|
||||
Vowelout f1=0 f2=2100 100 300 f3=-100 80
|
||||
|
||||
WAV(ufric/sh)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
phoneme x
|
||||
vls vel frc
|
||||
voicingswitch Q
|
||||
lengthmod 3
|
||||
Vowelin f1=0 f2=2300 200 400 f3=-100 80
|
||||
Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20
|
||||
//WAV(ufric/x)
|
||||
WAV(vwl_ar/kha)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
phoneme h
|
||||
vls glt apr
|
||||
lengthmod 3
|
||||
ipa h
|
||||
WAV(h/h_, 70) // no vowel following
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// Added specific consnant to arabic
|
||||
phoneme H // arabic Hah
|
||||
vls phr frc
|
||||
ipa U+0127
|
||||
lengthmod 5
|
||||
WAV(vwl_ar/H2)
|
||||
endphoneme
|
||||
|
||||
phoneme Z // arabic ZAH .Todo
|
||||
vls phr frc
|
||||
lengthmod 5
|
||||
voicingswitch z
|
||||
WAV(vwl_ar/ZH4)
|
||||
endphoneme
|
||||
|
||||
phoneme E // arabic Ain
|
||||
vls phr frc
|
||||
//ipa U+0127
|
||||
//voicingswitch a
|
||||
lengthmod 5
|
||||
//WAV(vwl_ar/AN2,50)
|
||||
WAV(vwl_ar/ain2)
|
||||
|
||||
endphoneme
|
||||
|
||||
phoneme G //arabic Ghain
|
||||
//vcd uvl frc
|
||||
vls uvl frc
|
||||
lengthmod 3
|
||||
Vowelin f1=0 f2=2300 200 400 f3=-100 80
|
||||
Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20
|
||||
voicingswitch R
|
||||
//lengthmod 5
|
||||
//ipa U+0280
|
||||
WAV(vwl_ar/ghain6)
|
||||
//FMT(voc/Q_ulv) addWav(vwl_ar/gh, 100)
|
||||
//FMT(voc/Q_ulv) addWav(vwl_ar/ghain3, 100)
|
||||
|
||||
endphoneme
|
||||
|
||||
phoneme d[ //arabic Dhad
|
||||
vls dnt stop
|
||||
voicingswitch d
|
||||
length 120
|
||||
WAV(vwl_ar/da7)
|
||||
endphoneme
|
||||
|
||||
phoneme s[
|
||||
vls dnt stop
|
||||
//voicingswitch s
|
||||
lengthmod 7
|
||||
WAV(vwl_ar/SA1)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
phoneme r
|
||||
liquid rhotic
|
||||
ipa ?
|
||||
lengthmod 7
|
||||
IF nextPh(a) OR nextPh(a:) THEN
|
||||
FMT(r/ra)
|
||||
ENDIF
|
||||
FMT(r/r_)
|
||||
endphoneme
|
||||
|
||||
procedure ShortVowelLength
|
||||
|
||||
//IF prevPhW(isVoiced) AND nextPhW(isVoiced) THEN // voiced
|
||||
IF prevPhW(isNotVowel) AND nextPhW(isNotVowel) THEN // consonants
|
||||
length 140
|
||||
RETURN
|
||||
//ENDIF
|
||||
ELSE
|
||||
IF prevPh(isStressed) THEN
|
||||
length 160
|
||||
ELSE
|
||||
length 175
|
||||
ENDIF
|
||||
|
||||
ENDIF
|
||||
endprocedure
|
||||
procedure LongVowelLength
|
||||
|
||||
//IF prevPhW(isVoiced) AND nextPhW(isVoiced) THEN // voiced
|
||||
IF nextPhW(:) THEN
|
||||
length 300
|
||||
RETURN
|
||||
//ENDIF
|
||||
ELIF prevPhW(isNotVowel) AND nextPhW(isNotVowel) THEN // consonants
|
||||
length 340
|
||||
RETURN
|
||||
//ENDIF
|
||||
ELSE
|
||||
IF prevPh(isStressed) THEN
|
||||
length 360
|
||||
ELSE
|
||||
length 375
|
||||
ENDIF
|
||||
|
||||
ENDIF
|
||||
endprocedure
|
||||
@@ -94,8 +94,8 @@ endphoneme
|
||||
|
||||
|
||||
phoneme k#
|
||||
// import_phoneme consonants/kh
|
||||
import_phoneme base/k
|
||||
import_phoneme consonants/kh
|
||||
// import_phoneme base/k
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,186 @@
|
||||
|
||||
//====================================================
|
||||
// Basque - based on Base2
|
||||
//====================================================
|
||||
|
||||
phoneme a
|
||||
vowel starttype #a endtype #a
|
||||
length 200
|
||||
FMT(vowel/a_4)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme a2 // delete if the next vowel is 'a'. Used for numbers.
|
||||
vowel starttype #a endtype #a
|
||||
length 200
|
||||
|
||||
IF nextPh(#a) THEN
|
||||
ChangePhoneme(NULL) // merge consecutive 'a'
|
||||
ELSE
|
||||
ChangePhoneme(a)
|
||||
ENDIF
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme e
|
||||
vowel starttype #e endtype #e
|
||||
length 200
|
||||
FMT(vowel/e_mid2)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme i
|
||||
vowel starttype #i endtype #i
|
||||
length 190
|
||||
IfNextVowelAppend(;)
|
||||
FMT(vowel/i)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme o
|
||||
vowel starttype #o endtype #o
|
||||
length 200
|
||||
FMT(vowel/oo)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme u
|
||||
vowel starttype #u endtype #u
|
||||
length 200
|
||||
FMT(vowel/u_bck2)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme Y
|
||||
vowel starttype #@ endtype #@
|
||||
length 200
|
||||
FMT(vowel/y#)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
// Note: I have made [s] and [z] the same, and similarly [ts] and [tz]
|
||||
// These should be changed to the correct "s", "z", "ts" and "tz" sounds fo Basque.
|
||||
|
||||
phoneme s
|
||||
vls alv frc sibilant
|
||||
ipa ʂ
|
||||
lengthmod 3
|
||||
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
|
||||
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
|
||||
|
||||
IF nextPh(isPause) THEN
|
||||
WAV(ufric/sh_rfx, 60)
|
||||
ENDIF
|
||||
WAV(ufric/sh_rfx, 90) // different from s but probably not correct
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme z
|
||||
vls alv frc sibilant
|
||||
ipa s
|
||||
lengthmod 3
|
||||
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
|
||||
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
|
||||
|
||||
// z+z=tz, z+g=zk, z+g=zt, z+b=zp
|
||||
IF nextPh(z) THEN
|
||||
ChangeNextPhoneme(tz)
|
||||
ChangePhoneme(NULL)
|
||||
ELSEIF nextPh(g) THEN
|
||||
ChangeNextPhoneme(k)
|
||||
ELSEIF nextPh(d) THEN
|
||||
ChangeNextPhoneme(t)
|
||||
ELSEIF nextPh(b) THEN
|
||||
ChangeNextPhoneme(p)
|
||||
ENDIF
|
||||
|
||||
IF nextPh(isPause) THEN
|
||||
WAV(ufric/s_, 60)
|
||||
ENDIF
|
||||
WAV(ufric/s, 80)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme ts
|
||||
vls alv afr sibilant
|
||||
ipa tʂ
|
||||
lengthmod 2
|
||||
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
|
||||
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
|
||||
IF nextPh(isPause2) THEN
|
||||
WAV(ustop/ts_)
|
||||
ENDIF
|
||||
WAV(ustop/ts)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme tz
|
||||
vls alv afr sibilant
|
||||
ipa ts
|
||||
lengthmod 2
|
||||
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
|
||||
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
|
||||
IF nextPh(isPause2) THEN
|
||||
WAV(ustop/ts_)
|
||||
ENDIF
|
||||
WAV(ustop/ts)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme t
|
||||
vls dnt stop
|
||||
lengthmod 2
|
||||
|
||||
// t+g=k, t+d=t, t+z=tz
|
||||
IF nextPh(g) THEN
|
||||
ChangeNextPhoneme(k)
|
||||
ChangePhoneme(NULL)
|
||||
ELSEIF nextPh(d) THEN
|
||||
ChangeNextPhoneme(t)
|
||||
ChangePhoneme(NULL)
|
||||
ELSEIF nextPh(z) THEN
|
||||
ChangeNextPhoneme(tz)
|
||||
ChangePhoneme(NULL)
|
||||
ENDIF
|
||||
|
||||
CALL base2/t
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme r
|
||||
vcd alv flp rhotic
|
||||
brkafter
|
||||
ipa ɾ
|
||||
lengthmod 3
|
||||
|
||||
IF nextPhW(isVowel) THEN
|
||||
ChangePhoneme(**)
|
||||
ENDIF
|
||||
|
||||
CALL base/*
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme b
|
||||
import_phoneme es/b
|
||||
endphoneme
|
||||
|
||||
phoneme d
|
||||
import_phoneme es/d
|
||||
endphoneme
|
||||
|
||||
phoneme g
|
||||
import_phoneme es/g
|
||||
endphoneme
|
||||
|
||||
phoneme n
|
||||
vcd alv nasal
|
||||
lengthmod 4
|
||||
|
||||
IF prevPhW(i) AND nextPhW(isVowel) THEN
|
||||
ChangePhoneme(n^)
|
||||
ENDIF
|
||||
|
||||
CALL base/n
|
||||
endphoneme
|
||||
@@ -223,6 +223,14 @@ phoneme E# // [@] in unstressed syllables, if next vowel is stressed
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme E2 // does not reduce in unstressed syllables
|
||||
vowel starttype #e endtype #e
|
||||
length 140
|
||||
ChangePhoneme(E) // a second change ([E] to [I2]) won't happen
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
phoneme I
|
||||
vowel starttype #i endtype #i
|
||||
length 130
|
||||
@@ -328,6 +336,14 @@ phoneme A@ // Used for [A:] when followed by 'r'
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme A# // [a] in British [A:] in American
|
||||
vowel starttype #a endtype #a
|
||||
ChangePhoneme(a)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
|
||||
phoneme 3:
|
||||
vowel starttype #@ endtype #@
|
||||
length 210
|
||||
|
||||
@@ -169,6 +169,12 @@ phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in Ameri
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme A# // [a] in British [A:] in American
|
||||
vowel starttype #a endtype #a
|
||||
ChangePhoneme(A:)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme 3:
|
||||
vowel starttype #@ endtype #@
|
||||
length 240
|
||||
|
||||
+20
-3
@@ -316,7 +316,7 @@ endphoneme
|
||||
|
||||
|
||||
phoneme r
|
||||
vcd alv flp rhotic
|
||||
liquid alv rhotic
|
||||
lengthmod 6
|
||||
|
||||
IF prevPhW(@-) THEN
|
||||
@@ -325,7 +325,10 @@ phoneme r
|
||||
IF prevPhW(isVowel) THEN
|
||||
ChangePhoneme(R)
|
||||
ELSE
|
||||
IF prevPhW(t) THEN
|
||||
IF prevPhW(t) OR prevPhW(p) OR prevPhW(k) THEN
|
||||
PauseBefore 40
|
||||
ELSEIF prevPhW(d) OR prevPhW(b) OR prevPhW(g) THEN
|
||||
PauseBefore 15
|
||||
ELSE
|
||||
InsertPhoneme(@-)
|
||||
ENDIF
|
||||
@@ -393,7 +396,21 @@ phoneme d
|
||||
IF nextPh(l2) THEN
|
||||
ChangePhoneme(t)
|
||||
ENDIF
|
||||
CALL base/d
|
||||
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
|
||||
|
||||
+17
-5
@@ -146,10 +146,10 @@ endphoneme
|
||||
phoneme a:
|
||||
vowel long starttype #a endtype #a
|
||||
length 200
|
||||
IF nextPhW(j) THEN
|
||||
// IF nextPhW(j) THEN
|
||||
FMT(vowel/a_5)
|
||||
ENDIF
|
||||
FMT(vowel/aa_9)
|
||||
// ENDIF
|
||||
// FMT(vowel/aa_9)
|
||||
endphoneme
|
||||
|
||||
phoneme a
|
||||
@@ -547,8 +547,20 @@ phoneme r
|
||||
CALL base/r/
|
||||
ELSE
|
||||
IF prevPhW(isVowel) THEN
|
||||
IF nextPhW(isNotVowel) OR nextPhW(V) THEN
|
||||
ChangePhoneme(*)
|
||||
IF nextPhW(isNotVowel) THEN
|
||||
IF nextPhW(isUStop) OR nextPhW(isVStop) THEN
|
||||
ChangePhoneme(*)
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF nextPhW(V) THEN // [V] may be removed by ChangePhoneme(NULL)
|
||||
IF next2PhW(isUStop) OR next2PhW(isVStop) THEN
|
||||
ChangePhoneme(*)
|
||||
ENDIF
|
||||
ELSE
|
||||
IF nextPhW(isVowel) THEN
|
||||
ChangePhoneme(*)
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
|
||||
+2
-2
@@ -151,7 +151,8 @@ endphoneme
|
||||
|
||||
phoneme ts
|
||||
import_phoneme consonants/ts
|
||||
voicingswitch ts
|
||||
voicingswitch s
|
||||
lengthmod 4
|
||||
endphoneme
|
||||
|
||||
phoneme dz
|
||||
@@ -159,4 +160,3 @@ phoneme dz
|
||||
voicingswitch z
|
||||
lengthmod 3
|
||||
endphoneme
|
||||
|
||||
|
||||
+1
-23
@@ -233,30 +233,8 @@ phoneme ts
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme dZ;
|
||||
vcd pal afr sibilant palatal
|
||||
voicingswitch tS;
|
||||
lengthmod 5
|
||||
Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70
|
||||
// use [tS;] and [dZ;] from base phonemes file
|
||||
|
||||
IF PreVoicing THEN
|
||||
FMT(dzh/xdzh)
|
||||
ENDIF
|
||||
|
||||
IF nextPh(isPause2) THEN
|
||||
FMT(dzh/dzh_) addWav(x/dzh_)
|
||||
ENDIF
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme tS;
|
||||
vls pal afr sibilant palatal
|
||||
voicingswitch dZ;
|
||||
lengthmod 2
|
||||
Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
|
||||
|
||||
WAV(ustop/ts_pzd)
|
||||
endphoneme
|
||||
|
||||
phoneme t
|
||||
vls dnt stop
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
|
||||
|
||||
phoneme a
|
||||
vowel starttype #a endtype #a
|
||||
length 200
|
||||
FMT(vowel/a_4)
|
||||
endphoneme
|
||||
|
||||
phoneme e
|
||||
vowel starttype #e endtype #e
|
||||
length 200
|
||||
FMT(vowel/e_mid2)
|
||||
endphoneme
|
||||
|
||||
phoneme E
|
||||
vowel starttype #e endtype #e
|
||||
length 200
|
||||
FMT(vowel/e_mid2)
|
||||
endphoneme
|
||||
|
||||
phoneme i
|
||||
vowel starttype #i endtype #i
|
||||
length 190
|
||||
IfNextVowelAppend(;)
|
||||
FMT(vowel/i)
|
||||
endphoneme
|
||||
|
||||
phoneme o
|
||||
vowel starttype #o endtype #o
|
||||
length 200
|
||||
FMT(vowel/oo)
|
||||
endphoneme
|
||||
|
||||
phoneme O
|
||||
vowel starttype #o endtype #o
|
||||
length 200
|
||||
FMT(vowel/oo)
|
||||
endphoneme
|
||||
|
||||
phoneme u
|
||||
vowel starttype #u endtype #u
|
||||
length 200
|
||||
FMT(vowel/u_bck2)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme i~
|
||||
vowel starttype #i endtype #i
|
||||
length 220
|
||||
FMT(vnasal/i_n2)
|
||||
endphoneme
|
||||
|
||||
phoneme E~
|
||||
vowel starttype #e endtype #e
|
||||
length 220
|
||||
FMT(vnasal/ee_n2)
|
||||
endphoneme
|
||||
|
||||
phoneme O~
|
||||
vowel starttype #o endtype #o
|
||||
length 220
|
||||
FMT(vnasal/oo_n2)
|
||||
endphoneme
|
||||
|
||||
phoneme u~
|
||||
vowel starttype #u endtype #u
|
||||
length 220
|
||||
FMT(vnasal/u_n)
|
||||
endphoneme
|
||||
|
||||
|
||||
+7
-3
@@ -1810,6 +1810,10 @@ include ph_catalan
|
||||
phonemetable an es
|
||||
include ph_aragon
|
||||
|
||||
phonemetable eu base2
|
||||
include ph_basque
|
||||
|
||||
|
||||
phonemetable pt base2
|
||||
include ph_pt_brazil
|
||||
|
||||
@@ -1877,6 +1881,9 @@ include ph_georgian
|
||||
phonemetable fa base
|
||||
include ph_farsi
|
||||
|
||||
phonemetable ar base
|
||||
include ph_arabic
|
||||
|
||||
|
||||
//**************************************************************************************
|
||||
// The following lines are experimental, for future additions.
|
||||
@@ -1889,9 +1896,6 @@ include ph_kinyarwanda
|
||||
//phonemetable mr hi
|
||||
//include ph_marathi
|
||||
|
||||
//phonemetable eu base2
|
||||
//include ph_basque
|
||||
|
||||
//phonemetable mn base
|
||||
//include ph_mongolian
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
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