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。
好久沒更新博客,慚愧~以後要努力更新博客了。