目前音频格式有很多,本文针对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[][] stereo2M