Command line 如何将16位wav转换为原始音频

Command line 如何将16位wav转换为原始音频,command-line,asterisk,sox,Command Line,Asterisk,Sox,我正在尝试使用sox将星号语音邮件转换为原始音频。原始wav的编码信息是PCM S16 LE,所以我想我只能做sox msg0000.wav msg0001.raw,但其中的原始文件是乱码的,根据VLC,与6秒的源文件相比,长4分钟 我不知道我哪里出了问题,有人知道如何将wav转换成raw吗?最好使用sox,但任何命令行解决方案都可以。你确定你的问题是sox而不是VLC吗?我也有问题让VLC播放原始音频。有一些命令行选项,但我没有完全让它们发挥作用 在寻找另一个工具之前,通过尝试以下方法验证so

我正在尝试使用sox将星号语音邮件转换为原始音频。原始wav的编码信息是PCM S16 LE,所以我想我只能做
sox msg0000.wav msg0001.raw
,但其中的原始文件是乱码的,根据VLC,与6秒的源文件相比,长4分钟


我不知道我哪里出了问题,有人知道如何将wav转换成raw吗?最好使用sox,但任何命令行解决方案都可以。你确定你的问题是sox而不是VLC吗?我也有问题让VLC播放原始音频。有一些命令行选项,但我没有完全让它们发挥作用

在寻找另一个工具之前,通过尝试以下方法验证sox确实是问题所在

mplayer-rawaudio samplesize=2:channels=1:rate=8000-demuxer rawaudio msg001.raw
此外,sox还可以提供其他选项:

sox msg0000.wav--位16--编码有符号整数--endian little msg0001.raw

但我怀疑这些是默认设置,因此不需要它们。

您当时正在测试播放的手机需要一个8位的ulaw文件,直到我深入查看相关文档后才发现。VLC无法播放,当手机也出现故障时,我假设文件格式错误。谢谢你的帮助。ffmpeg也可以这样做。