1- #! /bin/sh
1+ #! /bin/bash
22# rhvoiceplay.sh
3- # Depends: dash , sed, gzip | zutils , rhvoice, aplay | sox
3+ # Depends: bash , sed, gzip, rhvoice, aplay | sox
44
55sname=" RHVoicePlay"
6- sversion=" 0.20190517 "
6+ sversion=" 0.20190921 "
77
88echo " $sname $sversion " >&2
99
1010tnocomp=" "
1111tcomp=" sed"
1212[ ! " $( command -v $tcomp ) " ] && tnocomp=" $tnocomp $tcomp "
13- tcomp=" zcat "
13+ tcomp=" gzip "
1414[ ! " $( command -v $tcomp ) " ] && tnocomp=" $tnocomp $tcomp "
1515tcomp=" RHVoice"
1616tcompa=" RHVoice-test"
2626fi
2727
2828tln=0
29- tspeaker=" aleksandr "
29+ tspeaker=" elena "
3030fhlp=" false"
3131while getopts " :l:s:h" opt
3232do
5050 echo " Usage:"
5151 echo " $0 [options] book.txt|-|string"
5252 echo " Options:"
53- echo " -l N line begin [N=0-100 ] (only .txt, default = 0)"
54- echo " -s str RHVoice speaker (RHVoice >=0.5, default = aleksandr )"
53+ echo " -l N line begin [N=0-1000 ] (only .txt, default = 0)"
54+ echo " -s str RHVoice speaker (RHVoice >=0.5, default = elena )"
5555 echo " -h help"
5656 exit 0
5757fi
@@ -63,11 +63,11 @@ tplay="aplay"
6363
6464if [ -f " $text " ]
6565then
66- textsize=$( zcat " $text " | sed -e ' s/[\.\?\!\…] /&\n/g' | sed -e ' /^$/d' | wc -l)
66+ textsize=$( gzip -dcf " $text " | sed -e ' s/[\.\?\!\…] /&\n/g' | sed -e ' /^$/d' | wc -l)
6767 echo " $text : $textsize " >&2
68- tln=$(( $tln * $textsize / 100 ))
68+ tln=$(( $tln * $textsize / 1000 ))
6969 i=$tln
70- zcat " $text " | sed -e ' s/[\.\?\!\…] /&\n/g' | sed -e ' /^$/d' | sed -e " 1,${tln} d" | while read tline; do p=$(( 10000 * $i / $textsize )) ; p1=$(( $p / 100 )) ; p2=$(( $p - $p1 * 100 )) ; printf " %02d.%02d : " $p1 $p2 ; echo " $tline " ; echo " $tline " | $trhvoice 2> /dev/null | $tplay - 2> /dev/null; i=$(( $i + 1 )) ; done
70+ gzip -dcf " $text " | sed -e ' s/[\.\?\!\…] /&\n/g' | sed -e ' /^$/d' | sed -e " 1,${tln} d" | while read tline; do p=$(( 10000 * $i / $textsize )) ; p1=$(( $p / 10 )) ; p2=$(( $p - $p1 * 10 )) ; printf " %03d.%01d : " $p1 $p2 ; echo " $tline " ; echo " $tline " | $trhvoice 2> /dev/null | $tplay - 2> /dev/null; i=$(( $i + 1 )) ; done
7171elif [ " x$text " = " x-" ]
7272then
7373 while read tline; do printf " : " ; echo " $tline " ; echo " $tline " | $trhvoice 2> /dev/null | $tplay - 2> /dev/null; done
0 commit comments