1 / 61

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

gore
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Quem acha que a informática hoje em dia está fácil?

  4. Inclusão Digital! Mas quando?

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

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

  7. MOTIVAÇÃO Aplicação Agradável Verbal 27% Não-Verbal 73%

  8. Como uma aplicação deve utilizar a voz?

  9. Tipos de aplicações Somente com fala Speech Only Aplicações Multi-Modal

  10. Objetivo CLARO Quando as mãos e os olhos estão ocupados Ler email por telefone ALTA EXPECTATIVA

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

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

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

  14. Desafios

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

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

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

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

  19. Desempenho 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

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

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

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

  23. Do conceito à prática

  24. Ciclo de Vida de um Sistema de Reconocimento Digitalização Processamento de Ruídos Separação de palavras Fala Resultado Probabilístico Comparação de Vocabulário Base de Dados dos Vocabulário

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

  26. Javaspeech API para Sintetização e Reconhecimento de Voz speech recognition speech synthesis

  27. Javaspeech Aplicação JavaSpeech API Independência de Plataforma FreeTTS The Cloud Garden IBM Speech Festival

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

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

  30. Sintetização de Voz Volume Velocidade da Fala Tom Propriedades Seleção das Vozes

  31. Reconhecimento de Voz Por Regras Ditado Se define um conjunto de combinações que o usuário pode falar STAR TREK

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

  33. 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); }

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

  35. Exemplo de aplicações

  36. Exemplo Didático de Aplicação Exemplos: 78705 - AUSTIN - TX 84105 - SALT LAKE CITY - UT 99505 - FORT RICHARDSON - AK

  37. Software para ensino de inglês

  38. Onde o reconhecimento de voz pode ser aplicado

  39. Automação ...

  40. Auxiliar portadores de deficiências

  41. Automação Residencial para Portadores de Deficiência +

  42. Fonoaudiologia

  43. Softwares Educativos

  44. Auxiliar na redação de processos

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

  46. Controle de comandos no automóvel

  47. Leitura de informações remotas

  48. Auxiliar pessoas com deficiências visuais

  49. Inclusão digital....

More Related