我正在尝试将原始文件(无标题)转换为wav
在ADPCM 16中率8000
我尝试了三个控制台命令
sox -e ima-adpcm -r 8000 input.raw output.wav
sox -e ima-adpcm -r 8000 -b 16 input.raw output.wav
这些会触发相同的错误:
sox FAIL formats: bad input format for file `input.raw': data encoding or sample size was not specified
和最后一次尝试
sox -t raw -t wav -e ima-adpcm -r 8000 -b 16 input.raw output.wav
会触发另一个错误
sox FAIL formats: can't open input file `input.raw': WAVE: RIFF header not found
你知道为什么我会收到这些错误吗?
由于
修改
前48个字节的十六进制转储FYI
C0 0C 00 03 00 00 37 C0 34 0C D0 30 37 C0 30 C7 CD D3 C0 03 CD 00 37 03
C0 00 0D 0C CD 00 C0 10 0F 00 03 55 0B 4B 0F 0F 0C 0F 34 0F 0D C3 0D 03
00 C0 31 00 00 D0 C0 00 F4 4C 03 33 34 33 31 33 0D 33 D0 03 C0 4C C0 43
答案 0 :(得分:8)
看起来使用-t raw -e ima-adpcm
不起作用,而是必须使用-t ima -e ima-adpcm
。
我猜-t raw
表示原始PCM,而-t ima
表示原始ADPCM?
我可以将ADPCM文件转换为.wav:
sox -t ima -r 44100 -e ima-adpcm in.raw -e signed-integer -b 16 out.wav
只要您使用-t ima
指示ADPCM,文件扩展名似乎无关紧要。
答案 1 :(得分:1)
您可以将文件名从input.raw
更改为input.ima
吗?如果可以,那么
sox input.ima -r 8000 -b 16 output.wav
应该工作。 .raw
似乎是sox
的神奇扩展,它假定数据具有某些可能性。请参阅this man page。