• Nenhum resultado encontrado

SESAME: SISTEMA DE RECONHECIMENTO DE COMANDOS DE VOZ UTILIZANDO PDS E RNA

N/A
N/A
Protected

Academic year: 2021

Share "SESAME: SISTEMA DE RECONHECIMENTO DE COMANDOS DE VOZ UTILIZANDO PDS E RNA"

Copied!
8
0
0

Texto

(1)

SESAME:SISTEMADERECONHECIMENTODECOMANDOSDEVOZUTILIZANDOPDSERNA

SERGIO A. CARDOSO, JOSÉ E. C. CASTANHO, MARCELO N. FRANCHIN, IVO R. FONTES

Faculdade de Engenharia de Bauru, UNESP - Univ. Estadual Paulista, Departamento de Engenharia Elétrica, Av Eng. Luiz Edmundo C. Coube, 14-01, C.P. 473, 17033-360

E-mails: sergioac@lpnet.com.br, castanho@feb.unesp.br, franchin@feb.unesp.br, ivo@feb.unesp.br

Abstract The automatic speech recognition systems have wide range of applications, as in telephony, robotics, automation and human computer interface. The purpose of these systems is to identify the message contained in the human speech, and so, to start an action previously programmed, like speech-to-text transcriptions, to control devices or for language translation. This work describes the developing of the Sesame system which is an automatic speech recognition system based on artificial neural network. The neural networks are suitable to problems like automatic speech recognition, allowing efficient design. The system is capable of recognizing uttered isolated words and speaker-dependent with a six word set, useful to control the movements of a robot. The implementation described in this paper was carried out using a set containing a board with the DSP BF533, and a conditioning circuit, demonstrating that the adopted design approach has potential for being used in embedded applications. The paper also describes the development process that was made using the VisualDSP++, to implement the pre-processing step and the NN recognition module, and the Matlab to evaluate the algorithms and to train the neural network. Results of tests are pre-sented and compared to references.

Keywords Automatic speech recognition, Artificial neural network, Digital signal processing, BF533, Embedded systems. Resumo Os sistemas de reconhecimento automático de voz têm possibilidades de aplicações diversas, como em telefonia, ro-bótica, automação e interface para computador. O objetivo desses sistemas é reconhecer a mensagem contida na fala humana, e proceder a uma ação previamente programada, que pode ser a transcrição de um texto, acionamento de dispositivos ou tradução de línguas. Neste trabalho é apresentado o desenvolvimento do sistema Sesame, para reconhecimento automático de voz utili-zando uma rede neural artificial. As redes neurais se adaptam bem a problemas como o reconhecimento de voz, e permitem um projeto relativamente simples. O sistema apresenta a capacidade de identificar palavras pronunciadas de forma isolada e depen-dente do locutor, com vocabulário de seis palavras, destinado à aplicação em robótica. A implementação do sistema apresenta como particularidade a utilização de um processador digital de sinais, BF533, e um condicionador de sinais, demonstrando que a abordagem de projeto adotada apresenta potencial de utilização em sistemas embarcados. O processo de desenvolvimento do software utilizou o VisualDSP ++, para implementar as etapas de pré-processamento e reconhecimento, e o Matlab, para testar os algoritmos e treinar a rede neural. Resultados dos testes são apresentados e avaliados.

Palavras-chave Reconhecimento automático de voz, Redes neurais artificiais, Processamento digital de sinais, Sistemas embarcados.

1 Introdução

Os sistemas de reconhecimento automático de voz (RAV ou ASR – Automatic Speech Recognition) têm várias aplicações práticas, como acionamentos de dispositivos em automóveis, atendimento telefôni-co para solicitação de serviços, programas utilitários em computadores, brinquedos e celulares. Têm tam-bém possibilidades de aplicações em robótica (Kubik e Sugisaka, 2001) e automação hospitalar (Ben, 2006). O objetivo desses sistemas é reconhecer a mensagem contida na fala humana, e proceder a uma ação previamente programada, que pode ser a trans-crição de um texto, acionamento de dispositivos ou tradução de línguas.

O uso de reconhecedores de voz tornou-se uma op-ção com vantagens significativas, por liberar o uso das mãos e não exigir espaço em aparelhos controla-dores na forma de botões.

Com a utilização de técnicas de processamento digi-tal de sinais (PDS) e redes neurais artificiais (RNA), é possível a implementação de um sistema de reco-nhecimento automático de voz eficiente, dentro de

restrições bem definidas de operação e implementa-ção.

As técnicas mais utilizadas para o reconhecimento de voz são as redes neurais artificiais, o modelo oculto de Markov (HMM), o modelo híbrido e por áudio-visual. As redes neurais lidam melhor com padrões estáticos, permitindo que uma palavra inteira possa ser reconhecida de forma simples e direta (Bourlard & Morgan, 1994).

Um projeto, que tem por objetivo o reconhecimento de comandos feitos por palavras isoladas e com vo-cabulário pequeno, pode beneficiar-se pelo uso das redes neurais, pelo seu bom desempenho e simplici-dade de implementação nesse tipo de aplicação, di-minuindo o tempo de desenvolvimento e permitindo a implementação em hardware limitado. Este tipo de abordagem é necessário, por exemplo, em sistemas embarcados.

Este trabalho apresenta um sistema de reconhecimen-to aureconhecimen-tomático de voz usando redes neurais artificiais. O sistema apresenta capacidade de identificar pala-vras pronunciadas de forma isolada e dependente do locutor, com um pequeno vocabulário, destinada à aplicação em robótica e sistemas embarcados com

(2)

limitada capacidade de processamento, através de comandos simples.

O software tem como principais componentes um módulo para a obtenção e geração de características a partir do sinal de voz digitalizado, denominado de “Geravet”, e outro módulo para o reconhecimento dos padrões, chamado de “Sesame”. Para suportar o software da rede neural, desenvolvido em linguagem C, foi utilizada a placa de desenvolvimento EZ-KIT Lite com o processador digital de sinais BF533, que demonstra a possibilidade de aplicação em sistemas embarcados.

Na próxima seção é feita uma revisão dos conceitos associados ao reconhecimento de voz. Na sequência é apresentado o sistema desenvolvido com a descri-ção de métodos utilizados, e finalmente, os resultados obtidos.

2 Reconhecimento automático de voz

A voz humana é percebida como variações da pressão sonora, e deve ser convertida em sinal elétri-co por meio de um transdutor eletroacústielétri-co, elétri-como o microfone. Após passar por um circuito condiciona-dor, que garante nível e cortes de frequências ade-quados, o sinal é convertido de analógico para digital por um conversor A/D.

A variação temporal das amostras não é a informação de onde se interpreta o que foi falado. O sinal assim obtido é transformado para o domínio da frequência. Furui (2001) justifica o emprego desse domínio por-que a informação está principalmente contida no es-pectro de frequências.

A fig. 1 mostra um modelo para reconhecimento de padrão de voz. A partir de um sinal de voz, devem ser extraídos os parâmetros essenciais que represen-tem a informação, realizada pelo bloco de medida de parâmetro. Esse bloco fornecerá uma saída, um vetor de características, que será comparado com padrões previamente armazenados. Com esse resultado, será tomada a decisão para identificar a mensagem conti-da na voz (Rabiner & Biing-hwang, 1993).

Figura 1 – Reconhecimento (Rabiner & Biing-hwang, 1993). Antes de realizar a transformação para o domínio da frequência, o sinal amostrado e discretizado da voz passa por três processos básicos (Rabiner & Biing-hwang, 1993):

1 – Pré-ênfase: O sinal tem as frequências mais altas reforçadas ao passar por um filtro FIR de primeira ordem, conforme equação (1):

0 , 1 9 , 0 ; 1 ) (z = −az−1 ≤aH (1)

2 – Divisão em quadros: O sinal é dividido em quadros sucessivamente. Cada quadro é compos-to por N amostras, que será processado individual-mente. A cada número M de amostras, é tomado um novo quadro. Em geral, M é menor que N, o que resulta em uma sobreposição de quadros, garantindo a detecção de variações do sinal observado.

3 – Janelamento: Cada quadro é multipli-cado por uma função window, para reduzir os níveis nas primeiras e últimas amostras, minimizando as descontinuidades que geram distorções espectrais.

2.1 Detecção da palavra (início/fim)

A detecção de palavra separa o sinal correspon-dente à voz de ruídos de fundo e períodos de silêncio. De acordo com Bechetti e Ricotti (1999), um detec-tor baseado em energia pode ser utilizado em ambi-entes em que a relação sinal-ruído não se altere signi-ficativamente.

2.2 Modelos de extração de características

Há várias formas de representar a informação da voz. A seguir, temos três modelos para essa represen-tação.

O LPC é um modelo de codificação por predição linear que fornece coeficientes lineares que predizem o comportamento futuro do sinal. Em Vaseghi (2006), são citados os usos para esse modelo em re-conhecimento de voz. Também são mostradas as formas de calcular o LPC usando o algoritmo de Lvinson-Durbin. O modelo é dado pela relação da e-quação (2), em que o valor futuro x’(m) é predito a partir de valores passados de x(m-k).

) ( ) 2 ( ) 1 ( ) ( ) `( 1 2 1xm axm axm P a k m x a m x p P k k − = − + − + + − =

= L (2)

Ao se tomar a resposta em frequência A(f) dos coefi-cientes a(k), temos a resposta do sinal excitador que contém a informação da fala (Vaseghi, 2006). O modelo Cepstral é definido como a transformada inversa de Fourier do logaritmo do espectro do sinal x(n) (Bechetti & Ricotti, 1999).

{

log

(

)

}

)

`(

n

F

1

X

e

jw

x

=

− (3)

Furui (2001) mostra a obtenção de coeficientes ceps-trais, a partir dos coeficientes LPC, por meio de um algoritmo recursivo de transformação.

O terceiro modelo de extração de características é o banco de filtros. Esse modelo constitui-se de vários filtros de formato triangular passa banda, próximos um do outro, cobrindo a faixa de frequências perce-Voz

Medida de parâmetro

Padrões de referência Comparação com padrão

(3)

bidas pelo ouvido. Rabiner & Biin-Hwang (1993) apresenta um banco de filtros seguindo a escala mel.

2.3 Reconhecimento

A forma mais simples de realizar reconhecimento de voz é transformar o padrão temporal da voz em espa-cial, através de um buffer. Colocando-se uma palavra inteira na entrada de uma rede de perceptrons multi-camadas, pode-se efetuar diretamente o reconheci-mento (Bourlard & Morgan, 1994).

Tebelskis (1995)testou redes neurais para ASR com-parando o reconhecimento entre palavras inteiras e fonemas, constatando que as redes funcionam melhor na condição estática, ao reconhecer palavras inteiras. Pelos testes, verificou que o uso de função de transfe-rência sigmoidal e de tangente hiperbólica é melhor e mais eficiente que função linear, acelerando o trei-namento e a aprendizagem.

3 Desenvolvimento

3.1 Materiais

O projeto empregou o módulo EZ-KIT Lite, que é uma placa de desenvolvimento com o microproces-sador ADSP-BF533 que possui arquitetura Harvard modificada. O módulo possui também 64MB de me-mória SDRAM, um CODEC (AD1836) de áudio com amostragem até 96KHz, LEDs e chaves para comu-nicação com o usuário e porta USB (Analog Devi-ces, 2006). A placa EZ-KIT Lite é interligada com o microcomputador, com o ambiente de mento VisualDSP++, onde é possível o desenvolvi-mento de projetos utilizando linguagem de progra-mação C, C++ e Assembly. Para testes e treinamento das redes neurais foi utilizado o software Matlab.

3.2 Definição do sistema

Para implementar um sistema ASR, foram ado-tadas as seguintes restrições:

Vocabulário: pequeno, com seis palavras -Direita, Esquerda, Rápido, Devagar, Vai e Pá-ra.

Formato da fala: palavra isolada.

Grau de dependência do locutor: dependente do locutor

Ruído ambiente: moderado, com SNR maior que 10dB.

O projeto foi dividido em dois sistemas, um de trei-namento e outro de reconhecimento. O primeiro sis-tema consiste no microfone, condicionador, extrator de características e o ambiente MatLab com as suas ferramentas para redes neurais. O extrator de caracte-rísticas é implementado pelo programa em linguagem C “Geravet”, executado pelo BF533.

O segundo sistema é constituído pelos mesmos mi-crofone e condicionador, e ainda pelo extrator de características e o reconhecedor de comandos, ambos funcionando na placa de PDS. Esse sistema foi im-plementado em linguagem C no programa “Sesame”. Para identificar a saída, foram utilizados os leds dis-poníveis na placa do EZ-KIT Lite.

3.3 Condicionador

O circuito condicionador de sinais possui um estágio de amplificação do sinal, e dois filtros butterworth de 2ª ordem. O primeiro é um filtro passa altas com fre-quência de corte em 62 Hz, e o segundo, um filtro passa baixas, com frequência de corte em 6 KHz.

3.4 Extrator de Características

Neste bloco, é realizada a extração das caracte-rísticas de cada palavra captada pelo microfone. A informação é obtida a uma taxa de amostragem de 48KHz e 32 bits de resolução. Foram experimentados dois modelos de extrator de características: Extração de coeficientes Cepstrais (modo CEPSTRAL) e FFT com banco de filtros (modo BFILTROS).

No modo CEPSTRAL, os dados amostrados são re-duzidos a um conjunto de 600 coeficientes cepstrais, que correspondem a 2.400 bytes. No modo BFILTROS (FFT), os dados são reduzidos a um con-junto de 400 valores de magnitude, que correspon-dem a 1.600 bytes. O fluxo do sinal pelo sistema ex-trator de características pode ser visto na figura 2 e cada um dos blocos apresentados é descrito na se-quência.

Figura 2 – Fluxo do sinal pelo extrator de características. Conversão analógico / digital: A conversão analó-gico / digital é feita pelo Codec AD1836 com fre-quência de amostragem de 48kHz. A cada conversão completada, o DMA gera uma interrupção e transfere o dado para um buffer, no formato de 24 bits. Com o dado disponível no programa principal, ele é

reduzi-Modo CEPSTRAL Conversão Analógico/Digital Limiar de Voz Endpoint Pré-ênfase Divisão de Quadros Hamming Window LPC Cepstral Modo BFILTROS FFT Banco de filtros Decimação Normalização

(4)

do para uma resolução de 16 bits. A frequência de amostragem também é afetada, com a realização da operação Decimação, reduzindo-a para a metade. Limiar de Voz:O programa só irá realizar o proces-samento do sinal (x(n)), se o mesmo for identificado como voz, determinado pelo cálculo do limiar de voz. Quando o programa é iniciado, obtém-se primei-ramente uma amostra da referência de silêncio, que é um cálculo dado pela equação (4) , da energia E con-tida em um trecho do sinal amostrado sem voz.

=

=

N n

n

x

n

x

N

E

0

)

(

)

(

1

(4)

Esse valor servirá para o cálculo do limiar de voz, que foi estabelecido empiricamente a 4 vezes a refe-rência de silêncio, indicado na equação (5).

LimiarVoz = 4 x ReferênciaSilêncio (5) Normalização: A normalização é realizada para manter uma amplitude constante do sinal x(n), tor-nando-o insensível à intensidade do sinal captado pelo microfone. O bloco Normalização estipula o nível do sinal x(n) dentro do intervalo [-1, 1]. Endpoint: Este bloco procura o final do sinal, inici-ando a busca a partir do final da conversão em dire-ção ao seu início. O algoritmo calcula a energia em cada trecho, até encontrar um que contenha energia E igual ou maior que o limiar de voz, previamente cal-culado, determinando neste ponto o tamanho real do sinal de voz.

Pré-ênfase: É feita uma pré-ênfase de acordo com a função de filtro FIR passa-alta (Bechetti & Ricotti, 1999). da SinalEntra z o SinalFiltr =(1−0,95 −1) (6) Divisão dos Quadros: No modo Cepstral, o sinal é dividido em 50 quadros com duração de 512 amos-tras para cada quadro, e no modo Bfiltros o sinal é dividido em 20 quadros com 500 amostras em cada quadro. Esses valores foram escolhidos para permitir que haja sobreposição dos quadros dentro dos limites da duração do sinal de voz.

Mesmo com a variação na duração do tempo da pala-vra, o tamanho do vetor da informação de saída é constante. Isso foi alcançado através da variação da superposição dos quadros. Uma palavra mais extensa, com maior duração, gera uma sobreposição menor, e uma palavra mais curta gera sobreposição maior. O método também foi empregado por Martins (1997). As figuras 3 e 4 mostram um exemplo da pronúncia da palavra “direita” no modo Bfiltros, que trabalha com 20 quadros. Na fig. 3, a pronúncia é feita mais rápida, o que acarretou em uma sobreposição maior

dos quadros. Já na fig. 4, a mesma palavra é dita mais lentamente, levando a uma sobreposição menor.

0 2000 4000 6000 8000 10000 12000 1 2 3 4 19 20

...

Sinal: 6.585 amostras

Intervalo entre os quadros: 320 amostras

Figura 3 – Palavra “direita”, pronunciada rapidamente.

0 2000 4000 6000 8000 10000 12000 1 2 3 4 19 20

...

Sinal: 9.336 amostras

Intervalo entre os quadros: 465 amostras

Figura 4 – Palavra “direita”, pronunciada lentamente. O intervalo dos quadros é calculado de acordo com a duração do sinal ts: ) 1 /( ) ( − − = t t Quadros M s q (7)

Onde M é o número de amostras que separa os pon-tos iniciais de cada quadro, ts o número de amostras

do sinal, tq o número de amostras de um quadro e Quadros é a quantidade de quadros desejados. Para o exemplo da figura 3, M=320.

A variável M tem o formato de número inteiro, o que pode levar a um erro de truncamento, calculado pela equação (8).

)

)

1

(

(

q s

M

Quadros

t

t

Erro

=

×

+

(8)

Por exemplo, na figura 3, o Erro = 5 amostras. Isso significa que as 5 amostras finais do sinal foram des-cartadas, o que corresponde a um tempo de 0,4 ms. No modo Cepstral, a palavra deve ter a sua duração dentro do intervalo 23ms < ts < 1s, com M = [1, 479]. No modo Bfiltros, a palavra deve limitar sua duração em 43ms < ts < 832ms, com M =[1, 499].

Hamming Window: Neste bloco o sinal é multipli-cado escalarmente pelo vetor previamente calculado do janelamento de Hamming.

Autocorrelação e LPC: Obtém-se um vetor de au-tocorrelação RL, realizada no sinal após o janelamen-to (Hamming Window). O vejanelamen-tor RL possui valores de autocorrelação até a ordem p. Esse vetor é necessário para calcular os coeficientes LPC até a ordem p=12 para cada um dos 50 quadros, resultando em uma matriz de dimensão 12x50. Foi utilizado o algoritmo

(5)

de Levinson-Durbin para obtê-los, conforme mostra-do por Rabiner & Biing-Hwang (1993).

Cepstral: Neste bloco os coeficientes cepstrais são obtidos iterativamente a partir dos coeficientes LPC, conforme mostrado por Rabiner & Biing-Hwang (1993). Os coeficientes cepstrais também são repre-sentados por uma matriz 12x50, que representa 600 entradas para a rede de perceptrons multi camadas. FFT: A transformada rápida de Fourier (FFT) é apli-cada ao sinal, quadro por quadro, utilizando 256 pon-tos, e considerando frequência de amostragem de 12KHz. A resolução em frequência é 46,9 Hz. Banco de filtros: Foi utilizado um banco com 20 filtros seguindo a escala Mel. O banco gera uma res-posta para cada um dos 20 quadros do sinal de fala, gerando uma matriz de dimensão 20x20 para cada palavra, que representa 400 entradas para a rede de perceptrons de multi camada.O formato dos filtros adotado é triangular, com aumento da banda passante de acordo com o aumento das frequências centrais. Foi adotado o modelo de banco de filtros sugerido por Rabiner & Biing-Hwang (1993). Os valores estão na tabela 1. As frequências central, de corte inferior e superior foram indicadas por Fc Fci e Fcs.

Tabela 1 – Frequências no modelo de banco de filtros. Filtro Fc (Hz) Fci (Hz) Fcs (Hz) 1 50 - 100 2 150 100 200 3 250 200 300 4 350 300 400 5 450 400 510 6 570 510 630 7 700 630 770 8 840 770 920 9 1K 920 1,08K 10 1,17K 1,08K 1,27K 11 1,37K 1,27K 1,48K 12 1,6K 1,48K 1,72K 13 1,85K 1,72K 2K 14 2,15K 2K 2,32K 15 2,5K 2,32K 2,7K 16 2,9K 2,7K 3,15K 17 3,4K 3,15K 3,7K 18 4K 3,7K 4,4K 19 4,8K 4,4K 5,3K 20 5,8K 5,3K 6K

Para exemplificar o processo de filtragem, considere-se o filtro número 9, F9, que corresponde à

frequên-cia central de 1KHz. As frequênfrequên-cias envolvidas na operação, já aproximadas para os valores discretos mais próximos, são 936Hz, 983Hz, e 1030Hz.

) 1030 ( 65 , 0 ) 983 ( 83 , 0 ) 936 ( 3 , 0 9 F F F F = + + (9)

Os coeficientes (0.3, 0.83 e 0.65) na equação (9) fo-ram obtidos conforme um formato triangular de

fil-tragem, e dessa forma obtém-se o valor ponderado para o filtro número 9.

3.5 Treinamento da rede neural MLP

O treinamento da rede neural foi realizado no a-plicativo Matlab, utilizando as funções de seu Tool-box para redes neurais. Os dados de entrada da rede foram obtidos dos valores gerados pelo pré-processamento para cada palavra no programa Gera-vet. Para o modo de pré-processamento cepstral fo-ram utilizadas 40 amostras para cada uma das pala-vras. Para o modo de pré-processamento banco de filtros, foram utilizadas 80 amostras para cada uma das palavras. Cada amostra foi pronunciada individu-almente no microfone, pelo mesmo locutor em três seções em dias e horários diferentes, para cada modo de pré-processamento.

Das amostras obtidas, metade foi separada para trei-namento, e a outra metade foi reservada para teste. Foram realizados testes de treinamento para os dois modos de pré-processamento, cepstral e Bfiltros, utilizando rede de perceptrons multi-camadas. Para a sua estrutura, foi estabelecida uma rede com uma camada oculta, e uma camada de saída com seis neu-rônios, com função de ativação sigmóide utilizando tangente hiperbólica, e erro de 1e-03. Foi adotada uma metodologia de ensaios simulados no Matlab para definir a estrutura da rede. Dessa forma, para o modo cepstral foram agrupados ensaios com 10 e 20 amostras da metade dedicada ao treinamento da rede. Em cada grupo foram definidas redes de 5 a 30 neu-rônios. Foram, então, testadas configurações diferen-tes, variando o número de amostras de treinamento (10 e 20) de entrada e a quantidade de neurônios na camada oculta. Para o modo banco de filtros, o nú-mero de neurônios da camada oculta variou de 2 a 8. Para cada ensaio, foram medidos os acertos para pa-lavras pertencentes ao vocabulário, e para papa-lavras de “ruído”, que são definidas como aquelas que não pertencem ao vocabulário escolhido.

O algoritmo desenvolvido no Matlab toma a saída da rede e a converte para um valor de grau de certeza “ident”, dentro de uma escala normalizada no inter-valo [0,1]. O grau de certeza ident = 0 equivale a nenhuma chance da palavra observada corresponder à palavra do vocabulário testada, e o valor 1 equivale a 100% de certeza de palavra reconhecida.

Foram estabelecidas as seguintes heurísticas para o reconhecimento correto de uma observação:

1 – A palavra observada deve estar na faixa: 1

8 ,

0 ≤ident≤ para uma palavra semelhante do vo-cabulário.

2 – Não pode haver nenhuma outra palavra com ident maior.

3 – Quanto às palavras de “ruído”, será con-siderado reconhecimento correto se o valor ident for inferior a 0,8 para todas as palavras testadas do vo-cabulário.

(6)

Foram realizadas , para cada ensaio, 400 simulações com 400 diferentes conjuntos de pesos iniciais da rede de perceptrons de multi camadas, e foi selecio-nada aquela de melhor convergência, medida pelo índice de acertos global.

3. 6 Reconhecimento dos comandos vocais

A tabela 2 indica os tamanhos finais das redes neurais para testes.

Tabela 2 – Dimensões das redes neurais artificiais. Cepstral Banco de Filtros Quantidade de entradas 600 400

Neurônios ocultos 15 4

Neurônios de saídas 6 6

O programa fonte, ao ser compilado no Visu-alDSP++, carrega os dados da rede em um vetor, de acordo com o modo especificado. Seu algoritmo está no quadro 1.

Quadro 1 - Algoritmo do programa Sesame 1 – Inicialização de variáveis:

Vetor com pesos do banco de filtros.

Vetor com weights e bias das camadas de neurônios. Vetor da janela de Hamming.

Vetor de coeficientes para FFT de 256 pontos. Modo de pré-processamento (Cepstral ou Bfiltros). 2 – Inicialização dos periféricos do processador BF533: Registradores de configuração do sistema.

Memória SDRAM externa. Codec.

DMA.

3 – Calcula variáveis do ambiente Nível de ruído.

Estabelece limiar que separa ruído de voz. 4 – Converte sinal de voz em vetor de características Aguarda sinal de voz.

Diminui resolução de 24 para 16 bits. Normaliza a amplitude.

Decimação.

Determina tamanho da palavra.

Reforça frequências mais altas com filtro FIR.

Se for modo Cepstral, calcula coeficientes cepstrais por meio de LPC.

Se for modo Bfiltros, utiliza FFT e banco de filtros.

5 - Aplicar as características do sinal de voz na entrada da rede neural.

6 – Identificar comando pela interpretação da saída da rede de neurônios.

7 – Visualização do resultado: Acende Led 1 se comando = “Direita” Acende Led 2 se comando = “Esquerda” Acende Led 3 se comando = “Rápido” Acende Led 4 se comando = “Devagar” Acende Led 5 se comando = “Vai” Acende Led 6 se comando = “Pára” Fim

4 Resultados e Discussão

Os resultados para o teste de reconhecimento estão separados para os dois modos, com e sem “ruí-do”. A figura 5 mostra o sinal obtido para a palavra

“direita”, após a quantização feita pelo banco de fil-tros. 5 10 15 20 850 650 450 250 50 0 0.02 0.04 0.06 Tempo (quadros) Frequência (Hz) 4.1 Treinamento

As redes neurais foram avaliadas por meio de simulações no ambiente do Matlab para os dois mo-dos de pré-processamento, em situações com quanti-dades diferentes de amostras e neurônios. Foram utilizadas palavras denominadas “ruído”, que corres-pondem a palavras que não pertencem ao vocabulá-rio.

4.2 Modo cepstral

Foram realizados testes simulados no Matlab com 10 e 20 amostras para treinamento e número de neurônios variando de 5 a 30. As tabelas 3 e 4 indi-cam os resultados.

Tabela 3 – Acertos somente com palavras do vocabulário . Neurônios na

camada oculta

Número de amostras para cada palavra (sem ruído) 10 20 5 82,5% 92,5% 10 83,3% 95,8% 15 87,5% 99,2% 20 87,5% 98,3% 30 87,5% 98,3%

Tabela 4 – Acertos com palavras do vocabulário + “ruídos”. Neurônios na

camada oculta

Número de amostras para cada palavra (com ruído) 10 20 5 80,0% 81,4% 10 77,1% 90,0% 15 84,3% 95,7% 20 81,4% 96,4% 30 87,1% 91,4%

Menor número de amostras e poucos neurônios signi-ficam pior precisão. O aumento para 30 neurônios não trouxe melhoria significativa para a rede. Consi-derando apenas as palavras do vocabulário, o melhor

Figura 5 – Características de amplitude obtidas pelo Banco de filtros para a palavra “direita”.

(7)

índice foi de 20 amostras e 15 neurônios com 99,2 % de acerto.

4.3 Modo banco de filtros

Foram realizados testes variando-se o número de amostras para treinamento e os neurônios na camada oculta no ambiente Matlab. As tabelas 5 e 6 mostram os resultados em porcentagem de acertos.

Tabela 5 – Acertos somente com palavras do vocabulário. Neurônios na

camada oculta

Número de amostras de treinamento para cada palavra (sem ruído)

10 20 30 40 2 80,0% 84,2% 84,2% 87,9% 3 88,7% 92,5% 97,5% 97,5% 4 91,2% 97,1% 92,9% 97,1% 5 90,4% 95,4% 95,0% 97,1% 6 92,9% 95,8% 97,5% 98,3% 7 94,8% 93,7% 98,3% 97,1% 8 91,2% 92,9% 98,3% 97,5%

Tabela 6 – Acertos com palavras do vocabulário + “ruído”. Neurônios na

camada oculta

Número de amostras de treinamento para cada palavra (com ruído)

10 20 30 40 2 72,1% 81,4% 81,8% 85,4% 3 84,6% 89,6% 91,8% 92,1% 4 88,2% 94,6% 92,9% 94,6% 5 87,9% 93,9% 94,3% 95,7% 6 89,3% 92,9% 95,0% 94,4% 7 92,1% 92,5% 95,4% 96,1% 8 90,0% 92,5% 96,8% 96,4% Os resultados da simulação indicam que não há me-lhoria significativa no índice de acertos para mais que 30 amostras e 4 neurônios.

4.4 Reconhecimento

Foram implementados os dois modos de pré-processamento no programa de reconhecimento Se-same. O tamanho da rede neural escolhida procurou um equilíbrio entre precisão no índice de acertos e a quantidade de neurônios, de acordo com os resulta-dos obtiresulta-dos nas simulações na fase de treinamento. O teste foi feito diretamente na placa do EZ-KIT Lite. Uma palavra era falada no microfone, e anotava-se o resultado do reconhecimento visualizado nos leds.

4.5 Modo Cepstral

Para o modo Cepstral, foi definida uma rede com 15 neurônios na camada oculta e treinada com 20 amostras de cada palavra. O teste foi feito com 77 amostras, com a pronúncia repetida 11 vezes para cada palavra (vocabulário mais ruído). Os resultados estão na tabela 7.

Comparando os resultados on-line e simulado, nota-se uma diferença significativa. Na simulação, foram

necessárias várias tentativas para alcançar um valor ótimo (pelo menos 400 simulações), com resultados parciais na faixa de 45 a 73%. Esse fato indica uma dificuldade da rede encontrar padrões próprios para cada palavra.

Tabela 7 – Resultados para reconhecimento on-line. Somente com palavras do vocabulário

Certo Errado % acerto Total 41 25 62%

Palavras do vocabulário + Ruído Certo Errado % acerto Total 50 27 65%

4.6 Modo Banco de filtros

No modo Bfiltros, foi estabelecida uma rede com 4 neurônios na camada oculta. Os resultados do teste on-line estão na tabela 8.

Tabela 8 – Resultados para reconhecimento on-line. Somente com palavras do vocabulário

Certo Errado % Acerto

Total 86 4 96%

Palavras do vocabulário + Ruído

Certo Errado % Acerto

Total 94 11 90%

4.7 Comparação e discussão dos resultados

O pré-processamento com Banco de filtros obteve melhor rendimento nos testes. Utilizou uma rede menor (com 4 neurônios contra 15 do Cepstral) e apresentou melhor índice de reconhecimento, 96% contra 62% do Cepstral, uma diferença significativa. Em um levantamento das referências de outros traba-lhos, foram encontradas algumas explicações para essa diferença. Kohonen (1988) cita que o uso de transformação FFT é melhor que aquele com trans-formação a partir de representação paramétrica LPC, para sistemas que utilizam agrupamento, como redes neurais. O ambiente moderadamente ruidoso nos testes contribui para a diferença, pois, de acordo com Rhee, Young-ik & Geon (2000), o processamento com LPC-Cepstral funciona bem em ambientes silen-ciosos, porém decai bastante na presença de ruídos significativos. Os mesmos autores realizaram testes com configurações de bancos de filtros com SNR=10dB (voz masculina), resultando em acertos que variaram de 93 a 96%.

Para o pré-processamento, constatou-se que a utiliza-ção de banco de filtros, a partir de transformada rápi-da de Fourier, permite um índice de acerto maior que a utilização de coeficientes cepstrais, quando se utili-za rede neural com perceptrons em multicamada. Também é possível a utilização de uma quantidade menor de neurônios e amostras.

A principal deficiência do sistema é a pouca rejeição de palavras que não pertencem ao vocabulário,

(8)

apre-sentando resultados apenas razoáveis, com 82% de acerto no modo Cepstral e 53% no modo Bfiltros, considerando um conjunto exclusivo com as palavras de ruído. Apesar desta deficiência, a adoção desta solução é possível em diversas aplicações.

A tabela 9 mostra uma comparação com resultados obtidos em trabalhos que são dependentes de locutor.

Tabela 9 – Comparativo com resultados dependentes de locutores. Origem Acertos Características

Sesame

96% MLP, banco de filtros (400 entradas e 4 neurônios ocul-tos) / 6 palavras / dependente de 1 locutor

Martins (1997) 93% MLP (1280 entradas e 100 neurônios ocultos) / 50 pala-vras / dependente de 1 locutor Huang & Lee (1991) 96,9% HMM / fala contínua /

depen-dente de 1 locutor

A tabela 10 mostra resultados obtidos em trabalhos que são independentes de locutor, ou com múltiplos locutores.

Tabela 10 – Resultados independente ou múltiplos locutores. Origem Acertos Características

Rhee, Young-ik & Geon (2000)

96% MLP (256 entradas e 39 neu-rônios ocultos) com banco de filtros / dígitos em inglês / 16 locutores

Trentin & Gori (2003)

94,65% Híbrido / dígitos em italiano / 40 locutores

Fei & Yonghong (1998)

96,2% Híbrido / dígitos em inglês / independente de locutor

5 Conclusão

Neste artigo foi apresentada a implementação de um sistema de reconhecimento de voz utilizando re-des neurais implementada sobre uma plataforma de hardware limitada, baseada em microprocessador adequada a aplicações simples de comando de voz em sistemas embarcados.

Redes neurais são estruturas que exigem quantidade fixa de dados de entrada, o que pode representar um problema para dados com extensão variável, como no caso da voz. Entretanto, a técnica utilizada de sobre-posição funcionou adequadamente para os objetivos propostos.

Seguindo a estratégia de uma aplicação simples de controle com comandos robóticos, limitados a um vocabulário pequeno, dependente do locutor e com ruído moderado, obteve-se índice geral de acertos muito boa e compatível com os resultados obtidos em outros trabalhos. Cabe ressaltar que as seis palavras do vocabulário foram aprendidas mesmo utilizando-se uma estrutura simples com apenas quatro neurô-nios em uma camada oculta, com mais seis neurôneurô-nios de saída, com um neurônio para cada palavra.

6 Referências

Analog Devices, Inc. ADSP-BF533 EZ-KIT Lite® Evaluation System Manual. Norwood: Junho 2006. Revisão 3.0. Disponível em: <www.analog.com> Acesso em: 05 dez. 2008. Bechetti, C. , Ricotti, L. P. Speech Recognition:

Theory and C++ Implementation. West Sussex. John Wiley & Sons Ltd. 1999

Ben, M. B. Speech Recognition for Disabilities People. In: Information and Communication Technologies, 2006. ICTTA '06. 2nd.. 2006:864-869. Vol 1

Bourlard, H. A., Morgan, N. Connectionist Speech Recognition: A Hybrid Approach. Boston: Kluwer Academic Publishers. 1994.

Fei L., Yonghong Y.. Correlation generated targets for neural network based speech recognition. In: ICSP '98. 1998 Fourth International Conference on Signal Processing. Beijing; 1998:718-721. Furui, S. Digital Specch Processing, Synthesis, and

Recognition. Tóquio. CRC Press. 2001. 2nd ed. Huang X., Lee K. On speaker-independent,

speaker-dependent, and speaker-adaptive speech recognition. In: [Proceedings] ICASSP 91: 1991 International Conference on Acous-tics, Speech, and Signal Processing. Toronto. 1991:877-880.

Kohonen, T. Self-Organizing Maps. Berlin: Springer. 2001. 3rd ed.

Kubik, T., Sugisaka, M. Use of a cellular phone in mobile robot voice control. In: SICE 2001. Proceedings of the 40th SICE Annual Confer-ence. International. Nagoya. 2001: 106-111. Martins, J. A. Avaliação de diferentes técnicas para

reconhecimento de fala. 174f. Tese de Douto-rado. Universidade de Campinas. Campinas. Unicamp. 1997.

Rabiner, R. L., Biing-hwang J. Fundamentals of speech recognition.Prentice Hall, c1993.507 p. Rhee M. K., Young-ik K., Geon H. L. A

noise-robust front-end based on tree-structured filter-bank for speech recognition. In: Neural Networks, 2000. IJCNN 2000, Proceedings of the IEEE-INNS-ENNS International Joint Con-ference on. 2000:81-86 vol.6.

Tebelskis, J. Speech Recognition using Neural Networks. 1995. 188 f. PhD Thesis. Carnegie Mellon University. Pittsburg. 1995.

Trentin E., Gori M. Robust combination of neural networks and hidden Markov models for speech recognition. Neural Networks, IEEE Transactions on. 2003;14(6):1519-1531 1. Vaseghi, S. V. Advanced Digital Signal

Processing and Noise Reduction. Chichester. John Wiley and sons. 2006. 3rd ed. Cap. 8.

Referências

Documentos relacionados

Considerando a importância dos tratores agrícolas e características dos seus rodados pneumáticos em desenvolver força de tração e flutuação no solo, o presente trabalho

A simple experimental arrangement consisting of a mechanical system of colliding balls and an electrical circuit containing a crystal oscillator and an electronic counter is used

A assistência da equipe de enfermagem para a pessoa portadora de Diabetes Mellitus deve ser desenvolvida para um processo de educação em saúde que contribua para que a

servidores, software, equipamento de rede, etc, clientes da IaaS essencialmente alugam estes recursos como um serviço terceirizado completo...

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Os Oficiais de Registro Civil das Pessoas Na- turais do Estado de São Paulo também têm competência para os atos notariais de reconhecimento de firma, autenticação de cópia

Capítulo 7 – Novas contribuições para o conhecimento da composição química e atividade biológica de infusões, extratos e quassinóides obtidos de Picrolemma sprucei

(a) uma das formas para compatibilizar direitos consagrados na Constituição Federal de 1988 diretamente relacionados com a dignidade da pessoa humana – como o respeito à vida privada