h5开发语音播报功能

一、使用window自带的api,但是手机浏览器多数不支持,兼容性差(不推荐)

1.使用到了window的speechSynthesis属性,如下如1.1

                                                                        图1.1

 2.主要用到了播报方法speak()和取消播报方法cancel(),然后初始进入该页面定时播报一次,如果进入该播报页面没有停留太久则使用定时器可以直接取消掉,全部代码如图2.1

                                                                               图2.1

二、使用uniapp自带的api,兼容性几乎覆盖绝大部分手机浏览器(推荐使用)

1.使用uniap的createInnerAudioContext()方法创建语音实例,给实例加上autoplay属性以及语音播放链接src,具体可以参考uni.createInnerAudioContext() | uni-app官网

核心完整代码如下图所示:

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你可以使用百度语音识别的API,在uniapp中使用它来实现H5端的语音识别功能。首先,你需要在百度AI开放平台上注册一个账号,并且创建一个应用来获取API Key和Secret Key。然后,你可以使用uniapp提供的uni.request函数来请求API,并且将语音数据发送给百度服务器进行识别。以下是一个简单的示例代码: ```javascript // 获取API Key和Secret Key const apiKey = '你的API Key'; const secretKey = '你的Secret Key'; // 构建认证字符串 const authStr = `Basic ${Base64.encode(`${apiKey}:${secretKey}`)}`; // 定义识别函数 function recognizeVoice(voiceData) { uni.request({ url: 'https://vop.baidu.com/server_api', method: 'POST', header: { 'Content-Type': 'audio/wav;rate=16000', 'Authorization': authStr }, data: { format: 'wav', rate: 16000, channel: 1, cuid: '自定义用户ID', speech: voiceData.toString('base64'), len: voiceData.length }, success: (res) => { console.log(res.data); } }); } // 获取录音数据 uni.getRecorderManager().onStop((res) => { const voiceData = res.tempFilePath; recognizeVoice(voiceData); }); ``` 这里使用了uni.request函数来请求API,并且将语音数据转换成base64字符串发送给服务器进行识别。需要注意的是,请求头中的Content-Type需要设置为audio/wav;rate=16000,表示发送的是16000采样率的wav文件。同时,API Key和Secret Key需要进行Base64编码并且添加到请求头中的Authorization字段中进行认证。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值