百度语音-JAVA对PCM文件格式处理

百度语音-JAVA对PCM文件格式处理

 1 问题描述

调用百度语音接口使用测试PCM文件正常返回。

使用微信小程序上传录音文件、本地录音调用百度语音接口。正常响应,但是响应结果不是“嗯嗯”,就是空。然后检查使用音频文件,额,没啥问题,一度怀疑接口的识别率....

实在没办法,不可能别人都能用,就你用不了。继续仔细研究接口文档。

注意是必须符合,必须符合,必须符合。重要的事情说3遍。

然后文档中给了文件格式的转码说明。

详细见:开发工具-音频文件转码

额,好吧ffmpeg软件一枚。我吐了啊。代码要用,给你我软件我怎么玩?

2 解决方案

 1 、安装软件

 2 、程序通过调用系统命令形式将文件转换为需求格式

 3、使用转换后的文件调用百度语音接口

嗯,问题就这样解决了。具体解决流程及代码如下,后附源码。(注意:区分开发及测试环境,安装ffmpeg,本地一般是windows,生产一般是linux环境)

大佬提供了另一种解决方式:

使用下述测试类中的mp3转pcm的转换方法,微信小程序配置如下,上传MP3文件,转码成PCM格式,然后调用接口

const options = {
      duration: 600000, //指定录音的时长,单位 ms
      sampleRate: 16000, //采样率
      numberOfChannels: 1, //录音通道数
      encodeBitRate: 96000, //编码码率
      format: 'mp3', //音频格式,有效值 aac/mp3
      frameSize: 50, //指定帧大小,单位 KB
    }
    recorder.start(options) //开始录音

注意文档中说需要额外告知编码格式等信息,该方法我未尝试,但据说可使用,大佬牛皮。

方法及maven在源码中,这里不做介绍

3、ffmpeg

3.1 windows安装ffmpeg

 windows安装比较简单,去官网下载windows版本,然后添加环境变量

下载地址:Download FFmpeg

 

然后解压

添加环境变量,Path指定到bin目录即可

CMD测试,如下Windows安装完成

3.2 centos linux下安装ffmpeg

1、下载解压

wget http://www.ffmpeg.org/releases/ffmpeg-3.1.tar.gz
tar -zxvf ffmpeg-3.1.tar.gz 

2、 进入解压后目录,输入如下命令/usr/local/ffmpeg为自己指定的安装目录

cd ffmpeg-3.1
./configure --prefix=/usr/local/ffmpeg
make && make install

 这里如果出现一下提示则需要安装 yasm,

具体版本可查看Index of /projects/yasm/releases/,进行选择

yasm/nasm not found or too old. Use –disable-yasm for a crippled build.

If you think configure made a mistake, make sure you are using the latest
version from Git. If the latest version fails, report the problem to the
ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file “config.log” produced by configure as this will help
solve the problem.
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar -zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make && make install

3 执行命令测试,配置环境变量后,使用ffmpeg测试也是一样的,但是建议使用/usr/local/ffmpeg/bin/ffmpeg后续说明

/usr/local/ffmpeg/bin/ffmpeg

 如果出现,或者提示libavdevice.so.xx类似信息,原因是找不到找不到启动路径

ffmpeg: error while loading shared libraries: libavdevice.so.58

 则

vi /etc/ld.so.conf

打开文本后,加入如下路径、
/usr/local/ffmpeg/lib/
#最后面的斜杠一定要带上,别忘了!
#该路径为ffmpeg的安装路径,如果路径不同,需要切换到自己的安装路径下,最后指向lib文件夹下

sudo ldconfig

OK,在测试 一波,Linux版本安装完成

4 源码介绍

后续附源码,这里只介绍不贴代码

4.1 微信小程序测试

使用wx.recorderManager获取录音,配置如下上传mp3文件(可根据自己需求定)

4.2 文件上传

 4.3 调用系统命令工具类

具体调用命令可根据实际情况制定,详细见https://ai.baidu.com/ai-doc/SPEECH/7k38lxpwf4.4 百度语音识别工具类

4.5 语音识别极速版获取token

4.6 测试类

4.7 pom文件

4.8 配置类

注意:这里command 没有直接使用系统变量ffmpeg,而是直接指定文件D:\\SoftWare\\ffmpeg\\bin\\ffmpeg.exe,是因为程序调用是使用ffmpeg会报错,找不到命令,又因为我懒,这样简单便捷。linux类似

5 源码

百度语音识别.zip

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丨Anna丨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值