vue 接入腾讯语音识别sdk 开箱即用

首先到官方示例里面找到这几个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(); 是关闭麦克风的方法

好了 大功告成~~~

### 如何在 Vue.js 中集成语音识别 API 或库 要在 Vue.js 应用程序中实现语音识别功能,可以通过调用第三方服务(如科大讯飞的 WebAPI 接口)或者利用浏览器内置的 `Web Speech API` 来完成。以下是两种主要方式的具体说明: #### 使用科大讯飞的 WebAPI 实现语音识别 科大讯飞提供了强大的语音识别能力,并支持将其集成到 Vue.js 项目中[^2]。为了实现这一目标,需要按照以下方式进行开发。 1. **安装依赖项** 需要先引入科大讯飞的相关 SDK 或者直接通过 HTTP 请求访问其 RESTful API。如果使用的是前端封装好的工具包,则可以直接通过 npm 安装。 ```bash npm install @iflytek/iflytek-speech-sdk --save ``` 2. **创建 Vue 组件并初始化参数** 在组件的数据部分定义必要的状态变量以及回调函数来处理音频输入和返回的结果数据。 ```javascript export default { name: 'SpeechRecognition', data() { return { audioWorking: false, // 是否正在录音 recognitionResult: '' // 存储最终转换后的文本结果 }; }, methods: { startRecording() { this.audioWorking = true; const options = {}; // 自定义请求选项 window.iflytek.start(options).then((result) => { this.recognitionResult = result.text; // 获取转录的文字内容 this.audioWorking = false; }).catch(error => console.error('Error:', error)); } } }; ``` 3. **模板结构设计** 结合上述逻辑,在 HTML 模板中添加按钮触发录制过程,并显示当前的状态信息。 ```html <template> <div> <button :disabled="audioWorking" @click="startRecording"> {{ audioWorking ? '停止' : '开始录音'}} </button> <p v-if="recognitionResult">您说的内容是:{{ recognitionResult }}</p> </div> </template> ``` --- #### 利用 Web Speech API 进行本地化语音识别 除了借助外部服务商外,现代浏览器还自带了一套名为 *Web Speech Recognition* 的标准接口,允许开发者无需额外配置即可快速搭建基础版应用[^3]。 1. **检测设备兼容性** 开发前需确认用户的环境是否支持此特性。 ```javascript if ('webkitSpeechRecognition' in window) { alert('您的浏览器支持语音识别'); } else { alert('很抱歉,该功能无法在此环境中运行!'); } ``` 2. **实例化对象并与界面交互绑定** 创建一个新的 `webkitSpeechRecognition()` 对象实例,并监听事件更新视图中的数据显示。 ```javascript export default { name: 'NativeSpeechRecog', data() { return { transcriptText: '' }; }, mounted() { const recognition = new webkitSpeechRecognition(); recognition.continuous = true; // 设置为连续模式 recognition.interimResults = true; recognition.onresult = (event) => { for (let i = event.resultIndex; i < event.results.length; ++i) { if (event.results[i].isFinal) { this.transcriptText += event.results[i][0].transcript; } } }; document.querySelector('#record-btn').addEventListener('click', () => { if (!this.isListening) { recognition.start(); // 启动麦克风拾音操作 } else { recognition.stop(); // 停止收听动作 } }); } }; ``` 3. **UI 层面调整** 提供简单易懂的操作入口给终端用户控制整个流程。 ```html <template> <section> <textarea readonly>{{ transcriptText }}</textarea><br/> <button id="record-btn">{{ isListening ? '结束记录':'点击说话'}}</button> </section> </template> ``` --- #### 总结 无论是采用成熟的商业解决方案还是探索原生的技术路线,都可以有效地增强产品的互动性和智能化水平。具体选择取决于项目的实际需求和技术栈现状等因素考虑决定。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值