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 (
AQUI (http://www.4shared.com/file/134728399/b1776120/freetts-12.html)) lo pegamos en el
classpath todos los .jar y nos ponemos a codear !!!
Esta libreria solo puede generar tres tipos de archivo:
Bueno les dejo el code:
[/list]
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;
public MiVoice_TTS(String texto) {
VoiceManager admin_voice= VoiceManager.getInstance();
//administrador de recursos
v=admin_voice.getVoice(texto);
v.allocate();
}
public static void main(String[] args) {
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();
}
private void toFile(String filename,String text) {
Type tipo = getAudioType(filename);
AudioPlayer audio = null;
if(audio == null)
audio = new NullAudioPlayer();
audio = new SingleFileAudioPlayer(getNombre(filename), tipo);
System.out.println("audioPlayer "+audio);
this.v.setAudioPlayer(audio);
this.v.speak(text);
audio.close();
}
private String getNombre(String filename) {
int nam = filename.indexOf(".");
if (nam==-1){
return filename;
}
return filename.substring(0,nam);
}
private Type getAudioType(String filename) {
// Elejimos el tipo de archivo
Type [] tipo = AudioSystem.getAudioFileTypes();
String ext = getExtension(filename);
System.out.println(ext);
for (int i= 0; i < tipo.length; i++) {
if (tipo[i].getExtension().equals(ext)){
System.out.println("Se ha elejido la extensión: "+tipo[i].getExtension());
return tipo[i];
}
}
return null;
}
private String getExtension(String filename) {
int sub = filename.indexOf(".");
return filename.substring(sub+1);
}
private void hablar(String texto ) {
this.v.speak(texto);
// Meotodo que envia el texto para ser reproducido
}
}
LINK (http://angercode.wordpress.com/)
Buen aporte, yo habia hecho uno con GUI y con la libreria FreeTTS (creo que la usas ahi).
exelente aporte sigue asi
Muy buen aporte... gracias.
0k de nada !!!
Sensacional.
Nada mas que decir :)
Saludos
Buen aporte
Que buen aporte. Pero digo, si no es mucho, ya que lo implementaste seguramente podrías decirnos (o al menos orientarnos) como ponerlo en spanish. Gracias por compartir.