说明
本接口包含两类功能
注意
- 有时无法播报语音,提示:

- 分析: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,仅播放一次
- pkaudio.stopSound() 停止播放正在进行的语音文件
生成语音告警文件方法
规则
- 未配置规则,则不产生报警声音播报
- 语音告警,是在发生报警时,筛选其中符合条件的部分,进行语音播报,提醒用户。
- 当报警恢复时,无论播放多少次,都会立即停止
- 一个示例:管理员,一跑道北下滑 超上限告警,请及时处理
- 通常播放有多个部分组成,每部分是一个单独的 文件名。通常包括:{播放前缀}+{对象名称}+{播放后缀}。可组成的部分包括:
- 播放前缀,文件位置和名称固定:/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字段,每个报警类型可以单独配置播放次数
- 格式:报警类型,多个报警类型以逗号隔开。如:
- 如果该字段为空,表示所有类型报警都会播报;不为空,则仅仅播报配置进来的报警类型,其他报警类型不播报
- 当报警恢复时,无论播放多少次,都会立即停止
- 报警优先级播放规则,t_alarm_voice_rule的priority_filter。
- 多个优先级的报警都允许播报,则必须输入多个优先级数值,以逗号隔开,如:1,2,3,5,10
- 未输入任何优先级,则表示所有优先级均播报报警声音
- 播报次数,t_alarm_voice_rule的repeattimes
- 为空或1,表示报警播报1次
- 为0表示不播报
- 为正整数,表示播报这些次数
- 为-1,表示循环播报,循环次数:99999999
方法
- pkaudio.generateAndDownloadTts(text, voiceFileName,sex) 根据一个文本,生成一个文件名的语音
- text,文本内容,如“一跑道北航向报警”
- voiceFileName,生成的文件名,需要以.wav结束。如果为空,则生成tts.wav
- sex,女生或者男生,women/man
- 示例:
- pkaudio.generateAndDownloadTts("一跑道北航向报警", "test.wav","woman");
- 将会自动打开一个下载窗口,将test.wav下载到浏览器中
pkaudio.generateVoiceFileByText(text, voiceFileName, sex) 根据一个文本,生成一个语音文件名,并存在服务端(不下载)
- text,文本内容,如“一跑道北航向报警”
- voiceFileName,生成的文件名,需要以.wav结束。如果为空,则生成tts.wav
- sex,女生或者男生,women/man
- 生成的文件存在: /page/tts/other
- 示例:
- pkaudio.generateVoiceFileByText("一跑道北航向DME", "test.wav","woman");
- 将会自动打开一个下载窗口,将test.wav下载到浏览器中
pkaudio.generateVoiceFileByType(objectType,sex,callback) 根据对象类型名称,生成所有该对象类型对应的语音文件,并存在服务端。执行时间较长,因此是异步执行,先返回,在回调函数中再得到结果
- objectType,对象类型,支持如下字符串表示的类型:
username,所有系统配置的用户名,各自生成一个声音文件
alarmtype,所有数据库中配置的每个报警类型,都会生成一个声音文件
objectname,为每个配置的对象,生成一个声音文件
sysname,为每个配置的子系统,生成一个声音文件
- 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", "woman");
- pkaudio.generateVoiceFileByType("alarmtype", "woman");
- pkaudio.generateVoiceFileByType("username", "woman");
- pkaudio.generateVoiceFileByType("sysname", "woman");
- pkaudio.generateVoiceFileByType("", "woman");