shell脚本如何读取批量测试文件夹中的数据

How does a shell script read the data in a batch test folder

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

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

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

这个文件夹是一个目录,但是当我把路径改成:

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

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

但是,一次只能处理一个音频文件,无法处理batches.Hope大家知道原因或者有意见,可以给我提一两点意见,非常感谢。

代码是按照只处理文件的方式写的,你可以在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 代码以批量处理音频,但这不是一项简单的任务。