智能语音电费催费系统的设计与实现

(整期优先)网络出版时间:2022-10-19
/ 2

智能语音电费催费系统的设计与实现

郭舒洁,刘均燕

国网天津市电力公司城西供电分公司  天津  300110

摘要:近年来,我国的科技与经济发展迅速,数字化与智能化的概念已经渗入各个领域。随着电力事业的高速发展,电力客户的数量也呈现出几何的增长,给传统的电费催费工作带来了巨大的挑战。传统的电费催费工作是通过电力工作人员主动将电费账单交给住户,或是由电力客服向欠费用户拨打电话进行催费。这种催费方式耗费大量的人力与物力,但催费的效率并不高。本文对智能语音电费催费系统的设计与实现进行探讨。

关键词:电费催缴;语音合成;设计

一、系统主要功能

1.语音合成功能

语音合成功能是整个系统中的核心功能,为催费语音信息、公告语音信息的合成提供了基础且重要的支持。因此,保证该功能的稳定与正常使用,是整个系统能够提供可用服务的基础。语音合成功能要能够根据训练好的模型进行端到端语音合成,即输入文字信息,能够输出所合成的语音音频信息。

2.催费信息管理

查看与设置系统发送催费语音到用户端的时间配置,以及查询、新增、修改和删除欠费语音合成的模板信息,并可以设置选用当前使用哪个模板来合成催缴费语音音频文件。

3.语音公告管理

查找公告信息,新增公告信息,修改公告信息,删除公告信息,以及对某条公告进行即时推送操作。

4.催费功能

包括后台推送、即时推送以及查看推送记录功能。后台推送功能即将催缴电费的语音在设定的时间范围内推送至用户。即时推送功能能够单独选择一条或多条账单信息,对账单所属的用户立即发送催费语音推送。每条催费信息的推送都会产生一条相应的催费推送记录。使用者能够对催费推送记录进行查询,搜索具体用户所收到的催费记录。

5.账单信息管理

将账单管理集成到系统中,方便用电人员对账单与催费进行统一管理。主要包括账单信息的增、删、改、查功能。

6.用户信息管理

账单信息关联到每个用户的注册信息,因此系统要能够提供用户信息的管理功能。主要包括用户信息的增、删、改、查功能。

二、系统架构

主要使用常用的Web系统中的MVC模式,总体可以分为接入层、应用层、缓存层和持久层。接入层主要是通过浏览器渲染页面来展示数据,在本系统中主要采用了LayUI作为前端页面开发框架。应用层主要负责接收请求,进行业务逻辑处理并返回数据到请求方。本系统主要使用了SpringBoot作为系统后端的主要开发框架。对于语音合成模块,主要涉及Python语言。模型使用TensorFlow进行搭建,使用Flask作为轻量级后端对其进行部署。在主系统中,使用Nacos实现服务注册发现与配置管理,使用MyBatis作为持久层框架。同时使用RocketMQ作为消息中间件,实现异步消息通知,降低各模块耦合度。

缓存层主要使用了Redis。持久层使用MySQL数据库对数据进行存储。

三、关键技术

近年来,语音合成技术已经日趋成熟,包括Baidu提出的DeepVoice、ClariNet,Google提出的Tacotron、WaveNet和ParallelWaveNet,都具有相对良好的语音合成效果。Tacotron2是一个端到端的语音合成框架,也是当前最流行的语音合成框架之一,由谷歌于2018年提出。Tacotron2合成的语音具有良好的效果,其MOS(meanopinionscore)十分接近于真正的人声。模型主要由声谱预测网络和声码器两部分组成。其中声谱预测网络由编码器、解码器加上位置敏感注意力机制组成,整体是一个seq2seq模型。声码器则基于WaveNet实现。

频谱生成网络只能够生成语音的梅尔频谱特征表示,而要将特征表示恢复到能够播放的语音,还需要使用声码器进行恢复转换。在Tacotron2模型中,使用WaveNet作为声码器。Griffin_Lim能够通过帧之间的关系来估计相位信息,即不需要相位信息,仅知道幅度谱信息,就可从频谱进行重建波形。它拥有较高的音频合成质量,且算法本身较为简单,本质属于一个迭代算法。相比之下,WaveNet更为复杂,恢复音频的时间消耗更长;而Griffin-Lim算法简单,合成速度更快,合成的音频和WaveNet相比,质量差别在可接受范围内。因此,

对于本系统而言,更注重的是合成音频的速度,而不是微小的音频质量的好坏差距,故本系统采取Griffin-Lim作为声码器。语音合成是智能语音电费催费系统所要实现的一个核心功能,因此,本系统基于Tacotron2和Griffin-Lim算法来实现语音合成模块。

四、语音合成模块

语音合成模块是本系统最基础、最核心的模块,也是实现难度最大的模块。整个语音合成模块实际可以分为三个部分,分别是文本预处理前端、频谱生成网络和声码器。整体的架构与流程如图1所示。

图1  语音合成模块架构图

五、语音合成接口性能测试

语音合成接口是系统中重要的接口,故需要测试此接口语音合成所需消耗的时间情况,估算语音合成接口的性能情况。测试采用的工具为Jmeter。经测试,请求参数皆为一段字数为60字左右的催费文本信息。通过设置不同的请求线程数,查看语音合成接口的具体性能表现。具体的测试表格如表1所示。

表1  语音合成接口性能测试表

经测试发现,当线程数为1时,从请求接口到接口返回生成Base4编码处理的语音编码需要时间为11秒多,但观察Flask后台的具体日志信息发现,其中请求TensorflowServing预测网络获取梅尔频谱特征仅耗费近一秒的时间,具体为0.86秒,但Griffin-Lim将梅尔频谱声学特性恢复为音频耗费了10秒多,具体为10.74秒。当线程数为20时,从请求接口到接口返回生成的Base4编码处理的语音编码的平均时间为1分钟。经分析发现,由于训练好的声学预测网络模型部署在Docker的TensorflowServing容器上,而本机Docker中虚拟机分配的cpu数量只有4,因此最多只能同时对四句文字进行声学特征预测,若要执行更多的任务则会造成线程阻塞,需等待当前正在执行的任务完成。此外,Flask后台中的Griffin-Lim算法消耗的时间仍占据了大多数,平均耗费了接近50秒的时间。分析至此,也进一步印证了催费模块中先提前执行语音合成任务,再进行催费任务的正确性。

结束语

本文分析了传统电费催费方式存在的问题,以此为出发点设计并实现了一个智能语音电费催费平台,致力于解决传统催费方式存在的问题,为生活的智能化建设与社会的发展进步贡献一份力量。系统的设计能够符合软件设计的规范性,系统功能模块较多,有较大的工作量,并且具体实现设计的技术较多,存在一定的技术难度。经过长期的调研、分析与设计,以及对相关知识不断的学习与研究,加上反复的修改与测试,系统所有功能模块均已实现,具有一定的易用性、可用性。

参考文献

[1]郭嘉凯.RocketMQ:从阿里巴巴走向世界.软件和集成电路,2018,000(011):56-60

[2]李代立,陈榕.WebSocket在Web实时通信领域的研究.电脑知识与技术,2010,06(028):7923-7925

[3]吕宇琛.SpringBoot框架在web应用开发中的探讨.科技创新导报,2018,15(08):168-168