Substituir
Runtime.getRuntime().exec("spd-say \"" +message+ "\" -p 100 -i 100 -t female1");
com
Runtime.getRuntime().exec(new String[]{"spd-say",'\"'+message+'\"',"-p 100 -i 100 -t female1");
e vai funcionar. Felicidades!
Eu tenho o seguinte código:
public class ChatSystem {
public static void main(String[] args) {
SpeakCommand sp = new SpeakCommand("hello master! How are you feeling today?");
sp.execute();
}
}
import java.io.IOException;
public class SpeakCommand implements CommandInterface{
String message;
public SpeakCommand(String content){
message=content;
}
public void execute() {
try {
System.out.println("spd-say \"" +message+ "\" -p 100 -i 100 -t female1");
Runtime.getRuntime().exec("spd-say \"" +message+ "\" -p 100 -i 100 -t female1");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Que, se executado, resulta em meu laptop dizendo "olá" na voz correta (que é -p 100 -i 100 -t female1 -r -40
é realmente passado para dizer). A impressão também afirma corretamente spd-say "hello master! How are you feeling today?" -p 100 -i 100 -t female1
, que se executado na linha de comando funciona. Alguma ideia do que estou fazendo errado?
Substituir
Runtime.getRuntime().exec("spd-say \"" +message+ "\" -p 100 -i 100 -t female1");
com
Runtime.getRuntime().exec(new String[]{"spd-say",'\"'+message+'\"',"-p 100 -i 100 -t female1");
e vai funcionar. Felicidades!