Shell脚本如何读取批处理测试文件夹中的数据

时间:2019-01-17 14:16:52

标签: shell tensorflow speech

我最近复制了一个基于TensorFlow0.12.1的SEGAN实验,作者提供了一个用于测试的shell脚本(clean_wav.sh),如下图所示:

enter image description here

这是作者提供的原始版本。根据我的测试数据路径,修改后的版本如下:

enter image description here

Noisy_testset_wav_16k是我的测试数据文件夹,但是运行脚本系统将报告错误:

enter image description here

此文件夹是目录,但是当我将路径更改为:

NOISY_WAVNAME='/home/zyf/SEGAN/ SEGAN/segan-master1/noisy_testset_wav_16k/p232_023.wav'

脚本正常运行,程序功能也可以实现。

但是,一次只能处理一个音频文件,不能批量处理。希望每个人都知道原因或看法,可以给我一两次建议,非常感谢。

1 个答案:

答案 0 :(得分:0)

代码仅以处理文件的方式编写,您可以在shell脚本中添加循环以处理文件夹中的所有文件:

for f in $NOISY_WAVDIR/*.wav; do
      python main.py --init_noise_std 0. --save_path segan_v1.1 \
               --batch_size 100 --g_nl prelu --weights SEGAN-41700 \
               --preemph 0.95 --bias_deconv True \
               --bias_downconv True --bias_D_conv True \
               --test_wav $f --save_clean_path $SAVE_PATH
done

,但这并不是GPU的最佳使用方式,因为您不会批量处理音频。理想情况下,您希望修改python代码以批量处理音频,但这并不是一件容易的事。