【问题标题】:How to convert headerless ima-adpcm raw file to wav using sox如何使用 sox 将无头 ima-adpcm 原始文件转换为 wav
【发布时间】:2014-07-25 08:45:55
【问题描述】:

我正在尝试将原始文件(无标题)转换为 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

【问题讨论】:

    标签: audio wav pcm sox adpcm


    【解决方案1】:

    看起来使用-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。

    【讨论】:

      【解决方案2】:

      你能把文件名从input.raw改成input.ima吗?如果可以的话,那么

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

      应该可以工作。 .raw 似乎是sox 的一个神奇扩展,它假设了数据的某些可能性。见this man page

      【讨论】:

      • sox WARN raw: input.ima: sample rate not specified; trying 8kHz sox WARN adpcms: input.ima: ADPCM state errors: 286079
      • @QuentinTanioartino 我从来没有对.ima 文件做过任何事情,所以在这里瞎了眼。也许只是尝试sox input.ima output.wav 并让 SoX 自己选择参数?
      猜你喜欢
      • 1970-01-01
      • 2018-12-16
      • 1970-01-01
      • 2010-11-05
      • 2012-06-30
      • 2012-01-27
      • 2021-05-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多