Sunteți pe pagina 1din 6

RECONHECIMENTO DE COMANDOS DE VOZ VIA REDE NEURAL ARTIFICIAL

Gustavo Xavier Prestes, Edrisan Conceio da Cruz, Carlos Guy Fernandes Lopes carlos_guylopes@hotmail.com, edr_cr@hortmail.com, gxprestes@gmail.com Orientador: Max Ricardo Pantoja da Trindade Co-Orientador: Antnio Marcos Lima de Arajo IESAM - Instituto de Estudos Superiores da Amaznia Curso de Engenharia de Controle e Automao Belm PA Brasil

Resumo Este projeto tem como finalidade, desenvolver um sistema de reconhecimento de comandos de voz atravs de redes neurais artificiais. Este processo foi realizado atravs de tcnicas de processamento digitais de sinais, utilizando RNA multicamadas perceptron para o reconhecimento de padres (voz). As palavras foram reconhecidas de forma satisfatria, tendo robustez suficiente para serem aplicadas em diversas reas de comando de dispositivos. Palavras Chaves: Reconhecimento de voz, processamento digital de sinais, RNA multicamadas perceptron. Abstract: This Project aims, develop a system of recognition of voice through artificial neural network. This process was conducted through techniques of digital signals processing using ANNs multilayers perceptron for the patterns recognition (voice). The words were recognized in a satisfactory manner having robustness sufficient to be applied over devices command areas. Keywords: Voice recognition, digital sinal processing, ANNs multilayers perceptron.

Os comandos de voz, pra, frente, trs, esquerda e direita foram utilizados como parmetros de entrada da rede neural. Havendo primeiramente a necessidade de fazer o tratamento digital dos mesmos, utilizando ferramentas e tcnicas de anlise de sinais antes do treinamento da RNA.

PROCESSO DE DIGITALIZAO DO SINAL DE VOZ

No processo de aquisio do sinal, foi utilizado um sistema transdutor microfone, tendo em vista que nesse mesmo instante o sinal de voz capturado que de natureza analgica foi convertido em um sinal digital pelo conversor A/D [2] da placa de som do computador utilizado e exibido no monitor sua forma de onda pelo programa Cool Edit (figura1), onde foram ajustadas as seguintes configuraes para a aquisio de voz:

1. Taxa de amostragem: 44100; 2. Canais: Mono; 3. Resoluo: 16-bits.

INTRODUO

Baseado no conhecimento que o crebro humano possui uma rede de neurnios que se comunicam por impulsos eltricos atravs de sinapses nervosas [1], foi desenvolvido o conceito de redes neurais artificiais (RNA) que so sistemas no lineares que imitam o mecanismo de processamento do crebro humano. Sabese que a rede neural artificial uma tecnologia emergente e passvel de novos desenvolvimentos. Uma das possveis aplicaes o reconhecimento de padres, e baseado nessa tecnologia que se teve a idia de utilizar o comando de voz agregado com RNAs. O uso da RNA se fez necessario para tornar possvel um dos propsitos desse projeto, que foi o reconhecimento de voz independentemente do locutor. Para isso, foi necessrio reunir um conjunto de dez locutores, sendo que os oito primeiros foram selecionados para o treinamento e os outros dois para a validao da RNA.

Figura 1: Forma de onda digital de uma palavra mostrada no Cool Edit.


1

Reconhecimento de Comandos de Voz via Rede Neural Artificial Dezembro de 2008

Todas as amostras foram ajustadas de acordo com intensidade da voz de cada locutor para que cada palavra pertencesse a um intervalo de -12dB a -6dB, necessrio para no haver atenuao e nem saturao do sinal. Devido o sinal de voz possuir uma diversidade muito grande de caractersticas como timbre, intensidade, entre outras [3]. Dificilmente uma palavra ser pronunciada da mesma forma por uma pessoa. Por este motivo necessita-se coletar uma grande quantidade de amostras para servir de exemplos para o treinamento da rede. Aps o sinal ter sido capturado, digitalizado e salvo no computador possvel manipul-lo. As cinco palavras citadas anteriormente foram analisadas em sua forma espectral e etiquetadas manualmente utilizando o software Cool Edit. Este processo foi realizado pela marcao dos pontos de incio e fim de cada palavra. As amostras devidamente etiquetadas foram convertidas em um arquivo de texto (*.txt) que teve adicionado os pontos de inicio e fim da etiquetagem (figura2), ento gerou-se um vetor coluna representando a amostra de cada palavra.

Na etapa seguinte, dividiu-se o sinal de voz em quadros sobrepostos em 50% (figura3), no qual cada quadro possui 1024 amostras com durao de 22,23 ms. Esta tcnica aplicada devido o sinal de fala ser variante no tempo e para efeito de estudo e aplicao utilizou-se a tcnica de diviso em quadros que consiste em dividir o sinal em pequenos segmentos (quadros) que variem de 10ms a 25ms, pois se assume que o sinal de fala invariante no tempo em um intervalo menor que 25 ms [6].

Figura 3: Diviso do sinal em quadros sobrepostos em 50%.

A forma mais simples de representar o sinal calculando a sua energia. Mas, o principal motivo de realizar esse clculo representar a distino dos quadros que apresentam silncio dos quadros com sinais de fala. Ento calculou-se a energia de cada quadro pela seguinte frmula:

Figura 2: Forma espectral e delimitao dos pontos de incio e fim da palavra.

Posteriormente desenvolveu-se um algoritmo no MatLab que carregou o arquivo, tornando possvel a manipulao das amostras e determinando a posio no vetor dos pontos etiquetados. O rudo do sinal foi representado pelas quatro mil amostras anteriores ao primeiro ponto da etiquetagem e quatro mil amostras depois do segundo e ltimo ponto. Esta tcnica de fixar os pontos de incio e fim da amostra conhecida como alinhamento temporal, mecanismo que padroniza o tamanho das amostras, visto que, impossvel que os locutores no momento da gravao iniciem a pronncia no mesmo instante e intervalo de tempo.

Sendo N o nmero de amostras por quadro e X o vetor que representa o quadro. Este processo tambm permitiu a preservao da caracterstica tempo-frequncia do sinal, que muito importante para a classificao dos padres [7]. Com o intuito de reduzir os parmetro para o treinamento, importante transferir o sinal que est no domnio do tempo para o domnio da freqncia, ento aplicou-se a FFT (Transformada Rpida de Fourier) [8] em cada quadro. Aps este procedimento utilizou-se somente as 512 primeiras amostras de cada quadro, pois os parmetros so simtricos em N/2, como ilustra a figura abaixo.

PR-PROCESSAMENTO

Depois de realizado o processo de aquisio e digitalizao do sinal, foi necessrio aplicar tcnicas de prprocessamento nas amostras, com objetivo de reduzir os parmetros para o treinamento da rede neural, tendo em vista que cada sinal de voz possui milhares de informaes [4]. A primeira etapa do pr-processamento consiste em normalizar as amostras, com o intuito de evitar a saturao dos neurnios da RNA, assim tornando as amostras mais apropriadas para o processo de treinamento [5]. Para realizar esta normalizao, divide-se as amplitudes do sinal pela maior amplitude do mesmo, assim fixando-as no intervalo de -1 a 1.

Figura 4: Grfico de um quadro aps a aplicao da FFT.

Reconhecimento de Comandos de Voz via Rede Neural Artificial Dezembro de 2008 6

Posteriormente aplica-se novamente o cculo da energia, agora porm nos quadros j processados pela FFT, resultando em aplitudes de energia. As amplitudes de cada quadro foram filtradas por um banco de 25 filtros de janelas triangulares na escala Mel (figura 5), resultando em vinte e cinco amostras por quadro. Esta escala foi utilizada, pois a mesma a que mais se aproxima das caractersticas da audio humana [9]. Na etapa seguinte, aplicou-se a IDCT (Transformada Discreta Inversa do Cosseno) [10] nas amostras filtradas, sendo que os doze primeiros parmetros resultantes so os coeficientes Mel Cepstrais, que foram utilizados como parmetros de treinamento, associado energia do quadro calculado antes da aplicao da FFT.

Onde: n - numero de sinais de entrada do neuronio; b so os bias; Xi - i-simo sinal de entrada do neurnio; wi - peso associado com o i-simo sinal de entrada; uj(k) - resposta ponderada do j-simo neurnio em relao ao instante k; vj(k) - sinal de sada do j-simo neurnio em relao ao instante k. Para que o neurnio produzisse respostas mais adequadas a este projeto, utilizou-se funes de ativao no lineares do tipo tangente sigmide nas camadas de entrada e escondidas e sigmide na camada de sada, pelas quais obteve-se respostas flexiveis quando comparadas com as funes de ativao lineares. Nas figuras 7 e 8 possvel visualizar o comportamento das funes de ativao utilizadas: Funo Tangente Sigmide:

Figura 5: Banco de filtros na escala Mel. Desta forma houve reduo no nmero de amostras de cada quadro que anteriormente possuiam 1024 e posteriormente passaram a conter apenas 13 amostras. Finalmente, aps todo pr-processamento, foi reunido todos os parmetros em uma matriz de entrada P de ordem 1131x800, onde as linhas representam todos os parmetros de cada quadro e as colunas representam as palavras dos oito locutores escolhidos para o treinamento da RNA. Vale ressaltar que o nmero de linhas da matriz P baseado no tamanho da maior palavra. Sabendo-se que as cinco palavras no possuem o mesmo tamanho houve a necessidade de acrescer de zeros os espaos no ocupados pelas palavra que possuem tamanhos inferiores a maior palavra.

REDE NEURAL ARTIFICIAL

A unidade bsica que constitui as redes neurais so os neurnios artificiais, que possuem mltiplas entradas, pesos, bias e apenas uma sada. O primeiro modelo foi proposto por volta de 1940 por McCulloch e Pitts. Este era considerado um neurnio simples, pois, limitava-se a resolver problemas linearmente separveis [11]. Com o passar dos anos, os modelos neurniais sofreram vrias modificaes tornando-se mais robustos. A figura 6 apresenta a estrutura de um neurnio artificial mais atual:

Figura 7: Grfico da funo tangente sigmide. Funo Sigmide:

Figura 6: Estrutura do neurnio artificial.

Reconhecimento de Comandos de Voz via Rede Neural Artificial Dezembro de 2008

Tendo em vista que a definio das caractersticas da rede ainda uma heurstica, aps vrios testes constatou-se que a arquitetura mais eficiente foi uma rede com cinco camadas, ento foram utilizados 1131 neurnios na entrada, nas camadas intermedirias foram utilizados 500, 100 e 50 neurnios respectivamente e 5 neurnios na sada. O Quadro 1 mostra a resposta desejada correspondente a cada neurnio, tambm conhecida como matriz objetivo:

N Figura 8: Grfico da funo sigmide. 1 2 Os neurnios artificiais atuando conjuntamente formam as redes neurais artificiais, o que define suas arquiteturas a forma como os neurnios esto organizados. Dependendo do tipo da aplicao que se define qual RNA deve ser utilizada. 1. A Kohonen tem como caracterstica o aprendizado no supervisionado, objetivando regularidades ou similaridades nos dados de treinamento [12]. 2. A Hopfield tem como caracterstica o aprendizado forte com sadas contnuas [12]. 3. A Perceptron possui uma camada de entreda e uma de sada, tendo apenas uma camada com pesos modificveis, com unidades de sada tipo rel ou degrai unitrio [12]. 4. A MLP (Multi Camadas Perceptron). Esse tipo de rede possui camadas escondidas que funcionam como reconhecedoras de caractersticas capazes de resolver problemas mais complexos, unidades que utilizam funes de ativao no-lineares, algoritmos de aprendizado baseado na retro-propagao do erro, entre outros [11]. Por possuir tais caractersticas e por ser muito utilizada no reconhecimento de padres, a MLP foi a arquitetura utilizada, mostrando-se mais adequada a este projeto. A Figura 9 representa a arquitetura da mesma:
Camada de entrada Camadas escondidas

Para 1 0 0 0 0

Frente 0 1 0 0 0

Trs 0 0 1 0 0

Esquerda 0 0 0 1 0

Direita 0 0 0 0 1

3 4 5

Quadro 1: Valores correspondentes aos neurnios de sada. Onde: N ndice dos neurnios. O Matlab possui vrias funes de treinamento com o algoritmo backpropagation, como por exemplo o gradiente descendente com momentum e aprendizado adaptativo que foi aplicado ao projeto. Para o treinamento da rede definiu-se os parmetros descritos no Quadro 2:

Parmetros do treinamento da RNA Erro objetivo Taxa de aprendizado Taxa de momentum

Valores 10-7 0,05 0,7 1,05 0,7 1,04

Cada neurnio da camada de sada da RNA corresponde a uma palavra. O primeiro neurnio de sada representa a palavra para, o segundo frente, o terceiro trs, o quarto esquerda e o quinto direita.

{
1 2 3 4

{
. . . . . . . . .

Camada de sada

Taxa de incremento da l.r Taxa de decremento da l.r Incremento mximo do erro

{
Para Frente Trs

Quadro 2: Parmetros de treinamento.

. . .
ne

1. Erro Objetivo
Esquerda

- Valor que deseja-se alcanar no fim do treinamento.


Direita

2. Taxa de Aprendizado - Este parmetro est diretamento relacionado com o desempenho da rede, o ideal escolher valores no to altos e nem muito baixos 3. Taxa de Momentum - Evita que durante o treinamento a rede encontre mnimos locais. 4. Taxa de Incremento aprendizado adaptativo) e Decremento(Taxa de

Figura 9: Arquitetura de rede MLP.

Reconhecimento de Comandos de Voz via Rede Neural Artificial Dezembro de 2008 6

- Parmetro responsvel por monitorar a rede, no caso de uma reduo da performance, a taxa de aprendizado multiplicada pelo incremento. Caso contrrio, este fator diminui atravs do decremento. 5. Incremento Mximo do erro - Valor limite de incremendo do aprendizado adaptativo.

5.

O algoritmo backpropagation est diretamente relacionado com o aprendizado supervisionado baseado na retro-propagao do erro, nessa fase o erro propagado para trs e os pesos so ajustados a cada camada antecedente at a entrada, o objetivo do treinamento produzir os menores erros possveis [11]. Este algoritmo atua justamente em cima da curva de erros, sempre tentando atingir o mnimo global, caso contrrio a rede dever passar pelo processo de treinamento novamente.

TREINAMENTO
Propagao

Existem dois tipos de treinamento que podem ser realizado na RNA, so eles: 1. Online - Os pesos so atualizados a cada padro apresentado. 2. Batch - Os pesos s sero atualizados aps todas as amostras (padres) terem sido somadas durante uma iterao. O treinamento em Batch foi escolhido neste projeto. Para que o processo de teinamento se comportasse de forma satisfatria, foi necessrio reorganizar de forma aleatria os padres de entrada da rede, este procedimento foi realizado atravs de uma funo do Matlab. Evitando que a RNA convergisse apenas para o ultimo padro de treinamento. O processo de treinamento da MLP ocorre da seguinte maneira: 1. 2. Inicializa-se a rede com valores randmicos para os pesos e bias. Os padres so apresentados na camada de entrada da rede, essas informaes propagam-se paralelamente at a camada de sada; Estipula-se a sada desejada e compara-se com a sada real da rede. Os erros so calculados na camada de sada at que alcance o erro objetivo;

Retropropagao Figura 11: Figura que ilustra a retro-propagao do erro.

RESULTADOS

3.

Aps o processo de treinamento, foi obtido o grfico da performance da RNA. Observou-se que a rede convergiu para um valor prximo ao erro objetivo em 326 pocas, iniciando em um erro mdio quadrado de aproximadamente de 3x10-1 e alcanando sua mxima performance em torno de 10-6. A figura 12 mostra o desempenho do treinamento da rede neural.

x estmulo; e sinal de erro; T sada desejada apresentada durante o treinamento; R sada real da rede aps a apresentao do estmulo de entrada. 4. No final do treinamento obtm-se uma curva de erros;

Figura 12: Grfico do desempenho de treinamento. Figura 10: Curva de erros.

Como citado anteriormente, os pesos foram iniciados randomicamente, entretanto aps as informaes de entrada
Reconhecimento de Comandos de Voz via Rede Neural Artificial Dezembro de 2008 5

passarem por todo processo de treinamento, os pesos correspondentes a cada camada foram ajustados. Ento, ao final do treinamento obteve-se os pesos sinapticos, que correspondem ao entendimento da RNA e atravs dos mesmos possivel realizar o processo de validao. Na validao, foram usadas 40 amostras de cada palavra, no total de 200 de dois locutores que no fizeram parte da matriz de treinamento. O Quadro 3 apresenta os seguintes resultados obtidos: Resultado P A R A F R E N T E T R S E S Q U E R D A 0% 2,5% 0% 100% 2,5% D I R E I T A 0% 2,5% 0% 0% 85% N R

Este projeto tem como objetivo implementar futuramente sistemas voltados a melhorar a qualidade de vida de pessoas que sofrem de doenas degenerativas ou portadoras de deficincia fsica, como por exemplo o controle de uma cadeira de rodas por comando de voz.

REFERNCIAS

[1] BRAGA, A.P; LUDEMIR, T.B; CARVALHO, A.C.P.L.F; Redes Neurais Artificiais Teoria e Aplicaes, Editora LTC 2000 . [2] RIBEIRO, Marcello Peixoto. Telecomunicaes : Sistemas analgicos-digitais. Rio de Janeiro : Livros Tcnicos e Cientficos: Embratel, 1980. [3] MATUCK, G.R; Processamento de sinais de voz padres comportamentais por redes neurais artificiais; INPE So Jos dos Campos; 2005. [4] DA SILVA, D. D. C. Desenvolvimento de um IP Core de Pr-processamento digital de sinais de voz para aplicao em sistemas embutidos. Tese de Mestrado. UFCG. Julho 2006. [5]GORGENS, E.B; Estimao no volume de rvores utilizando redes neurais artificiais; Viosa Minas Gerais; 2006. [6] BRAGA, P, L. Reconhecimento de voz dependente de locutor utilizando redes neurais artificiais. Trabalho de concluso de curso. Escola Politcnica de Pernambuco. Maio de 2006. [7] LEMOS, D. R. Reconhecedor de voz via rede neurais. PIC-EPUSP 2004. [8]DINIZ, P.S.R; Processamento Digital de Sinais, Projeto e Anlise de Sistemas; Bookman. [9] PICONE J. W. Signal Modeling Techniques in Speech Recognition, Proceedings of the IEEE, VOL. 81. NO. 91. SEPTEMBER, 1993. [10]RUNSTEIN, F; Uso de diferentes parmetros de entrada em um sistema de reconhecimento de fala baseado em redes neurais; Centro de Pesquisa e Desenvolvimento da TELEBRS; Campinas SP. [11] HAYKIN, Simon. Neural Networks. Canada, Toronto : McMaster University, 1994. [12] YONEYAMA, T; Inteligncia artificial em controle e automao; Fapesp; Editora Edgar Blucher.

Amostra Para Frente Trs Esquerda Direita 100% 0% 15% 0% 0% 0% 90% 0% 0% 5% 0% 0% 82% 0% 0%

0% 5% 3% 0% 7,5%

Quadro 3: Resultados do reconhecimento. Onde: N.R No reconheceu palavra alguma. Cada amostra teve um percentual de reconhecimento, sendo que para todas elas esse reconhecimento foi satisfatrio, atingindo xito total nas palavras pra e esquerda. Porm, em alguma delas, como as palavras: 1. Frente: o reconhecimento foi de 90%, sendo que a rede interpretou 2,5% como sendo esquerda, 2,5% como sendo direita e os outros 5% restantes a rede no reconheceu palavra alguma; 2. Trs: o reconhecimento foi de 82%, sendo que a rede interpretou 15% como sendo para e 3% no reconheceu palavra alguma; 3. Direita: o reconhecimento foi de 85%, sendo que a rede interpretou 2,5% como sendo esquerda, 5% como sendo frente e os outros 7,5% restantes a rede no reconheceu palavra alguma.

CONCLUSO

De acordo com os resultados obtidos pode-se concluir que a rede apresentou o comportamento esperado. As palavras foram reconhecidas com uma margem de erro bastante aceitvel, fato que leva a crer que as etapas de coleta, processamento e treinamento dos sinais de voz foram bem sucedidas. O uso do reconhecimento de comandos de voz bastante amplo e aplica-se em diversas reas como o controle de acessos, acionamento de dispositivos eletrnicos, traduo simultnea. Assim como no auxlio a pessoas com deficincia fsica.
Reconhecimento de Comandos de Voz via Rede Neural Artificial Dezembro de 2008 6

S-ar putea să vă placă și