- Si alguna vez escuchado el Narrator.exe de Windows, pues programe uno parecido en java solo es que toca agregarle la GUI pero no es gran cosa, simplemente es colocarle un jtextfield y un boton, enviar como parámetro el string que le de la entra al jtextfield al método hablar(), como cosa adicional hice que me generara un archivo .wav y lo guardara en la carpeta del proyecto.
Bueno para poder desarrollar algún code con estas características debemos descargar la siguiente librería (
Esta libreria solo puede generar tres tipos de archivo:
- wav
- au
- aif
Bueno les dejo el code:
[/list]
Código
import com.sun.speech.freetts.audio.AudioPlayer; import com.sun.speech.freetts.audio.NullAudioPlayer; import com.sun.speech.freetts.audio.SingleFileAudioPlayer; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.AudioFileFormat.Type; import com.sun.speech.freetts.Voice; import com.sun.speech.freetts.VoiceManager; public class MiVoice_TTS { private Voice v; VoiceManager admin_voice= VoiceManager.getInstance(); //administrador de recursos v=admin_voice.getVoice(texto); v.allocate(); } MiVoice_TTS voz = new MiVoice_TTS("kevin16"); // Creamos el objeto que me generara la voz de Kevin16 voz.hablar("Hi! my name is Anger"); voz.hablar("Este es un DEMO, bye "); // LO QUE QUERAMOS QUE SE OIGA !!! voz.toFile("archivo.wav","Andres"); //GENERAMOS EL ARCHIVO (archivo.wav) voz.cerrar(); } private void cerrar() { v.deallocate(); } Type tipo = getAudioType(filename); AudioPlayer audio = null; if(audio == null) audio = new NullAudioPlayer(); audio = new SingleFileAudioPlayer(getNombre(filename), tipo); this.v.setAudioPlayer(audio); this.v.speak(text); audio.close(); } int nam = filename.indexOf("."); if (nam==-1){ return filename; } return filename.substring(0,nam); } // Elejimos el tipo de archivo for (int i= 0; i < tipo.length; i++) { if (tipo[i].getExtension().equals(ext)){ return tipo[i]; } } return null; } int sub = filename.indexOf("."); return filename.substring(sub+1); } this.v.speak(texto); // Meotodo que envia el texto para ser reproducido } }
LINK