2008/06/18
在使用Natural Access研制IVR应用系统时,提示语音生成工具使用american.tbl文件(其编译的规则表采用的是标准的美式英语)存放的规则生成数字消息,并把生成的包含日期、时间、数字、金额的提示语音直接发送给vcePlayList。默认的日期格式采用的是MM/DD、MM/DD/YY或 MM/DD/YYYY。但是,许多国家采用的是不同的日期表示格式。例如,加拿大官方日期格式采用的是yyyy/mm/dd。为了使用美国标准以外的日期格式,您需要修改源规则文件american.ptx中定义的SAYDATE函数,它用于指示应用系统采用合适的日期格式。随后你需要重新编译修改后的american.ptx文件,生成american.tbl 规则文件,具体步骤如下面实例所述。应用实例:修改日期读取格式为“YYYY/MM/DD”
把american.ptx 文件中的SAYDATE 函数的日期格式定义为 “MM/DD/YYYY”:
;find the slash character, pass prev 2 chars to month decode
FIND FORWARD 1 "/" LEFT 2 EXCLUDE FOUND CALL MONTH
;find the slash character, pass following 2 chars to day decode
FIND FORWARD 1 "/" RIGHT 2 EXCLUDE FOUND CALL DAY
;find a second slash, if found, pass next to digits for year
FIND FORWARD 2 "/" RIGHT 4 EXCLUDE FOUND GOTO YEAR ELSE EXIT
;all done
为了把日期格式修改为 “YYYY/MM/DD”,你需要修改 SAYDATE函数:
;find the slash character, pass prev 4 chars to digits for year
FIND FORWARD 1 "/" LEFT 4 EXCLUDE FOUND CALL YEAR
;find the slash character, pass following 2 chars to month decode
FIND FORWARD 1 "/" RIGHT 2 EXCLUDE FOUND CALL MONTH
;find the slash character, pass following 2 chars to day decode
FIND FORWARD 2 "/" RIGHT 2 EXCLUDE FOUND GOTO DAY ELSE EXIT
; all done
对.ptx文件的修改完成后,你需要运行mkprompt工具把规则文本文件(.ptx)编译成提示音规则表(.tbl):
mkprompt source[.ptx] [dest[.tbl]]
其中:
source[.ptx] 是需要编译的源文本文件。如果没有指定文件后缀,那么默认的文件后缀是.ptx 。
[dest[.tbl]]是可选的输出文件名。如果没有指定输出文件名,那么将采用源文件名并添加.tbl 作为文件名后缀。如果没有指定输出文件后缀,则默认采用.tbl 作为后缀。
例如,你可以执行如下命令把修改后的american.ptx文件编译成提示音规则表:
mkprompt american.ptx
命令执行后,将生成american.tbl 编译规则表。
你可以通过重新录制american.vox 文件来对提示语音进行修改,它默认存放的是标准美语提示语音消息库。由vcePlayList指定提示语音文件并打开文件,由vceBuildPromptList指定消息队列的输出。
注意:为了在语音文件使用最新生成的.tbl文件,你需要把american.vox 和 american.tbl文件存放在同一个文件夹中。
测试修改后的提示音规则
你可以采用testpmpt工具来测试修改后的提示音规则表。该工具可以在不需要提前重新录制语音消息的条件下,对新的提示音规则进行测试。在运行该工具时,规则表(例如:america.tbl)和语音文件(例如:american.vox)将被装载。随后,你被提示输入文本,提交给提示音生成器进行处理。例如,如果你采用的是加拿大的日期格式,输入“2008/3/11”,提示音生成器返回的处理结果如下:
c:>testpmpt -p american
Natural Access Test Prompt Utility V 1.2 (Dec 11 1997)
Prompt table = american.tbl
Prompt text from american.vox
Enter text: 2008/3/11
two thousand eight March eleventh
NMS