You can convert the endianness using sox(sox-14.4.1) like this:
sox -t .raw -r 16k -b 16 -e signed infile -t.raw -r 16k -b 16 -e signed -x outfile
假设raw file
Number of bits:16bit
Number of channels:one
Sampling Rates:16000 HZ
实际上只有16bit及以上才有可能需要convert endianness。另一种方法是直接通过程序解决(针对16bit):
// convert endianess
for(int i=0;i<nBufBKLen;i+=2)
{
char temp = szBufBK[i];
szBufBK[i] = szBufBK[i+1];
szBufBK[i+1] = temp;
}
这儿假设szBufBK存放raw file data,nBufBKLen为data length。
好久没更新博客,惭愧~以后要努力更新博客了。