Tutorial para funcionamento da JLaPSAPI(1.7.1+) como JAR
Este tutorial visa exemplicar de forma simples como utilizar a API e os passos de como
configurá-la no computador.
1- Cadastrar reconhecedor Coruja na JVM
Crie um arquivo chamado speech.properties na home do usuário, por exemplo:
/home/fulano/speech.properties
Neste arquivo, insira a seguinte linha:
PSAPIRecognizerEngineCentral=br.ufpa.laps.jlapsapi.jsapi.JLaPSAPIEngineCentral
2 – Instalação dos modelos acústico e de linguagem do Coruja
Baixe-os na página da JLaPSAPI, tenha um cuidado para baixar a versão correspondente ao
modelo para funcionar corretamente. Em seguida, descompacte-os na home do usuário e cheque se a
pasta está nomeada como coruja_jlapsapi, não podem haver subpastas.
3 – Copiando arquivos do código fonte
Baixe o projeto completo da JLaPSAPI, tenha um cuidado para baixar a versão correspondente
ao modelo para funcionar corretamente além do jsapi.jar. Após criar o seu próprio projeto(nomei-o de
myproject), crie uma pasta com o nome lib no seu projeto e insira os JARs lá dentro. Além disso crie
um pacote dentro do seu projeto com o nome mypackage dentro da pasta src do myproject.
Dentro do projeto com código fonte da jlapsapi, na pasta test, dentro do pacote
br.ufpa.laps.jlapsapi.recognizer, copie as classes SimpleRecognition.java, Listener1.java e
Listener2.java e cole na pasta mypackage. No entanto, renomeie na primeira linha do arquivo
br.ufpa.laps.jlapsapi.recognizer por mypackage. Na raiz do projeto da JLaPSAPI existe um arquivo
chamado sample.grammar, copie-o e cole na raiz do myproject. Em seguida adeque o diretório do
arquivo na instância do objeto FileReader da classe SimpleRecognition(algo assim:
System.getProperty(“user.home”)+"/workspace/myproject/sample.grammar".
4 – Rodar projeto no terminal
4.1 – Compilação
Na pasta src do seu projeto, você deverá estar em um diretório parecido com esse logo abaixo,
lembre-se de fazer as devidas adaptações.
/home/fulano/workspace/myproject/src
Neste diretório, compile o projeto com o comando abaixo(é tudo só em uma linha):
javac -classpath ../lib/jsapi.jar:../lib/jlapsapi.jar mypackage/SimpleRecognition.java mypackage/Listener1.java
mypackage/Listener2.java
4.2 – Execução
Para executar, o projeto contém uma aplicação para testar, tenha certeza de estar em um
diretório parecido com esse logo abaixo, lembre-se de fazer as devidas adaptações..
/home/fulano/workspace/myproject/src
Em seguida rode o comando abaixo(é tudo só em uma linha):
java -classpath ../lib/jsapi.jar:../lib/jlapsapi.jar:. mypackage.SimpleRecognition
5 – Rodar o projeto com um jar da JLaPSAPI
Após ter certeza de concluir os passos das seções 1, 2 e 3 execute os passos desta seção. Clique
com o botão direito sobre o nome do seu projeto e escolha a opção Properties,
1- No menu Java Build Path, na aba Libraries procure pela opção Add External JARs e clique
nela.
2 – Procure pelos JARs que você manipulou na seção 3.
3- Após colocar o jlapsapi.jar e o jsapi.jar, clique em OK.
6 – Execução do Exemplo
Neste instante o projeto deve rodar normalmente, você só precisar falar ao microfone e, caso ele
esteja bem regulado, a API retornará o texto dito. É comum haver erros, principalmente se houver
muito barulho no ambiente.
As classes que estão no pacote test do código fonte têm os métodos suportados e como eles são
utilizados. A SimpleRecognition mostra como instancia e aloca o reconhecedor, carrega gramáticas e
seta as classes ouvintes, além de mostrar alguns métodos comentados que podem ser utilizados da
forma como estão lá dispostos, basta descomentar.
As classes Listener1 e Listener2 são dois exemplos de classes que são Listeners, além de o
próprio SimpleRecognition poder ser também um Listener. Use os Listeners1 e Listener2 para ser mais
fácil aprender a fazer o seu próprio Listener.
O método addResultListener seta o Listener. Atenção que pode ser usado em objetos
Recognizer e/ou Rulegrammar e/ou DictationGrammar. No Recognizer, o resultado de todas as
gramáticas são passadas àquele Listener. Os demais objetos escutam somente o resultado da gramática
do objeto associado, no caso do exemplo é dic e o gram.
O método loadJSGF carrega uma gramática de comando e controle a qual foi escrita dentro de
um arquivo. No exemplo é o arquivo sample.grammar contido na raiz do projeto da JLaPSAPI. No
código fonte carrega de um diretório diferente por ser mais conveniente para fazer o tutorial mais
genérico possível, porém é o mesmo arquivo.
Outras linhas de código comentadas contêm métodos já implementados onde é possível pausar
ou recomeçar o reconhecimento do ditado ou das novas gramáticas(setEnabled).
O método ResultAccepted, dentro dos Listeners, é onde o resultado do reconhecimento chega,
no exemplo mostra como imprimir na tela o resultado.
7 – Problemas Comuns
Ainda não é possível utilizar gramáticas com comandos compostos como, por exemplo, abrir
navegador.
Atente em haver as dependências indicadas na página da JLaPSAPI. libpulse-dev, Zlib e sox
são as mais comumente ausentes no sistema.
Caso não funcione, procure pelo arquivo JuliusLog no diretório /tmp do SO e mande para a lista
de discussão para podermos ajudá-lo, além da mensagem no terminal.
Download

Tutorial para funcionamento da JLaPSAPI(1.7.1+) como JAR