Sintetizador de voz con Java
Ayer hice una prueba con sintetizador de voz freetts apoyado con mbrola.
Todo funciona bien si utilizas las voces por defecto (us1, us2 y us3). Pero he bajado las voces en español, las he puesto en el mismo directorio que otras pero ignoro si te tiene que llamarla de otra forma.
Pongo el directorio donde tengo todas las voces y el código hice:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package sonido;
import com.sun.speech.freetts.*;
import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.JButton;
import javax.swing.JFrame;
/**
*
* @author pcx
*/
public class Sonido {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
JFrame mimarco=new lamina();
mimarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mimarco.setVisible(true);
}
}
class lamina extends JFrame {
VoiceManager vocesi;
Voice voz;
private JButton boton;
public lamina(){
setBounds(500,500,400,400);
setLayout (new BorderLayout());
boton= new JButton("ESCUCHA!");
boton.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
hablar();
}
});
add(boton, BorderLayout.CENTER);
}
public void hablar(){
System.setProperty("mbrola.base", "src/voces");
vocesi= VoiceManager.getInstance();
voz= vocesi.getVoice("mbrola_us1");
voz.allocate();
voz.speak("comeme la polla");
}
}