更新记录
v1.1(2024-10-31) 下载此版本
第一版本
平台兼容性
Vue2 | Vue3 |
---|---|
√ | × |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 3.7.10 app-vue | × | √ | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|
× | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
说明
这个只是自己为了方便自己打卡花了两三天研究的小工具,都是采用了开源免费的框架,具体实现思路
1、前端使用uniapp写了个小模版,结合 nbVoiceRecord长按录音动画组件 这个组件改了一个长按录音的效果;
2、将录音完成后的文件转换成了 base64发到了后端进行语音识别,语音识别用的是百度开源框架,PaddleSpeech,很不错的一个开源框架,可以进行二次自主训练,我是通过自己构建的 docker
镜像进行的服务搭建,它可以进行 语音识别(ASR)
以及语音合成(TTS)
而且还支持流式识别和合成,不过我没有用,测试了一下,流式的识别率效果不是很好,速度倒是挺快;
3、语音识别出来文字后,将文字发送给 Rasa
进行解析,Rasa是国外谷歌开源的对话式Ai,有很强的自然语言理解(NLU)能力,在经过几次的训练后,已经教会它可以识别我要打卡的意图,它的主要原理也就是,将我们传过去的文本进行理解,从中识别出来意图以及实体的提取,如:帮我打一下卡
那最终提取出来的意图就是我定义的 clockin
意图,然后可以自定义意图对应的action
,那最终效果就是,发送相关文字信息过去后,它就会到后端自动帮我完成打卡功能完成后回复到前端;
4、定义action
以及实现相关代码逻辑都是通过python完成的,不过实际上也很简单,基本思路也就是在python里面写一些其它业务系统的api调用就可以了,最终执行完业务代码后,就会返回对应的结果信息,都可以自定义,比如:已经打卡成功了~
等;
5、最终Rasa返回后,就可以再将其文字再转换成语音进行播放就可以了。
相关资源
- PaddleSpeech资源地址:GitHub - PaddlePaddle/PaddleSpeech
- Paddle官网:飞桨PaddlePaddle-源于产业实践的开源深度学习平台
- SpeechServer接口说明:PaddleSpeech Server RESTful API
- Rasa官网:Rasa官网