微信录音

voice: {
    //开始录音
    startRecord: function () {
        var recordTimer = setTimeout(function () {
                wx.startRecord({
                        success: function () {
                            console.log("recordsuccess")
                        },
                        cancel: function () {
                            alert('用户拒绝授权录音');
                        }
                    }
                );
            }
            , 300)
    },
    // 停止录音
    stopRecord: function (fun) {
        var recordTimer = setTimeout(function () {
        wx.stopRecord({
            success: function (res) {
                var localId = res.localId;
                if (typeof fun == 'function')
                    fun(localId)
            }
        })},100)
    },
    // 监听自动停止录音
    onRecordEnd: function (fun) {
        wx.onVoiceRecordEnd({
            // 录音时间超过一分钟没有停止的时候会执行 complete 回调
            complete: function (res) {
                var localId = res.localId;
                if (typeof fun == 'function')
                    fun(localId)
            }
        });
    },
    // 开始播放
    startPlay: function (localId) {
        wx.playVoice({
            localId: localId // 需要播放的音频的本地ID,由stopRecord接口获得
        });
    },
    // 暂停播放
    pausePlay: function (localId) {
        wx.pauseVoice({
            localId: localId // 需要暂停的音频的本地ID,由stopRecord接口获得
        });
    },
    // 停止播放
    stopPlay: function (localId) {
        wx.stopVoice({
            localId: localId // 需要停止的音频的本地ID,由stopRecord接口获得
        });
    },
    // 监听自动停止播放
    onPlayEnd: function (fun) {
        wx.onVoicePlayEnd({
            success: function (res) {
                var localId = res.localId; // 返回音频的本地ID
                if (typeof fun == 'function')
                    fun(localId)
            }
        });
    },
    // 上传录音
    upload: function (localId, fun) {
        wx.uploadVoice({
            localId: localId, // 需要上传的音频的本地ID,由stopRecord接口获得
            isShowProgressTips: 1, // 默认为1,显示进度提示
            success: function (res) {
                var serverId = res.serverId; // 返回音频的服务器端ID
                if (typeof fun == 'function')
                    fun(serverId)
            }
        });
    }

},
其实作为H5想要做语音识别,自认为还说有各种弊端得,同时还是微信公众号里面,如果小程序得话,或许会简单一点,但是这里是在公众号里面开发,在这个过程中查阅个各种资料,其实里面得东西都大同小异,但是大多数并不全, 首先微信公众号里面得H5开发语音录入,试过各种方法,由于是java渣渣,页面技术只是了解简单得,因此在使用标签得时候,本身并不能适用于当前得需求,因此最后只能选择了微信自带得录音功能,使用微信提供的接口,(具体得接口使用还是去看微信接口得使用) 由于使用微信得接口得话,首先要上传到它得服务器上面去(虽然也有本地得文件储存id,但是好像并没有用),这里就涉及到了一个serverid,这个值是存在于微信临时素材库得id,后期要用它来获取录音得文件。 通过微信提供得获取临时素材文件得接口,得到了文件(具体方法网上一搜一大堆,后期我也会将完整得代码放进资源里面),但是这里有一个坑得问题,他的格式为.amr得格式,但是最后的目的是转换为文字,因此这里涉及到了格式转换 主要用了现成得技术,也是通过下载资源获取得jar以及实现得方法,将.amr转换为了MP3格式 然后就就是最后一部了,将mp3得音频文件转换为文字,我这里用的是讯飞得技术,当然百度得也可以, 其实整个需求得这个流程已经完成了,但是不得不说里面遇到得坑,由于是渣渣,除了人们总说的,转换为mp3得时候会报N/A得错误,我还遇到了unkowFormat这个错误。 这里只是记录一下自己在查询资料时没有一个符合自己需求得资料,同时也希望以后有这样需求得人,可以将思路捋的更加清楚,也可以进行交流.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值