Browse Source

[1.48.05] continued.

git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@377 d46cf337-b52f-0410-862d-fd96e6ae7743
master
jonsd 11 years ago
parent
commit
09824162de
3 changed files with 526 additions and 0 deletions
  1. 3
    0
      espeak-data/voices/asia/gu
  2. 5
    0
      espeak-data/voices/asia/te
  3. 518
    0
      phsource/ph_arabic

+ 3
- 0
espeak-data/voices/asia/gu View File

name gujarati-test
language gu


+ 5
- 0
espeak-data/voices/asia/te View File

name telugu-test
language te

intonation 2
//consonants 80

+ 518
- 0
phsource/ph_arabic View File

// 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

Loading…
Cancel
Save