Java Runtime.getRuntime(). exec (String) 명령을 사용하여 Festival을 실행 한 다음 OutputStreamWriter를 사용하여 outpustream에 일부 명령을 쓰려고합니다. 프로세스의stdin에 입력을 보내고 Java에서 전체 출력 받기 - Festival TTS
이 잘 작동, 나는 같은 것을 할 수 있어요 :이 작동 말할 수
Process p = Runtime.getRuntime().exec("festival");
Writer w = new OutputStreamWriter(p.getOutputStream());
w.append("(SayText \"Hello World\")");
w.flush();
분명히 방법이 스피커를 통해 텍스트를 말하는 것입니다.
내가 힘들게하는 일은 터미널에서 볼 수있는 텍스트 출력을 얻는 것입니다. 다른 출력 (예 : (voice.list))과 같은 텍스트를 출력하려고합니다. 아마도 stdout으로 출력 할 것입니다. 내가 만약 깨끗한 방법으로 전체 일을 할 것,
BufferedReader reader = new BufferedReader (new InputStreamReader(p.getInputStream()));
w.append("(voice.list)");
w.flush();
String output = "";
String line = reader.readLine();
System.out.println(line);
while ((line = reader.readLine()) != null)
{
System.out.println("Reading: " + line);
output += line;
}
합니다 (에서 System.out.println 그냥 디버깅을위한 것입니다 :
예를 들어, 나는 다음과 같은 방법으로의 BufferedReader를 사용하려고했습니다
내가 시도한 코드가 무엇이든 관계없이, 나는 축제에서 어떤 결과물도 얻을 수 없다. 다른 명령에서 출력을 얻을 수 있습니다. E.G. 나는이 코드를 http://en.allexperts.com/q/Java-1046/2008/2/Runtime-getRuntime-exec-cmd.htm으로 시도했지만 많은 다른 명령 (예 : ls
)과 함께 작동하지만 Festival은 작동하지 않습니다.
어떻게하면이 기능을 사용할 수 있는지 알 수 있습니까?
감사합니다.