Академический Документы
Профессиональный Документы
Культура Документы
+ =
700
1 log 2595 ) (
f
f m
O grfico abaixo o registro da resposta em freqncia do banco de filtros
projetado. Neste grfico pode ser observada, em detalhes, a influncia da escala de Mel
na distribuio das freqncias centrais e das bandas de passagem. Todos os filtros so
de segunda ordem e foram projetados atravs da funo butter do Matlab (depois de
calculadas a freqncia central e a banda de cada um).
PIC-EPUSP N2, 2004
1519
Tabela 1
Freqncias centrais e bandas de
passagem do banco de filtros
0
Filtro 1 f
c1
= 50 Hz
100
Filtro 2 f
c2
= 150 Hz
200
Filtro 3 f
c3
= 250 Hz
300
Filtro 4 f
c4
= 350 Hz
400
Filtro 5 f
c5
= 450 Hz
510
Filtro 6 f
c6
= 570 Hz
630
Filtro 7 f
c7
= 700 Hz
770
Filtro 8 f
c8
= 840 Hz
920
Filtro 9 f
c9
= 1000 Hz
1080
Filtro 10 f
c10
= 1170 Hz
1270
Filtro 11 f
c11
= 1370 Hz
1480
Filtro 12 f
c12
= 1600 Hz
1720
Filtro 13 f
c13
= 1850 Hz
2000
Filtro 14 f
c14
= 2150 Hz
2320
Filtro 15 f
c15
= 2500 Hz
2700
Filtro 16 f
c16
= 2900 Hz
3150
Filtro 17 f
c17
= 3400 Hz
3700
Filtro 18 f
c18
= 4000 Hz
4400
Filtro 19 f
c19
= 4800 Hz
5800
Na tabela acima verificamos a freqncia central e a banda de cada um dos 19
filtros do banco. Os valores imediatamente acima e abaixo da freqncia central so os
limites da banda de passagem, ou seja, valores onde h atenuao de 2dB no sinal.
O diagrama de blocos apresentado a seguir ilustra a tcnica de extrao de
parmetros utilizada no projeto:
PIC-EPUSP N2, 2004
1520
A sada de cada filtro dividida em trechos menores para preservao da
caracterstica tempo-freqncia. O nmero de trechos determinado a partir do nmero
de entradas da rede neural (nmero de entradas da rede / 19). Para que tenhamos sempre
um nmero inteiro de trechos, a nica restrio para o nmero de entradas da rede que
este seja mltiplo de 19. O sinal pr-processado atravessa o banco, a sada de cada filtro
dividida em trechos de acordo com o nmero de entradas desejado para a rede, em
seguida, calcula-se a energia de cada trecho. Este clculo de energia feito segundo a
relao de Parseval:
+
= n
n x
N
2
] [
1
A funo que realiza a diviso das respostas dos filtros em trechos e o clculo da
energia de cada trecho recebe como parmetro apenas o nmero de entradas da rede de
neurnios. O resultado da etapa de extrao de parmetros pode ser visto no grfico
Sinal
Pr-Processado
Filtro Passa-Faixa
H
1
( e
jw
)
Filtro Passa-Faixa
H
2
( e
jw
)
Filtro Passa-Faixa
H
3
( e
jw
)
Filtro Passa-Faixa
H
19
( e
jw
)
R
E
D
E
D
E
N
E
U
R
N
I
O
S
A
R
T
I
F
I
C
I
A
I
S
Trecho 1
Energia Trecho 1
Energia Trecho 2
Energia Trecho 3
Energia Trecho 4
Energia Trecho q
Energia Trecho n
Trecho 2
Trecho 3
Trecho 4
Trecho n
Trecho 1
Energia Trecho 1
Energia Trecho 2
Energia Trecho 3
Energia Trecho 4
Energia Trecho q
Energia Trecho n
Trecho 2
Trecho 3
Trecho 4
Trecho n
Trecho 1
Energia Trecho 1
Energia Trecho 2
Energia Trecho 3
Energia Trecho 4
Energia Trecho q
Energia Trecho n
Trecho 2
Trecho 3
Trecho 4
Trecho n
Trecho 1
Energia Trecho 1
Energia Trecho 2
Energia Trecho 3
Energia Trecho 4
Energia Trecho q
Energia Trecho n
Trecho 2
Trecho 3
Trecho 4
Trecho n
Banco de Filtros
PIC-EPUSP N2, 2004
1521
abaixo, onde foi informado ao sistema que a rede teria 190 entradas. Neste grfico
observamos a energia associada a cada trecho de sada dos filtros (190 trechos).
Para simplificar a utilizao foi elaborada uma rotina que agrupa as funes de
pr-processamento e extrao de parmetros. As entradas desta funo so: o nmero de
entradas da rede de neurnios e os limiares da funo de corte. As sadas geradas pela
funo servem diretamente como entradas da rede neural.
importante o acompanhamento dos grficos apresentados, tanto do pr-
processamento quanto da extrao de parmetros para que seja possvel avaliar se o
desempenho destas etapas est satisfatrio.
3.3. Redes Neurais
Nesse projeto, as redes de neurnios artificiais, ou redes neurais, so responsveis
por realizar o reconhecimento da voz em si. As redes neurais so modelos
computacionais que resolvem problemas que no apresentam uma especificao
rigorosa, especialmente do tipo de reconhecimento de padres, como o caso desse
projeto. Embora seja absolutamente intuitiva para os humanos, a tarefa de
reconhecimento de voz muito difcil de ser implementada computacionalmente, pois
jamais a mesma palavra pronunciada igualmente duas vezes.
As redes neurais so sistemas baseados no comportamento dos neurnios reais, no
que se refere s suas interconexes e tratamento de sinais de entrada para gerao do
sinal de sada. As redes so constitudas de vrios neurnios interconectados, que na
realidade so clulas de processamento com parmetros ajustveis. Elas efetivamente
PIC-EPUSP N2, 2004
1522
aprendem a realizar a funo desejada atravs da realizao de seu treinamento. Nessa
etapa se apresenta para a rede exemplos do funcionamento que se quer que ela tenha.
exatamente essa a funcionalidade de nosso projeto e do programa
demonstrativo, RV-RN. Atravs de exemplos gravados pelo usurio, que constituem a
base de treinamento do sistema ou o banco de dados do sistema, a rede neural treinada
para executar a funo de reconhecimento de padres os padres dos comandos de
voz pr-definidos.
3.3.1. Modelo das Redes Neurais
O tipo de rede neural utilizado foi o MLP Multi Layer Perceptron, que
consiste na composio de uma rede conectando-se vrios neurnios do tipo Perceptron.
Cada perceptron (neurnio artificial) modela o comportamento dos neurnios
naturais. Possui pesos sinpticos (wi) que simulam suas conexes aos neurnios de
entrada e uma funo de transferncia, que simula seu comportamento entrada-sada. A
sada calculada com base em suas entradas, que na rede so as sadas de outros
neurnios. Segue o modelo do perceptron:
O perceptron , portanto, uma clula simples de processamento com parmetros
ajustveis. Toma decises baseadas em suas entradas e consegue resolver problemas
simples, como por exemplo, classificao de padres com separabilidade linear.
Cada neurnio calcula a somatria dos pesos sinpticos pelos respectivos sinais de
entrada, alm do sinal de Bias, constante igual a +1. Aps calculado esse valor (sinal de
ativao, vk), calculado o sinal de sada, atravs da funo de ativao (). A funo
de ativao utilizada foi a sigmide, que tem a expresso abaixo
(vk) = 1____
1+exp(-ks x vk)
Sad
a
()
w
w
w
Entradas do
neurnio
BI
AS
PIC-EPUSP N2, 2004
1523
uma funo mpar e limitada entre 1 e +1. Note que ela no-linear, o que
uma caracterstica muito importante, pois caso contrrio, a rede toda poderia acabar
tendo a funcionalidade de um simples perceptron isolado. Pode-se obter variaes da
funo variando o valor da constante da sigmide, ks. O grfico abaixo mostra trs
formas de sigmide e suas respectivas derivadas (as sigmides so os sinais de menor
amplitude).
A estrutura tpica de MLP contm uma camada de neurnios de entrada e uma
camada de neurnios de sada alm de camadas escondidas. Essas camadas escondidas
possibilitam que a rede aprenda tarefas complexas, extraindo parmetros
progressivamente mais significativos a partir dos parmetros de entrada. O sinal se
propaga atravs da rede em sentido nico, camada a camada, isto , no h feedback.
Cada neurnio tem como entrada as sadas de todos os neurnios da camada anterior.
Sadas Entradas
PIC-EPUSP N2, 2004
1524
3.3.2. Treinamento da Rede
As redes neurais podem desempenhar uma infinidade de funes complexas, mas
ao contrrio de mecanismos usuais de programao a funcionalidade do algoritmo no
descrita explicitamente. As redes devem ser treinadas para adquirir a funcionalidade
desejada, atravs da execuo de Treinamento Supervisionado. Atravs de exemplos de
funcionamento ensina-se s redes a desempenhar o processamento desejado.
Este procedimento submete as redes a uma seqncia de amostras de aprendizado
em que se sabe qual o resultado desejado que a rede dever apresentar. Aplica rede um
conjunto de entrada e caso haja erro em sua sada, corrige seus parmetros, de modo que
ela apresente o comportamento apropriado. A rede, portanto, se auto-ajusta atravs de
exemplos, para aprender a realizar a funo desejada.
O algoritmo de treinamento utilizado foi o Back Error Propagation, baseado no
aprendizado por erro. Este algoritmo aplica um conjunto de entradas a uma rede neural,
e verifica se h erro de classificao, isto , se a sada da rede no corresponde sada
esperada para as entradas aplicadas (caso o padro apontado pela rede seja diferente do
padro esperado para o dado vetor de entradas). Se houver erro, o mesmo propagado
para trs, em direo primeira camada da rede, camada a camada atravs das conexes
sinpticas.
Os algoritmos desenvolvidos sero descritos mais adiante.
Assim como o desenvolvimento do software demonstrativo RV-RN, a
implementao das redes neurais foi realizada utilizando Matlab. Sua funcionalidade
obtida utilizando-se dois sub-programas, um para execuo do processamento da rede
neural em si (REDE), e outro para realizao do treinamento da rede (TREINA). Os
prximos itens descrevem esses sistemas detalhadamente.
O conhecimento adquirido sobre redes neurais aplicadas a reconhecimento de voz
pode ser utilizado para funes diversas. O sistema demonstrativo elaborado, RV-RN,
possui a funcionalidade de reconhecer comandos de voz pr-definidos,
independentemente do usurio. Os comandos (sobe, desce, esquerda e direita)
devem ser reconhecidos e interpretados pelo sistema. Cada um deles deve corresponder
a execuo de uma ao, mesmo se pronunciados por locutores diferentes. Dessa forma
no necessrio que o sistema seja capaz de realizar a diferenciao dos usurios, o que
permite reduzir o tamanho da rede, e conseqentemente seu tempo de processamento e
de treinamento, permitindo-nos focar nos objetivos da funcionalidade proposta e
orientar as melhorias de performance nesse sentido.
A identificao de usurios uma caracterstica essencial em outros tipos de
sistemas, como os de acesso de segurana, por exemplo. No entanto no foi realizado
esforo para o desenvolvimento dessa linha de funcionalidade e de outras que no a
proposta no escopo inicial, pois no desejvamos ter atrasos no projeto devido ao
alargamento do escopo.
Embora no faa parte do escopo do projeto, a flexibilidade do sistema permite
tambm que a funcionalidade do sistema demonstrativo seja facilmente adaptada para
executar outras funcionalidades, conforme ser descrito a seguir.
PIC-EPUSP N2, 2004
1525
Outra premissa importante para a elaborao dos programas foi com relao ao
aprendizado do sistema a partir de seus erros. Quando cometer algum erro de
reconhecimento, isto , quando realizar uma ao no-correspondente ao comando
dado, o usurio pode ensinar ao sistema que errou e como corrigir seu erro. Das
prximas vezes o erro no se repetir porque p sistema aprendeu com o erro. Dessa
forma o RV-RN pode adquirir funcionamento mais robusto, em tempo de execuo.
Uma das metas ao se desenvolver essas sub-rotinas era se garantir a flexibilidade
das mesmas, portanto a metodologia de desenvolvimento dos dois programas, REDE e
TREINA, foi orientada nessa direo. Ambos tm um grande nmero de parmetros que
devem ser ajustados (otimizados) para a utilizao no software. Muitos deles influem no
desenvolvimento do cdigo, mas durante a etapa de elaborao do cdigo a maioria
ainda no estava definida e a adaptao do cdigo caso a caso, de modo que fosse
possvel testar-se vrias configuraes, teria sido extremamente onerosa.
O procedimento da definio de parmetros no buscava apenas obter
funcionamento apropriado, mas tambm alguma otimizao. Portanto, para faz-lo de
modo adequado, foi necessrio realizar-se muitos testes, obtendo resultados de
performance para o maior nmero possvel de combinaes de valores que os diversos
parmetros poderiam assumir. Isso s foi possvel devido ao carter flexvel dos
programas de redes neurais que permitiam que os testes que envolviam grande variao
das caractersticas das redes, inclusive mudana de arquitetura, fossem executados de
modo muito prtico e sem nenhuma alterao de cdigo.
No decorrer do desenvolvimento do projeto nos deparamos com diversas decises
que orientariam o projeto entre dois caminhos absolutamente distintos. Para ilustrar
melhor essas decises, sua descrio ser feita junto ao detalhamento dos resultados
obtidos, no prximo item do relatrio. Dessa forma, explicitamos a soluo adotada, e a
comparamos s outras opes, justificando sua escolha.
Em geral, as decises com relao definio dos rumos do desenvolvimento do
projeto foram realizadas utilizando-se uma ou mais das aes abaixo:
- Criao de uma ou mais alternativas para resoluo de algum problema
- Apresentao das alternativas ao professor orientador
- Discusso com o professor a respeito das alternativas propostas e de
novas alternativas propostas por ele
- Busca de embasamento terico em referncias bibliogrficas
- Realizao de testes comparativos com todas as alternativas, quando
necessrio, isto , quando o bom-senso no era capaz de eliminar algumas
delas.
3.3.3. O programa de Redes Neurais (REDE)
Este programa implementa o funcionamento de uma rede neural MLP, isto , dado
um conjunto de entradas, que um vetor de caractersticas extradas da amostra de voz a
ser analisada, so calculadas as sadas da rede, que classificam o sinal de entrada. O
reconhecimento de cada palavra analisada, portanto, realizado executando-se essa
PIC-EPUSP N2, 2004
1526
rotina a partir do vetor de caractersticas extradas do sinal pela etapa anterior (pr-
processamento +extrao de parmetros).
O programa totalmente flexvel e pode simular uma infinidade de arquiteturas de
redes MLP. Essa flexibilidade, caracterstica tida como essencial nesse projeto, obtida
atravs da utilizao de muitos parmetros. Tudo o que se pode variar na rede est na
forma de parmetros. Mostraremos agora a estrutura da rede neural implementada e
todos os parmetros do programa.
Modelo Macroscpico da Rede Neural:
O nmero de sadas (Ns) e o nmero de entradas (Ne) podem ser alterados.
Modelo Microscpico da Rede Neural:
O vetor de caractersticas aplicado primeira camada, onde seus neurnios
geram suas respectivas sadas, que por sua vez so as entradas da prxima camada. O
processo ocorre at que se atinja a camada de sada.
Segue lista de todos os parmetros do programa:
W: Pesos Sinpticos da rede a ser simulada, de onde o programa extrai:
Ne: Nmero de Entradas da rede neural
Nn: Nmero de Neurnios por camada
Rede
Neural
Entradas
(vetor de caractersticas)
(Ne: nmero de entradas)
Sadas
(Ns: Num de sadas)
Nc
(
Nn)
Entradas
(Ne)
Sadas
(Ns)
Primeira
Camada
Camada de
Sada
Camadas
PIC-EPUSP N2, 2004
1527
Nc: Nmero de Camadas da rede
Ns: Nmero de Sadas da rede
Xe: Vetor de entrada da rede a ser simulada
Ks: Constante da sigmide utilizada nos neurnios
Inicialmente o desenvolvimento do projeto foi orientado para que houvesse uma
rede neural para cada uma das palavras que constituem a base de dados do sistema, isto
, uma rede para cada usurio para cada um dos quatro comandos. Aps execuo de
vrios testes essa abordagem foi abandonada porque necessitava de muito tempo para
executar os clculos referentes rede neural e para executar o treinamento da rede.
Alm disso, o re-treinamento das redes era muito lento a cada vez que uma nova
amostra fosse incorporada base de dados da rede, uma vez que deveriam ser re-
treinadas muitas redes. Alm de onerosa, essa soluo no apresentava melhora
aparente nos resultados obtidos com relao soluo definitiva.
Posteriormente a soluo adotada foi utilizar apenas uma rede. Pensou-se ento
que a utilizao de uma s rede neural poderia dificultar muito o trabalho de
classificao feito pelas redes, pois teria que criar padres que independem do usurio.
Isto , a sada ativa da rede apenas depende do comando falado, e no do usurio. O
padro ento deveria englobar diferentes usurios. Para evitar esse agravante facilitando
o trabalho das redes, adotou-se ento um conjunto de sadas para cada usurio, isto ,
havia uma sada para cada comando para cada usurio cadastrado no sistema. Como
eram quatro comandos (sobe, desce, esquerda e direita) deveria haver quatro
sadas para cada usurio. Como resultado, o treinamento da rede apresentava melhor
tempo de treinamento, mas ainda era demasiado demorado. Alm disso, a preocupao
com a dificuldade de reconhecimento no se mostrou necessria, pois as redes foram
capazes de executar a classificao utilizando-se apenas quatro sadas. Melhores
resultados foram obtidos com essa configurao.
O sistema RV-RN, portanto, conta com apenas uma rede neural, que possui, de
acordo com as premissas estabelecidas no item 2.1, cinco sadas. Cada sada
corresponde a uma palavra, no diferenciando o usurio.
Abaixo, vemos a descrio da semntica das sadas:
- Sada 1: comando Sobe
- Sada 2: comando Desce
- Sada 3: comando Esquerda
- Sada 4: comando Direita
- Sada 5: palavras que devem ser rejeitadas
Seus valores podem variar entre 1 e +1, sendo que +1 corresponde a
identificao e 1 a rejeio. Dessa forma, se dado um vetor de entrada, alguma das
sadas estiver prxima de +1, o sinal ser interpretado pela rede como sendo aquela
palavra. Exemplo:
PIC-EPUSP N2, 2004
1528
Sada 1: -0,87
Sada 2: -0,92
Sada 3: +0,91
Sada 4: -0,57
Sada 5: -0,77
Nesse caso, o sistema reconhecer a amostra testada como a palavra
correspondente sada 3, ou seja, o comando esquerda.
No entanto nem sempre a deciso ser to fcil quanto foi nesse exemplo. H por
exemplo casos em que nenhuma das amostras estar suficientemente prxima de +1
para que possamos afirmar que se trata, com certeza, de algum dos comandos pr-
definidos. Para isso foi estabelecido um limiar mnimo de aceitao, de +0,5, isto , se
nenhuma das sadas apresentar sada superior a esse valor, o sistema no reconhecer a
palavra e no executar nenhuma ao. Por outro lado, pode acontecer de que mais de
uma sada esteja prxima de +1. Nesse caso o sistema tambm no tomar nenhuma
ao.
Lembre-se de que, no RV-RN, para esses casos em que o sistema errou ou no foi
capaz de tomar uma deciso, o usurio pode ensin-lo, baseando-se em seu erro. Nas
prximas vezes que essas palavras forem ditas no haver mais problemas de
reconhecimento, pois o sistema efetivamente aprendeu a desempenhar o
reconhecimento da forma determinada pelos exemplos apresentados a ele.
Note que o nmero de entradas(Ne) geralmente maior que o nmero de
neurnios por camada (Nn). O compromisso entre esses nmeros muito importante,
pois por um lado podemos ter uma rede muito pequena que no capaz de realizar o
reconhecimento apropriadamente, e por outro podemos ter uma rede muito grande (com
nmero de neurnios por camada igual ao nmero de entradas) com tempos de
processamento e treinamento proibitivamente altos.
Alm disso, o nmero de entradas da rede tambm um parmetro a ser
otimizado. Pode-se preparar o sistema para trabalhar com qualquer nmero de entradas
para a rede neural. E novamente h aqui um compromisso entre tempo e qualidade de
processamento. Essa preocupao tambm existe no dimensionamento da rede, ao se
determinar o nmero de camadas. Um dos principais objetivos ao se desenvolver o
programa de redes neurais, portanto, foi justamente a questo de se obter bom
funcionamento e tempos aceitveis. O sistema como um todo deve ter tempo apropriado
de treinamento e de execuo, sem deixar de funcionar apropriadamente. Obviamente
impossvel dizer que o sistema foi otimizado, pois, por mais testes que se faa,
impossvel se prever como sero as amostras encontradas no futuro, e apenas pode ser
obtida uma otimizao para as amostras utilizadas nos testes, e no para amostras
genricas. No entanto, atravs de uma srie de testes chegamos a valores de parmetros
que apresentam um bom comportamento balanceado entre tempo e qualidade de
resultado, atendendo a nossas necessidades. Os valores dos parmetros utilizados no
sistema demonstrativo so mostrados abaixo. Os dados sobre confiabilidade do sistema
podem ser vistos no contedo desenvolvido pelo aluno Gabriel.
PIC-EPUSP N2, 2004
1529
3.3.4. O programa de Treinamento das Redes Neurais (TREINA)
durante a etapa de treinamento que as redes neurais assimilam a funcionalidade
que desejamos que tenha. Atravs da apresentao de amostras de voz e das sadas
esperadas, os pesos sinpticos so adaptados de modo que a rede execute a funo
desejada, ao menos para os conjuntos de entradas apresentados. A etapa de treinamento
, portanto, extremamente importante.
Foi utilizado o algoritmo de back error propagation, que amplamente utilizado
para redes MLP. Resumidamente, o algoritmo faz o seguinte:
- Aplica um dos conjuntos de treinamento rede,
- Compara sua sada a sada esperada, se no houve erro, no faz
nada e aplica a prxima entrada,
- Se houve erro, o mesmo propagado para trs, camada a camada
at a camada de entrada, atravs dos pesos sinpticos e utilizando-se a
derivada da funo de transferncia dos neurnios.
- O processo repetido, aplicando-se repetitivamente todo o
conjunto de treinamento, variando-se a ordem de aplicao das amostras.
- Quando parar? Quando a rede apresentar comportamento
apropriado para todos os conjuntos de entradas. O critrio de parada que o
erro em todas as sadas, para todos os conjuntos, deve ser inferior a um valor
pr-determinado empiricamente (Em)
- H outro critrio de parada: nmero de iteraes. Quando o
nmero de iteraes mximo (Nit) atingido, o treinamento interrompido
sem sucesso.
O conjunto de treinamento constitudo pelas amostras de voz gravadas para
ensinar a rede. a base de dados. Usualmente so gravadas duas amostras de cada
comando por cada usurio. No decorrer da utilizao do sistema RV-RN, o usurio
acrescenta novas amostras base de dados medida que a rede realiza erros de
reconhecimento. Quando a rede treinada so passados como parmetros todas as
amostras de treinamento e as respectivas sadas. Exemplo: se uma amostra corresponde
ao comando desce, a sada esperada passada para o programa de treinamento ser:
Sada 1: -1
Sada 2: +1
Sada 3: -1
Sada 4: -1
Sada 5: -1
O programa de Treinamento de Redes Neurais tambm totalmente flexvel. Pode
gerar qualquer estrutura de rede MLP, baseado ou no em uma rede j previamente
PIC-EPUSP N2, 2004
1530
existente. Ao se treinar uma nova rede neural, ou ao se re-treinar uma pr-existente,
deve-se definir os seguintes parmetros:
Parmetro Descrio Valor
utilizado
Ne Nmero de Entradas da rede neural 190
Ns Nmero de Sadas da rede 5
Nn Nmero de Neurnios por camada 40
Nc Nmero de Camadas da rede 4
Xt Vetores de entrada, conjuntos de
treinamento
-
Yt Sadas esperadas para cada um dos
vetores do conjunto de treinamento
-
Ks Constante da sigmide utilizada nos
neurnios
1
Ka Constante de aprendizado inicial 0,2
Em Erro mnimo aceito para trmino do
treinamento
0,1
Nit Nmero mximo de iteraes permitidas 1000
Wi Pesos Sinpticos da rede a ser re-treinada,
utilizado como valor inicial
-
Note que o treinamento uma etapa muito sutil e apresenta possibilidade de no
ser bem sucedido. Isto pode ocorrer caso as amostras de entrada (conjunto de
treinamento) sejam de baixa qualidade. O que seria baixa qualidade? Por exemplo, se
duas amostras da mesma palavra, do mesmo locutor, que devem ser interpretadas
igualmente pela rede, forem muito diferentes. Grandes diferenas de velocidade e
cadncia da pronncia, ou timbre ou ainda corte inapropriado na gravao podem
representar grandes obstculos ao algoritmo de treinamento, tornando-o muito extenso,
ou at impossvel.
Um fator muito importante a ser analisado nesse programa seu tempo de
execuo. Como j foi dito o treinamento a parte mais importante para a
implementao das redes neurais, e tambm a mais demorada. Alm disso, sensvel, e
algumas vezes no pode ser completado com sucesso dentro do nmero mximo de
iteraes permitido. Por outro lado, se o nmero de iteraes for aumentado, o tempo de
treinamento se torna excessivamente longo. Durante o desenvolvimento tomou-se
cuidado com relao a esse aspecto, e o resultado final em geral tem sido bom, com
altos ndices de treinamentos bem-sucedidos e com tempo aceitvel de execuo.
PIC-EPUSP N2, 2004
1531
Visando melhorar o tempo de execuo desse programa foi utilizado o recurso de
variao da constante de aprendizado (ka). A constante de aprendizado um valor
multiplicativo aplicado correo dos pesos sinpticos durante o treinamento. Quanto
maior for o seu valor, maior ser a variao dos pesos a cada iterao e maior a
velocidade do treinamento. Por outro lado, quanto menor for o seu valor, maior ser a
preciso do algoritmo e menor a velocidade de treinamento. H aqui um equilbrio entre
velocidade de treinamento e preciso. O recurso implementado visa obter o mximo dos
aspectos positivos de cada lado da balana, isto , obter velocidade e preciso. A
constante de aprendizado iniciada com um valor alto (ka) para que as etapas iniciais
do treinamento obtenham avanos significativos em direo ao resultado final, isto ,
para que a evoluo seja mais rpida. No entanto, no decorrer do treinamento, o valor da
constante reduzido, visando obter-se a preciso necessria ao final do processo. A
reduo de seu valor baseada na variao total de todos os pesos sinpticos entre uma
iterao e outra, portanto ela reflete qual o tipo de ao est sendo tomada na rede:
correo com altos valores ou correo com preciso.
No que tange ao tempo de execuo do programa de treinamento deve-se fazer
mais uma considerao: o sistema poderia apresentar performance significativamente
melhor caso fosse utilizada alguma linguagem compilada, por exemplo, linguagem C.
Note que isto foge ao escopo proposto pelo projeto. O programa de redes neurais
tambm poderia ter sua performance melhorada dessa forma, o que seria importante
caso se pensasse em uma aplicao de tempo real, que no o caso.
A adio de amostras base de dados da rede uma funcionalidade implementada
intrinsecamente no programa. Ao se adicionar uma nova palavra ao vocabulrio, basta
executar o treinamento da rede tendo como valores iniciais dos pesos sinpticos, os
valores previamente existentes. Pensou-se que isso poderia acarretar alguma espcie de
dificuldade, mas no houve motivos para preocupao.
3.3.5. O Software Demonstrativo
Tambm em Matlab foi desenvolvido um software para realizar a demonstrao
dos resultados obtidos com o sistema de reconhecimento
A partir da tela inicial pode-se:
- Abrir o mdulo de gravao
- Executar o treinamento da rede neural
- Abrir o mdulo de teste
- Resetar a base de dados do sistema
A plataforma de demonstrao constituda dos mdulos descritos a seguir.
3.3.5.1. Mdulo de Gravao
Nesse mdulo so gravadas as amostras de voz que do rede seu treinamento
inicial, ou seja, so gravados os conjuntos de treinamento iniciais. Pode-se criar novos
usurios e so gravadas amostras para os quatro comandos habilitados (sobe, desce,
PIC-EPUSP N2, 2004
1532
esquerda e direita, alm de palavras que devem ser rejeitadas). O usurio pode, a
qualquer momento, gravar amostras visando melhorar o desempenho da rede. H
tambm a possibilidade de se escutar as amostras existentes e apag-las, evitando que
amostras ruins faam parte da base de dados de treinamento do sistema.
3.3.5.2. Treinamento da Rede Neural
O usurio deve solicitar ao sistema que execute o treinamento da rede neural.
Nesta etapa o sistema efetivamente preparado para ser utilizado. O treinamento
realizado aplicando rede todas as amostras de voz existentes na sua base de dados.
3.3.5.3. Mdulo de Teste
Este mdulo constitui a demonstrao da utilizao do sistema em si. Nele o
usurio d comandos de voz e verifica o objeto se movendo na tela de acordo.
Caso o sistema cometa algum erro de reconhecimento, o usurio pode ensinar ao
sistema sobre seu prprio erro, clicando em erro.
Os sinais coloridos esquerda indicam como o foi o reconhecimento da amostra
recm-testada. Vermelho indica que o sistema no a reconheceu, ou seja, que nenhuma
sada superou o limite mnimo. Verde significa o oposto, isto , que o sistema
reconheceu. Amarelo significa indeciso, mais de uma sada est em alto.
3.3.5.4. Mdulo de Adaptao
Caso o sistema cometa algum erro de reconhecimento, isto , execute uma ao
no correspondente ao comando de voz, o usurio pode ensinar a rede, baseado no seu
erro, a no comet-lo novamente.
O que ocorre que a amostra de voz que resultou em erro de classificao ser
incorporada base de dados do sistema, com a semntica que for definida pelo usurio,
ou seja, a correta.
Neste mdulo o usurio ouve a palavra que est sendo incorporada para ter certeza
de que uma amostra vlida e seleciona a semntica correta.
3.4. Testes de Desempenho
Visando melhorar o desempenho do sistema apresentado nas primeiras anlises,
foi planejado uma bateria de testes de desempenho para avaliar:
- A eficincia do reconhecimento (acertos e erros)
- O comportamento do reconhecimento com a variao de parmetros
fundamentais da rede, como nmero de neurnios, nmero de camadas,
constante da sigmide e aprendizado.
O resultado dos testes foi utilizado para obter melhoras de desempenho e para
quantificar a eficcia do reconhecimento. Essa quantificao representada na forma de
uma matriz de confuso. A matriz de confuso traz informao tanto sobre o acerto
como sobre os erros cometidos no reconhecimento. Nesta matriz possvel encontrar,
PIC-EPUSP N2, 2004
1533
por exemplo, a porcentagem de acerto no reconhecimento da palavra desce. Tambm
possvel encontrar a porcentagem de vezes que desce foi reconhecida como
esquerda, por exemplo. Desta maneira a eficincia da rede fica bem caracterizada.
Para gerar estes resultados, foi elaborada uma rotina, tambm em Matlab, que
realiza uma srie de variaes nos parmetros (nmero de neurnios, nmero de
camadas, constante da sigmide e aprendizado) da rede e automaticamente treina a rede
com um certo nmero de amostras e depois executa o teste de reconhecimento. A rotina
recebe 5 amostras de 4 palavras: sobe, desce, esquerda e direita. Com estas
cinco amostras so feitas todas as combinaes possveis de 3 amostras distintas. Com 3
amostras de cada palavra a rotina treina a rede e com as outras duas restantes realiza o
teste de reconhecimento. A cada teste so registrados os parmetros da rede e o
resultado do reconhecimento.
Para melhorar ainda mais o resultado desta avaliao, a faixa de variao dos
parmetros foi bem larga, acarretando em extenso do tempo de processamento da
bateria de testes. Para cada conjunto de amostras (3 de cada palavra) a rede treinada
para toda faixa de variao dos parmetros. Isto interessante pois permitiu a avaliao
da influncia destes parmetros no desempenho do reconhecimento.
3.4.1. Matriz de Confuso
A matriz de confuso abaixo condensa o resultado dos testes e permite uma
avaliao do desempenho do sistema reconhecedor. A rede foi submetida a 240
amostras, sendo 30 de cada uma das palavras.
resultado
amostra
SOBE DESCE ESQUERDA DIREITA
SOBE 85% 0% 15% 0%
DESCE 0% 100% 0% 0%
ESQUERDA 0% 0% 80% 20%
DIREITA 0% 0% 10% 90%
4. Discusso
Diversas alternativas para a tarefa de reconhecimento de voz vm sendo
desenvolvidas. A implementao utilizando redes de neurnios artificiais mostrou ser
mais interessante pela analogia com um sistema biolgico, pela sua flexibilidade e por
que ainda possvel encontrar muitos estudos e desenvolvimentos atuais sobre este
tema. A medio de resultados como taxa de acerto, velocidade de reconhecimento e
tamanho do vocabulrio aceito podem ser usados na comparao entre este mtodo e
outros mtodos de reconhecimento de voz, porm, este no foi o objetivo deste projeto.
A extrao de parmetros busca enfatizar as caractersticas do sinal possibilitando
um trabalho mais eficaz do bloco reconhecedor. Alm do Modelo de Banco de Filtros
PIC-EPUSP N2, 2004
1534
utilizado neste projeto existem outros mtodos que desempenham esta funo. Durante
a etapa de escolha da melhor alternativa, tivemos contato com outras tcnicas como por
exemplo, extrao de parmetros baseada na FFT. O modelo de extrao de parmetros
por banco de filtros foi adotado pelos seus bons resultados, comprovados em outros
projetos publicados nesta rea, portanto, no houve necessidade de adoo de modelos
mais sofisticados.
Os resultados obtidos foram altamente satisfatrios e o sistema mostrou-se
robusto. O grau de desenvolvimento atingido permite uma expanso do sistema,
atribuindo feies comerciais. Este carter pode ser conseguido, por exemplo, por uma
implementao em hardware com funcionamento em tempo real.
5. Concluso
O projeto desenvolvido no pode ser resumido apenas ao demonstrativo
apresentado. Suas implicaes so muito mais abrangentes e tem atuao em diversas
reas. A maior contribuio deste sistema facilitar a execuo de atividades que
recebem comandos externos. Dentro desta abordagem enquadram-se o auxlio na
navegao em microcomputadores (navegao em menus, internet, alternncia entre
janelas, execuo de comandos padronizados como copiar e colar). Alm desta
aplicao pode ser implementado o acionamento de equipamentos (mquina de lavar,
microondas, TV) e controle de condies ambiente (temperatura, iluminao,
ventilao, abertura e fechamento de janelas).
Outra aplicao para o sistema a identificao de usurios em sistemas de
segurana, em que uma palavra gravada como senha.
A princpio todas as aplicaes apresentadas podem parecer simples comodidades
agregadas a tarefas comumente desempenhadas sem o uso da voz. No entanto, h
campos onde um sistema como este tem carter essencial. o caso de sistemas
adaptados a deficientes fsicos. Estes sistemas podem melhorar a qualidade de vida
destas pessoas uma vez que possibilitam acesso a recursos de microinformtica,
essenciais nos dias de hoje. Alm do auxlio de navegao podem ser implementados
sistemas que transcrevem a fala do locutor. Isto permite textos sejam redigidos por
pacientes com quadros de tetraplegia ou deficincias que impedem interao com o
teclado.
Agradecimentos
Ao Professor Emlio Del Moral Hernandez pela orientao e estmulo durante
todo o projeto.
Referncias Bibliogrficas
S. Haykin, Neural Networks: a Comprehensive Foundation
PIC-EPUSP N2, 2004
1535
L. R. Rabiner, R.W. Schafer, Digital Processing of Speech Recognition,
Englewood Cliffs, Prentice-Hall, 1978
B. Gold and N. Morgan, Speech and Audio Signal Processing, New York, John
Wiley & Sons, Inc., 2000
Flanagan, J.L., Speech Analysis: Synthesis and Perception (Springer-Verlag,
1972)
A. Biem, S. Katagiri: Filter bank desgn based on discriminative feature
extraction. In International Conference on Acoustics, Speech, and Signal Processing,
volume 1, pages 485-489, Apr. 1994.