合并多个音频文件时出现 SoX 错误

合并多个音频文件时出现 SoX 错误

我正在尝试使用该命令合并一个充满 wav 文件的文件夹sox *.wav combined.wav,但出现以下错误:

sox formats: no handler for detected file type `inode/x-empty; charset=binary'

我在 Google 上搜索了错误,但找不到任何解决方案。有人能描述如何修复此错误,或者sox在运行命令时要添加哪些标志吗?谢谢。这是我尝试合并的 wav 文件:

10-51-52-0025.raw.wav  11-06-29-0030.raw.wav  11-16-29-0536.raw.wav
10-52-52-0062.raw.wav  11-07-29-0085.raw.wav  11-17-29-0749.raw.wav
10-58-28-0559.raw.wav  11-08-29-0135.raw.wav  11-18-29-0812.raw.wav
10-59-28-0655.raw.wav  11-09-29-0192.raw.wav  11-19-29-0909.raw.wav
11-00-28-0696.raw.wav  11-10-29-0242.raw.wav  11-27-07-0658.raw.wav
11-01-28-0744.raw.wav  11-11-29-0298.raw.wav  11-28-07-0731.raw.wav
11-02-28-0828.raw.wav  11-12-29-0348.raw.wav  11-29-07-0779.raw.wav
11-03-28-0876.raw.wav  11-13-29-0432.raw.wav  11-30-07-0834.raw.wav
11-04-28-0941.raw.wav  11-14-29-0483.raw.wav
11-05-28-0989.raw.wav  11-15-29-0508.raw.wav

答案1

最好使用 ffmpeg。

ffmpeg -f concat -i <(printf "file '$PWD/%s'\n" ./*.wav) -c copy output.wav

https://trac.ffmpeg.org/wiki/Concatenate

答案2

http://sox.sourceforge.net/sox.html

为了确定输入文件的格式,SoX 将按优先顺序使用给定或可用的格式:

  1. 命令行格式选项。
  2. 文件头的内容。
  3. 文件扩展名。

因此,如果您确定文件是 WAVE 格式,您可以尝试添加-t wav

sox -t wav *.wav combined.wav

如果文件实际上是原始文件格式,或者缺少位深度 ( -b) 和速率 ( -r) 等信息,您还必须提供这些参数。有关更多信息,请参阅使用脚本将 RAW 音频数据转换为 WAV

相关内容