语音编码研究

最近在做公司的消息服务SDK,基本的功能已经完成,想试一下能否实现把发送的语音数据进一步减小。


Android上面经过AudioRecord把模拟的语音信号变为数字信号后,一般是采用Wave格式进行编码的,所谓的语音压缩算法就是在Wave编码的基础之上进行压缩。

同理,图像压缩应该就是在bmp的基础之上进行压缩。


我们目前的方式是这样:

使用MediaRecorder进行录音,编码格式是AMR_NB,经过我的测试录制一分钟的语音的数据大小大概是41KB左右,这个与微信的情况一致


我们最初的想法是能否找到另外一个压缩格式,得到的数据体积比AMR_NB更小,我从其它同事那里得知了SPEEX(目前已经进化为Opus)这种编码,但是经过我的试验,使用Opus采样率8kHz录音1分钟的文件大小是185KB,远远大于使用AMR_NB的情况,所以采用Opus其实并不能满足我们的需求。


后来我查看了一下Opus的官方网页,它的特性描述如下:

Technology

Opus can handle a wide range of audio applications, including Voice over IP, videoconferencing, in-game chat, and even remote live music performances. It can scale from low bit-rate narrowband speech to very high quality stereo music. Supported features are:

  • Bit-rates from 6 kb/s to 510 kb/s
  • Sampling rates from 8 kHz (narrowband) to 48 kHz (fullband)
  • Frame sizes from 2.5 ms to 60 ms
  • Support for both constant bit-rate (CBR) and variable bit-rate (VBR)
  • Audio bandwidth from narrowband to fullband
  • Support for speech and music
  • Support for mono and stereo
  • Support for up to 255 channels (multistream frames)
  • Dynamically adjustable bitrate, audio bandwidth, and frame size
  • Good loss robustness and packet loss concealment (PLC)
  • Floating point and fixed-point implementation
始终都在讲Opus的特性如何如何,却没有讲文件体积小,所以Opus是针对那种对语音质量有很高要求的情况


所以我们的需求得不到满足,事实上我们已经找到了使文件体积最小的方案,那就是AMR.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值