mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-07 07:23:52 +00:00
Merge branch 'upstream' into development
Conflicts: dictsource/dict_phonemes phsource/compile_report
This commit is contained in:
+1
-2
@@ -52,10 +52,9 @@ phoneme r- // linking r, used in English between certain vowels and a followin
|
||||
liquid rhotic
|
||||
ipa ɹ
|
||||
|
||||
IF NOT thisPh(isWordEnd) THEN
|
||||
IF NOT thisPh(isWordEnd) AND NOT prevPh(@) AND NOT prevPh(3) THEN
|
||||
ChangePhoneme(r)
|
||||
ENDIF
|
||||
// ChangePhoneme(r) // always use [r], not [r-] ?
|
||||
|
||||
lengthmod 0
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ phoneme a
|
||||
|
||||
ChangeIfDiminished(a#)
|
||||
|
||||
IF nextPh(isNasal) THEN
|
||||
IF nextPh(isNasal) AND NOT KlattSynth THEN
|
||||
FMT(vnasal/ee_n2)
|
||||
ELSEIF nextPh(r) AND thisPh(isStressed) THEN
|
||||
length 190
|
||||
|
||||
+20
-1
@@ -240,6 +240,25 @@ endphoneme
|
||||
// CONSONANTS
|
||||
//===========
|
||||
|
||||
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
|
||||
|
||||
IF nextPh(isPause2) THEN
|
||||
WAV(ustop/t_)
|
||||
ELIF nextPh(r) THEN
|
||||
WAV(ustop/t_)
|
||||
ELIF nextPh(@-) THEN
|
||||
WAV(ustop/t_dnt, 50)
|
||||
ENDIF
|
||||
WAV(ustop/t, 90)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
phoneme ts
|
||||
import_phoneme consonants/ts
|
||||
endphoneme
|
||||
@@ -315,7 +334,7 @@ phoneme j
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme r
|
||||
phoneme r // note, following consonant must be 'ustop/t_' not 'ustop/tr' etc.
|
||||
liquid alv rhotic
|
||||
lengthmod 6
|
||||
|
||||
|
||||
+1
-527
@@ -1,27 +1,4 @@
|
||||
|
||||
//====================================================
|
||||
// Hindi
|
||||
//====================================================
|
||||
|
||||
phoneme : // Lengthen the previous vowel by "length"
|
||||
virtual
|
||||
length 100
|
||||
endphoneme
|
||||
|
||||
phoneme @
|
||||
vowel flag1 starttype #@ endtype #@
|
||||
length 130
|
||||
|
||||
ChangeIfDiminished(@-)
|
||||
IF nextPh(H) OR prevPh(H) THEN
|
||||
FMT(vowel/@_low)
|
||||
ENDIF
|
||||
IF nextPh(j) THEN
|
||||
FMT(vowel/V_3)
|
||||
ENDIF
|
||||
FMT(vowel/@_bck)
|
||||
endphoneme
|
||||
|
||||
// Differences from ph_hindi_base
|
||||
|
||||
phoneme V
|
||||
vowel flag1 starttype #@ endtype #@
|
||||
@@ -71,506 +48,3 @@ phoneme V
|
||||
FMT(vowel/V_3)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme @2
|
||||
vowel flag1 starttype #@ endtype #@
|
||||
length 130
|
||||
FMT(vowel/@_low)
|
||||
endphoneme
|
||||
|
||||
phoneme @3
|
||||
vowel flag1 starttype #@ endtype #@
|
||||
length 130
|
||||
ChangeIfDiminished(@-)
|
||||
FMT(vowel/@_3)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
|
||||
phoneme i:
|
||||
vowel long starttype #i endtype #i
|
||||
length 230
|
||||
IF thisPh(isUnstressed) THEN
|
||||
ChangePhoneme(i)
|
||||
ENDIF
|
||||
IfNextVowelAppend(;)
|
||||
FMT(vowel/i_fnt)
|
||||
endphoneme
|
||||
|
||||
phoneme i // as [i:] but not marked as 'long'
|
||||
vowel starttype #i endtype #i
|
||||
length 230
|
||||
IfNextVowelAppend(;)
|
||||
FMT(vowel/ii_6)
|
||||
endphoneme
|
||||
|
||||
phoneme I
|
||||
vowel starttype #i endtype #i
|
||||
length 100
|
||||
IfNextVowelAppend(;)
|
||||
FMT(vowel/ii_3)
|
||||
endphoneme
|
||||
|
||||
phoneme e:
|
||||
vowel long starttype #e endtype #e
|
||||
length 220
|
||||
FMT(vowel/e_2)
|
||||
endphoneme
|
||||
|
||||
phoneme e
|
||||
vowel starttype #e endtype #e
|
||||
length 140
|
||||
FMT(vowel/e_2)
|
||||
endphoneme
|
||||
|
||||
phoneme E:
|
||||
vowel long starttype #e endtype #e
|
||||
length 220
|
||||
FMT(vdiph/ee-e)
|
||||
endphoneme
|
||||
|
||||
phoneme E
|
||||
vowel starttype #e endtype #e
|
||||
length 140
|
||||
FMT(vowel/e_mid)
|
||||
endphoneme
|
||||
|
||||
phoneme &:
|
||||
vowel long starttype #a endtype #a
|
||||
length 220
|
||||
FMT(vowel/&)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme a:
|
||||
vowel long starttype #a endtype #a
|
||||
length 200
|
||||
IF nextPhW(j) THEN
|
||||
FMT(vowel/a_5)
|
||||
ENDIF
|
||||
FMT(vowel/aa_9)
|
||||
endphoneme
|
||||
|
||||
phoneme a
|
||||
vowel long starttype #a endtype #a
|
||||
length 140
|
||||
FMT(vowel/a#_3)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme o:
|
||||
vowel long starttype #o endtype #o
|
||||
length 227
|
||||
FMT(vowel/o_2)
|
||||
endphoneme
|
||||
|
||||
phoneme o
|
||||
vowel starttype #o endtype #o
|
||||
length 140
|
||||
FMT(vowel/o)
|
||||
endphoneme
|
||||
|
||||
phoneme O:
|
||||
vowel long starttype #o endtype #o
|
||||
length 210
|
||||
FMT(vowel/oo_4)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme O
|
||||
vowel starttype #o endtype #o
|
||||
length 140
|
||||
FMT(vowel/0)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme U
|
||||
vowel starttype #u endtype #u
|
||||
length 140
|
||||
FMT(vowel/uu_bck)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme u:
|
||||
vowel long starttype #u endtype #u
|
||||
length 230
|
||||
FMT(vowel/u_bck)
|
||||
endphoneme
|
||||
|
||||
|
||||
// Nasal vowels
|
||||
//=============
|
||||
|
||||
phoneme i~
|
||||
vowel long starttype #i endtype #i
|
||||
length 220
|
||||
FMT(vnasal/i_n2)
|
||||
endphoneme
|
||||
|
||||
phoneme I~
|
||||
vowel long starttype #i endtype #i
|
||||
length 170
|
||||
FMT(vnasal/ii_n)
|
||||
endphoneme
|
||||
|
||||
phoneme e~
|
||||
vowel long starttype #e endtype #e
|
||||
length 220
|
||||
FMT(vnasal/e_n)
|
||||
endphoneme
|
||||
|
||||
phoneme E~
|
||||
vowel long starttype #e endtype #e
|
||||
length 220
|
||||
FMT(vnasal/ee_n2)
|
||||
endphoneme
|
||||
|
||||
phoneme a~
|
||||
vowel long starttype #a endtype #a
|
||||
length 240
|
||||
FMT(vnasal/a_n)
|
||||
endphoneme
|
||||
|
||||
phoneme V~
|
||||
vowel long starttype #@ endtype #@
|
||||
length 220
|
||||
FMT(vnasal/V_n)
|
||||
endphoneme
|
||||
|
||||
phoneme O~
|
||||
vowel long starttype #o endtype #o
|
||||
length 220
|
||||
FMT(vnasal/oo_n2)
|
||||
endphoneme
|
||||
|
||||
phoneme o~
|
||||
vowel long starttype #o endtype #o
|
||||
length 220
|
||||
FMT(vnasal/o_n)
|
||||
endphoneme
|
||||
|
||||
phoneme U~
|
||||
vowel starttype #u endtype #u
|
||||
length 170
|
||||
FMT(vnasal/u_n)
|
||||
endphoneme
|
||||
|
||||
phoneme u~
|
||||
vowel long starttype #u endtype #u
|
||||
length 220
|
||||
FMT(vnasal/u_n)
|
||||
endphoneme
|
||||
|
||||
|
||||
// Diphthongs
|
||||
//===========
|
||||
|
||||
|
||||
phoneme aI
|
||||
vowel long starttype #@ endtype #i
|
||||
length 240
|
||||
long
|
||||
FMT(vdiph/&i)
|
||||
endphoneme
|
||||
|
||||
phoneme aU
|
||||
vowel long starttype #a endtype #u
|
||||
length 240
|
||||
long
|
||||
FMT(vdiph/aau_3)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
// CONSONANTS
|
||||
//===========
|
||||
|
||||
phoneme v // approximant, not fricative
|
||||
import_phoneme base/v#
|
||||
voicingswitch f
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme H // use for full "h"
|
||||
import_phoneme base/h
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
// bilabial plosives
|
||||
//==================
|
||||
|
||||
phoneme p
|
||||
import_phoneme consonants/p-
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme p#
|
||||
import_phoneme consonants/ph
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme b // this is [b]
|
||||
import_phoneme base/b
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme b#
|
||||
vcd blb stop
|
||||
lengthmod 5
|
||||
voicingswitch p#
|
||||
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
|
||||
FMT(b/xb)
|
||||
ENDIF
|
||||
|
||||
FMT( b/b@2) addWav(ustop/p_asp, 70)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
|
||||
// dental plosives
|
||||
//==================
|
||||
|
||||
phoneme t // dental variant of /t/
|
||||
import_phoneme base/t[
|
||||
voicingswitch d
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme t# // dental variant of /t/
|
||||
vls dnt stop
|
||||
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 nextPh(isPause2) THEN
|
||||
WAV(ustop/t_dnt, 35)
|
||||
ENDIF
|
||||
WAV(ustop/t_dnt, 50)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme d // dental variant of /d/
|
||||
import_phoneme base/d[
|
||||
voicingswitch t
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme d#
|
||||
vcd dnt stop
|
||||
lengthmod 5
|
||||
voicingswitch t#
|
||||
Vowelin f1=0 f2=1500 -300 300 f3=-100 80
|
||||
Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
|
||||
|
||||
IF PreVoicing THEN
|
||||
FMT(d/xd)
|
||||
ENDIF
|
||||
|
||||
FMT(d/xd3) addWav(ustop/t_dnt, 40)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
|
||||
// retroflex plosives
|
||||
//===================
|
||||
|
||||
phoneme t.
|
||||
vls rfx stop
|
||||
lengthmod 2
|
||||
ipa ʈ
|
||||
voicingswitch d.
|
||||
Vowelin f1=0 f2=1800 -300 300 f3=-400 80
|
||||
Vowelout f1=0 f2=1800 -300 250 f3=-400 80 rms=20 colr=2
|
||||
WAV(ustop/t_short)
|
||||
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.
|
||||
vcd rfx stop
|
||||
lengthmod 5
|
||||
voicingswitch t.
|
||||
ipa ɖ
|
||||
Vowelin f1=1 f2=1800 -300 300 f3=-400 80
|
||||
Vowelout f1=1 f2=1800 -300 300 f3=-400 80 colr=2
|
||||
|
||||
IF PreVoicing THEN
|
||||
FMT(d/xdr)
|
||||
ENDIF
|
||||
|
||||
IF nextPh(isPause2) THEN
|
||||
FMT(d/d_) addWav(x/d_)
|
||||
ENDIF
|
||||
|
||||
FMT(d/dr) addWav(x/d)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme d.#
|
||||
vcd rfx stop
|
||||
lengthmod 5
|
||||
ipa ɖU+02B0
|
||||
voicingswitch t.#
|
||||
Vowelin f1=1 f2=1800 -300 300 f3=-400 80
|
||||
Vowelout f1=1 f2=1800 -300 300 f3=-400 80 colr=2
|
||||
|
||||
IF PreVoicing THEN
|
||||
FMT(d/xdr)
|
||||
ENDIF
|
||||
|
||||
FMT(d/dr) addWav(ustop/t)
|
||||
// FMT(d/dr) addWav(ustop/th_rfx)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
|
||||
// palatal plosives
|
||||
//=================
|
||||
|
||||
// also try [tS] and [dZ]
|
||||
|
||||
phoneme c
|
||||
vls pla afr sibilant
|
||||
voicingswitch dZ
|
||||
lengthmod 2
|
||||
Vowelin f1=0 f2=2300 200 400 f3=-100 80
|
||||
|
||||
IF nextPh(isPause2) THEN
|
||||
WAV(ustop/tsh_)
|
||||
ENDIF
|
||||
WAV(ustop/tsh_unasp)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
phoneme c#
|
||||
CALL base/tS;
|
||||
ipa cU+02B0
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme J
|
||||
import_phoneme base/J
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme J#
|
||||
vcd pal afr sibilant
|
||||
lengthmod 5
|
||||
voicingswitch c#
|
||||
Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
|
||||
Vowelout f1=0 f2=2700 400 600 f3=300 80 colr=1
|
||||
|
||||
IF PreVoicing THEN
|
||||
FMT(dzh/xdz_pzd)
|
||||
ENDIF
|
||||
|
||||
FMT(dzh/xdz_pzd) addWav(ustop/ts_pzd)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// velar plosives
|
||||
//==================
|
||||
|
||||
|
||||
phoneme k
|
||||
import_phoneme consonants/k-
|
||||
voicingswitch g
|
||||
endphoneme
|
||||
|
||||
phoneme k#
|
||||
import_phoneme consonants/k#
|
||||
voicingswitch g#
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme g
|
||||
import_phoneme base/g
|
||||
voicingswitch k
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme g#
|
||||
vcd dnt stop
|
||||
lengthmod 5
|
||||
voicingswitch k#
|
||||
Vowelin f1=1 f2=2300 200 300 f3=-150 80 rms=20
|
||||
Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20
|
||||
|
||||
IF PreVoicing THEN
|
||||
FMT(g2/xg)
|
||||
ENDIF
|
||||
|
||||
IF nextPh(isPause2) THEN
|
||||
FMT(g2/xg) addWav(ustop/k_asp, 35)
|
||||
ENDIF
|
||||
FMT(g2/xg) addWav(ustop/k_asp, 50)
|
||||
endphoneme
|
||||
|
||||
//================
|
||||
|
||||
phoneme #X2 // click, use for indicating combining long vowels
|
||||
vls alv frc sibilant
|
||||
lengthmod 3
|
||||
WAV(ustop/percus02, 60)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme r
|
||||
liquid rhotic
|
||||
lengthmod 3
|
||||
|
||||
IF thisPh(isWordEnd) THEN
|
||||
CALL base/r/
|
||||
ELSE
|
||||
IF prevPhW(isVowel) THEN
|
||||
IF nextPhW(isNotVowel) THEN
|
||||
IF nextPhW(v) THEN
|
||||
ChangePhoneme(**) // test for lang=ta
|
||||
ENDIF
|
||||
|
||||
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
|
||||
|
||||
CALL base/r
|
||||
ENDIF
|
||||
ipa ɾ
|
||||
endphoneme
|
||||
|
||||
|
||||
Executable
+572
@@ -0,0 +1,572 @@
|
||||
|
||||
//====================================================
|
||||
// Base for Hindi and other Indian languages
|
||||
//====================================================
|
||||
|
||||
phoneme : // Lengthen the previous vowel by "length"
|
||||
virtual
|
||||
length 100
|
||||
endphoneme
|
||||
|
||||
phoneme @
|
||||
vowel flag1 starttype #@ endtype #@
|
||||
length 130
|
||||
|
||||
ChangeIfDiminished(@-)
|
||||
IF nextPh(H) OR prevPh(H) THEN
|
||||
FMT(vowel/@_low)
|
||||
ENDIF
|
||||
IF nextPh(j) THEN
|
||||
FMT(vowel/V_3)
|
||||
ENDIF
|
||||
FMT(vowel/@_bck)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme V
|
||||
vowel flag1 starttype #@ endtype #@
|
||||
length 140
|
||||
|
||||
IF thisPh(isWordStart) THEN
|
||||
FMT(vowel/V_3)
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
IF thisPh(isNotStressed) THEN
|
||||
length 130
|
||||
|
||||
IF thisPh(isWordEnd) AND NOT thisPh(isFirstVowel) THEN
|
||||
ChangePhoneme(NULL)
|
||||
ENDIF
|
||||
|
||||
IF prevPh(H) THEN
|
||||
ChangePhoneme(@)
|
||||
ENDIF
|
||||
|
||||
IF prev2PhW(isVowel) AND NOT nextVowel(isFlag1) THEN
|
||||
IF thisPh(isFinalVowel) AND nextPhW(isNotVowel) THEN
|
||||
// don't delete schwa before a word-final consonant
|
||||
ELSE
|
||||
ChangePhoneme(NULL)
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF prevPh(isPalatal) AND NOT nextPh(H) THEN
|
||||
ChangePhoneme(@3)
|
||||
ELSEIF prevPh(r) THEN
|
||||
ChangePhoneme(@2)
|
||||
ELSE
|
||||
ChangePhoneme(@)
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF nextPh(H) OR prevPh(H) THEN
|
||||
FMT(vowel/@_low)
|
||||
ENDIF
|
||||
|
||||
IF prevPh(w) THEN
|
||||
FMT(vowel/V_4)
|
||||
ENDIF
|
||||
|
||||
FMT(vowel/V_3)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme @2
|
||||
vowel flag1 starttype #@ endtype #@
|
||||
length 130
|
||||
FMT(vowel/@_low)
|
||||
endphoneme
|
||||
|
||||
phoneme @3
|
||||
vowel flag1 starttype #@ endtype #@
|
||||
length 130
|
||||
ChangeIfDiminished(@-)
|
||||
FMT(vowel/@_3)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
|
||||
phoneme i:
|
||||
vowel long starttype #i endtype #i
|
||||
length 230
|
||||
IF thisPh(isUnstressed) THEN
|
||||
ChangePhoneme(i)
|
||||
ENDIF
|
||||
IfNextVowelAppend(;)
|
||||
FMT(vowel/i_fnt)
|
||||
endphoneme
|
||||
|
||||
phoneme i // as [i:] but not marked as 'long'
|
||||
vowel starttype #i endtype #i
|
||||
length 230
|
||||
IfNextVowelAppend(;)
|
||||
FMT(vowel/ii_6)
|
||||
endphoneme
|
||||
|
||||
phoneme I
|
||||
vowel starttype #i endtype #i
|
||||
length 100
|
||||
IfNextVowelAppend(;)
|
||||
FMT(vowel/ii_3)
|
||||
endphoneme
|
||||
|
||||
phoneme e:
|
||||
vowel long starttype #e endtype #e
|
||||
length 220
|
||||
FMT(vowel/e_2)
|
||||
endphoneme
|
||||
|
||||
phoneme e
|
||||
vowel starttype #e endtype #e
|
||||
length 140
|
||||
FMT(vowel/e_2)
|
||||
endphoneme
|
||||
|
||||
phoneme E:
|
||||
vowel long starttype #e endtype #e
|
||||
length 220
|
||||
FMT(vdiph/ee-e)
|
||||
endphoneme
|
||||
|
||||
phoneme E
|
||||
vowel starttype #e endtype #e
|
||||
length 140
|
||||
FMT(vowel/e_mid)
|
||||
endphoneme
|
||||
|
||||
phoneme &:
|
||||
vowel long starttype #a endtype #a
|
||||
length 220
|
||||
FMT(vowel/&)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme a:
|
||||
vowel long starttype #a endtype #a
|
||||
length 200
|
||||
IF nextPhW(j) THEN
|
||||
FMT(vowel/a_5)
|
||||
ENDIF
|
||||
FMT(vowel/aa_9)
|
||||
endphoneme
|
||||
|
||||
phoneme a
|
||||
vowel long starttype #a endtype #a
|
||||
length 140
|
||||
FMT(vowel/a#_3)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme o:
|
||||
vowel long starttype #o endtype #o
|
||||
length 227
|
||||
FMT(vowel/o_2)
|
||||
endphoneme
|
||||
|
||||
phoneme o
|
||||
vowel starttype #o endtype #o
|
||||
length 140
|
||||
FMT(vowel/o)
|
||||
endphoneme
|
||||
|
||||
phoneme O:
|
||||
vowel long starttype #o endtype #o
|
||||
length 210
|
||||
FMT(vowel/oo_4)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme O
|
||||
vowel starttype #o endtype #o
|
||||
length 140
|
||||
FMT(vowel/0)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme U
|
||||
vowel starttype #u endtype #u
|
||||
length 140
|
||||
FMT(vowel/uu_bck)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme u:
|
||||
vowel long starttype #u endtype #u
|
||||
length 230
|
||||
FMT(vowel/u_bck)
|
||||
endphoneme
|
||||
|
||||
|
||||
// Nasal vowels
|
||||
//=============
|
||||
|
||||
phoneme i~
|
||||
vowel long starttype #i endtype #i
|
||||
length 220
|
||||
FMT(vnasal/i_n2)
|
||||
endphoneme
|
||||
|
||||
phoneme I~
|
||||
vowel long starttype #i endtype #i
|
||||
length 170
|
||||
FMT(vnasal/ii_n)
|
||||
endphoneme
|
||||
|
||||
phoneme e~
|
||||
vowel long starttype #e endtype #e
|
||||
length 220
|
||||
FMT(vnasal/e_n)
|
||||
endphoneme
|
||||
|
||||
phoneme E~
|
||||
vowel long starttype #e endtype #e
|
||||
length 220
|
||||
FMT(vnasal/ee_n2)
|
||||
endphoneme
|
||||
|
||||
phoneme a~
|
||||
vowel long starttype #a endtype #a
|
||||
length 240
|
||||
FMT(vnasal/a_n)
|
||||
endphoneme
|
||||
|
||||
phoneme V~
|
||||
vowel long starttype #@ endtype #@
|
||||
length 220
|
||||
FMT(vnasal/V_n)
|
||||
endphoneme
|
||||
|
||||
phoneme O~
|
||||
vowel long starttype #o endtype #o
|
||||
length 220
|
||||
FMT(vnasal/oo_n2)
|
||||
endphoneme
|
||||
|
||||
phoneme o~
|
||||
vowel long starttype #o endtype #o
|
||||
length 220
|
||||
FMT(vnasal/o_n)
|
||||
endphoneme
|
||||
|
||||
phoneme U~
|
||||
vowel starttype #u endtype #u
|
||||
length 170
|
||||
FMT(vnasal/u_n)
|
||||
endphoneme
|
||||
|
||||
phoneme u~
|
||||
vowel long starttype #u endtype #u
|
||||
length 220
|
||||
FMT(vnasal/u_n)
|
||||
endphoneme
|
||||
|
||||
|
||||
// Diphthongs
|
||||
//===========
|
||||
|
||||
|
||||
phoneme aI
|
||||
vowel long starttype #@ endtype #i
|
||||
length 240
|
||||
long
|
||||
FMT(vdiph/&i)
|
||||
endphoneme
|
||||
|
||||
phoneme aU
|
||||
vowel long starttype #a endtype #u
|
||||
length 240
|
||||
long
|
||||
FMT(vdiph/aau_3)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
// CONSONANTS
|
||||
//===========
|
||||
|
||||
phoneme v // approximant, not fricative
|
||||
import_phoneme base/v#
|
||||
voicingswitch f
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme H // use for full "h"
|
||||
import_phoneme base/h
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
// bilabial plosives
|
||||
//==================
|
||||
|
||||
phoneme p
|
||||
import_phoneme consonants/p-
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme p#
|
||||
import_phoneme consonants/ph
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme b // this is [b]
|
||||
import_phoneme base/b
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme b#
|
||||
vcd blb stop
|
||||
lengthmod 5
|
||||
voicingswitch p#
|
||||
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
|
||||
FMT(b/xb)
|
||||
ENDIF
|
||||
|
||||
FMT( b/b@2) addWav(ustop/p_asp, 70)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
|
||||
// dental plosives
|
||||
//==================
|
||||
|
||||
phoneme t // dental variant of /t/
|
||||
import_phoneme base/t[
|
||||
voicingswitch d
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme t# // dental variant of /t/
|
||||
vls dnt stop
|
||||
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 nextPh(isPause2) THEN
|
||||
WAV(ustop/t_dnt, 35)
|
||||
ENDIF
|
||||
WAV(ustop/t_dnt, 50)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme d // dental variant of /d/
|
||||
import_phoneme base/d[
|
||||
voicingswitch t
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme d#
|
||||
vcd dnt stop
|
||||
lengthmod 5
|
||||
voicingswitch t#
|
||||
Vowelin f1=0 f2=1500 -300 300 f3=-100 80
|
||||
Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
|
||||
|
||||
IF PreVoicing THEN
|
||||
FMT(d/xd)
|
||||
ENDIF
|
||||
|
||||
FMT(d/xd3) addWav(ustop/t_dnt, 40)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
|
||||
// retroflex plosives
|
||||
//===================
|
||||
|
||||
phoneme t.
|
||||
vls rfx stop
|
||||
lengthmod 2
|
||||
ipa ʈ
|
||||
voicingswitch d.
|
||||
Vowelin f1=0 f2=1800 -300 300 f3=-400 80
|
||||
Vowelout f1=0 f2=1800 -300 250 f3=-400 80 rms=20 colr=2
|
||||
WAV(ustop/t_short)
|
||||
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.
|
||||
vcd rfx stop
|
||||
lengthmod 5
|
||||
voicingswitch t.
|
||||
ipa ɖ
|
||||
Vowelin f1=1 f2=1800 -300 300 f3=-400 80
|
||||
Vowelout f1=1 f2=1800 -300 300 f3=-400 80 colr=2
|
||||
|
||||
IF PreVoicing THEN
|
||||
FMT(d/xdr)
|
||||
ENDIF
|
||||
|
||||
IF nextPh(isPause2) THEN
|
||||
FMT(d/d_) addWav(x/d_)
|
||||
ENDIF
|
||||
|
||||
FMT(d/dr) addWav(x/d)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme d.#
|
||||
vcd rfx stop
|
||||
lengthmod 5
|
||||
ipa ɖU+02B0
|
||||
voicingswitch t.#
|
||||
Vowelin f1=1 f2=1800 -300 300 f3=-400 80
|
||||
Vowelout f1=1 f2=1800 -300 300 f3=-400 80 colr=2
|
||||
|
||||
IF PreVoicing THEN
|
||||
FMT(d/xdr)
|
||||
ENDIF
|
||||
|
||||
FMT(d/dr) addWav(ustop/t)
|
||||
// FMT(d/dr) addWav(ustop/th_rfx)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
|
||||
// palatal plosives
|
||||
//=================
|
||||
|
||||
// also try [tS] and [dZ]
|
||||
|
||||
phoneme c
|
||||
vls pla afr sibilant
|
||||
voicingswitch dZ
|
||||
lengthmod 2
|
||||
Vowelin f1=0 f2=2300 200 400 f3=-100 80
|
||||
|
||||
IF nextPh(isPause2) THEN
|
||||
WAV(ustop/tsh_)
|
||||
ENDIF
|
||||
WAV(ustop/tsh_unasp)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
phoneme c#
|
||||
CALL base/tS;
|
||||
ipa cU+02B0
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme J
|
||||
import_phoneme base/J
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme J#
|
||||
vcd pal afr sibilant
|
||||
lengthmod 5
|
||||
voicingswitch c#
|
||||
Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
|
||||
Vowelout f1=0 f2=2700 400 600 f3=300 80 colr=1
|
||||
|
||||
IF PreVoicing THEN
|
||||
FMT(dzh/xdz_pzd)
|
||||
ENDIF
|
||||
|
||||
FMT(dzh/xdz_pzd) addWav(ustop/ts_pzd)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// velar plosives
|
||||
//==================
|
||||
|
||||
|
||||
phoneme k
|
||||
import_phoneme consonants/k-
|
||||
voicingswitch g
|
||||
endphoneme
|
||||
|
||||
phoneme k#
|
||||
import_phoneme consonants/k#
|
||||
voicingswitch g#
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme g
|
||||
import_phoneme base/g
|
||||
voicingswitch k
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme g#
|
||||
vcd dnt stop
|
||||
lengthmod 5
|
||||
voicingswitch k#
|
||||
Vowelin f1=1 f2=2300 200 300 f3=-150 80 rms=20
|
||||
Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20
|
||||
|
||||
IF PreVoicing THEN
|
||||
FMT(g2/xg)
|
||||
ENDIF
|
||||
|
||||
IF nextPh(isPause2) THEN
|
||||
FMT(g2/xg) addWav(ustop/k_asp, 35)
|
||||
ENDIF
|
||||
FMT(g2/xg) addWav(ustop/k_asp, 50)
|
||||
endphoneme
|
||||
|
||||
//================
|
||||
|
||||
phoneme #X2 // click, use for indicating combining long vowels
|
||||
vls alv frc sibilant
|
||||
lengthmod 3
|
||||
WAV(ustop/percus02, 60)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme r
|
||||
liquid rhotic
|
||||
lengthmod 3
|
||||
|
||||
IF thisPh(isWordEnd) THEN
|
||||
CALL base/r/
|
||||
ELSE
|
||||
IF prevPhW(isVowel) THEN
|
||||
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
|
||||
|
||||
CALL base/r
|
||||
ENDIF
|
||||
ipa ɾ
|
||||
endphoneme
|
||||
|
||||
|
||||
Executable
+6
@@ -0,0 +1,6 @@
|
||||
|
||||
//====================================================
|
||||
// Marathi, based on ph_hindi
|
||||
//====================================================
|
||||
|
||||
|
||||
@@ -159,3 +159,36 @@ endphoneme
|
||||
|
||||
|
||||
|
||||
phoneme k
|
||||
vls vel stop
|
||||
lengthmod 2
|
||||
voicingswitch g
|
||||
Vowelin f1=0 f2=2300 200 400 f3=-100 80
|
||||
Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20
|
||||
|
||||
IF nextPh(isPause2) THEN
|
||||
WAV(ustop/k_)
|
||||
ELIF nextPh(#i) OR nextPh(;) THEN
|
||||
WAV(ustop/ki_unasp2, 50)
|
||||
// ELIF nextPh(isRhotic) THEN
|
||||
// WAV(ustop/kr)
|
||||
// ELIF nextPh(l) THEN
|
||||
// WAV(ustop/kl)
|
||||
ENDIF
|
||||
WAV(ustop/k_unasp2, 50)
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme t
|
||||
vls dnt stop
|
||||
lengthmod 2
|
||||
voicingswitch d
|
||||
Vowelin f1=0 f2=1600 -300 300 f3=-100 80
|
||||
Vowelout f1=0 f2=1600 -300 250 f3=-100 80 rms=20
|
||||
IF nextPh(isPause2) THEN
|
||||
WAV(ustop/t_unasp3, 30)
|
||||
ENDIF
|
||||
WAV(ustop/t_unasp3, 60)
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
+20
-17
@@ -1738,30 +1738,39 @@ phonemetable nl base
|
||||
include ph_dutch
|
||||
|
||||
|
||||
phonemetable hi base
|
||||
phonemetable hi_base base
|
||||
include ph_hindi_base
|
||||
|
||||
phonemetable hi hi_base
|
||||
include ph_hindi
|
||||
|
||||
phonemetable bn hi
|
||||
phonemetable bn hi_base
|
||||
include ph_bengali
|
||||
|
||||
phonemetable ne hi
|
||||
phonemetable ne hi_base
|
||||
include ph_nepali
|
||||
|
||||
phonemetable ur hi
|
||||
phonemetable ur hi_base
|
||||
include ph_urdu
|
||||
|
||||
phonemetable pa hi
|
||||
phonemetable pa hi_base
|
||||
include ph_punjabi
|
||||
|
||||
phonemetable ta hi
|
||||
phonemetable ta hi_base
|
||||
include ph_tamil
|
||||
|
||||
phonemetable kn hi
|
||||
phonemetable kn hi_base
|
||||
include ph_kannada
|
||||
|
||||
phonemetable ml hi
|
||||
phonemetable ml hi_base
|
||||
include ph_malayalam
|
||||
|
||||
phonemetable gu hi_base
|
||||
include ph_gujarati
|
||||
|
||||
phonemetable mr hi_base
|
||||
include ph_marathi
|
||||
|
||||
|
||||
|
||||
phonemetable hu base
|
||||
@@ -1899,9 +1908,6 @@ include ph_arabic
|
||||
phonemetable rw base2
|
||||
include ph_kinyarwanda
|
||||
|
||||
//phonemetable mr hi
|
||||
//include ph_marathi
|
||||
|
||||
//phonemetable mn base
|
||||
//include ph_mongolian
|
||||
|
||||
@@ -1932,18 +1938,15 @@ include ph_amhari
|
||||
phonemetable wo base
|
||||
include ph_wolof
|
||||
|
||||
phonemetable dv hi
|
||||
phonemetable dv hi_base
|
||||
include ph_divehi
|
||||
|
||||
phonemetable te hi
|
||||
phonemetable te hi_base
|
||||
include ph_telugu
|
||||
|
||||
phonemetable si hi
|
||||
phonemetable si hi_base
|
||||
include ph_sinhala
|
||||
|
||||
phonemetable gu hi
|
||||
include ph_gujarati
|
||||
|
||||
phonemetable as bn
|
||||
include ph_assamese
|
||||
|
||||
|
||||
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user