我目前有一个文件列表,我需要为其更改采样率。
我最近意识到这可以使用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.
如何重新取样音频文件目录?
答案 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