基于深度学习的数字语音识别小程序
本文将介绍一款简易数字语音识别系统的开发,可用作课程设计、或本科毕业设计开发的参考材料。
该系统以python作为开发工具,采用深度学习+flask+微信小程序为框架开发的一款数字语音识别小程序,适用于初学者了解深度学习、微信小程序以及简易服务器的开发,整个开发过程简介、快速。可作为课程设计、毕业设计的开发使用和参考。**本项目将上传该项目的所有源码(包括深度学习、flask服务器代码、以及数据集处理代码)、设计文档、ppt、演示视频。
深度学习模型
2018年1月,科大讯飞经过研究提出来一种基于深度学习的全序列卷积神经网络DFCNN的语音识别框架,如图2.1.2所示。采用该方法的语音识别模型在语音识别准确率上取得较高的突破,通过采用语谱图作为输入,避免了信息在频域和时域上的丢失,并结合CTC技术,实现了端到端的声学模型训练,并且和BLSTM-CTC 系统相比,在系统性能方面获得了15%的提升。
有关该模型的具体内容就不做详细的介绍,感兴趣的开源直接区阅读作者的论文或者查看本项目上传的说明文档第三章节的内容
系统框架 <深度学习+flask+微信小程序>
话不多说,直接进行该框架系统的设计介绍**(本文主要进行该系统的设计介绍,关于该项目的代码集详细的设计文档将在在文章末尾将给出连接)**
系统功能
(1)前端系统设计应能实现语音的录制和识别结果的显示,并正对语音录制过程中的异常状态进行处理;
(2)构建前端和后台通讯的服务器,实现对前端功能的监听和接收录制的语音文件,以及识别结果的返回;
(3)系统服务器能够对语音录制后的语音文件进行编码处理,将其转换为CNN-CTC声学模型可识别的语音文件,并临时保存到规定文件夹中,用作后期模型训练的语料数据;
(4)系统服务器在启动时只对模型进行一次加载,避免每次有语音数据时都需重新加载模型的弊端,减少了内存的使用量。
系统设计流程
对于一个语音识别系统,不仅要能够对语音进行录制,同时还需要能够对语音进行识别及显示,实现该过程的整个流程如图。
前端设计
前端系统主要采用小程序的形式来呈现,利用小程序开发软件进行语音识别前端系统的设计开发。由于小程序在登录时需获取用户头像信息,用于后期语音识别交互,在用户进入小程序之前,设置一个登录授权界面,既获取用户头像信息
前端交互方式
在确定好系统信息交互方式后,需进行语音录制相关功能的设计,其相关的功能主要有一下几点:
(1)语音录制按钮的弹出;
(2)录制出错信息提示;
(3)语音发送失败信息提示。
服务器设计
服务器主要实现前端微信小程序与后端的通信,所以服务器的设计以本地计算机为载体,在同一个局域网下进行信息传递和系统检测,关于服务器的设计开发采用Python编码语言,调用第三方Flask模块库构建一个轻量级的web服务器。
采用Flask构建的服务器在功能上应包含以下几点:
(1)能够对前端用户登录时的信息进行采集,并判断小程序是否成功连接上服务器;
(2)能接受前端所发送的语音信息,对其进行格式转换,并保存到零时的地址文件中,用于语音识别以及作为语音训练的素材;
(3)服务器在启动时,自动的加载声学模型和训练数据;
(4)当有语音传入时自动的调用以加载的声学模型进行语音识别,并将识别结果解码为文字信息返回到前端系统;
(5)服务器应设置有错误监测机制,当语音在识别过程中出现错误,或识别终止时,向用户返回错误提示信息,告知用户需重新录制语音进行识别。
服务器的具体工作流程如图所示
系统测试
在确定语音录制过程无误后,将对语音的识别性能进行测试,分别在移动端录制五段语音,查看每段语音的识别情况,其结果如图所示