RECONHECIMENTO DE COMANDOS DE VOZ NO ACIONAMENTO

Transcrição

RECONHECIMENTO DE COMANDOS DE VOZ NO ACIONAMENTO
Instituto Federal de Educação Ciência e Tecnologia do Espírito Santo
44
RECONHECIMENTO DE COMANDOS DE VOZ NO ACIONAMENTO
DE ELETRODOMÉSTICOS E EQUIPAMENTOS DOMICILARES
Guilherme Fachetti Bongiovani1, João Marques Salomão2
1
Ifes, Campus Vitória, Coordenadoria de Engenharia Elétrica - Avenida Vitória, 1729, Jucutuquara 29.040-780 - Vitória - ES - [email protected]
2
Ifes, Campus Vitória, Coordenadoria de Engenharia Elétrica - Avenida Vitória, 1729, Jucutuquara 29.040-780 - Vitória - ES - [email protected]
Resumo: Este trabalho apresenta um sistema automático básico de reconhecimento de comandos
de voz. O processo inicia-se com a captura dos sons através de microfones convencionais e, a partir
de então, várias técnicas de pré-processamento tais como, as transformadas de Fourier, e a
Codificação Preditiva Linear (LPC - Linear Predictive Coding) são empregadas. Na fase final, é usado
um classificador baseado em Redes Neurais Artificiais para realizar o comando de eletrodomésticos.
Palavras-chave: Redes Neurais Artificiais, Codificação Preditiva Linear (LPC), JavaNNS.
INTRODUÇÃO
No campo da inteligência artificial, RNA’s
são sistemas não-lineares que imitam o
mecanismo de processamento do cérebro
humano.
Elas
têm
aplicacões
no
reconhecimento de caracteres e de
imagens, reconhecimento e síntese de voz,
visão artificial, riscos de inadimplência,
previsão de vendas e previsão de séries
temporais [3, 4].
Para a implementação do sistema foram
utilizadas diversas ferramentas e ambientes
de desenvolvimento, entre eles, destacamos:
• O ambiente MATLAB (MATrix LABoratory)
é um software interativo de alta
performance voltado para o cálculo
numérico.
• A ferramenta JavaNNS (Java Neural
Network Simulator) é um simulador de
redes neurais baseado no Stuttgart Neural
Network Simulator (SNNS), com uma
interface gráfica de usuário escrita em Java
e fixada em cima dele.
Em termos gerais, inicialmente é feita a
captura dos comandos de voz através de
microfones convencionais e, a partir de então,
várias técnicas de pré-processamento tais
como, as transformadas de Fourier e a
Codificação Preditiva Linear (LPC - Linear
Predictive Coding) são empregadas. Na fase
final, é feito o uso de classificadores baseados
em Redes Neurais Artificiais para realizar o
comando de eletrodomésticos [2].
O reconhecimento de comandos de voz é um
campo de estudos nas áreas de tratamento de
sinais e reconhecimento de padrões que se
apresenta de forma bastante promissora no
auxílio aos comandos de equipamentos e
eletrodomésticos.
O sistema automático de reconhecimento de
padrões consiste, então, no armazenamento
em uma base de dados de treinamento de um
determinado número de exemplares daquelas
características para cada padrão associado,
bem como, de uma informação da sua
respectiva identidade ou classe. Os padrões
podem ser representados como um simples
vetor de características, um arquivo de áudio,
uma imagem ou como um conjunto delas em
uma seqüência de vídeo. Na fase atual das
pesquisas em reconhecimento de comandos
de voz, diversas técnicas e ferramentas de
extração e seleção de características, bem
como de reconhecimento de padrões são
avaliadas e aplicadas nas diversas etapas do
processo [1]. Entre as técnicas utilizadas na
extração e classificação das características
associadas com os comandos de voz,
destacamos o uso de:
• Codificação Preditiva Linear (LPC)
É o principal codificador paramétrico para a
voz humana. Ele faz o uso de
características de estacionaridade e
periodicidade para modelar um filtro de
síntese diferente para cada bloco de 10 ms
RESULTADOS E DISCUSSÃO
a 30 ms de duração. Ao invés de se ter que
enviar informações de cada amostra do
A captura das amostras de som foi feita
sinal, são enviados apenas alguns
através do gravador de som do Sistema
coeficientes. Ou seja, o LPC faz uma
Operacional Windows em arquivos em formato
espécie de compressão, diminuindo o sinal,
“wav”. Foram gravadas quarenta (40)
mas
mantendo
suas
principais
amostras de cada um dos vocábulos liga,
características.
desliga, abre e fecha (classes 1, 2, 3 e 4
respectivamente). As amostras foram salvas
• Rede Neural Artificial (RNA)
IV Jornada de Iniciação Científica do Ifes
II Jornada de Iniciação em Desenvolvimento Tecnológico e Inovação do Ifes
21-22/10/2009
Instituto Federal de Educação Ciência e Tecnologia do Espírito Santo
em vetores de dados de tamanhos variáveis,
que podem chegar a, aproximadamente,
45000 posições.
Exportamos o arquivo gerado para o MATLAB,
onde cada amostra gravada sofreu o processo
de Codificação Preditiva Linear. Foram, assim,
extraídos onze (11) parâmetros principais de
cada amostra. A este vetor de características
foi agregado o décimo segundo parâmetro
correspondente a classe a qual a amostra
pertence. Formamos então nossa base de
dados constituída de uma tabela de 160 linhas
e 12 colunas.
Empregamos a ferramenta NNTOOL do
MATLAB para gerar a RNA necessária ao
treinamento dos dados da tabela anterior. A
estrutura da rede informou quantos neurônios
seriam necessários: onze (11) neurônios de
entrada, quinze (15) ocultos e um (1) na
camada de saída.
Em seguida, um algoritmo foi criado no
MATLAB para o treinamento, teste e validação
de nossa RNA, na qual as amostras foram
classificadas de acordo com os seus
parâmetros específicos. Obtivemos uma taxa
de acertos de 95% com um classificador
baseado em uma rede neural artificial.
Na etapa final, os dados da tabela foram
exportados para o software JavaNNS que,
através de sua interface gráfica e da estrutura
obtida pelo NNTOOL, esquematizou a RNA
apresentada na Figura 1.
realizaremos testes, cujos resultados serão
expostos no relatório final.
CONCLUSÃO
Aplicamos o LPC com bons resultados e
montamos nossa base de dados. Então foi
criada a RNA no MATLAB que foi treinada,
testada e validada. Partimos então para o
JavaNNS que nos forneceu a RNA em
linguagem “C”, e foi exportada para o
LabWindows. Nesse software, entraremos
com o sinal de voz, capturado diretamente do
microfone e realizaremos todas as etapas
necessárias para comandar um dispositivo
eletrodoméstico através de comandos de voz.
Nosso resultado preliminar com taxas de
acertos de 95% pode ser considerado
satisfatório e promissor quando comparado
com aquele relatado em [5], que obteve uma
taxa de acertos de 90%.
Agradecimentos
Agradeço ao CNPq pelo apoio financeiro, ao
meu orientador João Marques Salomão pela
orientação no desenvolvimento do projeto, e
principalmente a Deus por ter me dado força
de vontade e paciência para realizar o projeto.
REFERÊNCIAS
[1]
DIAS, Raquel de Souza Ferreira,
Normalização de locutor em sistema de
reconhecimento de fala, Dissertação de
Mestrado, UNICAMP, Campinas, SP,
2000.
[2]
SALOMÃO,
João
Marques,
Implementação de Métodos Biométricos
Bi-modais Baseados na Fusão de
Características para Reconhecimento
de Indivíduos, Tese de Doutorado,
UFES, Vitória-ES, 2007.
HAYKIN, S. Neural Networks a
Comprehensive Foundation. Macmillam
College Publishing
Company, New
York, 1994, p. 236-281.
[3]
[4]
Figura 1 - RNA gerada no JavaNNS.
O JavaNNS também gerou o código de uma
função em linguagem “C” de nossa RNA.
Na fase atual estamos trabalhando na
programação em lionguagem “C” do software
LabWindows, onde implementaremos a função
gerada pelo JavaNNS, que é a nossa RNA, e
45
[5]
BISHOP C. M. Neural Networks for
Pattern Recognition. Oxford University
Press, 1995.
TEVAH,
Rafael
Teruszkin,
Implementação de um sistema de
reconhecimento de fala contínua com
amplo vocabulário para o português
brasileiro, Dissertação de Mestrado,
UFRJ, Rio de Janeiro, RJ, 2006.
IV Jornada de Iniciação Científica do Ifes
II Jornada de Iniciação em Desenvolvimento Tecnológico e Inovação do Ifes
21-22/10/2009