从终端重新采样音频文件

时间:2017-08-06 23:28:50

标签: audio terminal wav resampling sox

我目前有一个文件列表,我需要为其更改采样率。

我最近意识到这可以使用sox但是当我尝试这样做时,我继续收到sox wav: Premature EOF on .wav input file的错误消息并导致音频文件为空..似乎就像sox不能重新采样一个输入=输出的音频文件......如果我必须转换音频文件的整个目录,我有点需要......

目前使用的命令:

~/kaldi-trunk/egs/yesno/s5_k_added$ sox 0_0_0_0_1_1_1_1.wav -r 8000 0_0_0_0_1_1_1_1.wav 
sox WARN wav: Premature EOF on .wav input file
:~/kaldi-trunk/egs/yesno/s5_k_added$ play 0_0_0_0_1_1_1_1.wav 

0_0_0_0_1_1_1_1.wav:

 File Size: 44        
  Encoding: Signed PCM    
  Channels: 1 @ 16-bit   
Samplerate: 8000Hz       
Replaygain: off         
  Duration: unknown      

In:0.00% 00:00:00.00 [00:00:00.00] Out:0     [      |      ]        Clip:0    
Done.

如何重新取样音频文件目录?

1 个答案:

答案 0 :(得分:1)

尝试更改输出文件名,如果要保留相同的文件名,可以将其放在不同的目录中。

例如:

sox 0_0_0_0_1_1_1_1.wav -r 8000 ./out/0_0_0_0_1_1_1_1.wav

我相信sox正在尝试在主动更改文件时读取文件,有时sox不会创建要输出的临时文件。

编辑:如果你有一个你想改变的文件目录,请使用:

$ mkdir out
$ for file in *; do sox ${file} -r 8000 ./out/${file}; done