PHP Code:
#!/bin/sh
QUOT='{"titleBar":{"clientParams":{"secondary":"'
SECOND='","useDefaultPrimary":false}}}'"'"
# SETUP SOME PATHS
LOGFILE="/var/tmp/commands"
SETPROP="/usr/bin/lipc-set-prop"
EXTDIR="/mnt/us/extensions/pocketsphinx"
BINARY=$EXTDIR"/usr/local/bin/pocketsphinx_continuous"
LOOPER=$EXTDIR"/looper.sh"
BB="/mnt/us/extensions/system/bin/busybox"
# SETUP STARTUP ANNOUNCEMENT
STARTUPANNOUNCE="Welcome To KindleTalk"
# DETERMINE MACHINE TYPE
ARCH="`uname -m`"
# LONGEST SENTENCE (like "I[ ]AM[ ]A[ ]SENTENCE[ ]")
SPACEMAX="6"
# CLEAR DOWN ANY OLD JUNK
echo -n "" > /var/tmp/talk
echo -n "" >/var/tmp/wordmatch
echo -n "" >/var/tmp/command
# FORCE 1st loop
echo "$STARTUPANNOUNCE" > "$LOGFILE"
# START LOOP
while :;
do usleep 50000
OUT=$(tail -n1 "$LOGFILE" | tr '\n' ' ' )
SPACECOUNT=$(echo "$OUT" | grep -o " " | wc -l)
#echo -n $OUT
TEST=$( echo "$OUT" | tr -d ' '| tr -d '.')
#echo "TEST is --(""$TEST"")--"
#echo "COMMAND PARSED WAS --(""$OUT"")--"
# DO WE HAVE A COMMAND (remove whitespace for the test)
if [ -n "$TEST" ]; then
# IS A JUMBLE OF WORDS OR LESS THAN 3 WORDS
if [ ! "$SPACECOUNT" -le "$SPACEMAX" ]; then
echo "Space count $SPACECOUNT Not Less than Maximum spaces allowed $SPACEMAX"
"$SETPROP" -s com.lab126.pillow configureChrome -s "$QUOT""Phrase too long... Take it slow""$SECOND"
OUT=""
/usr/bin/aplay "$EXTDIR""/usr/on1.wav"
fi
echo -n " $OUT ." > /var/tmp/talk
echo -n "$OUT" > /var/tmp/command
VAR=$(cat /var/tmp/talk)
TRIMVAR=$(echo "$OUT" | sed 's/ *$//g')
# IS IT A VALID NON-SPACE ONLY VARIABLE?
if [ -n "$TRIMVAR" ]; then
# RUN POSSIBLE ACTION MATCHING
echo "Case was --(""$TRIMVAR"")--"
echo -n "TRUE" > /var/tmp/wordmatch
case $TRIMVAR in
"$STARTUPANNOUNCE")\
( echo "RECOGNITION INTIALISED" ) ;;
"HOME"|"GO HOME"|"CLOSE"|"CLOSE THAT"|"CLOSE IT"|"KILL IT"|"KILL THAT"|"KILL"|"HOME SCREEN")\
( "$SETPROP" -s com.lab126.appmgrd start 'app://com.lab126.booklet.home'; ) ;;
"NEXT PAGE"|"PAGE FORWARD"|"FORWARD"|"PAGE RIGHT")\
( "$SETPROP" -s com.lab126.appmgrd start 'app://com.lab126.booklet.home' ) ;;
"BROWSER"|"WEB BROWSER"|"W_W_W"|"WORLD WIDE WEB"|"WEB")\
( "$SETPROP" -s com.lab126.appmgrd start 'app://com.lab126.browser' ) ;;
"RUN COOL"|"OPEN COOL"|"SELECT COOL")\
( echo -n "KINDLET" > /var/tmp/wordmatch ) ;; # They only have 5 seconds to start up so lets really free up resources
"OPEN NETWORKING"|"RUN NETWORKING"|"U_S_B NETWORKING"|"RUN U_S_B NETWORKING"|"NETWORK"|"NETWORKING"|"RUN NETWORK")\
( /mnt/us/usbnet/bin/usbnetwork ) ;;
"SCREEN SAVER"|"POWER OFF"|"POWER DOWN")\
( "$SETPROP" -i com.lab126.powerd preventScreenSaver 0; /usr/bin/powerd_test -p ) ;;
"KILL SCREEN SAVER")\
( "$SETPROP" -i com.lab126.powerd preventScreenSaver 1; ) ;;
"SHUT DOWN")\
( echo -n "QUIT" > /var/tmp/wordmatch ) ;;
*) ( echo -n "FALSE" > /var/tmp/wordmatch ; echo "Case was $OUT is not processed" ) ;;
esac
MATCH=$( cat /var/tmp/wordmatch )
echo "Words found as command Match = $MATCH"
if [ "$MATCH" == "KINDLET" ] ; then
killall -9 pocketsphinx_continuous
"$SETPROP" -s com.lab126.pillow configureChrome -s "$QUOT""STARTING KUAL!""$SECOND"
usleep 30000;
"$SETPROP" com.lab126.appmgrd start "app://com.lab126.booklet.kindlet/mnt/us/documents/KindleLauncher-2.0.azw2"
sleep 5
fi
if [ "$MATCH" == "QUIT" ] ; then
killall -9 pocketsphinx_continuous
"$SETPROP" -s com.lab126.pillow configureChrome -s "$QUOT""Goodbye""$SECOND"
exit
fi
if [ "$MATCH" == "TRUE" ] ; then
# shut down the listener
killall -9 pocketsphinx_continuous
usleep 10000
# IS THIS A HIGHER DEVICE?
if [ "$ARCH" == "armv7l" ] ; then
lipc-set-prop com.lab126.pillow configureChrome -s "$QUOT""$OUT.""$SECOND"
fi
# Announce Recognised Words
/mnt/us/extensions/flite/flite -f /var/tmp/talk &
sleep 1
# START LISTENER AGAIN
"$LOOPER" &
else
# ALERT BAD MATCH
"$SETPROP" -s com.lab126.pillow configureChrome -s "$QUOT""Phase not recognised.""$SECOND"
/usr/bin/aplay "$EXTDIR""/usr/on3.wav"
# End actions on MATCHED
fi
echo -n '' > /var/tmp/commands
sleep 2
fi
# TIDY UP AGAIN ?
echo -n "" > /var/tmp/talk
echo -n "" > /var/tmp/command
echo -n "" > "$LOGFILE"
# IS THIS A HIGHER DEVICE?
if [ "$ARCH" == "armv7l" ] ; then
"$SETPROP" -s com.lab126.pillow configureChrome -s "$QUOT""Now Listening.""$SECOND"
# CLOSE LOOPS
fi
# INDICATE READINESS... RESET SOUND CARD?
/usr/bin/aplay "$EXTDIR""/usr/on2.wav"
fi
done