summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Häggqvist <rasher@rasher.dk>2007-11-16 20:07:23 +0000
committerJonas Häggqvist <rasher@rasher.dk>2007-11-16 20:07:23 +0000
commita16ad96b1b4ccdc86ccf4467c4b930c6582eca42 (patch)
tree86ea12541c8b08645e964421ec658eef4c4c6a64
parent1b2561b0d9cdb37ac433e81f8a014a92d714b3e8 (diff)
downloadrockbox-a16ad96b1b4ccdc86ccf4467c4b930c6582eca42.zip
rockbox-a16ad96b1b4ccdc86ccf4467c4b930c6582eca42.tar.gz
rockbox-a16ad96b1b4ccdc86ccf4467c4b930c6582eca42.tar.bz2
rockbox-a16ad96b1b4ccdc86ccf4467c4b930c6582eca42.tar.xz
Remove deprecated shellscripts
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15647 a1c6a512-1295-4272-9138-f99709370657
-rwxr-xr-xtools/gentalkclips.sh152
-rwxr-xr-xtools/genvoice.sh153
-rw-r--r--tools/voicecommon.sh301
3 files changed, 0 insertions, 606 deletions
diff --git a/tools/gentalkclips.sh b/tools/gentalkclips.sh
deleted file mode 100755
index 8da3b37..0000000
--- a/tools/gentalkclips.sh
+++ /dev/null
@@ -1,152 +0,0 @@
-#!/bin/sh
-# __________ __ ___.
-# Open \______ \ ____ ____ | | _\_ |__ _______ ___
-# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
-# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
-# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
-# \/ \/ \/ \/ \/
-# $Id$
-#
-# Copyright (c) 2004 Daniel Gudlat
-# - http://www.rockbox.org/tracker/task/2131
-# Copyright (c) 2006 Jonas Häggqvist
-# - This version, only dirwalk and the following comments remains
-#
-# All files in this archive are subject to the GNU General Public License.
-# See the file COPYING in the source tree root for full license agreement.
-#
-# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
-# KIND, either express or implied.
-#
-# Note: You may wish to change some of the settings below.
-#
-# A script to automatically generate audio clips containing the names of all
-# folders in a directory tree for use with the "Talkbox" feature available to
-# users of the Rockbox open source firmware for Archos MP3 players and
-# recorders as well as several other devices. Talkbox permits the device to
-# speak the names of the folders as one navigates the directory structure on
-# the device, thus permitting "eyes-free" use for those for whom the usual
-# visual navigation is difficult or simply inadvisable.
-#
-# Audio clips are captured and stored in wave format, then converted into MP3
-# format by a third party application (lame). If you execute the script,
-# passing it the top level of your music file hierarchy as an argument while
-# your device is connected to your PC, then the resulting audio clips will be
-# generated and stored in the correct location for use with the Talkbox
-# feature. Alternatively, if you mirror your music folder structure from your
-# PC to your Archos device, you can just run the script on the PC and then
-# update the files on your Archos with your usual synchronization routine.
-#
-# NOTE: If you don't already have them installed, you may obtain the Festival
-# text to speech system and several voices at:
-#
-# http://www.cstr.ed.ac.uk/projects/festival.html
-# http://festvox.org/festival/
-#
-# The most pleasant freely available Festival voice I know of is the slt_arctic
-# voice from HST at http://hts.ics.nitech.ac.jp/
-#
-# Known bugs
-# - This script generates talk clips for all files, Rockbox only uses talk clips
-# for music files it seems.
-
-# Include voicecommon.sh from the same dir as this script
-# Any settings from voicecommon can be overridden if added below the following
-# line.
-source `dirname $0`'/voicecommon.sh'
-
-####################
-# General settings #
-####################
-
-# which TTS engine to use. Available: festival, flite, espeak
-TTS_ENGINE=festival
-# which encoder to use, available: lame, speex, vorbis (only lame will produce
-# functional voice clips)
-ENCODER=lame
-# whether to overwrite existing mp3 files or only create missing ones (Y/N)
-OVERWRITE_TALK=N
-# whether, when overwriting mp3 files, also to regenerate all the wav files
-OVERWRITE_WAV=N
-# whether to remove the intermediary wav files after creating the mp3 files
-REMOVE_WAV=Y
-# whether to recurse into subdirectories
-RECURSIVE=Y
-# whether to strip extensions from filenames
-STRIP_EXTENSIONS=Y
-
-###################
-# End of settings #
-###################
-
-strip_extension() {
- TO_SPEAK=$1
- # XXX: add any that needs adding
- for ext in mp3 ogg flac mpc sid; do
- TO_SPEAK=`echo "$TO_SPEAK" |sed "s/\.$ext//i"`
- done
-}
-
-# Walk directory $1, creating talk files if necessary, descend into
-# subdirecotries if specified
-dirwalk() {
- if [ -d "$1" ]; then
- for i in "$1"/*; do
- # Do not generate talk clip for talk(.wav) files
- if [ `echo "$i" | grep -c "\.talk$"` -ne 0 ] || \
- [ `echo "$i" | grep -c "\.talk\.wav$"` -ne 0 ]; then
- echo "Notice: Skipping file \"$i\""
- continue
- fi
-
- TO_SPEAK=`basename "$i"`
- if [ X$STRIP_EXTENSIONS = XY ]; then
- strip_extension "$TO_SPEAK"
- fi
-
- if [ -d "$i" ]; then
- # $i is a dir:
- SAVE_AS="$i"/_dirname.talk
- WAV_FILE="$SAVE_AS".wav
-
- # If a talk clip already exists, only generate a new one if
- # specified
- if [ ! -f "$SAVE_AS" ] || [ X$OVERWRITE_TALK = XY ]; then
- voice "$TO_SPEAK" "$WAV_FILE"
- encode "$WAV_FILE" "$SAVE_AS"
- fi
-
- # Need to be done lastly, or all variables will be dirty
- if [ X$RECURSIVE = XY ]; then
- dirwalk "$i"
- fi
- else
- # $i is a file:
- SAVE_AS="$i".talk
- WAV_FILE="$SAVE_AS".wav
-
- # If a talk clip already exists, only generate a new one if
- # specified
- if [ ! -f "$i.talk" ] || [ X$OVERWRITE_TALK != XY ]; then
- voice "$TO_SPEAK" "$WAV_FILE"
- encode "$WAV_FILE" "$SAVE_AS"
- fi
- fi
- # Remove wav file if specified
- if [ X$REMOVEWAV = XY ]; then
- rm -f "$WAV_FILE"
- fi
- done
- else
- echo "Warning: $1 is not a directory"
- fi
-}
-
-init_tts
-init_encoder
-if [ $# -gt 0 ]; then
- dirwalk "$*"
-else
- dirwalk .
-fi
-stop_tts
diff --git a/tools/genvoice.sh b/tools/genvoice.sh
deleted file mode 100755
index 4e58801..0000000
--- a/tools/genvoice.sh
+++ /dev/null
@@ -1,153 +0,0 @@
-#!/bin/sh
-# __________ __ ___.
-# Open \______ \ ____ ____ | | _\_ |__ _______ ___
-# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
-# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
-# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
-# \/ \/ \/ \/ \/
-# $Id$
-#
-# Copyright 2006 Jonas Häggqvist, some parts Copyright 2004 Daniel Gudlat
-#
-# All files in this archive are subject to the GNU General Public License.
-# See the file COPYING in the source tree root for full license agreement.
-#
-# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
-# KIND, either express or implied.
-
-# Include voicecommon.sh from the same dir as this script
-# Any settings from voicecommon can be overridden if added below the following
-# line.
-source `dirname $0`'/voicecommon.sh'
-
-####################
-# General settings #
-####################
-
-# These settings can be overridden by passing a file with definitions as
-# the fourth parameter to this script
-
-# which TTS engine to use. Available: festival, flite, espeak
-TTS_ENGINE=festival
-# which encoder to use, available: lame, speex, vorbis (only lame will produce
-# functional voice clips at this point)
-ENCODER=lame
-# Where to save temporary files
-TEMPDIR=/tmp
-# List of IDs to send to voicefont
-VOICEFONTIDS=voicefontids
-
-###################
-# End of settings #
-###################
-
-TARGET_ID="$4"
-createvoicefile() {
- RLANG="$1"
- $GENLANG -e=$ENGLISH -o -t=$TARGET $LANG_FILE > $VOICEFONTIDS
- $VOICEFONT "$VOICEFONTIDS" "$TARGET_ID" "$TEMPDIR/" "./$RLANG.voice"
- rm -f $VIOCEFONTIDS
-}
-
-deletefiles() {
- # XXX: might be unsafe depending on the value of TEMPDIR
- rm -f "${TEMPDIR}"/LANG_*
- rm -f "${TEMPDIR}"/VOICE_*
- rm -f "${TEMPDIR}"/NOT_USED_*
-}
-
-generateclips() {
- ROCKBOX_DIR="$1"
- RLANG="$2"
- TARGET="$3"
- GENLANG="$ROCKBOX_DIR"/tools/genlang
- ENGLISH="$ROCKBOX_DIR"/apps/lang/english.lang
- LANG_FILE="$ROCKBOX_DIR"/apps/lang/$RLANG.lang
-
- $GENLANG -e=$ENGLISH -o -t=$TARGET $LANG_FILE |(
- i=0
- while read line; do
- case `expr $i % 3` in
- 0)
- # String ID no.
- NUMBER=`echo $line |cut -b 2-`
- ;;
- 1)
- # String ID
- ID=`echo $line |cut -b 5-`
- ;;
- 2)
- # String
- STRING=`echo $line |cut -b 8-`
- # xxx: Should the hash include encoder/tts options?
- POOL_FILE=${POOL}/`echo "$STRING" |md5sum|cut -b-32`-${RLANG}.mp3
-
- if [ -n "$POOL" ]; then
- # we have a common pool of snippets, check that first
- # for available mp3 sounds, and if it is available copy
- # (symlink!) it over
- if [ -f "$POOL_FILE" ]; then
- echo "Re-using $ID from pool (${POOL_FILE})"
- if [ ! -e "$TEMPDIR/$ID".mp3 ]; then
- # only do this if not present
- cp -f "$POOL_FILE" "$TEMPDIR/$ID".mp3
- fi
- fi
- fi
-
- # only make an mp3 if not already present
- if [ ! -e "$TEMPDIR/$ID".mp3 ]; then
- # Now generate the file
- voice "$STRING" "$TEMPDIR/$ID".wav
- if [ -n "$POOL" ]; then
- # create it in the pool, symlink it back
- encode "$TEMPDIR/$ID".wav "$POOL_FILE"
- cp -f "$POOL_FILE" "$TEMPDIR/$ID".mp3
- else
- encode "$TEMPDIR/$ID".wav "$TEMPDIR/$ID".mp3
- fi
- fi
- ;;
- esac
- i=`expr $i + 1`
- done
- )
-}
-
-if [ -z "$4" ]; then
- echo "Usage: $0 rockboxdirectory language target targetid [settingsfile]";
- exit 32
-else
- if [ ! -d "$1" ] || [ ! -f "$1/tools/genlang" ]; then
- echo "Error: $1 is not a Rockbox directory"
- exit 33
- fi
- # Check for valid language
- if [ ! -f "$1/apps/lang/$2.lang" ]; then
- echo "Error: $2 is not a valid language"
- exit 34
- fi
- if [ ! -z "$5" ]; then
- if [ -f "$5" ]; then
- # Read settings from file
- . "$5"
- else
- echo "Error: $5 does not exist"
- exit 36
- fi
- fi
- # XXX: check for valid $TARGET?
-fi
-
-VOICEFONT=`dirname $0`/voicefont
-if [ ! -x $VOICEFONT ]; then
- echo "Error: $VOICEFONT does not exist or is not executable"
- exit 35
-fi
-
-init_tts
-init_encoder
-generateclips "$1" "$2" "$3"
-stop_tts
-createvoicefile "$2"
-deletefiles
diff --git a/tools/voicecommon.sh b/tools/voicecommon.sh
deleted file mode 100644
index 458a7b2..0000000
--- a/tools/voicecommon.sh
+++ /dev/null
@@ -1,301 +0,0 @@
-#!/bin/sh
-# __________ __ ___.
-# Open \______ \ ____ ____ | | _\_ |__ _______ ___
-# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
-# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
-# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
-# \/ \/ \/ \/ \/
-# $Id$
-#
-# Copyright (c) 2006 Jonas Häggqvist
-#
-# All files in this archive are subject to the GNU General Public License.
-# See the file COPYING in the source tree root for full license agreement.
-#
-# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
-# KIND, either express or implied.
-#
-# A selection of functions common to creating voicefiles for Rockbox.
-#
-# You may wish to change some of the settings below.
-
-#####################
-# Program locations #
-#####################
-
-# Leave any you're not using untouched, enter full path if the program is
-# not found
-
-# the festival main executable
-FESTIVAL_BIN=festival
-# the festival_client binary
-FESTIVAL_CLIENT=festival_client
-
-# The flite executable
-FLITE_BIN=flite
-
-# The eSpeak executable
-ESPEAK_BIN=espeak
-
-# The lame executable
-LAME_BIN=lame
-
-# The speexenc executable
-SPEEX_BIN=speexenc
-
-# The oggenc executable
-VORBIS_BIN=oggenc
-
-# Tools directory
-TOOLSDIR=`dirname $0`
-
-# The wavtrim executable
-WAVTRIM=$TOOLSDIR/wavtrim
-
-# The SAPI5 script directory
-if [ -f "`which cygpath`" ]; then
- SAPI5DIR=`cygpath $TOOLSDIR -a -w`
-fi
-
-#####################
-# Festival settings #
-#####################
-
-# If you're not using festival, leave untouched
-
-# whether to start the Festival server locally (Y/N)
-FESTIVAL_START=Y
-# the host of the Festival server
-# this is set to localhost automatically when FESTIVAL_START is Y
-FESTIVAL_HOST=localhost
-# the port of the Festival server
-FESTIVAL_PORT=1314
-# where to log the Festival client output
-FESTIVAL_LOG=/dev/null
-# other options to the festival server
-FESTIVAL_OPTS=""
-
-##################
-# Flite settings #
-##################
-
-# If you're not using flite, leave untouched
-FLITE_OPTS=""
-
-###################
-# eSpeak settings #
-###################
-
-# If you're not using eSpeak, leave untouched
-ESPEAK_OPTS=""
-
-####################
-# Wavtrim settings #
-####################
-
-# The maximum sample value that will be treated as silence by the wavtrim tool.
-# The value is expressed as an absolute 16 bit integer sample value (0 dB equals
-# 32767).
-#
-# 500 is a good guess - at least for Festival
-
-NOISEFLOOR='500'
-
-#####################
-# Encoding settings #
-#####################
-# where to log the encoder output
-ENC_LOG=/dev/null
-
-# Suggested: --vbr-new -t --nores -S
-# VBR, independent frames, silent mode
-LAME_OPTS="--vbr-new -t --nores -S"
-
-# Suggested:
-# XXX: suggest a default
-SPEEX_OPTS=""
-
-# Suggested: -q0 --downmix
-# Low quality, mono
-VORBIS_OPTS="-q0 --downmix"
-
-###################
-# End of settings #
-###################
-
-# Check if executables exist and perform any necessary initialisation
-init_tts() {
- case $TTS_ENGINE in
- festival)
- # Check for festival_client
- if [ ! -f "`which $FESTIVAL_CLIENT`" ]; then
- echo "Error: $FESTIVAL_CLIENT not found"
- exit 4
- fi
-
- # Check for, and start festival server if specified
- if [ X$FESTIVAL_START = XY ]; then
- if [ ! -f "`which $FESTIVAL_BIN`" ]; then
- echo "Error: $FESTIVAL_BIN not found"
- exit 3
- fi
- FESTIVAL_HOST='localhost'
- $FESTIVAL_BIN $FESTIVAL_OPTS --server 2>&1 > /dev/null &
- FESTIVAL_SERVER_PID=$!
- sleep 3
- if [ `ps | grep -c "^\ *$FESTIVAL_SERVER_PID"` -ne 1 ]; then
- echo "Error: Festival not started"
- exit 9
- fi
- fi
- # Test connection to festival server
- output=`echo -E "Rockbox" | $FESTIVAL_CLIENT --server \
- $FESTIVAL_HOST --otype riff --ttw --output \
- /dev/null 2>&1`
- if [ $? -ne 0 ]; then
- echo "Error: Couldn't connect to festival server at" \
- "$FESTIVAL_HOST ($output)"
- exit 8
- fi
- ;;
- flite)
- # Check for flite
- if [ ! -f "`which $FLITE_BIN`" ]; then
- echo "Error: $FLITE_BIN not found"
- exit 5
- fi
- ;;
- espeak)
- # Check for espeak
- if [ ! -f "`which $ESPEAK_BIN`" ]; then
- echo "Error: $ESPEAK_BIN not found"
- exit 5
- fi
- ;;
- sapi5)
- # Check for SAPI5
- cscript /B $SAPI5DIR/sapi5_init_tts.vbs
- if [ $? -ne 0 ]; then
- echo "Error: SAPI 5 not available"
- exit 5
- fi
- ;;
- *)
- echo "Error: no valid TTS engine selected: $TTS_ENGINE"
- exit 2
- ;;
- esac
- if [ ! -x $WAVTRIM ]; then
- echo "Error: $WAVTRIM is not available"
- exit 11
- fi
-}
-
-# Perform any necessary shutdown for TTS engine
-stop_tts() {
- case $TTS_ENGINE in
- festival)
- if [ X$FESTIVAL_START = XY ]; then
- # XXX: This is probably possible to do using festival_client
- kill $FESTIVAL_SERVER_PID > /dev/null 2>&1
- fi
- ;;
- esac
-}
-
-# Check if executables exist and perform any necessary initialisation
-init_encoder() {
- case $ENCODER in
- lame)
- # Check for lame binary
- if [ ! -f "`which $LAME_BIN`" ]; then
- echo "Error: $LAME_BIN not found"
- exit 6
- fi
- ;;
- speex)
- # Check for speexenc binary
- if [ ! -f "`which $SPEEX_BIN`" ]; then
- echo "Error: $SPEEX_BIN not found"
- exit 7
- fi
- ;;
- vorbis)
- # Check for vorbis encoder binary
- if [ ! -f "`which $VORBIS_BIN`" ]; then
- echo "Error: $VORBIS_BIN not found"
- exit 10
- fi
- ;;
- *)
- echo "Error: no valid encoder selected: $ENCODER"
- exit 1
- ;;
- esac
-
-}
-
-# Encode file $1 with ENCODER and save the result in $2, delete $1 if specified
-encode() {
- INPUT=$1
- OUTPUT=$2
-
- if [ ! -f "$INPUT" ]; then
- echo "Warning: missing input file: \"$INPUT\""
- else
- echo "Action: Encode $OUTPUT with $ENCODER"
- case $ENCODER in
- lame)
- $LAME_BIN $LAME_OPTS "$WAV_FILE" "$OUTPUT" >>$ENC_LOG 2>&1
- ;;
- speex)
- $SPEEX_BIN $SPEEX_OPTS "$WAV_FILE" "$OUTPUT" >>$ENC_LOG 2>&1
- ;;
- vorbis)
- $VORBIS_BIN $VORBIS_OPTS "$WAV_FILE" -o "$OUTPUT" >>$ENC_LOG 2>&1
- esac
- if [ ! -f "$OUTPUT" ]; then
- echo "Warning: missing output file \"$OUTPUT\""
- fi
- fi
-}
-
-# Generate file $2 containing $1 spoken by TTS_ENGINE, trim silence
-voice() {
- TO_SPEAK=$1
- WAV_FILE=$2
- if [ ! -f "$WAV_FILE" ] || [ X$OVERWRITE_WAV = XY ]; then
- if [ "${TO_SPEAK}" = "" ]; then
- touch "$WAV_FILE"
- else
- case $TTS_ENGINE in
- festival)
- echo "Action: Generate $WAV_FILE with festival"
- echo -E "$TO_SPEAK" | $FESTIVAL_CLIENT \
- --server $FESTIVAL_HOST \
- --otype riff --ttw --output "$WAV_FILE" 2>"$WAV_FILE"
- ;;
- espeak)
- echo "Action: Generate $WAV_FILE with eSpeak"
- echo $ESPEAK_BIN $ESPEAK_OPTS -w "$WAV_FILE"
- echo -E "$TO_SPEAK" | $ESPEAK_BIN $ESPEAK_OPTS -w "$WAV_FILE"
- ;;
- flite)
- echo "Action: Generate $WAV_FILE with flite"
- echo -E "$TO_SPEAK" | $FLITE_BIN $FLITE_OPTS -o "$WAV_FILE"
- ;;
- sapi5)
- cscript /B "$SAPI5DIR\sapi5_voice.vbs" ""$TO_SPEAK"" "$WAV_FILE"
- ;;
- esac
- fi
- fi
- trim "$WAV_FILE"
-}
-
-# Trim wavefile $1
-trim() {
- WAVEFILE="$1"
- echo "Action: Trim $WAV_FILE"
- $WAVTRIM "$WAVEFILE" $NOISEFLOOR
-}