转换wav为采样率16000的wav

记录一个脚本,功能使用过sox来批量转换wav为采样率16000的wav,更复杂的转换可以通过ffmpeg来进行转换,当然sox也提供了很多的转换,详细的可以查阅他的document

http://sox.sourceforge.net/Docs/Documentation

#/bin/bash
export arrayindex
export array
function  scandir() {
	local cur_dir parent_dir workdir
	workdir=$1
	cd $workdir
	if test $workdir = "/" 
	then
		cur_dir=""
	else
		cur_dir=$(pwd)
	fi
	for dirlist in $(ls $cur_dir)
	do
		if test -d $dirlist;then
			cd $dirlist
			scandir $cur_dir/$dirlist
			cd ..
		else
			# echo ${cur_dir}/${dirlist}
			#shell 数组赋值
			array[$arrayindex]=$cur_dir/$dirlist
			#注意shell索引的递增方式
			((arrayindex++))
		fi
	done
}
function GetALLDirInfo()
	{
		local dir
		dir=$1
		arrayindex=0
		if test -d $dir
		then
			scandir $dir
		elif test -f $dir
		then
			echo "you input a file not a directory"
			exit 1
		else
			echo "the dir you input $dir is not exit"
		fi
	}
read -p "please input the paths needed transform(file or dir):" LOCATION
echo "path is:$LOCATION"
read -p "please input the dir which you need to save the transform file :" SAVE_DIR
echo "path is:$SAVE_DIR"
if [ ! -d $SAVE_DIR ]
then 
	mkdir $SAVE_DIR
fi
if [[ -d $LOCATION ]]
then
    GetALLDirInfo $LOCATION
	for content in ${array[@]}
	do
		file_name=${content##*/}
		echo $file_name
		length=${#file_name}
		out_name=${file_name:0:length-4}
		echo $out_name
		echo $SAVE_DIR"/"$out_name"_16000.wav"
		sox  $content -r 16000   $SAVE_DIR"/"$out_name"_16000.wav"
		done
else
		file_name=${LOCATION##*/}
		echo $file_name
		length=${#file_name}
		out_name=${file_name:0:length-4}
		echo $out_name
		echo $SAVE_DIR"/"$out_name"_16000.wav"
		sox  $LOCATION -r 16000   $SAVE_DIR"/"$out_name"_16000.wav"
fi
echo "Transformation is completed!"

转载于:https://my.oschina.net/u/3863980/blog/1829186

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值