|
3 | 3 | #Depends: bash, sed, gzip, rhvoice, aplay | sox |
4 | 4 |
|
5 | 5 | sname="RHVoicePlay" |
6 | | -sversion="0.20190921" |
| 6 | +sversion="0.20200523" |
7 | 7 |
|
8 | 8 | echo "$sname $sversion" >&2 |
9 | 9 |
|
10 | 10 | tnocomp="" |
11 | 11 | tcomp="sed" |
12 | | -[ ! "$(command -v $tcomp)" ] && tnocomp="$tnocomp $tcomp" |
| 12 | +[ ! "$(which $tcomp)" ] && tnocomp="$tnocomp $tcomp" |
13 | 13 | tcomp="gzip" |
14 | | -[ ! "$(command -v $tcomp)" ] && tnocomp="$tnocomp $tcomp" |
| 14 | +[ ! "$(which $tcomp)" ] && tnocomp="$tnocomp $tcomp" |
15 | 15 | tcomp="RHVoice" |
16 | 16 | tcompa="RHVoice-test" |
17 | | -[ ! "$(command -v $tcomp)" -a ! "$(command -v $tcompa)" ] && tnocomp="$tnocomp $tcomp|$tcompa" |
| 17 | +[ ! "$(which $tcomp)" -a ! "$(which $tcompa)" ] && tnocomp="$tnocomp $tcomp|$tcompa" |
18 | 18 | tcomp="aplay" |
19 | 19 | tcompa="play" |
20 | | -[ ! "$(command -v $tcomp)" -a ! "$(command -v $tcompa)" ] && tnocomp="$tnocomp $tcomp|$tcompa" |
| 20 | +[ ! "$(which $tcomp)" -a ! "$(which $tcompa)" ] && tnocomp="$tnocomp $tcomp|$tcompa" |
21 | 21 | if [ "x$tnocomp" != "x" ] |
22 | 22 | then |
23 | 23 | echo "Not found:${tnocomp}!" >&2 |
24 | 24 | echo "" >&2 |
25 | 25 | exit 1 |
26 | 26 | fi |
27 | 27 |
|
| 28 | +tstdout="/dev/stdout" |
| 29 | +tstdin="/dev/stdin" |
| 30 | + |
28 | 31 | tln=0 |
29 | 32 | tspeaker="elena" |
30 | 33 | fhlp="false" |
|
57 | 60 | fi |
58 | 61 |
|
59 | 62 | trhvoice="RHVoice" |
60 | | -[ ! "$(command -v $trhvoice)" ] && trhvoice="RHVoice-test -p $tspeaker -o -" |
61 | | -tplay="aplay" |
62 | | -[ ! "$(command -v $tplay)" ] && tplay="play -q" |
| 63 | +[ ! "$(which $trhvoice)" ] && trhvoice="RHVoice-test -p $tspeaker -o $tstdout" |
| 64 | +tplay="aplay $tstdin" |
| 65 | +[ ! "$(which $tplay)" ] && tplay="play -q $tstdin" |
63 | 66 |
|
64 | 67 | if [ -f "$text" ] |
65 | 68 | then |
66 | 69 | textsize=$(gzip -dcf "$text" | sed -e 's/[\.\?\!\…] /&\n/g' | sed -e '/^$/d' | wc -l) |
67 | 70 | echo "$text: $textsize" >&2 |
68 | 71 | tln=$(($tln*$textsize/1000)) |
69 | 72 | i=$tln |
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 |
| 73 | + 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 |
71 | 74 | elif [ "x$text" = "x-" ] |
72 | 75 | then |
73 | | - while read tline; do printf ": "; echo "$tline"; echo "$tline" | $trhvoice 2>/dev/null | $tplay - 2>/dev/null; done |
| 76 | + while read tline; do printf ": "; echo "$tline"; echo "$tline" | $trhvoice 2>/dev/null | $tplay 2>/dev/null; done |
74 | 77 | else |
75 | 78 | echo "$text" |
76 | | - echo "$text" | $trhvoice 2>/dev/null | $tplay - 2>/dev/null |
| 79 | + echo "$text" | $trhvoice 2>/dev/null | $tplay 2>/dev/null |
77 | 80 | fi |
0 commit comments