语音识别功能_微信小程序代办清单任务
最近想给自己的代办清单任务微信小程序想加个语音识别识别功能,废话不多说,直接说重点,语音识别使用的是百度语音识别api,因为微信小程序的录音输入文件目前只能是mp3或aac 但是百度语音识别不支持这两种(百度api接口文档上有说明),所以需要把音频格式转换一下,我这边使用的是Alvas.Audio.dll转换的,目前没发现什么问题。
百度云账号地址:https://login.bce.baidu.com/
Alvas.Audio下载地址:https://download.csdn.net/download/u014265946/11094962
1、登录百度云账号后打开百度语音页面
创建一个语音识别的应用,记录应用的相关信息,如果API Key、Secret Key ....下载sdk......这里废话就不多说了api文档上面都有 https://ai.baidu.com/docs#/ASR-Online-Csharp-SDK/top。
(这是需要注意的是百度提供的sdk引用的Newtonsoft.Json 10.0.0.0 以上的版本,所以如果您项目中使用的是低版本的,必须升级Newtonsoft.Json)
2、下载 Alvas.Audio.dll 引用到项目中,
直接上代码
public class AudioHelper { /// <summary> /// Mp3 to Pcm /// </summary> /// <param name="stream"></param> /// <returns></returns> public static byte[] Mp3ToPcm(Stream stream) { try { //mp3 -> mp3 mono 48000 samples per second example //int sps = 48000; Mp3Reader mr = new Mp3Reader(stream); IntPtr formatMp3 = mr.ReadFormat(); byte[] dataMp3 = mr.ReadData(); mr.Close(); IntPtr formatPcm = AudioCompressionManager.GetCompatibleFormat(formatMp3, AudioCompressionManager.PcmFormatTag); //mp3 -> pcm byte[] dataPcm = AudioCompressionManager.Convert(formatMp3, formatPcm, dataMp3, false); return dataPcm; } catch (System.Exception ex) { LogManager.DefaultLogger.ErrorFormat("Mp3 to Pcm 出错:{0}", ex.ToString()); return null; } } }
上传语音到百度云平台上识别语音
/// <summary> /// 百度语音识别帮助 /// </summary> public class BaiduHelper { private readonly static Asr Client = new Baidu.Aip.Speech.Asr("你的 Api Key", "你的 Secret Key"); /// <summary> /// 语音识别 /// </summary> /// <param name="data">语音内容</param> /// <param name="text">文本内容</param> /// <param name="format">语音文件的格式,pcm 或者 wav 或者 amr。不区分大小写。推荐pcm文件,</param> /// <param name="rate">采样率,16000,固定值</param> /// <param name="devPid">默认1537(普通话 输入法模型)。dev_pid 必须为整数类型。参数可选值见REST API文档说明</param> /// <returns></returns> , ) { text = ""; Client.Timeout = ; var options = new Dictionary<string, object> { {"dev_pid", devPid} }; var jObject = Client.Recognize(data, format, rate, options); ) { text = jObject[].ToString(); return true; } else { return false; } } }
微信小程序录音上传的代码我就就不贴了,网上很多。官方文档介绍的也很详细,整个流程就是微信小程序录音上传到后台,后台转码后通过百度语音识别api上传到百度云平台,返回结果后台返回给前端。
下面也是比较坑的地方,截止到这里,语音识别基本完成了,我做到这里的时候发现将将程序发到服务器上,语音转码总是报错,语音转码不成功,最后查找Alvas.Audio的官方文档中给出了解决方案,
http://www.alvas.net/alvas.audio,articles.aspx#mp3-to-wav-without-desktop-experience
要么安装桌面体验,要么安装库文件,我选择了安装桌面体验,具体怎么安装桌面体验,可以百度一下,(就像安装iis一样)
安装桌面体验参考地址:https://www.cnblogs.com/asdyzh/p/9826976.html
这个时候你发布到服务器上的程序,音频就会正常转换了
下面恭请大家同行们体验一下我的微信小程序,体验一下我实现的语音识别功能,
简单介绍一下我的微信小程序:
这个是个代办清单任务的小程序,和备忘录相似,主要是自己用方便,简单方便,没有复杂的设置,记录自己的规划,让自己的工作生活变的有计划。简单而实用。发现用的人还挺多,为了更简单,就加上了语音识别功能,在编辑任务的时候可以不用手打字,只要说话就能识别成文字,
使用语音识别的正确姿势
长按输入框上按钮,最长可一次性转换10秒语音,
如果文章对你有帮助的话,请打开微信扫一下二维码,点击一下广告,支持一下作者!谢谢!
语音识别功能_微信小程序代办清单任务的更多相关文章
- 即速应用_微信小程序开发 http://www.jisuapp.cn/
即速应用_微信小程序开发 http://www.jisuapp.cn/
- 微信小程序语音识别开发过程记录 微信小程序silk转mp3 silk转wav 以及ffmpeg使用
说说最近在开发微信小程序语音识别遇到的问题吧 最先使用微信小程序录音控件可以拿到silk格式,后来微信官方又支持mp3格式了 但是我们拿到这些格式以后,都还不能直接使用,做语音识别,因为目前百度的语音 ...
- Web前端_微信小程序实战开发
微信小程序开发实战教程 一.微信小程序 它是一种混合开发的方式. 是安装在微信中的程序(一个程序最多2M空间). 1.1 注册 1 2 点击立即注册:进入下方页面 3 4 点击小程序进入表单填写页 ...
- 微信语音红包小程序开发如何提高精准度 红包小程序语音识别精准度 微信小程序红包开发语音红包
公司最近开发的一个微信语音红包,就是前些时间比较火的包你说红包小程序.如何提高识别的精准度呢. 在说精准度之前,先大概说下整个语音识别的开发流程.前面我有文章已经说到过了.具体我就不谈了.一笔带过. ...
- 爬虫_微信小程序社区教程(crawlspider)
照着敲了一遍,,, 需要使用"LinkExtrator"和"Rule",这两个东西决定爬虫的走向. 1.allow设置规则的方法:要能够限制在我们想要的url上 ...
- 微信小程序产品定位及功能介绍
产品定位及功能介绍 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验. 小程序注册 注册小程序帐号 在微信公众平台官网首页(mp.weixin.qq ...
- 微信小程序学习指南
作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- 小程序语音红包开发中 汉字转拼音的问题 微信小程序红包开发遇到的坑
公司最近在开发微信小程序的红包功能,语音红包需要用到文字转拼音的功能. 之前介绍过怎么将中文的汉字转为拼音的,具体看下面这篇文章. 微信语音红包小程序开发如何提高精准度 红包小程序语音识别精准度 微信 ...
- 微信小程序导航:官方工具+精品教程+DEMO集合(1月7更新)
1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=14764346784612:简易教程:https://mp.weixin.qq.com/debug ...
随机推荐
- Linux配置nodejs
http://my.oschina.net/blogshi/blog/260953 首先去官网下载代码,这里一定要注意安装分两种,一种是Source Code源码,一种是编译后的文件.我就是按照网上源 ...
- xcode如何运行下载的demo工程
1. 首先你需要改Bundle Identifier,修改成别人没注册过的. 2. 选中 “Automatically manage signing” 3. 在Team里面添加自己的个人帐号了.
- .net使用NPOI的XSSFWorkbook进行web开发中导出Excel
之前也使用过NPOI导出excel,这次是因为在导出的excel里新增了几个列,正好超出了255的限制,所以又要改了. 今天主要出了4个问题: 1. Invalid column index (256 ...
- js值类型与引用类型
JavaScript值类型和引用类型有哪些 (1)值类型:数值.布尔值.null.undefined. (2)引用类型:对象.数组.函数. 三.如何理解值类型和引用类型及举例 我们可以用“连锁店”和“ ...
- 初识jvm堆,栈参数
堆的分配参数: -Xmx //设立最大堆 -Xms //最小堆,初始化堆大小 -Xmn //设置新生代(eden+2*surviivor+old)大小 官方推荐:3/8Xmx------> ...
- 36、NSTimer使用详解-开启、关闭、移除
1.要是用一个定时器,首先要定义一个定时器: @property(strong,nonatomic)NSTimer *myTimer;//定时器 2.初始化,初始化有两种方式: 第一种: + (NST ...
- Java的背景、影响及前景
一.背景 詹姆斯·高斯林出生于加拿大,是一位计算机编程天才.在卡内基·梅隆大学攻读计算机博士学位时,他编写了多处理器版本的Unix操作系统,是JAVA编程语言的创始人. 高斯林生于1955年,已婚,育 ...
- 深度优先搜索DFS和广度优先搜索BFS
DFS简介 深度优先搜索,一般会设置一个数组visited记录每个顶点的访问状态,初始状态图中所有顶点均未被访问,从某个未被访问过的顶点开始按照某个原则一直往深处访问,访问的过程中随时更新数组visi ...
- LINQ 语法
语言集成查询 (LINQ) 是 Visual Studio 2008 和 .NET Framework 3.5 版中一项突破性的创新,它在对象领域和数据领域之间架起了一座桥梁. 传统上,针对数据的查询 ...
- C和C++中的volatile、内存屏障和CPU缓存一致性协议MESI
目录 1. 前言2 2. 结论2 3. volatile应用场景3 4. 内存屏障(Memory Barrier)4 5. setjmp和longjmp4 1) 结果1(非优化编译:g++ -g -o ...