1. O documento descreve o desenvolvimento de um framework para reconhecimento de som em dispositivos móveis utilizando Java ME.
2. O framework extrai coeficientes MFCC usando FFT e reconhece sons usando DTW, fornecendo reconhecimento de palavras e sons abstratos.
3. Testes no framework em três dispositivos móveis mostraram taxa de acerto de 86% a 94% no reconhecimento de dígitos.
Metodologia para reconhecimento de sons em dispositivos móveis
1. Metodologia Desenvolvida para o Reconhecimento de Som
em Dispositivos Móveis
Marcelo Ruaro1, Denilson Rodriges da Silva2
Departamento de Engenharias e Ciência da Computação – Universidade Regional
Integrada do Alto Uruguai e das Missões (URI)
Caixa Postal 98.802-407 – Santo Ângelo – RS – Brasil
mceloruaro@gmail.com, deniro@urisan.tche.br
Abstract. This article describes the development of Framework SRM (Sound
Recognizer ME) capable of recognize sound in mobile device in Java Micro
Edition language. This provides recognition of isolated words speaker
dependent also abstract sounds. For the extraction of information were
obtained the coefficients MFCCs derived from FFT following the methodology
of Rabiner. Already in the recognition phase was used to Dynamic Time
Warping (DTW), to compare the test patterns with the reference stored in a
Record Store in device memory.
Resumo. Este artigo descreve o desenvolvimento do Framework SRM (Sound
Recognizer ME) capaz de reconhecer som em dispositivos móveis na
linguagem Java Micro Edition. O qual fornece o reconhecimento de palavras
isoladas dependente de locutor e também sons abstratos. Para a extração da
informação foram obtidos os coeficientes MFCCs derivados da FFT seguindo
a metodologia de Rabiner. Já na fase de Reconhecimento foi utilizada a
Dinamic Time Warping (DTW), para comparar os padrões de teste com os de
referencia armazenados em um Record Store na memória do dispositivo.
1. Introdução
Ao longo dos anos, o avanço tecnológico dos microprocessadores proporcionou a
evolução dos dispositivos portáteis, que consequentemente, permitiu a incorporação de
técnicas até então incalculáveis para esta plataforma, oferecendo benefícios que
normalmente se localizavam em ambientes computacionais de grande porte. Seguindo
esta linha, a área de reconhecimento de voz pode enfim se beneficiar dessa capacidade e
oferecer um processamento mais robusto, o que levou a novas metodologias para
aumentar as vias de interação com os dispositivos móveis (HUERTA, 2000).
Com esse avanço, pode-se também implementar técnicas consideravelmente robustas de
reconhecimento de voz sem um grande custo computacional. Entre estas técnicas,
destaca-se a extração dos coeficientes Mel-Cepstrais (MFCCs) que fornecem uma boa
base de parâmetros para o uso de técnicas de reconhecimento de padrões,
principalmente, no reconhecimento independente de locutor (RABINER e JUANG,
1978) (YOMA, 1993).
Contudo, as técnicas de reconhecimento de voz, são relativamente complexas
principalmente devido a sua natureza interdisciplinar requisitada em seu
desenvolvimento, podendo-se citar entre as áreas envolvidas o processamento de sinais
digitais, linguagens de programação, reconhecimento de padrões, inteligência artificial,
linguística, teoria das comunicações (SILVA, 2009), entre outras, variando de acordo
2. com a complexidade do reconhecimento (PETRY, ZANUT e BARONE, 2000)
(TAFNER, 1996). Em consequência disto, desenvolver um sistema desse gênero
demanda – além de um amplo conhecimento – um grande esforço de tempo, o que faz
com que esta capacidade deixe de ser integrada pelos desenvolvedores de software de
uma maneira mais ocasional principalmente em aplicações móveis.
Com base neste cenário, este trabalho propôs o desenvolvimento e implementação de
um Framework inteiramente escrito na linguagem Java Micro Edition, com a
capacidade de reconhecer som em dispositivos móveis. Mais especificamente de
oferecer de uma forma abstraída e de fácil integração, o reconhecimento de voz através
do reconhecimento de palavras isoladas dependente de locutor e o reconhecimento de
sons abstratos, envolvendo um vocabulário pequeno.
Para elaboração desta proposta foi utilizada na parte de Extração da Informação a
extração dos coeficientes MFCC derivados da Transformada Rápida de Fourier (FFT), e
da analise por meio de um banco de filtros de escala Mel seguindo a metodologia
proposta por Rabiner (RABINER e JUANG, 1978). Já para o reconhecimento, foi
utilizada a Modelagem Determinística (DTW), que além da vantagem do baixo custo
computacional possibilita o reconhecimento de elocuções que apresentam variações de
velocidade em sua composição (YOMA, 1993).
Também foi proposta uma técnica chamada Inversão de Sinal (IS), que ao ser
incorporado na extração dos coeficientes MFCC apresentou melhores resultados de
reconhecimento, por ter como objetivo a maximização das principais variações de
amplitude do sinal (RUARO, 2010).
Por fim, como produto final obteve-se um motor de reconhecimento abstraído de fácil
integração a aplicações móveis Java ME e que se mostrou eficaz no reconhecimento dos
gêneros de som envolvidos, apresentando uma precisão, no melhor caso de 94%, e no
pior caso de 86% de acertos nos testes em dispositivos móveis. Outra característica
apresentada pelo SRM foi um consumo de processamento aquém do esperado, se
caracterizando como um sistema de baixo custo, levando-se em consideração a
complexidade das técnicas abordadas sobre o contexto de processamento embarcado
atual.
2. Captura e Digitalização do Sinal
Inicialmente, o sinal foi capturado utilizando a API MMAPI que oferece a capacidade
de controle e configuração da captura no microfone do dispositivo (GOYAL, 2006).
Onde foi flexibilizado parâmetros como, a frequência de amostragem, que foi fixada em
8000Hz devido a enorme redução do custo computacional, o número de bits por
amostra, que foi definido em 8 bits, e o número de canais, onde se optou por uma sinal
de canal único.
Todos estes parâmetros foram pré-definidos visando diminuir a carga computacional
envolvida nos processos seguintes, e também, respeitando os parâmetros mínimos de
qualidade de áudio considerados na área de reconhecimento de voz (RABINER e
JUANG, 1978).
De posse do sinal, obrigatoriamente, o mesmo passa pelo processo de Extração de
Informação, para então, ser reconhecido ou armazenado em um banco de padrões que
servirá como referência em futuros reconhecimentos.
3. 3. Extração de Informação
A extração da Informação visou gerar o menor volume de parâmetros, suficientes para
caracterizar cada amostra de som, e compreendeu nas fases de pré-processamento,
analise espectral, e extração dos parâmetros seguindo a metodologia de Rabiner et
al(1978) e analisada comparativamente por Lima (2000) para obtenção dos coeficientes
Mel-Cepstrais (CHEN, PALIWAL, et al., 2005).
No pré-processamento, o sinal foi submetido a técnicas que auxiliaram no processo de
parametrização, enfatizando os eventos significativos que caracterizam o sinal. Nesta
fase, o sinal em seu estado original, teve seu cabeçalho Wave removido através da
eliminação dos 52 primeiros elementos do vetor de bytes que caracteriza o sinal em si
(HERATH e RAGEL, 2007). Em seguida, passou por um processo de detecção de
extremos, visando remover o silêncio inicial e final da amostra, nesta etapa, foi
desenvolvido e implementado um algoritmo próprio, que se beneficia do uso interno da
IS, para detectar com baixo custo computacional, sequências de amostras que
apresentam amplitudes maiores que uma determinada faixa de amplitude, definindo-se
uma “linha” de silêncio, onde conjuntos de amplitudes que ultrapassassem esta linha
seriam consideradas como o início do som, da mesma forma reversamente, essa técnica
foi aplicada para identificar o final do som.
Após a identificação do período de som da amostra, foi aplicada diretamente a IS ao
sinal, objetivando destacar as amplitudes com informações mais significativas, para
maiores informações sobre a IS consultar Ruaro (2010). Na sequência do pré-
processamento, foi aplicado um filtro de pré-enfase objetivando equalizar o espectro de
som, com coeficiente de pré-ênfase fixado em 0.95 (PETRY, 2002), e por fim, o sinal
foi janelado e sobreposto utilizando as janelas de Hamming, configuradas com um
tamanho de 256 amostras (para um frequência de amostragem de 8000Hz), e com
sobreposição de 40% entre as janelas (ANDRADE e SOARES, 2005).
Desta maneira o sinal encontra-se segundo a literatura (PETRY, 2002) (SPHINX-4,
2008), otimizado para a aplicação da análise espectral.
Na análise espectral cada janela de Hamming resultante foi submetida ao cálculo da
Transformada Rápida de Fourier, implementada pelo algoritmo radix-2, com o objetivo
de transformar a representação do sinal de um domínio de tempo para um domínio de
frequências, representado como resultado deste processo, pelo vetor de magnitudes que,
elevado ao quadrado, resultou na geração do espectro de potências, onde de acordo com
Cuadros (2007), pode ter sua segunda metade removida devido a simetria em relação a
sua primeira metade, forjando ao final desta etapa, um vetor com metade do tamanho da
janela, ou seja, 128 elementos, resultando em uma economia de recursos de hardware.
Assim, com a obtenção do espectro de potências, e etapa final da extração de
informação consistiu na obtenção dos parâmetros representados pelos coeficientes
MFCC.
A extração dos coeficientes MFCC teve sua implementação baseada no Framework
Sphinx-4, onde neste trabalho, foi implementado um banco de 15 filtros triangulares
com frequência mínima de 100Hz e máxima de 3700Hz seguindo a escala Mel (DAVIS
e MERMELSTEIN, 1980). Em seguida foi aplicada a Transformada Discreta dos
Cossenos que segundo Cuadros (2007) equivale a Transformada Inversa de Fourier,
obtendo desta maneira 11 coeficientes MFCC. Normalmente como processo adicional e
4. observado em (SPHINX-4, 2008)(CUADROS, 2007) (CHEN, PALIWAL, et al., 2005)
é descartado o primeiro coeficiente MFCC obtido, pois este geralmente pode carregar
muita informação do meio de transmissão, desnecessária para o reconhecimento,
resultado por fim em 10 coeficientes MFCC extraídos para cada janela do sinal.
4. Reconhecimento
No reconhecimento buscou-se identificar o som de teste – o som imposto ao
reconhecimento, com algum padrão armazenado no banco de padrões por meio de
funcionalidades do Framework que abstraem o uso de Record Store de acordo com o
contexto do Framework.
Nesta fase, utilizou-se a metodologia onde, caso a semelhança com algum padrão atingir
um índice aceitável e for o melhor entre todos os índices, o reconhecimento ocorre, caso
contrário, o som de teste é rotulado como não reconhecido. Porém, como cada amostra
na maioria das ocorrências apresentam diferentes durações no tempo de som
(consequentemente diferentes quantidades de janelas para cada amostra),
principalmente ocasionado pelo fato dos sons terem origem vocal, buscou-se o uso de
uma técnica que abordasse esta característica, onde após um estudo destas técnicas
realizado principalmente em (LIMA, 2000) (RABINER e JUANG, 1978) (FURTUNĂ,
2008) foi escolhida a DTW.
4.1. Dinamic Time Warping (DTW)
A Modelagem Determinística (DTW) segundo Yoma (1993) é ideal para o
reconhecimento de palavras isoladas dependente de locutor, pois além de possuir um
custo computacional baixo, possui a característica de reconhecer sons com diferentes
variações temporais durante sua emissão (FURTUNĂ, 2008).
No reconhecimento pela DTW cada comparação do som de teste com um padrão resulta
em uma distância, onde se adotou o uso de coeficientes de seletividade baseados em
Yoma (1993) e definidos na tabela abaixo para avaliar a qualidade do reconhecimento.
Tabela 1 – Coeficientes de seletividade definidos para avaliar o reconhecimento
Coeficientes Fórmula Descrição
C1 - Menor distância entre as elocuções de teste e as
elocuções de referência
C2 - Diferença entre a segunda menor distância e C1
C3 - Diferença entre as médias das distâncias e a
menor distância entre a elocução de teste e as de
referência que não pertença ao padrão que
resultou na menor distância.
Sel1 C2 / C3 Divisão de C2 por C3
Sel1 C3 / C1 Divisão de C3 por C1
Resultando nos coeficientes de seletividade Sel1 e Sel2 para avaliar a qualidade do
reconhecimento.
5. Desta forma, e de acordo com Yoma (1993), dado que a DTW determina a distância
entre duas elocuções por meio da soma das distâncias entre quadros ao longo do
caminho ótimo de comparação, e que esta soma é normalizada em relação à duração dos
padrões de teste e de referência, é muito razoável supor que os coeficientes acima são
uma boa mediada da qualidade de parametrização. Isto porque a normalização C2 e C3
em relação a C1 na determinação de Sel1 e Sel2 elimina as diferenças numéricas entre
as diferentes parametrizações e permite a comparação direta dos diferentes
procedimentos de extração de parâmetros.
Da maneira em que Sel1 e Sel2 foram definidos quanto maiores eles forem melhor será a
qualidade ou seletividade do reconhecimento. E caso estes coeficientes não alcançarem
valores mínimos fixados de 0,25 para Sel1 e 0,8 para Sel2 se Sel1 for maior que 0,25, o
Framework retorna um estado de não reconhecimento.
5. Testes e Resultados
Para realizar os testes e obter os resultados baseando-se em dispositivos móveis, foi
desenvolvido um aplicativo chamado CallDictation integrando o Framework SRM,
cujo objetivo foi reconhecer dígitos e realizar a chamada dos dígitos reconhecidos por
voz, totalizando em 12 padrões ao banco de padrões, que são os dígitos decimais, mais
dois comandos de ações. Este aplicativo foi instalado na memória do telefone a fim de
diminuir o tempo de acesso em relação a sua instalação em um cartão de memória.
Como padrão adotou-se 3 dispositivos caracterizando 3 diferentes tipos de processador,
estes dispositivos serão a partir de agora chamados de dispositivo 1, 2 e 3, com
processadores operando a frequência de 434 MHz, 369 MHz e 332 MHz
respectivamente.
3.1.Consumo de Recursos Computacionais
O desempenho de reconhecimento corresponde ao tempo gasto para o reconhecimento
entre todos os 12 padrões definidos no teste, foi o exposto pela tabela 2 abaixo.
6. Tabela 2: Tempo para Reconhecimento em segundos
PALAVRA 1 2 3
ZERO 0,89 1,32 2,14
UM 0,57 1,09 1,16
DOIS 0,69 1,08 1,73
TRÊS 0,69 1,19 1,75
QUATRO 0,89 1,3 2,22
CINCO 0,86 1,22 2,22
SEIS 0,66 1,14 1,74
SETE 0,85 1,28 2,17
OITO 0,95 1,5 2,4
NOVE 0,86 1,51 2,2
OK 0,87 1,45 2,15
SAIR 0,79 1,34 1,82
MÉDIA 0,855 1,29 2,145
Nos resultados apresentados pela tabela 2 acima pode perceber que o SRM requisitou
um tempo aceitável para o reconhecimento baseando-se nos processadores dos
dispositivos testados. Um fato muito importante no processo de reconhecimento, é que
toda vez que o reconhecimento é realizado, também é feita a Extração de Informação da
amostra que esta sendo reconhecida, demandando um maior tempo geral ao processo de
reconhecimento. Este tempo adicional de Extração de Informação está incluso nos
resultados acima correspondendo ao reconhecimento.
3.2.Precisão de Reconhecimento
Os resultados de precisão no reconhecimento não se alteraram entre os dispositivos
testados, onde a porcentagem de acertos para o aplicativo CallDication foi de 98%.
Porém para melhor caracterizar a capacidade de reconhecimento do Framework SRM,
foram realizados diversos testes com os mais variados sons, tanto de origem vocal,
quanto material.
Os resultados apresentados a seguir refletem o reconhecimento para cada tipo de som.
As duas colunas representam os tipos de reconhecimento já descritos, e este
reconhecimento ainda é dividido em reconhecimento em tempo real e reconhecimento
estacionário. No reconhecimento em tempo real captura-se o som em intervalos pré-
definidos (1,5 segundos neste teste) e continuamente, então ao se detectar um som
verifica-se se o som capturado corresponde a algum padrão armazenado e continua-se a
captura aguardando um novo som. No reconhecimento estacionário há uma opção na
aplicação desenvolvida para os testes em que constitui um comando de reconhecimento
na interface no dispositivo (command), este comando ao ser acionado, inicia a captura
do som por 2 segundos e em seguida é realizado o reconhecimento.
É importante registrar que as condições de realização dos testes representados pela
tabela 3, foram em ambientes silenciosos, e as palavras e sons emitidos tanto para a
definição dos padrões quanto para o reconhecimento de forma clara e inteligível.
Tabela 3: Precisão de reconhecimento do Framework SRM
7. Palavras Isoladas Sons Abstratos
Estacionário 92% 94%
Tempo Real 88% 87%
Sendo assim, que a porcentagem de acertos exposta na tabela 3 acima caracteriza o
desempenho final do SRM para palavras isoladas dependente de locutor e sons
abstratos.
6. Conclusão
Este trabalho apresentou a proposta de um Framework para reconhecimento de sons e
palavras isoladas dependente de locutor para dispositivos móveis inteiramente
desenvolvido na linguagem Java ME. Onde se obteve significativos índices de
reconhecimento chegando a 94% de acertos no melhor caso. E fornecendo uma
ferramenta de fácil integração no desenvolvimento para aplicativos móveis.
Com base nos resultados obtidos pode-se concluir que Framework SRM apresentou um
bom desempenho levando-se em consideração a frequência de amostragem de 8KHz, a
baixa qualidade de transdução dos microfones dos dispositivo envolvidos, e o fato das
elocuções serem pronunciadas a uma distância razoável do microfone do dispositivo.
Outra consideração, é que o reconhecimento apresentou certas confusões ao reconhecer
palavras muito semelhantes, como por exemplo: “casa”, “asa”, “testa”, “festa”, “e”, ”d”.
Este problema é ocasionado principalmente devido a baixa frequência de amostragem
utilizada. Outro fator importante que se pode observar é em relação a um desempenho
superior no reconhecimento de forma estacionária, pois no reconhecimento estacionário
há o momento delimitado para que elocução seja pronunciada e a captura desta se faz de
uma forma completa. Já no reconhecimento em tempo real, como se captura sons de
intervalos de tempo pré-definidos, em algumas vezes o som a ser reconhecido pode
estar incompleto.
Concluiu-se também que para uma largura de Janela de Hamming maior, neste caso
próximo a 32 milissegundos, a taxa de sobreposição entre as janelas se diminuída
apresenta um melhor resultado em comparação a um taxa de sobreposição maior. Isso
ocorre, pois se constatou que ao aumentar a largura das janelas, a quantidade de
variação acústica presente neste janelamento também aumenta, e ao sobrepor estas
janelas com um índice maior, a quantidade de informação perdida também se eleva
ocasionando muitas vezes em confusões no reconhecimento.
Sobre a técnica de Inversão de Sinal proposta neste trabalho conclui-se que a mesma
contribuiu significativamente no índice de acertos do reconhecimento, obtendo uma
melhora em média de 8%, principalmente para o reconhecimento de palavras isoladas
dependente de locutor. Ainda esta técnica apresenta dois aspectos inversos. O primeiro é
benéfico, pois a inversão de sinal evidencia as informações que carregam a grande parte
da caracterização da elocução. O segundo que é uma desvantagem desta técnica é a de
se reduzir pela metade o índice de representação do sinal.
Sobre a técnica de detecção de extremos desenvolvida se pode concluir que esta
permitiu a correta identificação do inicio e fim dos sons, apresentando um baixo custo.
Esta técnica tem a vantagem além da baixa requisição de processamento, a capacidade
de configuração conforme o nível de ruído do ambiente, podendo descartar
8. automaticamente ruídos caso a configuração utilizada for a adequada para determinado
ambiente. Porém, esta técnica apresentou a desvantagem que em parte é devido a baixa
frequência de amostragem, de omitir os finais de certas elocuções que são palavras, pois
verificou-se que para o idioma português uma grande parte das palavras tem seu final
“mudo”, ocasionando um recorte antecipado em relação ao final da palavras. Este
problema só pode ser eliminado, através de uma pronuncia clara e inteligível.
Sobre a energia de saída do banco de filtros pode-se concluir assim como em Moraes
(MORAES, 2007) que esta possui informação suficiente para o reconhecimento de
pequenos comandos sendo dispensável a aplicação da DCT, porém, neste trabalho
constatou-se que, citando um exemplo, para dígitos numéricos a utilização somente da
energia para o reconhecimento acarreta em erros principalmente entre os dígitos “três” e
“seis” e “cinco” e “oito”, problema que foi eliminado utilizando os MFCC juntamente
com a Inversão de Sinal.
Agora abordando mais sobre conclusões no contexto de dispositivos móveis, o
desempenho computacional apresentado por estes na execução de aplicativos que
utilizassem o SRM foi aceitável chegando a média 0,4 segundos para extração da
informação e 0,8 segundos para o reconhecimento com até 20 padrões em um
dispositivo com processador de 434 MHz, utilizando em todo o Framework somente
variáveis do tipo float.
Referências
Andrade, A. O. and Soares, A. B. (2005) "Técnicas de Janelamento de Sinais".
Universidade Federal de Uberlândia- Faculdade de Engenharia Elétrica, Uberlândia.
Chen, J. et al. (2005) "Robust MFCCs Derived from Differentiated Power Spectrum".
ATR Spoken Language Translation Research Laboratories; g School of
Microelectronic Engineering, Griffith University , kyoto; Brisbane.
Cuadros, C. D. R. (2007) "Reconhecimento de Voz e de Locutor em Ambientes
Ruidosos: Comparação das técnicas MFCC e ZCPA". Escola de Engenharia da
Universidade Federal Fluminense, Niterói.
Davis, S. B. and Mermelstein, P. (1980) "Comparison of Parametric Representations for
Monosyllabic Word Recognition in Continuously Spoken Sentences". IEEE
Transactions on Acoustics, Speech, and Signal Processing.
Furtunã, T. F. (2008) "Dynamic Programming Algorithms in Speech Recognition".
Revista Informatica Economică nr. 2(46)/2008, Academy of Economic Studies,
Bucharest.
Goyal, V. (2006) "Pro Java ME MMAPI Mobile Media API for Java Micro Edition".
New York: apress.
Herath, I. and Rangel, R. G. (2007) "Implementation of an Electronic Tuner in J2ME
using Fast Fourier Transform". Peradeniya University Research Sessions, Sri Lanka,
Vol.12, Part II, Peradeniya.
Lima, A. A. D. (2000) "Análises Comparativas em Sistemas de Reconhecimento de
Voz". UFRJ, Rio de Janeiro, p102.
9. Petry, A. (2002) "Reconhecimento Automático de Locutor Utilizando Medidas de
Invariantes Dinâmicas Não-Lineares". URGS, Instituto de Informática, Porto Alegre.
Rabiner, L. and Juang, B.-H. (1978) “Fundamentals of Speech Recognition”. New
Jersey: Englewood Cliffs: Prentice Hall.
Ruaro, M. (2010) "SRM: Framework para Reconhecimento de Som em Dispositivos
Móveis". Universidade Regiona Integrada do Alto Uruguai e das Missões (URI),
Santo Ângelo, p 91.
Sphinx-4. Framework Sphinx-4. (2008) "A speech recognizer written entirely in the
JavaTM programming language",. Disponivel em:
<http://cmusphinx.sourceforge.net/sphinx4/>. Acesso em: 1 out. 2010.
Yoma, N. B. (1993) "Reconhecimento Automático de Palavras Isoladas: Estudo e
aplicação dos métodos Determinísticos e Estoásticos". Departamento de
Comunicações da Faculdade de Engenharia Elétrica - UNICAMP, Campinas.