微信高清音频处理

purewater2014IP属地: 上海
0.116字数 407阅读 2,234

记一次微信音频处理

项目背景:微信jssdk,功能很丰富。针对语音这块,项目中使用了上传语音和语音识别。因为项目具体需求,需要将微信的语音在其他端内进行语音播放。所以,服务端需要根据media_id下载语音(格式为speex),然后转码成wav。为了节约成本,将wav转成mp3。整个处理流程如下:

1.h5上传

上传文件,获取media_id

2.服务端根据media_id,下载文件到服务器
3.转码speex至wav

第三方库:https://github.com/ppninja/wechat-speex-declib

Install speex

  1. download speex source code, https://downloads.xiph.org/releases/speex/speex-1.2.0.tar.gz

  2. tar xzvf speex-1.2.0.tar.gz

  3. cd speex-1.2.0 && ./configure && make && make install

Install decoder

  1. git clone https://github.com/gamelife1314/wechat-speex-declib.git

  2. cd wechat-speex-declib && make && cp ./bin/speex_decode /usr/local/bin/speex2wav

  3. speex2wav test.speex test.wav

4.将wav文件转成mp3,但之前需要安装ffmpeg,同时安装mp3编码库:libmp3lame。

如果直接使用mp2转码,会出现本地可以正常播放,但在云端无法自动播放。比如:阿里云的oss,直接转,是无法直接播放的。
安装可以参考我的这篇文章:ffmpeg+libmp3lame库源码安装教程

5.使用ffmpeg,转wav至mp3
ffmpeg -i tt.wav -ac 1 -ab 128 -ar 8000 -acodec  libmp3lame tt3.mp3
说明:ab:比特率,ar:采样率,-acodec 编码 ac:声道
6.上传到服务器,记录数据库,实现在线播放

总结:在整个过程中,有几点需要注意:1.音频是speex,如何转码?2.使用ffmpeg转mp3

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
2人点赞
更多精彩内容,就在简书APP
"感谢您的赞赏,您的阅读是我坚持的动力!"
还没有人赞赏,支持一下
总资产6共写了6.1W字获得219个赞共132个粉丝

推荐阅读更多精彩内容

  • <video id="videoALL" src="video/01.mp4" poster="images...
    iphone88阅读 108评论 0 0
  • 工艺所:集中诱导除垢装置应用效果显著2019/1/24 0:55 页面内容​随着油田进入高含水期,水的热力学不稳定...
    包包_1e54阅读 367评论 0 0
  • 我是在虚拟机中Ubuntu安装的NextCloud,真机同理 ==转载请注明出处!== 1. 虚拟机 VM12 安...
    58fa7b46adb7阅读 1,172评论 0 0
  • 心情很好就是这么简单,只是因为一个小小的点赞~
    一诺倾城笑阅读 216评论 0 0
  • 不知不觉来到了有点酷热的五月份,我也误打误撞得在保险公司上班了将近三个月。 昨天是农历十五,跟着同事们一块去关帝宫...
    暴走君萨阅读 203评论 0 0