Bom dia galera , estou com um probleminha, fiz uma aplicação de teste para JavaSpeech “reconhecedor de voz”… está rodando normalmente na IDE… existe uma parte simples grafica só pra sair a palavra em uma jtextfield etc… ta rodando normalmente. Porem ao criar o .jar ele cria normalmente mais ao iniciar pude observar no prompt que ele da esse seguinte erro:
já tentei de tudo…mudar codico fonte… deixar o mais simples da aplicacao possivel…já dei uma pesquisada no google tb, mais ta complicado…
se precisar eu coloco o codigo fonte, mais são 3 classes simples…
OBS: tive que adicionar uma informação da variavel de ambiente path no caso ;C:\Arquivos de programas\ViaVoice\Bin\ é preciso adicionar alguma informação na hora de gerar o .jar?
uso Eclipse… já tentei gerar todos os tipow de jar inclusive o “FatJar”.
se alguem puder me ajudar… obrigado!
packagebr.akls.javaspeech.recognizer;publicclassPrincipal{publicstaticvoidmain(Stringargs[]){Formularioobj_form=newFormulario();obj_form.setVisible(true);Stringurl="C:/Documents and Settings/133/Desktop/Teste/gramatica.gram";IniciarmyIniciar=newIniciar(url);}}
A classe Iniciar a onde sera recebido a frase ou palavra… e onde a “gramatica.gram” que é responsável pelas palavras de reconhecimento… no caso eu falar: Oi ela busca nesse .gram…
packagebr.akls.javaspeech.recognizer;importjava.io.FileReader;importjava.util.Locale;importjavax.speech.Central;importjavax.speech.EngineModeDesc;importjavax.speech.recognition.Recognizer;importjavax.speech.recognition.Result;importjavax.speech.recognition.ResultAdapter;importjavax.speech.recognition.ResultEvent;importjavax.speech.recognition.ResultToken;importjavax.speech.recognition.RuleGrammar;publicclassIniciarextendsResultAdapter{publicstaticRecognizerrec;publicvoidresultAccepted(ResultEvente){Resultr=(Result)(e.getSource());ResultTokentokens[]=r.getBestTokens();Stringfrase="";for(inti=0;i<tokens.length;i++){frase=frase.concat(tokens[i].getSpokenText()+" ");}//passa para o formulario a palavraFormulariomyFormulario=newFormulario();myFormulario.chamaTela(frase);}publicIniciar(Stringurl){try{rec=Central.createRecognizer(newEngineModeDesc(newLocale("pt","BR")));rec.allocate();FileReaderreader=newFileReader(url);RuleGrammargram=rec.loadJSGF(reader);gram.setEnabled(true);rec.addResultListener(this);rec.commitChanges();rec.requestFocus();rec.resume();}catch(Exceptione){e.printStackTrace();}}}
e uma JFrame simples só para receber a palavra numa JTextfield…
packagebr.akls.javaspeech.recognizer;importjava.awt.Color;importjava.awt.Font;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JTextField;publicclassFormularioextendsJFrameimplementsActionListener{/** * */JLabellb_titulo,lb_palavra;JTextFieldtf_palavra;Stringpalavra;publicFormulario(){setTitle("Software de Reconhecimento");setSize(250,180);setLocation(75,75);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setResizable(false);getContentPane().setBackground(newColor(155,180,255));getContentPane().setLayout(null);lb_titulo=newJLabel("Teste");lb_palavra=newJLabel("Palavra");lb_palavra.setForeground(Color.blue);lb_titulo.setFont(newFont("Arial",Font.BOLD,25));lb_palavra.setFont(newFont("Arial",Font.BOLD,20));tf_palavra=newJTextField(20);lb_titulo.setBounds(50,30,800,40);tf_palavra.setBounds(24,100,200,25);lb_palavra.setBounds(80,70,800,40);tf_palavra.setEditable(true);getContentPane().add(lb_titulo);getContentPane().add(tf_palavra);getContentPane().add(lb_palavra);tf_palavra.addActionListener(this);}publicvoidchamaTela(Stringfrase){Formularioobj_form=newFormulario();obj_form.tf_palavra.setText(frase);obj_form.actionPerformed(newActionEvent(newObject(),0,frase));obj_form.setVisible(true);}@OverridepublicvoidactionPerformed(ActionEventarg0){// TODO Auto-generated method stub}