开发微信小程序口令红包埋坑:

1、小程序录音

使用新版的RecorderManager进行录音操作。

不要使用

新版的上传录音的格式为mp3,旧版的录音格式为silk,后面做语音识别的时候非常难转换。

2、百度语音识别

百度语音识别支持的格式为pcm或者wav,所以需要对其进行转换。转换工具类代码如下

package com.gizhi.guns.core.util;
import javax.sound.sampled.*;
import java.io.*;public class MP3ToWav {/*** mp3的字节数组生成wav文件* @param sourceBytes* @param targetPath*/public static boolean byteToWav(byte[] sourceBytes, String targetPath) {if (sourceBytes == null || sourceBytes.length == 0) {System.out.println("Illegal Argument passed to this method");return false;}try (final ByteArrayInputStream bais = new ByteArrayInputStream(sourceBytes); final AudioInputStream sourceAIS = AudioSystem.getAudioInputStream(bais)) {AudioFormat sourceFormat = sourceAIS.getFormat();// 设置MP3的语音格式,并设置16bitAudioFormat mp3tFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, sourceFormat.getSampleRate(), 16, sourceFormat.getChannels(), sourceFormat.getChannels() * 2, sourceFormat.getSampleRate(), false);// 设置百度语音识别的音频格式AudioFormat pcmFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 16000, 16, 1, 2, 16000, false);try (// 先通过MP3转一次,使音频流能的格式完整final AudioInputStream mp3AIS = AudioSystem.getAudioInputStream(mp3tFormat, sourceAIS);// 转成百度需要的流final AudioInputStream pcmAIS = AudioSystem.getAudioInputStream(pcmFormat, mp3AIS)) {// 根据路径生成wav文件AudioSystem.write(pcmAIS, AudioFileFormat.Type.WAVE, new File(targetPath));}return true;} catch (IOException e) {System.out.println("文件转换异常:" + e.getMessage());return false;} catch (UnsupportedAudioFileException e) {e.printStackTrace();System.out.println("文件转换异常:" + e.getMessage());return false;}}/*** 将文件转成字节流* @param filePath* @return*/public static byte[] getBytes(String filePath) {byte[] buffer = null;try {File file = new File(filePath);FileInputStream fis = new FileInputStream(file);ByteArrayOutputStream bos = new ByteArrayOutputStream(1000);byte[] b = new byte[1000];int n;while ((n = fis.read(b)) != -1) {bos.write(b, 0, n);}fis.close();bos.close();buffer = bos.toByteArray();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return buffer;}public static void main(String args[]) {String filePath = "d:/tmp/test.mp3";String targetPath = "d:/tmp/test1.wav";byteToWav(getBytes(filePath), targetPath);}
}

注意点:必须引入支持mp3格式的依赖,否则在转换时会报出异常

    <!--mp3插件--><dependency><groupId>com.googlecode.soundlibs</groupId><artifactId>mp3spi</artifactId><version>1.9.5.4</version></dependency>

微信小程序口令红包-语音识别相关推荐

  1. 微信小程序-百度AI语音识别——(一)

    微信小程序-百度AI语音识别--(一) 一.百度AI 某天闲来无事在CSDN上看到有大神用百度语音识别+图灵机器人做了一个可以语音聊天(调戏人工智障 )的小demo,觉得挺有趣的,也想着实现一下. 百 ...

  2. 微信小程序打开红包效果

    先看效果 html: <view class='content'><view class="showHongbao"><view class='hb_ ...

  3. 微信小程序实现“红包雨”

    今天有个小师妹来问我怎样用微信小程序实现红包雨效果,如果用web很好实现,但是小程序不是那么容易,整合自己也有一年没摸过小程序了,决定试一试. 首先明确"红包雨"的需求: 随机位置 ...

  4. 微信小程序语音识别开发过程记录 微信小程序silk转mp3 silk转wav 以及ffmpeg使用 微信小程序语音红包...

    说说最近在开发微信小程序语音识别遇到的问题吧 最先使用微信小程序录音控件可以拿到silk格式,后来微信官方又支持mp3格式了 但是我们拿到这些格式以后,都还不能直接使用,做语音识别,因为目前百度的语音 ...

  5. php slik转wav_微信小程序语音识别开发过程记录 微信小程序silk转mp3 silk转wav 以及ffmpeg使用 微信小程序语音红包...

    说说最近在开发微信小程序语音识别遇到的问题吧 最先使用微信小程序录音控件可以拿到silk格式,后来微信官方又支持mp3格式了 但是我们拿到这些格式以后,都还不能直接使用,做语音识别,因为目前百度的语音 ...

  6. 微信小程序发红包功能实现,附效果图加讲解。

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 需要做红包功能的可以找我,收费卖源码,也承接开发.此博文仅示例. 流程效果图: 图片1触发wx.sendBiz ...

  7. 微信小程序打开红包的css_微信小程序 css使用技巧总结

    微信小程序 css使用技巧 1:用纯CSS创建一个三角形的原理把上.左.右三条边隐藏掉(颜色设为 transparent) .demo { width: 0; height: 0; border-wi ...

  8. 如何做一个小程序口令红包功能

    在做小程序后端支持的过程中遇到不少有意思的功能,有些比较考你的思维散发及解决问题的实际能力,这里摘录一下记录下来,是为抛砖引玉.如能帮到别人,自然是最好不过了. 先放几张设计图看下大概功能: 大概便是 ...

  9. 如何做一个小程序口令红包功能 1

    在做小程序后端支持的过程中遇到不少有意思的功能,有些比较考你的思维散发及解决问题的实际能力,这里摘录一下记录下来,是为抛砖引玉.如能帮到别人,自然是最好不过了. 先放几张设计图看下大概功能: 大概便是 ...

  10. 微信小程序打开红包的css_山海经攻略(微信小程序现金红包提现游戏)

    扫码进入小程序按照系统提示操作就可以获得0.3元红包,可以直接提现到微信账户. 一.山海经异变收入来源有三种 1.每升一级大概有一元的红包,满50元提现 2.获得分红神兽,分红神兽有四种,分别是神兽鸿 ...

最新文章

  1. 【JavaSE】 单向链表的实现与讲解
  2. 广告行业中常说的 CPC,CPM,CPD,CPT,CPA,CPS 等词的意思是什么?
  3. 机器学习数据集划分-训练集,验证集,测试集
  4. 有问有答 | 分布式服务框架精华问答
  5. clickhouse 同步mysql_ClickHouse和他的朋友们(11)MySQL实时复制之GTID模式
  6. 计算机网络 第六章 应用层
  7. python写日志到文件_python 通过logging写入日志到文件和控制台的实例
  8. linux tty 软件包,Linux TTY framework(2)_软件架构
  9. network location awareness 错误
  10. RabbitMQ的ack与nack
  11. 360政企安全集团率先获得国家级安全运营资质
  12. Installing Kubernetes Using ‘kubeadm’
  13. PWN之堆利用-unlink攻击
  14. linux rs,Linux中的RS, ORS, FS, OFS
  15. Java实现 LeetCode 21 合并两个有序链表
  16. 【微信支付】十分钟解决内网穿透,实现微信支付本地测试
  17. DDR3及DDR4的传输带宽
  18. 单片机c语言报错_asm啥意思,SPMC75系列单片机地C和ASM( - 控制/MCU - 电子发烧友网...
  19. 设置服务器连接信息是什么情况,了解有关设置 IMAP 服务器连接的更多信息
  20. Fortify SCA快速入门以及常见问题解决方法

热门文章

  1. 模型参考自适应控制器(MRAC)系列: 2.提升瞬态性能
  2. vb.net 教程 3-10 窗体编程 datagridview控件 7 修改单元格
  3. matlab实现3维测井曲线绘制
  4. webservice规范及webservice框架
  5. 国外网站视频下载方法通通告诉你
  6. 分享32个高质量的自学网站
  7. 最全面测试计划书模板
  8. 免费搜索引擎提交网址大全
  9. 疯狂java讲义第6版_疯狂java讲义第6版
  10. AXJ爱新机 亚马逊测评 替代软件-VMLogin反指纹超级浏览器