Browse Source

Cherokee language improvements.

master
Michael Conrad 5 years ago
parent
commit
8faac4ed75

+ 128
- 128
dictsource/chr_rules View File

@@ -42,109 +42,109 @@
//CED pg ix
.group a
//long
a A::
L02) a A~:
a 0:
L02) a 0~:
//final word vowels are short, nasal, and have a highfall tone
a (_ A~43
L02) a (_ A~43
axb (_ A~1
axc (_ A~2
axd (_ A~3
axf (_ A~4
a (_ 0~43
L02) a (_ 0~43
axb (_ 0~1
axc (_ 0~2
axd (_ 0~3
axf (_ 0~4
a (L03_ A~43
a (L03L03_ A~43
a (L03L03L03_ A~43
a (L03_ 0~43
a (L03L03_ 0~43
a (L03L03L03_ 0~43
a (L03L01 A:
a (L03L03L01 A:
a (L03L03L03L01 A:
a (L03L01 0
a (L03L03L01 0
a (L03L03L03L01 0
L02) a (L03L01 A~
L02) a (L03L03L01 A~
L02) a (L03L03L03L01 A~
L02) a (L03L01 0~
L02) a (L03L03L01 0~
L02) a (L03L03L03L01 0~
//short followed by s has an h sound added, see CED pg x, footnote.
as (L01 A:hs
as (L03L01 A:hs
as (L03L03L01 A:hs
as (L03L03L03L01 A:hs
as (L01 0h`s
as (L03L01 0h`s
as (L03L03L01 0h`s
as (L03L03L03L01 0h`s
L02) as (L01 A~hs
L02) as (L03L01 A~hs
L02) as (L03L03L01 A~hs
L02) as (L03L03L03L01 A~hs
L02) as (L01 0~h`s
L02) as (L03L01 0~h`s
L02) as (L03L03L01 0~h`s
L02) as (L03L03L03L01 0~h`s
.group e
e E:
L02) e E~:
e e:
L02) e e~:
e (L03_ E43
e (L03L03_ E43
e (L03L03L03_ E43
e (L03L03L03L03_ E43
e (L03_ e43
e (L03L03_ e43
e (L03L03L03_ e43
e (L03L03L03L03_ e43

//final word vowels are short, nasal, and have a highfall tone
e (_ E~43
L02) e (_ E~43
exb (_ E~1
exc (_ E~2
exd (_ E~3
exf (_ E~4
e (L03L01 E
e (L03L03L01 E
e (L03L03L03L01 E
e (_ e~43
L02) e (_ e~43
exb (_ e~1
exc (_ e~2
exd (_ e~3
exf (_ e~4
e (L03L01 e
e (L03L03L01 e
e (L03L03L03L01 e

L02) e (L03L01 E~
L02) e (L03L03L01 E~
L02) e (L03L03L03L01 E~
es (L01 Ehs
es (L03L01 Ehs
es (L03L03L01 Ehs
es (L03L03L03L01 Ehs
L02) es (L01 E~hs
L02) es (L03L01 E~hs
L02) es (L03L03L01 E~hs
L02) es (L03L03L03L01 E~hs
L02) e (L03L01 e~
L02) e (L03L03L01 e~
L02) e (L03L03L03L01 e~
es (L01 eh`s
es (L03L01 eh`s
es (L03L03L01 eh`s
es (L03L03L03L01 eh`s
L02) es (L01 e~h`s
L02) es (L03L01 e~h`s
L02) es (L03L03L01 e~h`s
L02) es (L03L03L03L01 e~h`s

.group i
i I:
L02) i I~:
i i:
L02) i i~:
//final word vowels are short, nasal, and have a highfall tone
i (_ I~43
L02) i (_ I~43
ixb (_ I~1
ixc (_ I~2
ixd (_ I~3
ixf (_ I~4
i (_ i~43
L02) i (_ i~43
ixb (_ i~1
ixc (_ i~2
ixd (_ i~3
ixf (_ i~4
i (L03_ I43
i (L03L03_ I43
i (L03L03L03_ I43
i (L03_ i43
i (L03L03_ i43
i (L03L03L03_ i43
i (L03L01 I
i (L03L03L01 I
i (L03L03L03L01 I
i (L03L01 i
i (L03L03L01 i
i (L03L03L03L01 i
L02) i (L03L01 I~
L02) i (L03L03L01 I~
L02) i (L03L03L03L01 I~
L02) i (L03L01 i~
L02) i (L03L03L01 i~
L02) i (L03L03L03L01 i~
is (L01 Ihs
is (L03L01 Ihs
is (L03L03L01 Ihs
is (L03L03L03L01 Ihs
is (L01 ih`s
is (L03L01 ih`s
is (L03L03L01 ih`s
is (L03L03L03L01 ih`s
L02) is (L01 I~hs
L02) is (L03L01 I~hs
L02) is (L03L03L01 I~hs
L02) is (L03L03L03L01 I~hs
L02) is (L01 i~h`s
L02) is (L03L01 i~h`s
L02) is (L03L03L01 i~h`s
L02) is (L03L03L03L01 i~h`s
.group o
o o:
@@ -171,13 +171,13 @@
L02) o (L03L03L01 o~
L02) o (L03L03L03L01 o~
os (L01 ohs
os (L03L01 ohs
os (L03L03L01 ohs
os (L01 oh`s
os (L03L01 oh`s
os (L03L03L01 oh`s
L02) os (L01 o~hs
L02) os (L03L01 o~hs
L02) os (L03L03L01 o~hs
L02) os (L01 o~h`s
L02) os (L03L01 o~h`s
L02) os (L03L03L01 o~h`s
.group u
u u:
@@ -204,74 +204,74 @@
L02) u (L03L03L01 u~
L02) u (L03L03L03L01 u~
us (L01 uhs
us (L03L01 uhs
us (L03L03L01 uhs
us (L01 uh`s
us (L03L01 uh`s
us (L03L03L01 uh`s
L02) us (L01 u~hs
L02) us (L03L01 u~hs
L02) us (L03L03L01 u~hs
L02) us (L01 u~h`s
L02) us (L03L01 u~h`s
L02) us (L03L03L01 u~h`s
.group v
v W~:
v V~:
v (L03_ W~43
v (L03L03_ W~43
v (L03L03L03_ W~43
v (L03_ V~43
v (L03L03_ V~43
v (L03L03L03_ V~43
v (_ W~43
vxb (_ W~1
vxc (_ W~2
vxd (_ W~3
vxf (_ W~4
v (_ V~43
vxb (_ V~1
vxc (_ V~2
vxd (_ V~3
vxf (_ V~4
v (L03L01 W~
v (L03L03L01 W~
v (L03L03L03L01 W~
v (L03L01 V~
v (L03L03L01 V~
v (L03L03L03L01 V~
vs (L01 W~hs
vs (L03L01 W~hs
vs (L03L03L01 W~hs
vs (L01 V~h`s
vs (L03L01 V~h`s
vs (L03L03L01 V~h`s

.group ạ
A:
L02) ạ A~
ạ (_ A~43
ạs A~hs
L02) ạs A~hs
0
L02) ạ 0~
ạ (_ 0~43
ạs 0~h`s
L02) ạs 0~h`s

.group ẹ
E
L02) ẹ E~
ẹ (_ E~43
ẹs Ehs
L02) ẹs E~hs
e
L02) ẹ e~
ẹ (_ e~43
ẹs eh`s
L02) ẹs e~h`s
.group ị
I
L02) ị I~
ị (_ I~43
ịs Ihs
L02) ịs I~hs
i
L02) ị i~
ị (_ i~43
ịs ih`s
L02) ịs i~h`s
.group ọ
ọ o
L02) ọ o~
ọ (_ o~43
ọs ohs
L02) ọs o~hs
ọs oh`s
L02) ọs o~h`s
.group ụ
ụ u
L02) ụ u~
ụ (_ u~43
ụs uhs
L02) ụs u~hs
ụs uh`s
L02) ụs u~h`s
.group ṿ
ṿ W~
ṿ W~43
ṿs W~hs
ṿ V~
ṿ V~43
ṿs V~h`s

.group ch
ch tS

+ 16
- 9
espeak-ng-data/lang/iro/chr View File

@@ -1,21 +1,28 @@
name Cherokee //https://github.com/espeak-ng/espeak-ng/blob/master/docs/voices.md
language chr 5
language chr-US-Qaaa-x-west 5

maintainer Michael Conrad <[email protected]>
status testing

pitch 90 160

voicing 100
speed 73
words 0 1

consonants 100 100

speed 100

words 2 1

phonemes chr

//stress on all syllables to simulate stress on no syllables
stressRule 9
intonation 3
stressLength 225 225 225 225 225 225 225 225 //all vowels the same length regardless of stress
stressAmp 20 20 20 20 20 20 20 20 //all vowels the same strength regardless of marked stress

intonation 1
//pitch 30 90
pitch 90 160

tunes chrs chrc chrq chre

stressAmp 8 8 8 8 8 8 8 8 //stress all vowels the same
stressLength 180 180 180 180 180 180 180 180 //stress all vowels the same

consonants 150 150

+ 6
- 0
phsource/envelope/chr_fall21 View File

@@ -0,0 +1,6 @@
ENVELOPE
0 100
25 78
50 50
75 22
100 0

+ 6
- 0
phsource/envelope/chr_fall32 View File

@@ -0,0 +1,6 @@
ENVELOPE
0 100
25 92
50 72
75 36
100 0

+ 7
- 0
phsource/envelope/chr_fall43 View File

@@ -0,0 +1,7 @@
ENVELOPE
0 100
20 98
40 89
60 75
80 36
100 0

+ 6
- 0
phsource/envelope/chr_level2 View File

@@ -0,0 +1,6 @@
ENVELOPE
0 100
25 50
50 25
75 13
100 0

+ 6
- 0
phsource/envelope/chr_level3 View File

@@ -0,0 +1,6 @@
ENVELOPE
0 0
25 25
50 50
75 75
100 100

+ 6
- 0
phsource/envelope/chr_rise23 View File

@@ -0,0 +1,6 @@
ENVELOPE
0 0
25 8
50 33
75 58
100 100

+ 6
- 0
phsource/envelope/chr_rise4 View File

@@ -0,0 +1,6 @@
ENVELOPE
0 0
25 22
50 50
75 72
100 100

+ 271
- 90
phsource/ph_cherokee View File

@@ -39,123 +39,153 @@
phoneme 1 // low fall (¹), long vowels only
stress
ipa ˨˩
Tone(28, 7, envelope/p_fall, NULL) //need a pitch contour of 106-88 for a
Tone(28, 7, envelope/chr_fall21, NULL) //need a pitch contour of 106-88 for a
endphoneme


phoneme 2 // low (²)
stress
ipa ˨
Tone(26, 16, envelope/p_fall, NULL) //need a pitch contour of 104-96 for a
Tone(27, 16, envelope/chr_level2, NULL) //need a pitch contour of 104-96 for a
endphoneme

phoneme 23 // rising (²³)
stress
ipa ˨˧
Tone(15, 29, envelope/p_rise, NULL) //need a pitch contour of 97-109 for a
Tone(16, 30, envelope/chr_rise23, NULL) //need a pitch contour of 97-109 for a
endphoneme

phoneme 32 // falling (³²)
stress
ipa ˧˨
Tone(46, 16, envelope/p_fall, NULL) //need a pitch contour of 122-97 for a
Tone(45, 15, envelope/chr_fall32, NULL) //need a pitch contour of 122-97 for a
endphoneme

phoneme 3 // high (³)
stress
ipa ˧
//Tone(109, 116, envelope/p_rise, NULL) //need a pitch contour of 108-112 for a
Tone(29, 34, envelope/p_rise, NULL) //need a pitch contour of 108-112 for a
Tone(29, 35, envelope/chr_level3, NULL) //need a pitch contour of 108-112 for a
endphoneme

phoneme 4 // extra high rise (⁴)
stress
ipa ˧˦
Tone(29, 50, envelope/p_rise, NULL) //need a pitch contour of 109-127 for a
Tone(29, 52, envelope/chr_rise4, NULL) //need a pitch contour of 109-127 for a
endphoneme

phoneme 43 // extra high fall (⁴³) - end of word tone
stress
ipa ˦˧
//need a pitch contour of 122-75 for a~
Tone(45, 0, envelope/p_fall, NULL)
Tone(44, 0, envelope/chr_fall43, NULL)
endphoneme

//*******************************************************************
// LANGUAGE SPECIFIC CONSONANTS (PLOSIVES/STOPS)
//*******************************************************************
//none.

//*******************************************************************
// LANGUAGE SPECIFIC VOWELS
//*******************************************************************

//from phonemes
phoneme : // lengthen previous vowel by "length"
virtual
length 175
length 300
endphoneme

// ạ, a
//from ph_en
phoneme A:
vwl starttype #a endtype #a
length 175
FMT(vowel/aa_2)
phoneme 0
vwl starttype #o endtype #o
length 300
FMT(vowel/0_3)
endphoneme

// ạ, a, end of word vowel
//from ph_english
phoneme A~
vwl starttype #a endtype #a
length 175
FMT(vnasal/aa_n2)
phoneme 0`
vwl starttype #o endtype #o
length 100
FMT(vowel/0_3)
endphoneme

// e, ẹ
//from ph_base2
phoneme E
vwl starttype #e endtype #e
length 175
FMT(vowel/ee_1)
phoneme 0~
vwl starttype #o endtype #o
length 300
FMT(vnasal/aa_n4)
endphoneme

phoneme 0~`
vwl starttype #o endtype #o
length 100
FMT(vnasal/aa_n4)
endphoneme

phoneme e
vwl starttype #e endtype #e
length 300
FMT(vowel/e_mid)
endphoneme

phoneme e`
vwl starttype #e endtype #e
length 100
FMT(vowel/e_mid)
endphoneme

// e, ẹ, final word vowel
//from ph_konkani
phoneme E~
vwl starttype #e endtype #e
length 175
phoneme e~
vwl starttype #e endtype #e
length 300
FMT(vnasal/ee_n2)
endphoneme

// i, ị
//from ph_en
phoneme I
vwl starttype #i endtype #i
length 175
FMT(vowel/ii_2)
phoneme e~`
vwl starttype #e endtype #e
length 100
FMT(vnasal/ee_n2)
endphoneme

phoneme i
vwl starttype #i endtype #i
length 300
//IfNextVowelAppend(;)
FMT(vowel/i)
endphoneme

phoneme i`
vwl starttype #i endtype #i
length 100
//IfNextVowelAppend(;)
FMT(vowel/i)
endphoneme

phoneme i~
vwl starttype #i endtype #i
length 300
//IfNextVowelAppend(;)
FMT(vnasal/i_n)
endphoneme

// i, ị, final word vowel
//from ph_konkani
phoneme I~
vwl starttype #i endtype #i
length 175
FMT(vnasal/ii_n)
phoneme i~`
vwl starttype #i endtype #i
length 100
//IfNextVowelAppend(;)
FMT(vnasal/i_n)
endphoneme

// o, ọ
//from ph_base2
phoneme o
vwl starttype #o endtype #o
length 175
length 300
FMT(vowel/o)
endphoneme

phoneme o`
vwl starttype #o endtype #o
length 100
FMT(vowel/o)
endphoneme

// o, ọ, final word vowel
phoneme o~
vwl starttype #o endtype #o
length 175
length 300
FMT(vnasal/o_n)
endphoneme

phoneme o~`
vwl starttype #o endtype #o
length 100
FMT(vnasal/o_n)
endphoneme

@@ -163,59 +193,210 @@ endphoneme
//from ph_base2
phoneme u
vwl starttype #u endtype #u
length 175
length 300
FMT(vowel/u_bck)
endphoneme

phoneme u`
vwl starttype #u endtype #u
length 100
FMT(vowel/u_bck)
endphoneme

// u, ụ, final word vowel
phoneme u~
vwl starttype #u endtype #u
length 175
length 300
FMT(vnasal/u_n)
endphoneme

phoneme u~`
vwl starttype #u endtype #u
length 100
FMT(vnasal/u_n)
endphoneme

//ṿ, v
//from ph_french
phoneme W~
vwl starttype #@ endtype #@
length 175
FMT(vnasal/W_n)
phoneme V~
vwl lng starttype #@ endtype #@
length 300
FMT(vnasal/V_n, 100)
endphoneme

phoneme V~`
vwl lng starttype #@ endtype #@
length 100
FMT(vnasal/V_n)
endphoneme

phoneme h
vls glt apr
ipa h
IF prevPhW(isVowel) AND nextPhW(isNotVowel) THEN
length 25
lengthmod 1
ENDIF
IF nextPhW(#@) THEN
length 50
WAV(h/h@, 70)
ELIF nextPhW(#a) THEN
WAV(h/ha)
ELIF nextPhW(#e) THEN
length 60
WAV(h/he, 75)
ELIF nextPhW(#i) THEN
length 75
WAV(h/hi)
ELIF nextPhW(#o) THEN
length 75
WAV(h/ho)
ELIF nextPhW(#u) THEN
length 80
WAV(h/hu)
ELSE
length 60
WAV(h/h_) // no vowel following
ENDIF
endphoneme

// fix specific consonents to last long enough to be heard
phoneme lxx
import_phoneme base2/l
length 75
Tone(105, 93, envelope/p_fall, NULL)
phoneme h`
vls glt apr
ipa h
length 10
WAV(h/h_) // no vowel following
endphoneme

phoneme mxx
import_phoneme base2/m
length 75
Tone(105, 93, envelope/p_fall, NULL)
phoneme s
vls alv frc sib
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

IF nextPh(isPause) THEN
WAV(ufric/s_)
ELIF nextPh(p) OR nextPh(t) OR nextPh(k) THEN
WAV(ufric/s!)
ENDIF
WAV(ufric/s)
endphoneme

phoneme nxx
import_phoneme base2/n
length 75
Tone(105, 93, envelope/p_fall, NULL)
phoneme g
vcd vel stp
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

// IF PreVoicing THEN
//FMT(g/xg)
//ENDIF

IF nextPh(isPause2) THEN
//addWav(ustop/k_)
FMT(g/g_) addWav(ustop/k_)
//addWav(x/g_)
ELSE
//addWav(ustop/k_asp)
FMT(g/g) addWav(ustop/k_asp)
//addWav(x/g)
ENDIF
endphoneme

phoneme wxx
import_phoneme base2/w
length 175
Tone(105, 93, envelope/p_fall, NULL)
phoneme t
vls alv stp
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(@-) THEN
WAV(ustop/t_dnt, 50)
ELSE
WAV(ustop/t_dnt, 100)
ENDIF
endphoneme

phoneme dZ // **j**udge
ipa dZ
vcd pla afr sib
voicingswitch tS
lengthmod 5
Vowelin f1=2 f2=2300 200 400 f3=100 80
Vowelout f1=2 f2=2300 250 300 f3=100 80 brk

IF PreVoicing THEN
FMT(dzh/xdz_pzd, 250)
ENDIF

IF nextPh(isPause2) THEN
FMT(dzh/dz_pzd_, 250) addWav(x/dz_pzd_, 250)
ENDIF
FMT(dzh/dz_pzd, 250) addWav(x/dz_pzd, 250)
endphoneme

phoneme jxx
import_phoneme base1/j
length 75
Tone(105, 93, envelope/p_fall, NULL)
phoneme n
vcd alv nas
Vowelout f1=2 f2=1500 -300 250 f3=-100 80 rms=20 brk
Vowelin rate
lengthmod 4
IF KlattSynth THEN
Vowelin f1=0 f2=1500 -200 200 f3=0 80
FMT(klatt/n)
ENDIF

NextVowelStarts
VowelStart(n/n@)
VowelStart(n/na)
VowelStart(n/ne)
VowelStart(n/ni)
VowelStart(n/no)
VowelStart(n/nu)
EndSwitch

IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
FMT(n/nj)
ELIF prevPh(isPause) OR prevPh(n) THEN
FMT(n/_n)
ELIF nextPh(isNotVowel) THEN
FMT(n/n_)
ENDIF
endphoneme

phoneme hxx
import_phoneme base1/h
length 75
Tone(105, 93, envelope/p_fall, NULL)
//lengthmod 1
endphoneme
phoneme m
vcd blb nas
Vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk
lengthmod 4

IF KlattSynth THEN
Vowelin f1=0 f2=1000 -50 -200 f3=-200 80
IF nextPh(isPause2) THEN
FMT(klatt/m_)
ENDIF
FMT(klatt/m)
ENDIF

NextVowelStarts
VowelStart(m/m@)
VowelStart(m/ma)
VowelStart(m/me)
VowelStart(m/mi)
VowelStart(m/mo)
VowelStart(m/mu)
EndSwitch

IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
FMT(m/mj)
ELIF prevPh(isPause) THEN
FMT(m/_m)
ELIF nextPh(isNotVowel) THEN
FMT(m/m_)
ENDIF
endphoneme

Loading…
Cancel
Save