voxforge.org
VoxForge Dev

root/trunk/extensions_voxforge.conf

Revision 36, 31.6 kB (checked in by trevarthan, 2 years ago)

Missed a spot. Ugh.

Line 
1 ; extensions_voxforge.conf - An IVR to automatically recording transcribed audio for Voxforge.org
2 ; Copyright (C) 2007  Jesse D. Guardiani
3 ;
4 ; This program is free software; you can redistribute it and/or
5 ; modify it under the terms of the GNU General Public License
6 ; as published by the Free Software Foundation; either version 2
7 ; of the License, or (at your option) any later version.
8 ;
9 ; This program is distributed in the hope that it will be useful,
10 ; but WITHOUT ANY WARRANTY; without even the implied warranty of
11 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 ; GNU General Public License for more details.
13 ;
14 ; You should have received a copy of the GNU General Public License
15 ; along with this program; if not, write to the Free Software
16 ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
17 ; ---------------------------------------------------------------------------------
18 ;
19 ; note: I misspell 'record' as 'reecord' on purpose because flite mispronounces it.
20 ;       I also use periods (.) instead of commas (,) because flite doesn't pause long enough on commas.
21
22 [custom-voxforge]
23 exten => s,1,Set(ran-init=0)
24 exten => s,2,Set(ran-instructions=0)
25 exten => s,3,Set(prompts-dir=/voxforge-code/prompts)
26 exten => s,4,Set(menu-dir=${prompts-dir}/audio/menu)
27 ;exten => s,5,Flite("Welcome to the Vox Forge automated reecording system!")
28 exten => s,5,Answer()
29 exten => s,6,Wait(2)
30 exten => s,7,Playback(${menu-dir}/welcome)
31 exten => s,8,Gosub(sub-voxforge-channel-limit|s|1)
32 exten => s,9,Goto(custom-voxforge-license|s|1)
33 exten => i,1,Goto(s|2)
34 exten => h,1,Gosub(sub-voxforge-decrement-num-active-channels|s|1)
35
36 [custom-voxforge-license]
37 ;exten => s,1,Flite("To use this system. You must agree to have your voice reecorded.")
38 ;exten => s,2,Flite("And licensed under the G N U ... G P L.")
39 ;exten => s,3,Flite("With copyright assigned to the Free Software Foundation.")
40 ;exten => s,4,Flite('Press 1 if you agree. Press 2. Or hang up now. If you do not agree. Or do not understand. Press 3 for more information about the G N U ... G P L license.'|123)
41 exten => s,1,Playback(${menu-dir}/license-agree-info)
42 exten => s,2,Background(${menu-dir}/license-agree-prompt)
43 exten => s,3,WaitExten(10)
44 exten => 1,1,Goto(custom-voxforge-gender|s|1)
45 exten => 2,1,Playback(vm-goodbye)
46 exten => 2,2,Gosub(sub-voxforge-decrement-num-active-channels|s|1)
47 exten => 2,3,Hangup()
48 ;exten => 3,1,Flite("The G N U ... G P L. or G N U... General Public License. refers to a type of Open Source license. Copyright protects a creator's right to control copies and changes to A work. By pressing 1... you agree... to give away the Copyright of your speech submission to the Free Software Foundation. And license your submission under the G P L. The G P L protects everyone's right to copy and make changes to your submission. For more information about the G P L. please go to www dot g n u dot o r g"|123)
49 exten => 3,1,Background(${menu-dir}/license-about)
50 exten => 3,2,Goto(s|2)
51 ;exten => i,1,Flite('Sorry. that is not a valid choice.'|1234567890)
52 exten => i,1,Background(${menu-dir}/not-a-valid-choice)
53 exten => i,2,Goto(s|1)
54 exten => h,1,Gosub(sub-voxforge-decrement-num-active-channels|s|1)
55
56 [custom-voxforge-gender]
57 ;exten => s,1,Flite("Please press 1 if you are a male. Press 2 if you are a female."|12)
58 exten => s,1,Background(${menu-dir}/gender)
59 exten => s,2,WaitExten(10)
60 exten => 1,1,Setvar(gender=male)
61 exten => 1,2,Goto(custom-voxforge-gender-confirm|s|1)
62 exten => 2,1,Setvar(gender=female)
63 exten => 2,2,Goto(custom-voxforge-gender-confirm|s|1)
64 ;exten => i,1,Flite('Sorry. that is not a valid choice.'|1234567890)
65 exten => i,1,Background(${menu-dir}/not-a-valid-choice)
66 exten => i,2,Goto(s|1)
67 exten => h,1,Gosub(sub-voxforge-decrement-num-active-channels|s|1)
68
69 [custom-voxforge-gender-confirm]
70 ;exten => s,1,Flite('OK, you chose ${gender}. Press 1 if this is correct. Press 2 to try again.'|12)
71 exten => s,1,GotoIf($[${gender} = 'male']?2:4)
72 exten => s,2,Background(${menu-dir}/chose-male)
73 exten => s,3,Goto(s|5)
74 exten => s,4,Background(${menu-dir}/chose-female)
75 exten => s,5,Background(${menu-dir}/1-correct-2-try-again)
76 exten => s,6,WaitExten(10)
77 exten => 1,1,Goto(custom-voxforge-agerange|s|1)
78 exten => 2,1,Goto(custom-voxforge-gender|s|1)
79 ;exten => i,1,Flite('Sorry. that is not a valid choice.'|1234567890)
80 exten => i,1,Background(${menu-dir}/not-a-valid-choice)
81 exten => i,2,Goto(s|1)
82 exten => h,1,Gosub(sub-voxforge-decrement-num-active-channels|s|1)
83
84 [custom-voxforge-agerange]
85 ;exten => s,1,Flite('Please press 1 if you are a youth. Press 2 if you are an adult. Or press 3 if you are a senior.'|123)
86 exten => s,1,Background(${menu-dir}/agerange)
87 exten => s,2,WaitExten(10)
88 exten => 1,1,Setvar(agerange=youth)
89 exten => 1,2,Goto(custom-voxforge-agerange-confirm|s|1)
90 exten => 2,1,Setvar(agerange=adult)
91 exten => 2,2,Goto(custom-voxforge-agerange-confirm|s|1)
92 exten => 3,1,Setvar(agerange=senior)
93 exten => 3,2,Goto(custom-voxforge-agerange-confirm|s|1)
94 ;exten => i,1,Flite('Sorry. that is not a valid choice.'|1234567890)
95 exten => i,1,Background(${menu-dir}/not-a-valid-choice)
96 exten => i,2,Goto(s|1)
97 exten => h,1,Gosub(sub-voxforge-decrement-num-active-channels|s|1)
98
99 [custom-voxforge-agerange-confirm]
100 ;exten => s,1,Flite('OK, you chose ${agerange}. Press 1 if this is correct. Press 2 to try again.'|12)
101 exten => s,1,GotoIf($[${agerange} = 'youth']?2:4)
102 exten => s,2,Background(${menu-dir}/chose-youth)
103 exten => s,3,Goto(s|8)
104 exten => s,4,GotoIf($[${agerange} = 'adult']?5:7)
105 exten => s,5,Background(${menu-dir}/chose-adult)
106 exten => s,6,Goto(s|8)
107 exten => s,7,Background(${menu-dir}/chose-senior)
108 exten => s,8,Background(${menu-dir}/1-correct-2-try-again)
109 exten => s,9,WaitExten(10)
110 exten => 1,1,Set(num-complete=0)
111 exten => 1,2,Set(num-complete-this-round=0)
112 exten => 1,3,Goto(custom-voxforge-selectscript|s|1)
113 exten => 2,1,Goto(custom-voxforge-agerange|s|1)
114 ;exten => i,1,Flite('Sorry. that is not a valid choice.'|1234567890)
115 exten => i,1,Background(${menu-dir}/not-a-valid-choice)
116 exten => i,2,Goto(s|1)
117 exten => h,1,Gosub(sub-voxforge-decrement-num-active-channels|s|1)
118
119 [custom-voxforge-selectscript]
120 exten => s,1,Set(max-script-num=48)
121 exten => s,2,Gosub(sub-voxforge-get-script-num|s|1)
122 exten => s,3,Gosub(sub-voxforge-increment-script-num|s|1)
123 exten => s,4,Goto(${script-num}|1)
124
125 exten =>  1,1,Goto(custom-voxforge-vf3-1|s|1)
126 exten =>  2,1,Goto(custom-voxforge-vf3-2|s|1)
127 exten =>  3,1,Goto(custom-voxforge-vf3-3|s|1)
128 exten =>  4,1,Goto(custom-voxforge-vf3-4|s|1)
129 exten =>  5,1,Goto(custom-voxforge-vf3-5|s|1)
130 exten =>  6,1,Goto(custom-voxforge-vf3-6|s|1)
131 exten =>  7,1,Goto(custom-voxforge-vf3-7|s|1)
132 exten =>  8,1,Goto(custom-voxforge-vf3-8|s|1)
133
134 exten =>  9,1,Goto(custom-voxforge-vf4-1|s|1)
135 exten => 10,1,Goto(custom-voxforge-vf4-2|s|1)
136 exten => 11,1,Goto(custom-voxforge-vf4-3|s|1)
137 exten => 12,1,Goto(custom-voxforge-vf4-4|s|1)
138 exten => 13,1,Goto(custom-voxforge-vf4-5|s|1)
139 exten => 14,1,Goto(custom-voxforge-vf4-6|s|1)
140 exten => 15,1,Goto(custom-voxforge-vf4-7|s|1)
141 exten => 16,1,Goto(custom-voxforge-vf4-8|s|1)
142
143 exten => 17,1,Goto(custom-voxforge-vf5-1|s|1)
144 exten => 18,1,Goto(custom-voxforge-vf5-2|s|1)
145 exten => 19,1,Goto(custom-voxforge-vf5-3|s|1)
146 exten => 20,1,Goto(custom-voxforge-vf5-4|s|1)
147 exten => 21,1,Goto(custom-voxforge-vf5-5|s|1)
148 exten => 22,1,Goto(custom-voxforge-vf5-6|s|1)
149 exten => 23,1,Goto(custom-voxforge-vf5-7|s|1)
150 exten => 24,1,Goto(custom-voxforge-vf5-8|s|1)
151
152 exten => 25,1,Goto(custom-voxforge-vf6-1|s|1)
153 exten => 26,1,Goto(custom-voxforge-vf6-2|s|1)
154 exten => 27,1,Goto(custom-voxforge-vf6-3|s|1)
155 exten => 28,1,Goto(custom-voxforge-vf6-4|s|1)
156 exten => 29,1,Goto(custom-voxforge-vf6-5|s|1)
157 exten => 30,1,Goto(custom-voxforge-vf6-6|s|1)
158 exten => 31,1,Goto(custom-voxforge-vf6-7|s|1)
159 exten => 32,1,Goto(custom-voxforge-vf6-8|s|1)
160
161 exten => 33,1,Goto(custom-voxforge-vf7-1|s|1)
162 exten => 34,1,Goto(custom-voxforge-vf7-2|s|1)
163 exten => 35,1,Goto(custom-voxforge-vf7-3|s|1)
164 exten => 36,1,Goto(custom-voxforge-vf7-4|s|1)
165 exten => 37,1,Goto(custom-voxforge-vf7-5|s|1)
166 exten => 38,1,Goto(custom-voxforge-vf7-6|s|1)
167 exten => 39,1,Goto(custom-voxforge-vf7-7|s|1)
168 exten => 40,1,Goto(custom-voxforge-vf7-8|s|1)
169
170 exten => 41,1,Goto(custom-voxforge-vf8-1|s|1)
171 exten => 42,1,Goto(custom-voxforge-vf8-2|s|1)
172 exten => 43,1,Goto(custom-voxforge-vf8-3|s|1)
173 exten => 44,1,Goto(custom-voxforge-vf8-4|s|1)
174 exten => 45,1,Goto(custom-voxforge-vf8-5|s|1)
175 exten => 46,1,Goto(custom-voxforge-vf8-6|s|1)
176 exten => 47,1,Goto(custom-voxforge-vf8-7|s|1)
177 exten => 48,1,Goto(custom-voxforge-vf8-8|s|1)
178
179 exten => i,1,Goto(s|1)
180
181
182 [custom-voxforge-vf3-1]
183 include => custom-voxforge-phoneme-explain
184 exten => 50,1,Macro(voxforge-hrecord,'vf3-01')
185 exten => 50,2,Macro(voxforge-hrecord,'vf3-02')
186 exten => 50,3,Macro(voxforge-hrecord,'vf3-03')
187 exten => 50,4,Macro(voxforge-hrecord,'vf3-04')
188 exten => 50,5,Macro(voxforge-hrecord,'vf3-05')
189
190 [custom-voxforge-vf3-2]
191 include => custom-voxforge-phoneme-explain
192 exten => 50,1,Macro(voxforge-hrecord,'vf3-06')
193 exten => 50,2,Macro(voxforge-hrecord,'vf3-07')
194 exten => 50,3,Macro(voxforge-hrecord,'vf3-08')
195 exten => 50,4,Macro(voxforge-hrecord,'vf3-09')
196 exten => 50,5,Macro(voxforge-hrecord,'vf3-10')
197
198 [custom-voxforge-vf3-3]
199 include => custom-voxforge-phoneme-explain
200 exten => 50,1,Macro(voxforge-hrecord,'vf3-11')
201 exten => 50,2,Macro(voxforge-hrecord,'vf3-12')
202 exten => 50,3,Macro(voxforge-hrecord,'vf3-13')
203 exten => 50,4,Macro(voxforge-hrecord,'vf3-14')
204 exten => 50,5,Macro(voxforge-hrecord,'vf3-15')
205
206 [custom-voxforge-vf3-4]
207 include => custom-voxforge-phoneme-explain
208 exten => 50,1,Macro(voxforge-hrecord,'vf3-16')
209 exten => 50,2,Macro(voxforge-hrecord,'vf3-17')
210 exten => 50,3,Macro(voxforge-hrecord,'vf3-18')
211 exten => 50,4,Macro(voxforge-hrecord,'vf3-19')
212 exten => 50,5,Macro(voxforge-hrecord,'vf3-20')
213
214 [custom-voxforge-vf3-5]
215 include => custom-voxforge-phoneme-explain
216 exten => 50,1,Macro(voxforge-hrecord,'vf3-21')
217 exten => 50,2,Macro(voxforge-hrecord,'vf3-22')
218 exten => 50,3,Macro(voxforge-hrecord,'vf3-23')
219 exten => 50,4,Macro(voxforge-hrecord,'vf3-24')
220 exten => 50,5,Macro(voxforge-hrecord,'vf3-25')
221
222 [custom-voxforge-vf3-6]
223 include => custom-voxforge-phoneme-explain
224 exten => 50,1,Macro(voxforge-hrecord,'vf3-26')
225 exten => 50,2,Macro(voxforge-hrecord,'vf3-27')
226 exten => 50,3,Macro(voxforge-hrecord,'vf3-28')
227 exten => 50,4,Macro(voxforge-hrecord,'vf3-29')
228 exten => 50,5,Macro(voxforge-hrecord,'vf3-30')
229
230 [custom-voxforge-vf3-7]
231 include => custom-voxforge-phoneme-explain
232 exten => 50,1,Macro(voxforge-hrecord,'vf3-31')
233 exten => 50,2,Macro(voxforge-hrecord,'vf3-32')
234 exten => 50,3,Macro(voxforge-hrecord,'vf3-33')
235 exten => 50,4,Macro(voxforge-hrecord,'vf3-34')
236 exten => 50,5,Macro(voxforge-hrecord,'vf3-35')
237
238 [custom-voxforge-vf3-8]
239 include => custom-voxforge-phoneme-explain
240 exten => 50,1,Macro(voxforge-hrecord,'vf3-36')
241 exten => 50,2,Macro(voxforge-hrecord,'vf3-37')
242 exten => 50,3,Macro(voxforge-hrecord,'vf3-38')
243 exten => 50,4,Macro(voxforge-hrecord,'vf3-39')
244 exten => 50,5,Macro(voxforge-hrecord,'vf3-40')
245
246
247 [custom-voxforge-vf4-1]
248 include => custom-voxforge-phoneme-explain
249 exten => 50,1,Macro(voxforge-hrecord,'vf4-01')
250 exten => 50,2,Macro(voxforge-hrecord,'vf4-02')
251 exten => 50,3,Macro(voxforge-hrecord,'vf4-03')
252 exten => 50,4,Macro(voxforge-hrecord,'vf4-04')
253 exten => 50,5,Macro(voxforge-hrecord,'vf4-05')
254
255 [custom-voxforge-vf4-2]
256 include => custom-voxforge-phoneme-explain
257 exten => 50,1,Macro(voxforge-hrecord,'vf4-06')
258 exten => 50,2,Macro(voxforge-hrecord,'vf4-07')
259 exten => 50,3,Macro(voxforge-hrecord,'vf4-08')
260 exten => 50,4,Macro(voxforge-hrecord,'vf4-09')
261 exten => 50,5,Macro(voxforge-hrecord,'vf4-10')
262
263 [custom-voxforge-vf4-3]
264 include => custom-voxforge-phoneme-explain
265 exten => 50,1,Macro(voxforge-hrecord,'vf4-11')
266 exten => 50,2,Macro(voxforge-hrecord,'vf4-12')
267 exten => 50,3,Macro(voxforge-hrecord,'vf4-13')
268 exten => 50,4,Macro(voxforge-hrecord,'vf4-14')
269 exten => 50,5,Macro(voxforge-hrecord,'vf4-15')
270
271 [custom-voxforge-vf4-4]
272 include => custom-voxforge-phoneme-explain
273 exten => 50,1,Macro(voxforge-hrecord,'vf4-16')
274 exten => 50,2,Macro(voxforge-hrecord,'vf4-17')
275 exten => 50,3,Macro(voxforge-hrecord,'vf4-18')
276 exten => 50,4,Macro(voxforge-hrecord,'vf4-19')
277 exten => 50,5,Macro(voxforge-hrecord,'vf4-20')
278
279 [custom-voxforge-vf4-5]
280 include => custom-voxforge-phoneme-explain
281 exten => 50,1,Macro(voxforge-hrecord,'vf4-21')
282 exten => 50,2,Macro(voxforge-hrecord,'vf4-22')
283 exten => 50,3,Macro(voxforge-hrecord,'vf4-23')
284 exten => 50,4,Macro(voxforge-hrecord,'vf4-24')
285 exten => 50,5,Macro(voxforge-hrecord,'vf4-25')
286
287 [custom-voxforge-vf4-6]
288 include => custom-voxforge-phoneme-explain
289 exten => 50,1,Macro(voxforge-hrecord,'vf4-26')
290 exten => 50,2,Macro(voxforge-hrecord,'vf4-27')
291 exten => 50,3,Macro(voxforge-hrecord,'vf4-28')
292 exten => 50,4,Macro(voxforge-hrecord,'vf4-29')
293 exten => 50,5,Macro(voxforge-hrecord,'vf4-30')
294
295 [custom-voxforge-vf4-7]
296 include => custom-voxforge-phoneme-explain
297 exten => 50,1,Macro(voxforge-hrecord,'vf4-31')
298 exten => 50,2,Macro(voxforge-hrecord,'vf4-32')
299 exten => 50,3,Macro(voxforge-hrecord,'vf4-33')
300 exten => 50,4,Macro(voxforge-hrecord,'vf4-34')
301 exten => 50,5,Macro(voxforge-hrecord,'vf4-35')
302
303 [custom-voxforge-vf4-8]
304 include => custom-voxforge-phoneme-explain
305 exten => 50,1,Macro(voxforge-hrecord,'vf4-36')
306 exten => 50,2,Macro(voxforge-hrecord,'vf4-37')
307 exten => 50,3,Macro(voxforge-hrecord,'vf4-38')
308 exten => 50,4,Macro(voxforge-hrecord,'vf4-39')
309 exten => 50,5,Macro(voxforge-hrecord,'vf4-40')
310
311
312 [custom-voxforge-vf5-1]
313 include => custom-voxforge-phoneme-explain
314 exten => 50,1,Macro(voxforge-hrecord,'vf5-01')
315 exten => 50,2,Macro(voxforge-hrecord,'vf5-02')
316 exten => 50,3,Macro(voxforge-hrecord,'vf5-03')
317 exten => 50,4,Macro(voxforge-hrecord,'vf5-04')
318 exten => 50,5,Macro(voxforge-hrecord,'vf5-05')
319
320 [custom-voxforge-vf5-2]
321 include => custom-voxforge-phoneme-explain
322 exten => 50,1,Macro(voxforge-hrecord,'vf5-06')
323 exten => 50,2,Macro(voxforge-hrecord,'vf5-07')
324 exten => 50,3,Macro(voxforge-hrecord,'vf5-08')
325 exten => 50,4,Macro(voxforge-hrecord,'vf5-09')
326 exten => 50,5,Macro(voxforge-hrecord,'vf5-10')
327
328 [custom-voxforge-vf5-3]
329 include => custom-voxforge-phoneme-explain
330 exten => 50,1,Macro(voxforge-hrecord,'vf5-11')
331 exten => 50,2,Macro(voxforge-hrecord,'vf5-12')
332 exten => 50,3,Macro(voxforge-hrecord,'vf5-13')
333 exten => 50,4,Macro(voxforge-hrecord,'vf5-14')
334 exten => 50,5,Macro(voxforge-hrecord,'vf5-15')
335
336 [custom-voxforge-vf5-4]
337 include => custom-voxforge-phoneme-explain
338 exten => 50,1,Macro(voxforge-hrecord,'vf5-16')
339 exten => 50,2,Macro(voxforge-hrecord,'vf5-17')
340 exten => 50,3,Macro(voxforge-hrecord,'vf5-18')
341 exten => 50,4,Macro(voxforge-hrecord,'vf5-19')
342 exten => 50,5,Macro(voxforge-hrecord,'vf5-20')
343
344 [custom-voxforge-vf5-5]
345 include => custom-voxforge-phoneme-explain
346 exten => 50,1,Macro(voxforge-hrecord,'vf5-21')
347 exten => 50,2,Macro(voxforge-hrecord,'vf5-22')
348 exten => 50,3,Macro(voxforge-hrecord,'vf5-23')
349 exten => 50,4,Macro(voxforge-hrecord,'vf5-24')
350 exten => 50,5,Macro(voxforge-hrecord,'vf5-25')
351
352 [custom-voxforge-vf5-6]
353 include => custom-voxforge-phoneme-explain
354 exten => 50,1,Macro(voxforge-hrecord,'vf5-26')
355 exten => 50,2,Macro(voxforge-hrecord,'vf5-27')
356 exten => 50,3,Macro(voxforge-hrecord,'vf5-28')
357 exten => 50,4,Macro(voxforge-hrecord,'vf5-29')
358 exten => 50,5,Macro(voxforge-hrecord,'vf5-30')
359
360 [custom-voxforge-vf5-7]
361 include => custom-voxforge-phoneme-explain
362 exten => 50,1,Macro(voxforge-hrecord,'vf5-31')
363 exten => 50,2,Macro(voxforge-hrecord,'vf5-32')
364 exten => 50,3,Macro(voxforge-hrecord,'vf5-33')
365 exten => 50,4,Macro(voxforge-hrecord,'vf5-34')
366 exten => 50,5,Macro(voxforge-hrecord,'vf5-35')
367
368 [custom-voxforge-vf5-8]
369 include => custom-voxforge-phoneme-explain
370 exten => 50,1,Macro(voxforge-hrecord,'vf5-36')
371 exten => 50,2,Macro(voxforge-hrecord,'vf5-37')
372 exten => 50,3,Macro(voxforge-hrecord,'vf5-38')
373 exten => 50,4,Macro(voxforge-hrecord,'vf5-39')
374 exten => 50,5,Macro(voxforge-hrecord,'vf5-40')
375
376
377 [custom-voxforge-vf6-1]
378 include => custom-voxforge-phoneme-explain
379 exten => 50,1,Macro(voxforge-hrecord,'vf6-01')
380 exten => 50,2,Macro(voxforge-hrecord,'vf6-02')
381 exten => 50,3,Macro(voxforge-hrecord,'vf6-03')
382 exten => 50,4,Macro(voxforge-hrecord,'vf6-04')
383 exten => 50,5,Macro(voxforge-hrecord,'vf6-05')
384
385 [custom-voxforge-vf6-2]
386 include => custom-voxforge-phoneme-explain
387 exten => 50,1,Macro(voxforge-hrecord,'vf6-06')
388 exten => 50,2,Macro(voxforge-hrecord,'vf6-07')
389 exten => 50,3,Macro(voxforge-hrecord,'vf6-08')
390 exten => 50,4,Macro(voxforge-hrecord,'vf6-09')
391 exten => 50,5,Macro(voxforge-hrecord,'vf6-10')
392
393 [custom-voxforge-vf6-3]
394 include => custom-voxforge-phoneme-explain
395 exten => 50,1,Macro(voxforge-hrecord,'vf6-11')
396 exten => 50,2,Macro(voxforge-hrecord,'vf6-12')
397 exten => 50,3,Macro(voxforge-hrecord,'vf6-13')
398 exten => 50,4,Macro(voxforge-hrecord,'vf6-14')
399 exten => 50,5,Macro(voxforge-hrecord,'vf6-15')
400
401 [custom-voxforge-vf6-4]
402 include => custom-voxforge-phoneme-explain
403 exten => 50,1,Macro(voxforge-hrecord,'vf6-16')
404 exten => 50,2,Macro(voxforge-hrecord,'vf6-17')
405 exten => 50,3,Macro(voxforge-hrecord,'vf6-18')
406 exten => 50,4,Macro(voxforge-hrecord,'vf6-19')
407 exten => 50,5,Macro(voxforge-hrecord,'vf6-20')
408
409 [custom-voxforge-vf6-5]
410 include => custom-voxforge-phoneme-explain
411 exten => 50,1,Macro(voxforge-hrecord,'vf6-21')
412 exten => 50,2,Macro(voxforge-hrecord,'vf6-22')
413 exten => 50,3,Macro(voxforge-hrecord,'vf6-23')
414 exten => 50,4,Macro(voxforge-hrecord,'vf6-24')
415 exten => 50,5,Macro(voxforge-hrecord,'vf6-25')
416
417 [custom-voxforge-vf6-6]
418 include => custom-voxforge-phoneme-explain
419 exten => 50,1,Macro(voxforge-hrecord,'vf6-26')
420 exten => 50,2,Macro(voxforge-hrecord,'vf6-27')
421 exten => 50,3,Macro(voxforge-hrecord,'vf6-28')
422 exten => 50,4,Macro(voxforge-hrecord,'vf6-29')
423 exten => 50,5,Macro(voxforge-hrecord,'vf6-30')
424
425 [custom-voxforge-vf6-7]
426 include => custom-voxforge-phoneme-explain
427 exten => 50,1,Macro(voxforge-hrecord,'vf6-31')
428 exten => 50,2,Macro(voxforge-hrecord,'vf6-32')
429 exten => 50,3,Macro(voxforge-hrecord,'vf6-33')
430 exten => 50,4,Macro(voxforge-hrecord,'vf6-34')
431 exten => 50,5,Macro(voxforge-hrecord,'vf6-35')
432
433 [custom-voxforge-vf6-8]
434 include => custom-voxforge-phoneme-explain
435 exten => 50,1,Macro(voxforge-hrecord,'vf6-36')
436 exten => 50,2,Macro(voxforge-hrecord,'vf6-37')
437 exten => 50,3,Macro(voxforge-hrecord,'vf6-38')
438 exten => 50,4,Macro(voxforge-hrecord,'vf6-39')
439 exten => 50,5,Macro(voxforge-hrecord,'vf6-40')
440
441
442 [custom-voxforge-vf7-1]
443 include => custom-voxforge-phoneme-explain
444 exten => 50,1,Macro(voxforge-hrecord,'vf7-01')
445 exten => 50,2,Macro(voxforge-hrecord,'vf7-02')
446 exten => 50,3,Macro(voxforge-hrecord,'vf7-03')
447 exten => 50,4,Macro(voxforge-hrecord,'vf7-04')
448 exten => 50,5,Macro(voxforge-hrecord,'vf7-05')
449
450 [custom-voxforge-vf7-2]
451 include => custom-voxforge-phoneme-explain
452 exten => 50,1,Macro(voxforge-hrecord,'vf7-06')
453 exten => 50,2,Macro(voxforge-hrecord,'vf7-07')
454 exten => 50,3,Macro(voxforge-hrecord,'vf7-08')
455 exten => 50,4,Macro(voxforge-hrecord,'vf7-09')
456 exten => 50,5,Macro(voxforge-hrecord,'vf7-10')
457
458 [custom-voxforge-vf7-3]
459 include => custom-voxforge-phoneme-explain
460 exten => 50,1,Macro(voxforge-hrecord,'vf7-11')
461 exten => 50,2,Macro(voxforge-hrecord,'vf7-12')
462 exten => 50,3,Macro(voxforge-hrecord,'vf7-13')
463 exten => 50,4,Macro(voxforge-hrecord,'vf7-14')
464 exten => 50,5,Macro(voxforge-hrecord,'vf7-15')
465
466 [custom-voxforge-vf7-4]
467 include => custom-voxforge-phoneme-explain
468 exten => 50,1,Macro(voxforge-hrecord,'vf7-16')
469 exten => 50,2,Macro(voxforge-hrecord,'vf7-17')
470 exten => 50,3,Macro(voxforge-hrecord,'vf7-18')
471 exten => 50,4,Macro(voxforge-hrecord,'vf7-19')
472 exten => 50,5,Macro(voxforge-hrecord,'vf7-20')
473
474 [custom-voxforge-vf7-5]
475 include => custom-voxforge-phoneme-explain
476 exten => 50,1,Macro(voxforge-hrecord,'vf7-21')
477 exten => 50,2,Macro(voxforge-hrecord,'vf7-22')
478 exten => 50,3,Macro(voxforge-hrecord,'vf7-23')
479 exten => 50,4,Macro(voxforge-hrecord,'vf7-24')
480 exten => 50,5,Macro(voxforge-hrecord,'vf7-25')
481
482 [custom-voxforge-vf7-6]
483 include => custom-voxforge-phoneme-explain
484 exten => 50,1,Macro(voxforge-hrecord,'vf7-26')
485 exten => 50,2,Macro(voxforge-hrecord,'vf7-27')
486 exten => 50,3,Macro(voxforge-hrecord,'vf7-28')
487 exten => 50,4,Macro(voxforge-hrecord,'vf7-29')
488 exten => 50,5,Macro(voxforge-hrecord,'vf7-30')
489
490 [custom-voxforge-vf7-7]
491 include => custom-voxforge-phoneme-explain
492 exten => 50,1,Macro(voxforge-hrecord,'vf7-31')
493 exten => 50,2,Macro(voxforge-hrecord,'vf7-32')
494 exten => 50,3,Macro(voxforge-hrecord,'vf7-33')
495 exten => 50,4,Macro(voxforge-hrecord,'vf7-34')
496 exten => 50,5,Macro(voxforge-hrecord,'vf7-35')
497
498 [custom-voxforge-vf7-8]
499 include => custom-voxforge-phoneme-explain
500 exten => 50,1,Macro(voxforge-hrecord,'vf7-36')
501 exten => 50,2,Macro(voxforge-hrecord,'vf7-37')
502 exten => 50,3,Macro(voxforge-hrecord,'vf7-38')
503 exten => 50,4,Macro(voxforge-hrecord,'vf7-39')
504 exten => 50,5,Macro(voxforge-hrecord,'vf7-40')
505
506
507 [custom-voxforge-vf8-1]
508 include => custom-voxforge-phoneme-explain
509 exten => 50,1,Macro(voxforge-hrecord,'vf8-01')
510 exten => 50,2,Macro(voxforge-hrecord,'vf8-02')
511 exten => 50,3,Macro(voxforge-hrecord,'vf8-03')
512 exten => 50,4,Macro(voxforge-hrecord,'vf8-04')
513 exten => 50,5,Macro(voxforge-hrecord,'vf8-05')
514
515 [custom-voxforge-vf8-2]
516 include => custom-voxforge-phoneme-explain
517 exten => 50,1,Macro(voxforge-hrecord,'vf8-06')
518 exten => 50,2,Macro(voxforge-hrecord,'vf8-07')
519 exten => 50,3,Macro(voxforge-hrecord,'vf8-08')
520 exten => 50,4,Macro(voxforge-hrecord,'vf8-09')
521 exten => 50,5,Macro(voxforge-hrecord,'vf8-10')
522
523 [custom-voxforge-vf8-3]
524 include => custom-voxforge-phoneme-explain
525 exten => 50,1,Macro(voxforge-hrecord,'vf8-11')
526 exten => 50,2,Macro(voxforge-hrecord,'vf8-12')
527 exten => 50,3,Macro(voxforge-hrecord,'vf8-13')
528 exten => 50,4,Macro(voxforge-hrecord,'vf8-14')
529 exten => 50,5,Macro(voxforge-hrecord,'vf8-15')
530
531 [custom-voxforge-vf8-4]
532 include => custom-voxforge-phoneme-explain
533 exten => 50,1,Macro(voxforge-hrecord,'vf8-16')
534 exten => 50,2,Macro(voxforge-hrecord,'vf8-17')
535 exten => 50,3,Macro(voxforge-hrecord,'vf8-18')
536 exten => 50,4,Macro(voxforge-hrecord,'vf8-19')
537 exten => 50,5,Macro(voxforge-hrecord,'vf8-20')
538
539 [custom-voxforge-vf8-5]
540 include => custom-voxforge-phoneme-explain
541 exten => 50,1,Macro(voxforge-hrecord,'vf8-21')
542 exten => 50,2,Macro(voxforge-hrecord,'vf8-22')
543 exten => 50,3,Macro(voxforge-hrecord,'vf8-23')
544 exten => 50,4,Macro(voxforge-hrecord,'vf8-24')
545 exten => 50,5,Macro(voxforge-hrecord,'vf8-25')
546
547 [custom-voxforge-vf8-6]
548 include => custom-voxforge-phoneme-explain
549 exten => 50,1,Macro(voxforge-hrecord,'vf8-26')
550 exten => 50,2,Macro(voxforge-hrecord,'vf8-27')
551 exten => 50,3,Macro(voxforge-hrecord,'vf8-28')
552 exten => 50,4,Macro(voxforge-hrecord,'vf8-29')
553 exten => 50,5,Macro(voxforge-hrecord,'vf8-30')
554
555 [custom-voxforge-vf8-7]
556 include => custom-voxforge-phoneme-explain
557 exten => 50,1,Macro(voxforge-hrecord,'vf8-31')
558 exten => 50,2,Macro(voxforge-hrecord,'vf8-32')
559 exten => 50,3,Macro(voxforge-hrecord,'vf8-33')
560 exten => 50,4,Macro(voxforge-hrecord,'vf8-34')
561 exten => 50,5,Macro(voxforge-hrecord,'vf8-35')
562
563 [custom-voxforge-vf8-8]
564 include => custom-voxforge-phoneme-explain
565 exten => 50,1,Macro(voxforge-hrecord,'vf8-36')
566 exten => 50,2,Macro(voxforge-hrecord,'vf8-37')
567 exten => 50,3,Macro(voxforge-hrecord,'vf8-38')
568 exten => 50,4,Macro(voxforge-hrecord,'vf8-39')
569 exten => 50,5,Macro(voxforge-hrecord,'vf8-40')
570
571
572 [custom-voxforge-phoneme-explain]
573 ; note: I misspelled 'read' as 'reed' on purpose because flite was mispronouncing it.
574 exten => s,1,Setvar(last-prompt-priority=nan)
575 exten => s,2,GotoIf($[${num-complete} > 0]?1,1)
576 exten => s,3,Gosub(sub-voxforge-init|s|1)
577 exten => s,4,Gosub(sub-voxforge-instructions|s|1)
578 ;exten => s,5,Flite('Now, press 1 if you are ready to hear a phrase. Or press 2 to hear these instructions again.'|12)
579 exten => s,5,Background(${menu-dir}/1-hear-phrase-2-instructions-again)
580 exten => s,6,WaitExten(10)
581 exten => 1,1,GotoIf($["${last-prompt-priority}" = "nan"]?20)
582 exten => 1,2,System(rm ${RECORDED_FILE}.wav)
583 exten => 1,3,Goto(50|${last-prompt-priority})
584 exten => 1,20,Set(ran-instructions=1)
585 exten => 1,21,Goto(50|1)
586 exten => 2,1,GotoIf($["${last-prompt-priority}" = "nan"]?20)
587 exten => 2,2,Gosub(sub-voxforge-get-next|s|1)
588 exten => 2,20,Goto(s|1)
589 exten => 3,1,GotoIf($["${last-prompt-priority}" = "nan"]?20)
590 exten => 3,2,Gosub(sub-voxforge-hrecord-compare|s|1)
591 exten => 3,20,Goto(2|1)
592 ;exten => 4,1,Flite('OK, skipping this prompt and try ing the next one...')
593 exten => 4,1,Background(${menu-dir}/skip)
594 exten => 4,2,System(rm ${RECORDED_FILE}.wav)
595 exten => 4,3,Gosub(sub-voxforge-do-next|s|1)
596 ;exten => 10,1,Flite('Do they sound the same? Is your reecording free of laugh ing.... Cough ing.... Stutter ing.... Mispronunciations.... And background noise? Press 1 to try again. Press 2 to continue. Press 3 to hear your reecording again. Press 4 if the prompt is unclear and you would like to try a different reecording.'|1234)
597 exten => 10,1,Background(${menu-dir}/post-record)
598 exten => 10,2,WaitExten(10)
599 ;exten => i,1,Flite('Sorry. that is not a valid choice.'|1234567890)
600 exten => i,1,Background(${menu-dir}/not-a-valid-choice)
601 exten => i,2,GotoIf($["${last-prompt-priority}" = "nan"]?20)
602 exten => i,3,Goto(10|1)
603 exten => i,20,Goto(s|1)
604 exten => h,1,Gosub(sub-voxforge-unexpected-hangup-cleanup|s|1)
605
606 [macro-voxforge-hrecord]
607 exten => s,1,Setvar(last-prompt-context=${MACRO_CONTEXT})
608 exten => s,2,Setvar(last-prompt-priority=${MACRO_PRIORITY})
609 exten => s,3,Setvar(last-prompt-name=${ARG1})
610 ;exten => s,4,Flite('Here is sentence number $[${num-complete-this-round} + 1] out of 5:")
611 exten => s,4,Playback(${menu-dir}/sentence-number)
612 exten => s,5,SayNumber($[${num-complete-this-round} + 1],m)
613 exten => s,6,Playback(${menu-dir}/out-of)
614 exten => s,7,SayNumber(5,m)
615 exten => s,8,Playback(${prompts-dir}/audio/${last-prompt-name})
616 exten => s,9,Record(/tmp/voxforge-%d:wav|0|20|)
617 ;exten => s,7,Flite('OK, I will play the original phrase. Then the phrase you just recorded:'|1)
618 exten => s,10,Playback(${menu-dir}/compare)
619 exten => s,11,Gosub(sub-voxforge-hrecord-compare|s|1)
620 exten => h,1,Gosub(sub-voxforge-unexpected-hangup-cleanup|s|1)
621
622 [sub-voxforge-hrecord-compare]
623 exten => s,1,Playback(${prompts-dir}/audio/${last-prompt-name})
624 exten => s,2,Playback(${RECORDED_FILE})
625 exten => s,3,Goto(${last-prompt-context},10,1)
626 exten => h,1,Gosub(sub-voxforge-unexpected-hangup-cleanup|s|1)
627
628 [sub-voxforge-channel-limit]
629 exten => s,1,GotoIf(${DB_EXISTS(voxforge/channel-limit)}?3)
630 exten => s,2,Return()
631 exten => s,3,GotoIf(${DB_EXISTS(voxforge/num-active-channels)}?5)
632 exten => s,4,Set(DB(voxforge/num-active-channels)=0)
633 exten => s,5,GotoIf($[${DB(voxforge/num-active-channels)} + 1 > ${DB(voxforge/channel-limit)}]?8)
634 exten => s,6,Set(DB(voxforge/num-active-channels)=$[${DB(voxforge/num-active-channels)} + 1])
635 exten => s,7,Return()
636 ;exten => s,8,Flite("All lines are currently busy... Please try again later...")
637 exten => s,8,Playback(${menu-dir}/all-lines-currently-busy)
638 exten => s,9,Playback(vm-goodbye)
639 exten => s,10,Hangup()
640
641 [sub-voxforge-decrement-num-active-channels]
642 exten => s,1,GotoIf($[${DB(voxforge/num-active-channels)} - 1 < 0]?4)
643 exten => s,2,Set(DB(voxforge/num-active-channels)=$[${DB(voxforge/num-active-channels)} - 1])
644 exten => s,3,Return()
645 exten => s,4,Noop(----- Had to zero voxforge/num-active-channels! Must be a bug! -----)
646 exten => s,5,Set(DB(voxforge/num-active-channels)=0)
647 exten => s,6,Return()
648
649 [sub-voxforge-get-script-num]
650 exten => s,1,GotoIf(${DB_EXISTS(voxforge/script-num)}?4)
651 exten => s,2,Set(script-num=9)
652 exten => s,3,Return()
653 exten => s,4,Set(script-num=${DB(voxforge/script-num)})
654 exten => s,5,Return()
655
656 [sub-voxforge-increment-script-num]
657 exten => s,1,GotoIf($[${script-num} + 1 > ${max-script-num}]?4)
658 exten => s,2,Set(DB(voxforge/script-num)=$[${script-num} + 1])
659 exten => s,3,Return()
660 exten => s,4,Set(DB(voxforge/script-num)=1)
661 exten => s,5,Return()
662
663 [sub-voxforge-phoneme-finished]
664 exten => s,1,Set(num-complete-this-round=0)
665 ;exten => s,2,Flite('Congratulations! You have completed ${num-complete} phrases.')
666 exten => s,2,Playback(${menu-dir}/congratulations-have-completed)
667 exten => s,3,SayNumber(${num-complete},m)
668 exten => s,4,Playback(${menu-dir}/phrases)
669 ;exten => s,3,Flite('We appreciate your contribution. Please. Take a moment to complete 5 more.')
670 ;exten => s,4,Flite('Press 1 to complete 5 more. Or Press 9 to hang up.'|12)
671 exten => s,5,Background(${menu-dir}/continue-hangup)
672 exten => s,6,WaitExten(10)
673 exten => 1,1,Gosub(sub-voxforge-do-next|s|1)
674 ;exten => 9,1,Flite('Thank You for your contribution. Please call again soon.')
675 exten => 9,1,Playback(${menu-dir}/thank-you-call-again)
676 exten => 9,2,Playback(vm-goodbye)
677 exten => 9,3,Hangup()
678 exten => 9,4,Gosub(sub-voxforge-autosubmit|s|1)
679 ;exten => i,1,Flite('Sorry. that is not a valid choice.'|1234567890)
680 exten => i,1,Background(${menu-dir}/not-a-valid-choice)
681 exten => i,2,Goto(s|1)
682 exten => h,1,Gosub(sub-voxforge-autosubmit|s|1)
683
684 [sub-voxforge-get-next]
685 exten => s,1,System(mv ${RECORDED_FILE}.wav ${session-dir}/${last-prompt-name}.wav)
686 exten => s,2,System(grep -R --no-filename ${last-prompt-name} ${prompts-dir}/vf* >> ${session-dir}/prompts)
687 exten => s,3,Set(num-complete=$[${num-complete} + 1])
688 exten => s,4,Set(num-complete-this-round=$[${num-complete-this-round} + 1])
689 exten => s,5,GotoIf($[${num-complete-this-round} < 5]?20)
690 exten => s,6,Gosub(sub-voxforge-phoneme-finished|s|1)
691 exten => s,20,Gosub(sub-voxforge-do-next|s|1)
692
693 [sub-voxforge-do-next]
694 exten => s,1,GotoIf($[${last-prompt-priority} < 5]?2:3)
695 exten => s,2,Goto(${last-prompt-context}|50|$[${last-prompt-priority} + 1])
696 exten => s,3,Goto(custom-voxforge-selectscript|s|1)
697
698
699 [sub-voxforge-init]
700 exten => s, 1,GotoIf($[${ran-init} = 1]?2:3)
701 exten => s, 2,Return()
702 exten => s, 3,Set(session-ident=${STRFTIME(${EPOCH},GMT,%Y%m%d-%H%M%S)}-${UNIQUEID})
703 exten => s, 4,Set(session-dir=/voxforge-audio/work/${session-ident})
704 exten => s, 5,System(mkdir ${session-dir})
705 exten => s, 6,Set(year=${STRFTIME(${EPOCH},GMT,%Y)})
706 exten => s, 7,System(echo \'Copyright \(C\) ${year} Free Software Foundation\' > ${session-dir}/LICENSE)
707 exten => s, 8,System(cat /voxforge-code/LICENSE.append >> ${session-dir}/LICENSE)
708 exten => s, 9,System(cat /voxforge-code/README.prepend > ${session-dir}/README)
709 exten => s,10,System(echo \'Gender: ${gender}\;\' >> ${session-dir}/README)
710 exten => s,11,System(echo \'Age range: ${agerange}\;\' >> ${session-dir}/README)
711 exten => s,12,System(cat /voxforge-code/README.append >> ${session-dir}/README)
712 exten => s,13,Set(ran-init=1)
713 exten => s,14,Return()
714
715 [sub-voxforge-instructions]
716 exten => s, 1,GotoIf($[${ran-instructions} = 1]?2:3)
717 exten => s, 2,Return()
718 ;exten => s, 3,Flite('OK, this is how it works: I will reed a phrase to you. Then you will hear a beep.')
719 ;exten => s, 4,Flite('After the beep, please wait for 1 second.')
720 ;exten => s, 5,Flite('Then you say out loud the phrase you just herd.')
721 ;exten => s, 6,Flite('Wait another second and then press the pound key.')
722 ;exten => s, 7,Flite('Some phrases sound silly. Or strange.')
723 ;exten => s, 8,Flite('Please avoid Laugh ing... Cough ing... Stutter ing.... Mispronunciations....  And background noise.')
724 ;exten => s, 9,Flite('If any of these things happen. Please go back and reecord the phrase again.')
725 exten => s, 3,Playback(${menu-dir}/instructions)
726 exten => s, 4,Return()
727 exten => h,1,Gosub(sub-voxforge-decrement-num-active-channels|s|1)
728
729 [sub-voxforge-unexpected-hangup-cleanup]
730 exten => s,1,System(rm ${RECORDED_FILE}.wav)
731 exten => s,2,GotoIf($[${num-complete} < 5]?5)
732 exten => s,3,Gosub(sub-voxforge-autosubmit|s|1)
733 exten => s,4,Return()
734 exten => s,5,Noop(----- Only completed ${num-complete} so will not submit -----)
735 exten => s,6,System(mv ${session-dir} /voxforge-audio/partial/)
736 exten => s,7,Gosub(sub-voxforge-decrement-num-active-channels|s|1)
737
738 [sub-voxforge-autosubmit]
739 exten => s,1,System(echo \'${num-complete}\' > ${session-dir}/num-complete)
740 exten => s,2,System(mv ${session-dir} /voxforge-audio/complete/)
741 exten => s,3,System(echo \'-------------------- START ${session-ident} --------------------\' >> /voxforge-audio/submit.log)
742 exten => s,4,System(/voxforge-code/submit_audio.sh /voxforge-audio/complete/${session-ident})
743 exten => s,5,System(echo \'-------------------- STOP ${session-ident} --------------------\' >> /voxforge-audio/submit.log)
744 exten => s,6,Noop(----- Auto Submit of ${num-complete} phrases - Status:${SYSTEMSTATUS} APPERROR:${APPERROR} FAILURE:${FAILURE} SUCCESS:${SUCCESS} -----)
745 exten => s,7,Gosub(sub-voxforge-decrement-num-active-channels|s|1)
746
747 ; vim: set ts=8 sw=2 filetype=asterisk:
Note: See TracBrowser for help on using the browser.