stunnel: Update from 5.37 to 5.38
[termux-packages] / packages / termux-api / termux-tts-speak
index 9fe2b10..ff49339 100755 (executable)
@@ -1,33 +1,51 @@
 #!/bin/sh
+set -e -u
 
-set -u
-
-PARAMS=""
-
+SCRIPTNAME=termux-tts-speak
 show_usage () {
-       echo "usage: termux-tts-speak [OPTIONS]"
-       echo ""
-       echo "Speak stdin input with a system text-to-speech (TTS) engine."
-       echo "Find out about available engines by executing 'termux-tts-engines'."
-       echo "  -e, --engine <engine>        TTS engine to use"
-       echo "  -l, --language <language>    language to speak in (may be unsupported by the engine)"
-       echo "  -p, --pitch <pitch>          pitch to use in speech" 
-       echo "  -r, --rate <rate>            rate to use in speech"
+    echo "Usage: $SCRIPTNAME [-e engine] [-l language] [-n region] [-v variant] [-p pitch] [-r rate] [-s stream] [text-to-speak]"
+    echo "Speak text with a system text-to-speech (TTS) engine. The text to speak is either supplied as arguments or read from stdin if no arguments are given."
+    echo ""
+    echo "  -e engine    TTS engine to use (see termux-tts-engines)"
+    echo "  -l language  language to speak in (may be unsupported by the engine)"
+    echo "  -n region    region of language to speak in"
+    echo "  -v variant   variant of the language to speak in"
+    echo "  -p pitch     pitch to use in speech. 1.0 is the normal pitch,"
+    echo "                 lower values lower the tone of the synthesized voice,"
+    echo "                 greater values increase it."
+    echo "  -r rate      speech rate to use. 1.0 is the normal speech rate,"
+    echo "                 lower values slow down the speech"
+    echo "                 (0.5 is half the normal speech rate)"
+    echo "                 while greater values accelerates it"
+    echo "                 (2.0 is twice the normal speech rate)."
+    echo "  -s stream    audio stream to use (default:NOTIFICATION), one of:"
+    echo "                 ALARM, MUSIC, NOTIFICATION, RING, SYSTEM, VOICE_CALL"
+    echo ""
+    exit 0
 }
 
-O=`busybox getopt -q -l engine: -l help -l language: -l pitch: -l rate: -- e:hl:p:r: "$@"`
-if [ $? != 0 ] ; then show_usage; exit 1 ; fi
-eval set -- "$O"
-while true; do
-case "$1" in
-       -e|--engine) PARAMS="$PARAMS --es engine $2"; shift 2;;
-       -l|--language) PARAMS="$PARAMS --es language $2"; shift 2;;
-       -p|--pitch) PARAMS="$PARAMS --ef pitch $2"; shift 2;;
-       -r|--rate) PARAMS="$PARAMS --ef rate $2"; shift 2;;
-       -h|--help) show_usage; exit 0;;
-       --)     shift; break;;
-       *)      echo Error; exit 1;;
-esac
+PARAMS=""
+
+while getopts :he:l:n:v:p:r:s: option
+do
+    case "$option" in
+        h) show_usage;;
+        e) PARAMS="$PARAMS --es engine $OPTARG";;
+        l) PARAMS="$PARAMS --es language $OPTARG";;
+        n) PARAMS="$PARAMS --es region $OPTARG";;
+        v) PARAMS="$PARAMS --es variant $OPTARG";;
+        p) PARAMS="$PARAMS --ef pitch $OPTARG";;
+        r) PARAMS="$PARAMS --ef rate $OPTARG";;
+        s) PARAMS="$PARAMS --es stream $OPTARG";;
+        ?) echo "$SCRIPTNAME: illegal option -$OPTARG"; exit 1;
+    esac
 done
+shift $(($OPTIND-1))
+
+CMD="@TERMUX_API@ TextToSpeech $PARAMS"
+if [ $# = 0 ]; then
+    $CMD
+else
+    echo $@ | $CMD
+fi
 
-@TERMUX_API@ TextToSpeech $PARAMS