diff options
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/configure | 46 | ||||
-rwxr-xr-x | tools/voice.pl | 9 |
2 files changed, 51 insertions, 4 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 |
diff --git a/tools/voice.pl b/tools/voice.pl index f3cb860a26..8198501777 100755 --- a/tools/voice.pl +++ b/tools/voice.pl | |||
@@ -192,6 +192,13 @@ sub voicestring { | |||
192 | print RBSPEAK $string . "\n"; | 192 | print RBSPEAK $string . "\n"; |
193 | close(RBSPEAK); | 193 | close(RBSPEAK); |
194 | } | 194 | } |
195 | elsif ($name eq 'mimic') { | ||
196 | $cmd = "mimic $tts_engine_opts -o $output"; | ||
197 | print("> $cmd\n") if $verbose; | ||
198 | open (MIMIC, "| $cmd"); | ||
199 | print MIMIC $string . "\n"; | ||
200 | close(MIMIC); | ||
201 | } | ||
195 | } | 202 | } |
196 | 203 | ||
197 | # trim leading / trailing silence from the clip | 204 | # trim leading / trailing silence from the clip |
@@ -305,7 +312,7 @@ sub generateclips { | |||
305 | 312 | ||
306 | # If we have a pool of snippets, see if the string exists there first | 313 | # If we have a pool of snippets, see if the string exists there first |
307 | if (defined($ENV{'POOL'})) { | 314 | if (defined($ENV{'POOL'})) { |
308 | $pool_file = sprintf("%s/%s-%s.mp3", $ENV{'POOL'}, | 315 | $pool_file = sprintf("%s/%s-%s.mp3", $ENV{'POOL'}, |
309 | md5_hex("$voice $tts_engine $tts_engine_opts $encoder_opts"), | 316 | md5_hex("$voice $tts_engine $tts_engine_opts $encoder_opts"), |
310 | $language); | 317 | $language); |
311 | if (-f $pool_file) { | 318 | if (-f $pool_file) { |