1.目的
实现页面输入语音,返回后台根据该语音进行相关搜索
2.步骤分解
1.前台传输语音到后台,2.语音转化为文字,3.文字根据nlp算法进行分词,4.根据分词进行相关搜索
3.每一步实现思路(基于springboot)
1.前台进行在线录音并返回给后台,这里我们可以用位老哥的库:
不过要注意一个问题,就是一定要用wav格式,因为我发现如果用mp3格式进行录制,会有很多噪音,不利于第二步的实现,文件名可以用主键来命名,这样就解决了冲突的问题。
2.语音转化为文字,这里有其实有很多技术支持,本人用的是阿里的智能语音:
https://help.aliyun.com/document_detail/84459.html?spm=a2c4g.11186623.6.567.162b5df0Y3iGA9
直接用它给的样例代码就行,至于token超时等要自己实现一下,阿里这个不是线程安全的,自己可以用一个单例模式来实现一下。
3.分词有很多免费的库可以用,java的话我用的是hanlp,安装使用也简单。
https://www.hankcs.com/nlp/hanlp.html
4.进行相关搜索
这里就要看你的场景了,本人只是做个毕设,所以就直接对数据库进行模糊查询,然后分页处理,这肯定是很捞的,生产环境应该不会这样做的,根据我已有的知识来说,感觉可以用elasticsearch等专门用于文本搜索的数据库,这样速度也快,因为%会让数据库的索引失效,你商品多肯定不能这样搞了。
以上每一步本人都有实现,欢迎交流