You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

93 lines
2.6 KiB

#!/bin/sh
#
#####################################################################
# filename: getWxFor
#
# description: Uses festival text-to-speech synthesiser to convert
# weather data to audio and save as a ul file.
#
# usage: getWxFor
#
# 2006/06/20 w0anm Original Release
#
# $Id: getWxFor 46 2009-04-10 04:27:25Z $
######################################################################
# Load config file
if [ -f ${CUSTOM}/wx_scripts.conf ] ; then
source ${CUSTOM}/wx_scripts.conf
else
echo "Missing ${CUSTOM}/wx_scripts.conf file, aborting..."
exit 1
fi
# if ZONE not an argument, then use what is defined in configure file.
if [ "$1" = "" ] ; then
ZONE_FOR=$ZONE
else
ZONE_FOR=$1
fi
if [ ! -d $WXFOR_SPOOLDIR/$ZONE_FOR ] ; then
mkdir -p $WXFOR_SPOOLDIR/$ZONE_FOR
fi
# Local noaa forecast text link
# setup ZONE_FOR variable to convert to lower case and extract state
LC_ZONE=`echo $ZONE_FOR | tr 'A-Z' 'a-z'`
STATE=`echo $LC_ZONE | awk 'BEGIN { FS="z" } { print $1} '`
# set URL for wget. This is the url where the forcasts originate.
URL="http://tgftp.nws.noaa.gov/data/forecasts/zone/${STATE}/${LC_ZONE}.txt"
WX_TXT="wx_forecast.txt"
WX_TXT_TMP="wx_forecast.tmp"
WX_TXT_TMP2="wx_forecast2.tmp"
#----------------------------- Main program -----------------------------
echo Downloading....
cd $WXFOR_SPOOLDIR/$ZONE_FOR
wget $URL
echo Done....
mv ohz070.txt $WX_TXT_TMP
# delete the first 10 lines before converting
TOTAL_LINE=`wc $WX_TXT_TMP | awk '{print $1}'`
LINE_DISP=`expr $TOTAL_LINE - 10`
# sed -f ${CUSTOM}/wxtext_conv.sed $WX_TXT_TMP > $WX_TXT
tail -${LINE_DISP} $WX_TXT_TMP | sed "s/\./\. /g ; s/0S/0's/g ; s/\$\$\$/. end of message . . . /g" | sed -f ${CUSTOM}/wxtext_conv.sed > $WX_TXT
# Do standard conversion..
# first convert to lower case
cat $WX_TXT | tr 'A-Z' 'a-z' > $WX_TXT_TMP
sed -f ${CUSTOM}/wxtext_conv.sed $WX_TXT_TMP > $WX_TXT_TMP2
# add heater and cat file
echo "Weather forecast for $ZONE..." > $WX_TXT_TMP
cat $WX_TXT_TMP $WX_TXT_TMP2 > $WX_TXT
# clean up temp files
rm $WX_TXT_TMP $WX_TXT_TMP2
# convert
if [ $TEXT2SPEECH = "festival" ] ; then
# $TEXT2WAVE -F 8000 -scale 0.5 -otype ulaw $WX_TXT -o forecast.ul -eval "(voice_ked_diphone)"
$TEXT2WAVE -otype wav -o forecast.wav $WXTXT
ffmpeg -i forecast.wav -y -ar 48000 forecast1.wav
/usr/local/bin/wav2dvtool forecast1.wav KD8TUZ_REPORT KD8TUZ_B KD8TUZ_G "Hamilton Forecast Report" forecast.dvtool
fi
if [ $TEXT2SPEECH = "cepstral" ] ; then
$TEXT2WAVE -m text -f $WX_TXT -p audio/encoding=ulaw,audio/sampling-rate=8000,audio/volume=$SWIFT_VOL -o forecast.ul
fi
exit 0
# EOF

Powered by TurnKey Linux.