说明

本接口包含两类功能

  • 语音文件的播放和停止
  • 语音告警相关文件的生成

示例

报警语音播报配置界面

示例画面:报警语音播报配置与生成语音文件.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,所有系统配置的用户名,各自生成一个声音文件

        • 存放在目录:/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", "woman");
      • pkaudio.generateVoiceFileByType("alarmtype", "woman");
      • pkaudio.generateVoiceFileByType("username", "woman");
      • pkaudio.generateVoiceFileByType("sysname", "woman");
      • pkaudio.generateVoiceFileByType("", "woman");
  • 无标签