Iniciando com J2ME para celulares - SUCESU-SP
Download
Report
Transcript Iniciando com J2ME para celulares - SUCESU-SP
3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP
justjava.org.br
Por
JavaSpeech – Deixe seu Computador falar
com você...
Robison Cris Brito
[email protected]
Promoção e Realização
Agenda...
Motivação
Quando uma aplicação deve utilizar comandos de voz?
Desafios
API JavaSpeech
Framework Sphinx4
Sintetização
Reconhecimento
Exemplo de aplicação
Onde o reconhecimento de voz pode ser aplicado
O futuro das aplicações
Conclusão
Quem acha que a informática
hoje em dia está fácil?
Inclusão Digital! Mas quando?
MOTIVAÇÃO
Usuário
Teclado/Mouse
“Uma criança não aprende a teclar esc”
Fala
Usuário
“Uma criança aprende a dizer mamãe”
MOTIVAÇÃO
Conversação
Verbal
27%
Não-Verbal
73%
MOTIVAÇÃO
Aplicação Agradável
Verbal
27%
Não-Verbal
73%
Como uma
aplicação deve
utilizar a voz?
Tipos de aplicações
Somente com fala
Speech Only
Aplicações
Multi-Modal
Objetivo
CLARO
Quando as mãos e
os olhos estão
ocupados
Ler email por telefone
ALTA EXPECTATIVA
Quando deve ser utilizado ?
• Não existe um teclado (em uma cabine telefônica)
• A operação exige que a mão do usuário esteja ocupado
(Operadores de manutenção)
• Comandos precisam de alta navegação pelos menus
• Usuários não são capazes de digitar
• Usuários possuem incapacidades físicas
• Necessitam chamar a atenção do usuário
Quando não deve ser usado ?
• Operações exigem que o usuário conversem com outras
pessoas enquanto utilizam a aplicação
• Ambiente muito ruidoso
• É muito mais fácil fazer a operação por mouse/teclado
• Apresenta grande quantidade de informação
• Comparação de informações
• Informações necessitam ser confidenciais
PROBLEMAS COMUNS...
Projetos com fala
A fala deve ser parte integrante do projeto desde o início
Desafios
Desafios
Transiencia
Uma vez que algo foi dito, não tem como voltar atrás
O usuário se recorda apenas de um pequeno número de
palavras ditas
Desafios
Invisibilidade
Não se vê os comandos que podem ser ditos
Quais as ações que podem ser executados ?
Desafios
Assimetria
Um usuário pode falar mais rápido do que digitar
...entretanto pode escutar de forma mais lenta do que ler
Problema em balancear as instruções com a limitação do
usuário de absorver a informação falada.
Desafios
Qualidade de Sintetização
A informação apresentada é dinâmica... Sintetização dinâmica
Escutar é fácil se a voz é consistente
Pré-gravar falas com uma voz “bonita” ? MUITA MEMÓRIA
Saber com antecedência o que deve ser falado
Desafios
Desempenho
Nenhum sistema de Reconhecimento é 100%
Muito tempo até que se consiga o status “Filme de ficção científica”
Entender os tipos de erros que podem gerar
Desafios
Adaptabilidade
O sistema deve reconhecer a voz de uma criança, assim como reconhece
a voz de uma mulher, de um homem, de uma pessoa idosa, de pessoas
com problemas leves de dicção.
Desafios
Flexibilidade vs Precisão
Dizer um comando de várias maneiras
“O que tenho para manhã ?”
“Tenho compromisso para amanhã ?”
“Leia os compromissos para amanhã”
Desafios
Fala Continua vs Palavra Isolada
Sistemas de fala contínua são desejáveis, porém mais complexos
Sistemas de palavras isoladas possuem um alto índice de acerto, porém
deve ser falado pausadamente.
Ex. “Me dá uma mão aqui..”
Do conceito à prática
Ciclo de Vida de um Sistema de Reconocimento
Fala
Resultado
Probabilístico
Digitalização
Processamento
de Ruídos
Comparação de
Vocabulário
Base de Dados
dos Vocabulário
Separação de
palavras
Java Speech SDK API (JSR-113, JSAPI)
ou simplesmente
Javaspeech
API para Sintetização e Reconhecimento de Voz
Javaspeech
API para Sintetização e Reconhecimento de Voz
speech recognition
speech synthesis
Javaspeech
Aplicação
JavaSpeech API
Independência
de Plataforma
FreeTTS
The Cloud
Garden
IBM Speech
Festival
FRAMEWORK SPHINX4
http://cmusphinx.sourceforge.net/sphinx4/
Sintetização de Voz
try {
// Cria um sintetizador para o portugues
Synthesizer synth = Central.createSynthesizer(
new SynthesizerModeDesc(new Locale(“pt”, “br”));
// Libera o recurso para falar
synth.allocate();
synth.resume();
// Diz a mensagem Ola Mundo
synth.speakPlainText(“Ola Mundo", null);
// Espera até que a frase seja dita
synth.waitEngineState(Synthesizer.QUEUE_EMPTY);
// Libera a memória
synth.deallocate();
} catch (Exception e) {…
Sintetização de Voz
Volume
Velocidade da Fala
Tom
Propriedades
Seleção das Vozes
Reconhecimento de Voz
Por Regras
Ditado
Se define um
conjunto de
combinações que o
usuário pode falar
STAR TREK
Reconhecimento de Voz
// Define um sistema para o reconhecimento do português
rec = Central.createRecognizer(new EngineModeDesc(new
Locale(“pt”, “br”));
// aloca o recurso para escutar
rec.allocate();
// Carrega as regras e habilita a gramática gramática
FileReader reader = new FileReader(args[0]);
RuleGrammar gram = rec.loadJSGF(reader);
gram.setEnabled(true);
// Adiciona um listener que receberá a mensagem
rec.addResultListener(new HelloWorld());
// Faz um commit com a gramática
rec.commitChanges();
// Foco: Para parar a escuta
rec.requestFocus();
rec.resume();
Reconhecimento de Voz
public void resultAccepted(ResultEvent e) {
//recupera o objeto que contém as palavras recuperadas
Result r = (Result) (e.getSource() );
//Adiciona as palavras em um Token
ResultToken tokens[] = r.getBestTokens();
//percorre todas as palavras do Token, exibindo na console
for (int i = 0; i < tokens.length; i++) {
System.out.print(tokens[i].getSpokenText() + " ");
System.out.println();
}
// Desaloca o recurso e sai da aplicação
rec.deallocate();
System.exit(0);
}
JSML – Java Speech Markup Language
Como se diz:
17/03/2008
ou
Tenho R$ 10,00 na carteira
O JSML possibilita definir o formato de leitura
sintetizador.speak (“you win <EMP> $10000</EMP)!.NULL);
Exemplo de aplicações
Exemplo Didático de Aplicação
Exemplos:
78705 - AUSTIN - TX
84105 - SALT LAKE CITY - UT
99505 - FORT RICHARDSON - AK
Software para ensino de inglês
Onde o
reconhecimento de
voz pode ser
aplicado
Automação ...
Auxiliar portadores de deficiências
Automação Residencial para Portadores de Deficiência
+
Fonoaudiologia
Softwares Educativos
Auxiliar na redação de processos
Aplicações que não possuem interface com usuário
Controle de comandos no automóvel
Leitura de informações remotas
Auxiliar pessoas com deficiências visuais
Inclusão digital....
Leitura automática de documento
Era uma
vez....
Escrita automática de documentos
Reduzir o Stress de Animais Domésticos
Repelente Eletronico de Pequenos Animais
Afinador de Instrumentos Musicais
Man vs. Machine
Aplicações para Celulares
Aplicações para TV Digital
Troque o
controle
remoto
pela voz
X
Aplicações no Futuro
•
•
•
•
Aplicativos de forma distribuídas
Envio e recebimento de informações via Wireless
Grande poder de processamento
Grande poder de armazenamento
• Ambiente propício a comunicação utilizando voz
Dúvidas
?
3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP
justjava.org.br
Por
JavaSpeech – Deixe seu Computador falar
com você...
Robison Cris Brito
[email protected]
Promoção e Realização