1*4882a593Smuzhiyun#!/bin/bash 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunWAVS_PATH=$1 4*4882a593SmuzhiyunERR_CNT=0 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunPREFIX_LOG="/tmp/check_logs" 7*4882a593SmuzhiyunTMP_STAT_LOG="tmp_stat.log" 8*4882a593SmuzhiyunTMP_STATS_LOG="tmp_stats.log" 9*4882a593SmuzhiyunSTAT_LOG="stat.log" 10*4882a593SmuzhiyunSTATS_LOG="stats.log" 11*4882a593SmuzhiyunRESULT_LOG="result.log" 12*4882a593Smuzhiyun 13*4882a593Smuzhiyunecho "WAVS_PATH: $WAVS_PATH" 14*4882a593Smuzhiyun 15*4882a593Smuzhiyuncheck_prepare() 16*4882a593Smuzhiyun{ 17*4882a593Smuzhiyun if [ -n "$PREFIX_LOG" ]; then 18*4882a593Smuzhiyun TMP_STAT_LOG="$PREFIX_LOG/$TMP_STAT_LOG" 19*4882a593Smuzhiyun TMP_STATS_LOG="$PREFIX_LOG/$TMP_STATS_LOG" 20*4882a593Smuzhiyun STAT_LOG="$PREFIX_LOG/$STAT_LOG" 21*4882a593Smuzhiyun STATS_LOG="$PREFIX_LOG/$STATS_LOG" 22*4882a593Smuzhiyun RESULT_LOG="$PREFIX_LOG/$RESULT_LOG" 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun mkdir -p $PREFIX_LOG 25*4882a593Smuzhiyun else 26*4882a593Smuzhiyun echo "PREFIX_LOG is empty" 27*4882a593Smuzhiyun fi 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun rm $TMP_STAT_LOG -f 30*4882a593Smuzhiyun rm $TMP_STATS_LOG -f 31*4882a593Smuzhiyun rm $STAT_LOG -f 32*4882a593Smuzhiyun rm $STATS_LOG -f 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun echo "there is no error on test loopback" > $RESULT_LOG 35*4882a593Smuzhiyun} 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun# There is don't need to add function keyword on busybox shell 38*4882a593Smuzhiyuncheck_wav() 39*4882a593Smuzhiyun{ 40*4882a593Smuzhiyun wav=$1 41*4882a593Smuzhiyun threshold_db=-15 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun echo "will check wav: $wav with threshold_db: $threshold_db" 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun sox $wav -n stat 2> $TMP_STAT_LOG 46*4882a593Smuzhiyun sox $wav -n stats 2> $TMP_STATS_LOG 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun echo "======== $wav stat info: ========" >> $STAT_LOG 49*4882a593Smuzhiyun cat $TMP_STAT_LOG >> $STAT_LOG 50*4882a593Smuzhiyun echo >> $STAT_LOG 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun echo "======== $wav stats info: ========" >> $STATS_LOG 53*4882a593Smuzhiyun cat $TMP_STATS_LOG >> $STATS_LOG 54*4882a593Smuzhiyun echo >> $STATS_LOG 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun l_pk=`awk 'NR==5{ printf "%.2f", $5 }' $TMP_STATS_LOG` 57*4882a593Smuzhiyun r_pk=`awk 'NR==5{ printf "%.2f", $6 }' $TMP_STATS_LOG` 58*4882a593Smuzhiyun echo "l_pk: $l_pk, r_pk: $r_pk" 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun last_err=$ERR_CNT 61*4882a593Smuzhiyun ERR_CNT=$(echo $l_pk $threshold_db $ERR_CNT | awk '{ 62*4882a593Smuzhiyun if ($1 > $2) { 63*4882a593Smuzhiyun $3+=1; 64*4882a593Smuzhiyun } 65*4882a593Smuzhiyun } END { 66*4882a593Smuzhiyun printf "%d", $3; 67*4882a593Smuzhiyun }') 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun if [ $last_err != $ERR_CNT ]; then 70*4882a593Smuzhiyun echo "ERROR! $wav Left Pk lev dB: $l_pk > $threshold_db" >> $RESULT_LOG 71*4882a593Smuzhiyun else 72*4882a593Smuzhiyun echo "OK! $wav Left Pk lev dB: $l_pk < $threshold_db" >> $RESULT_LOG 73*4882a593Smuzhiyun fi 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun last_err=$ERR_CNT 76*4882a593Smuzhiyun ERR_CNT=$(echo $r_pk $threshold_db $ERR_CNT | awk '{ 77*4882a593Smuzhiyun if ($1 > $2) { 78*4882a593Smuzhiyun $3+=1; 79*4882a593Smuzhiyun } 80*4882a593Smuzhiyun } END { 81*4882a593Smuzhiyun printf "%d", $3; 82*4882a593Smuzhiyun }') 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun if [ $last_err != $ERR_CNT ]; then 85*4882a593Smuzhiyun echo "ERROR! $wav Right Pk lev dB: $r_pk > $threshold_db" >> $RESULT_LOG 86*4882a593Smuzhiyun else 87*4882a593Smuzhiyun echo "OK! $wav Right Pk lev dB: $r_pk < $threshold_db" >> $RESULT_LOG 88*4882a593Smuzhiyun fi 89*4882a593Smuzhiyun 90*4882a593Smuzhiyun echo "total ERR_CNT: $ERR_CNT" 91*4882a593Smuzhiyun 92*4882a593Smuzhiyun #cat $TMP_STATS_LOG | while read line 93*4882a593Smuzhiyun #do 94*4882a593Smuzhiyun # echo "line: $line" 95*4882a593Smuzhiyun # label=`echo $line | awk '{ print $1 }'` 96*4882a593Smuzhiyun # echo "label: $label" 97*4882a593Smuzhiyun #done 98*4882a593Smuzhiyun} 99*4882a593Smuzhiyun 100*4882a593Smuzhiyuncheck_start() 101*4882a593Smuzhiyun{ 102*4882a593Smuzhiyun cd $WAVS_PATH 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun check_prepare 105*4882a593Smuzhiyun 106*4882a593Smuzhiyun for file in `ls $WAVS_PATH` 107*4882a593Smuzhiyun do 108*4882a593Smuzhiyun if [ -f $file ]; then 109*4882a593Smuzhiyun # echo "found file: $file" 110*4882a593Smuzhiyun 111*4882a593Smuzhiyun suffix=$(echo "$file" | cut -d . -f2) 112*4882a593Smuzhiyun # echo "found suffix: $suffix" 113*4882a593Smuzhiyun 114*4882a593Smuzhiyun if [ $suffix == "wav" ]; then 115*4882a593Smuzhiyun # echo "found wav file: $file" 116*4882a593Smuzhiyun check_wav $file 117*4882a593Smuzhiyun fi 118*4882a593Smuzhiyun fi 119*4882a593Smuzhiyun done 120*4882a593Smuzhiyun} 121*4882a593Smuzhiyun 122*4882a593Smuzhiyuncheck_start 123