Skip to content

Commit ad7985b

Browse files
committed
0.20180702
Stdin
1 parent 5d01269 commit ad7985b

File tree

3 files changed

+59
-14
lines changed

3 files changed

+59
-14
lines changed

CHANGELOG

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
0.20180702
2+
3+
Stdin
4+
5+
0.20180701
6+
7+
Update Readme
8+
9+
0.20180630
10+
11+
Init version

VERSION

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
0.20180702

rhvoiceplay.sh

Lines changed: 47 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
11
#!/bin/sh
2+
#rhvoiceplay.sh
3+
#Depends: dash, rhvoice, aplay
4+
5+
sname="RHVoicePlay"
6+
sversion="0.20180702"
7+
8+
echo "$sname $sversion" >&2
29

3-
fhlp="false"
4-
tspeaker="aleksandr"
510
tln=0
11+
tspeaker="aleksandr"
12+
fhlp="false"
613
while getopts ":l:s:h" opt
714
do
815
case $opt in
@@ -18,32 +25,58 @@ do
1825
esac
1926
done
2027
shift "$(($OPTIND - 1))"
28+
2129
text="$1"
2230
if [ "x$text" = "x" -o "x$fhlp" = "xtrue" ]
2331
then
2432
echo "Usage:"
25-
echo "$0 [options] book.txt"
33+
echo "$0 [options] book.txt|-|string"
2634
echo "Options:"
27-
echo " -l N line begin [N=0-100] (default = 0)"
28-
echo " -s str RHVoice speaker (default = aleksandr)"
35+
echo " -l N line begin [N=0-100] (only .txt, default = 0)"
36+
echo " -s str RHVoice speaker (RHVoice >=0.5, default = aleksandr)"
2937
echo " -h help"
3038
exit 0
3139
fi
3240

3341
if [ ! "$(command -v RHVoice)" -a ! "$(command -v RHVoice-client)" ]
3442
then
35-
echo "WARNING! RHVoice not found"
43+
echo "WARNING! RHVoice not found" >&2
3644
exit 1
3745
fi
3846

39-
text="$1"
40-
textsize=$(zcat "$text" | sed -e 's/[\.\?\!\…]/&\n/g' | sed -e '/^$/d' | wc -l)
41-
echo "$text: $textsize"
42-
tln=$(($tln*$textsize/100))
43-
i=$tln
44-
if [ "$(command -v RHVoice)" ]
47+
if [ ! "$(command -v aplay)" ]
48+
then
49+
echo "WARNING! aplay not found" >&2
50+
exit 1
51+
fi
52+
53+
if [ -f "$text" ]
54+
then
55+
textsize=$(zcat "$text" | sed -e 's/[\.\?\!\…]/&\n/g' | sed -e '/^$/d' | wc -l)
56+
echo "$text: $textsize" >&2
57+
tln=$(($tln*$textsize/100))
58+
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
65+
elif [ "x$text" = "x-" ]
4566
then
46-
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
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
4773
else
48-
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
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
4982
fi

0 commit comments

Comments
 (0)