summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtools/configure46
-rwxr-xr-xtools/voice.pl9
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) {