package miscperipherals.speech;
import java.io.File;
public class SpeechProviderFestival implements ISpeechProvider {
private final String executable;
public SpeechProviderFestival() {
executable = getFestivalExecutable();
}
@Override
public String getName() {
return "festival";
}
@Override
public int getPriority() {
return 5;
}
@Override
public boolean canUse(String text, double x, double y, double z, double speed) {
return true;
}
@Override
public File speak(String text, double speed) {
try {
File f = SpeechManager.makeTempFile(".wav");
return SpeechManager.runProcess(executable, "-o", f.getPath()) ? f : null;
} catch (Throwable e) {
e.printStackTrace();
return null;
}
}
public static String getFestivalExecutable() {
try {
Runtime.getRuntime().exec(new String[] {"text2wave", "-h"});
return "text2wave";
} catch (Throwable e) {}
return null;
}
}