微信小程序和百度的语音识别接口

介绍

因为项目需要,使用到了微信小程序和百度的语音接口 现在将项目中的一个小模块拿出来单独分享.

技术关键字

  1. 微信小程序
  2. 百度语音接口
  3. nodejs,express
  4. fluent-ffmegp

环境

  1. windows 10
  2. vs code 1.20.1
  3. 微信小程序开发工具 1.02.1802270
  4. 花生壳-提供域名和内容穿透-用于方便本地远程调试微信小程序

微信小程序

考虑到业务并不复杂,所以就将所有的代码都放在一个页面就可以了(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 () {// 将录音文件转为buffervar 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);
});

启动

  1. 下载项目

    git clone https://github.com/itcastWsy/wx_baidu.git
  2. 使用微信小程序打开 微信前台 目录

  3. 配置 后台的接口地址

    这里写图片描述

  4. 打开 微信nodejs后台 后台文件夹

  5. 输入 npm i 安装依赖

  6. 输入 命令 启动项目 npm run start

    这里写图片描述

  7. 手机微信扫一扫小程序 - 语音输入 “大吉大利”

这里写图片描述

注意事项

  1. 当使用微信开发工具 发送的语音文件的格式是 aac,但是使用手机微信发送的格式是 m4a 这里直接处理的是m4a 转码工具是ffmpeg

  2. 关于花生壳,如果不使用也可以,只不过需要自己代码提交到有外网域名的服务器上接口,注意 开发阶段需要打开小程序开发工具内的 不校验安全域名….的选项

    这里写图片描述

  3. 当调用百度接口的时候,需要填写上自己的相关信息

这里写图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/18189.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

你想不到,韩国女团最喜欢的英文单词是这些

如果你也想赚钱&#xff0c;实现财务自由&#xff0c;但接触不到优质的人脉和资源&#xff0c;可以到公June浩&#xff1a;成长home&#xff0c;发"资源" &#xff0c;就会看到我吐血整理的168条保姆级零基础吸金秘籍&#xff0c;跟着我一起亲历毕业5年、创业3年、从…

太逼真!这个韩国虚拟女团你追不追?

“她们看上去太像真人了”&#xff0c; 韩国虚拟女团MAVE的首支MV和打歌舞台引发网友阵阵惊呼。现在&#xff0c;她们的舞蹈已经有真人在挑战了。 这一组虚拟人的“逼真”倒不在脸&#xff0c;主要是MAVE女团的舞台动作接近自然&#xff0c;不放近景看&#xff0c;基本可以达到…

NBA球星数据可视化分析-FineBI

目录 一、实验&#xff08;实训&#xff09;目的 二、实验&#xff08;实训&#xff09;原理或方法 三、仪器设备、材料 四、实验&#xff08;实训&#xff09;步骤 五、实训记录及结果 <---------------------------------木易白驹----------------------------------…

【第十一届泰迪杯数据挖掘挑战赛】A 题:新冠疫情防控数据的分析 思路+代码(持续更新)

【第十一届泰迪杯数据挖掘挑战赛】A 题&#xff1a;新冠疫情防控数据的分析 思路代码&#xff08;持续更新&#xff09; 问题背景解决问题代码下载数据分析Task1Task2Task3Task4 问题背景 自 2019 年底至今&#xff0c;全国各地陆续出现不同程度的新冠病毒感染疫情&#xff0c;…

【数据博彩】如何使用大数据机器学习预测NBA比赛结果?

引言 伴随着大数据时代的来临&#xff0c;机器学习、深度学习、人工智能等越来越多的出现在我们的视野中&#xff0c;数据技术正在颠覆着包括体育和博彩在内的各行各业&#xff0c;本文着手于使用大数据机器学习预测NBA比赛结果&#xff0c;希望给相关行业从业者和爱好者带来启…

用Python采集球员信息,成功预测到了球赛胜负?

前言 嗨嗨&#xff0c;最近看球赛的朋友多吗 emm怎么说&#xff0c;我对这个虽然兴趣不是很大 但是还是想跟朋友赌赌&#xff0c;自己对这些球员也不是很熟悉&#xff0c;索性叫我的好同事帮我用Python采集了各国球员的一些信息&#xff0c;没料到竟预测成功了&#xff01; …

大火的ChatGPT能为自动驾驶带来什么?

/导读/ 最近的科技圈&#xff0c;大家都被微软推出的ChatGPT刷屏&#xff0c;作为工智能公司OpenAI于2022年11月推出的聊天机器人&#xff0c;其能够通过学习和理解人类的语言来进行对话&#xff0c;还能根据聊天的上下文进行互动&#xff0c;甚至能完成撰写邮件、视频脚本、文…

神器Ai工具箱全集,不用找了你想要的Ai都在这里。

周报生成器 https://weeklyreport.avemaria.fun/zh AI写作 README 生成器 https://readme.rustc.cloud/zh AI写作 AI做决定 https://rationale.jina.ai AI助手 AI自动后端 https://www.autobackend.dev AI代码 AI上色 https://palette.fm AI图设 AI简历 https:…

AI面试必刷算法题 附答案和解析 --持续更新中

面试中发现很多同学一股脑优化、润色项目经历&#xff0c;但聊到基本的算法&#xff0c;反而会一脸懵X&#xff0c;得空整理下算法题给大家&#xff0c;希望对你有帮助。 1. tail(head(tail(C))) ( ) 已知广义表: A(a,b), B(A,A), C(a,(b,A),B), 求下列运算的结果:&#xff08…

google大模型Bard下场【谷歌版本的ChatGPT】

本文需要会可学上网&#xff0c;不会直接拉到底部 google大模型开始下场了https://bard.google.com/,点击链接用谷歌账户登录就能使用 步骤 第一步&#xff1a;如果你有谷歌账号&#xff0c;你所做的就只是登录【一个谷歌账号&#xff0c;可以帮你在大部分地方免登录&#x…

当 chatGPT 被职场 PUA ,笑麻了

大家最近是不是被 chatGPT 刷屏了&#xff1f;简单来说&#xff0c;chatGPT 是一个智能聊天引擎。 那 chatGPT 和小爱同学、 siri 有什么区别呢&#xff1f; 如果体验过的朋友&#xff0c;能感受到区别还是很大&#xff0c;chatGPT 的智能表现过于优秀&#xff0c;远远超过了这…

关于ChatGPT中文版,看看Openai官网怎么说!

目前&#xff0c;OpenAI官网上仅提供了英文版的ChatGPT模型和API。这意味着官方只提供了英文对话生成的支持和资源。对于中文用户来说&#xff0c;OpenAI官网上并没有官方发布的ChatGPT中文版本。 然而&#xff0c;尽管OpenAI官网未发布ChatGPT中文版&#xff0c;一些第三方开发…

您遇到过网页抓取时被封IP的情况吗?

​网站如何检测网络爬虫&#xff1f; 网络爬取和网络抓取相辅相成&#xff0c;对于公共数据收集来说至关重要。电子商务企业会使用网络抓取工具从各个网站收集新数据。然后&#xff0c;将抓取到的信息用于改进业务和营销策略。 对于那些不知道如何避免抓取网站时被封IP的人来说…

检查IP或端口是否被封

遇到IP连接超时&#xff0c;想要确认是否被封&#xff0c;可通过以下几个方式检验&#xff1a; IP可用性检测工具 - Tools大全在线工具 Ping, mtr, dig and TCP port check from multiple locations 端口扫描 - 站长工具

爬虫ip在使用中被封了如何解决 ?

爬虫是最近几年非常热门的互联网抓取技术&#xff0c;能够帮助数据公司进行大数据分析&#xff0c;极大的降低人工成本。 那么在爬虫进行批量采集的时候&#xff0c;有时候ip地址也会被封&#xff0c;这具体是什么原因引起的&#xff1f; 为了能够高效的爬虫工作&#xff0c;…

如何预防服务器IP被封

一:被流量攻击封堵 在日常使用服务器时&#xff0c;一定要及时的注意网络流量攻击&#xff0c;一旦自己的网站遭到攻击&#xff0c;而服务器的IP是没有防御的&#xff0c;可能就会导致服务器IP遭到封堵&#xff0c;IP被封堵&#xff0c;一般情况下是封堵3个小时左右&#xff0…

IP被封检测和端口被封检测方法分享

国外VPS的IP被封一直是比较热门的话题&#xff0c;我们在使用国外VPS搭建网站或者学习Linux技术时首先要保证IP可用性&#xff0c;以及端口的可访问性&#xff0c;老王自己就有好几台国外VPS&#xff0c;这里分享下自己平常检测IP是否被封&#xff0c;以及端口是否被封的方法。…

研报精选230512

目录 【行业230512山西证券】有色金属行业周报&#xff1a;基本金属普跌&#xff0c;锂价持续回弹 【行业230512湘财证券】新材料行业周报&#xff1a;五一前后各板块震荡下行&#xff0c;节后稀土价格跌后企稳&#xff0c;锂源现止跌迹象 【行业230512山西证券】基础化工2022年…

2023年,我的儿子刚从美国名校毕业,就失业了...

前不久&#xff0c;朋友圈里一篇名为《2023年&#xff0c;我的儿子刚从美国名校毕业&#xff0c;就失业了…》的文章火爆全网。 故事里的男孩出生于一个中产阶级家庭&#xff0c;从每年12万的幼儿园开始一路接受了优质教育&#xff0c;最终不负众望从美国前50名校的商学院毕业…

互联网最值得加入的173家国企名单

&#xff08;永久免费&#xff0c;扫码加入&#xff09; 大家好&#xff0c;我是菜鸟哥&#xff01; 今年的就业相比以往是难了不少&#xff0c;感受到的人都懂。学弟毕业后在互联网公司工作了一年多&#xff0c;受到的业绩考核压力越来越大&#xff0c;萌发了跳去国企的念头&a…