Вы находитесь на странице: 1из 27

RECONHECEDOR DE VOZ VIA REDES NEURAIS

Daniel Richetti Lemos


1

Gabriel Junqueira Rodrigues
2

Emlio Del Moral Hernandez
3


Resumo
Este projeto prope uma soluo para a tarefa de reconhecimento de voz
utilizando redes neurais. A utilizao do modelo de neurnios artificiais resulta em um
sistema robusto com baixa taxa de erros de reconhecimento. A robustez do sistema
resultado da caracterstica intrnseca de adaptabilidade das redes neurais, tanto maior o
uso maior a robustez.
O projeto trabalha com um conjunto pr-definido de palavras e pode ser utilizado
para a realizao de comandos de voz em qualquer tipo de sistema, ou ainda, como
cadeado eletrnico via voz.
Palavras Chave: Redes Neurais; Reconhecimento de Voz; Classificao de
Padres; Processamento de Sinais de Voz; Banco de Filtros.

Abstract
This project propose a solution for the voice recognition task, utilizing neural
networks. The use of artificial neuron model results on a robust system with low miss-
recognition rates. The system robustness comes from the intrinsic adaptability
characteristic of the neural networks, the more the use the more the robustness.
The project works with a pre-defined set of words and it can be used to give voice
commands to any kind of system and also as an electronic lock.
Key words: Neural Networks; Voice Recognition; Pattern Recognition; Voice
Signal Processing; Filter Bank.

1. Introduo
A proposta do projeto foi realizar o reconhecimento de voz utilizando redes
neurais. Pode-se fazer uma analogia entre o sistema desenvolvido e o mecanismo de
interpretao de sons do corpo humano. Assim o projeto pode ser dividido em duas
partes: o crebro e o ouvido. O ouvido responsvel por captar sons e transform-los de
maneira adequada a facilitar o reconhecimento. O crebro o rgo que efetivamente

1
Aluno de graduao de Departamento de Sistemas Eletrnicos da EPUSP. Trabalho de Iniciao
Cientfica sem bolsa.
2
Aluno de graduao de Departamento de Sistemas Eletrnicos da EPUSP.
3
Professor do Departamento de Sistemas Eletrnicos da EPUSP.
PIC-EPUSP N2, 2004

1510
realiza o reconhecimento, aprendendo ao longo da vida como distinguir padres
diferentes.
O reconhecimento de voz no uma tarefa que pode ser facilmente implementada
computacionalmente. H um nmero muito grande de parmetros envolvidos em um
sinal de voz, por exemplo: timbre, cadncia, durao, volume alm de variaes
intencionais da pronncia. A mesma palavra nunca pronunciada exatamente igual duas
vezes. A variao existente entre duas amostras ainda maior entre locutores distintos.
Ento, quando os sinais de voz devem ser considerados iguais? O mecanismo utilizado
pelo crebro para transformar os impulsos neurais provocados pelo som em informaes
lingsticas no to claro. No se sabe de antemo quais so as variaes de
caractersticas aceitas, de modo que a palavra continue a ser igualmente interpretada. A
dificuldade de se realizar computacionalmente o reconhecimento reside no fato de ser
impossvel determinar claramente os critrios de distino de palavras.
As redes neurais so modelos computacionais que simulam o comportamento dos
neurnios biolgicos. Podem realizar diversos tipos de funes, e tm muito bom
desempenho na resoluo de problemas de classificao de padres, e problemas que
no apresentam definio rigorosa. Esse justamente o caso para o reconhecimento de
voz. As redes neurais aprendem a desempenhar a funo desejada atravs da
apresentao de exemplos. No necessrio, portanto, se descrever detalhadamente os
critrios que separam uma palavra da outra. O sistema se torna mais robusto quando
apresentado ao maior nmero de exemplos possvel, simulando o comportamento do
crebro.
Um modelo computacional de reconhecimento de voz pode ter diferentes
objetivos:
A - Identificao de palavras: a mesma palavra pronunciada por pessoas
diferentes deve ser tida como igual, ou seja, os padres a serem reconhecidos so
as palavras.
Aplicao possvel: sistemas em que diferentes usurios do os mesmos
comandos vocais.
Exemplos: acionamento de equipamentos, auxilio para navegao em
softwares para microcomputadores
B - Identificao de pessoas: h o reconhecimento da pessoa atravs da
pronncia de alguma palavra.
Aplicao possvel: sistemas de segurana
Exemplos: controle de acesso em ambientes ou sites da internet
C - Identificao de pessoa/palavra: Uma amostra s reconhecida
quando uma determinada pessoa pronuncia uma determinada palavra. a
implementao mais simples. Aplicao possvel: misto das anteriores, em
verses menos dinmicas.
Foi desenvolvido um software demonstrativo, RV-RN, que um exemplo de uma
aplicao prtica do sistema. Realiza o reconhecimento como descrito pelo tipo A,
PIC-EPUSP N2, 2004

1511
acima. Sua funcionalidade movimentar um objeto na tela segundo comandos de voz
de diferentes usurios. Os comandos so pr-definidos (sobe, desce, esquerda e
direita). O sistema de reconhecimento por redes neurais permite que quando o sistema
seja adaptado sempre que cometa erros de reconhecimento.

2. Materiais e Mtodos
O material utilizado para o desenvolvimento do projeto foi um microcomputador
equipado com alto-falantes, microfone e software MATLAB.
Com este equipamento foram colhidas amostras de voz de diversas pessoas. Aps
avaliao da qualidade destas amostras estas eram utilizadas no desenvolvimento e
testes de performance do sistema.

3. Resultados
O sistema reconhecedor dividido em trs etapas conforme o diagrama de blocos
abaixo. O detalhamento de cada etapa apresentado nos tpicos seguintes.
3.1. Pr-Processamento
Caractersticas do sinal de entrada que refletem o ambiente de gravao e o canal
de comunicao (assim como variaes no estilo da fala), normalmente, atrapalham a
tarefa do bloco reconhecedor. O sinal deve ento ser parcialmente limpo, para que
essas caractersticas sejam retiradas ou tenham sua influncia na caracterstica geral do
sinal, diminuda. A tarefa de retirada de fatores estranhos ao sinal feita por um estgio
anterior ao bloco reconhecedor, o pr-processamento. Se as condies do ambiente so
estacionrias ou suas variaes podem ser determinadas, as caractersticas indesejadas
podem ser removidas. Como mencionado na introduo deste documento, existe uma
analogia entre este estgio funcional do projeto e o sistema de audio humano (ouvidos
externo e mdio).
As funes que compe este bloco e suas estratgias de funcionamento sero
descritas adiante.
3.1.1. Metodologia
Caractersticas do sinal de voz original que normalmente prejudicam o
reconhecimento so causadas por variaes no ambiente de gravao como: rudos de
alta freqncia, variaes no distanciamento do microfone, variao do nvel de
amplitude, variaes de perodos de silncio (antes do incio do sinal e no seu fim).
Extrao
de
Parmetros
Reconhecedor
(Redes Neurais)
Sinal de
Entrada
Pr-Processamento
PIC-EPUSP N2, 2004

1512
Para anular a influncia destas variaes e facilitar o trabalho de reconhecimento,
foram desenvolvidas 3 funes: filtragem anti-rudos, retirada do nvel DC,
normalizao da amplitude e corte dos perodos de silncio no incio e fim do sinal
original. Estas funes, assim como o restante do sistema, foram desenvolvidas em
ambiente Matlab. O diagrama de blocos abaixo explicita a seqncia em que estas
funes ocorrem.
Para retirar os rudos de alta freqncia, eventualmente, originados pelo ambiente,
o sinal original filtrado por um filtro passa-baixas de dcima ordem e freqncia de
corte de 5kHz. Isto no prejudica de nenhuma forma o sinal original pois as
informaes mais relevantes carregadas por um sinal de voz esto na faixa de 200 a
5600Hz. Continuando a analogia com o sistema de audio humano, este bloco
desempenha a mesma funo do ouvido mdio, que atua como um filtro passa-baixas
com atenuao de 15 dB/oct acima de 1 kHz.










Muitas vezes os sinais de voz apresentam uma componente contnua e para que
uma comparao em valores absolutos possa ser realizada necessrio retirar esta
componente DC. A eliminao deste nvel coloca todos os sinais em relao a mesma
referncia. A funo que realiza isto, retiradc, calcula a mdia do sinal somando o
valor de amplitude de cada amostra do sinal e em seguida divide esta soma pelo nmero
de amostras do sinal. Uma vez calculada a mdia do sinal, ocorre um deslocamento em
relao a esta mdia, isto , o valor mdio calculado subtrado da amplitude de cada
amostra do sinal. Todos sinais de entrada do sistema so gravados com 10.000 amostras
a uma taxa de amostragem de 11.025Hz (taxa de amostragem padro do Matlab).
Para eliminar as que variaes de amplitude do sinal, geradas na gravao por
diferentes distanciamentos do microfone e diferentes intensidades de produo
necessrio normalizar o sinal com relao a sua amplitude. Dessa forma a amplitude dos
sinais fica limitada entre 1 e +1. Esta tarefa realizada dividindo o valor de cada
amostra do sinal pelo maior valor de amplitude do sinal. Esta estratgia mostrou-se mais
eficaz quando comparada, por exemplo, com normalizao logartmica ou pela mdia.
Filtro Passa-Baixa
5kHz
Retirada do Nvel
DC
Normalizao
da Amplitude
Deteco de
Incio e Fim
Sinal Original
E
n
t
r
a
d
a

d
o

B
a
n
c
o

d
e
F
i
l
t
r
o
s
PR-PROCESSAMENTO
Funes do Pr-Processamento
PIC-EPUSP N2, 2004

1513
Os perodos de silncio antes e aps o sinal, alm de no possurem nenhuma
informao valiosa para o reconhecimento, podem conter rudos, sinais indesejados e a
durao destes perodos pode ser muito varivel. Portanto, necessrio retirar estes
intervalos sem prejuzo para a parte que realmente contm informaes relevantes. Para
executar esta tarefa foi desenvolvida uma funo, corte, que elimina estes intervalos
de acordo com parmetros ajustveis. A funo corte recebe como entradas um valor
de limiar (vlim), um valor mdio de amplitude (vmlim) e um nmero de amostras (n).
Com estes dados a rotina procura a primeira amostra cujo valor de amplitude ultrapassa
o limiar indicado (esta procura parte do incio para o fim). Este valor de limiar
experimental e pode ser ajustado de acordo com o desempenho apresentado pela funo.
Aps localizada a amostra que ultrapassa o limiar, a rotina passa a calcular a mdia das
amplitudes das n amostras subseqentes at que este valor mdio ultrapasse o valor de
vmlim. Quando isso ocorre todas as amostras anteriores so descartadas. Esta estratgia
adotada para que a eliminao dos perodos sem informao seja otimizada, ou seja, se
fosse usado apenas o valor de limiar existiria uma possibilidade de um rudo ser
entendido como o incio do sinal, acarretando na permanncia de um perodo de
silncio. O mesmo mtodo utilizado para a retirada do final do sinal, aps o trmino
da fala do locutor. A rotina analisa o sinal de trs para frente, utilizando os mesmos
parmetros de entrada.
A seguir apresentamos, graficamente, os resultados do bloco de pr-
processamento. Atravs dos grficos apresentados ficam claras as alteraes causadas
por este bloco no sinal original e podemos verificar que o resultado esperado foi
atingido. Para esta simulao foi utilizada a palavra desce como sinal original.
PIC-EPUSP N2, 2004

1514

A plotagem do sinal com sua componente DC j retirada mostra o resultado da
funo de retirada do nvel DC. Como neste caso o deslocamento do sinal muito
pequeno, fica mais fcil observar o resultado da aplicao da funo quando reparamos
no deslocamento da componente de maior amplitude. Nas pginas seguintes pode-se
observar tambm o resultado da funo de normalizao da amplitude e em seguida o
resultado da deteco de incio e fim da palavra.
PIC-EPUSP N2, 2004

1515




PIC-EPUSP N2, 2004

1516


PIC-EPUSP N2, 2004

1517




PIC-EPUSP N2, 2004

1518
3.2. Extrao de Parmetros
Uma importante parte do processo de reconhecimento de voz diz respeito
escolha das caractersticas presentes em uma onda de voz que influenciaro a tomada de
deciso pelo reconhecedor. Caractersticas baseadas no espectro do sinal de voz tem
amplo uso em estruturas de reconhecimento de voz. Tcnicas baseadas em FFT tambm
tem servido para gerar padres de voz que podem ser classificados. Neste projeto esta
tarefa foi realizada por um modelo de Banco de Filtros. A extrao dos parmetros
fundamental para o sucesso do reconhecimento uma vez que permite a classificao de
padres atravs de algumas caractersticas do sinal.
No modelo de extrao de parmetros por banco de filtros, o sinal passado por
um conjunto de filtros passa-faixa. Este conjunto de filtros foi escolhido para cobrir a
faixa de freqncia mais importante em um sinal de voz, 50 4800Hz. Mais uma vez a
analogia com o sistema de audio humano foi importante, levando a uma distribuio
das faixas centrais dos filtros segundo a escala de Mel ou Bark.
3.2.1. Metodologia
Aps sucessivos testes, estudos e analises de desempenho das redes, determinou-
se o uso da energia do sinal como entrada do bloco reconhecedor. Para tal, o sinal de
sada de cada filtro do banco foi dividido em trechos menores e ento a energia de cada
um destes trechos foi calculada. Este mtodo permitiu a preservao da caracterstica
tempo-frequncia do sinal, que muito importante para a classificao dos padres.
O banco de filtros formado por 19 filtros passa-faixa com caractersticas de
banda de passagem e freqncia central projetadas segundo a escala de Mel ou Bark. A
escala de Bark vai de 1 at 24 Barks, correspondendo s primeiras 24 bandas crticas da
audio. Calculando-se os coeficientes de Mel pela aproximao apresentada a seguir
possvel chegar-se at a escala publicada por Bark, apresentada na tabela 1.

+ =
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.

Вам также может понравиться