curso de engenharia de computação sistema controle via...

65
i Curso de Engenharia de Computação SISTEMA CONTROLE VIA COMANDO DE VOZ Carlos André Pinheiro Braz Campinas – São Paulo – Brasil Dezembro de 2008

Upload: others

Post on 22-Mar-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

i

Curso de Engenharia de Computação

SISTEMA CONTROLE VIA COMANDO DE VOZ

Carlos André Pinheiro Braz

Campinas – São Paulo – Brasil

Dezembro de 2008

Page 2: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

ii

Curso de Engenharia de Computação

SISTEMA DE CONTROLE VIA COMANDO DE VOZ

Carlos André Pinheiro Braz

Monografia apresentada à disciplina de Trabalho de Conclusão do Curso de Engenharia de Computação da Universidade São Francisco, sob a orientação do Prof. Dr. Claudio Kiyoshi Umezu, como exigência parcial para conclusão do curso de graduação. Orientador: Prof. Dr. Claudio Kiyoshi Umezu.

Campinas – São Paulo – Brasil

Dezembro de 2008

Page 3: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

iii

Sistema de Controle Via Comando de Voz

Carlos André Pinheiro Braz Monografia defendida e aprovada em 11 de Dezembro de 2008 pela Banca Examinadora assim constituída:

Prof. Dr. Claudio Kiyoshi Umezu (Orientador) USF – Universidade São Francisco – Campinas – SP.

Prof. M.Sc. Claudio Maximiliano Zaina USF – Universidade São Francisco – Campinas – SP.

Prof. M.Sc. Raimundo Claudio da Silva Vasconcelos USF – Universidade São Francisco – Campinas – SP.

Page 4: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

iv

.

Dedico esse trabalho com todo meu amor e

respeito a minha amada esposa, que com sua

paciência e plenitude foi essencial para que os

resultados deste trabalho fossem positivos e

superassem as expectativas.

Page 5: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

v

Agradecimentos

Agradeço primeiramente a Deus, pois, foi ele que me deu força e aptidão

para realizar este trabalho. A ele devo a minha existência.

Em segundo lugar agradeço a minha amada esposa que sempre esteve do

meu lado, me apoiando, incentivando e sendo o alicerce que sustentou o meu

sucesso. Objetivou-me a sempre dar o melhor de mim. Amou-me e apoiou

incondicionalmente, mesmo muitas vezes não podendo retribuir devido à longa

jornada de desenvolvimento deste trabalho.

A minha família, pai mãe, sogro, sogra e irmãos que sempre estiveram

dispostos a ajudar.

Ao Prof. Dr. Claudio Kiyoshi Umezu que me orientou, com sua amizade e

conhecimento contribuiu com máximo para conclusão deste trabalho. Esteve

sempre disposto a ajudar e jamais negou os frutos do seu conhecimento para o

resultado notável deste trabalho.

A todos os meus colegas de classe que convivi estes 5 anos. Tive o prazer

de aprender muito, ganhos notáveis, valiosas amizades que ficarão para sempre.

Em especial a minha amiga Rúbia Mara Rossi que mesmo com dois filhos

pequenos, também venceu essa guerra sem perder nenhuma batalha.

Aos professores do corpo docente da Universidade São Francisco que com

suas bagagens e experiências contribuíram muito para meu aprendizado,

possibilitando um grande crescimento pessoal e profissional.

A todos os funcionários da universidade São Francisco, desde o faxineiro

até a Reitoria. Se não fosse graças ao trabalho e cada um, eu não teria tido a

oportunidade de me formar Engenheiro da computação em uma universidade que

lego de muita qualidade.

Em Especial a um grande Amigo, Silvio B. Setubal, a pessoa que me serviu

como espelho e graças a seu apoio e contribuição possibilitou os meus primeiros

passos na Área de computação.

Page 6: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

vi

Sumário

SUMÁRIO.............................................................................................................. VI

LISTA DE FIGURAS ........................................................................................... VIII

RESUMO............................................................................................................... IX

ABSTRACT ............................................................................................................ X

1 INTRODUÇÃO ..................................................................................................1

1.1 Objetivo ..........................................................................................................2

1.2 Justificativa.....................................................................................................3

1.3 Organização do trabalho ................................................................................4

2 O RECONHECIMENTO DE VOZ......................................................................6

2.1 Gramáticas ...................................................................................................12

2.2 Trabalhos Já Realizados ..............................................................................14

2.3 A API de Reconhecimento de Voz ...............................................................15

2.4 Comparando APIs de Reconhecimento de voz............................................17

3 O PROJETO....................................................................................................20

3.1 Os Modelos ..................................................................................................25

3.1.1 Modelo de Gramática .............................................................................25

3.1.2 Modelo da Interface de Hardware ..........................................................33

3.1.3 Modelo Hierarquia de Comandos...........................................................38

3.2 Desenvolvimento do Sistema .......................................................................41

3.2.1 A Base Dados ........................................................................................41

3.2.2 O Sistema de Controle Via Comandos de Voz.......................................44

3.3 O Reconhecimento de Voz e os Ruídos.......................................................49

4 CONCLUSÃO..................................................................................................52

4.1 Contribuições ...............................................................................................52

4.2 Trabalhos Futuros ........................................................................................53

Page 7: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

vii

Lista de Siglas

API – Application Programming Interface

DDI – Drive Direct Interface

HMM – Hidden Markov Model

JSAPI – Java Speech API

NLU – Natural Language Understanding

PCM – Pulse Code Modulation

PDA – Personal Digital Assistant

SAPI – Speech API

SCVCV – Sistema de Controle Via Comando de Voz

SDK – Software Developer Kit

MDI – Multiple Document Interface

MASAPI – Microsoft Speech Application Programming Interface

SCVCV – Sistema de Controle Via Comando de Voz

Page 8: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

viii

Lista de Figuras

Figura 1 - As fases empregadas para reconhecimento de fala.

(DAMASCENO, 2005). .................................................................................6

Figura 2 - Representação do modelo de Hidden Markov. (ODELL, 1995). ..........9

Figura 3 - Diagrama de um sistema de reconhecimento de fala genérico,

baseado em estatísticas relacionando com treino e decodificação da

fala. (CHOU, 2003). ....................................................................................10

Figura 4 - Como um mecanismo de reconhecimento de Voz reconhece uma

palavra. (ODELL, 2005). .............................................................................11

Figura 5 – Esquema de integração da base de dados com os processos do

reconhecimento da fala. (RABYNER, 1993). ..............................................12

Figura 6 - Esquema Uso da API de Fala. (MICROSOFT, 2000). .......................16

Figura 7 - Gráfico comparativo Java Speech X Microsoft Speech API.

(DAMASCENO, 2005). ...............................................................................18

Figura 8 – Esquema básico do sistema de controle via comando de Voz. ........20

Figura 9 – Diagrama UML dos casos de uso do sistema comando de voz. .......22

Figura 10 – Tela de configuração do mecanismo de fala...................................24

Figura 11 - Árvore de regras de uma gramática para uso de comandos de

voz. .............................................................................................................26

Figura 12 - ”RECO” - Interface de teste de reconhecimento de voz...................28

Figura 13 - Árvore modelo de estrutura da geração de arquivos XML. ..............32

Figura 14 - Esquema dos pinos porta paralela (Conector DB25) no modo

ECP. (ROGERCOM, 2008).........................................................................34

Figura 16 – Modelo hierarquia de comandos. ....................................................40

Figura 17 – Diagrama relacional do banco de dados do Sistema de Controle

via Comando de Voz...................................................................................43

Figura 18 – Tela do Formulário MDI contendo o formulário de autenticação

no sistema...................................................................................................44

Figura 19 - Tela do formulário de manutenção da hierarquia de comandos. .....45

Figura 20 – Tela do Formulário monitor comando de Voz. ................................48

Page 9: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

ix

Resumo

Com o corrente problema da inclusão social dos portadores de

necessidades especiais, tem-se a necessidade de promover a portabilidade e

inclusão social destes indivíduos. O uso dos sistemas de reconhecimento de voz

teve um notável crescimento, e mostrou ser uma nova tecnologia a favor da

acessibilidade. Baseado neste conceito, este projeto tem por objetivo entender o

funcionamento da tecnologia de reconhecimento de voz e desenvolver um sistema

de controle via comando de voz.

Foi desenvolvido um modelo de gramática que demonstra um padrão de

representação das “tags” XML para uso em comandos de reconhecimento de voz,

bem como a organização desses comandos e os vários arquivos XMLs gerados.

Também foi criado um modelo de hardware de controle de equipamentos,

composto por vários módulos que expande sua capacidade de controle sem a

necessidade de alterar a estrutura atual já implantada. Para controlá-lo, foi

desenvolvido um modelo de organização e classificação dos comandos e, através

destes, foi desenvolvido o sistema de controle via comando de voz.

O sistema de controle via comando de voz é um sistema robusto e funcional

que permite controlar vários equipamentos eletrônicos ou digitais e foi projetado

de forma que sua capacidade de controle possa ser expandida sem a necessidade

de alterações no seu código fonte.

PALAVRAS-CHAVE: Reconhecimento de Voz, API de Fala, Microsoft Speech API,

Acessibilidade, Sistema de Controle, XML.

Page 10: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

x

Abstract

With the current issue of social inclusion of individuals with special needs,

has been the need to promote social inclusion and portability of these individuals.

The use of voice recognition systems had a remarkable growth, and it proved to be

a technology in favor of the accessibility. Based on this concept, this project is to

understand the operation of voice recognition technology and develop a control

system through voice command.

It developed a model of grammar that demonstrates a pattern of

representation of the tags for use in XML for recognizing voice commands and the

organization of these commands and the various files XMLs generated. It was also

created a model of hardware control equipment compound by several modules that

expand their ability to control without the necessity to change the current structure

already deployed. To control it, was developed a model of organization and

classification of commands and, through these models has been developed a

control system via voice command.

The Control System Via Voice Command is a robust and functional system

to control several electronics or digital equipments and it was designed so that their

ability to control can be expanded without the necessity for changes in your source

code.

KEY WORDS: Voice Recognition, Speech API, Microsoft Speech API, Accessibility, Control System, XML.

Page 11: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

1

1 Introdução

No mercado existem várias empresas que investem na tecnologia de

reconhecimento de voz, como a Philips, IBM, Dragon Systems e Lernout &

Hauspie. Essas tecnologias estão presentes em chips de celulares que permitem

a discagem via comando de voz, leitura e escrita de textos. O IBM Via Voice é

considerado um dos melhores softwares da categoria, reconhece a voz em vários

idiomas. Esses softwares permitem executar alguns comandos do sistema

operacional como abrir e fechar aplicativos e até mesmo executar programas pré-

configurados. (DAMASCENO, 2005).

Os fabricantes dos sistemas de reconhecimento de voz disponibilizam

bibliotecas e APIs (Application Programming Interface) que permite o

desenvolvimento de aplicações específicas de reconhecimento de voz. Alinhando

as tecnologias de reconhecimento de voz com as tecnologias de controle e

automação de equipamentos eletrônicos e digitais, nota-se a possibilidade de

desenvolver um software que possa reconhecer os comandos de voz de um

usuário e atuar em um hardware de controle de equipamentos, surgindo o sistema

de controle via comando de voz.

Em São Paulo, na Brasiltec 2003 (Salão e Fórum de Inovação Tecnológica

& Tecnologias Aplicadas nas Cadeias Produtivas), engenheiros efetuaram

demonstração da chamada “Casa Inteligente”, que utilizava PDAs (Personal

Digital Assistant) e o controle de voz para acionar os dispositivos eletroeletrônicos

da casa. Os investimentos ficaram em torno de 4 milhões de reais. O problema é

que além de ser somente um demonstrativo, o custo foi exorbitante. O fator custo,

impossibilita que pessoas de média e baixa renda possam adquirir o sistema,

sendo que somente pessoas com alto poder aquisitivo poderiam usufruir dessa

tecnologia, o que causaria maior desigualdade social. Outro ponto negativo

encontrado é que o projeto não foi desenvolvido para atender empresas em geral.

O Sistema Controle Via Comando de Voz (SCVCV), desenvolvido neste

trabalho, possibilita controlar equipamentos via comando de voz usando

tecnologias de última geração, como comunicação sem fio, microcontroladores e

Page 12: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

2

software não proprietário, proporcionando um baixo custo do sistema. Portanto

maior acessibilidade poderá ser oferecida para todas as classes sociais,

possibilitando a inclusão social e a redução da desigualdade social.

Para desenvolver esse projeto é necessário conhecer o funcionamento da

tecnologia de reconhecimento de voz. Em seguida descobrir as APIs disponíveis

no mercado para desenvolvimento do software de reconhecimento.

O sistema proposto poderá ser usado em residências, empresas e outros

estabelecimentos comerciais, permitindo que pessoas com deficiências , apenas

com a voz, possam controlar os equipamentos eletroeletrônicos, como por

exemplo, controlar ar condicionado, iluminação, elevador, computadores, efetuar

chamadas telefônicas, abrir portas com fechaduras eletrônicas, controlar uma

cadeira de rodas adaptada com um motor elétrico, ou seja, qualquer dispositivo

que possa ser controlado por uma interface digital ou analógica.

Outro campo é a medicina. Os médicos poderão ligar aparelhos, ajustar

configurações sem se desprender da cirurgia em andamento, simplesmente

utilizando o controle de voz. Essa é uma fase mais avançada, pois os comandos

devem ser reconhecidos imediatamente, mas é uma barreira que com melhorias

no sistema poderá ser quebrada.

1.1 Objetivo

O objetivo principal deste projeto é desenvolver um software que reconheça

comandos de voz e possibilite a comunicação com interfaces eletrônicas

analógicas ou digitais, permitindo controlar equipamentos ligados nas suas

respectivas saídas.

Para desenvolver um projeto de reconhecimento de voz foram estudados

os principais softwares de reconhecimento de fala do mercado, verificando suas

principais diferenças e definir o adequado para o projeto.

Em meio de fundamentar essa tecnologia conceituou-se a tecnologia de

reconhecimento de voz, suas aplicações e principais definições necessárias para

o entendimento da mesma e desenvolvimento do sistema.

Page 13: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

3

Antes de iniciar a codificação do software, foram desenvolvidos modelos

que possam ser aplicados e utilizados no sistema de reconhecimento de voz de

modo que se tenha um padrão que atenda às necessidades do projeto. Foram

criados modelos de organização dos comandos, modelos de gramática e um

modelo do hardware controlador a ser usado junto com o sistema de controle via

comando de voz

Por final mostrar o funcionamento da API de reconhecimento de voz

Microsoft Speech API, suas principais classes e métodos e definir a interface do

software criado e seu funcionamento.

1.2 Justificativa

Um dos principais problemas sociais encontrados no país é a inclusão

social dos portadores de deficiência física. As vias de circulação não possuem

rampas de acesso, equipamentos eletrônicos ficam em locais de difíceis acessos

e os disjuntores (liga e desliga) de lâmpadas não ficam na altura padrão de

acessibilidade a um cadeirante. Além da dificuldade nos meios sociais, dentro da

sua residência também existem dificuldades de acesso.

Não tratando somente de deficientes físicos, pessoas em recuperação

cirúrgica ou problemas de saúde que impossibilitam sua locomoção também

sofrem com problemas de acessibilidade e dependem 24 horas por dia de

pessoas para atender às suas necessidades, sejam elas físicas ou de lazer. Um

exemplo disso são pessoas com paralisia que não conseguem mover-se ao

menos para usar um controle remoto.

Nos hospitais também existem os pacientes que podem passar mal e,

devido à deficiências ou mobilização corporal não terem ou conseguirem acesso a

um dispositivo que depende da mobilidade física para pedir ajuda ou

simplesmente para seu conforto como ajustes de macas e equipamentos

eletrônicos.

Com todos esses problemas encontrados na sociedade o projeto Sistema

de controle via comando de voz (SCVCV) propõe promover acessibilidade e a

Page 14: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

4

inclusão social para pessoas com diversos tipos de deficiências física , sejam elas

temporárias ou não, permitindo flexibilidade nas suas atividades ou necessidades

sem depender de terceiros. Ressaltando que não somente pessoas com

deficiências físicas como também pessoas sem as mesmas poderão usufruir desta

tecnologia possibilitando seu conforto.

1.3 Organização do trabalho

Este trabalho esta dividido em 4 capítulos:

• Capítulo segundo: Corresponde a revisão bibliográfica sobre o

reconhecimento de voz. Apresenta as principais definições

necessárias para o entendimento de como a voz é falada e

reconhecida pelos mecanismos de reconhecimento. Aborda o

modelo de Markov, como os softwares fazem para reconhecer a voz

humana e a importância das gramáticas para a eficácia do

reconhecimento dos comandos de voz. Descreve dois trabalhos

realizados no campo de reconhecimento de voz que permitem maior

acessibilidade aos portadores de deficiência física. Fala do

funcionamento das APIs de reconhecimento de fala e suas principais

funções. Faz o comparativo das três principais bibliotecas de

reconhecimento do mercado: O IBM via Voice, O Java Speech e o

Microsoft Speech.

• Capítulo terceiro: Possui a descrição do projeto de software. Define

as principais classes do Microsoft Speech que vão ser usadas no

desenvolvimento. Ilustra a integração do servidor de aplicação com

os módulos de controle. Descreve as configurações mínimas da CPU

a ser usada como servidor de aplicação para SCVCV. Demonstra os

modelos desenvolvidos para desenvolvimento do projeto. Define um

modelo de gramática que permite trabalhar com múltiplos arquivos

XML de gramática. Propõe um modelo de interface modular de

hardware a ser controlada pelo SCVCV e um modelo de

Page 15: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

5

classificação, organização e atuação dos comandos de voz. Aborda

o desenvolvimento do sistema, define as tabelas do banco de dados.

Demonstra a estrutura do software desenvolvido, sua interface e as

principais funcionalidades do SCVCV. Descreve os resultados

obtidos e trata da problemática dos ruídos.

• Capítulo quarto: Faz a conclusão do trabalho. Cita as principais

contribuições do projeto. Sugere alguns trabalhos que podem ser

desenvolvidos futuramente como continuidade do trabalho atual.

Page 16: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

6

2 O Reconhecimento de Voz

O reconhecimento de voz já é uma tecnologia presente no dia a dia de

muitas pessoas. Atualmente existe no mercado equipamentos que utilizam essa

tecnologia como: celulares, PDAs, entre outros, permitindo fazer ligações,

acessarem agendas, enfim, efetuar vários comandos utilizando somente com o

uso da voz.

A Figura 1 mostra as fases usadas no reconhecimento da voz. Primeiro o

som analógico falado é transmitido através de um microfone para a placa de som

do computador. A placa de som digitaliza o sinal e disponibiliza para as saídas

existentes. Na fase 2 o mecanismo de reconhecimento faz um pré-processamento

dos sinais obtidos, analisa e organiza o sinal e identifica com um numero as

palavras faladas e preparara o comando para fase seguinte. Nesta fase ocorre a

limpeza do sinal, suavização, etc. Num segundo estágio desta fase é feita a

eliminação dos ruídos e interferências. Na fase 3 ocorre a comparação dos

padrões. O software de reconhecimento de voz compara o sinal processado com

os padrões existentes, agrupa os sinais reconhecidos dentro de uma determinada

categoria e disponibiliza, em uma saída, as palavras ou expressões reconhecidas.

(DAMASCENO, 2005).

Figura 1 - As fases empregadas para reconhecimento de fala. (DAMASCENO, 2005).

Page 17: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

7

Várias empresas estão investindo na tecnologia de reconhecimento de voz.

As mais conhecidas são a Philips, Lernout & Houspie, IBM, Texas Instruments e a

Microsoft. Estas empresas produzem softwares que permitem ditados, leituras de

textos em voz natural e reconhecimento de comandos, fonemas curtos. Estes

softwares permitem ao usuário executar funções dentro do sistema operacional,

como abrir e fechar aplicativos.

O reconhecimento de voz, inicialmente foi criado através de muitos estudos,

dentre eles: definições matemáticas, transformadas de Fourier, estudos da

definição da fala e as regras das formações gramaticais. De acordo com

Damasceno (2004) têm-se algumas definições:

• Fonema: a menor unidade de som que as palavras são compostas;

• Modelo acústico: modelo de como os sons das palavras deveriam se

representar;

• Expressão: qualquer seqüência de voz entre dois períodos de silêncio;

• Pronúncia: forma de se falar as palavras (incluindo o sotaque e o

regionalismo das mesmas);

• Gramática: são as regras de reconhecimento, ou seja, o conjunto de

palavras e conjunções válidas para a ativação de uma ação no sistema;

• Treinamento: processo pelo qual o mecanismo de reconhecimento passa

para identificar o sotaque e a pronúncia dos vocábulos do usuário;

• Precisão: variável que estabelece se o que foi pronunciado pode ser

representado em sua equivalência pela gramática.

• Padrão Acústico: Variações da fala como idioma, sotaque, velocidade,

tonalidade e freqüência da voz .

Mesmo os melhores softwares do mercado de reconhecimento de voz

possuem erros de áudio e pronúncia, ou seja, não conseguem reconhecer o que

foi falado dentro dos padrões acústicos de cada pessoa, sendo necessário o

treinamento do software. Durante o treinamento, as expressões gramaticais são

relacionadas à voz e sotaque do usuário, criando um modelo acústico que

relaciona a freqüência de entrada ao fonema.

Page 18: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

8

Os modelos são definidos em perfis, permitindo várias pessoas usarem um

mesmo computador. Assim, o software consegue fazer o reconhecimento da voz

com menor taxa de erro. Mesmo com o intenso treinamento, uma precisão de no

máximo 95%, essa probabilidade melhora quando se usa comandos curtos. Os

erros aumentam em ambientes que possuem ruídos, pois estes geram falsos

fonemas. (DAMASCENO, 2005).

A freqüência da fala humana é de 60 a 1300 Hz, transformada através de

um circuito digital utilizando Pulse Code Modulation (PCM), que é a medida do

sinal analógico através das amplitudes da freqüência da fala.

Graças às técnicas das transformadas de Fourier, consegue-se definir uma

amostragem do sinal de áudio em cada centésimo de segundo, representado no

domínio da freqüência. Assim, o sinal de entrada pode ser representado por um

conjunto de bandas de freqüências discretas, que representam os componentes

de freqüência do som da fala humana. (GUILHOTO, 2001).

As bibliotecas de fala liberadas pelos fabricantes do software de

reconhecimento de voz possuem uma base de dados com milhares de fonemas

vinculados a uma freqüência de voz. Assim, o software pode comparar o

respectivo fonema encontrado na base de dados com o sinal de entrada e

reconhecer o que foi dito. Cada fonema é identificado por um número, chamado

de “feature number”. (ODELL, 1995).

Segundo Odell (1995), no modelo de Hidden Markov (HMM), Markov

determina um modelo que permite ao reconhecedor de voz saber quando um

fonema acaba e outro começa utilizando funções matemáticas. É um sistema

estatístico que compara os “feature numbers” de cada fonema e faz análises

combinatórias das transições com pesos associados que permitem definir os

agrupamentos dos fonemas.

A Figura 2 representa o modelo de Hidden Markov, mostra as

transformações de uma entrada de voz representada em uma máquina de

estados, cada estado representa uma análise da entrada de voz que geram vários

sinais de freqüência da voz, nestes sinais são aplicadas várias transformadas

Page 19: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

9

matemáticas, havendo a comparação entre todos os sinais testados com o sinal

esperado, ate chegar à aceitação do fonema falado. (ODELL, 1995).

Figura 2 - Representação do modelo de Hidden Markov. (ODELL, 1995).

Também existe um fonema que determina o silêncio que possibilita

identificar a pausa entre cada palavra.

Para o reconhecedor de voz conseguir construir as orações sem muito

esforço de processamento e memória, há necessidade de uma base que define as

regras de constituição das orações. Essa base possui um dicionário com todas as

palavras possíveis do idioma, conduzidas pelas regras gramaticais ou de

formação de cada palavra, ou seja, deve possuir as classes gramaticais que

mostram todas as possibilidades possíveis dos agrupamentos das palavras ou

fonemas. Essa gramática é relacionada a um reconhecedor léxico, ou seja, é o

padrão de voz que define como a palavra é pronunciada. (RABINER, 1989).

O software IBM Via Voice faz análise de toda a frase para ampliar a visão

de conhecimento, verificando todas as possibilidades de construções gramaticais.

Ele também verifica as seqüências anteriores para definir a probabilidade de a

próxima oração ser verdadeira. Baseados nos modelos estatísticos mostram a

palavra de maior probabilidade. (GUILHOTO, 2001).

Page 20: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

10

Para se conseguir um bom reconhecimento da voz é indispensável o treino

do software, onde deve ser gravada a voz do usuário para as diferentes regras

aplicadas na regras do idioma. (CHOU, 2003).

Conforme ilustrado na Figura 3, durante o treino é realizado um

relacionamento do modelo gramatical da frase escrita com o modelo léxico do

usuário do treino. É criado uma base paralela que contém padrões acústicos

relacionados com a base dos modelos da linguagem. Portanto para reconhecer a

voz, o decodificador de voz faz uma comparação do que foi falado com as duas

bases existentes. Assim consegue reconhecer a voz de diferentes pessoas com

diferentes sotaques e variações da fala, incluindo freqüência da fala, velocidade,

tonalidade, etc. (CHOU, 2003).

Figura 3 - Diagrama de um sistema de reconhecimento de fala genérico, baseado em estatísticas

relacionando com treino e decodificação da fala. (CHOU, 2003).

Cada software de reconhecimento de voz possui uma interface de treino em

que o usuário deve ler textos de maneira clara, respeitando os sinais de

Page 21: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

11

pontuação. É neste momento que o analisador léxico faz o relacionamento da voz

do usuário a cada fonema presente na base de dados. (ODELL, 2005).

Conforme Figura 4, o sistema de reconhecimento de voz não reconhece a

palavra por inteiro, mas usando as árvores de derivação para as regras

gramaticais existentes, fazendo comparação dos fonemas reconhecidos com os

fonemas existentes, consegue-se distinguir a palavra falada.

Figura 4 - Como um mecanismo de reconhecimento de Voz reconhece uma palavra. (ODELL,

2005).

Além da interface de reconhecimento permitir o reconhecimento dos

comandos, também possui o sistema que permite o ditado de textos em qualquer

aplicativo que permite entrada de textos, seja na Internet ou um editor de texto.

Este mecanismo é chamado de reconhecedor de linguagem natural ou “Natural

Language Understanding (NLU)” (RABYNER, 1993).

Com o NLU é possível fazer menus dinâmicos que permitem uma relação

homem-máquina, onde há total interação entre um software e o usuário

simplesmente através do uso da voz. Um exemplo: as centrais de telefonia

inteligentes utilizadas atualmente. Cada sistema possui uma base de

conhecimento com todas as relações necessárias para o reconhecimento de voz.

(RABYNER, 1993).

Page 22: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

12

A Figura 5 demonstra todas as fases empregadas no reconhecimento de

voz. Todas às informações necessárias dos processos empregados no

reconhecimento de voz, estão disponíveis em uma base de conhecimento. Cada

processo recebe um sinal, processa-o, consulta a base de dados, faz as

validações necessárias e passa para o próximo nível até ocorrer o reconhecimento

total do fonema. (RABYNER, 1993).

Figura 5 – Esquema de integração da base de dados com os processos do reconhecimento da

fala. (RABYNER, 1993).

2.1 Gramáticas

Para a eficácia do reconhecimento da voz, é indispensável uma gramática

livre de regras ambíguas. Com uma gramática bem definida, o analisador léxico

entende somente as regras principais e consegue deduzir e formular a frase, não

havendo a necessidade de uma interpretação completa de tudo que se foi falado,

sendo um ganho para o reconhecimento da voz, principalmente na parte de

comandos.

Page 23: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

13

As gramáticas são representadas por expressões regulares, processadas

de um modo linear de maneira recursiva. (GUILHOTO, 2001).

Mesmo que se tenha uma entrada de voz distorcida, com uma boa

gramática o sistema é capaz de identificar parte da frase fazendo apenas uma

breve pergunta sobre um fonema de finalização da frase.

Uma gramática deve aceitar alguns erros comuns do dialeto e, sempre que

houver novas alterações na linguagem, novas regras devem ser inseridas ou

retiradas. Cada vez que ocorre isso, existe o risco de ambigüidades, podendo

prejudicar o sistema.

Pesquisadores do ramo de inteligência artificial estão realizando vastos

estudos e desenvolvendo sistemas que façam aprendizagem e criem

automaticamente as regras gramaticais.

Com a gramática, tem-se uma melhor reconhecimento da voz, eficácia nas

restrições e indicações do mecanismo de reconhecimento de voz. Oferece

sustentabilidade textual para as regras gramaticais do idioma e permite a

reutilização de regras definidas anteriormente, incluindo frases, listas, números ou

palavras isoladas. Permite também a tradução de comandos para gerenciamento

de aplicativos. Estes tipos de gramáticas são produzidos com uma semântica

específica, incluindo somente as frases e palavras utilizadas nas ações do

aplicativo. (MICROSOFT, 2000).

A gramática é representada em arquivos XML, formato que foi padronizado

pelo instituto W3C. Esse instituto é o responsável pela padronização de

linguagens Web. (MICROSOFT, 2000).

Nos arquivos XML usam-se “tags” para definição de regras de

reconhecimento de voz, geralmente iniciadas por sinais de <Tag> e finalizadas

pelo sinal </Tag>.

De acordo com o guia do Microsoft Speech SDK 5.1, para definir uma

gramática que permite marcar reuniões com diferentes pessoas pode-se usar o

exemplo:

Page 24: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

14

<RULE TOPLEVEL=ACTIVE> <P PROPNAME="marque" VAL="reuniao">marque uma reunião</P> <P>com</P> <L PROPNAME="participantes"> <P VAL="CAndre">Carlos André</P> <P VAL="Comezu">Claudio Omezu</P> <P VAL="Cpin">Cristiane Pinheiro</P> <P VAL="crandall">Cynthia Randall</P> <P VAL="Aleon">Andre Leon</P> <P VAL="Mbraz">Marcos Braz</P> </L> </RULE>

(Adaptado Guia Microsoft Speech SDK 5.1)

As regras são definidas na gramática para controlar os elementos de

construção de palavras ou frases. As regras são definidas hierarquicamente e

permitem controlar os elementos de construção da oração, na qual existe um

número definido de palavras e suas possíveis combinações em que o sistema

recursivamente entende e interpreta a ação desejada. (MICROSOFT, 2000).

A complexidade de definição das regras gramaticais aumenta

exponencialmente quando se tenta definir o número máximo de combinações

possíveis. (MICROSOFT, 2000).

Existem dois tipos de gramáticas, a de alto nível e a de baixo nível que

definem a forma de acesso ao mecanismo de serviço de fala. A gramática de alto

nível é indicada para reconhecimento de comandos simples, itens de menus,

janelas etc. Já no modelo de baixo nível há um detalhamento aprofundado de

como realmente se manipula a linguagem, que é utilizado para reconhecimento de

textos contínuos. (DAMASCENO, 2005).

A gramática é definida, conforme modelos aplicados na engenharia, que o

reconhecimento das palavras parte de uma árvore de derivação e máquinas de

estados.

2.2 Trabalhos já Realizados

Várias universidades, institutos e pessoas independentes estão

desenvolvendo aplicações usando as bibliotecas de reconhecimento de voz

Page 25: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

15

voltadas para o mercado comercial e também para atendimento a pessoas com

deficiência.

O projeto Falibras foi concebido como um sistema que, ao captar a fala no

microfone, exibe no monitor a interpretação do que foi dito em LIBRAS (linguagem

de sinais), na sua forma gestual, animada e em tempo real, permitindo maior

acessibilidade aos 6 milhões de surdos mudos existentes no Brasil. (CORADINE,

2004).

Outro projeto é o LIMA, Livros Multimodais Aumentados, desenvolvido no

LaSIGE - Laboratório de Sistemas Informáticos de Grande Escala e Grupo HCIM -

Human Computer Interaction and Multimedia. (DE LIMA, 2000).

De acordo com De Lima (2000) o sistema LIMA usa algoritmos de

processamento de imagens, que através de um scanner de mão, exibe na tela

uma imagem aumentada do trecho de um livro físico. O Microsoft SDK 5.1 faz a

leitura dos parágrafos usando a voz natural disponíveis na biblioteca.

O sistema reconhecimento de voz é de extrema utilidade na área comercial.

usado em robôs e aparelhos eletrônicos e principalmente para permitir a

acessibilidade dos milhões de portadores de deficiência existentes no mundo.

2.3 A API de Reconhecimento de Voz

Cada empresa que investe na tecnologia de reconhecimento, geralmente

possui os pacotes de desenvolvimento, incluindo bibliotecas, objetos e APIs que

permitem o desenvolvimento de aplicações nas diversas linguagens como Java,

C++, Delphi, Visual Basic, C#, .Net e outras.

A Figura 6 mostra que a aplicação usa a API para se comunicar com o

mecanismo de reconhecimento de voz e este utiliza o Driver Direct Interface (DDI)

que gerencia a entrada e saída de voz, fazendo o reconhecimento ou leitura de

uma frase através de seus mecanismos de reconhecimento passando pelas suas

camadas. (MICROSOFT, 2000).

Page 26: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

16

Figura 6 - Esquema Uso da API de Fala. (MICROSOFT, 2000).

A aplicação de fala e a máquina de reconhecimento de voz não comunicam

diretamente entre si. De acordo com o Guia da Microsoft Speech API a

comunicação é feita através da Speech API (SAPI) que controla vários aspectos

de um sistema de fala, tais como:

• Controla a contribuição auditiva de um microfone, arquivos ou outra fonte

auditiva, convertendo dados auditivos a um formato de máquina válido;

• Carrega a gramática ativa;

• Compila a gramática, converte no formato desejado, analisa as regras,

semânticas e formações gramaticais;

• Permite o compartilhamento de reconhecimento por aplicações múltiplas

que usam a máquina compartilhada;

• Retorna os resultados e outras informações para os métodos de controle.

• Armazena o áudio de entrada, deixando os resultados para análise

posterior;

• Garante que as aplicações não provoquem erros inesperados, permitindo

uma passagem de parâmetros corretos.

Page 27: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

17

Tabela1 – Relação dos softwares de reconhecimento de fala. (DAMASCENO, 2005).

2.4 Comparando APIs de Reconhecimento de voz

A fim de desenvolver o projeto de reconhecimento de voz para controle de

um sistema digital usando microcontroladores, foram estudadas as bibliotecas do

Java Speech API, IBM Via Voice e Microsoft Speech SDK 5.

O Java Speech API (JSAPI) é um pacote da Sun usado para a síntese e

reconhecimento de fala com contribuições de várias empresas como a Apple

Computer Inc., AT&T, Dragon Systems, Inc., IBM Corporation, Novell, Inc., Philips

Speech Processing e Texas Instruments Incorporated. (PRESTON, 2006).

De acordo com a Sun (2005), o JSAPI é uma biblioteca excelente, com

bases de dados para vários idiomas como português, espanhol, inglês, alemão

entre outros. Essa biblioteca ficou disponível gratuitamente nos últimos anos.

Atualmente, devido a estratégias comerciais todas as fontes disponíveis foram

retiradas pelas empresas que possuem os direitos autorais.

O IBM Via Voice é considerado um dos melhores softwares de

reconhecimento de voz no mundo, contemplando vários idiomas inclusive

português e também disponibiliza objetos e APIs. Considerado o de mais fácil

implementação para os desenvolvedores, este software pode ser usado em quase

todas as linguagens de programação. (DAMASCENO, 2005).

Page 28: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

18

O Microsoft speech SDK é um pacote de desenvolvimento distribuído

gratuitamente pela Microsoft, possui suporte para as linguagens, C++, C#, Visual

Basic, Vb .Net e Java Script da Microsoft. Esse software roda somente em

sistemas Windows 32 bits. (MICROSOFT, 2000).

Segundo Damasceno (2005), o Microsoft SAPI tem uma média de acertos

maior que o IBM Via Voice. Um dado importante é que, quando é utilizada a

biblioteca Java Speech, não há eventos de erros. O mecanismo trata apenas os

erros de pronúncia, ou seja, ele verifica se a informação que o usuário pronunciou

está na gramática definida.

A biblioteca Microsoft SAPI, consegue redirecionar o que foi pronunciado

para um arquivo temporário, que pode ser usado como verificador ou corretor na

segunda vez em que o usuário pronuncia a frase. (DAMASCENO, 2005).

De acordo com a Figura 7, no uso de comandos e controles com palavras

isoladas, o Microsoft SAPI é 1% menos eficiente que o Java Speech. Na utilização

de diálogos contínuos, o Microsoft SAPI é 3% mais eficiente do que o Java

Speech. (DAMASCENO, 2005).

Figura 7 - Gráfico comparativo Java Speech X Microsoft Speech API.

(DAMASCENO, 2005).

Page 29: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

19

Na abordagem de comandos e controle para regras de gramática não existe

diferença entre as taxas de acerto, ou seja, têm-se 98% de acurácia nas duas

plataformas. (DAMASCENO, 2005).

Page 30: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

20

3 O Projeto

Conforme observado na Figura 7, o Microsoft Speech é tão eficiente quanto

o Java Speech, e ainda possui bibliotecas para as linguagens de programação

gráficas como o Visual Basic, que é de domínio do autor do projeto e por isso foi à

plataforma escolhida para desenvolvimento do software de controle.

Atualmente o Microsoft Speech SDK 5.1 possui reconhecimento de fala

somente no Idioma inglês, japonês e chinês. Em Portugal já existe uma equipe

desenvolvendo as bases de reconhecimento para português Brasil, mas ainda

estão em fase de testes e não foram liberadas para distribuição, foi disponibilizada

somente uma versão Beta para testes.

O projeto consiste no desenvolvimento de um aplicativo no Visual Basic

usando as livrarias e bibliotecas do Microsoft Speech API 5.1 com acesso a uma

base de dados para guardar dados cadastrais e as configurações de

gerenciamento do aplicativo.

O sistema deve reconhecer um comando de voz de entrada, verificar na

gramática carregada se o comando é válido, enviar sinal de controle para a

interface de controle e executar uma determinada ação, como por exemplo,

apagar uma luz.

Para assegurar uma maior flexibilidade, o sistema deve permitir o cadastro

de novos equipamentos a serem controlados. Cada equipamento deve ser

associado a um endereço de uma porta do hardware de controle e a um comando

de voz associado a cada função a ser executada. Por exemplo, no caso de uma

televisão, deve ser associado os controles ligar, desligar, aumentar volume,

diminuir volume.

Como já definido, deve ser criado um arquivo XML com a hierarquia das

regras dos comandos a serem reconhecidos. Posteriormente os equipamentos ou

comandos podem ser cadastrados ou alterados. Portanto, o arquivo XML deve ser

criado e atualizado dinamicamente em tempo de execução a cada alteração nos

equipamentos controlados.

Page 31: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

21

De acordo com a Figura 8, o aplicativo deve receber um comando através

de um microfone, comparar o comando recebido, selecionar os módulos de

interface, selecionar o equipamento e enviar o comando desejado.

Figura 8 - Esquema básico do sistema de controle de voz.

A configuração mínima do servidor de aplicativo de comando de voz é um

Pentium II 233 MHz com 128 MB de memória RAM com sistema Windows 98.

(Microsoft, 2000). Esta configuração é a designada pelo fabricante. O ideal é rodá-

lo em um Pentium III 700 MHz com 256 MB de memória com Windows XP, assim

evitar possíveis travamentos e possibilitar melhor desempenho no sistema.

A Figura 9 ilustra os casos de uso do sistema. Existem basicamente três

atores: o usuário, a API de voz e o SCVCV. Basicamente o funcionamento se

resume em o usuário falar o comando, a fala é recebida pelo hardware de som do

servidor, a API de voz (SAPI) processa a fala e reconhece o comando. O SCVCV

usa o comando reconhecido para selecionar a interface de hardware, processar o

comando e enviá-lo para atuar no equipamento selecionado.

Page 32: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

22

Figura 9 – Diagrama UML dos casos de uso do sistema comando de voz.

Para realizar o reconhecimento dos comandos de voz usando MSAPI são

necessárias três classes:

• ISpRecognizer: Habilita o reconhecimento da Voz. Os objetos são criados

no modo compartilhado (SpSharedRecoContext) ou no privado

(SpInprocRecognizer), onde somente o serviço atual tem acesso ás

entradas de voz.

• ISpeechRecoGrammar: Habilita o reconhecimento das palavras e frases

que o mecanismo de reconhecimento deve reconhecer. Neste caso deve

ser especificado uma entrada de comandos ou um arquivo XML contendo

ID do Idioma e as regras de reconhecimento.

Page 33: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

23

• ISpeechRecoResult: Retorna o resultado do reconhecimento dos

comandos, se o comando ou frase for reconhecido, retorna o comando

caso contrario, retorna uma string “False Recognition”.

Exemplo de declaração e instanciação dos objetos usando Visual Basic:

‘Declara as bibliotecas

Public WithEvents RC As SpSharedRecoContext

Public Grammar As ISpeechRecoGrammar

Dim RecoResult As ISpeechRecoResult

‘Instancia os objetos

Set RC = New SpSharedRecoContext

Set Recognizer = New SpInprocRecognizer

Ao instanciar os objetos de reconhecimento de fala, o padrão do sistema é

carregar as configurações definidas no aplicativo de reconhecimento, como idioma

e perfil do usuário. Estas configurações podem ser definidas em tempo de

execução.

O primeiro passo é instalar o SDK (Software Development Kit) da Microsoft.

Conforme Figura 10, após instalação, no ícone “Fala” presente no Painel de

Controle do sistema operacional Microsoft Windows XP, é criado a aba

“Reconhecimento de fala”. Esta tela permite criar vários perfis de reconhecimento

e realizar o treino do mesmo. Permite também configurar o microfone e para

computadores que têm mais de uma placa de som, permite definir um hardware

especifico para o reconhecimento de voz.

Page 34: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

24

Figura 10 – Tela de configuração do mecanismo de fala.

No caso do sistema desenvolvido, por questões de segurança,

primeiramente o usuário deve se identificar via comando de voz, assim

automaticamente é vinculado o idioma e o perfil do mesmo.

Para melhor interação entre o usuário, também foi usada a biblioteca

Ispvoice, que reconhece frases ou strings na forma de fala, sendo direcionada

para saída de áudio existente no computador.

Existem diferentes bases de voz que podem ser usadas para a leitura das

frases. Novas bases podem ser instaladas posteriormente. Estas bases contêm

vozes gravadas de um perfil de pessoa onde inclui o dialeto, sotaque e tonalidade

que determina sexo e idade da pessoa que gravou. Existe também a voz robótica

gerada por artifícios da computação, mas sua qualidade é muito inferior.

A definição do arquivo XML deve ser muito criteriosa, pois regras mal

formuladas podem ocasionar a interpretação incorreta dos comandos ou o não

reconhecimento do comando. Se o sistema já executar um comando interpretado

sem confirmação e o mesmo estiver incorreto, serão acionados outros dispositivos

e dependendo do equipamento que for acionado, poderá ocasionar riscos de

acidentes ou prejuízos.

Portanto, no sistema, cada comando deve ter uma opção indicando a

confirmação ou não para executar o comando. Por exemplo, ligar uma lâmpada

Page 35: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

25

não precisa de confirmação, mas para se abrir o portão externo é ideal uma

confirmação. Este procedimento é necessário pois, caso o usuário no interior da

casa ordenasse o apagamento das luzes do jardim, mas por um reconhecimento

incorreto, houvesse a abertura do portão externo, ocorreria uma situação que

deixaria a casa vulnerável para invasões.

Como já citado anteriormente, a gramática será criada dinamicamente via

código de acordo com hierarquia e comandos desejados para controlar os

dispositivos.

3.1 Os Modelos

Antes de começar a desenvolver o código do projeto, houve a necessidade

do desenvolvimento de alguns modelos que definem o funcionamento do SCVCV

e atenda aos objetivos descritos neste capítulo.

Foi definido um modelo padrão de gramática, um modelo de hardware e um

modelo de organização dos comandos. Ambos indispensáveis para o

funcionamento e sucesso do sistema.

3.1.1 Modelo de Gramática

As regras, nas gramáticas, seguem o modelo de uma árvore de derivação

de uma gramática qualquer. Existe o “top level” que é considerada a regra mais

importante e conseqüentemente, é o primeiro nó da árvore. Existem os nós não

terminais, que são regras intermediárias herdadas do nó anterior e, finalmente, os

nós terminais, que são as palavras a serem reconhecidas. (MICROSOFT, 2000).

Na figura 11, cada nó da árvore representa uma regra, cada regra tem um

ou mais fonemas relacionados. Os comandos são as folhas da árvore. Quando é

realizado um comando de voz o sistema varre a árvore de regras recursivamente,

faz a comparação dos fonemas e retorna o comando desejado. Por exemplo, na

frase “Ligar TV da Sala”, o sistema varreria a árvore e, conforme encontrar as

regras, organiza os fonemas e forma o comando.

Page 36: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

26

Figura 11 - Árvore de regras de uma gramática para uso de comandos de voz.

A “Sala” representa um local que é uma regra principal (“Top Level”), logo

em seguida vem os equipamentos “TV” e “Luz” que são sub-regras de “Local”.

Dentro de “TV” há a folha que representa um comando “Ligar” e mais uma sub

regra “Volume” que define as funções da “TV”. Dentro da sub-regra de função

“volume” tem-se as folhas que representam os comandos de atuação

relacionados a função.

Portanto, as regras gramaticais usadas no sistema terão a estrutura:

• Regra “Local” – regra principal que define o local onde está instalado o

equipamento;

• Sub-regra “Equipamento” – 1 sub-regra herdando de “Local” para cada

equipamento controlado;

• Sub-regra “Função” – 1 sub-regra “Função” herdada de “Equipamento” para

cada função de controle do equipamento;

• Sub-regra “Comandos” – 1 sub-regra herdada de função que contem todos

os comandos de controle referente à função.

Cada regra pode ter definido vários comandos de reconhecimento dentro da

sua estrutura.

Page 37: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

27

De acordo com o padrão definido, depois de estudados os comandos e

formatos das tags XML para o uso no sistema de voz, foi criado um arquivo XML

com várias regras principais e suas respectivas sub-regras. As regras principais

(“Top level”) representam os locais e suas respectivas sub-regras representam os

equipamentos e suas funções.

Cada token - Nomes das regras, palavras, etc. - é identificado por um nome

e um valor inteiro (“ID value”) único. Não é obrigatório definir o ID na gramática

para todos os tokens. Caso não seja informado o sistema assume valores internos

atribuídos pelo mecanismo de compilação e interpretação da gramática.

Nas primeiras Gramáticas não estava sendo utilizado o “ID value” para

todos os tokens. Depois de estudos e testes, foi percebido que os comandos

podem se repetir numa mesma gramática em diferentes sub-regras e ainda haver

a necessidade de ter vários comandos para uma mesma função, surgindo à

necessidade de criar um “ID value” para todos os comandos, regras e etc.

Exemplo de definição de tokens na gramática:

<DEFINE>

<ID NAME="PID_Cmdmenu" VAL="1"/>

<ID NAME="PID_CmdArea" VAL="100"/>

<ID NAME="PID_CmdSala" VAL="101"/>

<ID NAME="PID_CmdGaragem" VAL="102"

</DEFINE>

A implementação do primeiro arquivo modelo XML demandou muito

trabalho e tempo, devido dificuldade de uso da sintaxe da gramática e definição de

um método de adaptação do modelo de comandos do sistema à estrutura XML.

Para saber se não havia erros de sintaxe, foi utilizado o programa “Gramar

Compile”. Para testar a coerência da gramática e como os comandos estavam

sendo reconhecidos, foi utilizada a ferramenta “Reco”. Ambos utilitários foram

disponibilizados junto com o pacote de desenvolvimento Microsoft Speech SDK

5.1.

A Figura 12 mostra a interface de um aplicativo liberado junto com kit de

desenvolvimento Microsoft Speech que permite realizar testes do reconhecimento

Page 38: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

28

de voz. Permite carregar uma gramática e verificar se a mesma esta coesa e se

retorna os resultados esperados.

Figura 12 - ”RECO” - Interface de teste de reconhecimento de voz.

Após constantes testes usando o aplicativo “Reco”, foi verificado que a

gramática definida era consistente, porém, devido possuir de 4 a 5 níveis

recursivos, dificultava a pronúncia completa do comando, pois para chegar num

comando válido, tinha que falar continuamente de 4 a 5 palavras válidas até

chegar no ultimo nível da regra. Uma vez que uma das palavras faladas não fosse

reconhecida, todas tinham quer ser repetidas novamente.

Para resolver o problema, as sub-regras de “funções” foram duplicadas,

herdando diretamente do local, assim eram reconhecidos os comandos longos e

também os comandos curtos como “channel up”.

Com os constantes testes, percebeu-se que quanto maior o número de

palavras possíveis na gramática através das combinações, maior a probabilidade

de reconhecer comandos hipotéticos e incorretos. Os comandos eram

reconhecidos incorretamente por erro de reconhecimento dos comandos falados

ou simplesmente devido ao ruído do ambiente, principalmente as palavras que

Page 39: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

29

tinham uma pronúncia muito próxima e as palavras muito curtas como por

exemplo “on”.

Para resolver o problema de reconhecimentos incorretos da Voz,

precisava-se de gramáticas que tinham o mínimo possível de níveis encadeados

recursivos e menor número de palavras.

Foi mantido o mesmo padrão, porém, o arquivo XML atual foi quebrado em

vários pequenos arquivos, eliminando a recursividade de todas as regras. Exceção

foi realizada no arquivo de equipamentos que tem apenas uma sub-regra: as

funções do equipamento e seus respectivos comandos.

A gramática foi definida conforme os arquivos XML a seguir:

• Local.xml – Arquivo único contendo uma única regra com a lista de

todos os Locais cadastrados onde existem equipamentos a serem

controlados;

Exemplo:

<DEFINE>

<ID NAME="PID_Local" VAL="1002"/>

<ID NAME="PID_SALA" VAL="1000"/>

<ID NAME="PID_JARDIM" VAL="1001"/>

</DEFINE>

<RULE NAME="PID_Local" ID="PID_Local" TOPLEVEL="ACTIVE">

<L PROPNAME="PID_Local" PROPID="PID_Local">

<P VAL="PID_SALA">room</P>

<P VAL="PID_JARDIM">garden</P>

</L>

</RULE>

• LocNome_local.xml – Para cada local listado no arquivo local.xml é

gerado um novo arquivo com a lista dos equipamentos

cadastrados. Os novos arquivos gerados têm a mesma estrutura do

exemplo anterior;

• Equi_Nome_local_Nome_Equipamento.xml – É Criado um arquivo

XML para cada equipamento de todos os locais. Se existir uma TV

na sala e uma TV no quarto é gerado dois arquivos XML de

Page 40: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

30

equipamento, um herdando da sala e outro herdando do quarto.

Uma vez que os equipamentos são os mesmos, nem sempre as

funções são as mesmas.

Exemplo:

#Define o idioma da gramatica – 409 = Inglês EUA#.

<GRAMMAR LANGID="409" >

<DEFINE>

# definição dos IDs dos tokens da gramática#

<ID NAME="PID_TV" VAL="3000"/>

<ID NAME="PID_3001" VAL="3001"/>

<ID NAME="PID_3002" VAL="3002"/>

<ID NAME="PID_CANAL_FC" VAL="8001"/>

<ID NAME="PID_CANAL_CMD" VAL="8002"/>

<ID NAME="PID_CANAL" VAL="3003"/>

<ID NAME="PID_3004" VAL="3004"/>

<ID NAME="PID_3005" VAL="3005"/>

<ID NAME="PID_3006" VAL="3006"/>

<ID NAME="PID_VOLUME_FC" VAL="8003"/>

<ID NAME="PID_VOLUME_CMD" VAL="8004"/>

<ID NAME="PID_VOLUME" VAL="3007"/>

<ID NAME="PID_3008" VAL="3008"/>

<ID NAME="PID_3009" VAL="3009"/>

<ID NAME="PID_7001" VAL="7001"/>

</DEFINE>

#Definição da regra “PID_TV” – Contendo as funções e commandos da TV#

<RULE NAME="PID_TV" ID="PID_TV" TOPLEVEL="ACTIVE" EXPORT="1">

# Lista de commandos Diretos de atuação da TV.#

<L PROPNAME="PID_TV" PROPID="PID_TV">

<P VAL="PID_3001">on</P>

<P VAL="PID_3001">begin</P>

<P VAL="PID_3002">off</P>

<P VAL="PID_7001">back</P>

</L>

<P>

Page 41: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

31

# Lista de commandos para seleção função “Canal” da TV.#

<L PROPNAME="PID_CANAL_FC" PROPID="PID_CANAL_FC">

<P VAL="PID_CANAL">channel</P>

</L>

# Sub lista de commandos de atuação da função “Canal” da TV.#

<L PROPNAME="PID_CANAL_CMD" PROPID="PID_CANAL_CMD">

<P VAL="PID_3004">up</P>

<P VAL="PID_3004">plus</P>

<P VAL="PID_3005">minus</P>

<P VAL="PID_3005">down</P>

<P VAL="PID_3006">av</P>

</L>

</P>

<P>

<L PROPNAME="PID_VOLUME_FC" PROPID="PID_VOLUME_FC">

<P VAL="PID_VOLUME">volume</P>

<P VAL="PID_VOLUME">sound</P>

</L>

<L PROPNAME="PID_VOLUME_CMD" PROPID="PID_VOLUME_CMD">

<P VAL="PID_3008">up</P>

<P VAL="PID_3008">plus</P>

<P VAL="PID_3009">minus</P>

<P VAL="PID_3009">down</P>

</L>

</P>

</RULE>

</GRAMMAR>

A Figura 13 ilustra o modelo final de organização e geração dos arquivos

XML. Cada nó representa um arquivo XML que pode ser gerado. É uma árvore de

3 níveis e cresce somente na horizontal. O nó pai representa a lista dos locais,

cada um dos seus nós adjacentes representa a lista de equipamentos e as folhas

da árvore representam os comandos de cada equipamento existente.

Page 42: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

32

Figura 13 - Árvore modelo de estrutura da geração de arquivos XML.

Com o novo modelo de gramática, um arquivo XML, com alto grau de

complexidade, se transformou num arquivo com estrutura simples e pequeno, com

um número exato de palavras necessárias para controlar os equipamentos. Antes

tinha estruturas recursivas de até ordem 5, agora se têm no máximo ordem 1.

O programa de reconhecimento de voz é o responsável por selecionar a

gramática atual de acordo com comando reconhecido e carregá-la seguindo a

seqüência da árvore.

Num ambiente com baixo nível de ruídos, com um perfil de voz padrão

(base inicial sem treinos adicionais), o primeiro modelo necessitava repetir um

comando em média quatro vezes para que o módulo SAPI conseguisse o

reconhecimento real do que se foi falado. Normalmente, em três ocorrências eram

reconhecidos comandos incorretos ou nenhum e somente na quarta tentativa

conseguia-se a interpretação correta. Quando se conseguia um tom padrão de

pronúncia, essa média caia para três vezes. Cada dez comandos falados,

somente quatro eram reconhecidos corretamente, tendo uma média de acertos de

somente 40%.

No modelo atual todos os comandos têm uma média de acertos de 90%.

Estes comandos devem ser falados com voz clara e velocidade constante. A

Page 43: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

33

acurácia do reconhecimento depende diretamente do tom de voz da pessoa que

esta falando os comandos, incluindo sotaque, velocidade, freqüência da fala (varia

de pessoa para pessoa) e a fonética. O treino do mecanismo de fala se torna

indispensável para ser ter um resultado ótimo (acima de 90%).

3.1.2 Modelo da Interface de Hardware

O objetivo é propor um dispositivo de hardware modular que permite o

acoplamento de novas interfaces de controle e novos equipamentos a serem

controlados sem a necessidade de alterar o código fonte do programa de controle

e os módulos já em uso, seguindo o modelo conforme ilustrado na Figura 15. O

modelo inicial foi projetado para ser controlado pela porta paralela do computador.

Conforme Figura 14, o modelo de hardware foi definido para usar os pinos 1

ao 9, 14, 16, 17, formando dois barramentos:

• Pinos de 2 a 9 (8 bits – D0...D7). Esse é barramento de dados. Foi

usado para seleção dos módulos e como bits de controle dos

equipamentos conforme Figura 15. O acesso foi realizado de

maneira assíncrona.

• Pinos 1,14,16 e 17 (4 bits – S0...S3). Esse barramento define os

estados do sistema, ou seja, o caminho que os bits do primeiro

barramento devem seguir, se os bits vão ser usados para seleção ou

atuação

Page 44: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

34

Figura 14 - Esquema dos pinos porta paralela (Conector DB25) no modo ECP. (ROGERCOM,

2008).

A Figura 15 define o modelo de hardware proposto a ser usado pelo

sistema de controle de voz. Usando um barramento de 8 bits de dados, o módulo

principal poderá controlar ate 256 módulos secundários, cada módulo secundário

mais 256 módulos finais que poderá controlar até 256 interfaces de controle dos

equipamentos controlados. Portanto o sistema tem uma capacidade de controlar

2563 ou seja, 16.777.216 equipamentos.

End 37Ah

End 378h

Page 45: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

35

Figura 15 – Modelo final Interface de hardware do sistema de controle.

Page 46: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

36

Baseado na Tabela 2, são verificados nos módulos os seguintes estados:

• Módulo Principal:

o S0 = 0 : (nível lógico baixo)

� Indica que o módulo principal esta desativado.

� Quando do Software de controle reconhecer um

comando do tipo “Local”, ativa o bit S0 do módulo

principal;

o S0 = 1 : (nível lógico alto)

� Indica que um local ainda não foi selecionado.

� O Barramento de dados (D0...D7) é direcionado a

um Demultiplexador (Demux);

� Ativa o bit S1 do módulo principal;

� O Demux seleciona uma das 256 saídas possíveis

e ativa o módulo “local” relacionado à saída

selecionada;

� Ativa sincronamente o Bit S1 (Altera em todos

módulos ativados);

o S0 = 1 e S1 = 1 :

� O barramento de dados é retransmitido para o

módulo “local” ativado;

� É ativado sincronamente o bit S2;

o S0 = 1 e S1 = 1 e S2 = 1:

� O barramento de dados é retransmitido para o

módulo “local” ativado;

� É ativado sincronamente o bit S3;

o S0 = 1 e S1 = 1 e S2 = 1 e S3 = 1

� O barramento de dados é retransmitido para o

módulo “local” ativado;

• Módulo “Local”:

o S1 = 1:

� O barramento de dados é direcionado para um

Demux;

Page 47: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

37

� O Demux seleciona uma das 256 saídas possíveis

e ativa o módulo “equipamento” ligado na saída

selecionada;

o S1 = 1 e S2 = 1:

� O barramento de dados é retransmitido para o

módulo “equipamento” ativado;

� Ativa sincronamente S2;

o S1 = 1 e S2 = 1 e S3 = 1:

� O barramento de dados é retransmitido para o

módulo “equipamento” ativado;

• Módulo Equipamento:

o S2 = 1:

� Recebe o barramento de dados e seleciona a

função a ser executada. Ex. canal, volume, etc.;

� Ativa Sincronamente S3;

o S3 = 1:

� Recebe os bits de dados e atua no equipamento;

Tabela 2 – Bits entrada do Barramento 2 X Estado dos bits Barramento 2 nos módulos.

S0 S1 S2 S3 M Principal M Local M Equipamento 1 0 0 0 1 0 0 S0 1 1 0 0 1 1 0 S1 1 1 1 0 1 1 1 S2 1 1 1 1 1 1 1 S3

Esse projeto de interface representa apenas um modelo. Os meios de

transmissão de dados podem ser com fio (cabos rígidos) ou sem fio (módulos

de RF ou TCP/IP).

O ideal é montar a interface de hardware com transmissão sem fio

usando TCP/IP. Apesar dos módulos de comunicação wireless TCP/IP terem

um valor bem mais elevado do que um módulo RF, tecnologicamente é mais

viável devido à convergência das tecnologias para as redes TCP/IP,

possibilitando assim menor risco de obsolescência da tecnologia.

Page 48: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

38

3.1.3 Modelo de Hierarquia de Comandos

Houve a necessidade criar um modelo de comandos que possa ser

implementado no sistema de reconhecimento de voz de modo que os

comandos de voz controlem os módulos de hardware com seus respectivos

equipamentos e se adéqüe ao modelo de gramática.

Baseado na hipótese que um estabelecimento, como uma casa, possua

os mesmos equipamentos em vários locais (cozinha, sala, quarto, etc.), o

mesmo equipamento ter funções e modos de atuação diferentes, definiu-se que

comandos seriam utilizados de maneira hierárquica.

Por exemplo, uma casa possui 3 televisões: uma na sala, uma no quarto

e uma na cozinha. A TV da sala é LCD, digital, de última geração, com as mais

avançadas funções de controle. A TV da cozinha é uma TV básica colorida

sem muitas funções, mas com controle remoto e entrada e saída de vídeo com

a função AV para alternar entre o modo de vídeo e o modo normal. Já a TV do

quarto é uma TV da década de 80, sem controle remoto, totalmente analógica,

onde as funções são trocar canal liga e desliga por meio de chaves físicas.

Para assistir um programa de um determinado canal, deve-se selecionar

onde vai ser assistido, dirigir-se ao local, ligar a TV. Caso necessário atuar:

mudar o canal e aumentar ou diminuir o volume. Dependendo do local

selecionado a maneira de operar a TV é diferente.

Para controlar as TVs da casa mencionada, apesar de ser o mesmo tipo

de equipamento, é necessário desenvolver uma interface de hardware diferente

para cada TV, pois todas possuem tecnologias diferentes, sendo que cada

interface pode ser desenvolvida em épocas diferentes

O sistema deve estar preparado para que sejam incluídas futuras

interfaces sem a necessidade de alterar o código fonte do programa de

controle ou até mesmo a estrutura do hardware já implantado.

Na expressão “aumentei o volume da TV da sala”, “volume” representa

uma função da TV, “aumentei” é a ação, “TV” é o equipamento e “sala” é Local.

A ação entre “aumentar o volume” e “aumentar a numeração dos canais” é a

mesma, o que muda é a função.

Page 49: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

39

Assim, o primeiro passo foi classificar os comandos de voz por tipo de

função. Foram definidos 5 tipos de função de comandos:

• Local: Representam os comandos de seleção dos locais onde

estão os equipamentos;

• Equipamento: Representam os comandos de seleção dos

equipamentos, todo comando de “equipamento” deve vir abaixo

de um comando de “local”;

• Função: Representa os comandos de seleção das funções a

serem controladas no equipamento, como exemplo canal e

volume;

• Comando: São os comandos propriamente ditos. Sempre

executa uma ação, como aumentar, diminuir, ligar, desligar, etc.;

• Geral: Representam os comandos gerais que não tem atuação

com o Hardware, usado apenas para executar funções internas

do sistema como por exemplo autenticar o usuário, fazer uma

chamada telefônica, falar o menu de comandos e etc.

Conforme Figura 16, a hierarquia de comandos foi modelada num grafo

tipo árvore de grau 4, 5 níveis. No nível 1, o nó pai representa o sistema como

um todo e é um dos dois únicos nós que não possui um comando associado.

Todos os nós restantes da árvore de comandos representam um comando.

Respectivamente têm-se os níveis de locais, equipamentos, funções/comandos

e comandos, a árvore cresce infinitamente na horizontal.

Os Comandos “ligar” e “desligar” são considerados comandos primários,

não têm nenhuma função associada e portanto, ficam no mesmo nível das

funções. Os comandos com função do tipo “Comando” são sempre

representados pelas folhas da árvore.

Os comandos com função do tipo “Geral” é uma abstração que foge do

modelo hierárquico. Tendo em vista a necessidade de fazer parte da árvore de

comandos, no nível 2, foi criado um nó extra do tipo “Geral” que não representa

um comando, mas sim um conjunto de comandos representados pelas folhas

desse nó. Portanto para o nó do Tipo “Geral” todos os seus filhos

obrigatoriamente devem ser folhas.

Page 50: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

40

Figura 16 – Modelo hierarquia de comandos.

Para atuar nas funções de uma TV, o estado inicial para que seja

possível essa operação é o estado ligada, do mesmo jeito para ligar o

equipamento deve esta no estado desligado e vice-versa.

Para definir se o estado atual do equipamento permite a execução do

comando, os comandos do modelo foram classificados como “ativa”, “desativa”,

“atua”, “seleciona” e “único”, representando os tipos de atuação no

equipamento.

Tipos de atuação dos comandos:

• Ativa: São todos os comandos do tipo “Comando” que ligam os

equipamentos;

• Desativa: São todos os comandos do tipo “Comando” que

Desligam os equipamentos;

• Atua: São os comandos tipo “Comando” que executam uma

ação relacionada a uma função do equipamento e não fazem

parte do grupo “Ativa”, “Desativa”;

• Seleciona: São todos os comandos do tipo “Local” e

“Equipamento”, usados para selecionar os módulos de controle.

• Único: São comandos isolados que não dependem de um estado

do equipamento. São usados em todos os comandos do tipo

“Geral” e, por exemplo, em um comando para atuar em um relê

de uma fechadura de porta;

Para executar qualquer comando que tem o tipo de atuação “Desativa”,

“Atua” e “Seleciona”, o equipamento deve estar no estado “Ligado”. Para

Page 51: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

41

executar um comando do tipo de atuação “Desativa”, o equipamento deve esta

no estado desligado. Os comandos do tipo “Único” serão sempre executados.

De acordo com a Figura 16, cada nó do nível foi nomeado com letras

únicas ordenado pela numeração crescente do alfabeto. Assim o modelo

definido permite mapear o caminho do comando na árvore. Através de uma

busca pelas arestas mais próximas da origem até o comando folha, criando

uma chave única para cada comando. Como exemplo, tem-se a chave

“A/A/A/A/B”. O comando B, nó folha, pertence à função A do equipamento A do

Local A que por final se origina do sistema que é o nó pai da árvore. Cada letra

da chave representa um nível da árvore, permitindo reconstruir a árvore de

comandos somente analisando as chaves dos comandos.

3.2 Desenvolvimento do Sistema

Com os modelos e especificações do projeto concluídas, deu-se o

desenvolvimento do software do sistema de controle via comando de voz. O

primeiro passo foi definir quais telas iriam ser construídas de modo que

atendessem aos modelos propostos. Dentro dessas telas foram definidos quais

são os campos necessários para interface. O escopo do projeto exigia um

banco de dados para guardar os dados cadastrais e históricos do sistema. Foi

projetada uma base de dados que atendesse aos pré-requisitos do sistema.

Neste capítulo tem-se a definição da base de dados, a interface do

software desenvolvido com suas principais características e resultados.

3.2.1 A Base Dados

O banco de dados escolhido foi Microsoft Access, versão 2002, já que o

sistema não precisa de grandes quantidades de informações e por ser um

banco de dados que irá prover serviço local e sem acessos concorrentes. O

sistema de banco de dados Microsoft Access atende totalmente as

necessidades do sistema.

Conforme a Figura 17, foram criadas as tabelas tblgrupos, tblPID,

tblhiscmd, tblparam e tblacesso:

Page 52: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

42

• Tblgrupos: Criada para armazenar a hierarquia de comandos

conforme figura 16.

• TblPID: Criada para armazenar os comandos do sistema com os

campos necessários para criar o arquivo XML e parâmetros do

comando, bits de controle do hardware e etc.

• Tblhiscmd: Criada para armazenar os históricos do comando e

controlar o estado atual dos equipamentos.

• Tblparam: Criada para armazenar os parâmetros padrões de

inicialização do sistema.

• Tblacesso: Criada para armazenar os usuários de acesso ao

sistema e suas respectivas permissões.

Page 53: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

43

Figura 17 – Diagrama relacional do banco de dados do Sistema de Controle via Comando de

Voz.

Page 54: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

44

3.2.2 O Sistema de Controle Via Comandos de Voz

O sistema foi codificado no visual Basic 6. Foi criado um formulário MDI

(Multiple Document Interface), ilustrado na Figura 18, que é o formulário mestre

do sistema. Exceto o formulário inicial de apresentação (Splash), todos os

outros formulários estão contidos no MDI.

Figura 18 – Tela do Formulário MDI contendo o formulário de autenticação no sistema.

No SCVCV (Sistema de Controle Via Comando Voz) foram criados dois

formulários principais: um para o cadastro da hierarquia de comandos e seus

respectivos parâmetros e outro para realizar o reconhecimento dos comandos,

monitoração e controle dos módulos de hardware.

O formulário de “hierarquia de comandos” foi projetado de maneira que

atenda os modelos e definições pré-estabelecidas. Ele permite os cadastros e

alterações dos membros da hierarquia de comandos, dos parâmetros de cada

comando e principalmente a geração automática dos arquivos XML contendo

as gramáticas dos comandos de voz.

Na parte esquerda da Figura 19 há um “tree-view” que exibe a árvore de

comandos cadastrada no banco de dados. Estes dados estão gravados na

tabela tblgrupos. Foi criado um algoritmo que lê a tabela de dados e monta

a árvore vertical.

Page 55: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

45

Figura 19 - Tela do formulário de manutenção da hierarquia de comandos.

Ao clicar nos nós da árvore, são exibidos do lado direito os dados

referentes ao comando selecionando, estes dados estão na Tabela tblPID. A

estrutura da árvore pode ser alterada a qualquer momento usando o botão

direito do mouse, aparecerá um menu do tipo “Pop Up” que permite alterar,

excluir ou incluírem novos nós na árvore.

Sempre que é cadastrado um novo nó na árvore, os dados do comando

ainda não existem, portanto, os mesmos devem ser cadastrados

posteriormente utilizando o botão “Incluir”.

Ao fazer qualquer alteração nos dados, deve ser acionado o botão

“Gramática”. O mesmo chama um método que recria todos os arquivos XML

contendo as gramáticas com as regras dos comandos.

O método que cria as gramáticas não foi inserido para ser executado

automaticamente após alterações nos registros do banco de dados, por que é

um método pesado e tornaria a manutenção dos dados um pouco mais lenta.

É mais prático primeiro cadastrar todos os comandos e depois gerar as

gramáticas. O risco é modificar os comandos e esquecer-se de clicar no botão

“Gramática”. Caso isso ocorra, tem-se uma gramática inconsistente, diferente

do real cadastrado.

Page 56: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

46

Na Figura 19, o campo “Binário” representa os bits responsáveis pelo

controle dos equipamentos. Se o comando for do tipo “Seleção”, deve ser

informado o número binário referente ao número inteiro da porta de saída do

módulo de controle. Caso o tipo seja “Comando” ou “Função”, vai depender da

configuração do hardware de controle ligado diretamente ao equipamento. Os

comandos do tipo “Geral” não enviam comandos de controle.

O SCVCV permite até três frases diferentes para o mesmo comando. O

SAPI não limita o número de registros vinculados a um único ID de comando.

Como, quanto maior o número de palavras na gramática, maior a possibilidade

de reconhecimentos hipotéticos, o número de comandos de um mesmo ID foi

limitado a três. O comando reconhecido é executado somente se o campo

“Ativo” for verdadeiro.

Alguns comandos, se executados sem a real intenção, podem trazer

perigo para as pessoas próximas ao local do equipamento. Por exemplo, se um

comando para abrir um portão externo for reconhecido hipoteticamente por

meio da fala ou um alto índice de ruído do ambiente onde esta o microfone de

captura de áudio, o local ficará vulnerável a ladrões e entrada de pessoas não

autorizadas. Outro exemplo seria ligar um forno por tempo indeterminado. Se

as pessoas próximas não perceberem que o forno esta ligado, o mesmo pode

aquecer a ponto de gerar um incêndio.

Para minimizar o problema descrito foi criado o campo “Pede

confirmação para executar comando”. Se assinalado, sempre que for

reconhecido um comando válido, antes de enviar os bits de atuação, o sistema

deve pedir um novo comando de confirmação.

O formulário “Monitor de Comando de Voz” foi projetado para monitorar

o reconhecimento dos comandos e enviar os bits de controle para a porta de

saída onde o hardware de controle esta conectado, neste caso, a porta

paralela. Os comandos são enviados mediantes validações de controle

conforme status do equipamento e tipo de comando.

De acordo com o formulário da Figura 20, foi criada uma interface que

mostra os comandos reconhecidos, como a biblioteca de reconhecimento

reconhece a voz e os retornos dos principais eventos internos da API. O

formulário foi dividido três seções:

Page 57: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

47

• Na primeira tem-se um “tree-view” que mostra uma árvore com os

comandos reconhecidos e suas respectivas propriedades.

• Na segunda seção há uma caixa de texto que mostra os retornos

dos eventos do mecanismo de reconhecimento de voz. Os

eventos monitorados podem ser ativados ou desativados,

conforme as caixas de seleção disponíveis.

• Na terceira seção, na parte superior mostra gramática atual

carregada pelo SCVCV, na parte inferior a caixa de texto exibe o

retorno dos comandos reconhecidos.

Todos os comandos são falados em inglês, por que a biblioteca de

reconhecimento não possui o idioma português. Como, em geral, o locutor não

está no seu dialeto padrão, isto dificulta o reconhecimento dos comandos. A

fonética de um brasileiro dificilmente é igual à fonética de uma pessoa nata do

idioma inglês.

Page 58: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

48

Figura 20 – Tela do Formulário monitor comando de Voz.

Page 59: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

49

3.3 O Reconhecimento de Voz e os Ruídos

Um problema a ser resolvido é a interferência de ruídos proveniente do

ambiente. O treino do software no ambiente com ruídos melhora

consideravelmente a qualidade de reconhecimento, mas não deixa o software

livre de reconhecimentos de comando espúrios.

Outro fato é que software pode estar muito bem treinado com os ruídos

padrões do ambiente, mas nada impede que, eventualmente, fontes de ruído

como um carro de som, máquinas de obras próximas, ou um avião, gerem

níveis excessivos de ruído e conseqüentemente façam o sistema reconhecer

comandos errôneos.

Há ambientes que o nível de ruído é tão alto que, mesmo com o treino

no ambiente característico, o reconhecimento de comandos errôneos devido ao

ruído é constante. Um exemplo é uma área fabril com vários motores ligados

ou uma sala com de aula com 50 pessoas falando em tom alto ao mesmo

tempo.

Segundo o manual do Microsoft Speech SDK 5.1, o evento que monitora

a interferência da recepção retorna seis valores constantes que indica as

formas de interferência:

1) SINoise(1): O valor indica que esta reconhecendo apenas barulho.

2) SINoSignal(2): Indica que o mecanismo de reconhecimento esta

reconhecendo um som constante, um barulho sempre com a mesma

freqüência, ou ausência de um microfone de entrada de áudio.

3) SITooLound(3): Indica que o mecanismo de voz recebeu o som mas

a intensidade de fluxo é muito alta para reconhecimento. Isto ocorre

quando há barulhos extremamente altos como um grito.

4) SITooQuiet:(4): Indica que o mecanismo de voz recebeu o som mas

a intensidade de fluxo é muito baixa para reconhecimento da voz.

5) SITooFast(5): Indica que as palavras são faladas muito depressa

para reconhecimento.

6) SITooSlow(6): As palavras são faladas muito lentamente e indicam

tempo excessivo entre palavras.

Page 60: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

50

Como abordado, teoricamente, o sistema controla a interferência dos

ruídos, mas na prática isso não se concretiza. Foram realizados testes e em

um ambiente como uma sala de aula, onde há um nível de conversa razoável.

Vários comandos foram reconhecidos sem que o usuário falasse uma única

palavra e o mecanismo de conhecimento não retornam interferência. Alguns

sinais analógicos do barulho são próximos ao sinal de um comando válido.

Um das observações realizadas durante os testes é que quanto menor

número de sílabas da palavra, maior é a possibilidade dela ser reconhecida

incorretamente.

Para realizar os testes iniciais, um notebook foi deixado em ambientes

de barulho e ruídos excessivos, carregado uma gramática contendo palavras

de uma, duas, três e mais sílabas. Após os resultados dos testes foi observado

que aproximadamente 60% dos comandos reconhecidos incorretamente

possuem apenas uma sílaba como on, up, set, in e etc. 35% dos comandos

possuem duas silabas como apple, garden, room, down e etc. Apenas 5% dos

erros são provenientes de palavras com 3 ou mais sílabas.

A fonética da palavra também influencia no reconhecimento, como

exemplo, foram testadas as palavras apple e garden. Como a pronuncia de

apple é mais curta que garden, a palavra apple é reconhecida incorretamente

com maior freqüência.

A qualidade do hardware de entrada de áudio esta diretamente ligada ao

percentual de interferências causadas pelos ruídos. Quanto melhor for a

qualidade do hardware, menor vai ser a quantidade de ruídos captados e

passados para o mecanismo de reconhecimento.

Um dos equipamentos mais importantes é o microfone. Existem

microfones que possuem filtros de ruído e, neste caso, são transmitidos sinais

quase limpos para a placa de som do computador. Outro dispositivo é a placa

de som, existem placas de sons profissionais que também possuem controles

avançados de filtros dos sons capturados do ambiente.

Acredita-se que com o uso de microfone profissional, que possui filtros

de ruídos e uma placa de som que permite filtrar faixas de freqüência, seja

possível minimizar ou eliminar os ruídos, podendo resolver o problema dos

ruídos e interferências de sons externos de intensidade intermediária.

Page 61: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

51

Outro aspecto para resolver o problema é sempre verificar se nas

próximas versões liberadas das bibliotecas de reconhecimento de voz,

possuem mecanismos mais avançados para tratamento do ruído e

interferência.

Page 62: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

52

4 Conclusão

A tecnologia de reconhecimento de voz está em ascensão. Dentre as

APIs e bibliotecas dos fabricantes liberadas para desenvolvimento de software

de reconhecimento de voz, a Microsoft Speech API foi o que melhor se

adequou para o desenvolvimento do SCVCV.

Os modelos desenvolvidos permitiram o desenvolvimento de um sistema

flexível e eficaz. Os mesmos poderão ser aplicados não só na linguagem Visual

Basic, mas em qualquer linguagem de programação como Java, C++, Delphi e

etc.

O projeto desenvolvido atendeu às expectativas e provou-se que os

modelos desenvolvidos funcionam em uma aplicação prática. Os modelos

aplicados no software permitem controlar novos hardwares de controle via

comando de voz sem a necessidade de alterações de código no sistema.

Novos módulos de hardware de controle podem ser acoplados no

SCVCV bastando somente cadastrar o novo equipamento, suas funções,

comandos e bits de controle.

Um dos grandes problemas a ser resolvido são as interferências de

ruídos e sons externos que provocam reconhecimento de comandos que não

foram pronunciados.

O reconhecimento de voz, aplicado para controle de dispositivos

eletrônicos, é uma tecnologia nova que tem muito a se desenvolver. Com o

projeto atual desenvolveu um padrão de projeto funcional que poderá ser

aperfeiçoado e aplicado nas mais diversas áreas, como centros de assistência

a deficientes físicos, casas, empresas, áreas comerciais, salas cirúrgicas,

clínicas, etc.

4.1 Contribuições

Este projeto traz inúmeras contribuições para a sociedade e para o

avanço da tecnologia de reconhecimento de voz, dentre elas:

• A inclusão social dos milhões de deficientes físicos existentes,

permitindo acessibilidade e conforto para os mesmos;

Page 63: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

53

• O avanço de uma tecnologia que ainda esta em ascensão. Que

dentro dos padrões pré-estabelecidos poderá se tornar um fator

de conforto para toda a população mundial a custo acessível;

• Na medicina, com alguns aperfeiçoamentos, médicos poderão

interagir com seus aparelhos eletrônicos sem se desprender da

cirurgia;

• Agregar uma nova área de conhecimento. Permitiu o domínio de

uma nova área da engenharia que esta em expansão e tem

muito a ser feito.

4.2 Trabalhos Futuros

Existe uma infinidade de projetos que podem ser desenvolvidos que

complementam o SCVCV:

• A criação de uma interface via página da Internet, permitindo o

controle dos dispositivos conectados no sistema através da Internet;

• A criação uma interface para celular, onde os usuários não

necessitarão mais estar nas proximidades do local onde se encontra

o sistema;

• O desenvolvimento dos módulos de controle dos diversos

equipamentos eletrônicos existente no nosso dia a dia, como módulo

para controle de televisores, forno microondas, interfaces para

fogões, geladeiras, ar condicionado e equipamentos diversos que

fazem parte do nosso dia a dia;

• A criação de mecanismos para resolver o problema do ruído do

sistema de reconhecimento de comandos de voz.

Page 64: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

54

Referências Bibliográficas

CHOU, Wu; JUANG, Biing-Hwang. Recognition in Speech and Language

Processing. Flórida: CRC Press, 2003.

CORADINE, L.C. et al. Interpretação de Pequenas Frases com análise léxica

no sistema Falibras: Tradutor do Português para LIBRAS. III Fórum de

informática aplicada a pessoas portadoras de necessidades especiais, 2004.

DAMASCENO, Eduardo Figueiras; PEREIRA, Tatiane Valau; FERREIRA, José

Remo. Implementação de Serviços de Voz em Ambientes. Dissertação de Pós-

Graduação em Ciência da Computação. UFMS – Universidade Federal de

Mato Grosso do Sul, Dourados-MS, 2004.

DAMASCENO, Eduardo Figueiras. Avaliação das Bibliotecas de

Reconhecimento e síntese de fala em ambientes virtuais. Dissertação

(Mestrado em Ciências da Computação) - Centro Universitário Eurípides:

Fundação de Ensino Eurípides Soares da Rocha. Marília, 2005.

DE LIMA, Amaro A. et al . Análise comparativa de parâmetros em sistemas de

reconhecimento de voz. XVIII Simpósio Brasileiro de Telecomunicações: URFJ-

Universidade Federal do Rio de Janeiro, 2000.

GUILHOTO, Paulo J. Santos; ROSA, Susana P. C. de Souza. Reconhecimento

de Voz: Dissertação (Licenciatura em Engenharia da Informática): Universidade

de Coimbra. Coimbra, 2001.

MICROSOFT Corporation. Microsoft Speech Software Development Kit,

Version 5.1, Guia de Referência, 2000.

ODELL, James Julian. The Use of Context in Large Vocabulary Speech

Recognition: Dissertação (Doutorado em Filosofia). University of Cambridge.

Cambridge, 1995.

Page 65: Curso de Engenharia de Computação SISTEMA CONTROLE VIA ...lyceumonline.usf.edu.br/salavirtual/documentos/1196.pdf · iii Sistema de Controle Via Comando de Voz Carlos André Pinheiro

55

PRESTON, Scott. The definitive guide to building Java robots. New York:

Springer, 2006.

RABINER, Lawrence R. A Tutorial on Hidden Markov Models and Selected

Applications in Speech Recognition, Proceedings of the IEEE, Vol. 77, N. 2,

1989.

RABINER, Lawrence; JUANG, Biing-Hwang. Fundamentals of Speech

Recognition. New Jersey: PTR Prentice-Hall International, Inc, 1993.

SUN Microsystens. FreeTTS 1.2.1: A speech synthesizer written entirely in the

JavaTM programming language. Guia de Referência, 2005.

SUN Microsystens, Sun Java™ Speech API, Programmer’s Guide Version 1.0,

1998.

Introdução à Porta Paralela. URL:

http://www.rogercom.com/pparalela/introducao.htm#introducao, recuperado em

3 de novembro de 2008.