diff options
author | Solomon Peachy <pizza@shaftnet.org> | 2018-12-22 20:26:09 -0500 |
---|---|---|
committer | Solomon Peachy <pizza@shaftnet.org> | 2018-12-22 20:27:39 -0500 |
commit | e598ba13f577c2a4508a5dc376531b6d47450db0 (patch) | |
tree | da829751d4616cad06c8156b1ec7eac1ac36c6d4 /tools | |
parent | 928557bb174fdc6ae44d784137e19a61b4f42693 (diff) | |
download | rockbox-e598ba13f577c2a4508a5dc376531b6d47450db0.tar.gz rockbox-e598ba13f577c2a4508a5dc376531b6d47450db0.tar.bz2 rockbox-e598ba13f577c2a4508a5dc376531b6d47450db0.zip |
Support using 'rbspeak' to generate voice files.
(Full credit to Igor Poretsky)
Change-Id: Ib9c5d2748cd7e0543b7fd110e83b4656089254b8
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/configure | 21 | ||||
-rwxr-xr-x | tools/voice.pl | 8 |
2 files changed, 25 insertions, 4 deletions
diff --git a/tools/configure b/tools/configure index fa7a830959..e7f254ada7 100755 --- a/tools/configure +++ b/tools/configure @@ -1119,6 +1119,14 @@ voiceconfig () { DEFAULT_NOISEFLOOR="500" DEFAULT_CHOICE="w" fi + if [ -n "`findtool rbspeak`" ]; then + RBSPEAK="(O)ther " + RBSPEAK_OPTS="" + DEFAULT_TTS="rbspeak" + DEFAULT_TTS_OPTS=$RBSPEAK_OPTS + DEFAULT_NOISEFLOOR="500" + DEFAULT_CHOICE="O" + fi # Allow SAPI if Windows is in use if [ -n "`findtool winver`" ]; then SAPI="(S)API " @@ -1129,7 +1137,7 @@ voiceconfig () { DEFAULT_CHOICE="s" fi - if [ "$FESTIVAL" = "$FLITE" ] && [ "$FLITE" = "$ESPEAK" ] && [ "$ESPEAK" = "$SAPI" ] && [ "$SAPI" = "$SWIFT" ]; then + if [ "$FESTIVAL" = "$FLITE" ] && [ "$FLITE" = "$ESPEAK" ] && [ "$ESPEAK" = "$SAPI" ] && [ "$SAPI" = "$SWIFT" ] && [ "$SWIFT" = "$RBSPEAK" ]; then echo "You need Festival, eSpeak or Flite in your path, or SAPI available to build voice files" exit 3 fi @@ -1137,7 +1145,7 @@ voiceconfig () { if [ "$ARG_TTS" ]; then option=$ARG_TTS else - echo "TTS engine to use: ${FLITE}${FESTIVAL}${ESPEAK}${SAPI}${SWIFT}(${DEFAULT_CHOICE})?" + echo "TTS engine to use: ${FLITE}${FESTIVAL}${ESPEAK}${SAPI}${SWIFT}${RBSPEAK}(${DEFAULT_CHOICE})?" option=`input` if [ -z "$option" ]; then option=${DEFAULT_CHOICE}; fi advopts="$advopts --tts=$option" @@ -1168,6 +1176,11 @@ voiceconfig () { NOISEFLOOR="500" TTS_OPTS=$SWIFT_OPTS ;; + [Oo]) + TTS_ENGINE="rbspeak" + NOISEFLOOR="500" + TTS_OPTS=$RBSPEAK_OPTS + ;; *) TTS_ENGINE=$DEFAULT_TTS TTS_OPTS=$DEFAULT_TTS_OPTS @@ -1213,11 +1226,11 @@ voiceconfig () { if [ "$swcodec" = "yes" ]; then ENCODER="rbspeexenc" - ENC_OPTS="-q 4 -c 10" + ENC_OPTS="-q 7 -c 10" else if [ -n "`findtool lame`" ]; then ENCODER="lame" - ENC_OPTS="--resample 12 -t -m m -h -V 9.999 -S -B 64 --vbr-new" + ENC_OPTS="-t -m m -h -V 9 -S -B 64 -b 8" else echo "You need LAME in the system path to build voice files for" echo "HWCODEC targets." diff --git a/tools/voice.pl b/tools/voice.pl index f74791babb..f3cb860a26 100755 --- a/tools/voice.pl +++ b/tools/voice.pl @@ -184,6 +184,14 @@ sub voicestring { print("> $cmd\n") if $verbose; system($cmd); } + elsif ($name eq 'rbspeak') { + # xxx: $tts_engine_opts isn't used + $cmd = "rbspeak $output"; + print("> $cmd\n") if $verbose; + open(RBSPEAK, "| $cmd"); + print RBSPEAK $string . "\n"; + close(RBSPEAK); + } } # trim leading / trailing silence from the clip |