WEB语音告警软件的设计与实现
扫描二维码
随时随地手机看文章
1系统设计
1.1当前现状
1.1.1缺乏基本的用户定制功能
传统的流水式事件报警方式会造成大量非重要信息把一些重要信息淹没,从而给值班员监控系统造成很多麻烦。E8000调度员界面(MMI)的实时告警模块,能提供丰富的界面配置选项,来定制实时告警的展示内容。而E8000WEB系统的告警模块设计过于简单,缺乏基本的用户定制能力,只是简单地把所有事项全部发送到WEB客户端,这就导致WEB系统的告警模块实用价值不高。
1.1.2不能产生语音告警
E8000WEB系统的使用对象主要为非调度值班人员,如系统部自动化等专业的专责、技术员。工作性质决定了使用对象不会一直注视浏览器窗口,这样本专业关注的告警信息就无法方便地获得。而如果能提供语音告警功能,则能有效解决这个问题。由于实现技术等原因,E8000WEB系统没有提供语音告警功能。
1.1.3可能存在事项遗漏
E8000WEB系统跟调度员界面的实现不同,采用定时请求数据的方式,并且每个周期只读取指定数量的告警,超出该数量,则会被丢失。
1.2总体目标
1.2.1提供灵活方便的定制功能
实现配置选项对话框,为用户提供丰富的本节点关注事项的定制能力。只有配置的告警等级、告警来源、告警类型、告警动作等事项,才会被推送到本节点的事项窗口,这样就大大提高了告警的使用价值。
1.2.2提供语音告警
实现类似语音告警功能。不需配置特别的语音卡,充分利用办公电脑的媒体设备,采用通用技术,提供效果良好、成本低廉的实现技术方案,提供用户具有较高可用性的告警语音播报功能。
1.2.3采用告警推送机制
摒弃WEB传统的定时请求方式,采用WEB平台的实时信
息推送框架,提供告警信息高效实时的推送功能,大大提高了WEB告警的实时性。另外,采用有效的缓冲机制,彻底避免了WEB系统实时告警信息遗漏问题。
1.3总体架构
采用JNI/JNA技术与E8000实时系统告警服务器通信,实时获取EMS系统的告警事项信息:采用循环队列等内存处理技术,缓存并发的告警数据,同时为大量WEB在线用户提供告警服务,从而大大减少对EMS实时系统的服务请求,避免出现由于增加本系统而导致EMS实时系统负荷过重的异常情况(图1)。
采用Dojo的Cometd技术,实现告警事项的WEB推动功能(图2)。
2系统功能
2.1E8000告警基本概念
(l)告警定义:电力系统的实时信息和系统本身的重要运行信息。
(2)告警类型:事故、遥信变位、厂站工况、保护动作、网络工况、系统资源等:事项:用户登录和退出、数据库修改、图形编辑、确认等操作。
(3)告警动作:指一些最具体的告警表现,例如语音告警、推画面告警、打印告警、中文短消息告警。
(4)告警来源:电网实时稳态的告警信息、电网分析应用的告警信息、系统运行监控的告警信息。
(5)告警分级:一级事故、二级异常、三级越限、四级变位、五级告知。
(6)告警状态:报警/确认/返回。
2.2服务器设计
服务器端分两大部分:实时事项客户端、Tomcat服务器。
实时事项客户端采用C++编写,调用E8000平台ALM模块,该模块采用类似订阅/推送方式,参数为4ALMA一一plUsl一date函数,负责接收ALMD服务器实时推送来的告警。该方法将接收的事项保存到一个循环队列中(长度为1万条记录)
Tomcat服务器包括s一srng/DwR/IbatrU框架,相关Uesvrce(JAVA语言编写)通过JNA/JNI和实时事项客户端交互,获得C++语言负责维护的实时事项队列。
浏览器前端将本节点关注的事项配置信息,通过DwR发给后台Uesvrce,该Uesvrce负责实时将告警信息推送到各前端浏览器。
2.3语音告警设计
不同于E8000系统的设计思想,本项目采用微软的语音API,该API由wrndowUs一eechsDK提供。E8000系统调度员界面的语音告警采用讯飞语音引擎,若WEB系统采用该引擎,则需要在所有的WEB用户端下载安装讯飞语音包,不仅导致了使用不便利,同时也大大增加了项目成本。本项目利用该SAPI采用VC语言实现一个Actrvex控件,而微软SAPI是xP/wIN7及以上版本预装的语音处理模块,这样就大大简化了本项目实现语音告警功能的难度。
2.4告警语音的改善与定制
SAPI提供输出当前常用的语音处理引擎有讯飞语音TTSl.0、sV0x、三星TTS等,这些引擎各有特点,都能较好地满足我们的需要,但这些sDK都需要安装。若用于电力调度值班台,我们可以采用以上语音引擎,若用在WEB场景,则不适合。所以如上所述,我们采用了微软的TTS语音引擎(The Microsoft Speech API)。在使用过程中,我们发现该TTS对有些字符、数字、单词、字符串等语言单位的发音处理不够完美,和人工发音有些差异,我们通过引入语音处理转换规则,来改善TTS的发音效果,使之更接近于人工发音。
2.5告警推送设计
本项目在服务器及前端2处采用了订阅/推送机制。实时告警的获取采用E8000平台的ALM包,它采用订阅/推送模式实现。前台告警以往都采用前端定时请求的方式,这种方式简单易行,但大多性能不够理想。我们采用DojoCometd及JETTY框架,实现了一个高效的前台实时信息推送应用。
3结语
本软件采用JNI/JNA技术与E8000实时系统告警服务器通信,实时获取EMS系统的告警事项信息:采用循环队列等内存处理技术,缓存并发的告警数据,同时为大量WEB在线用户提供告警服务,大大减少了对EMS实时系统的服务请求,实现了告警事项的WEB推送功能。