Reconhecimento de voz com java

Olá, não tenho muita experiência com java mas estou tentando desenvolver um programa com reconhecimento de voz em java utilizando alguma técnica de I.A. para meu tcc.

Pesquisei um pouco e pelo que li vi que deveria conseguir fazer isso usando a api speech e com o viaVoice.

Tentei usar esse tutorial: http://aquilesburlamaqui.wikidot.com/javaspeech mas não consegui.

No passo 6, não consegui executar a classe para a instalação. Tentei copiar as dll para o system (to usando windows) e fazer algum exemplo, mas não deu certo. Quando compilo sempre da excessão na parte que

o código que to usando como exemplo é o seguinte:

package teste;

import javax.speech.*;
import javax.speech.synthesis.*;
import java.util.*;
import sun.swing.PrintColorUIResource;

public class teste {

    public static void main(String[] args) {
	try {
		Calendar calendar = new GregorianCalendar();
		String sayTime = "Its " +
		calendar.get(Calendar.HOUR) + " " +
calendar.get(Calendar.MINUTE) + " " +
(calendar.get(Calendar.AM_PM)== 0 ? "AM" : "PM");

Synthesizer synth = Central.createSynthesizer(null);
		synth.allocate();
		synth.resume();

		synth.speakPlainText(sayTime,null);

		synth.waitEngineState(Synthesizer.QUEUE_EMPTY);
		synth.deallocate();

	} catch (Exception e) {
		e.printStackTrace();
	}
    }
}

E estou usando o NetBeans.

O erro que ele acusa é o seguinte:

run:
java.lang.NullPointerException
at teste.teste.main(teste.java:19)
CONSTRUÍDO COM SUCESSO (tempo total: 2 segundos)

Alguém tem alguma ideia do que pode estar acontecendo para que não de certo eu utilizar essa api?

Teria outra maneira de fazer o que eu quero?

Desde já agradeço e fico no aguardo.

Pelo que eu estou vendo ae não tem tecnica nenhuma de IA. Você está usando a api java speech pronta.

Leia esses artigos


Dê uma pesquisada cno code project
http://www.codeproject.com/info/search.aspx?artkw=speech+recognition

Mas sobre a utilização da speech mesmo, descobri que o objeto synth criado pela parte:

Synthesizer synth = Central.createSynthesizer(null);  

é null.

Tem alguma configuração que preciso fazer para que ele não seja nulo? Algo que precisava ter feito antes da utilização dela? Acredito que o problema está ai.