首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用sox将无头ima adpcm原始文件转换为wav

如何使用sox将无头ima adpcm原始文件转换为wav
EN

Stack Overflow用户
提问于 2014-07-25 16:45:55
回答 2查看 7.3K关注 0票数 8

我正在尝试将原始文件(无标头)转换为wav

它采用ADPCM 16速率8000

我已经尝试了三个控制台命令

代码语言:javascript
复制
sox -e ima-adpcm -r 8000 input.raw output.wav
sox -e ima-adpcm -r 8000 -b 16 input.raw output.wav

这些都会触发相同的错误:

代码语言:javascript
复制
sox FAIL formats: bad input format for file `input.raw': data encoding or sample size was not specified

最后一次尝试

代码语言:javascript
复制
sox -t raw -t wav -e ima-adpcm -r 8000 -b 16 input.raw output.wav

这会触发另一个错误

代码语言:javascript
复制
sox FAIL formats: can't open input file `input.raw': WAVE: RIFF header not found

你知道为什么我会得到这些错误吗?

谢谢

编辑

FYI的前48字节的十六进制转储

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

发布于 2015-09-19 20:48:28

看起来使用-t raw -e ima-adpcm是行不通的,但是你必须使用-t ima -e ima-adpcm

我猜-t raw的意思是原始的PCM,而-t ima的意思是原始的ADPCM?

这对我将ADPCM文件转换成.wav很有效:

代码语言:javascript
复制
sox -t ima -r 44100 -e ima-adpcm in.raw -e signed-integer -b 16 out.wav

只要您使用-t ima指示ADPCM,文件扩展名似乎就无关紧要。

票数 9
EN

Stack Overflow用户

发布于 2014-08-07 09:13:23

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

代码语言:javascript
复制
 sox input.ima -r 8000 -b 16 output.wav

应该行得通。.raw似乎是sox的一个神奇扩展,它假定了数据的某些可能性。参见this man page

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24951633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档