终于毕业了——
整理一下毕业设计的开发过程和一些经验,基本都是自己摸索的所以走了挺多弯路。具体的代码就不放出来了,写的可难看了
我的毕设是要做一个基于DeepSpeech2的智能客服系统,老师给的建议是以大型商场为背景(类似于万达、万象城那种),然后首先就开始考虑大型商场中客服的一个使用场景。
根据个人经历,商场一般都会在一楼的入口或者中心广场处有咨询台,可以用智能客服替代掉人工进行回复的这个过程,准确度和效率上都更好。除此之外系统还可以集成商场内的其他需求,比如说检索商场的其他信息等,形成一个一站式的线上服务中心。(虽然开题的时候想的很好,但是后面做起来缩减了很多x
关于系统要在哪个平台上使用,其实最合适的是小程序。因为涉及到语音输入,手机是最方便的,但是我对小程序并没有java那么熟,所以还是选择了使用javaweb的形式。智能客服这个功能会要使用到DeepSpeech2模型和向量检索,要用到python。
采用了前后端分离的开发方式,前端页面在vscode上开发,后端在idea上用springboot框架开发的,python是用的pycharm,搭建了一个flask服务器(一开始想直接在springboot中用python脚本,后来发现因为要反复调用变量所以行不通)
先在百度自己的AI Studio上进行一些功能的测试,想着先把没接触过的核心的功能完成了,其他比较熟悉的部分可以做起来更快。
参考了一些官方提供的项目:
训练DeepSpeech2语音识别模型
PaddleNLP Pipelines搭建FAQ智能问答系统
然后是搭建前端页面,去 jQuery插件库 里找了一些参考,图标和一些矢量图在 iconfont阿里巴巴图标库 ,还用到了一些图标字体 Font Awesome图标字体。
然后就是一边做页面一边想功能一边设计数据库,这点做的不好,没有提前把所有功能定下来,导致东一个想法西一个想法,堆到最后做不完,又老改数据库。
web端没办法像手机一样长按输入,我用的是最基础的input file传入文件,但问题是使用表单传文件是没办法用ajax的,所以为了让音频文件能顺利到flask服务器试了很多方法,最后还是直接用表单action传,但是数据是正确传入了,返回的数据没办法显示(只能显示在新窗口),所以又试了用iframe接收,接收又不知道为什么一直显示不出来……最后用ajaxForm监听才实现,看到音频转文字的结果出现在输入框都要高兴哭了TT
智能客服系统的回答功能需要对用户输入的问题检索出回答。最好的做法应该是将用户的问题进行分词,分析出关键内容,然后再在答案库中检索,但是技术上来说实在太复杂了……这还需要涉及到知识图谱之类的知识,做毕设实在来不及了,所以用了最简单粗暴的向量化,把问题向量化,然后去数据库里找最接近的。
数据库里的信息本来也应该从网站上可以爬就好,应该是商场内的商家上传自己的信息,系统爬取到这些信息,作为智能客服系统的回答,但是也太困难了()爬取之后,怎么样提取有效信息、怎么样把信息构建成合适的回答,这些我现在都做不到。最终是采用的管理员录入信息的方式。