由于讯飞录音是不能把一段很长的话录音出来,只能是一段一段的录,所以要把录出来的pcm数据合成wav文件,录音的采样率是8k, 比特率是16bit,双声道,合并的代码如下:
<span style="font-size:14px;">public static boolean mergePCMFilesToWAVFile(ArrayList<String> fileList,
String DESTINATION_PATH) {
File[] file = new File[fileList.size()];
byte buffer[] = null;
int TOTAL_SIZE = 0;
int FILE_NUMBER = fileList.size();
for (int i = 0; i < FILE_NUMBER; i++) {
file[i] = new File(fileList.get(i));
TOTAL_SIZE += file[i].length();
}
// 填入参数,比特率等等。这里用的是16位单声道 8000 hz
WaveHeader header = new WaveHeader();
// 长度字段 = 内容的大小(TOTAL_SIZE) +
// 头部字段的大小(不包括前面4字节的标识符RIFF以及fileLength本身的4字节)
header.fileLength = TOTAL_SIZE + (44 - 8);
header.FmtHdrLeth = 16;
header.BitsPerSample = 16;
header.Channels = 2;
header.FormatTag =