介绍
因为项目需要,使用到了微信小程序和百度的语音接口 现在将项目中的一个小模块拿出来单独分享.
技术关键字
- 微微信小程序
- 百度语音接口
- nodejs,express
- fluent-ffmegp
环境
- windows 10
- vs code 1.20.1
- 微信小程序开发工具 1.02.1802270
- 花生壳-提供域名和内容穿透-用于方便本地远程调试微信小程序
考虑到业务并不复杂,所以就将所有的代码都放在一个页面就可以了(wxml,wxss,js统称为一个页面)
文件目录
页面
index.wxml
<button type='default' bindtouchstart='startrecorderHandel' bindtouchend="sendrecorderHandel">开始8录音</button> <view> 你说的话是: <view> {{msg}} </view> </view>
index.js
// 录音对象 const recorderManager = wx.getRecorderManager(); function sendRecord(src) { var obj = { // 已经在花生壳中映射到本地端口-3001 url: "http://xxx:34306/post", filePath: src, name: "fffile", header: { 'Content-Type': 'application/json' }, success: function (result) { var data = JSON.parse(result.data); // msg 为最终语音识别的字符串 var msg = data.result; // 获取当前页面对象 var page = getCurrentPages()[0]; page.setData({ msg: msg }); }, fail: function (err) { console.log(err); } }; wx.uploadFile(obj) } // 结束录音的时候触发 recorderManager.onStop((res) => { // 获取文件路径-提交到后台-后台发送到百度 sendRecord(res.tempFilePath); }) recorderManager.onError((res) => { console.log("error", res); }); Page({ /** * 页面的初始数据 */ data: { msg: "" }, // 按下按钮的时候触发 startrecorderHandel() { // 开始录音 recorderManager.start({ }); }, // 松开按钮的时候触发-发送录音 sendrecorderHandel() { // 结束录音 recorderManager.stop(); }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { wx.authorize({ scope: 'record' }) } })
后台nodejs接口文件目录
index.js
var express = require('express'); var app = express(); var fs = require('fs'); var Multiparty = require('multiparty'); // 转码工具 var ffmpeg = require('fluent-ffmpeg'); var AipSpeechClient = require("baidu-aip-sdk").speech; // #region 创建百度授权 // 设置APPID/AK/SK var APP_ID = "xxx"; var API_KEY = "xxx"; var SECRET_KEY = "xxx"; // 百度请求对象 var client = new AipSpeechClient(APP_ID, API_KEY, SECRET_KEY); // 新建一个对象,建议只保存一个对象调用服务接口 app.post('/post', function (req, res, next) { //生成multiparty对象,并配置上传目标路径 var form = new Multiparty.Form({ uploadDir: 'uploads/' }); //上传完成后处理 form.parse(req, function (err, fields, files) { var filesTemp = JSON.stringify(files, null, 2); var inputFile = files.fffile[0]; var uploadedPath = inputFile.path; var command = ffmpeg(); command.addInput(uploadedPath) // 将1.aac 变为1.wav .save(uploadedPath.slice(0, -3) + "wav") .on('error', function (err) { console.log(err); }) .on('end', function () { // 将录音文件转为buffer var voice = fs.readFileSync(uploadedPath.slice(0, -3) + "wav"); var voiceBuffer = new Buffer(voice); // 发送buffer到百度接口 返回语音对应的字符串 client.recognize(voiceBuffer, 'wav', 16000).then(function (result) { console.log('<recognize>: ' + JSON.stringify(result)); res.end(JSON.stringify(result)); }, function (err) { console.log(err); }); }); }); }); var server = app.listen(3001, function () { var host = server.address().address; var port = server.address().port; console.log('Example app listening at http://%s:%s', host, port); });
启动
下载项目
git clone https://github.com/itcastWsy/wx_baidu.git
使用微信小程序打开 微信前台 目录
配置 后台的接口地址
打开 微信nodejs后台 后台文件夹
输入 npm i
安装依赖
输入 命令 启动项目 npm run start
手机微信扫一扫小程序 - 语音输入 “大吉大利”
注意事项
当使用微信开发工具 发送的语音文件的格式是 aac,但是使用手机微信发送的格式是 m4a 这里直接处理的是m4a 转码工具是ffmpeg
关于花生壳,如果不使用也可以,只不过需要自己代码提交到有外网域名的服务器上接口,注意 开发阶段需要打开小程序开发工具内的 不校验安全域名….的选项
当调用百度接口的时候,需要填写上自己的相关信息
以上所述是小编给大家介绍的微信小程序和百度的语音识别接口详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]