说明
本接口包含两类功能
- 语音文件的播放和停止
- 语音告警相关文件的生成
注意
- 有时无法播报语音,提示:
- 分析:html的audio对象缺省是不激活的,必须用户先鼠标点击过,或者输入过文本。否则,声音将无法播报。
- 解决方法:
方法1:通过登录登入系统,可正常播报语音。原因:登录时肯定输入了用户密码或者使用了鼠标,登录后的画面本质上还是同一个html页面,此时相当于做了激活,因此会播报语音。此种方法存在问题:如果登录后再刷新主页面,此时可能无法播报
方法2:界面上放一个“开启语音报警功能“的按钮,让用户点一下
示例
报警语音播报配置界面
示例画面:报警语音播报配置与生成语音文件.page
播报语音文件方法
- pkaudio.playSound(audioFilePath, isLoop)。开始播报某个语音文件
- audioFilePath。要播报的语音文件名称,需要是服务端文件。
- 系统缺省有一个报警语音文件可以直接使用:/dist/sound/default_alarm.mp3
- 可以上传文件到/page/upsnd文件夹下的文件
- isLoop:是否循环播放。true表示循环播放该文件,false表示仅仅播放一次就停下
- 示例:
- pkaudio.playSound("/dist/sound/default_alarm.mp3",true) 播放缺省文件,并循环一直播放
- pkaudio.playSound("/page/upsnd/xxxx.mp3",false) 播放上传的语音文件/page/upsnd/xxxx.mp3,仅播放一次
- audioFilePath。要播报的语音文件名称,需要是服务端文件。
- pkaudio.stopSound() 停止播放正在进行的语音文件
- 不需要参数
- 停止后,下次新报警来临,还是会继续播报
生成语音告警文件方法
规则
- 未配置规则,则不产生报警声音播报
- 语音告警,是在发生报警时,筛选其中符合条件的部分,进行语音播报,提醒用户。
- 当报警恢复时,无论播放多少次,都会立即停止
- 一个示例:管理员,一跑道北下滑 超上限告警,请及时处理
- 通常播放有多个部分组成,每部分是一个单独的 文件名。可组成的部分包括:文件名。通常包括:{播放前缀}+{对象名称}+{播放后缀}。可组成的部分包括:
- 播放后缀,文件位置和名称固定:/page/tts/other/suffix.wav 可变的名称
- 播放前缀,文件位置和名称固定:/page/tts/other/prefix.wav
- 播放内容。可以包括这几部分:
- 对象名称,/page/tts/objectname/{实际对象名}.wav
- 报警类型,/page/tts/alarmtype/{实际告警类型名}.wav
- 用户名称,/page/tts/username/{实际登录的用户名(非登录名)}.wav
- 系统名称,/page/tts/sysname/{实际系统名}.wav
- 播放后缀,文件位置和名称固定:/page/tts/other/suffix.wav
- 上述几个不同的类型,可以根据配置组合,组合,规则:
- 播放具体内容规则,配置规则在表t_alarm_voice_rule的content_body字段中,如:对象名称+报警类型
- 播放前缀名称,在t_alarm_voice_rule的content_prefix,需要输入以上四种类型中的一个,如:用户名称
- 播放后缀文本,在t_alarm_voice_rule的content_suffix,需要输入一个任意需要的文本,如:请快速处理
- 以上示例组合结果就是:
- {用户名称}+{对象名称}+{报警类型}+{播放后缀},实际播报可能是:播放后缀,实际播报可能是:
- 时俊普,一跑道北下滑 超下限告警 请快速处理
- 对象名称+报警类型
- 语音告警播报过滤规则
- 播放时间过滤规则,在t_alarm_voice_rule的time_rule字段,在每天该时间段才会播报报警,如:6:00-23:00
- 如果未配置规则,则全天任何时段都播放
- 报警类型过滤,在t_alarm_voice_rule的alarmtype_filter字段,每个报警类型可以单独配置播放次数
- 格式:报警类型,多个报警类型以逗号隔开。如:格式:报警类型N:播放次数M,多个报警类型以逗号隔开。如:
- 设备开机:1,设备关机:1,设备预警:0,设备告警:1
- 1表示播放一次,0表示播放0次,N表示播放N次,-1表示一直循环播报
- 当报警恢复时,无论播放多少次,都会立即停止
- 如果该字段为空,表示所有类型报警都会播报;不为空,则仅仅播报配置进来的报警类型,其他报警类型不播报
- 当报警恢复时,无论播放多少次,都会立即停止
- 格式:报警类型,多个报警类型以逗号隔开。如:格式:报警类型N:播放次数M,多个报警类型以逗号隔开。如:
- 报警优先级播放规则,t_alarm_voice_rule的priority_filter。
- 多个优先级的报警都允许播报,则必须输入多个优先级数值,以逗号隔开,如:1,2,3,5,10
- 未输入任何优先级,则表示所有优先级均播报报警声音
- 播报次数,t_alarm_voice_rule的repeattimes
- 为空或1,表示报警播报1次
- 为0表示不播报
- 为正整数,表示播报这些次数
- 为-1,表示循环播报,循环次数:99999999
- 播放时间过滤规则,在t_alarm_voice_rule的time_rule字段,在每天该时间段才会播报报警,如:6:00-23:00
方法
- pkaudio.generateAndDownloadTts(text, voiceFileName,sex,voiceFileName) 根据一个文本,生成一个文件名的语音
- text,文本内容,如“一跑道北航向报警”
- voiceFileName,生成的文件名,需要以.wav结束。如果为空,则生成tts.wav
- sex,女生或者男生,women/man
- voiceFileName,生成的文件名,需要以.wav结束。如果为空,则生成tts.wav
- 示例:
- pkttspkaudio.generateAndDownloadTts("一跑道北航向报警", "womentest.wav","test.wavwoman");
- 将会自动打开一个下载窗口,将test.wav下载到浏览器中
pkaudio.generateVoiceFileByText(text, voiceFileName, sex,voiceFileName) 根据一个文本,生成一个语音文件名,并存在服务端(不下载)
- text,文本内容,如“一跑道北航向报警”
- voiceFileName,生成的文件名,需要以.wav结束。如果为空,则生成tts.wav
- sex,女生或者男生,women/manvoiceFileName,生成的文件名,需要以.wav结束。如果为空,则生成tts.wav
- 生成的文件存在: /page/tts/other
- 示例:
- pkalarmaudiopkaudio.generateVoiceFileByText("一跑道北航向报警一跑道北航向DME", "womentest.wav","test.wavwoman");
- 将会自动打开一个下载窗口,将test.wav下载到浏览器中
pkaudio.generateVoiceFileByType(objectType,sex,callback) 根据对象类型名称,生成所有该对象类型对应的语音文件,并存在服务端。执行时间较长,因此是异步执行,先返回,在回调函数中再得到结果
- objectType,对象类型,支持如下字符串表示的类型:
username,所有系统配置的用户名,各自生成一个声音文件
存放在目录:/page/tts/username
文件名称:{用户名}.wav
如:/page/tts/username/时俊普.wav
alarmtype,所有数据库中配置的每个报警类型,都会生成一个声音文件
存放在目录:/page/tts/alarmtype
文件名称:{alarmtype}.wav
如:/page/tts/alarmtype/超下限预警.wav
objectname,为每个配置的对象,生成一个声音文件
存放在目录:/page/tts/objectname
文件名称:{objectname}.wav
如:/page/tts/objectname/一跑道南下滑.wav,/page/tts/objectname/一类运行.wav
sysname,为每个配置的子系统,生成一个声音文件
存放在目录:/page/tts/sysname
文件名称:{sysname}.wav
如:/page/tts/sysname/五跑道南下滑DME.wav
- undefined或空字符串(生成所有以上几种类型,username、alarmtype、objectname、sysname中的一种)
- sex,女生或者男生,women/man
- callback,生成文件结束后的回调函数。
- result,该参数为结果,result.obj.msg为成功时的提示,一般为:共生成%d文件
- 特别说明:在产生某种类型声音的同时,会:
- 根据数据库表t_alarm_voice_rule的content_prefix的内容,生成对应的语音前缀文件。如果该列内容是上述4中对象的一种,则产生固定规则文件;否则产生一个文本对应的语音文件(规则见上面),文件放在:/page/tts/other/prefix.wav
- 根据数据库表t_alarm_voice_rule的content_suffix的内容,生成对应的语音后缀文件。后缀只能是一个文本对应的语音文件,文件放在:/page/tts/other/suffix.wav
- 示例:
- pkaudio.generateVoiceFileByType("objectname", "womenwoman");
- pkaudio.generateVoiceFileByType("alarmtype", "womenwoman");
- pkaudio.generateVoiceFileByType("username", "womenwoman");
- pkaudio.generateVoiceFileByType("sysname", "womenwoman");
- pkaudio.generateVoiceFileByType("", "womenwoman");
- objectType,对象类型,支持如下字符串表示的类型: