2012-04-25 16 views
5

Estoy utilizando la biblioteca freeTTS para convertir texto a voz. Soy capaz de programar mi código utilizando esta biblioteca donde puedo reproducir el discurso de un texto en particular utilizando el código siguiente:Detectar el final de Speak en freeTTS para java

Voice voice = VoiceManager.getInstance().getVoice("kevin16"); 
if (voice != null) { 
    voice.allocate(); 
} 
voice.speak("Hello world"); 

¿Hay alguna manera con el que puedo conseguir una devolución de llamada cuando los lib TTS ha completado el habla ¿proceso?

Respuesta

3

Encontré la respuesta yo mismo ... no necesitamos una devolución de llamada cuando la lib ha completado el proceso de hablar. el control pasa a la siguiente línea solo cuando termina el proceso de hablar.

así es como lo hice:

Thread t = new Thread() { 
     @Override 
     public void run() { 
      super.run(); 
      try { 
      voice = initializeTTS(); // a func to initialize TTS lib. 
      voice.speak("Hello world"); 
      // do whatever you want to do from here only. 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
}; 
t.start(); 
Cuestiones relacionadas