Trabalho de Conclusão de Curso

3,704 views
3,506 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,704
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
73
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Trabalho de Conclusão de Curso

  1. 1. UNIVERSIDADE DE UBERABA VALMIR FERREIRA ROCHA AUTOMAÇÃO RESIDENCIAL POR COMANDO DE VOZ,UTILIZANDO MICROSOFT SPEECH RECOGNITION SDK 5.1 UBERLÂNDIA 2009
  2. 2. 1 VALMIR FERREIRA ROCHA AUTOMAÇÃO RESIDENCIAL POR COMANDO DE VOZ,UTILIZANDO MICROSOFT SPEECH RECOGNITION SDK 5.1 Trabalho apresentado à Universidade de Uberaba, como parte dos requisitos para conclusão de graduação em Sistemas de Informação da Universidade de Uberaba. Orientador: Lilian R. Mendes Paiva. Ms UBERLÂNDIA 2009
  3. 3. 2 VALMIR FERREIRA ROCHA AUTOMAÇÃO RESIDENCIAL POR COMANDO DE VOZ, UTILIZANDO MICROSOFT SPEECH RECOGNITION SDK 5.1 Trabalho apresentado à Universidade de Uberaba, como parte dos requisitos para conclusão de graduação em Sistemas de Informação da Universidade de Uberaba. Orientador(a): Lilian R. Mendes Paiva. Ms Área de concentração: Automação ResidencialAprovada em: 05 de dezembro de 2009Banca Examinadora: Prof. Lilian R. Mendes Paiva. Ms – Orientadora Universidade de Uberaba Maria Fernanda Soares de Almeida Universidade de Uberaba Prof. Carlos Magno Medeiros Queiroz. Ms Universidade de Uberaba Prof. Thiago Bruno Caparelli. Ms Universidade de Uberaba
  4. 4. 3 A toda minha família. Aos meus pais. À minha Esposa.A Deus, pela força de sempre.
  5. 5. 4 AGRADECIMENTOSPrimeiramente agradeço à Deus por ter me dado força de vontade para nunca desistir apesardas grandes dificuldades ocorridas.É com muita satisfação que dedico este trabalho aos meus pais, meus irmãos e a minha esposaGercilene Cristina, que sempre apostaram em mim, me deram apoio, carinho e compreensão,sendo neste longo período as pessoas com quem sempre pude contar.Ao meu amigo Rhobison Alves, que sempre me ajudou em momentos decisivos ao longo docurso.A todos os professores que de alguma forma contribuíram para esta conquista.Aos verdadeiros amigos, compadres e parceiros que ganhei no decorrer de todo o curso.
  6. 6. 5 RESUMOAtualmente, os sistemas automatizados são largamente utilizados devido à busca pelaqualidade de vida, segurança e controle de equipamentos. A automação surgiu para facilitar ereduzir trabalhos, tanto empresarias e industriais como domésticos, proporcionando aosusuários maior comodidade, conforto, praticidade, produtividade e redução de custos. Alémdisso, a automatização de tarefas visa possibilitar a inclusão digital dos usuários denecessidades especiais. Este trabalho apresenta o desenvolvimento de um sistema paraautomatização de equipamentos residenciais através do reconhecimento de voz. O sistemautiliza uma estrutura de hardware próprio responsável por realizar a conexão entre osequipamentos. O protótipo desenvolvido permite que o monitoramento dos equipamentos sejarealizado em duas plataformas distintas sendo elas: Internet e aplicação desktop. O MicrosoftSpeech Recognition (SDK), integrado ao protótipo para execução dos comandos porreconhecimento de voz, fundamenta-se em agentes inteligentes, que é considerado como umaentidade que executa um conjunto de operações que lhes foram incumbidas por um usuário ououtro programa, com algum grau de independência ou autonomia e, executando estasoperações, emprega algum conhecimento dos objetivos ou desejos do usuário (IBM Research,1998). A comunicação entre o computador pessoal (PC) e o hardware foi realizada através daporta paralela. Sendo assim, o projeto utiliza tecnologias acessíveis, visando simplicidade ebaixo custo ao simular uma solução de pequeno porte. A criação da interface gráfica priorizaum ambiente amigável e de simples utilização, já que seu objetivo é permitir que portadoresde necessidades especiais e pessoas sem grandes conhecimentos técnicos possam interagirfacilmente com o protótipo.Palavras-chave: Agentes inteligentes, automação residencial, Microsoft Speech Recognition,segurança, baixo custo, porta paralela.
  7. 7. 6 ABSTRACTCurrently, the automatized systems are widely used due to the constant search for quality oflife, safety and equipment control. Automation emerged in order to facilitate and reduce work,company and industry work as well as domestic, offering more comfort, facility and costreduction. In addition to this, the automatization of tasks aims at enabling digital inclusion ofdisabled users. This work presents the development of a system for automatization ofresidential equipment through speech recognition. The system makes use of its own hardwarestructure, which is responsible for making the connection among the equipment. Theprototype developed enables that the monitoring of the equipment to be done in twodifferent platforms, which are: Internet and desktop application. Microsoft SpeechRecognition (SDK), integrated with the prototype for the speech recognition execution, isfundamented by intelligent agents, which are systems that hold autonomy and fulfill tasks,which are always attached to an automatic executed action or to a manual outside action to beexecuted. The communication between the personal computer (PC) and the hardware wasmade possible through the parallel port. This way, the project makes use of accessibletechnology, aiming at simplicity and low cost to simulate a smaller dimension solution. Thegraphic interface creation prioritizes a simple and user-friendly environment, once itsobjective is to allow that disabled people as well as those without much technical knowledgecan interact easily with the prototype.Key words: intelligent agents, residential automation, Microsoft Speech Recognition, safety,low cost, parallel port.
  8. 8. 7 LISTA DE FIGURASFIGURA 1.  ESQUEMA ELÉTRICO GERAL DO CIRCUITO.......................................... 30 FIGURA 2.  PLACA DO LEDS ........................................................................................... 31 FIGURA 3.  CIRCUITO DO DRIVER DE ACIONAMENTO ........................................... 32 FIGURA 4.  CIRCUITO DO BUFFER PARA PROTEÇÃO DA PORTA PARALELA .... 34 FIGURA 5.  CIRCUITO DA FONTE DE ALIMENTAÇÃO REGULADA (+5V) ............ 34 FIGURA 6.  DIAGRAMA DAS FASES DO PROCESSO .................................................. 36 FIGURA 7.  DB25 QUE FICA ATRÁS DO MICRO .......................................................... 39 FIGURA 8.  CONECTOR MACHO DO CABO PARALELO. ........................................... 39 FIGURA 9.  FOTO DO CONECTOR DB25 MACHO DO CABO PARALELO ............... 40 FIGURA 10.  ESQUEMA DE FUNCIONAMENTO DO DB25 NO MODO SPP............ 40 FIGURA 11.  CONECTOR CENTRONICS 36 PINOS ..................................................... 41 FIGURA 12.  ESBOÇO DA CONEXÃO DO CONECTOR DB25 ................................... 42 FIGURA 13.  CASO DE USO PRINCIPAL DO SISTEMA.............................................. 46 FIGURA 14.  DIAGRAMA DE CLASSE DO MODULO WEB ....................................... 47 FIGURA 15.  DIAGRAMA DE CLASSE DO MODULO DESKTOP.............................. 48 FIGURA 16.  DIAGRAMA DA ESTRUTURA DOS APARELHOS ............................... 49 FIGURA 17.  DIAGRAMA DA ESTRUTURA DOS USUÁRIOS. .................................. 50 FIGURA 18.  DIAGRAMA ENTIDADE RELACIONAMENTO DO BD ....................... 51 FIGURA 19.  CÓDIGO FONTE DA HABILITAÇÃO DO COMPONENTE DE VOZ ... 54 FIGURA 20.  CÓDIGO FONTE DA EXECUÇÃO DOS COMANDOS .......................... 55 FIGURA 21.  APLICAÇÃO DESKTOP ............................................................................ 58 FIGURA 22.  CADASTRO DE APARELHOS NA APLICAÇÃO DESKTOP ................ 58 FIGURA 23.  CADASTRO DE USUÁRIOS UTILIZADOS PARA ACESSO WEB....... 59 FIGURA 24.  VISÃO GERAL DA ÁREA DE CADASTRAMENTOS............................ 59 FIGURA 25.  APLICAÇÃO WEB (LOGIN) ..................................................................... 60 FIGURA 26.  APLICAÇÃO WEB ..................................................................................... 60 FIGURA 27.  TESTE EM PLACA DE PROTOBOARD................................................... 67 FIGURA 28.  PROJETO NO COMPUTADOR ................................................................. 68 FIGURA 29.  ADESIVO PLOTADO SEM MASCARA ................................................... 68 
  9. 9. 8FIGURA 30.  RETIRANDO A MASCARA ...................................................................... 69 FIGURA 31.  COLANDO A MASCARA NO ADESIVO................................................. 69 FIGURA 32.  FIXANDO BEM A MASCARA AO ADESIVO ........................................ 70 FIGURA 33.  RETIRANDO A MASCARA ...................................................................... 70 FIGURA 34.  COLANDO O ADESIVO NA PCB COM A MÁSCARA .......................... 71 FIGURA 35.  RETIRANDO EXCESSO DE ADESIVOS ................................................. 71 FIGURA 36.  VERIFICANDO PROJETO E PLACA ....................................................... 72 FIGURA 37.  CORROENDO AS PLACAS COM PERCLORETO DE FERRO .............. 72 FIGURA 38.  LAVANDO AS PLACAS APÓS CORROSÃO .......................................... 73 FIGURA 39.  CORROSÃO FINALIZADA ....................................................................... 73 FIGURA 40.  MONTAGEM DOS COMPONENTES ....................................................... 74 FIGURA 41.  MONTANDO PROJETO ............................................................................. 74 FIGURA 42.  PROJETO FINALIZADO ............................................................................ 75 FIGURA 43.  TRANSISTOR BC337. ................................................................................ 75 RETIRADO DE ROBOTERNETZ (ROBOTERNETZ, 2009). .............................................. 75 FIGURA 44.  DIODO 1N4148 ........................................................................................... 76 FIGURA 45.  RESISTOR (MILCOMP PRODUTOS ELETRÔNICOS LTDA., 2009). ... 77 FIGURA 46.  RELÉ DE 5V ................................................................................................ 77 FIGURA 47.  LED (DIODO SEMICONDUTOR) ............................................................. 78 FIGURA 48.  CI 74LS541 .................................................................................................. 78 
  10. 10. 9 LISTA DE QUADROSQUADRO 1 – Endereços da porta paralela ..................................................................... 38QUADRO 2 - Significado de cada pino do conector Centronics 36 pinos...................... 41QUADRO 3 - Sequência de bytes gerados pela porta paralela ....................................... 43QUADRO 4 - Script para criação da base de dados........................................................ 52
  11. 11. 10 LISTA DE SIGLASAPI – Application Programming InterfaceAR – Automação Residencial.CI – Circuito IntegradoCPU – Central Processing UnitDMA – Direct Memory AccessECP – Enhaced Capabilities PortEPP – Enhaced Parallel PortFFT - Fast Fourier TransformIIS – Internet Information ServiceLED – Light-Emitting DiodePCB - Placa de Circuito ImpressoPCM – Pulse Code ModulationRF – Reconhecimento da falaRUP – Rational Unified ProcessRV – Reconhecimento de vozSSP – Standard Parallel PortTF – Texto para FalaTTS – Text to SpeechUML – Unified Modeling LanguageXML – Extensible Markup LanguageDLL - Dynamic-link library
  12. 12. 11 SUMÁRIO1.  INTRODUÇÃO .................................................................................................. 14 1.1.  Justificativa ........................................................................................................... 14 1.2.  Motivação ............................................................................................................. 14 1.3.  Objetivos............................................................................................................... 15 1.3.1.  Objetivo geral ....................................................................................................... 15 1.3.2.  Objetivos específicos ............................................................................................ 15 1.4.  Estrutura do trabalho ............................................................................................ 16 2.  FUNDAMENTAÇÃO TEÓRICA ..................................................................... 17 2.1.  Agentes inteligentes.............................................................................................. 17 2.2.  Reconhecimento de voz ........................................................................................ 18 2.2.1.  O que é o reconhecimento de voz? ....................................................................... 18 2.2.2.  Como funciona?.................................................................................................... 19 2.2.2.1.  Transformação PCM ............................................................................................ 19 2.2.2.2.  Padrões acústicos .................................................................................................. 21 2.2.2.3.  Modelos linguísticos ............................................................................................. 22 2.3.  Microsoft speech recognition SDK ...................................................................... 23 2.3.1.  Introdução ............................................................................................................. 23 2.3.2.  SAPI ..................................................................................................................... 24 2.3.3.  Gramática ............................................................................................................. 25 2.3.4.  Regras ................................................................................................................... 26 2.3.5.  Contexto livre de gramática .................................................................................. 27 2.4.  Automação residencial (domótica) ....................................................................... 27 2.4.1.  Objetivos da automação residencial ..................................................................... 27 3.  HARDWARE ...................................................................................................... 29 3.1.  Eagle Layout Editor .............................................................................................. 29 3.2.  Estrutura do Hardware .......................................................................................... 35 3.3.  Porta paralela ........................................................................................................ 37 3.3.1.  Introdução ............................................................................................................. 37 3.3.2.  Modelos de porta paralela .................................................................................... 37 3.3.3.  Endereços da porta paralela .................................................................................. 38 3.3.4.  Conector DB25 ..................................................................................................... 38 3.3.5.  Conector macho Centronics 36 pinos ................................................................... 40 3.3.6.  Ligando e desligando aparelhos externos através da porta paralela ..................... 42 4.  DESENVOLVIMENTO DO SOFTWARE ...................................................... 44 4.1.  Documentação ...................................................................................................... 44 4.1.2.  UML ..................................................................................................................... 44 4.1.2.1.  Diagramas de casos de uso ................................................................................... 45 4.1.2.2.  Diagrama de classes.............................................................................................. 47 
  13. 13. 124.2.  Metodologias ........................................................................................................ 51 4.3.  Processo de comunicação entre software e SDK 5.1............................................ 53 4.4.  Plano de testes ...................................................................................................... 55 4.5.  Apresentação do software..................................................................................... 56 4.5.2.  Introdução ............................................................................................................. 56 4.5.3.  Requisitos funcionais............................................................................................ 57 4.5.4.  Aplicação desktop ................................................................................................ 57 4.5.5.  Aplicação web ...................................................................................................... 60 5.  CONCLUSÃO..................................................................................................... 61 5.1. Trabalhos futuros .............................................................................................................. 62 REFERÊNCIAS ..................................................................................................................... 63 ANEXOS ................................................................................................................................. 66 APÊNDICE A - DESCREVENDO A CRIAÇÃO DA PLACA DE CIRCUITOIMPRESSO (PCB).................................................................................................................. 67 APÊNDICE B - COMPONENTES ELETRÔNICOS UTILIZADOS ............................. 75 B.1 Transístor BC337 ............................................................................................................... 75 B.2 Diodo 1N4148.................................................................................................................... 76 B.3 Resistor .............................................................................................................................. 76 B.4 Relé de 5V ......................................................................................................................... 77 B.5 Led Verde / Led Vermelho 3mm ....................................................................................... 77 B.6 Circuito Integrado 74LS541 .............................................................................................. 78 APÊNDICE C – CENÁRIOS DOS CASOS DE USO ......................................................... 79 C.1. UC1 - Cadastrar Aparelho ................................................................................................ 79 C.2. UC2 - Consultar Aparelho ................................................................................................ 79 C.3. UC3 - Alterar Aparelho .................................................................................................... 79 C.4. UC4 - Excluir Aparelho .................................................................................................... 80 C.5. UC5 - Cadastrar Usuário................................................................................................... 80 C.6. UC6 - Consultar Usuário .................................................................................................. 81 C.7. UC7 - Alterar Usuário....................................................................................................... 81 C.8. UC8 - Excluir Usuário ...................................................................................................... 81 C.9. UC9 - Validar Comando de Voz....................................................................................... 82 C.10. UC10 - Ligar Aparelho ................................................................................................... 82 C.11. UC11 - Desligar Aparelho ............................................................................................. 82 C.12. UC12 - Aguardar Execução de Comando no Sistema .................................................... 83 C.13. UC13 - Capturar informações do sistema Local ............................................................. 83 C.14. UC14 - Validar Identificação .......................................................................................... 83 APÊNDICE D – PLANO DE TESTES E RELATÓRIOS DE EXECUÇÃO ................... 83 1.  INTRODUÇÃO .................................................................................................. 87 1.1.  Finalidade ............................................................................................................. 87 
  14. 14. 131.2.  Informações Detalhadas ....................................................................................... 87 1.3.  Escopo .................................................................................................................. 87 1.4.  Identificação do Projeto ........................................................................................ 87 2.  REQUISITOS DE TESTE ................................................................................. 88 2.1.  Teste Funcional .................................................................................................... 88 2.2.  Teste de Interface do Usuário ............................................................................... 88 2.3.  Teste de Configuração .......................................................................................... 88 2.4.  Teste de Instalação ............................................................................................... 89 3.  ESTRATÉGIA DE TESTE ............................................................................... 89 3.1.  Tipos de Teste....................................................................................................... 89 3.1.1.  Teste Funcional .................................................................................................... 89 3.1.2.  Teste da Interface do Usuário ............................................................................... 90 3.1.3.  Teste de Configuração .......................................................................................... 90 3.1.4.  Teste de Instalação ............................................................................................... 91 3.1.5.  Ferramentas .......................................................................................................... 91 4.  RECURSOS ........................................................................................................ 92 4.1.  Papéis .................................................................................................................... 92 
  15. 15. 14 1. INTRODUÇÃO 1.1. Justificativa A automação está cada dia mais presente em nosso cotidiano, tanto nas residênciasquanto nas indústrias e shoppings. Isso se deve à vários fatores, tais como redução do tempodisponível das pessoas e a constante preocupação das mesmas com a segurança e economiados recursos disponíveis. A domótica (automação residencial) tem evoluído a cada dia.Atualmente, na maioria dos softwares existentes de automação, os usuários possuempequenos confortos, como por exemplo, portões eletrônicos, alarmes, luzes com timer, entreoutros. O grande objetivo é a convergência de tecnologias fazendo com que estejamconectadas entre si, e que os moradores de uma residência automatizada tenham o máximo deconforto e segurança que a tecnologia possibilitar (AFONSO, 2006). O campo de pesquisa relacionado ao reconhecimento de voz é muito grande,envolvendo várias áreas, tais como jogos, editores de texto, extensão de habilidades paradeficientes físicos, atividades domésticas simples, tais como ligar e desligar aparelhos,sistemas de reconhecimento de fala para possibilitar diálogos inteligentes com máquinas, usoem pesquisas médicas sobre a voz e órgãos relacionados a sistemas de segurança. 1.2. Motivação Após levantamento de informações sobre diversos produtos disponíveis no mercadoenvolvendo reconhecimento de voz, tais como o Voice Pilot (MICROSOFT, 2003), daMicrosoft, e o ViaVoice (IBM, 2009) da IBM, pode-se concluir que ainda existe espaço enecessidade de criação de novos produtos nesta área, pois os já existentes possuem alto custo,exigem hardware e software compatíveis e fazem com que exista uma constante dependênciade fabricantes externos. O sistema de automação apresentado neste projeto é independente deespecificações de hardware, possibilitando que qualquer computador doméstico simples sejacapaz de executar perfeitamente todo o sistema.
  16. 16. 15 Existe uma ausência de informações mais específicas em produtos para a área dereconhecimento de voz, principalmente no Brasil, sendo que a maioria das referênciasencontradas são provenientes de países da Europa e dos Estados Unidos. Diante destasinformações, este trabalho busca a utilização e integração com o componente MicrosoftSpeech Recognition SDK (LONG, 2003), uma biblioteca de recursos disponibilizadagratuitamente através do site da Microsoft (2009), que tem como objetivo auxiliar nodesenvolvimento de soluções com o reconhecimento de voz. Esta ferramenta foi integrada aosoftware de Automação Residencial disponibilizando meios para controlar equipamentosdomésticos através do processamento computadorizado, com baixo custo e grande conforto.Além disto, o trabalho tem como objetivo a contribuição para o processo de inclusão digitaldos portadores de necessidades especiais. 1.3. Objetivos 1.3.1. Objetivo geral Desenvolver um sistema de automação residencial para reconhecimento de voz, com“comandos únicos” que ativarão determinados pontos de energia conectados a aparelhoseletroeletrônicos e domésticos, através da porta paralela do computador. 1.3.2. Objetivos específicos Têm-se como objetivos específicos: a) Classificar e reconhecer palavras através do componente Microsoft Speech Recognition SDK 5.1; b) Ligar/Desligar o aparelho doméstico através do reconhecimento de voz; c) Possibilitar que os aparelhos da residência sejam controlados (Ligados ou Desligados) pelas aplicações desktop ou web; d) Permitir que o usuário monitore os estados de todos os aparelhos que estão ao seu controle pelas aplicações desktop e web.
  17. 17. 16 1.4. Estrutura do trabalho O Capítulo 2 (dois) apresenta o estado da arte quanto ao funcionamento doreconhecimento de voz, destacando a complexidade das técnicas e sua evolução. Conceitossobre Agentes Inteligentes diante do componente utilizado, reconhecimento da voz e seufuncionamento. Descreve o Microsoft Speech Recognition, e uma breve descrição sobreautomação residencial e seus objetivos. O Capítulo 3 (três) relata toda a modelagem do sistema de automação residencial porcomando de voz, passando pela estrutura do hardware, softwares utilizados na construção doprojeto, componentes eletrônicos utilizados, os casos de uso e os planos de teste. O Capítulo 4 (quatro) apresenta o software que foi desenvolvido seguindo osconhecimentos adquiridos através da pesquisa bibliográfica. O Capítulo 5 (cinco) traz a conclusão do trabalho e as propostas futuras paramelhorias do sistema.
  18. 18. 17 2. FUNDAMENTAÇÃO TEÓRICA 2.1. Agentes inteligentes Basicamente um agente inteligente possui autonomia e executa tarefas, estandosempre vinculado a uma ação disparada automaticamente ou a uma ação externa manual a serexecutada. A utilização de agentes inteligentes é cada vez mais difundida no meiocomputacional, principalmente nas áreas de interfaces, gerenciamento de redes, recuperaçãode informação, sistemas distribuídos e automação em geral (BARONE; YEPES, 2002). O termo agente inteligente refere-se a todo ente que possui habilidade, capacidade epermissão para atuar em nome de outro. Em termos usuais, agentes seriam pessoas com umconhecimento ou recurso mais especializado em uma determinada área, mediante o qualauxiliariam outros indivíduos em suas tarefas (BARONE; YEPES, 2002). Como ainda não é possível ter um consenso exato da definição sobre o termo agenteinteligente, algumas definições mais relevantes são destacadas de acordo com algunsestudiosos: Segundo Wooldridge e Jennings (1994), são sistemas que apresentam umcomportamento que é determinado por um processo de raciocínio baseado na representaçãode suas atitudes, tais como crenças, comprometimentos e desejos. Um sistema pode ser vistocomo um agente se possuir as seguintes propriedades: autonomia, habilidade social,reatividade, pró-atividade. De acordo com Nwana (1996), agente é um componente de software ou hardwarecapaz de atuar para poder executar uma tarefa em nome de um usuário. Tem-se ainda a definição de Russel e Norvig (1995), segundo o qual a inteligênciaestá intrinsecamente relacionada com as ações racionais. Agir racionalmente significa agir deforma a alcançar as metas definidas por alguém, dadas às crenças deste. Assim, definem deforma genérica que um agente é algo que percebe seu ambiente por meio de sensores e atuanesse ambiente por meio de atuadores.
  19. 19. 18 2.2. Reconhecimento de voz Há alguns anos atrás, o reconhecimento de voz era considerado por muitos comosendo apenas obra de ficção científica. Contudo, desde o final da década de 50, instituições depesquisa já estudavam meios de fazer com que a voz fosse processada pelo computador. Defato, muitas aplicações estão sendo desenvolvidas atualmente no mercado. Um dos exemplosmais comuns, com os quais a maioria de nós certamente já tivemos contato, é a tecnologia dechamada por voz, presente em alguns celulares, rádio comunicadores e outros, existentes nomercado (RABINER; JUANG, 1993). 2.2.1. O que é o reconhecimento de voz? Frequentemente, a expressão “reconhecimento de voz” é utilizada com vários sentidos,que, na verdade, referem-se a tecnologias distintas. O processamento da voz pode ser aplicadoem quatro áreas principais: comandos por voz, fala natural, síntese de voz e autenticação devoz. Cada uma destas é descrita a seguir: a) O reconhecimento de palavras (utilizado nos comandos de voz) caracteriza-se por processar apenas um pequeno trecho de fala, de modo a identificar que tipo de ação o sistema deve tomar. Este processamento torna-se simplificado, uma vez que o sistema já sabe de antemão quais os comandos disponíveis para o utilizador. Este é o caso de centrais de atendimento telefônico, onde o utilizador pode usar a voz em vez de pressionar botões (GUILHOTO, 2002). b) O reconhecimento de fala natural (ou fala contínua) envolve uma ou mais frases, isto é, várias palavras que tenham um sentido semântico. A fala reconhecida é então convertida em texto. O tipo de aplicação mais comum para essa tecnologia é o ditado de documentos, para uso em processadores de texto, escrita de e-mails, etc. (GUILHOTO, 2002). c) A síntese de voz é o processo contrário ao do reconhecimento da fala. O sintetizador recebe um texto na forma digital e transforma-o em ondas sonoras, ou em outras palavras, fazendo uma leitura em voz alta. Um programa de síntese de voz é útil nas situações em que o utilizador não pode desviar a atenção para ler algo ou não tem
  20. 20. 19 acesso ao texto escrito, seja porque a informação está distante ou porque o utilizador tem alguma deficiência visual (GUILHOTO, 2002). d) A autenticação de voz baseia-se, por sua vez, no fato de que a voz é única para cada pessoa e pode ser utilizada para identificar alguém. Os sistemas de autenticação podem ser aplicados para permitir o acesso de uma pessoa a uma determinada função. Um telefone celular com esse recurso de voz, por exemplo, pode ser habilitado para que somente seu dono tenha o direito de usá-lo (GUILHOTO, 2002). 2.2.2. Como funciona? O reconhecimento de voz evoluiu bastante ao longo dos últimos anos. Antes, oreconhecimento processava-se apenas em modo discreto, isto é, o utilizador tinha que fazeruma pausa entre cada palavra ditada. Atualmente, o utilizador já tem a possibilidade deefetuar ditados contínuos ao computador. Além disso, o reconhecimento também se tornoumais inteligente, uma vez que possui um conjunto de regras gramaticais incorporadaspermitindo, assim, uma melhor percepção do que está sendo ditado. Diferentes técnicas são utilizadas no processo do reconhecimento da voz humana, quetransforma os sinais de áudio digitais provenientes da placa de som em voz reconhecida. Estessinais passam por diversas etapas, ao longo das quais são aplicados métodos matemáticos eestatísticos junto a sua gramática de forma a tentar compreender o que está a ser ditado(WIKIPEDIA, 2009e). 2.2.2.1. Transformação PCM Quando o utilizador fornece um comando de voz pelo microfone, este é transmitidopara a placa de som, sendo o sinal analógico, possivelmente amostrado 16.000 vezes porsegundo. Em seguida, este é digitalizado através de uma técnica chamada Pulse Code
  21. 21. 20Modulation1 (PCM) (WIKIPEDIA, 2009e). Esta forma digital do sinal nada mais é do queuma stream2 (WIKIPEDIA, 2009e) de amplitudes que representa o sinal analógico. Noentanto, o software de reconhecimento de voz não pode trabalhar diretamente com base nestastream, dado que é muito complicado procurar padrões que possam ser relacionadas com avoz ditada atualmente. É por este motivo que a voz é transformada num conjunto de bandasde frequência discreta através de uma técnica chamada Fast Fourier Transform3 (FFT)(WIKIPEDIA, 2009b). Esta consiste numa amostragem do sinal de áudio em cada centésimode segundo no domínio da frequência. Assim, a stream de entrada é agora representada porum conjunto de bandas de frequência discretas, que podem ser facilmente identificadas peloscomponentes de frequência de um som. A partir destes componentes, é possível aproximar-nos do que o ouvido humano consegue captar. O passo seguinte envolve o reconhecimentodestas bandas de frequência. Para isso, o software de reconhecimento de voz possui uma basede dados de milhares de frequências ou “fonemas”. Um fonema é a menor unidade de fala deum idioma ou dialeto. As dicções dos fonemas são diferentes entre si, de tal forma que, ao substituir umfonema numa palavra, esta passa a ter um significado completamente diferente. Por exemplo,se substituir o fonema “b” na palavra “bato” pelo fonema “m”, o significado será alteradopara “mato”. A base de dados de fonemas é usada para comparar e identificar as bandas defrequência de áudio que foram amostradas. Se, por exemplo, a frequência de entrada tem umsom igual ao “t”, o software tentará compará-lo com o respectivo fonema na base de dados.Ao encontrar o fonema correspondente, será atribuído ao sinal de entrada o númeroidentificador do fonema na base de dados, também chamado de ”feature number”4. Graças àstransformadas de Fourier e à base de dados de fonemas, tornou-se possível passar de um vetorPCM com 16.000 entradas para um vetor com apenas 100 entradas (por segundo),transformando o processo de reconhecimento em tempo real.1 Representação digital de um sinal analógico, onde a magnitude do sinal é amostrado regularmente emintervalos uniformes, então quantizados para uma série de símbolos em um valor numérico (geralmente binário)do código (WIKIPEDIA, 2009e).2 Pode ser definido como um fluxo de dados em um sistema computacional. Quando um arquivo é aberto paraedição, todo ele ou parte dele fica na memória, permitindo assim alterações, por isto somente quando ele éfechado, tem-se a garantia de que nenhum dado se perderá ou será danificado (WIKIPEDIA, 2009f).3 É um algoritmo eficiente para calcular a transformada de Fourier discreta e a sua inversa (WIKIPEDIA,2009g).4 Número identificador de cada fonema ditado, na base de dados do componente reconhecedor de voz.
  22. 22. 21 2.2.2.2. Padrões acústicos O comando de voz é composto por diversos padrões acústicos e é justamente com elesque são formados todos os fonemas para o reconhecimento da voz. Em primeira instância oprocesso parece ser simples, a cada banda de frequência seria associado o seu fonemacorrespondente, o software, em seguida, juntaria os fonemas em palavras e o computadorpassaria a compreender, aparentemente, a voz humana. No entanto, o processo apresentamaiores complexidades quando visualizado de forma detalhada. Podem existir tantasvariações no som, causadas pelo modo como as palavras são pronunciadas, que é quaseimpossível localizar a entrada na base de dados correspondente ao som. Se não bastasse,pessoas pronunciam a mesma palavra de formas diferentes e, para complicar ainda mais, oambiente também adiciona componentes de ruído em situações nas quais o utilizadorencontra-se em ambientes ruidosos. Assim sendo, o reconhecedor de voz pode apresentarresultados diferentes dependendo da localização do utilizador e da qualidade do microfoneutilizado. Além disso, o próprio som de um fonema varia conforme os fonemas que o rodeiam eo som produzido por um fonema altera-se desde o início da sua pronúncia até o seu fim.Sendo assim, o software precisa usar técnicas complexas para aproximar o som de entrada edescobrir quais os fonemas que estão envolvidos. O ruído de fundo e os problemas devariação são solucionados com recurso de métodos estatísticos, ao permitirmos que umfeature number seja usado por mais do que um fonema. Isto apenas é possível porque a duração de um fonema é longa se comparada com afrequência de amostragem de um centésimo de segundo. Quer dizer que enquanto um fonemaestá a ser pronunciado, lhe são atribuídos vários feature numbers. Admitindo que o softwarejá foi treinado, ou seja, já foram estabelecidas as probabilidades de ocorrência de umdeterminado feature number num fonema, resta-nos calcular a probabilidade do conjunto defeature numbers registrados ser realmente o fonema (GUILHOTO; ROSA, 2001).
  23. 23. 22 2.2.2.3. Modelos linguísticos Consiste em reconhecer palavras, comparando as combinações de fonemas com aspalavras contidas no dicionário utilizado pelo programa. Contudo, isto não é assim tãosimples: o utilizador pode se atrapalhar ao pronunciar uma palavra que não faz parte dodicionário; o software de reconhecimento de voz pode enganar-se ao reconhecer uma palavra;ainda não se sabe onde começa uma palavra e acaba a outra; o processamento de voz continuaincomportável no nível de exigências de CPU e de memória. É por isto tudo que se tornanecessário para o reconhecedor de voz restringir as possibilidades do que está a ser ditado,através do recurso de modelos linguísticos e gramáticas adequadas. Se o sistema forprogramado para fazer o reconhecimento de comandos, o modelo linguístico é mais simplesdo que se fosse para reconhecimento da linguagem natural. Nesse caso, o dicionário contémtodas as formas possíveis de pronunciar cada comando registrado no sistema. Para a falacontínua, é preciso que o sistema utilize um dicionário com todas as palavras da língua oupelo menos com todas as palavras usadas com maior frequência. As condicionantes não ficam por aqui. O dicionário deve também registrar as classesgramaticais de cada vocábulo. Além disso, é preciso construir um modelo gramatical com asconstruções possíveis e a probabilidade de ocorrência de cada tipo de construção. Com aajuda destas informações, o software de reconhecimento de voz tem condições para concluirque as frases “foi à três anos” e “foi a três anos” não estão corretas, mas sim “foi há trêsanos”. Mais uma vez, para o caso do ditado discreto (reconhecimento de comandos), asgramáticas são muito mais simples, uma vez que o sistema sabe com antecedência quais aspalavras que estão à espera. Antes disto, o software deve processar os fonemas paraidentificar corretamente o agrupamento de palavras. Os fonemas contidos em “foi há trêsanos” sugerem termos como “foia” e “trêzanos”, que não estão no dicionário de vocábulosconhecidos e, assim, devem ser descartados. Por outro lado, ao ouvir a palavra“comunicação”, o reconhecedor de voz terá que decidir se ouviu “comunica ação” ou umúnico termo. O modelo gramatical vai indicar qual é a construção mais plausível. Osprogramas mais recentemente implementados fazem a análise de toda a frase para ampliar aprecisão do reconhecimento tomando, assim, vantagem do fato da linguagem apresentar umaestrutura. Por exemplo, supondo que o reconhecedor de voz tem dúvidas entre a escolha daspalavras “hora” e “ora”, mas sabe que a palavra anterior é “uma”, então está na possibilidadede efetuar a escolha certa porque sabe que a sequência “uma hora” faz mais sentido do que a
  24. 24. 23sequência “uma ora”. A técnica que está por detrás disto usa “trigramas”, baseados emmodelos estatísticos, que calculam a probabilidade de uma determinada sequência de palavrasocorrer. A maioria dos pacotes de reconhecimento da fala vem com dicionários que contêmcerca de 150 mil palavras do português. Os sistemas na língua inglesa também trabalham comaproximadamente a mesma quantidade de termos no dicionário (GUILHOTO; ROSA, 2001).. 2.3. Microsoft speech recognition SDK 2.3.1. Introdução A Microsoft está há mais de uma década realizando pesquisas sobre sistemas dereconhecimento de voz, inspirado a ficção cientifica, e sendo atribuídos a filmes, jogos,sistemas de automação e vários outros (RABINER; JUANG, 1993). O Microsoft Speech SDK (SDK) é um kit de desenvolvimento de software paraconstrução de agentes de fala e aplicações para o Microsoft Windows. A interface deprogramação de aplicações de fala (SAPI (Speech Application Programming Interface))(MEGATTS, 2009) reduz de forma substancial o código requerido para que se possa utilizarem um projeto o reconhecimento de voz (para mais informações sobre SAPI, ver seçãodedicada no item 2.3.2). Desta forma tenta-se fazer com que a tecnologia de fala torne-se maisaccessível e robusta para as novas aplicações que irão surgir (MICROSOFT, 2002). Este kit de desenvolvimento suporta OLE Automation5 (WIKIPÉDIA, 2009e) o quepermite a portabilidade do kit para as linguagens ou ambientes de programação que possuemsuporte a estas características, como Microsoft Visual Studio, Borland Delphi, C, C++.Existem dois tipos básicos de máquinas SAPI que são o sistema de Texto para Fala (TF) e oReconhecimento de Voz (RV). O sistema de TF sintetiza o texto e arquivos para serem5 É um mecanismo para a comunicação entre processos baseado em Component Object Model (COM)(MICROSOFT, 2002), introduzido pela Microsoft. Ele fornece uma infraestrutura na qual aplicações (chamadasde controladores de automação) podem acessar e manipular dados compartilhados (chamados objetos deautomação) que são exportados por outras aplicações. Ela é uma evolução à Dynamic Data Exchange (DDE) (éuma tecnologia para a comunicação entre múltiplas aplicações executadas em Microsoft Windows e OS/2introduzida pela Microsoft em 1987.), é um mecanismo mais antigo para que aplicações controlem umas asoutras. Assim como em DDE, em OLE Automation o controlador de automação é o cliente, e a aplicaçãoexportando os objetos de automação, é o servidor.
  25. 25. 24ouvidos usando vozes sintéticas. O reconhecedor de fala converte a voz humana falada noáudio para texto e arquivos. SAPI controla um grande número de aspectos de um sistema de fala, tais como: a) Controle de entrada de áudio b) Carrega arquivos de gramática (se foi criado dinamicamente ou criado a partir de dados que já existiam na memória); c) Compila padrões SAPI XML em formato de gramática, conversão de formatos gramaticais; d) Compartilhamento de reconhecimento através de múltiplas aplicações utilizando agentes compartilhados; e) Armazena dados e encaminha os resultados para análises posteriores. O reconhecedor de voz realiza as seguintes tarefas: a) Utiliza a interface de gramática do SAPI e carrega os comandos ditados; b) Realiza o reconhecimento; c) Retorna a partir do SAPI informações sobre a gramática e o estado das alterações; d) Gera reconhecimento e outros eventos para retornar informações a aplicação. 2.3.2. SAPI A interface da programação das aplicações de voz (Speech Application ProgrammingInterface – SAPI) é uma API (Application Programming Interface) desenvolvida pelaMicrosoft que permite a utilização do reconhecimento de voz (Speech Recognition) e síntesede voz (TTS – Text To Speech) nas aplicações do Windows. Em geral, todas as versões destaAPI foram projetadas para que os programas consigam comunicar de uma maneira fácil,acessível e através de diversas linguagens de programação com o software que reconhece avoz ou que converte o texto para voz. Nas versões, de 1 a 4 as aplicações comunicamdiretamente com os sistemas de voz. Estas API’s incluíam definições de interface abstratascom os diversos programas e não necessitavam de mais recursos. Entretanto, na família SAPI5 as aplicações e os sistemas não comunicam diretamente, associando a fala que está emexecução (sapi.dll) ao respectivo componente. Existe uma API que executa um destes
  26. 26. 25componentes para as aplicações e outro para o conjunto das relações entre os motores de voz.Normalmente em SAPI 5, os programas dão a ordem para: a) Chamar através da API uma gramática para o reconhecimento da voz; b) Iniciar o reconhecimento de voz; c) Fornecer o texto ao sintetizador para ser convertido em voz. O componente sapi.dll em execução interpreta estes comandos e processa-os,momento no qual torna-se necessário chamar o motor de voz que fará a interface. Umexemplo é o carregamento do arquivo de gramática que é feito em tempo real e,posteriormente, os seus dados são passados para o reconhecedor de voz, no qual sãoatualizados para serem utilizados. Os motores do reconhecimento e síntese de voz tambémgeram eventos quando estão sendo processados (por exemplo, uma expressão vocal quandoreconhecida ou o final de uma palavra sintetizada). 2.3.3. Gramática Para a Microsoft (2002), a gramática define as palavras que uma aplicação podereconhecer. O reconhecimento da fala (RF) é baseado na gramática. Uma aplicação poderealizar o RF usando três diferentes tipos de gramática. Cada gramática utiliza-se de umaestratégia diferente para reduzir a possibilidade de sentença a ser reconhecida aumentando,assim, as chances de assertividade durante o processo de RF. a) Gramática em formato arquivo texto - Este tipo de gramática, que é definido em arquivo texto, tem o seu formato similar a arquivos “.ini”. Este arquivo consiste de um número de seções. Cada seção é identificada por uma nova linha com o nome da seção entre colchetes “[]”. As seções têm um número de valores, identificadas pelo nome do valor, seguido do sinal de igual “=” e finalmente pelo valor. Comentários podem ser acrescentados no arquivo. Para isto basta acrescentar ponto e virgula “;” ou duas barras “//”no início da linha. A vantagem do uso de listas consiste no fato das aplicações poderem setar facilmente novos parâmetros para a sua lista em tempo de execução sem ter que recompilar a gramática. O Anexo 1 possui um exemplo de uma gramática. b) Gramática livre - Aqui são utilizadas regras de uso, que predizem as próximas palavras, ou seja, reduz o número de candidatos para avaliar e para reconhecer a
  27. 27. 26 próxima palavra. Para iniciar o uso deste tipo de gramática no RF, a aplicação, primeiro deve ativar uma regra específica dentro da gramática. Isto coloca a regra dentro do nó inicial do reconhecimento. Em outras palavras, para a regra ser utilizada, deve ser colocado no “Start” de regra. Este tipo de padrão requer uma lista de todas as regras que podem ser ativadas. Contudo, estas listas devem optar por ter sempre um número mínimo de regras, pois, desta forma, a eficiência da gramática será aumentada crescendo, assim, a precisão do reconhecimento. Esta ferramenta é muito poderosa devido à habilidade de recursão, mas também pode se tornar muito complexa.Gramática de ditado - Uma gramática de ditado define um contexto para falar, que identificao assunto do ditado, o tipo de estilo de idioma que é esperado, e que ditado foi acabado nopassado. Uma gramática de ditado não contém informação sobre o modelo de idioma (amáquina tem aquela informação) nem especifica tudo das palavras que podem ser faladas.Especifica somente palavras incomuns ou grupos esperados de palavras. Existem algumascaracterísticas que podem influenciar a gramática durante o seu processamento. O peso dagramática é um destes fatores, utilizado a cada transação para alterar a semelhança dosmesmos já iniciados. Este peso é uma probabilidade e a faixa de valores permitida está entre 0e 1. Os com valores 0, sempre serão interpretados como transições impossíveis de passarem aser reconhecidos. Por definição, as gramáticas não possuem pesos definidos, para cadatransição o peso será 1 dividido pelo número de transições fora do estado de precedência(O&A PRODUCTIONS, 2009). 2.3.4. Regras Cada gramática pode conter uma ou mais regras. Podem ser de alto nível, indicandoque podem ser ativados para o reconhecimento. Cada uma tem um estado inicial, os quais sãoconectados por vários tipos de transição: a) Uma palavra de transição indica uma palavra para ser reconhecida; b) Uma regra de transição indica uma referência para uma sub-regra; c) Transições especiais que caracterizam ditados especiais dentro de um contexto
  28. 28. 27 2.3.5. Contexto livre de gramática As referências para sub-regras podem ser recursivas, podem referenciar a elaspróprias, um ao outro de forma direta ou indiretamente. Notificações de regras chamam o agente para informar quando regras são adicionadas,alteradas ou removidas. Existem cinco ações que são tomadas na realização das regras: a) Novas regras podem ser adicionadas; b) Regras podem ser removidas; c) Regras podem ser ativadas; d) Regras podem ser desativadas para o reconhecimento; e) Regras podem ser invalidadas, o qual é uma maneira utilizada para editar através de uma aplicação e deste modo o agente precisa fazer uma leitura nova do conteúdo da regra. 2.4. Automação residencial (domótica) A domótica, como é chamada a automação residencial, tem como principal objetivo aintegração de todos os equipamentos residenciais, vinculando-os em uma só tecnologia.Independentemente dos problemas, a domótica visa atender às necessidades de usuáriosdomésticos em termos de conforto e segurança, e também apresenta algumas soluções emtermos de comunicação de dados. 2.4.1. Objetivos da automação residencial A domótica visa solucionar uma série de problemas usando eletrônica e conceitosmuitas vezes vindos diretamente da ficção científica. O objetivo da automação residencial é integrar iluminação, entretenimento, segurança, telecomunicações, aquecimento, ar condicionado e muito mais
  29. 29. 28 através de um sistema inteligente programável e centralizado. Como consequência fornece praticidade, segurança, conforto e economia para o dia a dia dos usuários (ABREU, 2003).De acordo com Abreu (2003), a automação residencial se divide em três tipos: a) Sistemas autômatos (stand alone): são divididos módulos entre os cômodos, onde cada um pode ser transmissor ou receptor e os módulos (que podem controlar luzes) podem ser controlados através de uma central na cabeceira da cama. O sistema pode ser montado aos poucos; b) Sistemas integrados com controle centralizado: a central é inteligente, as configurações podem ser simples ou complexas, inclui ações ativadas por eventos, equipamento controlado via infravermelho podem ser programados pela central; c) Sistemas de automação complexos: integração total dos sistemas domésticos, a residência precisa ser projetada para essa automação com cabeamento estruturado. Segundo Abreu (2003), os equipamentos, acessórios e técnicas comumente utilizadas na automação residencial são:  Telefonia e transmissão de dados,  Aquecimento e ar condicionado,  Iluminação,  Home theater e som ambiente,  Vigilância, alarme, iluminação de segurança, e circuito interno de TV,  Aparelhos eletrodomésticos,  Cortinas e portas automáticas,  Home offices.
  30. 30. 29 3. HARDWARE 3.1. Eagle Layout Editor O Eagle Layout Editor (CADSOFT ONLINE, 2009) é uma ferramenta de fácil uso epoderosa para projeto de placas de circuito impresso (PCB). Desenvolvida pela empresaCadSoft Online (2009), o EAGLE veio para facilitar a vida de estudantes e profissionais quetrabalham com desenvolvimento de placas de circuito impresso. Para os estudantes, ou aqueles que necessitam de um pequeno projeto, a CadSoftdisponibiliza uma versão freeware do EAGLE. Contudo, algumas funcionalidades maisprofissionais encontram-se desativadas. O EAGLE permite o desenho de circuitos elétricos, possibilitando colocar os símbolosrepresentativos dos componentes, o que facilita a visualização do projeto em si. A Figura 1 mostra uma visão geral do circuito, desenvolvido no EAGLE, com todas asconexões entre os componentes. Foi definido a seguinte estrutura de conexões:  SV9 – Conexão com a porta paralela do computador  CON_PM e CON_PF – Conexões para interligar o Buffer de proteção da porta paralela com a placa dos LEDs  SV1 a SV8 – Conexão da placa dos LEDs com o driver de acionamento  SV10 – Conexão do driver de acionamento com a placa dos LEDs  TRAFO – Ligação do transformador a fonte
  31. 31. 30 Figura 1. Esquema elétrico geral do circuito Na Figura 2 mostra a placa dos LEDs. Esta placa é interligada com a placa de driverde acionamento (Figura 3) que está junto ao equipamento. Cada conexão é identificada porum LED verde que, quando aceso, indica que o equipamento está ligado. Esta placa de LEDs,como pode ser observado, foi desenvolvida para acoplar até 8 drivers de acionamento, ou seja,até 8 equipamentos. Esta placa é composta apenas por resistores e diodos emissores de luz,sendo que finalidade dos resistores é limitar a corrente que deve circular em cada led. Um led
  32. 32. 31padrão, para que acenda com intensidade razoável, deve ser percorrido por uma corrente de+/- 10mA. Um led oferece uma queda de tensão de +/- 1.8V quando percorrido com suacorrente nominal. Portanto, para calcular o valor dos resistores usamos a lei de ohm: V=R*IOnde: V = tensão (que no caso é 5V - 1.8V de queda no led) R = resistência que queremos encontrar I = corrente que deve circular pelo led, que no nosso caso é 10mA = 0.01AEntão temos: 5V-1.8V = R*0.01A R = 3.2V/0.01A R = 320ohmsPortanto, o valor comercial mais próximo para os resistores de 320ohms é 330ohms. Figura 2. Placa do Leds O conjunto dos hardwares também é composto pelo driver de acionamento, que ébasicamente um transistor operando como chave para ligar ou desligar o relé, representadocomo (K2 351). Este circuito é acoplado junto a cada equipamento, realizando o trabalho de
  33. 33. 32fechar ou abrir o circuito para passagem da corrente elétrica. No conector SV10 temos 3sinais que são identificados da seguinte forma. 1=5V, 2=GND(terra), 3=Sinal paraligar/desligar o transístor e, por consequência, o relé. Explicando mais a fundo, o driver deacionamento recebe a alimentação (5V e GND) e o sinal para ligar/desligar o equipamento.Antes de chegar ao transístor, o sinal deve passar por um resistor para limitar a corrente quecircula pela base do mesmo. Quando o sinal está presente, uma corrente circula pela basefazendo com que este conduza, e uma corrente circule pelo relé e este tenha seus contatosfechados, ligando o equipamento. O diodo em antiparalelo com o relé tem a função de proverum caminho para a corrente quando o relé é desligado, protegendo o transístor contra uma altatensão que é gerada pela bobina do relé. É geralmente chamado de "diodo de roda livre". Aalta tensão acontece pelo fato da bobina do relé ser um indutor, que tem a característica demanter a corrente que circula por ele constante, quando esta corrente é interrompidabruscamente e, na tentativa de mantê-la constante, uma alta tensão aparece nos terminais doindutor. Esta alta tensão, por sua vez, pode ser suficiente para danificar o transístor caso nãohaja outro caminho para a corrente no indutor. Sobre o relé utilizado no projeto, este écomposto internamente por duas chaves, denominado (relé com contatos duplos). As chaves são nomeadas K1 e K2. Cada chave tem os terminais S, P e O (S1, P1, O1 eS2, P2, O2). Como no projeto é necessária apenas uma chave, as duas foram ligadas emparalelo formando, assim, uma única chave com maior capacidade de corrente. A Figura 3destaca o driver de acionamento e seus contatos dos terminas que são ligados no paralelo. Figura 3. Circuito do driver de acionamento
  34. 34. 33  “P” é o terminal comum de cada chave.  “S” é o terminal "Normalmente Aberto" de cada chave, ou seja, quando o relé está desenergizado, esta chave (formada por P e S) está aberta.  “O” é o terminal "Normalmente Fechado" de cada chave, ou seja, quando o relé está desenergizado, esta chave (formada por P e O) está fechada. Os equipamentos são conectados aos terminais P e S ou seja, TP1 e TP2 de forma que,quando o relé for energizado, esta chave é fechada e o equipamento é ligado. O terminal TP3fica livre, servindo apenas caso seja necessário mudar o sentido do bit. Ao interligar TP1 eTP2 e o driver receber 0 (zero), o mesmo será desligado e quando receber 1(um) será ligado.Como o equipamento foi interligado entre os terminais TP1 e TP3, quando o driver deacionamento receber o bit 1(um) o equipamento será desligado. O circuito do buffer para proteção da porta paralela é mostrado na Figura 4. Estecircuito possui a função de proteger a porta paralela e, ao mesmo tempo, fornecer os níveis decorrente elétrica suficientes para ativar os Circuitos Integrados. Estes buffers de proteçãoestão acoplados junto ao circuito integrado (CI) com referência (74LS244N). Dentro do CIexistem 8 buffers, que têm, neste protótipo, a funcionalidade de proteger a porta paralelafornecendo mais corrente do que a mesma pode fornecer. Assim, os circuitos que estãoligados podem exigir maior corrente, sendo que o CI é capaz de fornecê-la sem requerer daporta paralela protegendo-a contra sobrecarga de corrente. O buffer de proteção é composto por um circuito integrado (CI) e um jumper. Omesmo é dividido em dois grupos de 4 buffers. Cada grupo pode ser habilitado/desabilitadoseparadamente através do pino representado pela letra G na Figura 4. No desenho, apenaspara fins de representação, parece ter 2 CIs, o que se deve ao fato da existência dos doisgrupos de buffers citados acima O jumper é representado pela sigla JEN. Como dito acima, os buffers podem serhabilitados/desabilitados através do pino de enable G. Quando o jumper está na posição 1-2,os buffers ficam sempre habilitados, quando o jumper está na posição 2-3, os buffers podemser habilitados através do pino 1 da porta paralela, ou seja, podem ser habilitados viasoftware, colocando o pino 1 em nível baixo (0 volts).  Habilitar o buffer significa que o sinal que estiver presente na entrada do buffer, tem sua corrente amplificada e aparece na saída do buffer.  Desabilitar o buffer significa que suas saídas ficarão em alta impedância independente do sinal que estiver na entrada (o buffer não deixa o sinal passar).
  35. 35. 34 Figura 4. Circuito do buffer para proteção da porta paralela Para finalizar a composição de todo o projeto de hardware a Figura 5 mostra o circuitoda fonte de alimentação regulada, onde o nome já atribui à funcionalidade, que é alimentartodo o circuito com uma tensão de 5 volts regulada. Figura 5. Circuito da fonte de alimentação regulada (+5V) Todos estes circuitos demonstrados acima foram desenvolvidos no programa EAGLEe, posteriormente, convertidos para outro formato para a criação dos adesivos realização daplotagem em gráfica. A descrição da criação da Placa de Circuito Impresso (PCI) seráapresentada no Apêndice A.
  36. 36. 35 3.2. Estrutura do Hardware A estrutura do hardware é fundamental para entendimento do projeto, através destaestrutura é possível compreender detalhes técnicos e funcionais do hardware. Primeiramente é necessário enfatizar que todo o circuito trabalha com baixa tensão de5 Volts, sendo responsável apenas por acionar o relé fechando o circuito da corrente elétricado aparelho. O funcionamento de todo o projeto pode ser compreendido da seguinte forma,somente a porta paralela envia dados para o circuito. O circuito não envia nada de volta para aporta paralela, portanto não é necessário usar os sinais de entrada da porta paralela. O circuitorecebe 8 sinais de controle (nível 0 ou 1) para ativar ou desativar os equipamentos, estes sinaisseguem o seguinte caminho: Paralela->Buffer Octal->Drivers dos relés->Relés. Para que o sinal elétrico proveniente da porta paralela do computador seja capaz deacionar o relé e, por consequência, ligar o equipamento conectado ao mesmo, ele deve passarpor alguns estágios de condicionamento.  O primeiro estágio é um buffer octal, ou seja, possui internamente oito buffers individuais, cuja principal finalidade é proteger a porta paralela impedindo que os circuitos seguintes drenem uma corrente maior do que ela é capaz de fornecer. Caso esta sobrecarga aconteça, a corrente será drenada do buffer octal ao invés de ser drenada da porta paralela. O buffer funciona como um mini amplificador de corrente.  O segundo estágio também é um amplificador de corrente, mas, desta vez, com uma capacidade bem maior se comparado com o buffer octal. É composto principalmente por um transístor operando como uma chave digital. Este transístor, quando acionado, fornece toda a corrente necessária para ligar o relé (esta corrente é cerca de 10 vezes maior do que a porta paralela é capaz de fornecer!) e, consequentemente, ligar o equipamento conectado ao circuito do relé. Nesta estrutura foram utilizados diversos componentes eletrônicos todos eles estãodescritos no Apêndice B
  37. 37. 36 A Figura 6 possibilita melhor entendimento de todo o processo e funcionamentoquando implementado. O funcionamento é simples, o computador recebe um comando de vozatravés do microfone normal padrão, este comando de voz é processado no software deautomação e os sinais são transmitidos via porta paralela para a placa mãe. A mesma é ligadaem uma fonte de energia. Cada equipamento é interligado junto ao driver de acionamentoatravés do cabo de energia. O driver de acionamento é ligado a uma fonte de energia einterligado à saída da placa mãe, identificada pela porta e pelos LEDs, na parte superior. Comisso, quando o comando de voz for totalmente reconhecido, o sinal, após chegar à placa mãe,já é capaz de identificar qual equipamento está relacionado ao comando de voz que estácadastrado junto ao banco de dados do software de automação. Com isto, a placa mãe envia osinal ao driver de acionamento onde é feita a abertura ou fechamento do relé, permitindopassagem da corrente elétrica até o equipamento. Figura 6. Diagrama das fases do processo
  38. 38. 37 3.3. Porta paralela A utilização da porta paralela neste projeto foi atribuída pelo fato de ser umatecnologia que, apesar de não ser mais comercializada, permite acessibilidade e facilidade nosestudos e pesquisas acadêmicas. 3.3.1. Introdução A porta paralela é uma interface de comunicação entre o computador e um periférico.Quando a IBM criou seu primeiro computador pessoal, nos meados de 1960, a ideia eraconectar a essa porta uma impressora, no entanto, são vários os periféricos que aindautilizam-se desta porta para enviar e receber dados para o computador (exemplos: Scanners,Impressoras e outros) (ROGER.COM, 2009). 3.3.2. Modelos de porta paralela Existem três tipos de modelos de porta paralela, a transmissão unidirecional,transmissão bidirecional, e a porta avançada chamada de ECP. a) Transmissão unidirecional - A porta paralela SPP (Standard Parallel Port) pode chegar a uma taxa de transmissão de dados a 150KB/s. Comunica-se com a CPU utilizando um barramento de dados de 8 bits. Para a transmissão de dados entre periféricos são usado 4 bits por vez. b) Transmissão bidirecional - A porta avançada EPP (Enhanced Parallel Port) chega a atingir uma taxa de transferência de 2 MB/s. Para atingir essa velocidade, será necessário um cabo especial. Comunica-se com a CPU utilizando um barramento de dados de 32 bits. Para a transmissão de dados entre periféricos são usado 8 bits por vez.
  39. 39. 38 c) A porta avançada ECP (Enhanced Capabilities Port) - Tem as mesmas características que a EPP, porém, utiliza DMA (acesso direto à memória), sem a necessidade do uso do processador, para a transferência de dados. Utiliza também um buffer FIFO de 16 bytes (ROGER.COM., 2009). O buffer FIFO armazena dados temporários até que sejam transferidos pra outro lugar. 3.3.3. Endereços da porta paralela O sistema operacional, Windows ou até mesmo o antigo DOS, nomeia as PortasParalelas chamando-as de LPT1, LPT2, LPT3, etc. Contudo, a porta física padrão docomputador geralmente é a LPT1 e os endereços de cada porta dependem da configuração deseus registradores, ou seja, cada porta paralela é formada por 3 registradores. O registrador dedados, o registrador de status e o registrador de controle. Cada um desses registradores possuium endereço diferente. Por exemplo, o endereço 0x378 (também chamado de endereço baseda LPT1) é o endereço do registrador de dados da porta paralela LPT1. O endereço 0x379(0x378 + 1) é o endereço do registrador de status da LPT1 e o endereço 0x37A (0x378+2) é oendereço do registrador de controle da LPT1. Portanto, cada LPT tem o seu endereço base,LPT1 = 0x378 e LPT2 = 0x278 e assim por diante. O quadro abaixo mostra os endereços hexadecimais e decimais de cada porta.Nome da Porta Endereço de Endereço da Porta Descrição memória 378 LPT1 0000:0408 888 decimal Endereço base hexadecimal LPT2 278 0000:040A 632 decimal Endereço base hexadecimalQUADRO 1 – Endereços da porta paralelaFonte: RogerCom (2009). 3.3.4. Conector DB25 O DB25 é um conector no qual o cabo paralelo se conecta ao computador para o envioe recebimento de dados. No DB25, um pino está em nível lógico 0 quando a tensão elétrica no
  40. 40. 39mesmo está entre 0 a 0,4v. Um pino se encontra em nível lógico 1 quando a tensão elétrica nomesmo está acima de 3.1 e até 5v. A Figura 7 mostra o conector padrão DB25, com 25 pinos,no qual cada pino tem um nome que o identifica: Figura 7. DB25 que fica atrás do micro Fonte: RogerCom (2009). A Figura 8 mostra o conector macho do cabo paralelo e suas referências parainterligação entre o DB25 fêmea. As conexões D0 até D7 são as conexões de saída,justamente as usadas no sistema de automação, apresentadas na Figura 10. Figura 8. Conector macho do cabo paralelo Fonte: RogerCom (2009).
  41. 41. 40 Figura 9. Foto do conector DB25 macho do cabo paralelo Fonte: RogerCom (2009). Todo este esquema é necessário para saber como enviar dados ou receber dadosatravés da porta paralela, portanto a Figura 10 mostra claramente os pinos referentes àsentradas e as saídas. Figura 10. Esquema de funcionamento do DB25 no modo SPP Fonte: RogerCom (2009). 3.3.5. Conector macho Centronics 36 pinos O conector macho Centronics 36 pinos faz parte do cabo da impressora e é atravésdeste que a impressora é conectada ao computador. Ao desenvolver um projeto que utilizeuma interface para conectar ao computador, pode-se utilizar um conector centronics 36 pinos
  42. 42. 41fêmea, isso faz com que a interface aproveite o cabo da impressora, encontrado facilmente emlojas de informática. A Figura 11 abaixo mostra o conector Centronics 36 pinos e suadescrição: Figura 11. Conector centronics 36 pinos Fonte: RogerCom (2009). O quadro abaixo mostra as descrições dos pinos do conector centronics, é a partirdesta tabela que é possível fazer as conexões necessárias para o projeto de automação. Número do Pino Descrição 1 Strob 2 ao 9 Dados (D0...D7) 10 Ack 11 Busy 12 Paper End 13 Select Out 14 Auto Feed 15 ao 18 Não conectado 19 ao 30 GROUND 31 Init 32 Error 33 GROUND 34 a 35 Não conectado 36 Select In QUADRO 2 - Significado de cada pino do conector Centronics Fonte: RogerCom (2009).
  43. 43. 42 3.3.6. Ligando e desligando aparelhos externos através da porta paralela Como já comentado, a porta paralela não é usada somente com uma impressora, épossível desenvolver um circuito eletrônico e acoplá-lo a essa porta e, através de umprograma específico, enviar sinais digitais para controlá-lo. Estes foram os passos utilizados aprincípio para montar tanto o hardware quanto o software de automação. Conforme o projeto de automação, é possível controlar até 8 equipamentossimultâneos. Diante disto, a Figura 12 esboça um protótipo de hardware utilizando LEDs. Omesmo será utilizado para entendimento dos pinos de saída do conector DB25. Na Figura 12, observe que o terminal do catodo (K) dos LEDs está ligado aosterminais dos resistores, que estão ligados através do cabo aos pinos do DB25. Se invertidos,o circuito não funcionará. Observe a enumeração dos pinos do conector DB25. Os pinos D0 a D7 são os pinos de saída, estes pinos são os responsáveis pelo envio dedados ao equipamento. Sinais são enviados individualmente por cada pino, possibilitando ototal controle do hardware por meio do software (ROGER.COM., 2009). Figura 12. Esboço da conexão do conector DB25 Fonte: RogerCom (2009). O sistema de automação envia à Porta Paralela oito bits, um a cada vez que o usuáriopressionar o botão, ou através do comando de voz. No entanto a lógica do software atribui umoperador lógico “OU”, sendo possível também ligar e desligar vários equipamentos ao mesmotempo. A sequência de bits gerada é vista no quadro abaixo.
  44. 44. 43Decimal Hexadecimal Binário Pino/Fio ativo (5V) Comentário 128 80 10000000 9 - D7 Cada bit do byte enviado à Porta Paralela está 64 40 01000000 8 - D6 relacionado com um pino do DB5, e um fio 32 20 00100000 7 - D5 do cabo paralelo, fisicamente. Ao enviar um 16 10 00010000 6 - D4 byte, que o(s) bit(s) esteja(m) ligado(s) ou 8 8 00001000 5 - D3 desligado(s), os LEDs acende(rão) ou 00000100 4 - D2 apaga(rão) conforme os estados dos bits. 4 4 2 2 00000010 3 - D1 1 1 00000001 2 - D0QUADRO 3 - Sequência de bits gerados pela porta paralelaFonte: RogerCom (2009).
  45. 45. 44 4. DESENVOLVIMENTO DO SOFTWARE 4.1. Documentação A documentação de software é extremamente necessária e auxilia na redução de horaspreciosas na correção de problemas. Para muitos desenvolvedores, a criação de documentaçãotécnica é a parte mais “aterrorizante” para se enfrentar em todo o processo de criação de umsoftware, seja pela necessidade de escrever várias e várias páginas de texto, gráficos edesenhos ou ainda pela necessidade de largar aquilo que se aprendeu (programar) para fazeraquilo que não sabe bem (redigir). Entretanto, a documentação é parte integrante de qualquersistema ou programa criado. Pode-se dizer que a documentação é tão importante quanto asquestões de segurança, pois sem a devida documentação, bugs e pontos vulneráveis nosistema demoram a ser encontrados e corrigidos permitindo, assim, que os ataques continuemlevando a resultados indesejáveis do sistema e, consequentemente, insatisfação de seuusuário. O projeto aqui proposto utilizou algumas técnicas de documentação, comodocumentação UML gerando os diagramas de caso de uso e classes. 4.1.2. UML A Linguagem de Modelagem Unificada (UML) é uma linguagem visual paraespecificar, construir e documentar os artefatos dos sistemas (LARMAN, 2007). A palavra visual na definição é um ponto chave – a UML é a notação diagramáticapadrão, de fato, para desenhar ou apresentar figuras (com algum texto) relacionadas asoftware (CADSOFT ONLINE, 2009).
  46. 46. 45 4.1.2.1. Diagramas de Casos de Uso A UML fornece a notação de diagramas de casos de uso para ilustrar os nomes doscasos de uso e dos atores, bem como os relacionamentos entre eles (LARMAN, 2007). Osmesmos sugerem como os atores interagem com o sistema. A Figura 13 mostra o caso de usoprincipal, em que o usuário pode cadastrar os aparelhos existentes na residência, e os usuáriosque poderão acessar o sistema web. A descrição dos cenários existentes para cada caso de usoencontra-se no Apêndice C. Conforme diagrama representado pela Figura 13, todas as opções de cadastramento,consultas e exclusões estão relacionadas ao usuário local. Existe uma dependência norelacionamento entre as funcionalidades de cada caso de uso. Estas relações são utilizadaspara demonstrar cada processo do sistema. Cada caso de uso possui ações classificadas pelos“includes” ou “extends” referindo-se aos atributos e dependências destinadas a cada caso deuso. Através deste diagrama é possível entender praticamente todos os processos que poderãoser incorporados durante o desenvolvimento.
  47. 47. 46Figura 13. Caso de uso principal do sistema
  48. 48. 47 4.1.2.2. Diagrama de classes É uma representação da estrutura e relações das classes que servem de modelo para osobjetos utilizados no desenvolvimento. Modelagem muito útil, define todas as classes que osistema necessita possuir e é a base para a construção de diversos outros diagramas. Para a construção deste projeto foram utilizadas diversas classes, pois o intuito eraestabelecer uma estrutura relacionada ao desenvolvimento orientado a objetos, com istorequer um melhor planejamento e boa estruturação dos diagramas. A Figura 14 ilustra osdiagramas referentes às classes principais que compõem o projeto web. Dentro de cadadiagrama é possível identificar quais atributos, métodos e classes serão compostos em tododesenvolvimento. O diagrama de classe pode ser gerado através de uma tecnologia chamadade engenharia reversa, que possibilita após o sistema pronto, gerar todo os diagramas para finsde documentação. Figura 14. Diagrama de classe do modulo Web A Figura 15 ilustra cada classe utilizada no desenvolvimento do modulo desktop. Este,no entanto, possui uma maior complexidade, pois realiza a integração com o componenteSDK para o reconhecimento da voz.
  49. 49. 48Figura 15. Diagrama de classe do modulo Desktop
  50. 50. 49 O projeto é composto por uma DLL (Dynamic-link library), termo técnico utilizado asbibliotecas de ligação dinâmicas, o mesmo pode ser desenvolvido separadamente da estruturageral de todo o código fonte, sendo possível atribuí-la a qualquer outro projetoindependentemente. Este é mais um dos diversos recursos sobre programação orientada aobjetos. Esta DLL, chamada de IOAutomação, compõe toda a estrutura de dados que o sistemanecessita tais como: inclusão, exclusão, pesquisas e outros. A organização de toda a estruturafoi planejada para futuras manutenções. Assim, os processos foram subdivididos conformedemanda do projeto. A Figura 16 ilustra todas as classes, métodos e atributos que compõem aestrutura relacionada aos aparelhos. Figura 16. Diagrama da estrutura dos aparelhos
  51. 51. 50 A Figura 17 ilustra também todas as classes, métodos e atributos utilizados naestrutura de desenvolvimento referente aos usuários. Figura 17. Diagrama da estrutura dos usuários.
  52. 52. 51 4.2. Metodologias Na parte de documentações a ferramenta utilizada foi o Enterprise Arquitect (E.A), omesmo é considerado um software ícone no desenvolvimento das documentações. Utilizadopor grandes empresas, o E.A possibilita uma utilização por 30 dias. No entanto, este tempo foio suficiente para criar toda a estrutura de documentação do projeto de automação. A ferramenta utilizada na codificação de todo o código fonte, foi através da IDE dedesenvolvimento Microsoft Visual Studio 2008, com interpretação da linguagem C#. A estrutura de dados foi atribuída ao MySql, que de fato se tornou pioneira tanto naárea acadêmica quanto profissional, pelo fato de ser uma ferramenta totalmente gratuita,interativa e de fácil utilização. A Figura 18 ilustra o diagrama de entidade relacionamento detoda a estrutura composta no banco de dados. Figura 18. Diagrama entidade relacionamento do banco de dados
  53. 53. 52 No Quadro 4, são ilustrados todos os scripts de criação da base de dados do sistema.Todos estes scripts podem ser executados separadamente ou todos juntos. Script de criação do banco deCREATE DATABASE IF NOT EXISTS automacao;USE automacao; dadosDROP TABLE IF EXISTS `aparelho`;CREATE TABLE `aparelho` ( `Codigo` int(10) unsigned NOT NULLAUTO_INCREMENT, Script de criação da tabela `NomeAparelho` varchar(45) NOT NULL, APARELHOS, e todos os seus `Descricao` varchar(45) NOT NULL, atributos. `ComandoVoz` varchar(45) NOT NULL, `Flag` int(10) unsigned NOT NULL, `Porta` varchar(2) NOT NULL, `ComandoVozSaida` varchar(45) NOT NULL, PRIMARY KEY (`Codigo`)) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULTCHARSET=latin1;DROP TABLE IF EXISTS `porta`;CREATE TABLE `porta` ( `NomePorta` varchar(2) NOT NULL, Script de criação da tabela `Bits` varchar(8) NOT NULL, PORTA, e todos seus atributos PRIMARY KEY (`NomePorta`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;DROP TABLE IF EXISTS `usuario`;CREATE TABLE `usuario` ( `Codigo` int(10) unsigned NOT NULLAUTO_INCREMENT, Script de criação da tabela `Nome` varchar(45) NOT NULL, USUARIO, e todos os seus `Usuario` varchar(45) NOT NULL, atributos. `Senha` varchar(45) NOT NULL, PRIMARY KEY (`Codigo`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULTCHARSET=latin1;QUADRO 4 – Script para criação da base de dados
  54. 54. 53 4.3. Processo de comunicação entre software e SDK 5.1 A comunicação acontece da forma descrita a seguir. Quando instalado o MicrosoftSpeech Recognition SDK 5.1 ao Windows, ele cria diversos arquivos na pasta de sistemas.No entanto, ao inicializar o processo de desenvolvimento na IDE Microsoft Visual Studio2008, inicialmente é necessário adicionar a referência do componente MICROSOFT SPEECHOBJECT LIBRARY 5.0, que pode ser encontrado seguindo os passos. Clique no menuPROJECT->ADD REFERENCE, na janela que irá abrir, siga para a aba COM, e procure pelareferência citada, clique em OK e pronto. Feito isso já se consegue manipular e integrar ocomponente junto ao projeto, mas para isto é necessário ter conhecimento de lógica deprogramação, pois o componente é independente e, de certa forma, não consegue trabalharsozinho, ou seja, é necessário o manuseio do mesmo via código. Quando se realiza uma referência de algum componente ou controle no projeto geral,significa que é possível obter uma comunicação mais diretamente. Para isto, as técnicas deprogramação orientada a objeto (POO), são extremamente viáveis e necessárias. Até omomento, o software não realizou nenhuma comunicação com o componente. Para isso, énecessário começar o processo de codificação no código fonte realizando a integração dosmesmos. Inicialmente, para realizar uma primeira comunicação, precisa-se inicializar ocomponente de voz, o que é feito adicionando o controle SpeechListBox que é criado junto aotoolbox da IDE. Posteriormente, através da propriedade “SpeechEnabled”, é possível habilitá-lo. Contudo, agora se realiza a codificação do código para habilitar totalmente o componente,deixando livre para o manuseio em todo o sistema. A Figura 19 ilustra o código utilizado noprojeto.
  55. 55. 54//Inicializa o componente de reconhecimento de voz private void InitializeSpeech() { Debug.WriteLine("Inicializando Reconhecimento de Voz.."); m_editMensagens.AppendText("Inicializando Reconhecimento de Voz.. (Aguardando comando inicial!!)"); try { objRecoContext = new SpeechLib.SpSharedRecoContext(); objRecoContext.Hypothesis += new _ISpeechRecoContextEvents_HypothesisEventHandler(RecoContext_Hypothesis); objRecoContext.Recognition += new _ISpeechRecoContextEvents_RecognitionEventHandler(RecoContext_Recognition); grammar = objRecoContext.CreateGrammar(grammarId); ruleTopLevel = grammar.Rules.Add("TopLevelRule", SpeechRuleAttributes.SRATopLevel |SpeechRuleAttributes.SRADynamic, 1); ruleListItems = grammar.Rules.Add("ListItemsRule", SpeechRuleAttributes.SRADynamic, 2); SpeechLib.ISpeechGrammarRuleState stateAfterSelect; stateAfterSelect = ruleTopLevel.AddState(); object PropValue = ""; ruleTopLevel.InitialState.AddWordTransition(stateAfterSelect, PreCommandString, " ",SpeechGrammarWordType.SGLexical, "", 0, ref PropValue, 1.0F); PropValue = ""; stateAfterSelect.AddRuleTransition(null, ruleListItems, "", 1, ref PropValue, 0F); RebuildGrammar(); grammar.CmdSetRuleState("TopLevelRule", SpeechRuleState.SGDSActive); speechInitialized = true; } catch (Exception e) { System.Windows.Forms.MessageBox.Show("Este aplicativo não pode executar corretamente. Exceção nainicialização do componente de voz.rnrn" + e.ToString(), "Error"); } } Figura 19. Código fonte da habilitação do componente de voz A execução dos comandos é feita pela classe que geralmente é chamada de RebuildGrammar, ou seja, execução das gramáticas. Este nome pode ser modificado de acordo com opadrão de cada profissional. Nota-se também que nesta classe já é necessária a integração como banco de dados para realizar a conferência entre comando reconhecido e base de dados. A Figura 20 ilustra os códigos que foram utilizados para executar os comandosreconhecidos pelo sistema. Este trabalho visa demonstrar o estudo e pesquisas tanto do reconhecimento de vozquanto da automação residencial, não é, no entanto o foco relacionar todos os passos dedesenvolvimento. As ilustrações foram necessárias para que o leitor consiga entender oparadigma do projeto, e através de estudos próprios relacionados a estes, consigamestabelecer outros meios de desenvolvimento.

×