mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
Fix: Flush stderr() after espeak_CompileDictionary(). Fix: parallel formant parameters for Klatt synthesizer. Changes for Malayalam numbers. Language changes: en-us, nl, pt, sl, ta, ur. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@359 d46cf337-b52f-0410-862d-fd96e6ae7743
280 lines
4.3 KiB
Plaintext
280 lines
4.3 KiB
Plaintext
|
|
// Phonemes for Malayalam
|
|
// This inherits from ph_hindi
|
|
|
|
|
|
phoneme @
|
|
vowel starttype #@ endtype #@
|
|
length 130
|
|
FMT(vowel/@_low)
|
|
endphoneme
|
|
|
|
|
|
phoneme y // epenthetic vowel
|
|
vowel starttype #@ endtype #@
|
|
unstressed
|
|
ipa ɨ
|
|
length 80
|
|
FMT(vowel/u#_4, 120)
|
|
endphoneme
|
|
|
|
|
|
phoneme a
|
|
vowel starttype #a endtype #a
|
|
ipa ɐ
|
|
length 130
|
|
|
|
IF thisPh(isStressed) OR thisPh(isFirstVowel) OR thisPh(isWordEnd) THEN
|
|
FMT(vowel/a#_4)
|
|
ELSE
|
|
ChangeIfUnstressed(@)
|
|
|
|
IF nextPh(m) AND nextPh(isWordEnd) THEN
|
|
ChangePhoneme(@)
|
|
ENDIF
|
|
|
|
FMT(vowel/a#_3)
|
|
ENDIF
|
|
endphoneme
|
|
|
|
|
|
phoneme a# // don't reduce to [@]
|
|
vowel starttype #a endtype #a
|
|
ChangePhoneme(a)
|
|
endphoneme
|
|
|
|
|
|
phoneme a:
|
|
vowel long starttype #a endtype #a
|
|
length 300
|
|
FMT(vowel/a_5)
|
|
endphoneme
|
|
|
|
|
|
phoneme e
|
|
vowel starttype #e endtype #e
|
|
length 130
|
|
FMT(vowel/e)
|
|
endphoneme
|
|
|
|
|
|
phoneme e:
|
|
vowel long starttype #e endtype #e
|
|
length 270
|
|
FMT(vowel/e)
|
|
endphoneme
|
|
|
|
|
|
phoneme i
|
|
vowel starttype #i endtype #i
|
|
length 130
|
|
FMT(vowel/i_6)
|
|
endphoneme
|
|
|
|
phoneme I
|
|
vowel starttype #i endtype #i
|
|
length 130
|
|
FMT(vowel/ii)
|
|
endphoneme
|
|
|
|
|
|
phoneme i:
|
|
vowel long starttype #i endtype #i
|
|
length 270
|
|
FMT(vowel/i)
|
|
endphoneme
|
|
|
|
|
|
|
|
phoneme o
|
|
vowel starttype #o endtype #o
|
|
length 130
|
|
FMT(vowel/o)
|
|
endphoneme
|
|
|
|
|
|
phoneme o:
|
|
vowel long starttype #o endtype #o
|
|
length 300
|
|
FMT(vowel/o)
|
|
endphoneme
|
|
|
|
|
|
phoneme u
|
|
vowel starttype #u endtype #u
|
|
length 110
|
|
FMT(vowel/u)
|
|
endphoneme
|
|
|
|
phoneme u:
|
|
vowel long starttype #u endtype #u
|
|
length 280
|
|
FMT(vowel/u)
|
|
endphoneme
|
|
|
|
|
|
phoneme aI
|
|
vowel long starttype #a endtype #i
|
|
length 280
|
|
FMT(vdiph/ai)
|
|
endphoneme
|
|
|
|
phoneme aU
|
|
vowel long starttype #a endtype #u
|
|
length 270
|
|
FMT(vdiph/aau_3)
|
|
endphoneme
|
|
|
|
|
|
// ?? This is standard [v]. Should be it [v] without the fricative noise?
|
|
phoneme v
|
|
import_phoneme base/v
|
|
endphoneme
|
|
|
|
phoneme r
|
|
import_phoneme base/**
|
|
endphoneme
|
|
|
|
phoneme R
|
|
import_phoneme base/R2
|
|
endphoneme
|
|
|
|
phoneme d2 // 'rr' sounds like English 'd'
|
|
import_phoneme base/d
|
|
endphoneme
|
|
|
|
|
|
// Aspirated voice stops, sound like aspirated unvoiced stops ?
|
|
|
|
phoneme b#
|
|
vls blb stop prevoice
|
|
lengthmod 2
|
|
voicingswitch b
|
|
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80
|
|
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30
|
|
|
|
IF PreVoicing THEN
|
|
IF prevPhW(isVowel) THEN
|
|
FMT(b/xb)
|
|
ELSE
|
|
FMT(voc/murmur1)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF nextPh(isPause2) THEN
|
|
WAV(ustop/p_)
|
|
ENDIF
|
|
IF nextPh(l) THEN
|
|
WAV(ustop/pl)
|
|
ENDIF
|
|
WAV(ustop/p_asp)
|
|
endphoneme
|
|
|
|
|
|
phoneme d#
|
|
vls dnt stop prevoice
|
|
lengthmod 2
|
|
voicingswitch d
|
|
Vowelin f1=0 f2=1500 -300 300 f3=-100 80 amp=16
|
|
Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
|
|
|
|
IF PreVoicing THEN
|
|
IF prevPhW(isVowel) THEN
|
|
FMT(d/xd)
|
|
ELSE
|
|
FMT(voc/murmur1)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF nextPh(isPause2) THEN
|
|
WAV(ustop/t_dnt, 35)
|
|
ENDIF
|
|
WAV(ustop/t_dnt, 50)
|
|
endphoneme
|
|
|
|
|
|
phoneme t.#
|
|
vls rfx stop
|
|
lengthmod 2
|
|
ipa ʈU+02B0
|
|
voicingswitch d.#
|
|
Vowelin f1=0 f2=1800 -300 300 f3=-200 80
|
|
Vowelout f1=0 f2=1800 -300 250 f3=-400 80 rms=20 colr=2
|
|
|
|
IF nextPhW(t.#) THEN
|
|
ChangePhoneme(t.)
|
|
ENDIF
|
|
WAV(ustop/th_rfx2, 80)
|
|
endphoneme
|
|
|
|
|
|
phoneme d.#
|
|
vls rfx stop prevoice
|
|
lengthmod 2
|
|
ipa ʈU+02B0
|
|
Vowelin f1=0 f2=1800 -300 300 f3=-200 80
|
|
Vowelout f1=0 f2=1800 -300 250 f3=-400 80 rms=20 colr=2
|
|
|
|
IF PreVoicing THEN
|
|
IF prevPhW(isVowel) THEN
|
|
FMT(d/xdr)
|
|
ELSE
|
|
FMT(voc/murmur1)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
voicingswitch d.#
|
|
WAV(ustop/th_rfx2, 80)
|
|
endphoneme
|
|
|
|
|
|
phoneme J#
|
|
vls pal afr sibilant palatal prevoice
|
|
voicingswitch c#
|
|
lengthmod 2
|
|
Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
|
|
|
|
IF PreVoicing THEN
|
|
IF prevPhW(isVowel) THEN
|
|
FMT(dzh/xdz_pzd)
|
|
ELSE
|
|
FMT(voc/murmur1)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF nextPh(isPause2) THEN
|
|
WAV(ustop/ts_pzd)
|
|
ENDIF
|
|
WAV(ustop/ts_pzd)
|
|
endphoneme
|
|
|
|
|
|
phoneme g#
|
|
vls vel stop prevoice
|
|
lengthmod 2
|
|
Vowelin f1=1 f2=1400 -100 100 f3=-150 80
|
|
Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20
|
|
|
|
IF PreVoicing THEN
|
|
IF prevPhW(isVowel) THEN
|
|
FMT(g/xg)
|
|
ELSE
|
|
FMT(voc/murmur1)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
IF nextPh(isPause2) THEN
|
|
WAV(ustop/k_asp, 40)
|
|
ENDIF
|
|
IF nextPhW(#e) OR nextPhW(#i) THEN
|
|
WAV(ustop/k_asp_e, 40)
|
|
ELIF nextPhW(#o) OR nextPhW(#u) THEN
|
|
WAV(ustop/k_asp_a, 25)
|
|
ELSE
|
|
WAV(ustop/k_asp_a, 30)
|
|
ENDIF
|
|
endphoneme
|
|
|
|
|