FreeTTS, convertir textos a voz… agosto 21, 2007
Posted by superpiwi in Eclipse, Java, Programacion.trackback
Hoy algo divertido, vamos a convertir un texto en voz. Para ello hacemos uso del siguiente API: FreeTTS
Descargate el paquete desde su sitio web y lo descomprimes, Tienes que añadir a tu CLASSPATH los siguientes ficheros:
cmu_time_awb.jar, cmu_us_kal.jar, cmudict04.jar, cmulex.jar, cmutimelex.jar, en_us.jar, freets.jar, jsapi.jar
Aqui te dejo un ejemplo sencillito. He escrito una clase SimpleTTS. Con un constructor donde le pasas la voz que quieres usar («En el ejemplo Kevin16) y 2 metodos: speak (que te reproduce por el altavoz el texto especificado) y toFile (que te graba un fichero de audio).
Ejemplo:
SimpleTTS voz = new SimpleTTS(”kevin16″);
voz.speak(”Hello World!”);
voz.close();
/**
*
* FreeTTS
* requiere en el CLASSPATH: cmu_time_awb.jar, cmu_us_kal.jar, cmudict04.jar, cmulex.jar, cmutimelex.jar,
* en_us.jar, freets.jar, jsapi.jar
*
* @author jose
* @version 0.0.0.1
* @since JDK 1.5 / Eclipse Callisto
*/
import com.sun.speech.freetts.audio.AudioPlayer;
//import com.sun.speech.freetts.audio.JavaClipAudioPlayer;
//import com.sun.speech.freetts.audio.MultiFileAudioPlayer;
import com.sun.speech.freetts.audio.NullAudioPlayer;
//import com.sun.speech.freetts.audio.RawFileAudioPlayer;
import com.sun.speech.freetts.audio.SingleFileAudioPlayer;
//import java.io.*;
//import java.net.URL;
//import javax.sound.sampled.AudioFileFormat;
import javax.sound.sampled.AudioSystem;
import com.sun.speech.freetts.Voice;
import com.sun.speech.freetts.VoiceManager;
//import com.sun.speech.freetts.audio.JavaClipAudioPlayer;
public class SimpleTTS
{
Voice voice=null;
public SimpleTTS(String voiceName) throws Exception
{
VoiceManager voiceManager = VoiceManager.getInstance();
this.voice = voiceManager.getVoice(voiceName);
if (this.voice == null)
{
System.out.println("La lista de voces disponibles es:");
listAllVoices();
throw new Exception("No se encuentra la voz llamada: "+voiceName+". Por favor selecciona una voz diferente.");
}
this.voice.allocate();
}
//----
public void speak(String text) throws Exception
{
this.voice.speak(text);
}
//----
public void toFile(String filename,String text) throws Exception
{
javax.sound.sampled.AudioFileFormat.Type type = getAudioType(filename);
AudioPlayer audioPlayer = null;
if(audioPlayer == null)
audioPlayer = new NullAudioPlayer();
audioPlayer = new SingleFileAudioPlayer(getBasename(filename), type);
System.out.println("audioPlayer "+audioPlayer);
this.voice.setAudioPlayer(audioPlayer);
this.voice.speak(text);
audioPlayer.close();
}
//----
public void close() throws Exception
{
this.voice.deallocate();
}
//----
public static void listAllVoices()
{
System.out.println();
System.out.println("All voices available:");
VoiceManager voiceManager = VoiceManager.getInstance();
System.out.println("voiceManager:"+voiceManager);
Voice[] voices = voiceManager.getVoices();
for (int i = 0; i < voices.length; i++) {
System.out.println(" " + voices[i].getName()
+ " (" + voices[i].getDomain() + " domain)");
}
}
//----
public static javax.sound.sampled.AudioFileFormat.Type getAudioType(String file)
{
javax.sound.sampled.AudioFileFormat.Type types[] = AudioSystem.getAudioFileTypes();
String extension = getExtension(file);
for(int i = 0; i < types.length; i++)
if(types[i].getExtension().equals(extension))
return types[i];
return null;
}
//----
public static String getExtension(String path)
{
int index = path.lastIndexOf(".");
if(index == -1)
return null;
else
return path.substring(index + 1);
}
//----
public static String getBasename(String path)
{
int index = path.lastIndexOf(".");
if(index == -1)
return path;
else
return path.substring(0, index);
}
//----
static public void main(String[] args) throws Exception
{
try
{
// Instanciamos para usar la voz "kevin16"
SimpleTTS voz = new SimpleTTS("kevin16");
// Reproduce por el altavoz
//while (true)
//{
voz.speak("auan babuluba balan bambu");
voz.speak("Hello World!");
//}
voz.speak("Text to Speech demo");
// Graba un fichero de audio con el contenido en el directorio
voz.toFile("ttsdemo.wav", "Ubuntu Life is the best site of Linux");
// Podriamos reproducir este fichero desde consola: $ mplayer ttsdemo.wav
// Cerramos
voz.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
//----
}
//end of class SimpleTTS
[…] Si te interesa para Java, hace algunos dias escribi algo parecido, pero empleando un API llamado FreeTTS. Aqui el enlace. […]
hola
hola hola
for (int i=0;i<3;i++)
{
System.out.println(«Hola»);
}
//—
😉
hola necesito q me ayuden a convertir el texto a voz sobre un aplicacion q tengo hecha en java..gracias
¿Que necesitas hacer?. Echale de todas formas un vistazo a este API tal vez te sirva.
Y para Hablar en español ?
ah, en eso estoy yo tambien 😉 , hace falta un engine TTS en español. pero los que conozco no son libres. asi que no los uso. Pero si encuentro alguno, lo comentare aca.
Hola me pueden ayudar lo que pasa es que quiero convertir un texto en voz pero para el idioma Espñol.
Hola, yo también necesitaba convertir texto en voz en Español. Si alguien ha encontrado algo, por favor, que me avise. Un saludo
hola necesito ayuda!!!
Como puedo trabajar con TTS Festival y FreeTTS, por favor pueden ayudarme con información…
Saludos
annabell447@hotmail.com
Hola quisiera saber si alguien encontro el Engine TTS en español. porfa estoy desarrollando una aplicacion y lo necesito
RESPONDAN por favor se necesita la voz en español, como se lo importo a mi aplicacion usando freetts, si podrian responder al email dmcoding@hotmail.com GRACIAS
Hola…. ta weno el programita…. si junciona… nomás ke pos toy chkando en español… gracias… me sirve… y mucho…
seeeee el programa esta chido y como importo la voz en español de festival al freetts , es para pasar la materia.
Si alguien sabe contesten a mi correro se los agradecere.
aqui esta mi correro jajaja fnicolas_guillen@hotmail.com
hola yo tambien estoy necesitando la voz en español para mi programita con fretts , si me la pueden mandar a mi mail se los agradezzo . gracias
como fuciona esto no puedo ejecuatra el ejemplo, por favor digamelo paso a paso
le pruebao pero sale q no encuentra package com.sun.speech
ayudeme por fa
hola ke tal superwipi a penas hasta hoy vi este ejemplo practico de tts en java ke hiciste , y esta muy didactico se ve ke eres muy buen programador , kiero desarrollar un traductor con la ayuda de free tts , pero para eso necesito la opcion en español de tts , y no se si si tu ya has probado algo parecido a esto
????
espero me puedas ayudar a terminar mi proyecto gracias soy de queretaro, mex un saludo.
Saludos a tod@s. Muchas gracias por la explicación….y comentarios.
Quisiera pedir ayuda para mi problema…..
A mi me da este error:
Exception in thread «Thread-1» java.lang.Error: Unable to load voice directory. java.lang.ClassNotFoundException: com.sun.speech.freetts.en.us.cmu_us_kal.KevinVoiceDirectory
cuando intenta ejecutar la instrucción:
VoiceManager voiceManager = VoiceManager.getInstance();
Mi entorno de programación es:
Eclipse
PAX CURSOR
Java
El caso es que he subido todos los .jar, que se encuentra en el directorio \lib, a un repositorio NEXUS.
En el procedo de ejecutar la configuración de este proyecto, se generan unos bundles con estos nombres:
wrap_mvn_com.sun.speech.freetts.en.us_cmutimelex_1.0.1_0
wrap_mvn_com.sun.speech.freetts.en.us_cmu_us_kal_1.0.1_0
¿Puede ser que el nombre de estos .jar sea el motivo por el cual no esté cargando correctamente el directorio de voces?
Gracias por la ayuda.
Hola chicos me llamo roberto necesito ayuda estoy creando mi proyecto en JAVA es para implementarlo en una cabina de internet el problema es que no se como deshabilitar las teclas del teclado en especial los teclados WINDOWS, Ctrl+C, Ctrl+V les doy las gracias pr ayudarme el codigo fuente me lo envian a mi correo robertocardenas8523@gmail.com que dios os vendiga
saludos chic@s….
ahora he avanzado en mi problema y no tengo el que comenté en el post #21…..sino que ahora mi error es que es incapaz de reproducir el sonido. No tengo ninguna excepción….y, cuando hago el deallocate, me genera el correspondiente fichero .wav con el sonido que le paso al método speak (que, como debe ser, es «hello world»)
¿Alguien me puede ayudar con esta labor que es reproducir el sonido?
¡Gracias de antemano!
Pero…¿esto no es un blog?, parece un foro…
Ya de una vez publiquen en español, lo que si es hay que modificar varias librerias , ya que casi todas la librerias hay *.en.us.*, que a mi parecer significa english to united stated. por eso debemos buscar librerias parecidas que tengan *.en.es.* y asi tendremos la conversion en español, paro todos mis amigos javeros, busquen sobre la librerias mbrola buscar en google download mbrola tolls y veran mucho que desear sobre texto a voz. y un tutorial en pdf que les sertvira de mucho ha y ademas para los que trabajan con delhpi tambien exite un libreria en la misma pagina. bueno para el que se tomo tiempo de leer esto , le aseguro que le servira mucho. por favor si les sirve de algo no olviden agradecerme, ya que eso hara que publique mas cuando siga encontrando cosas , mi nombre es jhonny nina veizaga ing. informatica la universidad autonoma gabriel rene moreno de santa cruz – bolivia. gracias.
no te entiendo, de lo que se venia hablando vos no encajas, perdon. La idea es hacer un la libreria en java para español, y vos no ayudas en nada, perdon q me meta pero es asi.
Chau «jhonny nina veizaga ing. informatica la universidad autonoma gabriel rene moreno de santa cruz» ufff
-estoy de acurdo contigo «Justicia», se mando chapa al pedo, sos una reveranda pelotudaaaaa., uh perdoname se me fue la boca
Hola, cómo escribir texto a la consola? Gracias.
Hola, cómo escribo texto a la consola? Gracias.
Me sale este error! : System property «mbrola.base» is undefined. Will not use MBROLA voices.
para voz en español vean MBROLA
Hola a todos,
Alguien encontro la voz para español. Por favor si alguien sabe de una version nueva de Fre TTS o alguna otra API con la en español estare muy agradecido.
boolean spanish = false;
while(! spanish){
System.out.println(«Searching the spanish voice …..»);
}
Investigue algo de MBROLA y esto es para sistemas operativos Android en celulares.
Pensaba migrar de Java a .NET por que ahi puedo usar los MS Agent de microsoft llamando desde C++ o C#, con un monton de agentes e idiomas, la única desventaja para mi es que no funciona bien en Windows 7. Espero encontrar algun dia la voz en español para Java.
Hola necesito crear una aplicacion que convierta texto a voz en espanol estoy usando eclipse gracias
Hola como hago un nuevo engine tts ? y en caso de tenerlo, como agrego uno nuevo para poder usarlo =/ ?
Howdy, i read your blog from time to time and i own a similar one and i was just wondering if you get a lot of spam
feedback? If so how do you protect against it, any plugin or anything you can advise?
I get so much lately it’s driving me crazy so any help is very much appreciated.
Como se añade una voz diferente a la de Alan kevin o kevin16 que son la predefinidas? urgente!!! Si alguna respuesta escribir a Ederb1.1c@gmail.com Gracias
Howdy! Do you know if they make any plugins to help with Search Engine Optimization?
I’m trying to get my blog to rank for some targeted keywords but I’m not seeing
very good success. If you know of any please share. Kudos!
Hola me gustaria hacerlo a lo inverso un archivo de audio (.wav) a texto (.txt)????
Hi Dear, are you truly visiting this web page
on a regular basis, if so afterward you will absolutely obtain fastidious knowledge.
[…] FreeTTS, convertir textos a voz… | Java.Lang.NullPointer – Aug 21, 2007 · FreeTTS, convertir textos a voz… agosto 21, 2007 Posted by superpiwi in Eclipse, Java, Programacion. trackback. Hoy algo divertido, vamos a convertir un …… […]
This web site certainly has all the information I wanted about this subject and didn’t know who to ask.
[…] FreeTTS, convertir textos a voz… | Java.Lang.NullPointer – Aug 21, 2007 · FreeTTS, convertir textos a voz… agosto 21, 2007 Posted by superpiwi in Eclipse, Java, Programacion. trackback. Hoy algo divertido, vamos a convertir un …… […]
[…] FreeTTS, convertir textos a voz… | Java.Lang.NullPointer – Aug 21, 2007 · FreeTTS, convertir textos a voz… agosto 21, 2007 Posted by superpiwi in Eclipse, Java, Programacion. trackback. Hoy algo divertido, vamos a convertir un …… […]
My heart broke when they zoomed in on Nando’s face at the beginning with the match. He looked so sad. I honestly thought he’d come in after the 70th minute or so. I’d love for him to see some action in Munich.
Donde descargo la biblioteca