从终端重新采样音频文件
Resample audio file from terminal
我目前有一个文件列表,我需要为其更改采样率。
我最近意识到使用 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.
如何对音频文件目录重新采样?
尝试更改输出文件名,如果您想保持相同的文件名,可以将其放在不同的目录中。
例如:
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
我目前有一个文件列表,我需要为其更改采样率。
我最近意识到使用 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.
如何对音频文件目录重新采样?
尝试更改输出文件名,如果您想保持相同的文件名,可以将其放在不同的目录中。
例如:
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