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