Faz o Java falar… bacana né?? hehehe
Tipow vc escreve uma palavra ou frase e ele lê…
Acho que também tem como ele reconhecer voz… mas ainda num cheguei aí…
Segue o código exemplo:
import javax.speech.*;
import javax.speech.synthesis.*;
public class HelloWorld {
public static void main (String[] arg){
try{
// Cria o sintetizador para a lingua inglesa
Synthesizer sintetizador = Central.createSynthesizer(
new SynthesizerModeDesc(java.util.Locale.ENGLISH));
// Aloca os recursos necessarios
sintetizador.allocate();
// Resume o sintetizador
sintetizador.resume();
// "Fala" Hello World
sintetizador.speakPlainText("Hello World!!",null);
// Aguarda o sintetizador terminar de "falar"
sintetizador.waitEngineState(Synthesizer.QUEUE_EMPTY);
// Libera os recursos
sintetizador.deallocate();
}catch (Exception e){
e.printStackTrace();
}
System.exit(0);
}
}
Esse javax.speech dá pra pegar no link que eu postei, mas num consegui fazer funcionar…
java.lang.UnsatisfiedLinkError: no ibmsynth in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1403)
at java.lang.Runtime.loadLibrary0(Runtime.java:788)
at java.lang.System.loadLibrary(System.java:832)
at com.ibm.speech.synthesis.SynthImpl.loadLibraries(SynthImpl.java:110)
at com.ibm.speech.synthesis.IBMEngineCentral.createEngineList(IBMEngineCentral.java:84)
at javax.speech.Central.availableSynthesizers(Central.java:660)
at javax.speech.Central.createSynthesizer(Central.java:553)
at geral.TesteSpeech.main(TesteSpeech.java:10)
Exception in thread "main"
vem umas DLLs junto com as APIs da IBM se não me engano (quando testei isto eu tinha mais uma porrada de troço para Speech instalado na maquina ja
se vem as DLLs, vocês colocaram elas no PATH?? não adianta só colocar no diretório da aplicação (pelo menos para mim não adiantou, ai copiei para o %WINDOWS%system
passou a funcionar como por magica,
se isto não funcionar, pode ser que tenha funcionado na minha casa por eu ja ter o Via Voice istalado, depois vocês me dizem
você precisa baixar o “ViaVoice SDK for Windows” e o “ViaVoice TTS SDK for Windows”
li em algum lugar que eles tem também o runtime para linux disponivel para download, mas não achei
se eu achar posto aqui
tem também esta implementação aqui da JSpeech API que é free, mas só tem TTS, não tem Text Recognition ainda, e pelo geito não vão implementar isto por enquanto
mas dependendo da necessidade
E ai galera !!!
Pow … baixei o ViaVoice SDK for Windows eo ViaVoice TTS SDK for Windows mais ta dando um erro:
/*
* Voz.java
*
* Created on 1 de Fevereiro de 2003, 12:09
*/
package voice;
import javax.speech.*;
import javax.speech.synthesis.*;
/**
*
* @author William J. Oliveira
*/
public class Voz {
/** Creates a new instance of Voz */
public Voz() {
}
public void fala(String arg){
try{
// Cria o sintetizador para a lingua inglesa
Synthesizer sintetizador = Central.createSynthesizer(
new SynthesizerModeDesc(java.util.Locale.ENGLISH));
// Aloca os recursos necessarios
sintetizador.allocate();
// Resume o sintetizador
sintetizador.resume();
// "Fala" Hello World
sintetizador.speakPlainText("Hellow Word",null);
// Aguarda o sintetizador terminar de "falar"
sintetizador.waitEngineState(Synthesizer.QUEUE_EMPTY);
// Libera os recursos
sintetizador.deallocate();
}catch (Exception e){
e.printStackTrace();
}
}
java.lang.NullPointerException
at voice.Voz.fala(Voz.java:28)
at voice.FrmFala.cmdFalarActionPerformed(FrmFala.java:75)
at voice.FrmFala.access$100(FrmFala.java:13)
at voice.FrmFala$2.actionPerformed(FrmFala.java:54)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1767)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1820)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:419)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:258)
at java.awt.Component.processMouseEvent(Component.java:5022)
at java.awt.Component.processEvent(Component.java:4819)
at java.awt.Container.processEvent(Container.java:1525)
at java.awt.Component.dispatchEventImpl(Component.java:3527)
at java.awt.Container.dispatchEventImpl(Container.java:1582)
at java.awt.Component.dispatchEvent(Component.java:3368)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3359)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3074)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3004)
at java.awt.Container.dispatchEventImpl(Container.java:1568)
at java.awt.Window.dispatchEventImpl(Window.java:1586)
at java.awt.Component.dispatchEvent(Component.java:3368)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:445)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:191)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:144)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:130)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:98)
Oque pode ser ? :roll: ai galera quem conseguiu, manda pra mim oque baixou .
t+
Olá Pessoal!
Por favor, se alguem tiver o IBM Speech for Java ou o Via Voice SDK e o RUNTIME me enviem por gentileza!
Já fiz meus aplicativos funcionarem e preciso destas engines.
Olá Pessoal li a documentação que vcs escreveram e tive os mesmos erros que vcs. Estou fazendo um agente que fala. Gostaria de saber se alguém realmente conseguiu implementar isto o que preciso. Saliento que baixei aquele demo do speech da ibm so não adiantou. Se tiverem as classes para mim dar uma olhada ou qualquer coisa desde ja agradeço. Salve JAVA, Salve Javaneiros!!!
Meu email é: miguelbauermann@yahoo.com.br
Pessoal, o meu problema é o seguinte…
Tenho um problema inverso, necessito converter um arquivo de áudio em texto… isso é possível em java… Com qual ferramenta ou API eu consigo fazer… Se alguém tiver alguma idéia.
Ola sei que este topico e antigo mas usando ele como base eu consegui fazer funcionar a fala.
import javax.speech.Central;
import javax.speech.synthesis.Synthesizer;
import javax.speech.synthesis.SynthesizerModeDesc;
public class demo {
public static void main (String[] arg){
try{
// Cria o sintetizador para a lingua PORTUGUES BRASIL!!!
Synthesizer sintetizador = Central.createSynthesizer(
new SynthesizerModeDesc(java.util.Locale.forLanguageTag("pt-BR")));
// Aloca os recursos necessarios
sintetizador.allocate();
// Resume o sintetizador
sintetizador.resume();
// "Fala" Hello World
sintetizador.speakPlainText("Teste!",null);
// Aguarda o sintetizador terminar de "falar"
sintetizador.waitEngineState(Synthesizer.QUEUE_EMPTY);
// Libera os recursos
sintetizador.deallocate();
}catch (Exception e){
e.printStackTrace();
}
System.exit(0);
}
}
Eu testei no meu note Win7 64bit e em uma VM WinXP 32Bit, em ambos funcionou normal sem erros. (só a instalação da tradução que muda um pouco no XP).
Espero ter ajudado…
agora vou para o segundo passo reconhecer comandos de voz. =] se alguém ai já tiver feito algo do tipo posta ai pra ajudar, desde já obrigado.