Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: AFelipeTrujillo en 21 Febrero 2010, 20:12 PM

Título: [Aporte by 4ng3r] Crear Voz con Java
Publicado por: AFelipeTrujillo en 21 Febrero 2010, 20:12 PM
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]
Código (java) [Seleccionar]
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/)

Título: Re: [Aporte by 4ng3r] Crear Voz con Java
Publicado por: Blitzkrieg' en 21 Febrero 2010, 21:14 PM
Buen aporte, yo habia hecho uno con GUI y con la libreria FreeTTS (creo que la usas ahi).
Título: Re: [Aporte by 4ng3r] Crear Voz con Java
Publicado por: sapito169 en 21 Febrero 2010, 21:54 PM
exelente aporte sigue asi
Título: Re: [Aporte by 4ng3r] Crear Voz con Java
Publicado por: Casidiablo en 21 Febrero 2010, 22:04 PM
Muy buen aporte... gracias.
Título: Re: [Aporte by 4ng3r] Crear Voz con Java
Publicado por: AFelipeTrujillo en 21 Febrero 2010, 22:20 PM
0k de nada !!!
Título: Re: [Aporte by 4ng3r] Crear Voz con Java
Publicado por: Debci en 22 Febrero 2010, 19:52 PM
Sensacional.
Nada mas que decir :)

Saludos
Título: Re: [Aporte by 4ng3r] Crear Voz con Java
Publicado por: Komodo en 23 Febrero 2010, 19:55 PM
Buen aporte
Título: Re: [Aporte by 4ng3r] Crear Voz con Java
Publicado por: anunnaki2011 en 6 Octubre 2015, 01:10 AM
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.