html5发送语音问题及解决方案

需求:html5能发语音


1.考虑原生的webRTC

参考地址:http://www.cnblogs.com/jscode/p/3601648.html


navigator.getUserMedia({
    video: true,
    audio: true
}, onSuccess, onError);

但是webRTC需要的请求一定是https

放弃:


2.用微信的js-sdk

https://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html

可以录音

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前言: 目前智能家居迟迟未能商用的最大原因在于,整个行业缺乏统一的标准,上下游产品无法兼容。行业缺少一个标准制定者。 10 月 31 日,在“ 2014 腾讯全球合作伙伴大会”上,英特尔联合腾讯推出了软、硬件一体化的智能家庭网关解决方案,正式宣告布局物联网,进入智能家居领域。那么,英特尔能否担当这个标准制定者的角色?它的布局又能否促进智能家居商用化的到来?在回答这个问题之前,我给大家介绍一款非特定人类语音识别控制板,该设备可适用于智能家居、远程语音点歌系统、远程语音机器人控制等。 非特定人语音识别控制板介绍: 基于Arduino的语音识别控制板又称为ASR Board for Arduino,非特定人语音识别交互模块。(暂时只兼容Ansqi的SD卡) ASR Board 是一款基于Arduino的开源语音识别控制板,该模块只需要通过上位机软件发送指令即可设定要识别的关键词,不需要用户事先训练和录音,是一款高效的非特定人语音识别控制模块。 该模块每次识别可以设置35项候选识别句,每个识别句可以是单字,词组或短句,长度为不超过10个汉字或者38个字节的拼音串,可由一个系统支持多种场景。(注:关键词的条数和关键词的长度是对立的,若用户二次开发也可修改为50项候选识别句,每个识别句可以是单字,词组或短句,长度为不超过10个汉字或者79个字节的拼音串)。 ASR Board不但可以语音识别还支持播放AD4音频格式的语音文件,可实现语音交互功能,模块通过串口可以和Arduino或其他单片机通讯。模块将Arduino空闲的数字口和模拟口预留出来方便进行二次开发,模块还支持xbee和APC220无线模块,可实现远程语音控制。 注意:该产品使用时需要外接供电才能正常工作。 非特定人语音识别控制板实物展示: 非特定人语音识别控制板技术参数: Digital I/O 数字输入/输出端3~7(支持外部电源供电)。 Analog 模拟输入4~7 主控芯片:ATMEGA328 采用Arduino FTDI或USB Serial Light Adapter下载器下载程序。 支持XBee 无线数传模块 支持APC220无线数传模块。 支持外部麦克风输入和线路输出。 支持播放AD4音频格式 硬件选择Arduino UNO 输入电压:6~12V DC,推荐使用7.5V电源适配器或7.4V锂电池。 尺寸:长57mm× 宽47mm ASR 非特定人类语音识别控制板涉及到的重要技术资料: 语音识别模块LD3320介绍及开发应用:https://www.waveshare.net/wiki/LD3320_Board APC220无线数传模块购买及开发应用:https://www.dfrobot.com.cn/goods-235.html 语音芯片WTV020介绍:https://www.w1999c.com/yuying_show.asp?productid=24... WTV020更多资料下载:https://www.w1999c.com/xiaz.asp?BigClassID=38 XBEE-PRO开发套件介绍:https://www.doc88.com/p-697306843405.html 美国DIGI公司的XBee模块无线通讯实验:https://www.eefocus.com/zhang700309/blog/12-08/2840... 工作模式 ASR Board有三个工作模式:循环模式,口令模式和按键模式。工作模式通过ASR Board软件进行修改: 循环模式:循环语音识别。当D14灯亮起(ASR Board V2.1为D13)为进入语音识别状态,用户可立即说出设定好的关键词给控制板识别。 口令模式:例程中以“准备”为口令触发命令,若用户想修改为别的口令可在程序中的二维数组sRecog中将“zhun bei”替换即可(为口令触发模式的效果更好,建议口令触发命令的关键词设置为长一点或者添加垃圾关键词来降低误识别率)。当口令触发后,有个提示语音来说明口令已经触发,当D14灯亮起(ASR Board V2.1为D13)为进入语音识别状态,直到识别到关键词退出语音识别状态,再继续等待口令触发命令。 按键模式:在此模式下单击ASR Board 软件上的“按键触发”按钮或者在控制板的D3端(ASR Board V2.1为D4)接上按钮模块(需要使用到程序中被屏蔽的程序段)按下按钮,当D14灯亮起(ASR Board V2.1为D13)为进入语音识别状态,直到识别到关键词退出语音识别状态,再继续等待按键触发。 注:当ASR Board重新上电后和上电前使用的工作模式和波特率是相同的(当前的工作模式和波特率有语音提示,若刚上电未听到提示,可按以下控制板上“RST”的按钮
H5获取麦克风,发送语音,可以通过使用Web APIs中的getUserMedia()函数来实现。getUserMedia()函数允许网页应用程序访问用户的媒体设备,如麦克风、摄像头等。 首先,我们需要使用navigator.mediaDevices.getUserMedia()方法来请求用户授权。代码示例如下: navigator.mediaDevices.getUserMedia({ audio: true }) .then(function(stream) { // 获取到了用户的媒体设备 // 可以通过stream变量处理音频数据 }) .catch(function(error) { // 用户拒绝了授权或者设备不可用 // 可以根据error变量做相应处理 }); 在上述代码中,我们通过设置audio为true来请求用户的麦克风设备。如果用户同意授权,将返回一个stream流对象,我们可以通过这个流对象来处理音频数据。 接下来,在获取到了用户的麦克风设备后,我们可以使用Web APIs中的AudioContext对象来创建一个音频源。代码示例如下: var audioContext = new (window.AudioContext || window.webkitAudioContext)(); var sourceNode = audioContext.createMediaStreamSource(stream); 在上述代码中,我们首先创建了一个AudioContext对象,然后使用createMediaStreamSource()方法来创建一个音频源,将stream流对象作为参数传入。 最后,要发送语音,我们可以使用WebSocket等技术将音频数据发送给服务器。具体的发送过程与后端的实现方式相关,这里不再详述。 总结起来,H5获取麦克风并发送语音的过程,可以分为请求用户授权、获取音频流、创建音频源以及发送语音数据等步骤。通过合理利用Web APIs,我们可以在网页中实现获取麦克风并发送语音的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值