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

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais - Aula 6
Advertisements

Programação em Java Prof. Maurício Braga
Programação em Java Prof. Maurício Braga
Construção de Algoritmos 2
Programação em Java Prof. Maurício Braga
Programas e Microprogramas
Estruturas de Repetição
Eventos Marco Antonio, Arquiteto de Software – TJDF Novembro/2005
Reflexão Marco Antonio Arquiteto de Software Novembro/2007.
Entrada e Saída Marco Antonio Arquiteto de Software Dezembro/2007.
Java Básico Orientação a Objeto Marco Antonio Software Architect Fev/2008.
Métodos, Parâmetros, Argumentos e Contratos
Comunicação entre processos distribuídos
Laboratório de Informática Introdução ao JavaScript 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
Tratamento de Exceções
Informática Aplica Prof.: Bruno Rafael de Oliveira Rodrigues.
Aline Leal Carla Truda Marcus Morais Micheli Rech
Engenharia de Software
O USO DO SOFTWARE LIVRE JOOMLA NO DESENVOLVIMENTO DE WEB SITES FOCANDO A USABILIDADE NA SOCIEDADE DA INFORMAÇÃO Maria Irene da Fonseca e Sá Anne Caroline.
Introdução à Compilação Prof. Leandro Magno Slides adaptados a partir do material cedido pelos professores Heloise Manica Paris Teixeira, Yandre M. G.
Matraca – Software para Auxílio de Invisuais no Uso do Computador
Programação Concorrente
Softwares.
Esquema básico do hardware
Membros estáticos.
Lafayette B. Melo – CEFET-PB - COINFO Interface do usuário, linhas de comando e menus Interface do usuário Linhas de comando Menus.
Programa para Auxiliar aos Tetraplégicos na Edição de Textos
Classes e objetos Arrays e Sobrecarga
Estrutura de Dados em Java
Hibernate com JPA Prática
Seminário de Engenharia de Usabilidade
Prof. Dr. Adriano Canabarro Teixeira
Foi criada há 22 anos, por Guido Van Rossum Por que aprender Python?
Unidade I: “Dê um mergulho rápido”
PROGRAMAÇÃO I UNIDADE 1.
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Manual do Usuário - Telefone e Facilidades
Reconhecimento de voz.
Streams –input e output
Tutorial de Utilização do Controle de Pendências – JIRA
Entrada e saída.
ALFABETIZAÇÃO Joselaine S. de Castro.
Recado de Deus para voce..
Arquitetura de computadores
Semântica de Linguagens de Programação
1 Mobilidade de Código com μcode Projeto Giga Alexandre Lages
Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)
Orientação a Objetos Parte I
Técnico em Informática
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
POLIMIG Curso Técnico em Informática Disciplina: Hardware
Linguagem de Programação C#
Prof. Carlos Alberto Kamienski – Avaliação de Desempenho de Redes e Sistemas (INF-103) Santo André, Fevereiro de 2012 Projeto da Disciplina.
Linguagem “A linguagem está em todo o lado, como o ar que respiramos, ao serviço de um milhão de objectivos humanos” (Miller, 1981)
Estrutura de Controle em JAVA
Trabalho de Seminários em Informática
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Socket em Java.
Síntese de voz Para Avatares GPVoz Gabriel Azuirson Styve Stallone.
Aula Prática 13 Orientação a Objeto Monitoria
A música e a voz A música e a voz © 2001 Wilson de Pádua Paula Filho.
Aula – Sistemas Operacionais
Biométria por Impressão Digital
Avaliação de Interfaces Esta apresentação foi baseada no livro Design de Interação ( Preece, Rogers & Sharp) e no Tutorial sobre o livro “Design e avaliação.
Princípios Básicos de Utilização do Computador
Memórias Faculdade de Ciências Aplicadas e Sociais de Petrolina - FACAPE Ciência da Computação Professora: Cynara Carvalho
INTRODUÇÃO THOBER CORADI DETOFENO, MSC. Aula 02 JOINVILLE 2015 Universidade do Estado de Santa Catarina – CCT/UDESC.
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE CIÊNCIA DA COMPUTAÇÃO Redes de Computadores Ferramenta NTop (Network Traffic Probe) Explorador.
Extração de REQUISITOS Parte II. Segundo Pressman (1995), na analise e especificação de requisitos, a ambigüidade não só é possível mas é provável. “-
Transcrição da apresentação:

JavaSpeech – Deixe seu Computador falar com você... 3 a 5 de Outubro – SENAC – Campus Santo Amaro / SP justjava.org.br JavaSpeech – Deixe seu Computador falar com você... Por Robison Cris Brito robison@utfpr.edu.br 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 Teclado/Mouse Usuário “Uma criança não aprende a teclar esc” Fala Usuário “Uma criança aprende a dizer mamãe”

Conversação Verbal 27% Não-Verbal 73% MOTIVAÇÃO Conversação Verbal 27% Não-Verbal 73%

Aplicação Agradável 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

Quando as mãos e os olhos estão ocupados 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

A fala deve ser parte integrante do projeto desde o início PROBLEMAS COMUNS... Projetos com fala A fala deve ser parte integrante do projeto desde o início

Desafios

Transiencia Uma vez que algo foi dito, não tem como voltar atrás 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

Invisibilidade Não se vê os comandos que podem ser ditos Desafios Invisibilidade Não se vê os comandos que podem ser ditos Quais as ações que podem ser executados ?

Assimetria Um usuário pode falar mais rápido do que digitar 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.

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

Desempenho Nenhum sistema de Reconhecimento é 100% Desafios 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.

Flexibilidade vs Precisã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ã”

Fala Continua vs Palavra Isolada 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 Digitalização Processamento de Ruídos Separação de palavras Resultado Probabilístico Comparação de Vocabulário Base de Dados dos Vocabulário

Java Speech SDK API (JSR-113, JSAPI) ou simplesmente Javaspeech API para Sintetização e Reconhecimento de Voz

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

Se define um conjunto de combinações que o usuário pode falar 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 ?

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