8

我正在尝试将原始文件(无标题)转换为 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 个字节的十六进制转储仅供参考

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
4

2 回答 2

9

看起来 using-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.

于 2015-09-19T12:48:28.460 回答
2

您可以将文件名从 更改input.rawinput.ima吗?如果可以,那么

 sox input.ima -r 8000 -b 16 output.wav

应该工作。.raw似乎是一个神奇的扩展sox,它假设了数据的某些可能性。请参阅此手册页

于 2014-08-07T01:13:22.757 回答