forked from espeak-ng/espeak-ng
-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy pathph_arabic
147 lines (132 loc) · 2.56 KB
/
ph_arabic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
phoneme #r virtual
// Used for "r" sounds
endphoneme
phoneme H // arabic Hah
vls phr frc
ipa ħ
lengthmod 5
WAV(vwl_ar/hah,80)
endphoneme
phoneme Z // arabic ZAH
vcd dnt frc
ipa ð
// following definition is taken from English D
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
IF nextPh(isPause2) THEN
FMT(voc/dh_) addWav(vocw/dh)
ENDIF
FMT(voc/dh) addWav(vocw/dh)
endphoneme
phoneme A // arabic Ain
vcd frc
ipa ʕ
voicingswitch a
length 160
Vowelin f1=2 f2=2300 -400 500 f3=300 80
Vowelout f1=2 f2=2300 -300 450 f3=-100 10
FMT(r/xr,25) addWav(h/h_,30)
endphoneme
phoneme gH // arabic Ghain, the phoneme is derived from Q
vcd vel frc
voicingswitch R2
ipa ɣ
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(vwl_ar/dhad)
endphoneme
phoneme dH //arabic Dhad TODO this probably should be simple d from standard phonemes
vcd alv stp
ipa dˤ
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_)
ENDIF
FMT(d/d) addWav(x/d)
endphoneme
phoneme s[
vls dnt stp
voicingswitch s
IF nextPh(s[) THEN
length 50
ELSE
length 140
ENDIF
lengthmod 7
WAV(vwl_ar/shin)
endphoneme
phoneme X
vls uvl frc
voicingswitch Q
lengthmod 7
Vowelin f1=0 f2=2300 200 400 f3=-100 80
Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20
WAV(ufric/xx, 70)
endphoneme
// vowels
phoneme a
vwl starttype #a endtype #a
IF nextPhW(isPause) THEN
length 80
ELSE
length 140
ENDIF
FMT(vowel/a_2)
endphoneme
phoneme i
vwl starttype #i endtype #i
IF nextPhW(isPause) THEN
length 80
ELSE
length 140
ENDIF
FMT(vowel/i)
endphoneme
phoneme u
vwl starttype #u endtype #u
IF nextPhW(isPause) THEN
length 80
ELSE
length 140
ENDIF
FMT(vowel/u)
endphoneme
// "dark" vowels after "thick" consonants
phoneme a.
vwl starttype #a endtype #a
IF nextPhW(isPause) THEN
length 80
ELSE
length 140
ENDIF
FMT(vowel/aa_7)
endphoneme
phoneme i.
vwl starttype #i endtype #i
IF nextPhW(isPause) THEN
length 80
ELSE
length 140
ENDIF
FMT(vowel/ii_5)
endphoneme
phoneme u.
vwl starttype #u endtype #u
IF nextPhW(isPause) THEN
length 80
ELSE
length 140
ENDIF
FMT(vowel/u_7)
endphoneme
phoneme : // lengthen previous vowel by "length"
virtual
length 180
endphoneme