将多个“.alaw”文件并行转换为“.mp3”
convert multiple '.alaw' files to '.mp3' in parallel
/root/date/agent1/voicefilename-in.alaw
/root/date/agent1/voicefilename-out.alaw
/root/date/agent2/voicefilename-in.alaw
/root/date/agent2/voicefilename-out.alaw
/root/date/agent4/voicefilename-in.wav
/root/date/agent4/voicefilename-out.wav
我正在使用以下脚本将上述类型的文件转换为 mp3。
完成转换需要很长时间,因为一次只转换一个文件
有没有其他方法可以同时读取和转换多个文件
FILES=/root/*/*/*-in.*"
for f in $FILES
do
fileroot="${f%-in.*}"
if [ ${f##*.} == "alaw" ]
then
sox -t al "$f" -s -r 8000 -2 "$fileroot"-in.wav
sox -t al "$fileroot"-out.alaw -s -r 8000 -2 "$fileroot"-out.wav
sox -m "$fileroot"-in.wav "$fileroot"-out.wav "$fileroot".wav
lame -q0 -b8 "$fileroot".wav "$fileroot".mp3
rm "$f" "$fileroot"-out.alaw "$fileroot"-in.wav "$fileroot"-out.wav "$fileroot".wav
elif [ ${f##*.} == "wav" ]
then
sox -m "$f" "$fileroot"-out.wav "$fileroot".wav
lame -q0 -b8 "$fileroot".wav "$fileroot".mp3
rm "$f" "$fileroot"-out.wav "$fileroot".wav
fi
done
使用 GNU parallel
转换 .alaw 文件,每个 CPU 核心使用一个进程,编写每个将文件输出到当前目录,尝试类似:
parallel sox {} {/.}.mp3 ::: /root/date/agent1/*.alaw
然后如果输出令人满意,并且不再需要源文件:
rm /root/date/agent1/*.alaw
/root/date/agent1/voicefilename-in.alaw
/root/date/agent1/voicefilename-out.alaw
/root/date/agent2/voicefilename-in.alaw
/root/date/agent2/voicefilename-out.alaw
/root/date/agent4/voicefilename-in.wav
/root/date/agent4/voicefilename-out.wav
我正在使用以下脚本将上述类型的文件转换为 mp3。
完成转换需要很长时间,因为一次只转换一个文件
有没有其他方法可以同时读取和转换多个文件
FILES=/root/*/*/*-in.*"
for f in $FILES
do
fileroot="${f%-in.*}"
if [ ${f##*.} == "alaw" ]
then
sox -t al "$f" -s -r 8000 -2 "$fileroot"-in.wav
sox -t al "$fileroot"-out.alaw -s -r 8000 -2 "$fileroot"-out.wav
sox -m "$fileroot"-in.wav "$fileroot"-out.wav "$fileroot".wav
lame -q0 -b8 "$fileroot".wav "$fileroot".mp3
rm "$f" "$fileroot"-out.alaw "$fileroot"-in.wav "$fileroot"-out.wav "$fileroot".wav
elif [ ${f##*.} == "wav" ]
then
sox -m "$f" "$fileroot"-out.wav "$fileroot".wav
lame -q0 -b8 "$fileroot".wav "$fileroot".mp3
rm "$f" "$fileroot"-out.wav "$fileroot".wav
fi
done
使用 GNU parallel
转换 .alaw 文件,每个 CPU 核心使用一个进程,编写每个将文件输出到当前目录,尝试类似:
parallel sox {} {/.}.mp3 ::: /root/date/agent1/*.alaw
然后如果输出令人满意,并且不再需要源文件:
rm /root/date/agent1/*.alaw