elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [Aporte by 4ng3r] Crear Voz con Java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Aporte by 4ng3r] Crear Voz con Java  (Leído 7,973 veces)
AFelipeTrujillo

Desconectado Desconectado

Mensajes: 160



Ver Perfil WWW
[Aporte by 4ng3r] Crear Voz con Java
« en: 21 Febrero 2010, 20:12 pm »

    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) lo pegamos en el classpath todos los .jar y nos ponemos a codear !!!

Esta libreria solo puede generar tres tipos de archivo:

  • wav
  • au
  • aif

Bueno les dejo el code:

[/list]
Código
  1. import com.sun.speech.freetts.audio.AudioPlayer;
  2. import com.sun.speech.freetts.audio.NullAudioPlayer;
  3. import com.sun.speech.freetts.audio.SingleFileAudioPlayer;
  4. import javax.sound.sampled.AudioSystem;
  5. import javax.sound.sampled.AudioFileFormat.Type;
  6.  
  7. import com.sun.speech.freetts.Voice;
  8. import com.sun.speech.freetts.VoiceManager;
  9.  
  10. public class MiVoice_TTS {
  11.  
  12.    private Voice v;
  13.    public MiVoice_TTS(String texto) {
  14.        VoiceManager admin_voice= VoiceManager.getInstance();
  15.        //administrador de recursos
  16.        v=admin_voice.getVoice(texto);
  17.        v.allocate();
  18.    }
  19.  
  20.    public static void main(String[] args) {
  21.        MiVoice_TTS voz = new MiVoice_TTS("kevin16");
  22.        // Creamos el objeto que me generara la voz de Kevin16
  23.        voz.hablar("Hi! my name is Anger");
  24.        voz.hablar("Este es un DEMO, bye ");
  25.        // LO QUE QUERAMOS QUE SE OIGA !!!
  26.        voz.toFile("archivo.wav","Andres");
  27.        //GENERAMOS EL ARCHIVO (archivo.wav)
  28.        voz.cerrar();
  29.    }
  30.  
  31.    private void cerrar() {
  32.        v.deallocate();
  33.  
  34.    }
  35.  
  36.    private void toFile(String filename,String text) {
  37.        Type tipo = getAudioType(filename);
  38.  
  39.        AudioPlayer audio = null;
  40.        if(audio == null)
  41.            audio = new NullAudioPlayer();
  42.        audio = new SingleFileAudioPlayer(getNombre(filename), tipo);
  43.        System.out.println("audioPlayer "+audio);
  44.        this.v.setAudioPlayer(audio);
  45.        this.v.speak(text);
  46.        audio.close();    
  47.  
  48.    }
  49.  
  50.    private String getNombre(String filename) {
  51.        int nam = filename.indexOf(".");
  52.        if (nam==-1){
  53.            return filename;
  54.        }
  55.        return filename.substring(0,nam);
  56.    }
  57.  
  58.    private Type getAudioType(String filename) {
  59.        // Elejimos el tipo de archivo
  60.        Type [] tipo = AudioSystem.getAudioFileTypes();
  61.        String ext = getExtension(filename);
  62.        System.out.println(ext);
  63.        for (int  i= 0; i < tipo.length; i++) {
  64.  
  65.            if (tipo[i].getExtension().equals(ext)){
  66.                System.out.println("Se ha elejido la extensión: "+tipo[i].getExtension());
  67.                return tipo[i];
  68.            }
  69.        }
  70.        return null;
  71.    }
  72.  
  73.    private String getExtension(String filename) {
  74.        int sub = filename.indexOf(".");
  75.        return filename.substring(sub+1);
  76.    }
  77.  
  78.    private void hablar(String texto ) {
  79.        this.v.speak(texto);
  80.        // Meotodo que envia el texto para ser reproducido
  81.    }
  82. }

    LINK



    En línea

    Blitzkrieg'


    Desconectado Desconectado

    Mensajes: 546


    print('Hi there')


    Ver Perfil WWW
    Re: [Aporte by 4ng3r] Crear Voz con Java
    « Respuesta #1 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).


    En línea



    sapito169


    Desconectado Desconectado

    Mensajes: 628



    Ver Perfil
    Re: [Aporte by 4ng3r] Crear Voz con Java
    « Respuesta #2 en: 21 Febrero 2010, 21:54 pm »

    exelente aporte sigue asi
    En línea

    Casidiablo
    Desarrollador
    Colaborador
    ***
    Desconectado Desconectado

    Mensajes: 2.919



    Ver Perfil WWW
    Re: [Aporte by 4ng3r] Crear Voz con Java
    « Respuesta #3 en: 21 Febrero 2010, 22:04 pm »

    Muy buen aporte... gracias.
    En línea

    AFelipeTrujillo

    Desconectado Desconectado

    Mensajes: 160



    Ver Perfil WWW
    Re: [Aporte by 4ng3r] Crear Voz con Java
    « Respuesta #4 en: 21 Febrero 2010, 22:20 pm »

    0k de nada !!!
    En línea

    Debci
    Wiki

    Desconectado Desconectado

    Mensajes: 2.021


    Actualizate o muere!


    Ver Perfil WWW
    Re: [Aporte by 4ng3r] Crear Voz con Java
    « Respuesta #5 en: 22 Febrero 2010, 19:52 pm »

    Sensacional.
    Nada mas que decir :)

    Saludos
    En línea

    Komodo


    Desconectado Desconectado

    Mensajes: 352



    Ver Perfil
    Re: [Aporte by 4ng3r] Crear Voz con Java
    « Respuesta #6 en: 23 Febrero 2010, 19:55 pm »

    Buen aporte
    En línea


    anunnaki2011

    Desconectado Desconectado

    Mensajes: 3


    Ver Perfil
    Re: [Aporte by 4ng3r] Crear Voz con Java
    « Respuesta #7 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.
    En línea

    Páginas: [1] Ir Arriba Respuesta Imprimir 

    Ir a:  

    Mensajes similares
    Asunto Iniciado por Respuestas Vistas Último mensaje
    [Aporte] Framework para Crear Juegos con javascript
    Desarrollo Web
    AFelipeTrujillo 7 6,739 Último mensaje 12 Diciembre 2013, 05:32 am
    por bboyleok
    [Aporte] Java-Leer cantidades (consola)
    Java
    Senior++ 2 2,743 Último mensaje 16 Julio 2012, 06:26 am
    por hucruz
    [Aporte-Tutorial] Tu primera GUI-Java
    Java
    Senior++ 1 1,946 Último mensaje 29 Julio 2012, 00:26 am
    por ChavalChavito
    [APORTE] Videojuego en JAVA
    Java
    NullP0inter 4 4,219 Último mensaje 21 Diciembre 2014, 20:31 pm
    por NullP0inter
    [Aporte] Operadores de Java
    Java
    3n31ch 0 2,285 Último mensaje 3 Febrero 2015, 01:08 am
    por 3n31ch
    WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines