diff options
author | Solomon Peachy <pizza@shaftnet.org> | 2020-04-16 15:03:27 -0400 |
---|---|---|
committer | Solomon Peachy <pizza@shaftnet.org> | 2020-04-16 21:28:09 +0200 |
commit | e0d7c7c6326b0620b3969880b9b55a8e8f090a69 (patch) | |
tree | fe44a4005d1b32fee862261704dd6fac278a939a /tools/configure | |
parent | 84624e14f805ae5b76cc9384aa5c3d7a185727b4 (diff) | |
download | rockbox-e0d7c7c6326b0620b3969880b9b55a8e8f090a69.tar.gz rockbox-e0d7c7c6326b0620b3969880b9b55a8e8f090a69.zip |
voice: Add support for Mimic TTS engine.
...It generates decent voice files in 1/10th the time of festival.
Change-Id: I1bf9271633a8a0e9c483761b8685f296d2f303b8
Diffstat (limited to 'tools/configure')
-rwxr-xr-x | tools/configure | 46 |
1 files changed, 43 insertions, 3 deletions
diff --git a/tools/configure b/tools/configure index 38130f85e8..eb426ec0d0 100755 --- a/tools/configure +++ b/tools/configure | |||
@@ -1133,6 +1133,14 @@ voiceconfig () { | |||
1133 | DEFAULT_NOISEFLOOR="500" | 1133 | DEFAULT_NOISEFLOOR="500" |
1134 | DEFAULT_CHOICE="f" | 1134 | DEFAULT_CHOICE="f" |
1135 | fi | 1135 | fi |
1136 | if [ -n "`findtool mimic`" ]; then | ||
1137 | MIMIC="(M)imic " | ||
1138 | MIMIC_OPTS="" | ||
1139 | DEFAULT_TTS="mimic" | ||
1140 | DEFAULT_TTS_OPTS=$MIMIC_OPTS | ||
1141 | DEFAULT_NOISEFLOOR="500" | ||
1142 | DEFAULT_CHOICE="M" | ||
1143 | fi | ||
1136 | if [ -n "`findtool swift`" ]; then | 1144 | if [ -n "`findtool swift`" ]; then |
1137 | SWIFT="S(w)ift " | 1145 | SWIFT="S(w)ift " |
1138 | SWIFT_OPTS="" | 1146 | SWIFT_OPTS="" |
@@ -1159,15 +1167,15 @@ voiceconfig () { | |||
1159 | DEFAULT_CHOICE="s" | 1167 | DEFAULT_CHOICE="s" |
1160 | fi | 1168 | fi |
1161 | 1169 | ||
1162 | if [ "$FESTIVAL" = "$FLITE" ] && [ "$FLITE" = "$ESPEAK" ] && [ "$ESPEAK" = "$SAPI" ] && [ "$SAPI" = "$SWIFT" ] && [ "$SWIFT" = "$RBSPEAK" ]; then | 1170 | if [ "$FESTIVAL" = "$FLITE" ] && [ "$FLITE" = "$ESPEAK" ] && [ "$ESPEAK" = "$SAPI" ] && [ "$SAPI" = "$MIMIC"] && [ "$MIMIC" = "$SWIFT" ] && [ "$SWIFT" = "$RBSPEAK" ]; then |
1163 | echo "You need Festival, eSpeak or Flite in your path, or SAPI available to build voice files" | 1171 | echo "You need Festival, eSpeak, Mimic, Flite, or rbspeak in your path, or SAPI available to build voice files" |
1164 | exit 3 | 1172 | exit 3 |
1165 | fi | 1173 | fi |
1166 | 1174 | ||
1167 | if [ "$ARG_TTS" ]; then | 1175 | if [ "$ARG_TTS" ]; then |
1168 | option=$ARG_TTS | 1176 | option=$ARG_TTS |
1169 | else | 1177 | else |
1170 | echo "TTS engine to use: ${FLITE}${FESTIVAL}${ESPEAK}${SAPI}${SWIFT}${RBSPEAK}(${DEFAULT_CHOICE})?" | 1178 | echo "TTS engine to use: ${FLITE}${FESTIVAL}${ESPEAK}${MIMIC}${SAPI}${SWIFT}${RBSPEAK}(${DEFAULT_CHOICE})?" |
1171 | option=`input` | 1179 | option=`input` |
1172 | if [ -z "$option" ]; then option=${DEFAULT_CHOICE}; fi | 1180 | if [ -z "$option" ]; then option=${DEFAULT_CHOICE}; fi |
1173 | advopts="$advopts --tts=$option" | 1181 | advopts="$advopts --tts=$option" |
@@ -1188,6 +1196,11 @@ voiceconfig () { | |||
1188 | NOISEFLOOR="500" | 1196 | NOISEFLOOR="500" |
1189 | TTS_OPTS=$FESTIVAL_OPTS | 1197 | TTS_OPTS=$FESTIVAL_OPTS |
1190 | ;; | 1198 | ;; |
1199 | [Mm]) | ||
1200 | TTS_ENGINE="mimic" | ||
1201 | NOISEFLOOR="500" | ||
1202 | TTS_OPTS=$MIMIC_OPTS | ||
1203 | ;; | ||
1191 | [Ss]) | 1204 | [Ss]) |
1192 | TTS_ENGINE="sapi" | 1205 | TTS_ENGINE="sapi" |
1193 | NOISEFLOOR="500" | 1206 | NOISEFLOOR="500" |
@@ -1238,6 +1251,33 @@ voiceconfig () { | |||
1238 | advopts="$advopts --voice=$CHOICE" | 1251 | advopts="$advopts --voice=$CHOICE" |
1239 | echo "Festival voice set to $TTS_FESTIVAL_VOICE" | 1252 | echo "Festival voice set to $TTS_FESTIVAL_VOICE" |
1240 | echo "(voice_$TTS_FESTIVAL_VOICE)" > festival-prolog.scm | 1253 | echo "(voice_$TTS_FESTIVAL_VOICE)" > festival-prolog.scm |
1254 | elif [ "$TTS_ENGINE" = "mimic" ]; then | ||
1255 | voicelist=`mimic -lv | cut -d':' -f2` | ||
1256 | for voice in $voicelist; do | ||
1257 | TTS_MIMIC_VOICE="$voice" # Default choice | ||
1258 | break | ||
1259 | done | ||
1260 | if [ "$ARG_VOICE" ]; then | ||
1261 | CHOICE=$ARG_VOICE | ||
1262 | else | ||
1263 | i=1 | ||
1264 | for voice in $voicelist; do | ||
1265 | printf "%3d. %s\n" "$i" "$voice" | ||
1266 | i=`expr $i + 1` | ||
1267 | done | ||
1268 | printf "Please select which Mimic voice to use (default is $TTS_MIMIC_VOICE): " | ||
1269 | CHOICE=`input` | ||
1270 | fi | ||
1271 | i=1 | ||
1272 | for voice in $voicelist; do | ||
1273 | if [ "$i" = "$CHOICE" -o "$voice" = "$CHOICE" ]; then | ||
1274 | TTS_MIMIC_VOICE="$voice" | ||
1275 | fi | ||
1276 | i=`expr $i + 1` | ||
1277 | done | ||
1278 | advopts="$advopts --voice=$CHOICE" | ||
1279 | echo "Mimic voice set to $TTS_MIMIC_VOICE" | ||
1280 | TTS_OPTS="$TTS_OPTS -voice $TTS_MIMIC_VOICE" | ||
1241 | fi | 1281 | fi |
1242 | 1282 | ||
1243 | # Read custom tts options from command line | 1283 | # Read custom tts options from command line |