首先到官方示例里面找到这几个js文件
asrauthentication.js 文件里面config 换成自己在工作台申请的,里面用到了CryptoJS加密,示例里面提供了该js文件 因为我的项目里面有eslint语法检查有些语法会报错我就自己npm 下载了一个
config.js 没啥可说的就是把自己申请的key和secretId 替换成自己的,和上面的操作一样
根据官方示例 调用sdk 引入三个js文件,我是真的没看懂 这三个文件里面都没有这个类
WebAudioSpeechRecognizer(); 我上哪new去,后来看到webaudiospeechrecognizer.js这个里面有直接拿过来用。
可能是我的理解能力有问题,不过好在问题都解决了 废话不多说继续下一步
在speechrecognizer.js文件里面有一个循环的逻辑 因为eslint语法的问题 这个逻辑在项目里面也是报错 所以换了个方法
直接用forEach,终于解决报错了。。。
接下来开始在vue里面引用 首先引入这两个js文件, 声明一个全局变量 newWebAudio;亲测在data函数里面生成不好用,直接在script里面生成就好
params 里面是申请的key和一些设置参数,如果没有太多要求直接这样写就行,WebAudioSpeechRecognizer(params, false) 里面有两个参数 第一个是params 就是key和设置参数,第二个参数是否打印详细日志,因为我调试完了传的是false,需要日志的话改成true就行
划红线部分是两秒钟没有识别到说话就关闭语音识别,用不到的可以忽略
这个是结束语音识别的方法 需要在data里面声明两个变量
这部分逻辑是语音识别结束把结果发送给服务端,根据自己的业务逻辑去调整
newWebAudio.stop(); 是结束语音识别的方法,newWebAudio.destroyStream(); 是关闭麦克风的方法
好了 大功告成~~~