1. 技术路线:
(1) 系统的基本框架的搭建与前端设计
使用PHP、Java等编程语言搭建系统的基本框架,注册域名,利用虚拟主机放置站点和应用组件并提供必要的站点功能、数据存放和传输功能,使用HTML、CSS、JavaScirpt对前端进行设计。
该系统建成后,将为流调员提供用户登录、被调查人员的信息录入和下载、 自动拨出被调查人员电话和以及通过文字和语音两种方式存储通话内容。
搭建过程如图1-1所示。

图1-1 系统搭建流程图
(2) 语音合成模块
由于流调过程中与被调查人员进行短暂的对话,需要在尽量短的时间内提出明确的问题,所以语音合成部分在本项目中是较重要的一个环节。
语音合成技术主要包括语言分析部分和声学系统部分。语言分析部分主要进行文本结构和语种的判断,使文本标准化。如将阿拉伯数字转化为文字,这样便于进行文字标音等后续工作。接下来还需文本转音素阶段和句读韵律预测阶段。声学系统部分,本项目拟采用Tacotron2——基于深度学习的端到端语音合成模型。相比其一代Tacotron,
Tacotron2使用的是普通的LSTM和Convolution
layer且decoder每一步只生成一个frame,并增加了一个5层CNN来精调mel-spectrogram。
语音合成技术路线具体如图2-1所示。

图2-1语音合成技术路线
(3) 语音识别模块
本项目拟将平台与被调查人的通话内容利用语音识别技术,主要讲将被调查人的语音信号通过预处理和特征提取,并与声学模型匹配,最终以文本信号的形势输出。
语音识别技术大致分为以下过程:语音输入、预处理、特征提取、声学模型处理和语言模型处理。具体过程如图3-1。

图3-1语音识别系统流程图
在语音识别过程中的对于语音信号的预处理,可以通过傅里叶变换。但傅里叶变换要求输入的信号是平稳的,而语音在宏观上看来是不平稳的,此时,就需要对语音信号进行分帧处理。信号分帧是将信号数字化后的语音信号分成短时信号作为识别的基本单位,利于分析其特征参数。
在进行语音识别之前,需要根据语音信号波形提取有效的声学特征。特征提取的性能对后续语音识别系统的准确性极其关键,因此需要具有一定的鲁棒性和区分性。本项目拟采用梅尔频率倒谱系数(MFCC)作为特征参数,因其计算简单,在低频部分也有良好的频率分辨能力,在噪声环境下具有一定的鲁棒性等特点。
在语音识别中的声学模型和语言模型部分,本项目拟采用深度神经网络中的循环神经网络(Recurrent Neural Network
,RNN)来对模型进行训练。在RNN的网络结构中,当前时刻的输出依赖记忆与当前时刻的输入,对于语音信号的上下文相关性建模非常有优势。但RNN存在因梯度消失和梯度包扎而难以训练的问题,于是在引入门控机制的长短时记忆(long
short-term memory,LSTM)网络的梯度传播更加稳定。LSTM-RNN对语音的上下文信息的利用率更高,识别的准确率与鲁棒性也均有提升。
LSTM网络引入门控机制(Gating Mechanism)来控制信息传递的路径。其中三个“门”分别为输入门
、遗忘门
和输出门
。这三个门的作用为:
1) 遗忘门
控制上一个时刻的内部状态
需要遗忘多少信息;
2) 输入门
控制当前时刻的候选状态
有多少信息需要保存;
3) 输出门
控制当前时刻的内部状态
有多少信息需要输出给外部状态
。
当
=0,
=1时,记忆单元将历史信息清空,并将候选状态向量
写入。但此时记忆单元
依然和上一时刻的历史信息相关。当
=1,
=0时,记忆单元将复刻上一时刻的内容,不写入新的信息。
LSTM网络的循环结构单元如图3-2所示。其计算过程为:
1) 首先利用上一时刻的外部状态
和当前时刻输入的
,计算出三个门以及候选状态
;
2) 结合遗忘门
和输入门
来更新记忆单元
;
3) 结合输出门
,将内部状态的信息传递给外部状态
。

图3-2 LSTM网络的循环单元结构
通过LSTM循环单元,整个网络可以建立较长距离的时序依赖关系。公式如下:

其中
为当前时刻的输入,
和
为网络参数。
传统的语言模型n-gram时一种具有强马尔科夫独立性假设的模型,但会因为训练语料不足或者词组使用频率过低等常见因素,测试集中可能会出现训练集中未出现过的词或某个子序列未在训练集中出现,这将导致n-gram语言模型计算出的概率为零,这种情况被称为未登录词(out-of-vocabulary,OOV)。此外,n-gram模型还有泛化能力弱,缺乏长期依赖的问题。
随着深度学习的发展,语言模型的研究也开始引入深度神经网络。从n-gram模型可以看出当前词组出现依赖于前方的信息,因此很适合用循环神经网络(Recurrent Neural Network ,RNN)进行建模。RNNLM(基于RNN的语言模型,Language
Model)中隐含层的循环能够获得更多的上下文信息通过在整个训练集上优化交叉熵来训练模型,使得网络能够尽可能建模出自然语言序列与后续词之间的内在联系。其优势在于相同的网络结构和超参数可以处理任意长度的历史信息,能够利用神经网络的表征学习能力,极大程度避免了未登录问题。
语言模型的性能通常采用困惑度(PPL)进行评价。PPL定义为序列的概率集合平均数的倒数,其公式定义如下:

PPL越小表示在给定历史上出现下一个预测词的概率越高,该模型的效果越好。
(4) 自然语言处理模块
本项目拟利用自然语言处理技术让平台更加“智能”,通过分析于被调查人员的回答结果,调整回答或者下一个要提问的问题。
自然语言处理技术时实现人机语音交互的重要手段,其主要技术包括分词、词性标注、命名实体识别、依存句法分析、语义角色标注和特定语境语义解析。技术处理如图4-1所示。

图4-1 自然语言处理技术
其中命名实体识别时指从语言文本中提取具有特定类别的实体名词。实体命名识别时机器语言信息检索、语义查询、语义分析等的基本过程,其处理效果直接影响到整体的语义理解和分析。在本项目中,平台需要准确识别出被调查人员的行程轨迹,针对此,命名实体识别的主要对象是各类地点名称。
基于具体应用语境的自然语言处理,主要包括基于事物组合图谱寻找语言语境中类似事物组合场景、用类似事物场景的属性理解相应话语场景、调取知识图谱活事物组合图谱进行深入数据分析。处理流程如图4-2所示。

图4-2 基于具体语境的自然语言处理
通过应该语境的分析,可以对语义图画所展现的内容进行联想,这类联想会扩展语义的数量,如果将语境所以事物按照可能性组合进行分类,可以提取相关类似场景,进行归纳分析后,得到最有可能表达的含义,从而实现人类语言到机器语言的筛选和识别过程。在语境中的事物出现多种组合时,应当具体分析每一种语义的组合形式,通过纠错机制,对具体理解有误的语言进行纠正,替换成正确的语义,可以实现语境分析引擎的快速搜索和智能识别。
(5) 数据库模块
由于本项目主要的存储内容为被调查人的基本信息和行程记录,所以需要一项功能强大的数据库系统来存储。
Oracle数据库系统是数据库领域领先地产品,但由于其属于闭源产品同时价格昂贵,所以本项目选择MySQL数据库作为系统的存储工具。MySQL数据库是免费的开源项目,更适合大学生进行学习与运用。MySQL安装完成后所占用的内存远小于Oracle所占用的内存,并且Oracle越用所占的内存也会变多,可能会给系统后期增加负担。且MySQL为用户提供了多种数据库存储引擎,可以适用于不同场合,可以处理每天访问量超过数亿的搞强度的搜索Web站点且拥有支持跨平台、运行速度快、支持面向对象、安全性高等特点,选择其为本项目的存储系统十分合适。
结合数据库的Web站点开发流程为:将网站的内容存储在MySQL数据库中;然后使用PHP通过SQL插叙获取这些内容并以HTML格式输出到浏览器中显示。或者将用户在表单中输出的数据,通过PHP程序中执行SQL查询,将数据保存在MySQL数据库中。也可以在PHP脚本中接受用户在网页上的其他相关操作,再通过SQL查询对数据库中存储的网站内容进行管理。
结合数据库的Web站点开发流程如图5-1所示。

图5-1结合数据库的Web站点开发流程
(6) 网络信息安全模块
目因需要存储大量被调查人员的基本信息,其中包括姓名、联系方式、身份证号码、居住地址等重要的个人信息,所以需要维护被调查人员的信息安全也是十分重要的一部分。本项目拟采用基于SSL协议的VPN和防火墙等网络安全技术,对系统和数据库进行加密。
SSL的体系结构中包含两个协议子层,其中底层是SSL记录协议层(SSL Record Protocol Layer),高层是SSL握手协议层(SSL HandShake Protocol Layer)。SSL协议体系结构如图6-1所示。

图6-1 SSL协议体系结构图
SSL记录协议层的作用是为高层协议提供基本的安全服务。SSL记录协议针对HTTP协议进行了特别的设计,使得超文本的传输协议HTTP能够在SSL运行。记录封装各种高层协议,具体实施压缩解压缩、加密解密、计算和校验MAC等于安全有关的操作。
SSL握手协议包括SSL握手协议(SSL HandShake Protocol)、SSL密码参数修改协议(SSL Change Cipher Protocol)和SSL警告协议(SSL Alert Protocol)。握手层的这些协议用于SSL管理信息的交换,允许应用协议传送数据之间相互验证,协商加密算法和生成密钥等。
SSL VPN是一种基于SSL协议的VPN实现,VPN的安全性和独立性依赖于包封装技术,利用SSL协议加密算法和身份认证,构建安全的虚拟专业网络。SSL VPN网络结构如图6-2所示。

图6-2 SSL VPN网络结构示意图
SSL VPN服务器工作过程:客户端(办公电脑主机)向SSL
VPN服务器发送https请求;SSL VPN服务器验证客户端发送的身份信息以及证书,
通过 SSL协议的握手创建SSL安全隧道;认证模块成功确认客户端身份后,生成全局唯一的不可逆的 cookie,并将其发送给访问控制模块;访问控制模块根据用户的角色权限给用户分配可访问服务列表,客户端据此可以访问相应的信息平台;客户端访问信息平台内容,SSL VPN服务器通过鉴权认证等方式建立安全透明的隧道,并把信息平台的数据定向发送到客户端电脑。
在该系统中,流调员登录 VPN 客户端,输入预先分配好的账户,SSL
VPN服务器收到请求后验证账户,建立与账户对应的信息平台服务器与客户端主机之间的安全隧道。而非法用户没有SSL
VPN账户,则无法登录信息平台,其数据包被阻挡在防火墙和SSL VPN服务器之间,无法进入信息平台服务器所在的网络,从而保证了安全性。
(7) 神经网络训练模块
在实际应用中,RNN常常面临训练方面的难题;尤其随着模型深度不断增加,使得RNN并不能很好地处理长距离的依赖。Jacobian矩阵的乘积往往会以指数级增大或者减小,其结果时使得长期依赖特别困难。
通常使用 BPTT算法来训练RNN,对于基于梯度的学习需要模型参数
和损失函数L之间存在闭式解,根据估计值和实际值之间的误差来最小化损失函数,那么在损失函数上计算得到的梯度信息可以传回给模型参数并进行相应修改。
假设对于序列
,通过
将上一时刻的状态
映射到下一时刻的状态
。T时刻损失函数
关于参数的梯度为:

根据链式法则,将Jacobian矩阵
分解如下:

循环网络若要可靠地存储信息,
,也意味着当模型能够长距离依赖z时,其本身也处于梯度消失地情况下。随着时间跨度增加,梯度
也会以指数级收敛于0.当
时,发生梯度爆炸地现象,网络也陷入局部不稳定。
2. 拟解决的问题:
(1) 语音识别结果的准确度达到90%以上;
(2) 声学模型和语言模型的训练、优化;
(3) 自然语言处理过程的训练、运用;
(4) 对被调查人员的信息的加密处理。
3. 预期成果:
(1) 该平台能准确地拨打被调查人的电话,并自动调整通话内容,获取到需要的信息;
(2) 能准确地识别出与被调查人的通话内容,将其转化为文字信号反馈给流调员;
(3) 被调查人员的信息得到加密处理,需要提取权限;
(4) 申请软件著作权。