JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro –...

61
JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison Cris Brito [email protected]

Transcript of JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro –...

Page 1: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

JavaSpeech – Deixe seu Computador falar com você...

Por

justjava.org.br

3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP

Promoção e Realização

Robison Cris Brito [email protected]

Page 2: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

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

Page 3: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Quem acha que a informática hoje em dia

está fácil?

Page 4: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Inclusão Digital! Mas quando?

Page 5: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Usuário

Usuário

Teclado/Mouse

Fala

“Uma criança não aprende a teclar esc”

“Uma criança aprende a dizer mamãe”

MOTIVAÇÃO

Page 6: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Conversação

Verbal27%

Não-Verbal73%

MOTIVAÇÃO

Page 7: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Aplicação Agradável

Verbal27%

Não-Verbal73%

MOTIVAÇÃO

Page 8: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Como uma aplicação deve utilizar a voz?

Page 9: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Tipos de aplicações

Somente com falaSpeech Only

AplicaçõesMulti-Modal

Page 10: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

ObjetivoCLARO Quando as mãos e

os olhos estão ocupados

Ler email por telefone

ALTA EXPECTATIVA

Page 11: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

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

Page 12: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

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

Page 13: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

A fala deve ser parte integrante do projeto desde o início

Projetos com fala

PROBLEMAS COMUNS...

Page 14: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Desafios

Page 15: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Desafios

TransienciaUma 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

Page 16: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Desafios

InvisibilidadeNão se vê os comandos que podem ser ditos

Quais as ações que podem ser executados ?

Page 17: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Desafios

AssimetriaUm 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.

Page 18: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Desafios

Qualidade de SintetizaçãoA 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

Page 19: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Desafios DesempenhoNenhum 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

Page 20: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

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.

Page 21: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

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ã”

Page 22: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

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..”

Page 23: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Do conceito à prática

Page 24: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Ciclo de Vida de um Sistema de Reconocimento

DigitalizaçãoProcessamento

de RuídosSeparação de

palavras

Comparação deVocabulário

Base de Dadosdos Vocabulário

Fala

ResultadoProbabilístico

Page 25: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

JavaspeechAPI para Sintetização e Reconhecimento de Voz

Java Speech SDK API (JSR-113, JSAPI)ou simplesmente

Page 26: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

JavaspeechAPI para Sintetização e Reconhecimento de Voz

speech recognition speech synthesis

Page 27: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Javaspeech

Aplicação

JavaSpeech API

FreeTTSThe Cloud

GardenIBM Speech Festival

Independênciade Plataforma

Page 28: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

FRAMEWORK SPHINX4http://cmusphinx.sourceforge.net/sphinx4/

Page 29: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

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) {…

Page 30: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Sintetização de Voz

Propriedades

Volume

Velocidade da Fala

Tom

Seleção das Vozes

Page 31: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Reconhecimento de Voz

Por Regras Ditado

Se define um conjunto de

combinações que o usuário pode falar

STAR TREK

Page 32: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

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();

Page 33: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

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);

}

Reconhecimento de Voz

Page 34: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

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);

Page 35: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Exemplo de aplicações

Page 36: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Exemplo Didático de Aplicação

Exemplos: 78705 - AUSTIN - TX84105 - SALT LAKE CITY - UT99505 - FORT RICHARDSON - AK

Page 37: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Software para ensino de inglês

Page 38: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Onde o reconhecimento de

voz pode ser aplicado

Page 39: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Automação ...

Page 40: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Auxiliar portadores de deficiências

Page 41: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Automação Residencial para Portadores de Deficiência

+

Page 42: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Fonoaudiologia

Page 43: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Softwares Educativos

Page 44: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Auxiliar na redação de processos

Page 45: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Aplicações que não possuem interface com usuário

Page 46: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Controle de comandos no automóvel

Page 47: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.
Page 48: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Leitura de informações remotas

Page 49: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Auxiliar pessoas com deficiências visuais

Page 50: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Inclusão digital....

Page 51: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Leitura automática de documento

Era uma vez....

Page 52: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Escrita automática de documentos

Page 53: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Reduzir o Stress de Animais Domésticos

Page 54: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Repelente Eletronico de Pequenos Animais

Page 55: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Afinador de Instrumentos Musicais

Page 56: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Man vs. Machine

Page 57: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Aplicações para Celulares

Page 58: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

Aplicações para TV Digital

Troque o controle remoto pela voz

X

Page 59: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

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

Page 60: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

DúvidasDúvidas

??

Page 61: JavaSpeech – Deixe seu Computador falar com você... Por justjava.org.br 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP Promoção e Realização Robison.

JavaSpeech – Deixe seu Computador falar com você...

Por

justjava.org.br

3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP

Promoção e Realização

Robison Cris Brito [email protected]