java 代码转换音频数据格式(字节数组转换)

目前音频格式有很多,本文针对PCM 音频文件进行转换

所谓pcm 就是将声音等模拟信号变成符号化的脉冲列,再予以记录。PCM信号是由[1]、[0]等符号构成的数字信号。与模拟信号比,它不易受传送系统的杂波及失真的影响。动态范围宽,可得到音质相当好的影响效果。PCM轨迹与视频轨迹不同,故也可用于后期录音。但在Hi8的摄像机中要实现PCM,必须通过其他的专业器材,仅靠摄像机是无法达到该效果的。

 

alaw 与 ulaw 都为pcm 文件编码格式

参考:

https://www.2cto.com/kf/201504/390076.html

 

8k8bit pcm 文件指的是采样点为8000,采用精度为8bit, bit可以理解为每个采样点大小

这种音频格式的录音为 8000*8*1(声道数)/8/1024 = 8kbs

 

同理8k16bit pcm,16k16bit pcm文件

 

下面介绍下 这些音频格式利用java代码相互转换的过程

由于网上有很多工具能够直接将完整的音频文件直接转换为相应的格式,这里就不多介绍了,

下面介绍的是如果音频文件并非完整的,而是一段二进制的数组

比如说实时的语音流转换

 

1 声道数的转换

 

8K8bit立体音 分离 成单声道(立体语音是8kAlaw)

立体音本身的采样就是左声道采样一个点,右声道采样一个记录在一起,知道这个原理,分离就很简单了。

 

/**
 * 立体音 分离 成单声道(立体语音是8kAlaw)
 * 
 * @param stereoBytes
 * @return
 * @throws IOException
 */
public static byte
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值