Você está na página 1de 40

UNIVERSIDADE FEDERAL DE SÃO JOÃO DEL REI

CAMPUS ALTO PARAOPEBA


DEPARTAMENTO DE TELECOMUNICAÇÕES

Adriano Carvalho da Silva

Franz Müller Eduardo Camilo

Thiago Vinícius Dantas Ferraz

RECONHECIMENTO DE FALA DEPENDENTE DE LOCUTOR


UTILIZANDO REDES NEURAIS ARTIFICIAIS

Trabalho de Contextualização e Integração Curricular II - TCIC II

Este relatório é apresentado como requisito


parcial para obtenção de aprovação na
disciplina de TCIC II pela Universidade
Federal de São João Del Rei.

Orientador: Prof. Dr. Gustavo Fernandes


Rodrigues

OURO BRANCO – MG

2013
RESUMO

A fala é o principal método de comunicação do homem. O tratamento do problema de


reconhecimento de fala é bastante complexo e desafiador, pois a maior dificuldade é
a sua natureza interdisciplinar. Além dessa, variabilidades acústicas, do transdutor,
interlocutor, entre outras estão relacionadas com o problema. Mas, em contra partida,
várias áreas podem ser beneficiadas com o uso desta técnica, tornando um campo
extremamente importante para ser pesquisado. Um dos principais algoritmos para o
desenvolvimento de um reconhecedor de fala é a Rede Neural Artificial, que tenta
realizar as funções do cérebro trazendo resultados satisfatórios nas realizações dos
testes.

Neste trabalho são apresentados os principais procedimentos que incluem o sinal de


pré-processamento, extração de parâmetros Mel-Cepstrais (MFCC) que disponibiliza
uma melhor aproximação das características do ouvido humano, implementação de
uma rede neural feedforward backpropagation usando totalmente o software de
simulação computacional, Matlab. Os resultados mostraram que o sistema funciona
bem e que pode ser melhorado considerando o aumento das amostras de treinamento
jogadas na rede neural. Uma melhoria significativa dos resultados do reconhecimento
poderia ocorrer caso a qualidade do método de gravação do áudio fosse melhor.

Palavras Chaves: Reconhecimento de fala, Redes Neurais, Mel-Cepstrais.

2
SUMÁRIO
CAPÍTULO 1
1 Introdução .............................................................................................................. 5
1.1 Descrição do problema ...................................................................................... 5
1.2 Aplicações do reconhecimento da fala ............................................................ 6
1.3 Descrição do trabalho ........................................................................................ 7

CAPÍTULO 2
Sistemas de reconhecimento de fala ...................................................................... 9
2.1 Breve Histórico ................................................................................................... 9
2.2 Tipos de reconhecimento de fala .................................................................... 10
2.3 O sistema de reconhecimento de fala ............................................................ 11

CAPÍTULO 3
Pré-processamento do sinal.................................................................................. 13
3.1 Captura da fala .................................................................................................. 13
3.2 Pré-processamento .......................................................................................... 14
3.3 Extração de características do sinal de fala .................................................. 15
3.3.1 Coeficientes Mel-Cepstrais (MFCC) ............................................................. 16

CAPÍTULO 4
Pós-processamento do sinal ................................................................................. 20
4.1 Redes Neurais Artificiais ................................................................................. 20
4.2 Neurônios Biológicos....................................................................................... 21
4.3 Modelo Artificial do Neurônio .......................................................................... 22
4.4 Arquitetura da Rede Neural ............................................................................. 23
4.4.1 Redes alimentadas adiante com única camada .......................................... 23
4.4.2 Redes alimentadas diretamente com múltiplas camadas .......................... 24
4.4.3 Redes Recorrentes ........................................................................................ 25
4.4.4 Redes Feedforward ....................................................................................... 26
4.5 Aprendizado ...................................................................................................... 27
4.6 Regra de aprendizado por retropropagação (Backpropagation) ................. 27

CAPÍTULO 5
Metodologia ............................................................................................................ 29
5.1. Banco de Dados .............................................................................................. 29
5.2. Extração dos Coeficientes Mel-Cepstrais ..................................................... 30
5.3. Análise do desvio-padrão dos coeficientes Mel-Cepstrais .......................... 32
5.4. Sistema de Reconhecimento .......................................................................... 35

CAPÍTULO 6
Resultados e Discussões ...................................................................................... 37
6.1 Resultados e Discussões ................................................................................ 37

CAPÍTULO 7
Considerações Finais ............................................................................................ 38
7.1 Conclusão ......................................................................................................... 38

8 Referências Bibliográficas.................................................................................. 39

4
CAPÍTULO 1
1 Introdução

A linguagem oral é o modo mais rápido e natural de comunicação do ser


humano [1]. Isto motiva o estudo de sistemas de reconhecimento e síntese de voz a
fim de se criar uma interface homem-máquina mais amigável e simples de usar a partir
da comunicação oral, permitindo assim o uso de computadores e outros aparelhos
eletrônicos por mais pessoas.

Em virtude desse fato, grandes esforços têm sido realizados para a obtenção
de sistemas capazes de entender de se comunicar através da fala. Deste modo
diversas técnicas têm sido desenvolvidas e aprimoradas com o objetivo de obter
melhores resultados nessa categoria de algoritmos. Com o progresso do poder de
processamento dos computadores e sistemas embarcados esta área cresce a cada
dia. Porém, apesar desses esforços, está longe de existir um sistema capaz de
compreender um discurso sobre qualquer assunto, falado de forma natural, por
qualquer pessoa, em qualquer ambiente.

Devido à maturidade e eficiência dos algoritmos e métodos de reconhecimento


de voz, o seu estudo tem importância também para outras áreas como biometria, visão
computacional e reconhecimento de padrões em geral.

1.1 Descrição do problema

O reconhecimento automático da fala funciona a partir da conversão de um


sinal acústico produzido pelo homem em um sinal digital de áudio através de um
hardware associado a um software que a partir de uma base de dados identificará o
conjunto de palavras faladas. As palavras reconhecidas podem ser o resultado final
do sistema como no caso de aplicações de comandos de controle ou servir de entrada
a outros sistemas.

Uma das maiores dificuldades da área de reconhecimento de voz é a sua


natureza interdisciplinar [2]. Dentre as áreas envolvidas estão processamento de
sinais, ciências da computação, reconhecimento de padrões, inteligência artificial,
neurofisiologia, linguística, teoria das comunicações, fonética articulatória e acústica.
Além disto, os sistemas de reconhecimento da fala, em geral, devem ser aptos a

5
funcionar em condições de ruído de fundo, o que exige um estudo de técnicas para
conseguir a robustez do sistema.

Tem-se observado nos últimos anos uma grande evolução na área de


reconhecimento de voz. Já existem sistemas bastante eficientes, entretanto nenhum
deles é independente de limitações e nem funcionam com uma taxa de 100% de
acerto. Dentre as razões para este significativo avanço podem ser citadas:
desenvolvimento de novas técnicas de processamento digital de sinais, a
disponibilidade de computadores rápidos e mais baratos, a instituição de padrões para
avaliação de desempenho e uma maturidade alcançada em algumas técnicas como
Modelos Ocultos de Markov (HMM), Modelos de Mistura Gaussiana (GMM) e Redes
Neurais Artificiais (RNA). As HMMs têm demonstrado melhores resultados em
aplicações dependentes de texto, enquanto que os GMMs e as RNAs têm melhores
resultados em aplicações independentes de texto [3].

Certamente, a variabilidade dos sinais de fala é o principal limitador de


desempenho dos sistemas de reconhecimento. Esta variabilidade se deve a diversos
fatores, dentre eles:

 A variabilidade dos sons para um único locutor e entre locutores diferentes;


 A variabilidade do transdutor e do canal, como microfones, telefones fixos e
celulares;
 A variabilidade do ruído de fundo gerado a partir de outras vozes, carros, ar-
condicionado, dentre outros;
 A variabilidade na produção da fala incluindo barulhos resultantes de
movimentos da boca, ruídos de respiração, hesitações ao falar, etc.

Em geral, estas fontes de variabilidade não podem ser eliminadas, devendo,


portanto, ser modeladas diretamente pela tecnologia de reconhecimento de fala.

1.2 Aplicações do reconhecimento da fala

Sistemas de reconhecimento de voz têm aplicações em diversas áreas. Na


realidade qualquer atividade que envolva interação humano-máquina pode
potencialmente utilizar estes sistemas. Atualmente várias aplicações já estão sendo

6
concebidas com um sistema de reconhecimento de fala incorporado. Dentre as áreas
mais comuns encontra-se:

 Sistemas de controle e comando: estes sistemas utilizam a fala para realizar


determinadas funções;
 Sistemas de telefonia: o usuário pode utilizar a voz para fazer uma chamada,
ao invés de discar o número;
 Sistemas de transcrição: textos falados pelo usuário podem ser transcritos
automaticamente por estes sistemas;
 Centrais de atendimento ao cliente: uma atendente virtual pode ser utilizada a
fim de realizar o atendimento ao cliente;
 Robótica: robôs podem se comunicar pela fala com seus donos. [4]

1.3 Descrição do trabalho

Dentro desse contexto, buscou-se neste trabalho, desenvolver e implementar


um sistema de reconhecimento de voz, utilizando o Matlab, que obtivesse uma alta
taxa de acerto, voltado para uma aplicação prática. A aplicação de reconhecimento
de palavras isoladas com vocabulário pequeno é a opção ideal para se iniciar estudos
nessa área, pois permite desenvolver a base de conhecimento necessária para se
trabalhar em aplicações mais complexas, como o reconhecimento de fala contínua,
além de ter muitas aplicações como em sistemas de controle de comando.

Desenvolveu-se então um sistema desse tipo baseado em Redes Neurais


utilizando a forma de aprendizagem supervisionada.

O trabalho está dividido em sete capítulos descritos a seguir.

O capítulo 2 tem por finalidade discorrer sobre o histórico e as características


mais comuns dos sistemas de reconhecimento de fala.

Apresentam-se no capítulo 3 as principais etapas do processamento inicial do


sinal de fala, o qual objetiva a extração de parâmetros do sinal capazes de diferenciar
de forma eficiente, os eventos da fala. A técnica de extração dos parâmetros para o
reconhecimento de fala usada, foi os coeficientes cepstrais baseados na escala de
frequências mel, sendo esta técnica a mais utilizada atualmente nos sistemas de

7
reconhecimento de fala, devido a sua boa adequação as características do trato vocal
humano.

No capítulo 4 é apresentada a teoria das Redes Neurais Artificiais juntamente


com aspectos relacionados com a implementação de um sistema de reconhecimento
de padrões baseado neste modelo.

O capítulo 5 apresenta as metodologias empregadas para o desenvolvimento


do sistema de reconhecimento de palavras isoladas baseado em RNA’s,
implementado totalmente no software computacional Matlab. O principal objetivo
deste capítulo é mostrar como a teoria básica apresentada nos capítulos anteriores
pode ser utilizada, de forma simples, para o desenvolvimento de um sistema de
reconhecimento de fala.

No capítulo 6 são apresentados e analisados os resultados obtidos nos


experimentos.

No capítulo 7 é apresentada uma conclusão a respeito do trabalho realizado e


possibilidades de trabalhos futuros que possam ter como ponto de partida os
resultados deste trabalho.

8
CAPÍTULO 2
Sistemas de reconhecimento de fala
Reconhecimento da fala consiste no processo de conversão de um sinal
acústico produzido pelo homem em um sinal digital de áudio através de um hardware
associado a um software que a partir de uma base de dados identificará o conjunto de
palavras faladas. As palavras reconhecidas podem ser o resultado final do sistema
como no caso de aplicações de comandos de controle ou servir de entrada a outros
sistemas.

2.1 Breve Histórico

O reconhecimento automático da fala tem sido objeto de estudo dos


pesquisadores por mais de quatro décadas e já tem sua importância e espaço
garantidos no mundo atual [2]. A literatura reporta que o primeiro estudo nesta
área foi realizado no ano de 1952, por pesquisadores dos laboratórios Bell, os
quais criaram o primeiro sistema de reconhecimento de dígitos isolados adaptado
para um único locutor. Este sistema era baseado nas medidas de ressonâncias
espectrais das vogais de cada dígito [13].

Nas décadas de 50 e 60, as principais estratégias de reconhecimento de voz


baseavam-se na segmentação do sinal acústico em fonemas (unidades básicas da
pronúncia), identificar os fonemas, baseados em análise espectral e transcrever o
fonema reconhecido. No final dos anos 60 pesquisadores do NTT Labs formularam
os conceitos da técnica Linear Predictive Coding (LPC), o que simplificou bastante a
análise de voz [14].

Em meados da década de 70, a técnica LPC foi introduzida no reconhecimento


da fala (até então só tinha sido utilizada na codificação), por Rabiner e Levinson,
Itakura e outros. Nesta época, o paradigma dominante para o reconhecimento da fala
com vocabulário pequeno era o Dynamic Time Warping (DTW), proposto por
Vintsyuk, como um método para calcular a similaridade entre duas sequências
temporais (e.g. sentenças faladas) [1]. Com a técnica DTW, bons resultados para
reconhecimento de palavras isoladas com vocabulário pequeno foram alcançados e
apareceram os primeiros sistemas de reconhecimento de voz comerciais.

9
Na década de 80 surgiram os métodos estatísticos para reconhecimento de
fala. O mais utilizado destes métodos é o baseado em Modelos Ocultos de
Markov (Hidden Markov Models ou HMM), cujo a teoria já era conhecida há vários
anos, porém ainda não tinha sido utilizada em reconhecimento de voz. HMM tornou-
se desde então a técnica mais utilizada no reconhecimento de fala. Ainda nesta
década foi introduzida a técnica de redes neurais para o reconhecimento de voz.

Da década de 90 aos dias atuais, os estudos estão mais voltados para o


reconhecimento de fala contínua irrestrita, com vocabulário ilimitado e independente do
locutor. A fim de alcançar este objetivo, muitas pesquisas buscam a resolução de
problemas como robustez ao ruído de fundo, adaptação ao locutor, diferença de
pronúncias, distorções introduzidas pelo canal de transmissão, como o telefone, etc.

2.2 Tipos de reconhecimento de fala

Um sistema de reconhecimento automático da fala pode ser


caracterizado de várias maneiras. As mais importantes são estão relacionadas ao
estilo de pronúncia que aceita, ao tamanho do vocabulário e à dependência ou
independência do locutor [10]. A precisão dos sistemas é fortemente
influenciada por estes fatores. As classificações dos sistemas quanto a estas
características encontram-se abaixo.

Quanto à dependência de locutor:

 Dependente de locutor: reconhece a fala das pessoas cujas vozes foram


utilizadas para treinar o sistema.

 Independente de locutor: reconhece a fala de qualquer pessoa com uma


taxa de acerto aceitável. Neste caso é necessário realizar o treino do
sistema com uma base que inclua diferentes pessoas com diferentes
idades, sexo, sotaques, etc.

Quanto ao tamanho do vocabulário:

 Vocabulário pequeno: reconhecem até 20 palavras.

 Vocabulário médio: reconhecem entre 20 e 100 palavras.

10
 Vocabulário grande: reconhecem entre 100 e 1000 palavras.

 Vocabulário muito grande: reconhecem mais de 1000 palavras.

Quanto ao modo de pronúncia:

 Reconhecedor de palavras isoladas: estes sistemas reconhecem


palavras faladas isoladamente, isto é, entre cada palavra deve existir
uma pausa mínima, para que seja detectado o início e o fim da mesma.
Estes sistemas são os mais simples de serem implementados.

 Reconhecedor de palavras conectadas: são sistemas um pouco mais


complexos que os de palavras isoladas e utilizam palavras como unidade
fonética padrão. São capazes de reconhecer sentenças completas
pronunciadas sem pausa entre as palavras, porém estas devem ser bem
pronunciadas.

 Reconhecedor de fala contínua: são capazes de reconhecer a fala na


comunicação natural, sem nenhuma particularidade quanto à pronúncia.
Estes sistemas são bastante complexos, pois precisam lidar com todas
as características e vícios da linguagem natural, como o sotaque, a
duração das palavras, a pronúncia descuidada, etc.[5]

2.3 O sistema de reconhecimento de fala

Um reconhecedor de voz tem como entrada um sinal de fala obtido a


partir de um transdutor. A partir dessa entrada é realizado um mapeamento a fim de
descobrir a palavra falada, ou seja, transcrever o que foi falado.

11
Na literatura é bastante comum representar o funcionamento de um sistema
de reconhecimento automático da fala através de um diagrama de blocos, o que facilita
o entendimento do mesmo, conforme mostra a figura 1:

Figura 1 - Sistema de reconhecimento típico

O sistema é dividido em quatro etapas, aquisição do sinal de voz, pré-


processamento, extração de informações e a última que pode ser a geração dos
padrões de voz, quando na fase de treinamento ou a classificação, quando na fase
de reconhecimento, que utiliza os padrões de voz gerados na fase de treinamento.

12
CAPÍTULO 3
Pré-processamento do sinal
O processamento do sinal da fala é a parte básica do sistema de
reconhecimento de voz, compreendendo desde a etapa de aquisição do sinal de voz
até a etapa de extração das características do sinal relevantes ao reconhecimento,
que servirão de entrada para a próxima etapa, onde é realizado de fato o
reconhecimento [5].

3.1 Captura da fala

O Audacity é um editor de áudio livre e fácil de usar, disponível para Windows,


Mac OS X e GNU/ Linux. Com ele é possível gravar sons e editá-los, alterando a
velocidade ou o timbre de uma gravação. Permite cortar, copiar e colar trechos do
próprio som ou de outras fontes, além de conter recursos para adição de efeitos.
Trabalha com formatos Ogg Vorbis, MP3 e WAV. O Audacity, como grande parte dos
aplicativos possui uma infinidade de ferramentas e utilizações. Desenvolvido por um
grupo de voluntários, este software não é livre somente no custo, mas oferece a
possibilidade de usá-lo, estudar seu funcionamento, aperfeiçoá-lo e compartilhá-lo
com outros. [12]

Figura 2 - Audacity: software de gravação e edição de áudio utilizado na construção do


banco de dados.

13
A primeira etapa consiste em realizar a aquisição do sinal de voz através da
conversão das ondas sonoras em sinais elétricos a partir de um transdutor (microfone)
[6]. A figura 3.1 ilustra o processo de aquisição de voz.

Sinais Software de
Transdutor elétricos
Voz Captura Sinal Digital
(Microfone)
(Analógicos) (Audacity)

Figura 3 – Diagrama de blocos do processo de aquisição de fala

A transdução do sinal da fala em modo acústico em sinal elétrico é necessária,


pois o microcomputador é um dispositivo eletrônico, ou seja, funciona mediante a
presença de sinais elétricos. Na fase de transdução os equipamentos mais
frequentemente utilizados são: microfones ou telefones, cujo objetivo consiste em
transformar um sinal acústico em um sinal elétrico.

3.2 Pré-processamento

O reconhecimento normalmente é atrapalhado por características que refletem


o ambiente de gravação e o canal de comunicação, como ruídos de alta frequência,
distância do microfone, períodos de silêncio, etc. Assim o sinal deve passar por um
pré-processamento a fim de deixar o sinal mais próximo da fala pura. A metodologia
a ser utilizada no pré-processamento pode ser vista no diagrama de blocos abaixo:

Pré-
processamento

Retirada do Normalização
Sinal Original
nível DC da Amplitude

Entrada para o Detecção de


Banco de Início e Fim da
Dados fala

Figura 4 - Diagrama de blocos do pré-processamento do sinal

14
Os sinais de voz apresentam, muitas vezes, uma componente contínua, o que
atrapalha a comparação em valores absolutos, sendo necessário então a retirada
desse nível DC, a fim de deixar todas as amostras oscilando em torno do valor zero.
Para realizar-se a retirada deste nível DC, calcula-se a média aritmética das
amplitudes do sinal, e depois se subtrai de cada amplitude esta média.

A normalização da amplitude diz respeito à altura do som. Este pré-


processamento do sinal faz com que todos os valores de amplitudes de todos os sinais
estejam na mesma faixa de valores, que no caso deste trabalho é a faixa entre -0.9 e
0.9. Isto garante que todos os sinais sejam processados igualmente com relação ao
volume da voz, ou seja, sons mais baixos e mais altos serão processados igualmente
no algoritmo de reconhecimento. Para a realização desta normalização dividiu-se o
valor de cada amostra do sinal pelo maior valor de amplitude do mesmo.

Por fim é realizada a detecção do início e fim da locução a fim de remover de


forma precisa os períodos de silêncio existentes antes e após o sinal que além de não
possuírem nenhuma informação relevante para o reconhecimento, podem conter
ruídos, sinais indesejados e a duração dos mesmos pode ser variável, dificultando
assim o reconhecimento. Esta detecção objetiva também a diminuir a carga
computacional e economizar tempo, visto que o mesmo não terá que processar
informações de trechos que não fazem parte da fala [7]. O extremo inicial é
determinado pelo primeiro quadro onde realmente se inicia a fala, por enquanto que o
extremo final é determinado pelo último quadro que ainda há fala. Neste trabalho foi
utilizado para remoção de silêncio o software utilizado para captura do áudio durante
todo o projeto, o Audacity. O algoritmo desse software é suficientemente robusto para
operar em ambientes com taxa sinal-ruído (SNR) de até 30 dB.

3.3 Extração de características do sinal de fala

A etapa de extração de informações é de fundamental importância para o


projeto de qualquer sistema de reconhecimento de fala, visto que o sinal digital possui
uma grande quantidade de dados e consequentemente a sua análise direta além de
exigir tempo e processamento consideráveis, provavelmente não apresentará
resultados expressivos. Certamente muitas informações existentes no sinal digital
puro são redundantes ou não possuem significância alguma para a distinção fonética.

15
Sendo assim o classificador empregado dificilmente conseguirá diferenciar amostras
de palavras distintas.

A ideia básica da extração de parâmetros é representar segmentos, fonemas


ou qualquer outra unidade de fala com o menor número possível de parâmetros, de
forma que estes contenham informações suficientes para caracterizar o sinal de fala.
Por melhor que seja o classificador, este não apresentará bons resultados se os
parâmetros utilizados durante o treinamento ou reconhecimento não contiverem
informações relevantes. Uma redução no volume de dados de forma a fornecer
apenas um conjunto pequeno de parâmetros, porém contendo informações suficientes
para a caracterização do sinal, viabilizará uma classificação robusta e confiável.

Os parâmetros tipicamente são obtidos a partir das seguintes técnicas de


análise espectral: a transformada rápida de Fourier (Fast Fourier Transform ou FFT),
os métodos de banco de filtros (Filter Bank), os de análise homomórfica ou análise
cepstral (mel-cepstrum) e os de codificação por predição linear (Linear Predictive
Coding ou LPC) [2, 8].

A técnica FFT, os métodos de banco de filtros e o LPC foram largamente


utilizados para a análise espectral da fala, no entanto, elas possuem algumas
restrições, sendo que a mais notável é a de não oferecer uma metodologia para a
separação do sinal de excitação da resposta impulsiva do trato vocal, a qual é
oferecida pela técnica de mel-cepstrum.

Os coeficientes mel-cepstrais (Mel-Frequency Cepstral Coefficients ou MFCC),


advindos desta técnica, são obtidos pela representação em frequência na escala mel
[2, 9], sendo considerada assim a técnica mais apropriada para ser utilizada no
processo de reconhecimento de voz. Devido a isto, atualmente os coeficientes MFCC
são os mais populares [10].

Com base nestas informações decidiu-se utilizar neste trabalho um modelo


baseado na técnica de análise cepstral.

3.3.1 Coeficientes Mel-Cepstrais (MFCC – Mel Frequency Cepstral Components)

Medidas Cepstrais fornecem informação a respeito do formato do espectro. Os


coeficientes cepstrais são calculados através da transformada de Fourier inversa do
logaritmo do espectro de potência do sinal. Conforme indicado na figura 4, a extração

16
deste parâmetro é feita, inicialmente, dividindo-se o sinal em quadros através do
janelamento, a seguir, a transformada discreta de Fourier (DFT – Discrete Fourier
Transform) é aplicada em cada janela. O logaritmo do espectro de amplitude é
calculado e mapeado para uma escala não-linear, a escala mel, que procura se
aproximar das características de sensitividade do ouvido humano. [11]

Transformada
Sinal Janelado Discreta de
Fourier

Log da Transformação
Amplitude de e Filtragem na
Espectro Escala Mel

Transformada
Discreta do MFCC's
Cosseno

Figura 5 - Fluxograma de extração dos MFCC's

Na escala Mel para cada tom com uma determinada frequência, medida em
Hz, associa-se um valor medido em mel, que é a unidade de frequência dessa escala.
Seja f uma frequência dada em Hz. O valor associado a essa frequência na escala
Mel é denotado por 𝑚𝑒𝑙(𝑓) e definido pela equação abaixo:

𝑓
𝑚𝑒𝑙(𝑓) = 𝑓𝑚𝑒𝑙 = 2595 log10 (1 + )
700

Nesta etapa realiza-se a extração dos coeficientes MFCC, que no caso deste
trabalho, será discutido capítulo 4.

Para obter os coeficientes MFCC, calcula-se o quadrado do módulo da FFT das


amostras pertencentes à janela em análise. Em seguida filtra-se esta janela por um
banco de filtros triangulares na escala Mel. Geralmente utiliza-se 20 filtros no formato
triangular passa-faixa, sendo 10 filtros uniformemente espaçados no eixo da
frequência até 1 kHz e acima de 1 kHz as faixas são distribuídas segundo uma escala
logarítmica. A figura 5 mostra um exemplo com 40 filtros. Este tipo de distribuição
simula o processo de audição humana.

17
Banco de Filtros MFCC

0.014

0.012

0.01
AMplitude

0.008

0.006

0.004

0.002

0
1000 2000 3000 4000 5000 6000
Frequência - Hz

Figura 6 - Banco de 40 filtros na escala Mel

Após o banco de filtros, calcula-se o logaritmo da magnitude na saída dos filtros,


a fim de obter os coeficientes cepstros. Posteriormente, calcula-se a transformada
discreta inversa de cosseno (Inverse Discrete Cosine Transform ou IDCT) sobre estes
valores, obtendo assim os coeficientes MFCC.

Os coeficientes MFCC são calculados a partir da seguinte equação:

𝑀
𝑖(𝑘 − 0.5)𝜋
𝑐(𝑖) = ∑(log(𝑋(𝑘)) cos ( )
𝑀
𝑘=1

onde:

 𝑖 representa o índice do coeficiente MFCC;


 𝑘 o índice do filtro;
 𝑀 o número total de filtros e
 𝑋(𝑘) a energia de saída do filtro 𝑘.

Em reconhecimento de voz normalmente são descartados alguns dos últimos


coeficientes MFCC, pois isto provoca uma suavização do sinal. Em geral são mantidos
menos de 15 coeficientes. O coeficiente 𝑐(0) é função da soma das energias de todos
os filtros e não costuma ser utilizado [16]. Com isto neste trabalho optou-se por utilizar
do coeficiente de índice 1 ao coeficiente de índice 12.

18
A primeira e a segunda derivada dos coeficientes mel-cepstrais são obtidos
pelas seguintes equações:

𝐾
𝑘𝑐𝑡−𝑘 (𝑖)
𝐷𝑐𝑡1 (𝑖) = ∑
2𝐾 + 1
𝑘=−𝐾
𝐾 1 (𝑖)
𝑘𝐷𝑐𝑡−𝑘
𝐷𝑐𝑡2 (𝑖) = ∑
2𝐾 + 1
𝑘=−𝐾

onde:

 𝑡 representa o índice do frame em análise;


 𝑖 o índice do coeficiente MFCC e
 𝐾 o número de frames.

A energia é calculada utilizando-se a equação abaixo:

𝑁−1

𝐸 = log (∑ 𝑥𝑡2 (𝑛))


𝑛=0

onde:

 𝑁 representa o número de amostras do frame em análise, cujo o índice é 𝑡 e


 𝑥𝑡 (𝑛) representa o sinal de voz janelado.

A primeira e a segunda derivada da energia são calculadas a partir das mesmas


equações de cálculo da primeira e segunda derivada dos coeficientes MFCC,
substituindo apenas o vetor de coeficientes 𝑐(𝑖) pela energia do frame. [5]

Os coeficientes MFCC e a energia e suas respectivas derivadas de primeira e


segunda ordem são obtidos a partir de cada janela, de modo que é gerado um vetor
de saída composto de 13 parâmetros para cada frame do sinal.

19
CAPÍTULO 4
Pós-processamento do sinal
4.1 Redes Neurais Artificiais

As redes neurais artificiais (RNA’s) são sistemas de computação adaptativos que


foram inspirados nos neurônios reais e nas características de suas interconexões. [15]

O estudo de RNA’s é baseado no comportamento das redes neurais biológicas.


O cérebro humano possui uma enorme capacidade de processar informações, exemplos:
reconhecimento de fala e a segmentação de imagens. A partir desta análise, pesquisas são
realizadas com o objetivo de reproduzir reações do cérebro em máquinas (rede neural),
tendo um resultado bastante promissor.

Basicamente, são sistemas paralelos de computação e suas implementações


podem ser em hardware (realizar tarefas a partir de componentes eletrônicos) ou em
software (simulações em um computador).

As redes neurais coletam, utilizam e armazenam informações baseadas em


experimentos (aprendizagem). A aprendizagem é feita a partir de algoritmos, onde os
pesos sinápticos da rede são modificados de uma forma ordenada para alcançar o
resultado desejado.

A partir da informação contida em pares de entradas e saídas, que estão em um


banco de dados, denotados por (𝑝1, 𝑡1), (𝑝2, 𝑡2) . . . (𝑝𝑞, 𝑡𝑞) (amostras de treinamento) as
redes neurais devem “aprender”, de forma a responder de forma adequada quando
entradas não presentes no conjunto de treinamento forem apresentadas à rede.

Isto é possível devido ao fato de que a formulação é baseada numa


representação (simplificada) de uma rede real de neurônios. Dessa forma, problemas
relacionados a reconhecimento de padrões podem ser solucionados através da
implementação e uso adequados desta técnica.

Algumas características importantes em uma rede neural artificial são:

 Robustez e tolerância a falhas: a eliminação de alguns neurônios não afeta


significativamente o seu desempenho geral.

20
 Flexibilidade: por meio de um processo de aprendizagem, pode ser ajustada a
novos ambientes, sendo capaz de aprender novas ações com base na informação
contida nos dados de treinamento.
 Processamento de informação incerta: mesmo que a informação fornecida esteja
incompleta ou afetada por ruído, ainda é possível obter-se um raciocínio correto.
 Paralelismo: um imenso número de neurônios está ativo ao mesmo tempo. Não
existe a restrição de um processador que obrigatoriamente trabalhe uma instrução
após outra.

A estrutura de uma rede neural possui habilidade de aprender. Portanto, sua


utilização oferece alguns benefícios:

 Capacidade de realizar mapeamentos não lineares entre entrada e saída;


 Adaptabilidade, mediante a um algoritmo de aprendizado;
 Tolerância à falhas;
 Uniformidade de análise e projeto;
 Analogia neurobiológica.

4.2 Neurônios Biológicos

Graças ao excelente trabalho pioneiro de Santiago Ramón y Cajál (1911) [15], o


esforço para entender o cérebro se tornou mais fácil. Ele introduziu a ideia dos neurônios
como constituintes estruturais do cérebro. Os neurônios biológicos são de cinco a seis
ordens de grandeza mais lentas que as portas lógicas em silício; as quais atuam na faixa de
nano segundos (10−9 𝑠).

Entretanto, o cérebro faz a compensação através de um número muito elevado


de neurônios (células nervosas), com conexões maciças entre si.

Estima-se que haja aproximadamente 10 bilhões de neurônios no córtex humano e


60 trilhões de sinapses ou conexões [16]. O cérebro humano, é constituído por estruturas,
neurônios, que interagem entre si, armazenando e tomando decisões adequadas a partir
das informações recebidas.

Um neurônio (figura 7) é composto por um corpo celular (ou soma), um axônio


tubular e várias ramificações arbóreas conhecidas como dendritos. Os dendritos (zonas
receptivas) formam uma malha de filamentos finíssimos ao redor do neurônio. Ao passo

21
que o axônio (linhas de transmissão) consta de um tubo longo e fino que ao final se divide
em ramos que terminam em pequenos bulbos que quase tocam os dendritos dos outros
neurônios. O pequeno espaço entre o fim do bulbo e o dendrito é conhecido como sinapse,
que tem como papel fundamental a memorização da informação. [17]

Figura 7 - Modelo de um neurônio biológico

4.3 Modelo Artificial do Neurônio

O neurônio artificial possui várias entradas, que correspondem às conexões


sinápticas com outras unidades similares a ele, e uma saída, em que o valor depende
diretamente da somatória ponderada de todas as saídas dos outros neurônios a esse
conectado.

O modelo artificial de neurônio é mostrado na figura 8 sendo uma generalização


do modelo de McCulloch e Pitts [18, 15]. Esse modelo inclui um sinal adicional bias
(𝑏) que favorece ou limita a possibilidade de ativação do neurônio. O processo sináptico
é representado pelos pesos (𝑊) que amplificam cada um dos sinais recebidos. A
chamada função de ativação (𝑓) faz a modelagem da forma como o neurônio responde
ao nível de excitação, limitando e definindo assim a saída da rede neural.

A função de ativação pode ter diferentes representações. Os três tipos básicos


de função de ativação são: limiar, linear e sigmoide. A escolha do tipo varia de acordo
com o objetivo do projeto [15].

22
Figura 8 - Modelo artificial de um neurônio biológico

4.4 Arquitetura da Rede Neural

As arquiteturas de uma rede neural são de diversas formas, dependem da


necessidade da aplicação, estando diretamente ligadas com o algoritmo de aprendizagem
usado para treinar a rede. Basicamente, os itens que compõem a estrutura de uma rede
neural estão sujeito a modificações, sendo os seguintes [15]:

 Algoritmo de aprendizado;
 Função de transferência;
 Quantidade de neurônios;
 Camadas intermediárias.

A forma pela qual os neurônios estão estruturados está intimamente ligada ao


algoritmo de aprendizagem. Pode-se, portanto, falar de algoritmos (regras) de
aprendizagem como sendo estruturados. Podemos classificar três tipos de arquiteturas de
rede fundamentalmente diferentes, como descritos a seguir.

4.4.1 Redes alimentadas adiante com única camada

Os neurônios estão organizados na forma de camadas (figura 9). O termo “única


camada” se refere à camada de saída de nós computacionais (neurônios).

23
Figura 9 - Redes alimentadas adiante com camada única.

4.4.2 Redes alimentadas diretamente com múltiplas camadas

Esse tipo de arquitetura se distingue pela presença de uma ou mais camadas ocultas (ou
intermediárias), cujos nós computacionais são chamados de neurônios ocultos ou unidades
ocultas. A função dos neurônios ocultos é intervir entre a entrada externa e a saída da
rede de uma maneira útil. Adicionando-se uma ou mais camadas ocultas, tornamos a rede
capaz de extrair estatísticas de ordem elevada.

Problemas que requerem duas camadas intermediárias são raros. Basicamente, uma
rede neural com duas camadas intermediárias é capaz de representar funções de qualquer
formato. Não existem razões na teoria e na prática para se utilizar mais que uma camada
intermediária.

Apesar de não interagirem com o ambiente externo, as camadas intermediárias


exercem enorme influência no funcionamento da rede.

Underfitting é o termo usado quando poucos neurônios não conseguem detectar


adequadamente os sinais em um conjunto complicado de dados. Overfitting é o termo usado
quando muitos neurônios a serem treinados por um número limitado de informação contida
no conjunto de dados. Neurônios em excesso podem fazer com que o treinamento não
termine adequadamente em tempo hábil.

24
Em relação ao números de neurônios que uma camada oculta deve possuir, existem
algumas regras clássicas que podem ser aplicadas na escolha, como:

 Entre o número de neurônios nas camadas de entrada e saída.


 2/3 do tamanho da camada de entrada, somado ao tamanho da camada de saída.
 Menor que duas vezes o tamanho da camada de entrada.

A Figura 10 mostra um exemplo de uma RNA de 2 camadas com 4 entradas e 2


saídas.

Figura 10 - Redes alimentadas diretamente com múltiplas camadas

4.4.3 Redes Recorrentes

Se distinguem das redes alimentadas adiante por terem pelo menos um laço de
realimentação, com a presença ou não de neurônios ocultos. A presença de laços de
realimentação tem um impacto profundo na capacidade de aprendizagem da rede e no seu
desempenho.

25
Figura 11 - Exemplo de uma rede neural recorrente

4.4.4 Redes Feedforward

Uma Rede Feedforward tem a tendência natural para armazenar


conhecimento experimental e torná-lo disponível para uso [15].

Cada camada se conecta à próxima camada, porém não há caminho de volta.


Todas as conexões portanto, têm a mesma direção, partindo da camada de entrada
rumo a camada de saída.

Figura 12 - Rede neural feedforward

26
4.5 Aprendizado

O aprendizado das redes neurais pode ser na forma supervisionada ou não


supervisionada.

No aprendizado supervisionado, o instrutor confere o quanto a rede está próxima


de uma solução aceitável, adaptando na concepção do treinamento os pesos entre os
neurônios, de modo a prover uma menor diferença entre as saídas desejadas.

No aprendizado não supervisionado, inicialmente, as saídas da rede não são


conhecidas, funcionando de modo a distinguir classes de padrões diferentes dos dados
apresentados à rede, através de algoritmos de aprendizado baseados geralmente em
conceitos de vizinhança e agrupamento. A rede é ajustada de acordo com as estatísticas
dos dados de entrada, de tal forma que ela cria categorias, otimizando em relação aos
parâmetros livres da rede uma medida da quantidade que é independente da tarefa a ser
executada.

4.6 Regra de aprendizado por retropropagação (Backpropagation)

Proposto em 1986 por Rumelhart, Hinton e Willian, o método backpropagation


é um procedimento de aprendizagem para redes feedforward de múltiplas
camadas. Basicamente o procedimento de aprendizagem utiliza vetores que
mapeiam um conjunto de entradas para um conjunto de saídas. [19]

Backpropagation é um método baseado no gradiente descendente, o que


significa que este algoritmo não garante encontrar um mínimo global e pode
estagnar em soluções de mínimos locais, onde ficaria preso indefinidamente.
Contudo, é muito popular e amplamente utilizado no treinamento de RNA’s.

O algoritmo Backpropagation procura achar iterativamente a mínima diferença


entre as saídas desejadas e as saídas obtidas pela rede neural, com o mínimo de erro.
Dessa forma, ajustando os pesos entre as camadas através da retropropagação do
erro encontrado em cada iteração [19, 15].

Essa regra é um dos tipos de treinamento supervisionado, onde a rede é


analisada em dois casos: na sua propagação (camada por camada) e principalmente,
na sua retropropagação (análise contrária à propagação), Backpropagation. No

27
primeiro, os pesos sinápticos 𝑊𝑗𝑖 (peso sináptico conectando a saída do neurônio 𝑖 à
entrada do neurônio 𝑗) da rede são todos fixos. No segundo, os pesos são todos
ajustados.

Um padrão de entrada é aplicado como um estímulo aos elementos da primeira


camada da rede, que é propagado por cada uma das outras camadas até que a saída
seja gerada 𝑎.

Ela é então comparada com a saída desejada 𝑎𝑑 (gerando um sinal de erro e


para cada elemento de saída). O sinal de erro é então retropropagado da camada de
saída para cada elemento da camada intermediária anterior que contribui diretamente
para a formação da saída.

Entretanto, cada elemento da camada intermediária recebe apenas uma porção


do sinal de erro total, proporcional apenas à contribuição relativa de cada elemento na
formação da saída original. Este processo se repete, camada por camada, até que
cada elemento da rede receba um sinal de erro que descreva sua contribuição relativa
para o erro total.

Com base no sinal de erro recebido, os pesos sinápticos são então atualizados
(de acordo com uma regra de correção de erro) para cada elemento de modo a fazer
a rede convergir para o valor de saída desejada 𝑎𝑑 . A ilustração do algoritmo
backpropagation pode ser verificada na figura 14.

Figura 13 - Ilustração do algoritmo backpropagation

28
CAPÍTULO 5
Metodologia

5.1. Banco de Dados

Para o desenvolvimento de um sistema de reconhecimento de fala através do


sinal de áudio, primeiramente foi necessária a criação de um banco de dados. Estes
dados compõem o conjunto amostral que estará no escopo de reconhecimento do
sistema desenvolvido. Para esta pesquisa, foram consideradas as gravações em
áudio das palavras que representam os números de 0 a 10. Foram realizadas 20
gravações de áudio para cada palavra, num total de 220 gravações. Na aplicação de
redes neurais artificiais é necessário um conjunto de dados, possibilitando treinar a
rede com eficiência e em seguida testá-la com um conjunto distinto de informação.

Utilizou-se o software Audacity para a criação deste banco de dados na


configuração mono, frequência de amostragem de 44.100Hz (qualidade de CD) e 16
bits. As gravações de áudio foram realizadas em sala fechada, mas sem isolamento
acústico, estando vulnerável a ruídos externos. Procurou-se evitar a saturação do
sinal dentro da faixa de amplitude de áudio trabalhada pelo software, através do
controle do volume da voz durante a gravação. O banco de dados com os arquivos de
áudio no formato WAV foi transformado numa matriz de dados conforme a estrutura
apresentada na figura 14. A partir desta matriz, os dados estavam preparados e
disponibilizados para as manipulações matemáticas necessárias para a criação da
rede neural artificial buscando o reconhecimento das falas.

Figura 14 - Estrutura do banco de dados

29
5.2. Extração dos Coeficientes Mel-Cepstrais

Na posse do banco de dados, buscou-se tratar as informações a fim de que na


aplicação final do sistema fosse usado o mínimo de dados possível. Cada vetor com
as informações numéricas de cada gravação continham em média 60.000 valores
amostrais do sinal de áudio. Se estes dados fossem aplicados à entrada da rede
neural artificial diretamente resultaria em um custo de processamento computacional
alto. Além do mais, nem todas as amostras oferecem uma contribuição significativa
no processo de reconhecimento.

Primeiramente, cada gravação de áudio foi reamostrada a uma taxa de 8000Hz,


proporcionando uma redução no volume de dados (figura 16). Em seguida, aplicou-se
uma normalização na amplitude das amostras de cada vetor de acordo com a maior
amplitude em módulo. As amostras de um mesmo áudio ficaram compreendidas num
intervalo entre -1 e +1 e a maior amostra em módulo assumiu o valor unitário (figura
17). Em seguida, todos os tamanhos dos vetores de áudio contidos no banco de dados
foram padronizados, tendo como referência o vetor da gravação mais longa. Os
espaços caracterizados pela diferença de tamanho entre o maior vetor e os demais
foram preenchidos por amostras nulas (figura 18). Após todas as 220 amostras
estarem normalizadas quanto às amplitudes e padronizadas no tamanho do vetor,
extraíram-se os coeficientes mel-cepstrais de todas as gravações. Estes coeficientes
são muito úteis no desenvolvimento de sistemas de reconhecimento de fala, pois
sintetizam as principais características que definem com clareza o sinal de áudio, com
a vantagem de um volume menor de informações.

Figura 15 - Sinal da gravação de áudio original da palavra "cinco", em 44100Hz

30
Figura 16 - Sinal da gravação de áudio da palavra "cinco", reamostrada em 8000Hz

Figura 17 - Sinal da gravação de áudio reamostrado da palavra “cinco” com a amplitude


normalizada. Observa-se que a maior amostra em módulo possui valor unitário depois da
normalização.

Figura 18 - Sinal da gravação de áudio reamostrado da palavra “cinco” com tamanho


padronizado de acordo com a maior gravação do banco de dados. Observa-se que o fim do
sinal foi completado com amostras nulas.

31
Todo este processo proporciona uma redução no volume de informação em
cerca de 95%. A matriz de dados inicial foi substituída por uma matriz de coeficientes
mel-ceptrais. Nesta pesquisa, a matriz de coeficientes mel-cepstrais continha a
configuração de 13 linhas e 183 colunas, num total de 2379 coeficientes por áudio. A
gravação de áudio da palavra “cinco” apresentada neste tópico na forma gráfica, por
exemplo, continha na sua forma original 50.176 amostras. No fim do processo descrito
a mesma assumiu o tamanho padrão de 2379 coeficientes. Dentre os valores obtidos,
alguns nulos devido à padronização do tamanho realizado no sinal de áudio.

Figura 19 - Coeficientes Mel-Cepstrais da gravação de áudio da palavra “cinco”.

5.3. Análise do desvio-padrão dos coeficientes Mel-Cepstrais

Tendo-se os coeficientes mel-cepstrais de todas as gravações de áudio, o


objetivo foi identificar as posições dos 20 coeficientes com menor desvio-padrão,
quando consideradas todas as gravações de uma mesma palavra. Desta forma, foram
identificados os coeficientes mais significativos para o processo de reconhecimento,
pois apresentavam um comportamento semelhante em gravações da mesma palavra.

A hipótese adotada foi de que as posições com menores desvios-padrão


representavam uma característica comum entre uma gravação e outra. Condição esta
que se faz necessária quando se utiliza redes neurais artificiais para reconhecimento.
Para haver comparação de dados e por fim o reconhecimento é necessário que os

32
dados utilizados tenham características comuns quando pertencerem ao mesmo
grupo.

Incialmente, calculou-se os desvios-padrão de cada coeficiente mel-cepstral de


acordo com a posição ocupada na matriz de coeficientes (neste caso, uma matriz
13x183). O cálculo do desvio-padrão considerou todas as 20 gravações de áudio de
cada palavra do banco de dados. O resultado final foi uma matriz de desvio-padrão
geral para cada uma das palavras, com a mesma dimensão da matriz de parâmetros
(13x183). Através desta matriz foi possível identificar qual a posição em que os
coeficientes mel-cepstrais menos variaram de uma gravação para outra.

A partir do conhecimento das posições que menos variaram de uma gravação


para outra, os coeficientes que ocupavam cada uma destas posições foram usados
para associar a gravação de áudio à palavra que o mesmo representava. Para
exemplificar, considerando a gravação de áudio da palavra “cinco”: os 20 menores
desvios-padrão e suas respectivas posições são apresentados na tabela 1. O vetor
que caracterizará as gravações da palavra “cinco” será composto pelos coeficientes
de cada uma das posições indicadas, ocupando a mesma ordem em todos os vetores
finais de representação das 20 gravações de áudio desta palavra.
Tabela 1 - 20 menores desvios-padrão dos coeficientes mel-cepstrais da palavra “cinco” e
suas respectivas posições.

Considerando 𝐶𝑀𝐶𝑛(𝑙𝑖𝑛ℎ𝑎, 𝑐𝑜𝑙𝑢𝑛𝑎) a matriz de coeficientes mel-cepstrais da


𝑛 − é𝑠𝑖𝑚𝑎 gravação de áudio da palavra “cinco”, o vetor final de representação que

33
caracterizou as 20 gravações de áudio correspondentes apresentavam a seguinte
configuração. As posições utilizadas são mostradas na tabela 1:

𝑉𝑒𝑡𝑜𝑟 𝑑𝑎 𝑔𝑟𝑎𝑣𝑎çã𝑜 1 = {𝐶𝑀𝐶1(9,79 𝐶𝑀𝐶1(2,1) 𝐶𝑀𝐶1(2,4) ⋯ 𝐶𝑀𝐶1(1,4)}


𝑉𝑒𝑡𝑜𝑟 𝑑𝑎 𝑔𝑟𝑎𝑣𝑎çã𝑜 2 = {𝐶𝑀𝐶2(9,79 𝐶𝑀𝐶3(2,1) 𝐶𝑀𝐶3(2,4) ⋯ 𝐶𝑀𝐶3(1,4)}

(𝑉𝑒𝑡𝑜𝑟 𝑑𝑎 𝑔𝑟𝑎𝑣𝑎çã𝑜 20 = {𝐶𝑀𝐶20(9,79 𝐶𝑀𝐶20(2,1) 𝐶𝑀𝐶20(2,4) ⋯ 𝐶𝑀𝐶20(1,4)} )

Estes vetores de dados foram aplicados como argumentos de entrada da RNA.


Observa-se a semelhança no comportamento dos vetores de representação final em
cada palavra, e a diferença de comportamento entre uma palavra e outra através das
figuras 20 e 21:

Figura 20 - Representação de três vetores finais da palavra “cinco”, preparados para serem
aplicados à entrada da RNA. É possível visualizar a semelhança de comportamento entre
eles.

Figura 21 - Representação de três vetores finais de representação da palavra “zero”.

34
5.4. Sistema de Reconhecimento

No sistema de reconhecimento de fala através dos sinais de áudio foi utilizada


uma RNA do tipo feedforward, testada para 144 configurações parametrais diferentes.
Na tabela 2, são apresentados os parâmetros utilizados:
Tabela 2- Parâmetros utilizados para configuração da RNA

O treino da RNA foi realizado conforme a estrutura apresentada na tabela 3,


onde cada palavra foi associada a um valor binário. O comportamento esperado da
RNA quando um vetor final de representação fosse aplicado à entrada da rede era de
que a saída resultante fosse o número binário relacionado à palavra.

Tabela 3 - Estrutura usada para aplicação dos dados de áudio à RNA. O argumento de
saída esperado representa o número binário corresponde a cada palavra em análise.

35
Os vetores de representação final de cada palavra foram divididos em dois
grupos: 10 para a etapa de treino da RNA e 10 para a etapa de teste. Na saída da
RNA, foi adotado um processo de normalização, já que os valores de saída eram reais
e a referência estava na forma binária. O valor de limiar escolhido foi de 0,5, sendo os
valores maiores que o limiar considerados bit 1 e os valores menores considerados
bit 0. A taxa de acerto foi calculada segundo o resultado desta normalização na saída
da rede. Para o cálculo da taxa de acerto da rede foram realizadas 20 interações para
cada configuração da RNA em análise.

36
CAPÍTULO 6
Resultados e Discussões

6.1 Resultados e Discussões

O sistema de reconhecimento de fala através de sinais de áudio desenvolvido


neste projeto apresentou resultados satisfatórios, atestando a eficácia dos métodos
utilizados. As configurações da RNA mais eficientes apresentaram resultados
próximos a 90% de acerto. Alguns fatores observados e que influenciam diretamente
este tipo de reconhecedor envolve a qualidade do áudio coletado. Gravações que
apresentaram amplitude muito próxima do fim da escala, além de maior presença de
ruídos, influenciaram no desempenho do reconhecedor durante os experimentos com
taxas de acerto em torno de 50% apenas.

Tabela 4 - Configurações da RNA que possibilitaram as 5 melhores taxas de


reconhecimento de fala, de acordo com a estrutura de rede utilizada.

Tabela 5 - Taxa de acerto da RNA através da aplicação dos mesmos dados usados para
treino. Esta taxa pode variar entre 0 e 1.

Tabela 6 - Taxa de acerto de teste da RNA através da aplicação dos dados de teste.

37
CAPÍTULO 7
Considerações Finais

7.1 Conclusão

Em tempos de grande impacto da cultura da globalização, são exigidos dos


sistemas de telecomunicações mais eficiência e recursos que deem melhor suporte a
rotina das pessoas em todos os âmbitos, seja na execução do trabalho, na recepção
de serviços ou mesmo nas atividades recreativas. Neste cenário, podemos perceber
quão comum se torna a aplicação de sistemas de reconhecimento de fala que podem,
por exemplo, agilizar o atendimento aos clientes via telefone ou mesmo numa
interação homem-máquina em diversas áreas. Através dos métodos utilizados neste
projeto, percebeu-se a disponibilidade de inúmeras ferramentas como as redes
neurais artificiais, a teoria de processamento de sinais envolvendo os coeficientes
mel-cepstrais e inúmeras manipulações matemáticas, que tornam possível o sistema
de reconhecimento conforme os resultados alcançados.

38
8 Referências Bibliográficas
[1] Rabiner, L. R., Juang B. H. Automatic speech recognition - a brief history of the
technology development, Elsevier Encyclopedia of Language and Linguistics, 2005.

[2] Rabiner, L. R., Juang B. H. Fundamentals of speech recognition. Prentice Hall,


1993.

[3] MAFRA, A. T. Reconhecimento automático de locutor em modo independente de


texto por Self-Organizing Maps. Dissertação de mestrado. USP, SP, 2002.

[4] Xue, Xiaoguo. Joint Speech and Speaker Recognition Using Neural Networks,
2013.

[5] Silva, G., Anderson. Reconhecimento de Voz para Palavras Isoladas. Dissertação
de graduação. UFP, Recife, 2009.

[6] Petry, A. Reconhecimento Automático de Locutor Utilizando medidas de


invariantes dinâmicas não-lineares. Tese de doutorado. UFRS, 2002.

[7] Chu, W. C. Speech coding algorithms. Wiley-Interscience, 2003.

[8] Rabiner, L. R., Schafer, R.W. Digital processing of speech signals. Prentice Hall,
1978.

[9] Deller, J. R., Proakis, J. G., Hansen, J. H. L. Discrete-time processing of speech


signals. Macmillan Publishing Company, New York, 1993.

[10] Bourouba, E-H., Bedda, M., Djemili, R. Isolated Words Recognition System Based
on Hybrid Approach DTW/GHMM. Informatica, An International Journal of Computing
and Informatics, Vol. 30, Number 3, pp. 373-384, 2006.

[11] Lopes, Juliana. Souza, Yure. Estudo da Relevância das Características num
Sistema Neural de Classificação do Gênero Musical. 10th Brazilian Congresso on
Computational Intelligence, Brazil, 2011.

[12] Audacity. Disponível em: http://audacity.sourceforge.net/. Acesso: 28 de agosto,


2013.

39
[13] Davis, K. H., Biddulph, R., Balashek, S. Automatic recognition of spoken digits.
The Journal of the Acoustical Society of America, 1952.

[14] Itakura, F., Saito, S., A Statistical Method for Estimation of Speech Spectral
Density and Formant Frequencies, Electronics and Communications in Japan, Vol.
53A, pp. 36-43, 1970.

[15] S. Haykin, Neural Networks: a comprehensive foundation. New York: MacMillan


College Publishing Co., 1999.

[16] G. Shepherd, The synaptic organization of the brain. New York: Oxford University
Press, 2003.

[17] M. Roberts, “Schizophrenia daily news blog: New neurobiology knowledge may
lead to schizophrenia research and treatments,” Disponível em:
http://www.schizophrenia.com/sznews/archives/005490.html, 20-08-2013.

40