|
3 | 3 | #Depends: dash, rhvoice, aplay |
4 | 4 |
|
5 | 5 | sname="RHVoicePlay" |
6 | | -sversion="0.20180702" |
| 6 | +sversion="0.20180704" |
7 | 7 |
|
8 | 8 | echo "$sname $sversion" >&2 |
9 | 9 |
|
| 10 | +tnocomp="" |
| 11 | +tcomp="RHVoice" |
| 12 | +tcompa="RHVoice-client" |
| 13 | +[ ! "$(command -v $tcomp)" -a ! "$(command -v $tcompa)" ] && tnocomp="$tnocomp $tcomp|$tcompa" |
| 14 | +tcomp="aplay" |
| 15 | +tcompa="play" |
| 16 | +[ ! "$(command -v $tcomp)" -a ! "$(command -v $tcompa)" ] && tnocomp="$tnocomp $tcomp|$tcompa" |
| 17 | +if [ "x$tnocomp" != "x" ] |
| 18 | +then |
| 19 | + echo "Not found:${tnocomp}!" >&2 |
| 20 | + echo "" >&2 |
| 21 | + exit 1 |
| 22 | +fi |
| 23 | + |
10 | 24 | tln=0 |
11 | 25 | tspeaker="aleksandr" |
12 | 26 | fhlp="false" |
|
38 | 52 | exit 0 |
39 | 53 | fi |
40 | 54 |
|
41 | | -if [ ! "$(command -v RHVoice)" -a ! "$(command -v RHVoice-client)" ] |
42 | | -then |
43 | | - echo "WARNING! RHVoice not found" >&2 |
44 | | - exit 1 |
45 | | -fi |
46 | | - |
47 | | -if [ ! "$(command -v aplay)" ] |
48 | | -then |
49 | | - echo "WARNING! aplay not found" >&2 |
50 | | - exit 1 |
51 | | -fi |
| 55 | +trhvoice="RHVoice" |
| 56 | +[ ! "$(command -v $trhvoice)" ] && trhvoice="RHVoice-client -s $tspeaker" |
| 57 | +tplay="aplay" |
| 58 | +[ ! "$(command -v $tplay)" ] && tplay="play -q" |
52 | 59 |
|
53 | 60 | if [ -f "$text" ] |
54 | 61 | then |
55 | 62 | textsize=$(zcat "$text" | sed -e 's/[\.\?\!\…]/&\n/g' | sed -e '/^$/d' | wc -l) |
56 | 63 | echo "$text: $textsize" >&2 |
57 | 64 | tln=$(($tln*$textsize/100)) |
58 | 65 | i=$tln |
59 | | - if [ "$(command -v RHVoice)" ] |
60 | | - then |
61 | | - 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" | RHVoice | aplay - 2>/dev/null; (( i++ )); done |
62 | | - else |
63 | | - 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" | RHVoice-client -s "$tspeaker" | aplay - 2>/dev/null; (( i++ )); done |
64 | | - fi |
| 66 | + 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 | $tplay - 2>/dev/null; i=$(($i+1)); done |
65 | 67 | elif [ "x$text" = "x-" ] |
66 | 68 | then |
67 | | - if [ "$(command -v RHVoice)" ] |
68 | | - then |
69 | | - while read tline; do printf ": "; echo "$tline"; echo "$tline" | RHVoice | aplay - 2>/dev/null; done |
70 | | - else |
71 | | - while read tline; do printf ": "; echo "$tline"; echo "$tline" | RHVoice-client -s "$tspeaker" | aplay - 2>/dev/null; done |
72 | | - fi |
| 69 | + while read tline; do printf ": "; echo "$tline"; echo "$tline" | $trhvoice | $tplay - 2>/dev/null; done |
73 | 70 | else |
74 | | - if [ "$(command -v RHVoice)" ] |
75 | | - then |
76 | | - echo "$text" |
77 | | - echo "$text" | RHVoice | aplay - 2>/dev/null |
78 | | - else |
79 | | - echo "$text" |
80 | | - echo "$text" | RHVoice-client -s "$tspeaker" | aplay - 2>/dev/null |
81 | | - fi |
| 71 | + echo "$text" |
| 72 | + echo "$text" | $trhvoice | $tplay - 2>/dev/null |
82 | 73 | fi |
0 commit comments