刚开始学习说话人识别,刚刚看了点shell脚本的东西,师兄就让我写一个脚本对数据进行升降采样处理,自己用了最简单的方式,递归遍历一遍文件夹的wav文件,然后对每一个wav文件执行升降采样命令,此为记录性学习,请大佬们不吝赐教!
降采样命令用到了sox处理语音工具,其相应命令,大家可以点击http://sox.sourceforge.net/sox.html、http://billposer.org/Linguistics/Computation/SoxTutorial.html进行查看、学习
#!/bin/bash
function getdir(){
i = 0
for element in `ls $1`
do
((i = $i + 1))
dir_or_file=$1"/"$element
source_file=$2"/"$element
if [ -d $dir_or_file ]
then
getdir $dir_or_file
else
echo $dir_or_file
sox $dir_or_file -r 8000 $source_file
# 将dir_or_file 文件降采样为8000,并且以source_file进行保存(升采样只要将8000改为相应的参数即可)
fi
done
echo $i
}
root_dir="/home6/mgd/caitong_1s/males"
source_dir="/home6/mgd/caitong_1s/exam_males"
getdir $root_dir $source_dir