SlideShare ist ein Scribd-Unternehmen logo
1 von 91
Downloaden Sie, um offline zu lesen
UNIVERSIDADE REGIONAL DO ALTO URUGUAI E DAS MISSÕES
            URI – CAMPUS DE SANTO ÂNGELO
DEPARTAMENTO DE ENGENHARIAS E CIÊNCIA DA COMPUTAÇÃO
           CURSO DE CIÊNCIA DA COMPUTAÇÃO




                   MARCELO RUARO




      SRM: Framework para Reconhecimento de
            Som em Dispositivos Móveis




                          Trabalho de Graduação.




                          Prof. M. Sc. Denilson Rodrigues da Silva
                          Orientador




              Santo Ângelo, dezembro de 2010.
UNIVERSIDADE REGIONAL DO ALTO URUGUAI E DAS MISSÕES – URI
Campus de Santo Ângelo
Reitor: Luiz Mario Silveira Spinelli
Pró-Reitor de Ensino: Rosane Vontobel Rodrigues
Diretor Geral: Maurílio Miguel Tiecker
Diretora Acadêmica: Neusa Maria John Scheid
Diretor Administrativo: Gilberto Pacheco
Cordenador do Departamento de Engenharia e Ciência da Computação: Márcio Antonio
Vendrusculo
Cordenador do Curso de Ciência da Computação: Denílson Rodrigues da Silva
AGRADECIMENTOS



    Primeiramente quero agradecer aos meus pais Silvio e Marinês Ruaro que são
minhas referências de vida, e juntamente com minha família me ensinaram uma
filosofia de vida a qual me orgulho de seguir, tomando decisões responsáveis, mesmo
nos momento de incerteza. Também quero agradece-los pela compreensão e pelo apoio
durante esta minha jornada na faculdade.
    Sou grato a minha namorada pela inacreditável paciência mostrada nas noites de
teste de reconhecimento, sei que ela passou muito sono por causa disso, e é por isso e
por tantos outros motivos que a amo.
   Agradeço ao meu orientador e professor Denílson pelas orientações e pelo incentivo
na minha pesquisa, pelas discussões e ensinamentos que certamente guardarei comigo
em minha carreira acadêmica e em minha vida. Também quero agradece-lo por se
dedicar intensamente a suas tarefas profissionais, fazendo com que o curso de Ciência
da Computação se destaque cada vez mais.
   Quero agradecer a todos os meus amigos e colegas, pelos intervalos passados
bebendo refrigerante, pelos jogos de futebol, e por todos outros momentos de
descontração que implicitamente contribuíram para a realização deste trabalho.
    Também quero agradecer ao Ph.D. Roshan G. Rangel e a Isuru Herath da
Universidade de Peradeniya do Sri Lanka e ao Dr. Adriano Petry do INPE pelo auxilio
no esclarecimento por e-mail de algumas duvidas referente ao processamento digital de
sinal no contexto do reconhecimento de som.
   Quero agradecer também ao professor Paulo R. B. Betencourt pelas conversas e
conselhos sobre aviação que me motivaram a iniciar meu curso de piloto privado de
avião. E agradecer a todos os outros professores do Curso de Ciência da Computação do
URI-Santo Ângelo pelo auxilio e compreensão no esclarecimento de certas duvidas que
contribuíram em muito para minha formação.
SUMÁRIO


LISTA ABREVIATURAS E SIGLAS .................................................................. 7
LISTA DE FIGURAS .......................................................................................... 8
LISTA DE TABELAS ....................................................................................... 10
RESUMO.......................................................................................................... 11
ABSTRACT...................................................................................................... 12
1 INTRODUÇÃO ............................................................................................ 13
1.1 Considerações Iniciais ......................................................................................... 15
1.2 Organização do Trabalho ................................................................................... 15
2 SISTEMAS DE RECONHECIMENTO DE SOM PARA DISPOSITIVOS
MÓVEIS ........................................................................................................... 16
2.1 O Som .................................................................................................................... 16
2.2 Estado da Arte ...................................................................................................... 17
2.3 Modalidades de Reconhecimento de Voz em Dispositivos Móveis .................. 17
2.3.1 Reconhecimento de Voz em Rede (Network Speech Recognition) .................... 17
2.3.2 Reconhecimento de Voz em Terminal (Terminal Speech Recognition)............. 18
2.3.3 Reconhecimento de Voz Distribuído (Distribuided Speech Recognition) ......... 18
2.4 Sistemas Contínuo/Discretos ............................................................................... 18
2.5 Tamanho do Vocabulário .................................................................................... 19
2.6 Sistemas Dependente/Independente de Locutor ............................................... 19
2.7 Fatores que Interferem no Desempenho ............................................................ 19
3 CAPTURA E ARMAZENAMENTO DE ÁUDIO .......................................... 21
3.1 Digitalização do Sinal Analógico de Áudio ........................................................ 21
3.1.1 Filtro Anti-Aliasing ............................................................................................. 22
3.1.2 Amostragem ........................................................................................................ 22
3.1.3 Quantização ........................................................................................................ 24
3.1.4 Codificação ......................................................................................................... 24
3.1.5 Pulse Code Modulation (PCM) .......................................................................... 25
3.2 Wave File Format ................................................................................................. 26
3.3 MMAPI ................................................................................................................. 27
3.3.1 MMAPI, JSR 135 ............................................................................................... 27
3.3.2 MMAPI e PCM ................................................................................................... 28
3.4 RMS....................................................................................................................... 28
4 EXTRAÇÃO DE INFORMAÇÃO ................................................................ 30
4.1 Pré-Processamento ............................................................................................... 31
5


4.1.1 Detecção de Extremos ........................................................................................ 31
4.1.2 Inversão de Sinal ................................................................................................. 31
4.1.3 Pré-Ênfase ........................................................................................................... 31
4.1.4 Janelamento ........................................................................................................ 32
4.2 Análise Espectral.................................................................................................. 34
4.2.1 Transformada Rápida de Fourier (FFT) ............................................................. 35
4.2.2 Espectro de Potências ......................................................................................... 37
4.3 Extração dos Parâmetros .................................................................................... 37
4.3.1 Coeficientes Mel-Cepstrais (MFCC) .................................................................. 37
5 RECONHECIMENTO .................................................................................. 42
5.1 Dinamic Time Warping (DTW) ........................................................................... 42
5.1.1 Coeficientes de Seletividade de Reconhecimento .............................................. 44
5.2 Distância Euclidiana ............................................................................................ 46
5.3 Coeficiente de Correlação de Pearson................................................................ 46
6 O FRAMEWORK SRM ............................................................................... 47
6.1 Capacidades .......................................................................................................... 47
6.1.1 Reconhecimento de palavras isoladas dependente de locutor ............................ 47
6.1.2 Reconhecimento de som ..................................................................................... 47
6.1.3 Vocabulário pequeno .......................................................................................... 47
6.1.4 Reconhecimento em Terminal ............................................................................ 48
6.2 Requisitos Mínimos.............................................................................................. 49
6.2.1 Estrutura do Framework ..................................................................................... 49
6.3 Descrição da Implementação .............................................................................. 50
6.3.1 Técnicas Propostas .............................................................................................. 51
6.3.2 Front-End ............................................................................................................ 55
6.3.3 Back-End ............................................................................................................ 58
6.4 Diagrama de Classes ............................................................................................ 59
6.4.1 Classe GraphicWave ........................................................................................... 60
6.4.2 Pacote sound ....................................................................................................... 61
6.4.3 Pacote frontEnd................................................................................................... 61
6.4.4 Pacote backEnd ................................................................................................... 63
6.5 Diagrama de Sequência ....................................................................................... 65
6.6 Reconhecimento em Tempo Real ....................................................................... 66
6.7 Treinamento ......................................................................................................... 67
7 TESTES E RESULTADOS ......................................................................... 68
7.1 Testes no emulador SDK 3.0 ............................................................................... 69
7.1.1 Ajuste das Janelas de Hamming.......................................................................... 69
7.1.2 Ajuste do Banco de Filtros.................................................................................. 71
7.1.3 Ajuste dos MFCCs .............................................................................................. 73
7.2 Testes em Dispositivos Móveis ............................................................................ 74
7.2.1 Desempenho para Extração de Informação ........................................................ 74
7.2.2 Desempenho para Reconhecimento .................................................................... 75
7.2.3 Resultados Gerais ............................................................................................... 76
7.3 Comparativo do uso da técnica de IS ................................................................. 78
8 ESTUDO DE CASO .................................................................................... 79
9 CONCLUSÃO ............................................................................................. 83
6


9.1 Contribuições ....................................................................................................... 84
9.2 Trabalhos Futuros ............................................................................................... 85
REFERÊNCIAS ................................................................................................ 86
ANEXO A - APLICATIVO CALLDICTATION .................................................. 89
7




         LISTA ABREVIATURAS E SIGLAS


A/D     Analógico/Digital
AMR     Adaptative Multi-Rate
API     Aplication Programming Interface
CDC     Connected Device Configuration
CLDC    Connected Limited Device Configuration
DFT     Discrete Fourier Transform
DTW     Dinamic Time Warping
FFT     Fast Fourier Transform
Hz      Hertz
ID      Identidade
KHz     Kilohertz
JSR     Java Specification Requestes
HMM     Hidden Markov Model
ME      Micro Edition
MFCC    Mel Frequency Cepstrum Coeficient
MIDP    Mobile Information Device Profile
MMAPI   Multimedia API
PCM     Pulse Code Modulation
RIFF    Resource Interchange File Format
RMS     Record Management Store
SRM     Sound Recognizer ME
SDK     Sun Developement Kit
LISTA DE FIGURAS


Figura 2.1: Representação de um sinal analógico de som .............................................. 16
Figura 3.1: Filtragem e digitalização do sinal analógico ................................................ 22
Figura 3.2: Exemplo do processo de amostragem do sinal contínuo ............................. 23
Figura 3.3: Sinal analógico digitalizado e quantizado. ................................................... 24
Figura 3.4: Processo de codificação PCM. ..................................................................... 25
Figura 3.5: Formato Wave. ............................................................................................. 26
Figura 3.6 - Processo de Funcionamento da MMAPI .................................................... 28
Figura 3.7: Interface Java ME RMS ............................................................................... 29
Figura 4.1: Etapas que compõe a extração de informação do sinal de som ................... 30
Figura 4.2: Etapas do pré-processamento ....................................................................... 31
Figura 4.3: Espectro de frequências sem e com pré-ênfase ............................................ 32
Figura 4.4: Janela de Hamming ...................................................................................... 33
Figura 4.5: Janelas de Hamming com sobreposição de 50% .......................................... 33
Figura 4.6: Análise espectral .......................................................................................... 34
Figura 4.7: Desempenho da FFT em relação ao aumento de pontos .............................. 36
Figura 4.8: Esquema de saída da FFT e a aplicação de sua inversa ............................... 36
Figura 4.9 - Variação logarítmica da escala Mel em relação a Hz ................................. 38
Figura 4.10: Etapas da extração dos parâmetros ............................................................ 39
Figura 4.11: Exemplo de banco de 20 filtros triangulares espaçados de acordo com a
escala Mel. ...................................................................................................................... 39
Figura 4.12: Energia de saída do banco de filtros .......................................................... 41
Figura 5.1: Exemplo de diferença temporal ................................................................... 43
Figura 5.2: Alinhamento não-linear gerado pela DTW .................................................. 43
Figura 5.3: Plano temporal dos padrões R e T ................................................................ 44
Figura 5.4 - Exemplo de erro de reconhecimento utilizando somente as distâncias
mínimas da DTW ........................................................................................................... 45
Figura 6.1: Tempo de processamento para o reconhecimento em relação ao número de
padrões ............................................................................................................................ 48
Figura 6.2: Estrutura geral do SRM................................................................................ 50
Figura 6.3: Trecho da palavra “teste” antes e depois da inversão de sinal ..................... 52
Figura 6.4: Linha imaginária de limite de silêncio ......................................................... 53
Figura 6.5: Etapas implementadas no bloco front-end caracterizando a extração de
informação ...................................................................................................................... 55
Figura 6.6: Processo de remoção do cabeçalho Wave .................................................... 56
Figura 6.7: Etapas implementadas no bloco back-end caracterizando o reconheciment.
 ........................................................................................................................................ 58
Figura 6.8: Diagrama de classe do Framework SRM .................................................... 59
Figura 6.9: Telas exemplos da classe GraphicWave contendo a representação de um
sinal PCM no formato Wave com 8 bits por amostra ..................................................... 60
9


Figura 6.10: Classe GraphicWave .................................................................................. 60
Figura 6.11: Diagrama de classes do pacote sound ........................................................ 61
Figura 6.12: Diagrama de classes do pacote frontEnd ................................................... 62
Figura 6.13: Diagrama de classes do pacote backEnd.................................................... 63
Figura 6.14: Diagrama de Sequencia .............................................................................. 65
Figura 6.15: Fluxograma do modo listening .................................................................. 66
Figura 7.1: Sel1 gerado sobre o ajuste quanto largura da Janela de Hamming ............... 70
Figura 7.2: Sel1 para as variações de sobreposição entre as janelas de Hamming ......... 71
Figura 7.3: Comparação de Sel1 entre o número de filtros ............................................. 72
Figura 7.4: Comparativo de Sel1 alternado a quantidade de MFCCs ............................. 73
Figura 7.5: Desempenho de extração de informação em relação a frequência do
processamento ................................................................................................................ 75
Figura 7.6: Gráfico comparativo de tempos para reconhecimento entre os processadores
testados ........................................................................................................................... 76
Figura 8.1: Configuração básica do SRM ...................................................................... 79
Figura 8.2: Gravação e definição como padrão de uma amostra de som ....................... 80
Figura 8.3: Verificação do tamanho do banco ................................................................ 80
Figura 8.4: Utilização da função "isListening" ............................................................... 81
LISTA DE TABELAS


Tabela 2.1: Classificação quanto ao vocabulário ........................................................... 19
Tabela 3.1: Taxa de erros em relação à frequência de amostragem ............................... 23
Tabela 3.2: Codificação do sinal em uma sequência numérica de base binária. ............ 25
Tabela 6.1: Tempos de recorte em milissegundos do algoritmo de detecção de extremos
e o tempo de processamento obtido no teste elaborado no emulador SDK 3.0 ............. 54
Tabela 7.1: Ajuste quanto ao tamanho das janelas de Hamming ................................... 70
Tabela 7.2: Porcentagem de Sobreposição entre as Janelas de Hamming...................... 71
Tabela 7.3: Número de Filtros ........................................................................................ 72
Tabela 7.4: Ajuste de MFCCs ........................................................................................ 73
Tabela 7.5: Tempo gasto em segundos para extração de informação nos três dispositivos
testados ........................................................................................................................... 74
Tabela 7.6: Tempo gasto em segundos para o reconhecimento nos três dispositivos
testados ........................................................................................................................... 75
Tabela 7.7: Configuração geral do framework SRM...................................................... 76
Tabela 7.8: Precisão de reconhecimento do framework SRM........................................ 77
Tabela 7.9: Inversão de Sinal ......................................................................................... 78
RESUMO


    Com uma maior acessibilidade ao desenvolvimento de aplicativos para dispositivos
móveis, surgem novas possibilidades de fornecer uma maior interação homem/máquina.
Uma dessas formas de interação que objetiva reconhecer um meio de comunicação e
percepção espacial muito comum para os seres humanos é o reconhecimento de som.
Este trabalho consiste no desenvolvimento de um Framework escrito na linguagem Java
Micro Edition, para o reconhecimento de sons abstratos e de palavras isoladas
dependentes de locutor em dispositivos móveis. Onde alcançou-se excelentes resultados
de reconhecimento, chegando a atingir – no melhor caso – uma precisão de acertos de
94%. Através deste framework, desenvolvedores de aplicações móveis poderão utilizar
e também trabalhar de um modo geral com o reconhecimento de som em diversos
cenários. Na realização dessa proposta foi abordada a API MMAPI para a captura e
execução do áudio na codificação PCM, já na fase de extração de informações do sinal
foi utilizada a extração dos coeficientes Mel-Cepstrais (MFCC) derivados da
Transformada Rápida de Fourier (FFT), e para o reconhecimento foi empregada a
comparação através da Dinamic Time Warping (DTW). Neste trabalho foram propostas
duas técnicas de processamento de sinal de som: a primeira denominada Inversão de
Sinal (IS), e a segunda correspondente a um algoritmo de baixo custo de detecção de
extremos responsável pela detecção de inicio e fim de uma elocução. E também foi
proposta e integrada uma funcionalidade que permite a representação gráfica do
espectro de áudio em telas de dispositivos móveis.




Palavras-Chave: Reconhecimento, som, dispositivos móveis, extração de informação,
padrões.
SRM: Framework for Sound Recognition on Mobile Devices



                                  ABSTRACT


    With greater accessibility to developing applications for mobile devices, new
opportunities arise to provide greater interaction man/machine. One of these forms of
interaction that aims to recognize a means of communication and spatial perception very
common to humans is the recognition of sound. This work consists in developing a
framework written in Java Micro Edition, for the recognition of abstract sounds and
isolated words announcer dependent on mobile devices. Where was reached excellent
recognition results, reaching – in the best case – an accuracy hits 94%. Through this
framework, developers can use mobile applications and also work generally sound
recognition in various scenarios. In making this proposal was discussed the MMAPI
API to capture and execution of PCM audio encoding, already in phase of signal
information extraction was used to extract the Mel-Cepstrais coefficients (MFCC)
derived from the Fast Fourier Transform (FFT), and for the recognition was employed
through comparison of Dinamic Time Warping (DTW). In this work were proposed two
techniques of sound signal processing: the first called signal Inversion (IS), and the
second corresponds to a low-cost algorithm for detecting extremes responsible for
detection of beginning and end of an utterance. And also was proposed and integrated
functionality that allows graphical representation of the audio spectrum on screens of
mobile devices.




Keywords: Sound recognition, mobile devices, information extraction, patterns.
1 INTRODUÇÃO


   Na ciência da computação, cada vez mais surgem novas tecnologias que permitem
uma maior interação e consequentemente uma maior produtividade entre o ser humano
e o computador. Entre estas tecnologias uma que tem grande destaque por reconhecer
um meio de interação muito comum aos seres humanos, é o reconhecimento de som.
    O reconhecimento de som de um modo geral é a capacidade de um sistema
computacional extrair e interpretar corretamente as variáveis contidas em um sinal de
som (RABINER e JUANG, 1978). O uso do reconhecimento de som em determinado
cenário flexibiliza a interação homem/máquina automatizando certas tarefas que
geralmente requisitam uma maior quantidade de interações físicas. Em um ambiente
móvel esta flexibilidade operacional provida pelo reconhecimento alia-se a mobilidade
nativa dos sistemas embarcados expandindo ainda mais a aplicabilidade do
reconhecimento de som.
    Contudo, para se desenvolver um sistema de reconhecimento de som enfrentam-se
algumas dificuldades, entre as principais destaca-se a natureza interdisciplinar
requisitada no desenvolvimento destes sistemas, 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 com a complexidade do
reconhecimento (PETRY, ZANUT e BARONE, 2000) (TAFNER, 1996). Por isso,
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. Outra dificuldade encontrada no desenvolvimento do
reconhecimento de som em ambientes embarcados é a limitação de hardware, que
atualmente ainda impõe barreiras para a elaboração de um reconhecimento mais
complexo.
    A grande maioria dos dispositivos móveis encontrados no mercado atual incorpora
algum sistema de reconhecimento de som (principalmente o reconhecimento de voz),
muitos destes sistemas são eficientes alcançando excelentes níveis de precisão com
relativo baixo custo computacional. Porém estes sistemas geralmente são privados e/ou
não permitem sua integração a outras aplicações (na forma de API ou framework).
    No cenário atual de desenvolvimento móvel, mais especificamente no contexto da
linguagem Java ME, encontra-se poucas ferramentas de reconhecimento de som
integráveis a alguma aplicação. A principal delas é a API Java Speech que em sua
versão 2.0 provê suporte a linguagem Java ME, contudo esta API é licenciada apenas
para empresas privadas (ORACLE, 2010). Outra indisponibilidade é quanto a
capacidade dos motores de reconhecimento elaborarem seus processamentos
14


inteiramente no dispositivo portátil em que são instalados, dispensando uma conexão
sem fio a um servidor para um processamento normalmente mais robusto.
    Ciente destes fatores, este trabalho propôs o desenvolvimento e implementação de
um framework chamado Sound Recognizer ME (SRM) escrito na linguagem Java Micro
Editon para dispositivos móveis objetivando o reconhecimento de som englobando
também o reconhecimento de voz, que mais especificamente é caracterizado neste
trabalho pelo reconhecimento de palavras isoladas dependente de locutor. Através deste
framework desenvolvedores poderão integrar o reconhecimento disponibilizado, em
aplicações móveis de uma maneira simples e abstraída. Já a escolha pelo
reconhecimento principalmente de palavras isoladas dependente de locutor, apresenta-se
como uma base ideal para se iniciar os estudos de propostas mais complexas na área de
reconhecimento de voz como o reconhecimento de fala contínua independente de
locutor, além de ampliar o reconhecimento de som para o contexto de voz, o que
estende a aplicabilidade desta proposta.
    Para o desenvolvimento do SRM, foram utilizados pacotes da linguagem Java ME
que permitem abstrair certas funcionalidades essenciais para o apoio em um caráter de
infraestrutura no desenvolvimento do reconhecimento de som. Estas funcionalidades
são o controle multimídia através da API MMAPI que permite a captura e execução de
som no dispositivo, o RMS que fornece o suporte ao armazenamento persistente, e as
bibliotecas Math e MathC para o cálculos de funções matemáticas.
    Na etapa de extração de informação do sinal também conhecida como front-end, foi
utilizada a extração dos coeficientes Mel-Cepstrais (MFCC) derivados da Transformada
Rápida de Fourier e da analise por meio de um banco de filtros de escala Mel seguindo
a metodologia proposta por Rabiner (RABINER e JUANG, 1978). Os coeficientes
MFCC segundo Davis et al (1980) apresentam robustas característica para o
reconhecimento de voz, e segundo Chen et al (2005) é talvez a técnica de front-end
mais utilizada por sistemas estado da arte de reconhecimento de voz.
   Também foi desenvolvida uma técnica de pré-processamento de sinais de áudio
chamada Inversão de Sinal (IS), que demostrou uma melhor parametrização dos
coeficientes MFCC sobre o sinal de som, e se mostrou extremamente útil no algoritmo
de detecção de inicio e fim de uma elocução (detecção de extremos), que também foi
uma proposta deste trabalho.
   Já para o reconhecimento dos coeficientes MFCC extraídos em relação a um banco
de padrões, foi utilizada a Dynamic Time Warping (DTW), ou também conhecida como
Modelagem Determinística. A DTW além da vantagem do baixo custo computacional
possibilita o reconhecimento de elocuções que apresentam variações de velocidade em
sua composição. Conforme visto em Yoma (YOMA, 1993), a DTW se encaixa
perfeitamente no contexto de reconhecimento de palavras isoladas dependente de
locutor.
    E juntamente com a oferta de reconhecimento de som proposta pelo SRM, foi
desenvolvida e incorporada ao framework uma funcionalidade que permite a
representação gráfica do espectro de sinais digitais de áudio em telas de dispositivos
móveis, esta capacidade apoiou e impulsionou o desenvolvimento do SRM sendo muito
útil nas fases de estudo e análise do comportamento do sinal, e por isso foi mantida e
disponibilizada para ser utilizada como objeto de estudo e desenvolvimento em futuras
pesquisas.
15


    Também foi elaborada e disponibilizada implicitamente a este framework uma API
para o cálculo da Transformada Rápida de Fourier na linguagem Java ME, permitindo a
obtenção do espectro de magnitudes, e também foi disponibilizada uma função
contendo uma formula baseada na obra de (HERATH e RAGEL, 2007), para a obtenção
da frequência do espectro de magnitudes de saída da FFT.
    Por fim, como produto final obteve-se um motor de reconhecimento 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.

1.1 Considerações Iniciais
   Neste trabalho foi abordado o termo: “reconhecimento de som”, pois como
mencionado anteriormente o reconhecimento nesta proposta se encaixa em categorias
do reconhecimento de voz, e também o reconhecimento de outros sons que não
caracterizam uma palavra, chamados a partir deste momento de: “sons abstratos”.
    Porém, ao longo do trabalho, principalmente na parte de fundamentação teórica, é
encontrado o conceito: “reconhecimento de voz”, isso ocorre porque este termo estava
especificamente associado às ideias extraídas das obras referenciadas, e portanto
resolveu-se não distorce-lo.
   Contudo, neste trabalho, acaba sendo implicitamente proposta a absorção de
conceitos típicos de reconhecimento de voz ao reconhecimento de sons abstratos. Sendo
que para seguir esta linha metodológica estudou-se a definição de som, apresentada pela
seção 2.1.

1.2 Organização do Trabalho
   A organização dos capítulos neste trabalho ocorre da seguinte maneira:
    O próximo capitulo (capítulo 2) é destinado à contextualização dos sistemas de
reconhecimento de som em dispositivos móveis. O capitulo 3 expõe as técnicas
utilizadas para a captura e armazenamento dos arquivos de áudio no dispositivo. No
capítulo 4 é descrito o processo realizado para a extração de informação do sinal. No
capitulo 5 é descrito a etapa de reconhecimento. Já no capitulo 6 é caracterizado o
framework SRM como um todo. O capitulo 7 apresenta os testes e resultados obtidos.
No capitulo 8 é apresentado um estudo de caso utilizando o SRM. E o capitulo 9 encerra
apresentado as conclusões.
16




2 SISTEMAS DE RECONHECIMENTO DE SOM PARA
   DISPOSITIVOS MÓVEIS



   Este capítulo é dedicado à contextualização de sistemas de reconhecimento de som
em dispositivos móveis, descrevendo suas principais características.

2.1 O Som
    Som é um sinal analógico definido por vibrações ocasionadas pelas diferenças de
pressões sofridas pela matéria em que será transmitido, normalmente representado
através de curvas sinusoidais que caracterizam suas variáveis possuindo uma
determinada frequência, amplitude e fase (TAFNER, 1996) – ver figura 2.1.
Complementado esta definição anterior, pode-se ainda acrescentar conforme a
Associação Brasileira de Normas Técnicas (1959) que “som é toda e qualquer vibração
ou onda mecânica em um meio elástico dentro da faixa de áudio frequência”.




       Figura 2.1: Representação de um sinal analógico de som (ROLIM, 2010)
   Sendo a onda sonora composta por três características básicas (HAYKIN e VEEN,
2001):
          Amplitude: valor em um determinado momento do nível de sinal;
          Frequência: quantidade de vezes por unidade de tempo em que a forma de
           onda do sinal se repete.
          Fase: ângulo em que o sinal se apresenta.
    Com base nestes conceitos pode-se definir mais claramente o conceito de voz, que
segundo o dicionário Aurélio Online (2010), é um som originado das cordas vocais.
Logo ela apresenta as mesmas características físicas descritas acima, e conclui-se que
técnicas utilizadas (neste trabalho) para o reconhecimento de voz, podem ser absorvidas
pelo reconhecimento de som.
17


2.2 Estado da Arte
   O desenvolvimento de sistemas de reconhecimento voz em dispositivos móveis é
amplamente motivado pelo mercado da telefonia. Existem muitos sistemas de
reconhecimento embarcados privados atualmente: Nuance’s VoCom (Nuance Vocon),
IBM’s ViaVoice ( IBM Embedded ViaVoice), Asahi Kasei’s VORERO (Asahi Kasei
VORERO), entre outros. Esses sistemas são softwares baseados em soluções que rodam
em uma gama variada de dispositivos, suportando vocabulários grandes que são
somente limitados pela memória do dispositivo (MIRANDA, 2008)
    Na extração de informação do sinal ou front-end, uma característica fundamental
que aumenta consideravelmente o desempenho do reconhecimento é realizar o
processamento utilizando variáveis ponto-flutuante. Porém, em um ambiente móvel
trabalhar com estes tipos de variáveis requer um maior esforço computacional.
Entretanto sem o uso de variáveis ponto-flutuante ficaria impraticável aplicar técnicas
robustas atualmente de extração de informações como os coeficientes MFCC (DAVIS e
MERMELSTEIN, 1980)(CHEN, PALIWAL, et al., 2005). Outra implicação de se
utilizar técnicas deste porte é a complexidade de operações aritméticas envolvidas,
incorporadas por funções especiais tal como a Transformada Rápida de Fourier.
    Já para o reconhecimento o grande desafio é encontrar meios de não sobrecarregar o
sistema com um acréscimo no número de padrões envolvidos. Outra implicação é a
quantidade de armazenamento disponibilizada pelo dispositivo móvel, que se muito
limitada, inviabiliza todo o processo.
    No reconhecimento de palavras isoladas dependente de locutor – não
necessariamente no contexto móvel – uma técnica que se mostra ideal para este
contexto de reconhecimento (YOMA, 1993) (FURTUNĂ, 2008) e é tradicionalmente
utilizada é a DTW, que entre outros benefícios possui a vantagem de apresentar um
baixo custo computacional, fator este indispensável em um ambiente móvel.
   Para maiores informações sobre o estado da arte em dispositivos móveis consultar
Miranda (2008).

2.3 Modalidades de Reconhecimento de Voz em Dispositivos Móveis
    Huerta (2000) define três principais modalidades de reconhecimento de voz em
dispositivos móveis: (1) reconhecimento de voz em rede, (2) reconhecimento de voz em
terminal, e (3) reconhecimento de voz distribuído. A seguir são descritas estas três
modalidades:

2.3.1 Reconhecimento de Voz em Rede (Network Speech Recognition)
    Nesta modalidade, o reconhecimento é implementado remotamente do ponto de
vista do usuário, pois o sinal de voz é transmitido do dispositivo para um servidor
realizar o reconhecimento através de uma rede sem fio. As principais implicações desta
técnica são no momento da transmissão sem fio entre o cliente e o servidor. Neste caso,
para o envio, deve-se ter uma conexão rápida e confiável, e os dados devem ser
comprimidos. Contudo esta modalidade apresenta um reconhecimento mais sofisticado
para aplicações em dispositivo móveis, permitindo a integração de técnicas de
reconhecimento mais robustas.
18


2.3.2 Reconhecimento de Voz em Terminal (Terminal Speech Recognition)
   Nesta modalidade, o reconhecimento é feito no dispositivo do usuário. Neste
caso, o sinal de voz não é transmitido através de uma rede sem fio, por isso
não é afetado pelo canal de transmissão e de algoritmos de compressão. Entretanto o
desempenho do sistema neste tipo de modalidade deve ser cuidadosamente avaliado,
devido a sensibilidade do dispositivo em relação ao consumo de memória e
processamento. Huerta (2000) também afirma que só é possível construir sistemas de
reconhecimento relativamente simples (por exemplo, discagem por voz, comando e
controle de aplicações, etc.).

2.3.3 Reconhecimento de Voz Distribuído (Distribuided Speech Recognition)
    Nesta modalidade o sistema de reconhecimento de voz é separado em duas partes:
cliente e servidor. A diferença entre esta modalidade e a de reconhecimento em rede, é
que, neste caso, a extração de informação do sinal de voz é realizada no próprio
dispositivo e após são enviados os resultados no formato de dados através de um canal
protegido de erros usando uma rede especifica para o reconhecimento (SUK, JUNG, et
al., 2004) (HUERTA, 2000) (MIRANDA, 2008). Isso permite o reconhecimento não
dependente de um sinal que pode ter sido afetado pela compressão e codificação da rede
sem fio. A principal desvantagem desta abordagem é a dependência de um padrão front-
end que é realizado no próprio dispositivo. Estabelecer e padronizar este front-end
envolve problemas difíceis de serem resolvidos como a característica permitir o
reconhecimento de alta precisão em ambientes silenciosos e ruidosos. Um sistema deste
tipo pode se beneficiar das vantagens das duas modalidades já descritas: sistemas
sofisticados podem ser implementados (como no reconhecimento de rede), enquanto a
informação do sinal é extraída no dispositivo (como no reconhecimento de terminal).
   Há também outras características e fatores citados em (MIRANDA, 2008)
(CIPRIANO, 2001) (LIMA, 2000) (OLIVEIRA, 2002) (SILVA, 2009) que classificam
os sistemas de reconhecimento e que devem ser determinados na elaboração de um
reconhecedor de som. Escolher que tipo de características o reconhecimento irá
abranger, implica diretamente em alterar toda uma metodologia de elaboração em
comparação a um sistema diferente. A seguir são descritas estas características.

2.4 Sistemas Contínuo/Discretos
    Em sistemas de fala isolada ou discreta tem-se uma pausa identificável entre cada
palavra, também pode-se implementar sistemas assim através da captura de uma única
palavra por arquivo de áudio. Já a fala contínua ocorre de uma maneira mais comum aos
seres humanos, onde os limites das palavras não são facilmente distinguíveis, pois a fala
não precisa ser pausada e ocorre espontaneamente. Obviamente sistemas de fala discreta
tem uma precisão geralmente maior em relação aos sistemas de fala contínua que por
sua vez, possuem uma maior complexidade (MIRANDA, 2008).
19


2.5 Tamanho do Vocabulário
    O tamanho do vocabulário é a quantidade máxima de elocuções que podem ser
definidas como padrão para o reconhecimento (RABINER e JUANG, 1978).
   O tamanho do vocabulário utilizado irá afetar diretamente a precisão e o
desempenho do sistema, principalmente em ambientes móveis onde o espaço disponível
para o armazenamento de informações persistentes é limitado, na tabela 2.1 a seguir
pode-se verificar a classificação quanto ao tamanho de vocabulário (RABINER e
JUANG, 1978).
                   Tabela 2.1: Classificação quanto ao vocabulário
                           Vocabulário       Nº. Palavras
                             Pequeno            Até 20
                              Médio         Entre 20 e 100
                              Grande       Entre 100 e 1000
                           Muito Grande     Mais de 1000


   Quando se fala em precisão, um grande vocabulário atrapalha no momento de
avaliar se o reconhecimento obteve alto índice de exatidão, pois se houver um número
grande de padrões, estes podem apresentar um índice de reconhecimento semelhante a
outros padrões, resultando em um estado de reconhecimento incerto e atrapalhando por
vezes um reconhecimento que poderia estar correto.

2.6 Sistemas Dependente/Independente de Locutor
    Nos sistemas dependente de locutor há o reconhecimento dos locutores cujas vozes
foram utilizadas para treinar o sistema ou definir os padrões. Os sistemas dependentes
de locutor tem boa precisão, mas requerem um treinamento diferente para cada usuário.
Para aplicações como editores de texto, a dependência do locutor pode ser muito
benéfica (OLIVEIRA, 2002), pois diminui bastante a taxa de erros.
     Quando o sistema é independente de locutor o mesmo deve reconhecer a voz de
qualquer pessoa sem haver um treinamento antes. Neste caso é necessário realizar o
treino geral do sistema com uma base que inclua diferentes pessoas com diferentes
idades, sexo, sotaques, timbres de som, etc., para definir um padrão de características
predominantes para cada elocução.

2.7 Fatores que Interferem no Desempenho
   Além das características citadas acima, há outros fatores que afetam o desempenho
de um sistema de reconhecimento de som:
          Variações para um mesmo locutor: Um locutor, ou seja, a pessoa que está
           pronunciando a elocução varia constantemente e involuntariamente em sua
           pronuncia. Isso ocorre frequentemente e deve ser levado em conta na fase de
           reconhecimento, através de técnicas que sejam capazes, de identificar a
           mesma elocução dita mais lentamente ou mais rapidamente, por exemplo.
20


   Ausência de Treinamento: Em sistemas que dispensam um treinamento
    para cada padrão de palavra, o desempenho de reconhecimento geralmente é
    menor, pois se define como padrão uma amostra capturada aleatoriamente, e
    esta pode conter características anormais de uma pronunciação padrão para
    uma determinada elocução.
   Condições do ambiente: Ambientes ruidosos atrapalham muito um
    reconhecimento preciso, mesmo os mais exatos reconhecedores têm seus
    desempenhos prejudicados com a adição de ruído, causando frequências
    indesejáveis no sinal analisado.
   Microfone: Este fator é um dos mais importantes, pois um microfone de
    baixa qualidade resultará em um nível de transdução ruidoso e às vezes não
    representativo o bastante para ser reconhecido.
   Frequência de Amostragem e níveis de Quantização: Estes fatores são
    extremamente importantes na qualidade do áudio capturado e serão
    explicados mais detalhadamente no capítulo 3. Definir configurações muito
    baixas implica em diminuir os dados digitalizados que representam o sinal de
    áudio em sua forma contínua. O mínimo utilizado atualmente para sistemas
    de reconhecimento de voz, são a frequência de amostragem de 8 KHz e 8 bits
    por amostra, resultando em 256 níveis diferentes de representação por
    amostra.
21




3 CAPTURA E ARMAZENAMENTO DE ÁUDIO


   Para se obter os arquivos de áudio necessários para o reconhecimento, é essencial
incorporar técnicas que permitem sua captura e armazenamento em um contexto móvel.
    Inicialmente para a captura do sinal analógico e subsequentemente sua conversão
para o formato digital emprega-se técnicas de digitalização de sinais, estas técnicas são
descritas na seção 3.1 a seguir, e são fundamentais para a aquisição do sinal de áudio em
seu formato digital. Já na seção 3.2 é contextualizada a API MMAPI utilizada para o
controle e configuração da captura do sinal. Na seção 3.3 é então descrita a relação entre
a MMAPI e a codificação PCM que é representada pelo formato Wave descrito na seção
3.4. E por fim a seção 3.5 refere-se a técnica de armazenamento persistente RMS,
utilizada para armazenar a informação pertinente ao reconhecimento.

3.1 Digitalização do Sinal Analógico de Áudio
    Qualquer tipo de sinal analógico que requisite ser armazenado em um sistema
computacional ou transmitido em um canal de transmissão digital necessita passar por
um tratamento de sinal, ou seja, um processo chamado de digitalização (HAYKIN e
VEEN, 2001). A digitalização tem o objetivo de representar um sinal analógico em
níveis de representação discretos no tempo que correspondem aproximadamente às
variações contínuas no tempo presentes no sinal a ser digitalizado.
   Para digitalizar um sinal analógico, são necessárias no mínimo quatro etapas:
       1. Filtragem Anti-Aliasing;
       2. Amostragem;
       3. Quantização;
       4. Codificação.
   Contudo, antes de iniciar a descrição dos processos de digitalização é conveniente
lembrar o Teorema de Amostragem de Nyquist.

                         A frequência de amostragem de um sinal analógico, para que possa
                         posteriormente ser reconstituído com o mínimo de perda de informação, deve
                         ser igual ou maior a duas vezes a maior frequência do espectro desse sinal.

    Em outras palavras, a quantidade de amostras por unidade de tempo de um sinal,
chamada taxa ou frequência de amostragem, deve ser maior que o dobro da maior
frequência contida no sinal a ser amostrado, para que possa ser reproduzido
integralmente.
22


    A metade da frequência de amostragem é chamada frequência de Nyquist e
corresponde ao limite máximo de frequência do sinal que pode ser reproduzido.

3.1.1 Filtro Anti-Aliasing
    Em Petry (2002), é visto que um sinal de voz muitas vezes não possui uma limitação
constante em frequência e pode possuir componentes de frequência em uma faixa de
amplitudes bastante larga. Então como não é possível garantir que o sinal não contenha
frequências acima da frequência de Nyquist (distorções, interferências, ruídos, etc.), é
necessário filtrar o sinal com um filtro passa-baixas chamado filtro Anti-Aliasing com
frequência de corte igual (ou menor) a frequência de Nyquist objetivando suprimir as
componentes de frequência do sinal analógico superior à frequência de Nyquist.




      Figura 3.1: Filtragem e digitalização do sinal analógico (CIPRIANO, 2001)
     Na figura 3.1 acima pode-se ter uma visão mais clara do contexto do filtro Anti-
Aliasing no processo de digitalização do sinal. Onde primeiramente o sinal analógico é
filtrado e convertido em sinal digital para então ser aplicado a algum processamento
digital.
   Após a aplicação do filtro Anti-Aliasing é iniciado o processo de conversão A/D
(RABINER e JUANG, 1978) composto pelas fases de amostragem, quantização e
codificação que serão brevemente detalhadas a seguir.

3.1.2 Amostragem
    O som se propaga no espaço na forma de onda, essa onda por ser um sinal analógico
possui infinitas variações através do tempo. Para tornar possível a medição dessas
variações, se faz necessário utilizar técnicas que captam amostras regulares do sinal
analógico e os codifique em um conjunto sequencial que expressam a informação da
onda sonora de uma forma simplificada, mas os mesmo tempo sem perder a essência de
sua informação. De acordo com Castro (2006), o processo de amostragem é “o processo
através do qual o sinal contínuo no tempo é transformado em um sinal discreto no
tempo”, segundo Filho (2006), “a amostragem é o processo que consiste em caracterizar
a forma analógica da onda como uma sequência de números tomados a intervalos
regulares, onde cada um indica um valor para a amplitude de um sinal em um
determinado instante” – ver figura 3.2.
23




  Figura 3.2: Exemplo do processo de amostragem do sinal contínuo (FILHO, 2006)
    Na amostragem é definida uma frequência de amostragem que representa o número
de amostras registradas por segundo, os valores mais comuns para gravação de áudio
são de 8 KHz, 11 KHz, 16 KHz, etc. Quanto maior for a frequência de amostragem
maior será a qualidade do áudio digitalizado, e consequentemente menor a possibilidade
do reconhecimento resultar em erros. Há um índice comparativo descrevendo a redução
da taxa de erros de reconhecimento conforme o aumento da frequência de amostragem
expressa pela tabela 3.1 (HUANG, ACERO e HON, 2001).


           Tabela 3.1: Taxa de erros em relação à frequência de amostragem
        FREQ. DE AMOSTRAGEM         REDUÇÃO RELATICA DA TAXA DE ERROS

                 8000 Hz                          Limite Mínimo
                11000 Hz                              +10%
                16000 Hz                              +10%
                22000 Hz                           Sem Redução


    Na tabela 3.1 percebe-se uma diminuição significativa na taxa de erros conforme o
aumento da frequência de amostragem o que comprova a sua importância ao
reconhecimento, contudo essa redução sessa ao se alcançar o patamar de 22 KHz onde a
partir daí, não há aumento significativo na qualidade do áudio.
   É importante comentar que, na amostragem, pode ocorrer um efeito negativo
chamado aliasing e isso é evitado utilizando previamente o filtro Anti-Aliasing descrito
anteriormente.
   Porém somente o processo de amostragem não é suficiente para caracterizar o sinal
captado, pois não oferece parâmetros próximos o suficiente da correta representação da
onda analógica. Para resolver esse fato emprega-se a quantização.
24


3.1.3 Quantização
                       Processo que transforma um sinal discreto (resultado da amostragem), nos
                       sinais digitais que são filtrados pelo processador. Tanto a amostragem quanto
                       a quantização são realizadas por um conversor analógico digital, sendo a
                       quantização um processo descrito em nível de bits, e.g., um CD de áudio é
                       amostrado a uma freqüência de 44.100 Hz e quantizado com 16 bits.[...].
                       Embora ocorram perdas na representação do sinal, o processo de quantização
                       gera uma aproximação bastante satisfatória e mais facilmente tratável em
                       sistemas computacionais (FILHO, 2006).

   Complementando, Castro (2006) sustenta que quantização é o “processo através do
qual um sinal contínuo em amplitude é transformado em um sinal discreto em
amplitude”.




         Figura 3.3: Sinal analógico digitalizado e quantizado (FILHO, 2006).
    A Figura 3.3(a) mostra um sinal digitalizado, e a figura 3.3(b), o mesmo sinal
quantizado. Em 3.3(a) o sinal contínuo é transformado em sinal digital, utilizando um
conjunto de possíveis valores discretos, através do processo de amostragem. Em 3.3(b)
o sinal é quantizado para obter uma aproximação maior do sinal original.
    Quanto maior for o nível de quantização maior será a qualidade do sinal digital, por
exemplo, se for utilizada uma conversão de 8 bits, obtém-se 256 níveis de quantização
(TAFNER, 1996), e com uma possiblidade maior de variações, maior será a semelhança
entre o sinal analógico capturado e sua respectiva representação no formato digital.


3.1.4 Codificação
    O processo de codificação é expresso num formato sequencial binário dos resultados
obtido e refinados nos processos de amostragem e quantização (CASTRO, 2006).
25


     Tabela 3.2: Codificação do sinal em uma sequência numérica de base binária
                                  (CASTRO, 2006).




   Na codificação expressa pela tabela 3.2, cada amostra é mapeada em uma sequência
com valores associados a um número representado por N bits. Cada número representa
um valor, que depende do mapeamento do código adotado.

3.1.5 Pulse Code Modulation (PCM)
   Como visto na seção anterior os valores quantizados precisam ser codificados em
sequências de bits. Para realizar esta codificação pode-se utilizar o PCM que é um tipo
de codificador de forma de onda simples, cujo objetivo é reproduzir o sinal analógico
amostra por amostra através dos processos de amostragem, quantização e codificação
(ELIAS, 2006) (KUTWAK, 1999).
   No PCM cada pulso amostrado de amplitude variável é transformado em uma
sequência de bits com amplitude fixa e valores binários, com um código tal que
representa o valor do pulso amostrado original, arredondado pelo erro de quantização
(ELIAS, 2006).




            Figura 3.4: Processo de codificação PCM (ZURMELY, 2010).
26


    Pode-se notar na figura 3.4, que nos instantes de amostragem, os sinais são
amostrados usando como parâmetro sinalizações ao longo do tempo, já na quantização
os sinais são adicionalmente parametrizados ao longo de sua amplitude, em seguida
estes parâmetros são codificados em um formato binário.
    A principal vantagem da Codificação PCM é a pouca complexidade e a alta
qualidade obtida na digitalização do sinal, sua desvantagem é relativa alta taxa de
transmissão (KUTWAK, 1999).

3.2 Wave File Format
   O arquivo PCM normalmente é armazenado em um formato de arquivo de áudio
Wave. O Wave é um subconjunto da especificação RIFF da Microsoft para o
armazenamento de arquivos multimídia (WILSON, 2003).
   Um arquivo RIFF começa com um cabeçalho do arquivo seguido por uma sequencia
de blocos de dados, conforme pode ser visto na figura 3.6.




                    Figura 3.5: Formato Wave (WILSON, 2003).
   A área de dados do arquivo Wave é armazenada num vetor de bytes que contém
todos os pontos amostrados. Cada elemento do vetor corresponde a uma amostra de 1
byte, correspondendo a valores decimais de +127 a -128 que representam os pulsos
quantizados de amplitude.
    Neste trabalho o bloco do cabeçalho utilizado foi o “Subchunck2Size” que é
resultado do cálculo: NumSamples*NumChannels*BitsPerSample/8 (WILSON, 2003).
Nele está contido um número em bytes representando o tamanho do bloco data, que
27


contém os dados amostrados. O número de amostras reais do arquivo Wave pode ser
extraído pela seguinte equação:



   Onde Na representa o número real de amostras e Wl representa o tamanho total do
vetor de bytes Wave.

3.3 MMAPI
    A Mobile Media API (MMAPI) oferece um grande apoio pra se trabalhar com
mídias em dispositivos móveis. Com ela cria-se uma liberdade e um acessibilidade aos
serviços de multimídia nativos em determinados dispositivos móveis, permitindo a
reprodução de vídeo, áudio, captura de som e imagens, utilizando o Java ME
(ORACLE, 2010). Também a MMAPI disponibiliza uma flexibilidade na configuração
usada para a captura onde o desenvolvedor pode escolher a codificação e suas
características de conversão A/D (taxa de amostragem, bits por amostra, etc.).

3.3.1 MMAPI, JSR 135
    Segundo o autor do livro “Pro Java ME MMAPI Mobile Media API for Java Micro
Edition” Goyal (2006) a MMAPI, é uma API opcional que prove suporte a recursos
multimídia, como reprodução, edição e captura de áudio e vídeo a partir de diversas
fontes. A MMAPI atualmente se encontra na versão 1.1 e já é suportada pela maioria
dos dispositivos que suportam MIDP 2.0. A JSR 135 que define a MMAPI, não
depende de protocolos ou formatos de arquivos, esse suporte a diferentes formatos é de
responsabilidade do fabricante do dispositivo. Essa flexibilidade permite a possibilidade
de reprodução de qualquer formato de arquivo especificado pelo fabricante.
   Embora a ênfase principal da MMAPI seja sobre os dispositivos que implementam
perfis com base em CLDC, seu projeto também visa apoiar os dispositivos que
implementam perfis com base no CDC.
    A MMAPI é integrada nesse trabalho, pela vantagem de permitir acesso fácil e
rápido para captura e execução de áudio em dispositivos móveis. Somado ao fato de que
não há outra API de suporte multimídia semelhante à MMAPI no momento (ORACLE,
2010).
   Funcionamento
   O processo de funcionamento da MMAPI pode ser dividido em duas fases:
        Protocol handling – cuja responsabilidade é a captura da mídia, tal como a
         captura de áudio.
        Content handing – tem a função de processar os dados recebidos, ou seja,
         decodificar e renderizar enviando para os dispositivos de saída como o alto-
         falante.
28




        Figura 3.6 - Processo de Funcionamento da MMAPI (GOYAL, 2006).
   Arquitetura
   Na JSR 135 são utilizados dois tipos de objetos de alto nível: DataSource que
recebe a mídia e faz um encapsulamento do processo de controle do protocolo Player,
que controla o conteúdo fornecido por DataSource e, além disso, processa e envia para
o dispositivo de saída adequado, que pode ser um display ou alto-falante (GOYAL,
2006).

3.3.2 MMAPI e PCM
   A MMAPI dispõe de duas configurações extremas (mínimo/máximo) para a
codificação PCM do sinal de áudio capturado pelo dispositivo móvel (GOYAL, 2006):
        Mínimo: PCM com uma taxa de frequência de 8000 Hz, e 8 bits por amostra
         e um único canal (mono);
        Máximo: PCM a uma taxa de frequência de 22050 Hz, 16 bits por amostra, e
         dois canais (estéreo).
   Configurações intermediárias podem ser livremente escolhidas, desde que
suportadas pelo dispositivo.
    Para se descobrir as capacidades e as propriedades de codificação de áudio
suportadas por determinado dispositivo móvel basta utilizar a função genuína do Java
ME: System.getProperty(“audio.encodigns”), onde será retornado um vetor do tipo
String contendo o formato das codificações suportadas (GOYAL, 2006). Esta
verificação de formato pode ser obtida em Goyal (2006), na pagina 128 do seu livro, na
forma de um aplicativo que exibe na tela do dispositivo as codificações suportadas.
   No framework SRM o áudio capturado encontra-se em uma configuração PCM fixa
de 8 bits por amostra, entretanto permitindo a flexibilização da frequência de
amostragem.

3.4 RMS
  O Record Management Store (RMS), flexibiliza as aplicações em dispositivos
móveis através do recurso de persistência de dados.
29


    No RMS é possível armazenar as informações manipuladas nas aplicações dos
dispositivos de uma maneira persistente, sem que elas sejam perdidas quando o
dispositivo for desligado.

                      [...] cada record store pode ser visualizado como uma coleção de registros,
                      que continuarão a ser persistente em várias invocações do MIDlet. A
                      plataforma de dispositivo é responsável por fazer o seu melhor esforço para
                      manter a integridade dos record stores do MIDlet durante o uso normal da
                      plataforma, incluindo reinicializações, mudanças de bateria, etc [...] (SUN,
                      2006).




                  Figura 3.7: Interface Java ME RMS (SUN, 2008)
    Segundo o site Java Tips (SUN, 2008) um record store é a única forma de
armazenamento persistente que um dispositivo CLDC é obrigado a suportar . O record
store é um conjunto de elementos de dados não formatado, cada um identificado por um
número inteiro único, também chamado de ID.
    “Esse      sistema     é     implementado        através  da    classe    javax.
microedition.rms.RecordStore, que fornece o acesso de abertura, fechamento, escrita e
leitura de dados no vetor de bytes que o consiste” (COSTA e GRAZZIOTIN, 2007).
    Nesse trabalho o RMS será usado para armazenar informações importantes ao
reconhecimento e ao funcionamento do framework.
30




4 EXTRAÇÃO DE INFORMAÇÃO


   A extração da informação útil do sinal digital de som visa gerar um conjunto de
características que diferenciam de maneira reconhecível os eventos de cada elocução
representada digitalmente (PETRY, ZANUT e BARONE, 2000) (CIPRIANO, 2001).
   A metodologia para a extração de informação do sinal seguida por este trabalho é
baseada em diversas obras da literatura moderna tais como (PETRY, 2002),
(CUADROS, 2007), (SILVA, 2009) (PETRY, ZANUT e BARONE, 2000), entre
outros. Também é adicionada a esta metodologia a técnica de pré-processamento
chamada Inversão de Sinal proposta por este trabalho e descrita na subseção 6.4.1.
    Na figura 4.1 a seguir pode-se observar todas as etapas presentes na extração da
informação do sinal no contexto deste trabalho destacando a parte que é implementada
pelo framework SRM.




       Figura 4.1: Etapas que compõe a extração de informação do sinal de som
    Abaixo então, são detalhados os processos que compõe a fase de extração de
informação. A seção 4.1 descreve a etapa de pré-processamento. Na seção 4.2 é
31


apresentada a analise espectral. E na seção 4.3 o processo de extração dos coeficientes
MFCC.

4.1 Pré-Processamento
    O pré-processamento visa preparar o sinal para a análise espectral, auxiliando no
processo de parametrização enfatizando os eventos contidos em cada sinal. Sua
aplicação ao sinal é dividida em etapas de acordo com a figura 4.2.




                       Figura 4.2: Etapas do pré-processamento
   Abaixo são descritas suas etapas conforme a figura 4.2.

4.1.1 Detecção de Extremos
    A detecção de extremos visa recortar o sinal de som de modo a obter somente o
segmento do sinal contendo a elocução, eliminando os períodos considerados como
silêncio. Esta técnica permite aumentar a distinção das informações presente em
diferentes sinais (LIMA, 2000).

4.1.2 Inversão de Sinal
   Como a Inversão de Sinal é um proposta deste trabalho, a mesma não pode ser
caracterizada neste capítulo referente à fundamentação teórica, e juntamente com o
algoritmo de detecção de extremos proposto, é explicada na subseção 6.4.1.

4.1.3 Pré-Ênfase
    Normalmente o sinal depois de filtrado pelo filtro Anti-Aliasing e digitalizado pelo
conversor A/D é em seguida aplicado a um filtro de pré-ênfase (PETRY, ZANUT e
BARONE, 2000) (RABINER e JUANG, 1978) (SILVA, 2009), objetivando nivelar seu
espectro compensando a atenuação de 6dB/oitava nas altas frequências. Esta atenuação
espectral é decorrente de características fisiológicas do trato vocal que podem ser
removida através da aplicação deste filtro (PETRY, 2002), O filtro pré-ênfase é aplicado
ao sinal através da equação abaixo:
                               [ ]    [ ]         [      ]
   Onde y é o sinal pré-enfatizado, s é o sinal de som amostrado, n é a quantidade de
amostras e é o coeficiente de pré-ênfase com o valor entre 0.9 e 1 (RABINER e
JUANG, 1978). Na figura 4.3 pode-se perceber a mudança no espectro de frequências
antes e depois da aplicação de pré-ênfase.
32




       Figura 4.3: Espectro de frequências sem e com pré-ênfase (PETRY, 2002)
   O filtro pré-ênfase também é usado para equalizar o espectro de som e melhorar o
desempenho da análise espectral atenuando sinais de baixa frequência e fazendo com
que sinais agudos sejam destacados (CIPRIANO, 2001).
    Neste trabalho o filtro pré-enfase é aplicado logo após o sinal passar pelo processo
de Inversão de Sinal.

4.1.4 Janelamento
   Em todas as aplicações práticas de processamento de sinais, é necessário se trabalhar
com pequenas porções ou frames do sinal. O janelamento consiste em segmentar o sinal
pré-enfatizado através da divisão do sinal em janelas a fim de obter estas pequenas
porções. Pois se considera que os parâmetros do trato vocal variam lentamente no
decorrer do tempo. Assim para intervalos de 10 à aproximadamente 30 milissegundos
assume-se que as variações no modelo do trato vocal não se alteram, podendo ser
consideradas estacionárias (RABINER e JUANG, 1978) (CIPRIANO, 2001) (LIMA,
2000) (PETRY, ZANUT e BARONE, 2000) (PETRY, 2002) (SILVA, 2009).
    Uma boa analogia para entender a divisão em janelas do sinal, seria comparar as
janelas a frames em um vídeo, os mesmos representam estaticamente algum momento
de imagem, e seu conjunto corresponde a um vídeo em si.
    Entre as janelas existentes (Retangular, Bartlett, Blackman, Hanning, Welch), a que
é tipicamente utilizada por autores de reconhecimento de voz, e consequentemente a
que se mostra mais interessante é a janela de Hamming ou do inglês Hamming Window.
    A janela de Hamming pode usada para realizar a segmentação do sinal, ou pode ser
aplicada a um sinal já segmentado. Sua função é suavizar as bordas de cada segmento
que por consequência da segmentação podem conter variações abruptas do sinal. Essa
suavização é realizada pelo próprio aspecto da janela e também pela sobreposição entre
janelas. Na figura 4.4 se pode compreender o aspecto teórico (a), e prático (aplicado a
um sinal qualquer) (b), de uma janela de Hamming:
33




                            Figura 4.4: Janela de Hamming
   E sua função de aplicação ao sinal é dada pela seguinte equação:



                 [ ]    {                 (       )



    Aplicar uma janela a um sinal no domínio de tempo corresponde a multiplicar o
sinal pela função que representa a janela. Uma vez que a multiplicação no domínio de
tempo equivale a convolução no domínio de frequência, a aplicação da janela no
domínio de tempo altera a forma do sinal também no domínio de frequência (RABINER
e JUANG, 1978) (ANDRADE e SOARES, 2005).
   A sobreposição das janelas pode ser disposta conforme a figura 4.5.




              Figura 4.5: Janelas de Hamming com sobreposição de 50%
    A sobreposição das janelas pode variar de 0% a 70%. A figura 4.5 exemplifica uma
aplicação de janelas de Hamming com sobreposição de 50%. Uma sobreposição alta
permite uma transição mais suave dos parâmetros extraídos, porém, estimativas
amplamente suavizadas podem ocultar variações reais do sinal (CIPRIANO, 2001).
34


Caso a última janela ultrapassar os limites do sinal, deve-se completar com zeros até o
final da janela, como mostrado na janela 5 da figura 4.5.
   Como explicado, o janelamento permite a fragmentação do sinal de som em quadros
onde o sinal pode ser considerado estacionário. Essa característica é útil para aplicação
em seguida da Transformada Rápida de Fourier (FFT). Escolher o tipo, tamanho e
sobreposição de uma janela, é muito importante para resultados otimizados de
reconhecimento e também de performance de processamento, fator este fundamental no
contexto móvel.
    Outra janela utilizada no processamento de sinal de voz é a janela retangular. Ela é a
mais simples de ser aplicada, pois na pratica aplicar uma janela retangular significa não
aplicar janela nenhuma, e somente dividir o sinal em segmentos, mantendo seu valor de
magnitude anterior (ANDRADE e SOARES, 2005). Esta janela pode ser útil em
algoritmos de detecção de extremos.
   Após o processo de janelamento o sinal está pronto para ser modificado quanto a sua
representação pela análise espectral, nela é realizado o processo para converter sua
representação do domínio de tempo para o domínio de frequências. Isso se torna útil,
pois um sinal no domínio de frequência fornece informações mais convenientes ao
reconhecimento sobre suas características.

4.2 Análise Espectral
    A função da análise espectral é representar os parâmetros mais úteis do sinal no
domínio de frequências ao invés do domínio do tempo permitindo uma distinção mais
detalhada da composição fonética do sinal de som (SILVA, 2009). Essa característica é
principalmente utilizada no reconhecimento de voz, onde a principal diferença entre as
palavras se dá num domínio de frequências. Contudo, neste trabalho também é aplicada
ao reconhecimento de sons.




                              Figura 4.6: Análise espectral
    Na figura 4.6, pode-se entender onde a análise espectral se encaixa na extração de
informação, também é possível perceber que o sinal ao passar pela analise espectral tem
seu domínio de representação alterado para o domínio de frequências.
35


    A seguir são descritas as etapas que compõe a análise espectral presentes na figura
4.6.

4.2.1 Transformada Rápida de Fourier (FFT)
   A transformada rápida de Fourier (FFT) do inglês Fast Fourier Transform consiste
em uma família de algoritmos para calcular de uma forma mais eficiente a
Transformada Discreta de Fourier (DFT) e sua inversa. A DFT é um membro da família
de técnicas matemáticas usadas para realizar a análise de Fourier. A DFT permite
representar um sinal discreto no domínio tempo e transformar esse sinal para uma
representação discreta no domínio de frequências (GONÇALVES, 2004) (CERNA e
HARVEY, 2000).
    Considerando–se N amostras do sinal no domínio de tempo, denotadas f[k],
k=0,1,2,...,N-1, a DFT é data por um conjunto de N amostras do sinal no domínio de
frequência, denotadas por F[n], n = 0,1,2,...,N-1 e definidas pela equação:



                               [ ]    ∑ [ ]

   e sua inversa

                              [ ]       ∑ [ ]



    Porém o cálculo de uma transformada discreta de Fourier exige muito
processamento computacional (envolvendo um número considerável de somatórios,
integrações e substituições) e se torna inviável para o processo de análise espectral de
um sinal de som. Em virtude desta complexidade, algoritmos de resolução da
transformada discreta de Fourier foram desenvolvidos e aperfeiçoados no decorrer do
tempo. O algoritmo mais conhecido de resolução desta transformada é o FFT. Com o
FFT foi possível calcular uma DFT com seu algoritmo de ordem de complexidade n²,
com um algoritmo de ordem de complexidade igual n.log2.n (CERNA e HARVEY,
2000).
    Desta maneira a FFT reduz expressivamente os cálculos matemáticos usados para
realizar a análise de Fourier. Para fins explicativos, abaixo é apresentado, através da
figura 4.7, um gráfico com o tempo de processamento que a FFT consumiu conforme o
aumento de pontos numa escala de potencia de 2, em um teste realizado no emulador
SDK 3.0, utilizado variáveis ponto-flutuantes do tipo float.
36



                            140
                            120
                            100


               Tempo (ms)
                            80
                            60
                            40
                            20
                             0
                                  128   256      512     1024    2048       4096   8192
                                              Número de pontos de entrada


           Figura 4.7: Desempenho da FFT em relação ao aumento de pontos
    É importante lembrar que a FFT não é um tipo diferente de transformada e sim uma
técnica que possibilita calcular a DFT de forma muito mais rápida e econômica.
    Existem vários algoritmos usados para computar a FFT, entre eles podem ser citados
o radix-2, radix-8, Split-radix, e prime-factor. O mais conhecido destes é o radix-2, que
foi utilizado neste trabalho embora não seja o mais rápido. Devido a características do
algoritmo radix-2, o cálculo da FFT requisita um tamanho de vetor de entrada igual a
uma potencia de 2 (128, 256), o que reduz o custo computacional do algoritmo
diminuindo consideravelmente o número de operações (YOMA, 1993). Caso o tamanho
do vetor de entrada não seja uma potencia de 2 emprega-se a técnica de Zero Padding
nas janelas que simplesmente complementa o tamanho inicial do vetor para um tamanho
igual a uma potencia de 2 através da atribuição de zeros no final do vetor.
    Uma vez que a transformada de Fourier é executada como saída tem-se a parte real
e a imaginária que correspondem as funções base utilizadas na FFT chamadas funções
cosseno e seno – ver figura 4.8.




 Figura 4.8: Esquema de saída da FFT e a aplicação de sua inversa (JNECZKO, 2010)
    Com estes vetores de saída da FFT pode-se calcular o espectro de magnitude, que
representa os valores de amplitude de toda componente de frequência, e um espectro de
fase que fornece o valor inicial da fase de cada componente de frequência ao longo da
37


duração do sinal. O espectro de magnitudes pode ser obtido através da seguinte equação
(CERNA e HARVEY, 2000):

                           [ ]      √       [ ]               [ ]

   e o espectro de fase:
                                                      [ ]
                                 [ ]             (        )
                                                     [ ]


    Onde P é o espectro de fase, M é o espectro de magnitude, real é a parte real de
saída da FFT, imag é a parte imaginária de saída da FFT e n é o número de pontos de cada
janela imposta à da FFT.

4.2.2 Espectro de Potências
   Cada índice do espectro de magnitude de saída da FFT representa uma frequência
com uma determinada amplitude. Contudo a primeira metade da magnitude é simétrica
em relação a sua segunda metade. Então descarta-se a segunda metade (CUADROS,
2007), resultando em um vetor de tamanho N/2.
  O espectro de potências da FFT pode ser obtido simplesmente elevando o módulo da
magnitude ao quadrado:
                              [ ]       | [ ]|


    Onde Pw é o espectro de potências e M é o espectro de magnitude. O espectro de
potências terá então um tamanho N/2 devido à simetria do vetor de magnitude, onde N é
o tamanho inicial da janela aplicada a FFT, ou seja, o número de pontos da FFT.

4.3 Extração dos Parâmetros
    Esta é a ultima etapa da extração de informação (SPHINX-4, 2008). Após a
realização de uma análise espectral do sinal de som, é preciso determinar um conjunto
de parâmetros capazes de diferenciar cada evento (CIPRIANO, 2001). A ideia básica da
extração de parâmetros é a de uma redução no volume de dados de forma a gerar apenas
um conjunto pequeno de parâmetros, porém contendo informações suficientes para a
caracterização do sinal. Para isso os parâmetros extraídos no processo de análise
espectral devem ser o máximo invariante de interferências externas, como ruído de
fundo, transdutor e locutor, reduzindo as taxas computacionais sem muita perda de
informação (CIPRIANO, 2001).
   Neste trabalho foi utilizada a extração de parâmetros através dos coeficientes Mel-
Cepstrais (MFCC do inglês Mel-Frequency Cepstral Coefficients).

4.3.1 Coeficientes Mel-Cepstrais (MFCC)
    De acordo com Petry (2002), Mel é “uma unidade de frequência ou picos percebidos
de um som”, amplamente utilizada no reconhecimento de voz e que procura aproximar-
se da sensitividade de frequências do ouvido humano.
38


    A ideia da escala Mel surgiu em 1940, através de um experimento realizado por
Volkman e Stevens. Neste experimento foi arbitrado que 1000 Hz seriam iguais a 1000
Mels, e foi se alterando a frequência de um determinado sinal e perguntando as pessoas
que contribuíam para os testes quanto de aumento elas notavam na frequência (LIMA,
2000). Terminada esta pesquisa, foi comprovado então que a percepção do ouvido
humano para as frequências sonoras não segue uma escala linear (SILVA, 2009). Isso
pode ser melhor observado através da figura 4.9. Onde as escalas de frequência em Hz e
as em Mel são comparadas.




    Figura 4.9 - Variação logarítmica da escala Mel em relação a Hz (LIMA, 2000)
   Na escala Mel cada frequência linear medida em Hz associa-se um valor computado
por essa escala medido em Mels, ou seja, uma representação de frequência na escala
Mel. Seja f uma frequência física linear medida em Hz, pode-se calcular a representação
Mel denotado por m desta frequência pela equação abaixo:


                                              (           )


   E para transformar uma frequência Mel em uma frequência linear (Hz), aplica-se:


                                              (   )
                                          (           )


    A técnica de extração de parâmetros MFCC baseia-se no uso do espectro de som
alterado segundo a escala Mel (SILVA, 2009). As etapas necessárias segundo a
metodologia descrita por Rabiner et al (1978), para a se adquirir os coeficientes MFCC
podem ser observadas através da figura 4.10.
39




                    Figura 4.10: Etapas da extração dos parâmetros
    Para obtenção dos coeficientes MFCC, filtra-se cada janela de espectro de potencias
por um banco de filtros triangulares na escala Mel. Geralmente usa-se 20 filtros passa-
banda igualmente espaçados. Sendo 10 filtros uniformemente espaçados no eixo da
frequência até 1000 Hz e acima de 1000 Hz as faixas são distribuídas segundo uma
escala logarítmica (RABINER e JUANG, 1978) (PETRY, 2002) (LIMA, 2000) – ver
figura 4.11.




  Figura 4.11: Exemplo de banco de 20 filtros triangulares espaçados de acordo com a
                             escala Mel (LIMA, 2000).
     A aplicação do banco de filtros objetiva reduzir o espectro de potencias para uma
sequencia acumulada de valores de potencia, em bandas de frequência diferentes. Além
disso, aplicar os filtros também diminui a dimensão do vetor do espectro de potências
para um tamanho igual ao número de filtros adotado. Os elementos de um segmento que
passam por um mesmo filtro são somados para originar um único elemento para cada
filtro naquele segmento (RABINER e JUANG, 1978) (SPHINX-4, 2008).
    As constantes que definem um banco de filtros são o número de filtros, a frequência
mínima, e a frequência máxima. A frequência mínima e a máxima determinam a faixa
de frequência abrangida pelo filtro. Essas frequências dependem do canal e a frequência
de amostragem que se esta usando (SPHINX-4, 2008). Para telefonia, uma vez que o
canal telefônico corresponde a um filtro passa-banda com frequências de corte de cerca
de 300Hz e 3700Hz, limites de uso mais amplo do que estes seriam resíduos de largura
de banda. Já para voz, a freqüência mínima de interresse geralmente é maior do que
100Hz, já que não há informação de som abaixo desta frequência (SPHINX-4, 2008).
40


    Para a construção dos filtros Mel, considera-se que sejam distribuídos k filtros na
frequência de Nyquist sobre o espectro linear (espectro de potencias) P. As frequências
centrais fc destes filtros, distribuídas linearmente na escala Mel são calculadas segundo
as etapas a seguir (BOERSMA e WEENINK, 2001):
   1. Cálculo da largura de banda de Nyquist na escala Mel:


                                                    (             )


   2. Cálculo das frequências centrais dos filtros MFC:


                                                        (     )
                                                (                 )


   3. Cálculo da função de transferência (H):
           As funções do filtro passa-banda em escala mel são usadas de forma
           triangular sobre uma escala de frequência linear f. A função do filtro depende
           de três parâmetros: a fl que correspondente a menor freqüência, a frequência
           fc que é a frequencia central e fh que é a maior frequência. Em uma escala
           Mel, as distâncias fc-fl e fh-fc são as mesmas para cada filtro, sendo iguais
           para a distância entre fc de filtros sucessivos. A função do filtro é expressa
           pela seguinte equação (ZHOU e HAN, 2009) (BOERSMA e WEENINK,
           2001):




                                [ ]

                                      {
           Onde k é o número de filtros e f é o índice correspondendo a frequência
           proporcional abrangida pelo filtro sobre o espectro de potências.
   4. Cálculo do valor acumulado de potencia no k-ésimo filtro:
           O espectro de potencias P é multiplicado pelo banco de filtros Mel e
           convertido para o espectro Mel. Onde o valor de energia acumulado para
           cada filtro é dado por (ZHOU e HAN, 2009):


                                        [ ]   ∑             [ ] [ ]



      Onde X[k] é a energia de saída do k-ésimo filtro triangular, P é o espectro de
   potencias e N é o número de pontos da FFT.
41


      Após estes procedimentos obtém-se um vetor contendo a energia de saída de
   cada filtro em relação ao espectro de potências, representado pela figura 4.12
   abaixo.




                    Figura 4.12: Energia de saída do banco de filtros
   De posse da energia de saída de cada filtro triangular, calcula-se o logaritmo na base
10 (ln) da sequencia obtida através da equação abaixo objetivando obter os coeficientes
cepestros (ZHOU e HAN, 2009)(YOMA, 1993) (PETRY, 2002) (RABINER e JUANG,
1978).


                                     [ ]           [ ]


   Então, aplica-se a transformada discreta do cosseno ou DCT (do inglês Discrete
Cossine Transform) sobre estes valores para gerar os coeficientes MFCC, pois foi
provado, que para uma sequencia de números reais a DCT é equivalente ao cálculo da
FFT inversa (SPHINX-4, 2008). A equação para efetuar a DCT é apresentada a seguir
(RABINER e JUANG, 1978) (LIMA, 2000):



                           [ ]    ∑ [ ]        (             )



    Onde n representa o índice do coeficiente MFCC, k o índice do filtro, M o número
total de filtros e L o logaritmo da energia de saída k-ésimo filtro do banco.
    Obtendo desta maneira os coeficientes MFCC. Normalmente como processo
adicional e 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.
42




5 RECONHECIMENTO


   O sinal de som, após passar pela fase de extração de informação, é expresso em um
conjunto de parâmetros que representam informações deste mesmo sinal. A partir disso,
pode-se iniciar a etapa de reconhecimento utilizando alguma técnica capaz de
reconhecer os parâmetros gerados e definidos como padrões em relação a um conjuntos
de parâmetros MFCC representado o sinal a ser reconhecido.
   Neste trabalho entende-se por padrão um conjunto de coeficientes MFCC extraídos
do processo de extração de informação de um sinal de som que se deseja definir como
padrão.
    Uma questão chave no reconhecimento de som é como comparar os padrões de som
pela sua similaridade (ou equivalência, a distância entre os padrões). Dependendo do
tipo de sistema de reconhecimento, a comparação de padrões pode ter uma grande gama
de variações (RABINER e JUANG, 1978).
    O desempenho dos sistemas de reconhecimento gira em torno do número de padrões
estabelecidos para comparação. Quanto maior for o número de padrões a serem
comparados, maior será a requisição de processamento pelo sistema e
consequentemente maior será o tempo de reconhecimento (OLIVEIRA, 2002). Em
dispositivos portáteis este problema se agrava, principalmente o de processamento (já
que a capacidade de armazenamento está mais flexível atualmente), então torna-se
necessário contornar este problema com técnicas que ofereçam baixo custo
computacional mas também permitem um reconhecimento confiável.
    Com base nos fatores citados acima, este trabalho adotou para o reconhecimento, a
Dinamic Time Warping (DTW), cujo principal objetivo é determinar distâncias (através
do uso em seu algoritmo da distância Euclidiana) dos padrões armazenados. Sua
principal vantagem é o baixo custo computacional e a capacidade de eliminar variações
temporais entre as elocuções. Conforme visto em Yoma (YOMA, 1993), a DTW se
encaixa perfeitamente no contexto de reconhecimento de palavras isoladas dependente
de locutor.

5.1 Dinamic Time Warping (DTW)
   A Dynamic Time Warping (DTW), ou Modelagem Determinística é um algoritmo
para calcular o caminho ótimo entre duas séries temporais (FURTUNĂ, 2008). O
algoritmo da DTW é introduzido para contornar o problema causado pelas variações de
velocidade de pronunciação de palavras como pode ser observado na figura 5.1
(YOMA, 1993). Em sua versão “solo” a DTW surgiu no final da década de 70, sendo
que também é utilizado hoje em dia nos HMM (Modelos Ocultos de Markov), onde é
mais conhecido como algoritmo de decodificação de Viterbi.
43




                      Figura 5.1: Exemplo de diferença temporal
    Esta modelagem utiliza os parâmetros do sinal de voz como padrões de teste e
referencia, junto com alguma métrica apropriada para a comparação dos mesmos, tendo
baixo custo (CIPRIANO, 2001). Uma frequente métrica utilizada para comparação é o
calculo de distância vetorial entre os padrões (FURTUNĂ, 2008). Existem algumas
técnicas para o cálculo de distância vetorial, tais como a distância de Malahanobis
(PETRY, ZANUT e BARONE, 2000), a distância de Bhattacharyya (PETRY, 2002) e a
distância Euclidiana (FURTUNĂ, 2008), esta última, é a mais comumente usada no
reconhecimento de voz devido ao seu baixo custo computacional e simplicidade de
implementação.
    Considerando-se dois padrões de som R e T com N e M quadros de coeficientes
MFCC cada, correspondendo ao padrão de referencia e ao padrão de teste,
respectivamente. Os padrões R e T podem ser representados, depois de uma adequada
extração de informação, por sequencias espectrais, da seguinte maneira:




onde     e , n = 1,...,N e m = 1,...M, são os vetores de parâmetros de características
acústicas (CIPRIANO, 2001). Aplicando o DTW as sequencias R e T são comprimidas
ao longo do eixo temporal resultante para se obter um alinhamento não-linear
eliminando a diferença temporal. Esse processo pode ser observado de forma abstraída
pela figura 5.2.




      Figura 5.2: Alinhamento não-linear gerado pela DTW (CIPRIANO, 2001).
44


   Para este processo os quadros R e T são representados em um plano n-m, esboçados
na figura 5.3, e as distâncias temporais são descritas por uma sequencia de pontos
representados em uma matriz de distâncias mínima (CIPRIANO, 2001).




          Figura 5.3: Plano temporal dos padrões R e T (CIPRIANO, 2001).
   O objetivo do DTW então é encontrar o menor caminho ou caminho ótimo através
da menor distância da matriz de distâncias mínimas (FURTUNĂ, 2008). As distâncias
então são somadas e obtém-se uma distância mínima geral.
    Após a aquisição das distâncias entre o padrão de teste e todos os padrões de
referência, como visto em (YOMA, 1993) pode-se calcular os coeficientes de
seletividade de reconhecimento, para verificar se o reconhecimento foi bem sucedido ou
não.

5.1.1 Coeficientes de Seletividade de Reconhecimento
    Yoma (1993) descreve detalhadamente em seu trabalho os coeficientes de
seletividade de reconhecimento obtidos das distâncias da DTW. Estes coeficientes
servem para quantificar e qualificar uma determinada distância em relação às outras
distâncias obtidas e assim classificar se o reconhecimento pode ser considerado correto
ou não.
    De modo geral a menor distância encontrada tende a ser a palavra reconhecida,
porém, quando a palavra de teste pronunciada não corresponde a nenhuma palavra
contida no banco de padrões, mesmo a menor distância não pode ser considerada, pois
estaria errada.
   Este problema pode ser observado na figura 5.4.
45




   Figura 5.4 - Exemplo de erro de reconhecimento utilizando somente as distâncias
                                  mínimas da DTW
   Como exposto na figura 5.4, este exemplo acarretaria no reconhecimento da palavra
“um”, ou mesmo se a elocução de teste no lugar de “cinco” fosse, por exemplo, “zero”,
mas pronunciado de uma maneira não muito clara, mesmo assim, poderia acarretar erros
de reconhecimento devido às condições acústicas da palavra de teste. Baseado em
Yoma (1993) este trabalho adota então uma solução para analisar a qualidade do
reconhecimento através dos coeficientes de seletividade definidos por:
        C1 = menor distância entre a elocução 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 pertencem a mesma palavra da
         elocução de teste ou que não pertença ao padrão que resultou na menor
         distância geralmente sendo associada a segunda menor distância.
    Sendo assim, quanto menor for C1 melhor a qualidade do reconhecimento e quanto
maior forem C2 e C3 maior a qualidade do reconhecimento. Em Yoma (YOMA, 1993)
também são definidos outros dois coeficientes de seletividade: Sel1 e Sel2, pois as
parametrizações geradas por aquele trabalho geraram coeficientes numericamente
diferentes, dado que a distância final da DTW era a soma das distâncias entre os
quadros ao longo do caminho ótimo de comparação.
    Esta característica encontra em Yoma (YOMA, 1993), é a mesma presente neste
trabalho, ou seja, as distâncias resultantes da aplicação da DTW em vez de
caracterizarem um número maior que 0 e menor que 9, são resultado da soma das
distâncias do caminho ótimo, resultando em valores fora deste padrão. Então adota-se a
mesma abordagem encontrada em Yoma (YOMA, 1993) definindo dois novos
coeficientes:




    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 é
46


normalizada em relação à duração dos padrões de teste e de referencia, é 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.

5.2 Distância Euclidiana
    A distância euclidiana é uma métrica para computar a semelhança através da
distância entre duas distribuições vetoriais. Quanto menor for a distância calculada,
mais semelhantes são os padrões comparados. A distância euclidiana pode ser obtida
para duas sequencias através da seguinte equação:

                                          ∑| [ ]        [ ]|

   Onde x e y são duas sequencias de mesmo tamanho N.
    Embora a distância euclidiana não seja usada diretamente neste trabalho ela é
aplicada internamente no algoritmo de DTW.

5.3 Coeficiente de Correlação de Pearson
    O coeficiente de correlação de Pearson é uma medida do grau de relação linear entre
duas variáveis quantitativas. Este coeficiente varia entre os valores -1 e 1. O valor 0
(zero) significa que não há relação linear, o valor 1 indica uma relação linear perfeita e
o valor -1 também indica uma relação linear perfeita mas inversa, ou seja quando uma
das variáveis aumenta a outra diminui. Quanto mais próximo estiver de 1 ou -1, mais
forte é a associação linear entre as duas variáveis (MEDSTATWEB, 2009).
   O coeficiente de correlação de Pearson é normalmente representado pela letra r e a
sua fórmula de cálculo é a apresentada abaixo (MEDSTATWEB, 2009):


                                     ∑          ̅       ̅
                               √ ∑          ̅       ∑       ̅


    Neste trabalho o coeficiente de correlação de Pearson é utilizado somente para o
processo de treinamento de amostras (descrito na seção 6.8) que poderão ser definidas
como padrão, pois tem a vantagem de apresentar um baixo custo, e aliado à analise da
duração de tempo entre as elocuções tornou-se uma ferramenta útil no processo de
treinamento.
47




6 O FRAMEWORK SRM


   De um modo geral o SRM (Sound Recognizer ME) é um Framework para
reconhecimento de sons em dispositivos móveis. Mais especificamente, o SRM permite
dois tipos de reconhecimento, o reconhecimento de palavras isoladas dependente de
locutor e o reconhecimento de sons abstratos.

6.1 Capacidades
   Nas subseções a seguir são descritas as capacidades disponibilizadas por este
framework

6.1.1 Reconhecimento de palavras isoladas dependente de locutor
    Este tipo de reconhecimento habilita aplicações ao reconhecimento de palavras
isoladas dependentes de locutor. Esta capacidade foi definida principalmente devido a
limitações impostas atualmente pelos dispositivos móveis. Pois no reconhecimento
independente de locutor, se faz necessário um banco de amostras que são utilizadas para
um prévio treinamento para cada padrão (palavra) do sistema de reconhecimento, estas
amostras caracterizam-se normalmente pela diferenciação entre idade e sexo para a
mesma palavra, o que requisita um maior processamento e um maior espaço para o
armazenamento destas respectivas amostras.
   Outro fator muito importante na escolha quanto à dependência de locutor do SRM
aborda um contexto mais pessoal, pois como este framework é voltado para dispositivos
móveis, o reconhecimento geralmente se aplicará sobre ações que são geradas por
eventos mais pessoais correspondentes a cada usuário do dispositivo. Este fator pode ser
inconveniente caso o reconhecimento independente de locutor seja utilizado, sendo que
nestas circunstancias o usuário não deseje que elocuções de outras pessoas sejam
reconhecidas em seu dispositivo móvel.

6.1.2 Reconhecimento de som
   Outra característica do SRM é integrar ao reconhecimento sons abstratos que não
caracterizam uma palavra em si. Entre estes sons pode-se exemplificar um estalar de
dedos, campainha tocando, entre outros sons.

6.1.3 Vocabulário pequeno
   Com base em resultados obtidos nos testes, o SRM abrange um reconhecimento
sobre um vocabulário pequeno (menor ou igual a 20 padrões para reconhecimento).
Contudo este fator não limita a utilização do framework para um reconhecimento
envolvendo mais que 20 padrões, entretanto os desempenhos de reconhecimento nestas
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis
Srm framework para reconhecimento de som em dispositivos móveis

Weitere ähnliche Inhalte

Was ist angesagt?

A informatica nas aulas de matematica
A informatica nas aulas de matematicaA informatica nas aulas de matematica
A informatica nas aulas de matematicaHugoenildo Fernandes
 
24592439 drogas-e-bioquimica-departamento-de-bioquimica-usp
24592439 drogas-e-bioquimica-departamento-de-bioquimica-usp24592439 drogas-e-bioquimica-departamento-de-bioquimica-usp
24592439 drogas-e-bioquimica-departamento-de-bioquimica-uspLays Alacoque
 
Manual de Monografias - UNASP
Manual de Monografias - UNASPManual de Monografias - UNASP
Manual de Monografias - UNASPIasp
 
Sistema de Computação
Sistema de ComputaçãoSistema de Computação
Sistema de Computaçãorobinformata
 
Apostila de Maquinas termicas e_de_fluxo
Apostila de Maquinas termicas e_de_fluxo Apostila de Maquinas termicas e_de_fluxo
Apostila de Maquinas termicas e_de_fluxo Edimilson de Jesus Lana
 
Curso de Engenharia Florestal para Concursos
Curso de Engenharia Florestal para ConcursosCurso de Engenharia Florestal para Concursos
Curso de Engenharia Florestal para ConcursosEstratégia Concursos
 
CURSO DE FORMAÇÃO DE OPERADORES DE REFINARIA PROCESSOS DE REFINO ( Petrobras )
CURSO DE FORMAÇÃO DE OPERADORES DE REFINARIA PROCESSOS DE REFINO ( Petrobras )CURSO DE FORMAÇÃO DE OPERADORES DE REFINARIA PROCESSOS DE REFINO ( Petrobras )
CURSO DE FORMAÇÃO DE OPERADORES DE REFINARIA PROCESSOS DE REFINO ( Petrobras )Ricardo Akerman
 
"Cartilha da Propriedade Intelectual e da Propriedade Industrial: Marcas e Pa...
"Cartilha da Propriedade Intelectual e da Propriedade Industrial: Marcas e Pa..."Cartilha da Propriedade Intelectual e da Propriedade Industrial: Marcas e Pa...
"Cartilha da Propriedade Intelectual e da Propriedade Industrial: Marcas e Pa...allaymer
 

Was ist angesagt? (14)

A informatica nas aulas de matematica
A informatica nas aulas de matematicaA informatica nas aulas de matematica
A informatica nas aulas de matematica
 
24592439 drogas-e-bioquimica-departamento-de-bioquimica-usp
24592439 drogas-e-bioquimica-departamento-de-bioquimica-usp24592439 drogas-e-bioquimica-departamento-de-bioquimica-usp
24592439 drogas-e-bioquimica-departamento-de-bioquimica-usp
 
Manual de Monografias - UNASP
Manual de Monografias - UNASPManual de Monografias - UNASP
Manual de Monografias - UNASP
 
Steimacher dr
Steimacher drSteimacher dr
Steimacher dr
 
Sistema de Computação
Sistema de ComputaçãoSistema de Computação
Sistema de Computação
 
Musica
MusicaMusica
Musica
 
Colocar no blog[1]
Colocar no blog[1]Colocar no blog[1]
Colocar no blog[1]
 
Apostila de Maquinas termicas e_de_fluxo
Apostila de Maquinas termicas e_de_fluxo Apostila de Maquinas termicas e_de_fluxo
Apostila de Maquinas termicas e_de_fluxo
 
Atas 2011
Atas 2011Atas 2011
Atas 2011
 
Pbarros
PbarrosPbarros
Pbarros
 
Curso de Engenharia Florestal para Concursos
Curso de Engenharia Florestal para ConcursosCurso de Engenharia Florestal para Concursos
Curso de Engenharia Florestal para Concursos
 
Eletrotecnica basica
Eletrotecnica basicaEletrotecnica basica
Eletrotecnica basica
 
CURSO DE FORMAÇÃO DE OPERADORES DE REFINARIA PROCESSOS DE REFINO ( Petrobras )
CURSO DE FORMAÇÃO DE OPERADORES DE REFINARIA PROCESSOS DE REFINO ( Petrobras )CURSO DE FORMAÇÃO DE OPERADORES DE REFINARIA PROCESSOS DE REFINO ( Petrobras )
CURSO DE FORMAÇÃO DE OPERADORES DE REFINARIA PROCESSOS DE REFINO ( Petrobras )
 
"Cartilha da Propriedade Intelectual e da Propriedade Industrial: Marcas e Pa...
"Cartilha da Propriedade Intelectual e da Propriedade Industrial: Marcas e Pa..."Cartilha da Propriedade Intelectual e da Propriedade Industrial: Marcas e Pa...
"Cartilha da Propriedade Intelectual e da Propriedade Industrial: Marcas e Pa...
 

Ähnlich wie Srm framework para reconhecimento de som em dispositivos móveis

Engenharia de Usabilidade Aplicada a um Protótipo de Localização de Ambientes...
Engenharia de Usabilidade Aplicada a um Protótipo de Localização de Ambientes...Engenharia de Usabilidade Aplicada a um Protótipo de Localização de Ambientes...
Engenharia de Usabilidade Aplicada a um Protótipo de Localização de Ambientes...Lara
 
Normas para Apresentação dos Trabalhos Técnicos Científicos da UFRR
Normas para Apresentação dos Trabalhos Técnicos Científicos da UFRRNormas para Apresentação dos Trabalhos Técnicos Científicos da UFRR
Normas para Apresentação dos Trabalhos Técnicos Científicos da UFRRAdriano Medeiros
 
Usabilidade e Arquitetura de Informação de Websites de Governos Municipais
Usabilidade e Arquitetura de Informação de Websites de Governos MunicipaisUsabilidade e Arquitetura de Informação de Websites de Governos Municipais
Usabilidade e Arquitetura de Informação de Websites de Governos MunicipaisMarcelo Ramos
 
Apostila analise sensorial_2010-1
Apostila analise sensorial_2010-1Apostila analise sensorial_2010-1
Apostila analise sensorial_2010-1Adilson Silva
 
Caderno de normas_24_junho_2011
Caderno de normas_24_junho_2011Caderno de normas_24_junho_2011
Caderno de normas_24_junho_2011Edjailma Alves
 
Monotorização dos direitos humanos das pessoas com deficiencia em portugal a...
Monotorização dos direitos humanos das pessoas com deficiencia em portugal  a...Monotorização dos direitos humanos das pessoas com deficiencia em portugal  a...
Monotorização dos direitos humanos das pessoas com deficiencia em portugal a...CARLO Mantinni
 
Lp conteudo prof_3_ano
Lp conteudo prof_3_anoLp conteudo prof_3_ano
Lp conteudo prof_3_anoAmanda Bassi
 
Desenvolvimento de um portal para assinatura digital de arquivos
Desenvolvimento de um portal para assinatura digital de arquivosDesenvolvimento de um portal para assinatura digital de arquivos
Desenvolvimento de um portal para assinatura digital de arquivosJhonatas Lima
 
Avaliação de Usabilidade (Monografia)
Avaliação de Usabilidade (Monografia)Avaliação de Usabilidade (Monografia)
Avaliação de Usabilidade (Monografia)Rafael Marinho
 
Avaliação de Usabilidade
Avaliação de UsabilidadeAvaliação de Usabilidade
Avaliação de UsabilidadeMarcelo Ramos
 
Projeto de Interfaces Gráficas para Web
Projeto de Interfaces Gráficas para WebProjeto de Interfaces Gráficas para Web
Projeto de Interfaces Gráficas para WebAna Martins
 
Analise ergonomica-soldador
Analise ergonomica-soldadorAnalise ergonomica-soldador
Analise ergonomica-soldadorCosmo Palasio
 
Doc44 procimagens erdas
Doc44 procimagens erdasDoc44 procimagens erdas
Doc44 procimagens erdasOnaldo Nunes
 

Ähnlich wie Srm framework para reconhecimento de som em dispositivos móveis (20)

Tcc
TccTcc
Tcc
 
Engenharia de Usabilidade Aplicada a um Protótipo de Localização de Ambientes...
Engenharia de Usabilidade Aplicada a um Protótipo de Localização de Ambientes...Engenharia de Usabilidade Aplicada a um Protótipo de Localização de Ambientes...
Engenharia de Usabilidade Aplicada a um Protótipo de Localização de Ambientes...
 
Normas para Apresentação dos Trabalhos Técnicos Científicos da UFRR
Normas para Apresentação dos Trabalhos Técnicos Científicos da UFRRNormas para Apresentação dos Trabalhos Técnicos Científicos da UFRR
Normas para Apresentação dos Trabalhos Técnicos Científicos da UFRR
 
Usabilidade e Arquitetura de Informação de Websites de Governos Municipais
Usabilidade e Arquitetura de Informação de Websites de Governos MunicipaisUsabilidade e Arquitetura de Informação de Websites de Governos Municipais
Usabilidade e Arquitetura de Informação de Websites de Governos Municipais
 
Manual abnt-ufvjm
Manual abnt-ufvjmManual abnt-ufvjm
Manual abnt-ufvjm
 
Manual abnt-ufvjm
Manual abnt-ufvjmManual abnt-ufvjm
Manual abnt-ufvjm
 
Apostila analise sensorial_2010-1
Apostila analise sensorial_2010-1Apostila analise sensorial_2010-1
Apostila analise sensorial_2010-1
 
Caderno de normas_24_junho_2011
Caderno de normas_24_junho_2011Caderno de normas_24_junho_2011
Caderno de normas_24_junho_2011
 
Monotorização dos direitos humanos das pessoas com deficiencia em portugal a...
Monotorização dos direitos humanos das pessoas com deficiencia em portugal  a...Monotorização dos direitos humanos das pessoas com deficiencia em portugal  a...
Monotorização dos direitos humanos das pessoas com deficiencia em portugal a...
 
Lp conteudo prof_3_ano
Lp conteudo prof_3_anoLp conteudo prof_3_ano
Lp conteudo prof_3_ano
 
Desenvolvimento de um portal para assinatura digital de arquivos
Desenvolvimento de um portal para assinatura digital de arquivosDesenvolvimento de um portal para assinatura digital de arquivos
Desenvolvimento de um portal para assinatura digital de arquivos
 
Cristalizacao
CristalizacaoCristalizacao
Cristalizacao
 
Avaliação de Usabilidade (Monografia)
Avaliação de Usabilidade (Monografia)Avaliação de Usabilidade (Monografia)
Avaliação de Usabilidade (Monografia)
 
Avaliação de Usabilidade
Avaliação de UsabilidadeAvaliação de Usabilidade
Avaliação de Usabilidade
 
Boletim 2º quad. 2011
Boletim 2º quad. 2011Boletim 2º quad. 2011
Boletim 2º quad. 2011
 
Manual normalizacao
Manual normalizacaoManual normalizacao
Manual normalizacao
 
D márcio de sousa bolzan
D márcio de sousa bolzanD márcio de sousa bolzan
D márcio de sousa bolzan
 
Projeto de Interfaces Gráficas para Web
Projeto de Interfaces Gráficas para WebProjeto de Interfaces Gráficas para Web
Projeto de Interfaces Gráficas para Web
 
Analise ergonomica-soldador
Analise ergonomica-soldadorAnalise ergonomica-soldador
Analise ergonomica-soldador
 
Doc44 procimagens erdas
Doc44 procimagens erdasDoc44 procimagens erdas
Doc44 procimagens erdas
 

Srm framework para reconhecimento de som em dispositivos móveis

  • 1. UNIVERSIDADE REGIONAL DO ALTO URUGUAI E DAS MISSÕES URI – CAMPUS DE SANTO ÂNGELO DEPARTAMENTO DE ENGENHARIAS E CIÊNCIA DA COMPUTAÇÃO CURSO DE CIÊNCIA DA COMPUTAÇÃO MARCELO RUARO SRM: Framework para Reconhecimento de Som em Dispositivos Móveis Trabalho de Graduação. Prof. M. Sc. Denilson Rodrigues da Silva Orientador Santo Ângelo, dezembro de 2010.
  • 2. UNIVERSIDADE REGIONAL DO ALTO URUGUAI E DAS MISSÕES – URI Campus de Santo Ângelo Reitor: Luiz Mario Silveira Spinelli Pró-Reitor de Ensino: Rosane Vontobel Rodrigues Diretor Geral: Maurílio Miguel Tiecker Diretora Acadêmica: Neusa Maria John Scheid Diretor Administrativo: Gilberto Pacheco Cordenador do Departamento de Engenharia e Ciência da Computação: Márcio Antonio Vendrusculo Cordenador do Curso de Ciência da Computação: Denílson Rodrigues da Silva
  • 3. AGRADECIMENTOS Primeiramente quero agradecer aos meus pais Silvio e Marinês Ruaro que são minhas referências de vida, e juntamente com minha família me ensinaram uma filosofia de vida a qual me orgulho de seguir, tomando decisões responsáveis, mesmo nos momento de incerteza. Também quero agradece-los pela compreensão e pelo apoio durante esta minha jornada na faculdade. Sou grato a minha namorada pela inacreditável paciência mostrada nas noites de teste de reconhecimento, sei que ela passou muito sono por causa disso, e é por isso e por tantos outros motivos que a amo. Agradeço ao meu orientador e professor Denílson pelas orientações e pelo incentivo na minha pesquisa, pelas discussões e ensinamentos que certamente guardarei comigo em minha carreira acadêmica e em minha vida. Também quero agradece-lo por se dedicar intensamente a suas tarefas profissionais, fazendo com que o curso de Ciência da Computação se destaque cada vez mais. Quero agradecer a todos os meus amigos e colegas, pelos intervalos passados bebendo refrigerante, pelos jogos de futebol, e por todos outros momentos de descontração que implicitamente contribuíram para a realização deste trabalho. Também quero agradecer ao Ph.D. Roshan G. Rangel e a Isuru Herath da Universidade de Peradeniya do Sri Lanka e ao Dr. Adriano Petry do INPE pelo auxilio no esclarecimento por e-mail de algumas duvidas referente ao processamento digital de sinal no contexto do reconhecimento de som. Quero agradecer também ao professor Paulo R. B. Betencourt pelas conversas e conselhos sobre aviação que me motivaram a iniciar meu curso de piloto privado de avião. E agradecer a todos os outros professores do Curso de Ciência da Computação do URI-Santo Ângelo pelo auxilio e compreensão no esclarecimento de certas duvidas que contribuíram em muito para minha formação.
  • 4. SUMÁRIO LISTA ABREVIATURAS E SIGLAS .................................................................. 7 LISTA DE FIGURAS .......................................................................................... 8 LISTA DE TABELAS ....................................................................................... 10 RESUMO.......................................................................................................... 11 ABSTRACT...................................................................................................... 12 1 INTRODUÇÃO ............................................................................................ 13 1.1 Considerações Iniciais ......................................................................................... 15 1.2 Organização do Trabalho ................................................................................... 15 2 SISTEMAS DE RECONHECIMENTO DE SOM PARA DISPOSITIVOS MÓVEIS ........................................................................................................... 16 2.1 O Som .................................................................................................................... 16 2.2 Estado da Arte ...................................................................................................... 17 2.3 Modalidades de Reconhecimento de Voz em Dispositivos Móveis .................. 17 2.3.1 Reconhecimento de Voz em Rede (Network Speech Recognition) .................... 17 2.3.2 Reconhecimento de Voz em Terminal (Terminal Speech Recognition)............. 18 2.3.3 Reconhecimento de Voz Distribuído (Distribuided Speech Recognition) ......... 18 2.4 Sistemas Contínuo/Discretos ............................................................................... 18 2.5 Tamanho do Vocabulário .................................................................................... 19 2.6 Sistemas Dependente/Independente de Locutor ............................................... 19 2.7 Fatores que Interferem no Desempenho ............................................................ 19 3 CAPTURA E ARMAZENAMENTO DE ÁUDIO .......................................... 21 3.1 Digitalização do Sinal Analógico de Áudio ........................................................ 21 3.1.1 Filtro Anti-Aliasing ............................................................................................. 22 3.1.2 Amostragem ........................................................................................................ 22 3.1.3 Quantização ........................................................................................................ 24 3.1.4 Codificação ......................................................................................................... 24 3.1.5 Pulse Code Modulation (PCM) .......................................................................... 25 3.2 Wave File Format ................................................................................................. 26 3.3 MMAPI ................................................................................................................. 27 3.3.1 MMAPI, JSR 135 ............................................................................................... 27 3.3.2 MMAPI e PCM ................................................................................................... 28 3.4 RMS....................................................................................................................... 28 4 EXTRAÇÃO DE INFORMAÇÃO ................................................................ 30 4.1 Pré-Processamento ............................................................................................... 31
  • 5. 5 4.1.1 Detecção de Extremos ........................................................................................ 31 4.1.2 Inversão de Sinal ................................................................................................. 31 4.1.3 Pré-Ênfase ........................................................................................................... 31 4.1.4 Janelamento ........................................................................................................ 32 4.2 Análise Espectral.................................................................................................. 34 4.2.1 Transformada Rápida de Fourier (FFT) ............................................................. 35 4.2.2 Espectro de Potências ......................................................................................... 37 4.3 Extração dos Parâmetros .................................................................................... 37 4.3.1 Coeficientes Mel-Cepstrais (MFCC) .................................................................. 37 5 RECONHECIMENTO .................................................................................. 42 5.1 Dinamic Time Warping (DTW) ........................................................................... 42 5.1.1 Coeficientes de Seletividade de Reconhecimento .............................................. 44 5.2 Distância Euclidiana ............................................................................................ 46 5.3 Coeficiente de Correlação de Pearson................................................................ 46 6 O FRAMEWORK SRM ............................................................................... 47 6.1 Capacidades .......................................................................................................... 47 6.1.1 Reconhecimento de palavras isoladas dependente de locutor ............................ 47 6.1.2 Reconhecimento de som ..................................................................................... 47 6.1.3 Vocabulário pequeno .......................................................................................... 47 6.1.4 Reconhecimento em Terminal ............................................................................ 48 6.2 Requisitos Mínimos.............................................................................................. 49 6.2.1 Estrutura do Framework ..................................................................................... 49 6.3 Descrição da Implementação .............................................................................. 50 6.3.1 Técnicas Propostas .............................................................................................. 51 6.3.2 Front-End ............................................................................................................ 55 6.3.3 Back-End ............................................................................................................ 58 6.4 Diagrama de Classes ............................................................................................ 59 6.4.1 Classe GraphicWave ........................................................................................... 60 6.4.2 Pacote sound ....................................................................................................... 61 6.4.3 Pacote frontEnd................................................................................................... 61 6.4.4 Pacote backEnd ................................................................................................... 63 6.5 Diagrama de Sequência ....................................................................................... 65 6.6 Reconhecimento em Tempo Real ....................................................................... 66 6.7 Treinamento ......................................................................................................... 67 7 TESTES E RESULTADOS ......................................................................... 68 7.1 Testes no emulador SDK 3.0 ............................................................................... 69 7.1.1 Ajuste das Janelas de Hamming.......................................................................... 69 7.1.2 Ajuste do Banco de Filtros.................................................................................. 71 7.1.3 Ajuste dos MFCCs .............................................................................................. 73 7.2 Testes em Dispositivos Móveis ............................................................................ 74 7.2.1 Desempenho para Extração de Informação ........................................................ 74 7.2.2 Desempenho para Reconhecimento .................................................................... 75 7.2.3 Resultados Gerais ............................................................................................... 76 7.3 Comparativo do uso da técnica de IS ................................................................. 78 8 ESTUDO DE CASO .................................................................................... 79 9 CONCLUSÃO ............................................................................................. 83
  • 6. 6 9.1 Contribuições ....................................................................................................... 84 9.2 Trabalhos Futuros ............................................................................................... 85 REFERÊNCIAS ................................................................................................ 86 ANEXO A - APLICATIVO CALLDICTATION .................................................. 89
  • 7. 7 LISTA ABREVIATURAS E SIGLAS A/D Analógico/Digital AMR Adaptative Multi-Rate API Aplication Programming Interface CDC Connected Device Configuration CLDC Connected Limited Device Configuration DFT Discrete Fourier Transform DTW Dinamic Time Warping FFT Fast Fourier Transform Hz Hertz ID Identidade KHz Kilohertz JSR Java Specification Requestes HMM Hidden Markov Model ME Micro Edition MFCC Mel Frequency Cepstrum Coeficient MIDP Mobile Information Device Profile MMAPI Multimedia API PCM Pulse Code Modulation RIFF Resource Interchange File Format RMS Record Management Store SRM Sound Recognizer ME SDK Sun Developement Kit
  • 8. LISTA DE FIGURAS Figura 2.1: Representação de um sinal analógico de som .............................................. 16 Figura 3.1: Filtragem e digitalização do sinal analógico ................................................ 22 Figura 3.2: Exemplo do processo de amostragem do sinal contínuo ............................. 23 Figura 3.3: Sinal analógico digitalizado e quantizado. ................................................... 24 Figura 3.4: Processo de codificação PCM. ..................................................................... 25 Figura 3.5: Formato Wave. ............................................................................................. 26 Figura 3.6 - Processo de Funcionamento da MMAPI .................................................... 28 Figura 3.7: Interface Java ME RMS ............................................................................... 29 Figura 4.1: Etapas que compõe a extração de informação do sinal de som ................... 30 Figura 4.2: Etapas do pré-processamento ....................................................................... 31 Figura 4.3: Espectro de frequências sem e com pré-ênfase ............................................ 32 Figura 4.4: Janela de Hamming ...................................................................................... 33 Figura 4.5: Janelas de Hamming com sobreposição de 50% .......................................... 33 Figura 4.6: Análise espectral .......................................................................................... 34 Figura 4.7: Desempenho da FFT em relação ao aumento de pontos .............................. 36 Figura 4.8: Esquema de saída da FFT e a aplicação de sua inversa ............................... 36 Figura 4.9 - Variação logarítmica da escala Mel em relação a Hz ................................. 38 Figura 4.10: Etapas da extração dos parâmetros ............................................................ 39 Figura 4.11: Exemplo de banco de 20 filtros triangulares espaçados de acordo com a escala Mel. ...................................................................................................................... 39 Figura 4.12: Energia de saída do banco de filtros .......................................................... 41 Figura 5.1: Exemplo de diferença temporal ................................................................... 43 Figura 5.2: Alinhamento não-linear gerado pela DTW .................................................. 43 Figura 5.3: Plano temporal dos padrões R e T ................................................................ 44 Figura 5.4 - Exemplo de erro de reconhecimento utilizando somente as distâncias mínimas da DTW ........................................................................................................... 45 Figura 6.1: Tempo de processamento para o reconhecimento em relação ao número de padrões ............................................................................................................................ 48 Figura 6.2: Estrutura geral do SRM................................................................................ 50 Figura 6.3: Trecho da palavra “teste” antes e depois da inversão de sinal ..................... 52 Figura 6.4: Linha imaginária de limite de silêncio ......................................................... 53 Figura 6.5: Etapas implementadas no bloco front-end caracterizando a extração de informação ...................................................................................................................... 55 Figura 6.6: Processo de remoção do cabeçalho Wave .................................................... 56 Figura 6.7: Etapas implementadas no bloco back-end caracterizando o reconheciment. ........................................................................................................................................ 58 Figura 6.8: Diagrama de classe do Framework SRM .................................................... 59 Figura 6.9: Telas exemplos da classe GraphicWave contendo a representação de um sinal PCM no formato Wave com 8 bits por amostra ..................................................... 60
  • 9. 9 Figura 6.10: Classe GraphicWave .................................................................................. 60 Figura 6.11: Diagrama de classes do pacote sound ........................................................ 61 Figura 6.12: Diagrama de classes do pacote frontEnd ................................................... 62 Figura 6.13: Diagrama de classes do pacote backEnd.................................................... 63 Figura 6.14: Diagrama de Sequencia .............................................................................. 65 Figura 6.15: Fluxograma do modo listening .................................................................. 66 Figura 7.1: Sel1 gerado sobre o ajuste quanto largura da Janela de Hamming ............... 70 Figura 7.2: Sel1 para as variações de sobreposição entre as janelas de Hamming ......... 71 Figura 7.3: Comparação de Sel1 entre o número de filtros ............................................. 72 Figura 7.4: Comparativo de Sel1 alternado a quantidade de MFCCs ............................. 73 Figura 7.5: Desempenho de extração de informação em relação a frequência do processamento ................................................................................................................ 75 Figura 7.6: Gráfico comparativo de tempos para reconhecimento entre os processadores testados ........................................................................................................................... 76 Figura 8.1: Configuração básica do SRM ...................................................................... 79 Figura 8.2: Gravação e definição como padrão de uma amostra de som ....................... 80 Figura 8.3: Verificação do tamanho do banco ................................................................ 80 Figura 8.4: Utilização da função "isListening" ............................................................... 81
  • 10. LISTA DE TABELAS Tabela 2.1: Classificação quanto ao vocabulário ........................................................... 19 Tabela 3.1: Taxa de erros em relação à frequência de amostragem ............................... 23 Tabela 3.2: Codificação do sinal em uma sequência numérica de base binária. ............ 25 Tabela 6.1: Tempos de recorte em milissegundos do algoritmo de detecção de extremos e o tempo de processamento obtido no teste elaborado no emulador SDK 3.0 ............. 54 Tabela 7.1: Ajuste quanto ao tamanho das janelas de Hamming ................................... 70 Tabela 7.2: Porcentagem de Sobreposição entre as Janelas de Hamming...................... 71 Tabela 7.3: Número de Filtros ........................................................................................ 72 Tabela 7.4: Ajuste de MFCCs ........................................................................................ 73 Tabela 7.5: Tempo gasto em segundos para extração de informação nos três dispositivos testados ........................................................................................................................... 74 Tabela 7.6: Tempo gasto em segundos para o reconhecimento nos três dispositivos testados ........................................................................................................................... 75 Tabela 7.7: Configuração geral do framework SRM...................................................... 76 Tabela 7.8: Precisão de reconhecimento do framework SRM........................................ 77 Tabela 7.9: Inversão de Sinal ......................................................................................... 78
  • 11. RESUMO Com uma maior acessibilidade ao desenvolvimento de aplicativos para dispositivos móveis, surgem novas possibilidades de fornecer uma maior interação homem/máquina. Uma dessas formas de interação que objetiva reconhecer um meio de comunicação e percepção espacial muito comum para os seres humanos é o reconhecimento de som. Este trabalho consiste no desenvolvimento de um Framework escrito na linguagem Java Micro Edition, para o reconhecimento de sons abstratos e de palavras isoladas dependentes de locutor em dispositivos móveis. Onde alcançou-se excelentes resultados de reconhecimento, chegando a atingir – no melhor caso – uma precisão de acertos de 94%. Através deste framework, desenvolvedores de aplicações móveis poderão utilizar e também trabalhar de um modo geral com o reconhecimento de som em diversos cenários. Na realização dessa proposta foi abordada a API MMAPI para a captura e execução do áudio na codificação PCM, já na fase de extração de informações do sinal foi utilizada a extração dos coeficientes Mel-Cepstrais (MFCC) derivados da Transformada Rápida de Fourier (FFT), e para o reconhecimento foi empregada a comparação através da Dinamic Time Warping (DTW). Neste trabalho foram propostas duas técnicas de processamento de sinal de som: a primeira denominada Inversão de Sinal (IS), e a segunda correspondente a um algoritmo de baixo custo de detecção de extremos responsável pela detecção de inicio e fim de uma elocução. E também foi proposta e integrada uma funcionalidade que permite a representação gráfica do espectro de áudio em telas de dispositivos móveis. Palavras-Chave: Reconhecimento, som, dispositivos móveis, extração de informação, padrões.
  • 12. SRM: Framework for Sound Recognition on Mobile Devices ABSTRACT With greater accessibility to developing applications for mobile devices, new opportunities arise to provide greater interaction man/machine. One of these forms of interaction that aims to recognize a means of communication and spatial perception very common to humans is the recognition of sound. This work consists in developing a framework written in Java Micro Edition, for the recognition of abstract sounds and isolated words announcer dependent on mobile devices. Where was reached excellent recognition results, reaching – in the best case – an accuracy hits 94%. Through this framework, developers can use mobile applications and also work generally sound recognition in various scenarios. In making this proposal was discussed the MMAPI API to capture and execution of PCM audio encoding, already in phase of signal information extraction was used to extract the Mel-Cepstrais coefficients (MFCC) derived from the Fast Fourier Transform (FFT), and for the recognition was employed through comparison of Dinamic Time Warping (DTW). In this work were proposed two techniques of sound signal processing: the first called signal Inversion (IS), and the second corresponds to a low-cost algorithm for detecting extremes responsible for detection of beginning and end of an utterance. And also was proposed and integrated functionality that allows graphical representation of the audio spectrum on screens of mobile devices. Keywords: Sound recognition, mobile devices, information extraction, patterns.
  • 13. 1 INTRODUÇÃO Na ciência da computação, cada vez mais surgem novas tecnologias que permitem uma maior interação e consequentemente uma maior produtividade entre o ser humano e o computador. Entre estas tecnologias uma que tem grande destaque por reconhecer um meio de interação muito comum aos seres humanos, é o reconhecimento de som. O reconhecimento de som de um modo geral é a capacidade de um sistema computacional extrair e interpretar corretamente as variáveis contidas em um sinal de som (RABINER e JUANG, 1978). O uso do reconhecimento de som em determinado cenário flexibiliza a interação homem/máquina automatizando certas tarefas que geralmente requisitam uma maior quantidade de interações físicas. Em um ambiente móvel esta flexibilidade operacional provida pelo reconhecimento alia-se a mobilidade nativa dos sistemas embarcados expandindo ainda mais a aplicabilidade do reconhecimento de som. Contudo, para se desenvolver um sistema de reconhecimento de som enfrentam-se algumas dificuldades, entre as principais destaca-se a natureza interdisciplinar requisitada no desenvolvimento destes sistemas, 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 com a complexidade do reconhecimento (PETRY, ZANUT e BARONE, 2000) (TAFNER, 1996). Por isso, 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. Outra dificuldade encontrada no desenvolvimento do reconhecimento de som em ambientes embarcados é a limitação de hardware, que atualmente ainda impõe barreiras para a elaboração de um reconhecimento mais complexo. A grande maioria dos dispositivos móveis encontrados no mercado atual incorpora algum sistema de reconhecimento de som (principalmente o reconhecimento de voz), muitos destes sistemas são eficientes alcançando excelentes níveis de precisão com relativo baixo custo computacional. Porém estes sistemas geralmente são privados e/ou não permitem sua integração a outras aplicações (na forma de API ou framework). No cenário atual de desenvolvimento móvel, mais especificamente no contexto da linguagem Java ME, encontra-se poucas ferramentas de reconhecimento de som integráveis a alguma aplicação. A principal delas é a API Java Speech que em sua versão 2.0 provê suporte a linguagem Java ME, contudo esta API é licenciada apenas para empresas privadas (ORACLE, 2010). Outra indisponibilidade é quanto a capacidade dos motores de reconhecimento elaborarem seus processamentos
  • 14. 14 inteiramente no dispositivo portátil em que são instalados, dispensando uma conexão sem fio a um servidor para um processamento normalmente mais robusto. Ciente destes fatores, este trabalho propôs o desenvolvimento e implementação de um framework chamado Sound Recognizer ME (SRM) escrito na linguagem Java Micro Editon para dispositivos móveis objetivando o reconhecimento de som englobando também o reconhecimento de voz, que mais especificamente é caracterizado neste trabalho pelo reconhecimento de palavras isoladas dependente de locutor. Através deste framework desenvolvedores poderão integrar o reconhecimento disponibilizado, em aplicações móveis de uma maneira simples e abstraída. Já a escolha pelo reconhecimento principalmente de palavras isoladas dependente de locutor, apresenta-se como uma base ideal para se iniciar os estudos de propostas mais complexas na área de reconhecimento de voz como o reconhecimento de fala contínua independente de locutor, além de ampliar o reconhecimento de som para o contexto de voz, o que estende a aplicabilidade desta proposta. Para o desenvolvimento do SRM, foram utilizados pacotes da linguagem Java ME que permitem abstrair certas funcionalidades essenciais para o apoio em um caráter de infraestrutura no desenvolvimento do reconhecimento de som. Estas funcionalidades são o controle multimídia através da API MMAPI que permite a captura e execução de som no dispositivo, o RMS que fornece o suporte ao armazenamento persistente, e as bibliotecas Math e MathC para o cálculos de funções matemáticas. Na etapa de extração de informação do sinal também conhecida como front-end, foi utilizada a extração dos coeficientes Mel-Cepstrais (MFCC) derivados da Transformada Rápida de Fourier e da analise por meio de um banco de filtros de escala Mel seguindo a metodologia proposta por Rabiner (RABINER e JUANG, 1978). Os coeficientes MFCC segundo Davis et al (1980) apresentam robustas característica para o reconhecimento de voz, e segundo Chen et al (2005) é talvez a técnica de front-end mais utilizada por sistemas estado da arte de reconhecimento de voz. Também foi desenvolvida uma técnica de pré-processamento de sinais de áudio chamada Inversão de Sinal (IS), que demostrou uma melhor parametrização dos coeficientes MFCC sobre o sinal de som, e se mostrou extremamente útil no algoritmo de detecção de inicio e fim de uma elocução (detecção de extremos), que também foi uma proposta deste trabalho. Já para o reconhecimento dos coeficientes MFCC extraídos em relação a um banco de padrões, foi utilizada a Dynamic Time Warping (DTW), ou também conhecida como Modelagem Determinística. A DTW além da vantagem do baixo custo computacional possibilita o reconhecimento de elocuções que apresentam variações de velocidade em sua composição. Conforme visto em Yoma (YOMA, 1993), a DTW se encaixa perfeitamente no contexto de reconhecimento de palavras isoladas dependente de locutor. E juntamente com a oferta de reconhecimento de som proposta pelo SRM, foi desenvolvida e incorporada ao framework uma funcionalidade que permite a representação gráfica do espectro de sinais digitais de áudio em telas de dispositivos móveis, esta capacidade apoiou e impulsionou o desenvolvimento do SRM sendo muito útil nas fases de estudo e análise do comportamento do sinal, e por isso foi mantida e disponibilizada para ser utilizada como objeto de estudo e desenvolvimento em futuras pesquisas.
  • 15. 15 Também foi elaborada e disponibilizada implicitamente a este framework uma API para o cálculo da Transformada Rápida de Fourier na linguagem Java ME, permitindo a obtenção do espectro de magnitudes, e também foi disponibilizada uma função contendo uma formula baseada na obra de (HERATH e RAGEL, 2007), para a obtenção da frequência do espectro de magnitudes de saída da FFT. Por fim, como produto final obteve-se um motor de reconhecimento 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. 1.1 Considerações Iniciais Neste trabalho foi abordado o termo: “reconhecimento de som”, pois como mencionado anteriormente o reconhecimento nesta proposta se encaixa em categorias do reconhecimento de voz, e também o reconhecimento de outros sons que não caracterizam uma palavra, chamados a partir deste momento de: “sons abstratos”. Porém, ao longo do trabalho, principalmente na parte de fundamentação teórica, é encontrado o conceito: “reconhecimento de voz”, isso ocorre porque este termo estava especificamente associado às ideias extraídas das obras referenciadas, e portanto resolveu-se não distorce-lo. Contudo, neste trabalho, acaba sendo implicitamente proposta a absorção de conceitos típicos de reconhecimento de voz ao reconhecimento de sons abstratos. Sendo que para seguir esta linha metodológica estudou-se a definição de som, apresentada pela seção 2.1. 1.2 Organização do Trabalho A organização dos capítulos neste trabalho ocorre da seguinte maneira: O próximo capitulo (capítulo 2) é destinado à contextualização dos sistemas de reconhecimento de som em dispositivos móveis. O capitulo 3 expõe as técnicas utilizadas para a captura e armazenamento dos arquivos de áudio no dispositivo. No capítulo 4 é descrito o processo realizado para a extração de informação do sinal. No capitulo 5 é descrito a etapa de reconhecimento. Já no capitulo 6 é caracterizado o framework SRM como um todo. O capitulo 7 apresenta os testes e resultados obtidos. No capitulo 8 é apresentado um estudo de caso utilizando o SRM. E o capitulo 9 encerra apresentado as conclusões.
  • 16. 16 2 SISTEMAS DE RECONHECIMENTO DE SOM PARA DISPOSITIVOS MÓVEIS Este capítulo é dedicado à contextualização de sistemas de reconhecimento de som em dispositivos móveis, descrevendo suas principais características. 2.1 O Som Som é um sinal analógico definido por vibrações ocasionadas pelas diferenças de pressões sofridas pela matéria em que será transmitido, normalmente representado através de curvas sinusoidais que caracterizam suas variáveis possuindo uma determinada frequência, amplitude e fase (TAFNER, 1996) – ver figura 2.1. Complementado esta definição anterior, pode-se ainda acrescentar conforme a Associação Brasileira de Normas Técnicas (1959) que “som é toda e qualquer vibração ou onda mecânica em um meio elástico dentro da faixa de áudio frequência”. Figura 2.1: Representação de um sinal analógico de som (ROLIM, 2010) Sendo a onda sonora composta por três características básicas (HAYKIN e VEEN, 2001):  Amplitude: valor em um determinado momento do nível de sinal;  Frequência: quantidade de vezes por unidade de tempo em que a forma de onda do sinal se repete.  Fase: ângulo em que o sinal se apresenta. Com base nestes conceitos pode-se definir mais claramente o conceito de voz, que segundo o dicionário Aurélio Online (2010), é um som originado das cordas vocais. Logo ela apresenta as mesmas características físicas descritas acima, e conclui-se que técnicas utilizadas (neste trabalho) para o reconhecimento de voz, podem ser absorvidas pelo reconhecimento de som.
  • 17. 17 2.2 Estado da Arte O desenvolvimento de sistemas de reconhecimento voz em dispositivos móveis é amplamente motivado pelo mercado da telefonia. Existem muitos sistemas de reconhecimento embarcados privados atualmente: Nuance’s VoCom (Nuance Vocon), IBM’s ViaVoice ( IBM Embedded ViaVoice), Asahi Kasei’s VORERO (Asahi Kasei VORERO), entre outros. Esses sistemas são softwares baseados em soluções que rodam em uma gama variada de dispositivos, suportando vocabulários grandes que são somente limitados pela memória do dispositivo (MIRANDA, 2008) Na extração de informação do sinal ou front-end, uma característica fundamental que aumenta consideravelmente o desempenho do reconhecimento é realizar o processamento utilizando variáveis ponto-flutuante. Porém, em um ambiente móvel trabalhar com estes tipos de variáveis requer um maior esforço computacional. Entretanto sem o uso de variáveis ponto-flutuante ficaria impraticável aplicar técnicas robustas atualmente de extração de informações como os coeficientes MFCC (DAVIS e MERMELSTEIN, 1980)(CHEN, PALIWAL, et al., 2005). Outra implicação de se utilizar técnicas deste porte é a complexidade de operações aritméticas envolvidas, incorporadas por funções especiais tal como a Transformada Rápida de Fourier. Já para o reconhecimento o grande desafio é encontrar meios de não sobrecarregar o sistema com um acréscimo no número de padrões envolvidos. Outra implicação é a quantidade de armazenamento disponibilizada pelo dispositivo móvel, que se muito limitada, inviabiliza todo o processo. No reconhecimento de palavras isoladas dependente de locutor – não necessariamente no contexto móvel – uma técnica que se mostra ideal para este contexto de reconhecimento (YOMA, 1993) (FURTUNĂ, 2008) e é tradicionalmente utilizada é a DTW, que entre outros benefícios possui a vantagem de apresentar um baixo custo computacional, fator este indispensável em um ambiente móvel. Para maiores informações sobre o estado da arte em dispositivos móveis consultar Miranda (2008). 2.3 Modalidades de Reconhecimento de Voz em Dispositivos Móveis Huerta (2000) define três principais modalidades de reconhecimento de voz em dispositivos móveis: (1) reconhecimento de voz em rede, (2) reconhecimento de voz em terminal, e (3) reconhecimento de voz distribuído. A seguir são descritas estas três modalidades: 2.3.1 Reconhecimento de Voz em Rede (Network Speech Recognition) Nesta modalidade, o reconhecimento é implementado remotamente do ponto de vista do usuário, pois o sinal de voz é transmitido do dispositivo para um servidor realizar o reconhecimento através de uma rede sem fio. As principais implicações desta técnica são no momento da transmissão sem fio entre o cliente e o servidor. Neste caso, para o envio, deve-se ter uma conexão rápida e confiável, e os dados devem ser comprimidos. Contudo esta modalidade apresenta um reconhecimento mais sofisticado para aplicações em dispositivo móveis, permitindo a integração de técnicas de reconhecimento mais robustas.
  • 18. 18 2.3.2 Reconhecimento de Voz em Terminal (Terminal Speech Recognition) Nesta modalidade, o reconhecimento é feito no dispositivo do usuário. Neste caso, o sinal de voz não é transmitido através de uma rede sem fio, por isso não é afetado pelo canal de transmissão e de algoritmos de compressão. Entretanto o desempenho do sistema neste tipo de modalidade deve ser cuidadosamente avaliado, devido a sensibilidade do dispositivo em relação ao consumo de memória e processamento. Huerta (2000) também afirma que só é possível construir sistemas de reconhecimento relativamente simples (por exemplo, discagem por voz, comando e controle de aplicações, etc.). 2.3.3 Reconhecimento de Voz Distribuído (Distribuided Speech Recognition) Nesta modalidade o sistema de reconhecimento de voz é separado em duas partes: cliente e servidor. A diferença entre esta modalidade e a de reconhecimento em rede, é que, neste caso, a extração de informação do sinal de voz é realizada no próprio dispositivo e após são enviados os resultados no formato de dados através de um canal protegido de erros usando uma rede especifica para o reconhecimento (SUK, JUNG, et al., 2004) (HUERTA, 2000) (MIRANDA, 2008). Isso permite o reconhecimento não dependente de um sinal que pode ter sido afetado pela compressão e codificação da rede sem fio. A principal desvantagem desta abordagem é a dependência de um padrão front- end que é realizado no próprio dispositivo. Estabelecer e padronizar este front-end envolve problemas difíceis de serem resolvidos como a característica permitir o reconhecimento de alta precisão em ambientes silenciosos e ruidosos. Um sistema deste tipo pode se beneficiar das vantagens das duas modalidades já descritas: sistemas sofisticados podem ser implementados (como no reconhecimento de rede), enquanto a informação do sinal é extraída no dispositivo (como no reconhecimento de terminal). Há também outras características e fatores citados em (MIRANDA, 2008) (CIPRIANO, 2001) (LIMA, 2000) (OLIVEIRA, 2002) (SILVA, 2009) que classificam os sistemas de reconhecimento e que devem ser determinados na elaboração de um reconhecedor de som. Escolher que tipo de características o reconhecimento irá abranger, implica diretamente em alterar toda uma metodologia de elaboração em comparação a um sistema diferente. A seguir são descritas estas características. 2.4 Sistemas Contínuo/Discretos Em sistemas de fala isolada ou discreta tem-se uma pausa identificável entre cada palavra, também pode-se implementar sistemas assim através da captura de uma única palavra por arquivo de áudio. Já a fala contínua ocorre de uma maneira mais comum aos seres humanos, onde os limites das palavras não são facilmente distinguíveis, pois a fala não precisa ser pausada e ocorre espontaneamente. Obviamente sistemas de fala discreta tem uma precisão geralmente maior em relação aos sistemas de fala contínua que por sua vez, possuem uma maior complexidade (MIRANDA, 2008).
  • 19. 19 2.5 Tamanho do Vocabulário O tamanho do vocabulário é a quantidade máxima de elocuções que podem ser definidas como padrão para o reconhecimento (RABINER e JUANG, 1978). O tamanho do vocabulário utilizado irá afetar diretamente a precisão e o desempenho do sistema, principalmente em ambientes móveis onde o espaço disponível para o armazenamento de informações persistentes é limitado, na tabela 2.1 a seguir pode-se verificar a classificação quanto ao tamanho de vocabulário (RABINER e JUANG, 1978). Tabela 2.1: Classificação quanto ao vocabulário Vocabulário Nº. Palavras Pequeno Até 20 Médio Entre 20 e 100 Grande Entre 100 e 1000 Muito Grande Mais de 1000 Quando se fala em precisão, um grande vocabulário atrapalha no momento de avaliar se o reconhecimento obteve alto índice de exatidão, pois se houver um número grande de padrões, estes podem apresentar um índice de reconhecimento semelhante a outros padrões, resultando em um estado de reconhecimento incerto e atrapalhando por vezes um reconhecimento que poderia estar correto. 2.6 Sistemas Dependente/Independente de Locutor Nos sistemas dependente de locutor há o reconhecimento dos locutores cujas vozes foram utilizadas para treinar o sistema ou definir os padrões. Os sistemas dependentes de locutor tem boa precisão, mas requerem um treinamento diferente para cada usuário. Para aplicações como editores de texto, a dependência do locutor pode ser muito benéfica (OLIVEIRA, 2002), pois diminui bastante a taxa de erros. Quando o sistema é independente de locutor o mesmo deve reconhecer a voz de qualquer pessoa sem haver um treinamento antes. Neste caso é necessário realizar o treino geral do sistema com uma base que inclua diferentes pessoas com diferentes idades, sexo, sotaques, timbres de som, etc., para definir um padrão de características predominantes para cada elocução. 2.7 Fatores que Interferem no Desempenho Além das características citadas acima, há outros fatores que afetam o desempenho de um sistema de reconhecimento de som:  Variações para um mesmo locutor: Um locutor, ou seja, a pessoa que está pronunciando a elocução varia constantemente e involuntariamente em sua pronuncia. Isso ocorre frequentemente e deve ser levado em conta na fase de reconhecimento, através de técnicas que sejam capazes, de identificar a mesma elocução dita mais lentamente ou mais rapidamente, por exemplo.
  • 20. 20  Ausência de Treinamento: Em sistemas que dispensam um treinamento para cada padrão de palavra, o desempenho de reconhecimento geralmente é menor, pois se define como padrão uma amostra capturada aleatoriamente, e esta pode conter características anormais de uma pronunciação padrão para uma determinada elocução.  Condições do ambiente: Ambientes ruidosos atrapalham muito um reconhecimento preciso, mesmo os mais exatos reconhecedores têm seus desempenhos prejudicados com a adição de ruído, causando frequências indesejáveis no sinal analisado.  Microfone: Este fator é um dos mais importantes, pois um microfone de baixa qualidade resultará em um nível de transdução ruidoso e às vezes não representativo o bastante para ser reconhecido.  Frequência de Amostragem e níveis de Quantização: Estes fatores são extremamente importantes na qualidade do áudio capturado e serão explicados mais detalhadamente no capítulo 3. Definir configurações muito baixas implica em diminuir os dados digitalizados que representam o sinal de áudio em sua forma contínua. O mínimo utilizado atualmente para sistemas de reconhecimento de voz, são a frequência de amostragem de 8 KHz e 8 bits por amostra, resultando em 256 níveis diferentes de representação por amostra.
  • 21. 21 3 CAPTURA E ARMAZENAMENTO DE ÁUDIO Para se obter os arquivos de áudio necessários para o reconhecimento, é essencial incorporar técnicas que permitem sua captura e armazenamento em um contexto móvel. Inicialmente para a captura do sinal analógico e subsequentemente sua conversão para o formato digital emprega-se técnicas de digitalização de sinais, estas técnicas são descritas na seção 3.1 a seguir, e são fundamentais para a aquisição do sinal de áudio em seu formato digital. Já na seção 3.2 é contextualizada a API MMAPI utilizada para o controle e configuração da captura do sinal. Na seção 3.3 é então descrita a relação entre a MMAPI e a codificação PCM que é representada pelo formato Wave descrito na seção 3.4. E por fim a seção 3.5 refere-se a técnica de armazenamento persistente RMS, utilizada para armazenar a informação pertinente ao reconhecimento. 3.1 Digitalização do Sinal Analógico de Áudio Qualquer tipo de sinal analógico que requisite ser armazenado em um sistema computacional ou transmitido em um canal de transmissão digital necessita passar por um tratamento de sinal, ou seja, um processo chamado de digitalização (HAYKIN e VEEN, 2001). A digitalização tem o objetivo de representar um sinal analógico em níveis de representação discretos no tempo que correspondem aproximadamente às variações contínuas no tempo presentes no sinal a ser digitalizado. Para digitalizar um sinal analógico, são necessárias no mínimo quatro etapas: 1. Filtragem Anti-Aliasing; 2. Amostragem; 3. Quantização; 4. Codificação. Contudo, antes de iniciar a descrição dos processos de digitalização é conveniente lembrar o Teorema de Amostragem de Nyquist. A frequência de amostragem de um sinal analógico, para que possa posteriormente ser reconstituído com o mínimo de perda de informação, deve ser igual ou maior a duas vezes a maior frequência do espectro desse sinal. Em outras palavras, a quantidade de amostras por unidade de tempo de um sinal, chamada taxa ou frequência de amostragem, deve ser maior que o dobro da maior frequência contida no sinal a ser amostrado, para que possa ser reproduzido integralmente.
  • 22. 22 A metade da frequência de amostragem é chamada frequência de Nyquist e corresponde ao limite máximo de frequência do sinal que pode ser reproduzido. 3.1.1 Filtro Anti-Aliasing Em Petry (2002), é visto que um sinal de voz muitas vezes não possui uma limitação constante em frequência e pode possuir componentes de frequência em uma faixa de amplitudes bastante larga. Então como não é possível garantir que o sinal não contenha frequências acima da frequência de Nyquist (distorções, interferências, ruídos, etc.), é necessário filtrar o sinal com um filtro passa-baixas chamado filtro Anti-Aliasing com frequência de corte igual (ou menor) a frequência de Nyquist objetivando suprimir as componentes de frequência do sinal analógico superior à frequência de Nyquist. Figura 3.1: Filtragem e digitalização do sinal analógico (CIPRIANO, 2001) Na figura 3.1 acima pode-se ter uma visão mais clara do contexto do filtro Anti- Aliasing no processo de digitalização do sinal. Onde primeiramente o sinal analógico é filtrado e convertido em sinal digital para então ser aplicado a algum processamento digital. Após a aplicação do filtro Anti-Aliasing é iniciado o processo de conversão A/D (RABINER e JUANG, 1978) composto pelas fases de amostragem, quantização e codificação que serão brevemente detalhadas a seguir. 3.1.2 Amostragem O som se propaga no espaço na forma de onda, essa onda por ser um sinal analógico possui infinitas variações através do tempo. Para tornar possível a medição dessas variações, se faz necessário utilizar técnicas que captam amostras regulares do sinal analógico e os codifique em um conjunto sequencial que expressam a informação da onda sonora de uma forma simplificada, mas os mesmo tempo sem perder a essência de sua informação. De acordo com Castro (2006), o processo de amostragem é “o processo através do qual o sinal contínuo no tempo é transformado em um sinal discreto no tempo”, segundo Filho (2006), “a amostragem é o processo que consiste em caracterizar a forma analógica da onda como uma sequência de números tomados a intervalos regulares, onde cada um indica um valor para a amplitude de um sinal em um determinado instante” – ver figura 3.2.
  • 23. 23 Figura 3.2: Exemplo do processo de amostragem do sinal contínuo (FILHO, 2006) Na amostragem é definida uma frequência de amostragem que representa o número de amostras registradas por segundo, os valores mais comuns para gravação de áudio são de 8 KHz, 11 KHz, 16 KHz, etc. Quanto maior for a frequência de amostragem maior será a qualidade do áudio digitalizado, e consequentemente menor a possibilidade do reconhecimento resultar em erros. Há um índice comparativo descrevendo a redução da taxa de erros de reconhecimento conforme o aumento da frequência de amostragem expressa pela tabela 3.1 (HUANG, ACERO e HON, 2001). Tabela 3.1: Taxa de erros em relação à frequência de amostragem FREQ. DE AMOSTRAGEM REDUÇÃO RELATICA DA TAXA DE ERROS 8000 Hz Limite Mínimo 11000 Hz +10% 16000 Hz +10% 22000 Hz Sem Redução Na tabela 3.1 percebe-se uma diminuição significativa na taxa de erros conforme o aumento da frequência de amostragem o que comprova a sua importância ao reconhecimento, contudo essa redução sessa ao se alcançar o patamar de 22 KHz onde a partir daí, não há aumento significativo na qualidade do áudio. É importante comentar que, na amostragem, pode ocorrer um efeito negativo chamado aliasing e isso é evitado utilizando previamente o filtro Anti-Aliasing descrito anteriormente. Porém somente o processo de amostragem não é suficiente para caracterizar o sinal captado, pois não oferece parâmetros próximos o suficiente da correta representação da onda analógica. Para resolver esse fato emprega-se a quantização.
  • 24. 24 3.1.3 Quantização Processo que transforma um sinal discreto (resultado da amostragem), nos sinais digitais que são filtrados pelo processador. Tanto a amostragem quanto a quantização são realizadas por um conversor analógico digital, sendo a quantização um processo descrito em nível de bits, e.g., um CD de áudio é amostrado a uma freqüência de 44.100 Hz e quantizado com 16 bits.[...]. Embora ocorram perdas na representação do sinal, o processo de quantização gera uma aproximação bastante satisfatória e mais facilmente tratável em sistemas computacionais (FILHO, 2006). Complementando, Castro (2006) sustenta que quantização é o “processo através do qual um sinal contínuo em amplitude é transformado em um sinal discreto em amplitude”. Figura 3.3: Sinal analógico digitalizado e quantizado (FILHO, 2006). A Figura 3.3(a) mostra um sinal digitalizado, e a figura 3.3(b), o mesmo sinal quantizado. Em 3.3(a) o sinal contínuo é transformado em sinal digital, utilizando um conjunto de possíveis valores discretos, através do processo de amostragem. Em 3.3(b) o sinal é quantizado para obter uma aproximação maior do sinal original. Quanto maior for o nível de quantização maior será a qualidade do sinal digital, por exemplo, se for utilizada uma conversão de 8 bits, obtém-se 256 níveis de quantização (TAFNER, 1996), e com uma possiblidade maior de variações, maior será a semelhança entre o sinal analógico capturado e sua respectiva representação no formato digital. 3.1.4 Codificação O processo de codificação é expresso num formato sequencial binário dos resultados obtido e refinados nos processos de amostragem e quantização (CASTRO, 2006).
  • 25. 25 Tabela 3.2: Codificação do sinal em uma sequência numérica de base binária (CASTRO, 2006). Na codificação expressa pela tabela 3.2, cada amostra é mapeada em uma sequência com valores associados a um número representado por N bits. Cada número representa um valor, que depende do mapeamento do código adotado. 3.1.5 Pulse Code Modulation (PCM) Como visto na seção anterior os valores quantizados precisam ser codificados em sequências de bits. Para realizar esta codificação pode-se utilizar o PCM que é um tipo de codificador de forma de onda simples, cujo objetivo é reproduzir o sinal analógico amostra por amostra através dos processos de amostragem, quantização e codificação (ELIAS, 2006) (KUTWAK, 1999). No PCM cada pulso amostrado de amplitude variável é transformado em uma sequência de bits com amplitude fixa e valores binários, com um código tal que representa o valor do pulso amostrado original, arredondado pelo erro de quantização (ELIAS, 2006). Figura 3.4: Processo de codificação PCM (ZURMELY, 2010).
  • 26. 26 Pode-se notar na figura 3.4, que nos instantes de amostragem, os sinais são amostrados usando como parâmetro sinalizações ao longo do tempo, já na quantização os sinais são adicionalmente parametrizados ao longo de sua amplitude, em seguida estes parâmetros são codificados em um formato binário. A principal vantagem da Codificação PCM é a pouca complexidade e a alta qualidade obtida na digitalização do sinal, sua desvantagem é relativa alta taxa de transmissão (KUTWAK, 1999). 3.2 Wave File Format O arquivo PCM normalmente é armazenado em um formato de arquivo de áudio Wave. O Wave é um subconjunto da especificação RIFF da Microsoft para o armazenamento de arquivos multimídia (WILSON, 2003). Um arquivo RIFF começa com um cabeçalho do arquivo seguido por uma sequencia de blocos de dados, conforme pode ser visto na figura 3.6. Figura 3.5: Formato Wave (WILSON, 2003). A área de dados do arquivo Wave é armazenada num vetor de bytes que contém todos os pontos amostrados. Cada elemento do vetor corresponde a uma amostra de 1 byte, correspondendo a valores decimais de +127 a -128 que representam os pulsos quantizados de amplitude. Neste trabalho o bloco do cabeçalho utilizado foi o “Subchunck2Size” que é resultado do cálculo: NumSamples*NumChannels*BitsPerSample/8 (WILSON, 2003). Nele está contido um número em bytes representando o tamanho do bloco data, que
  • 27. 27 contém os dados amostrados. O número de amostras reais do arquivo Wave pode ser extraído pela seguinte equação: Onde Na representa o número real de amostras e Wl representa o tamanho total do vetor de bytes Wave. 3.3 MMAPI A Mobile Media API (MMAPI) oferece um grande apoio pra se trabalhar com mídias em dispositivos móveis. Com ela cria-se uma liberdade e um acessibilidade aos serviços de multimídia nativos em determinados dispositivos móveis, permitindo a reprodução de vídeo, áudio, captura de som e imagens, utilizando o Java ME (ORACLE, 2010). Também a MMAPI disponibiliza uma flexibilidade na configuração usada para a captura onde o desenvolvedor pode escolher a codificação e suas características de conversão A/D (taxa de amostragem, bits por amostra, etc.). 3.3.1 MMAPI, JSR 135 Segundo o autor do livro “Pro Java ME MMAPI Mobile Media API for Java Micro Edition” Goyal (2006) a MMAPI, é uma API opcional que prove suporte a recursos multimídia, como reprodução, edição e captura de áudio e vídeo a partir de diversas fontes. A MMAPI atualmente se encontra na versão 1.1 e já é suportada pela maioria dos dispositivos que suportam MIDP 2.0. A JSR 135 que define a MMAPI, não depende de protocolos ou formatos de arquivos, esse suporte a diferentes formatos é de responsabilidade do fabricante do dispositivo. Essa flexibilidade permite a possibilidade de reprodução de qualquer formato de arquivo especificado pelo fabricante. Embora a ênfase principal da MMAPI seja sobre os dispositivos que implementam perfis com base em CLDC, seu projeto também visa apoiar os dispositivos que implementam perfis com base no CDC. A MMAPI é integrada nesse trabalho, pela vantagem de permitir acesso fácil e rápido para captura e execução de áudio em dispositivos móveis. Somado ao fato de que não há outra API de suporte multimídia semelhante à MMAPI no momento (ORACLE, 2010). Funcionamento O processo de funcionamento da MMAPI pode ser dividido em duas fases:  Protocol handling – cuja responsabilidade é a captura da mídia, tal como a captura de áudio.  Content handing – tem a função de processar os dados recebidos, ou seja, decodificar e renderizar enviando para os dispositivos de saída como o alto- falante.
  • 28. 28 Figura 3.6 - Processo de Funcionamento da MMAPI (GOYAL, 2006). Arquitetura Na JSR 135 são utilizados dois tipos de objetos de alto nível: DataSource que recebe a mídia e faz um encapsulamento do processo de controle do protocolo Player, que controla o conteúdo fornecido por DataSource e, além disso, processa e envia para o dispositivo de saída adequado, que pode ser um display ou alto-falante (GOYAL, 2006). 3.3.2 MMAPI e PCM A MMAPI dispõe de duas configurações extremas (mínimo/máximo) para a codificação PCM do sinal de áudio capturado pelo dispositivo móvel (GOYAL, 2006):  Mínimo: PCM com uma taxa de frequência de 8000 Hz, e 8 bits por amostra e um único canal (mono);  Máximo: PCM a uma taxa de frequência de 22050 Hz, 16 bits por amostra, e dois canais (estéreo). Configurações intermediárias podem ser livremente escolhidas, desde que suportadas pelo dispositivo. Para se descobrir as capacidades e as propriedades de codificação de áudio suportadas por determinado dispositivo móvel basta utilizar a função genuína do Java ME: System.getProperty(“audio.encodigns”), onde será retornado um vetor do tipo String contendo o formato das codificações suportadas (GOYAL, 2006). Esta verificação de formato pode ser obtida em Goyal (2006), na pagina 128 do seu livro, na forma de um aplicativo que exibe na tela do dispositivo as codificações suportadas. No framework SRM o áudio capturado encontra-se em uma configuração PCM fixa de 8 bits por amostra, entretanto permitindo a flexibilização da frequência de amostragem. 3.4 RMS O Record Management Store (RMS), flexibiliza as aplicações em dispositivos móveis através do recurso de persistência de dados.
  • 29. 29 No RMS é possível armazenar as informações manipuladas nas aplicações dos dispositivos de uma maneira persistente, sem que elas sejam perdidas quando o dispositivo for desligado. [...] cada record store pode ser visualizado como uma coleção de registros, que continuarão a ser persistente em várias invocações do MIDlet. A plataforma de dispositivo é responsável por fazer o seu melhor esforço para manter a integridade dos record stores do MIDlet durante o uso normal da plataforma, incluindo reinicializações, mudanças de bateria, etc [...] (SUN, 2006). Figura 3.7: Interface Java ME RMS (SUN, 2008) Segundo o site Java Tips (SUN, 2008) um record store é a única forma de armazenamento persistente que um dispositivo CLDC é obrigado a suportar . O record store é um conjunto de elementos de dados não formatado, cada um identificado por um número inteiro único, também chamado de ID. “Esse sistema é implementado através da classe javax. microedition.rms.RecordStore, que fornece o acesso de abertura, fechamento, escrita e leitura de dados no vetor de bytes que o consiste” (COSTA e GRAZZIOTIN, 2007). Nesse trabalho o RMS será usado para armazenar informações importantes ao reconhecimento e ao funcionamento do framework.
  • 30. 30 4 EXTRAÇÃO DE INFORMAÇÃO A extração da informação útil do sinal digital de som visa gerar um conjunto de características que diferenciam de maneira reconhecível os eventos de cada elocução representada digitalmente (PETRY, ZANUT e BARONE, 2000) (CIPRIANO, 2001). A metodologia para a extração de informação do sinal seguida por este trabalho é baseada em diversas obras da literatura moderna tais como (PETRY, 2002), (CUADROS, 2007), (SILVA, 2009) (PETRY, ZANUT e BARONE, 2000), entre outros. Também é adicionada a esta metodologia a técnica de pré-processamento chamada Inversão de Sinal proposta por este trabalho e descrita na subseção 6.4.1. Na figura 4.1 a seguir pode-se observar todas as etapas presentes na extração da informação do sinal no contexto deste trabalho destacando a parte que é implementada pelo framework SRM. Figura 4.1: Etapas que compõe a extração de informação do sinal de som Abaixo então, são detalhados os processos que compõe a fase de extração de informação. A seção 4.1 descreve a etapa de pré-processamento. Na seção 4.2 é
  • 31. 31 apresentada a analise espectral. E na seção 4.3 o processo de extração dos coeficientes MFCC. 4.1 Pré-Processamento O pré-processamento visa preparar o sinal para a análise espectral, auxiliando no processo de parametrização enfatizando os eventos contidos em cada sinal. Sua aplicação ao sinal é dividida em etapas de acordo com a figura 4.2. Figura 4.2: Etapas do pré-processamento Abaixo são descritas suas etapas conforme a figura 4.2. 4.1.1 Detecção de Extremos A detecção de extremos visa recortar o sinal de som de modo a obter somente o segmento do sinal contendo a elocução, eliminando os períodos considerados como silêncio. Esta técnica permite aumentar a distinção das informações presente em diferentes sinais (LIMA, 2000). 4.1.2 Inversão de Sinal Como a Inversão de Sinal é um proposta deste trabalho, a mesma não pode ser caracterizada neste capítulo referente à fundamentação teórica, e juntamente com o algoritmo de detecção de extremos proposto, é explicada na subseção 6.4.1. 4.1.3 Pré-Ênfase Normalmente o sinal depois de filtrado pelo filtro Anti-Aliasing e digitalizado pelo conversor A/D é em seguida aplicado a um filtro de pré-ênfase (PETRY, ZANUT e BARONE, 2000) (RABINER e JUANG, 1978) (SILVA, 2009), objetivando nivelar seu espectro compensando a atenuação de 6dB/oitava nas altas frequências. Esta atenuação espectral é decorrente de características fisiológicas do trato vocal que podem ser removida através da aplicação deste filtro (PETRY, 2002), O filtro pré-ênfase é aplicado ao sinal através da equação abaixo: [ ] [ ] [ ] Onde y é o sinal pré-enfatizado, s é o sinal de som amostrado, n é a quantidade de amostras e é o coeficiente de pré-ênfase com o valor entre 0.9 e 1 (RABINER e JUANG, 1978). Na figura 4.3 pode-se perceber a mudança no espectro de frequências antes e depois da aplicação de pré-ênfase.
  • 32. 32 Figura 4.3: Espectro de frequências sem e com pré-ênfase (PETRY, 2002) O filtro pré-ênfase também é usado para equalizar o espectro de som e melhorar o desempenho da análise espectral atenuando sinais de baixa frequência e fazendo com que sinais agudos sejam destacados (CIPRIANO, 2001). Neste trabalho o filtro pré-enfase é aplicado logo após o sinal passar pelo processo de Inversão de Sinal. 4.1.4 Janelamento Em todas as aplicações práticas de processamento de sinais, é necessário se trabalhar com pequenas porções ou frames do sinal. O janelamento consiste em segmentar o sinal pré-enfatizado através da divisão do sinal em janelas a fim de obter estas pequenas porções. Pois se considera que os parâmetros do trato vocal variam lentamente no decorrer do tempo. Assim para intervalos de 10 à aproximadamente 30 milissegundos assume-se que as variações no modelo do trato vocal não se alteram, podendo ser consideradas estacionárias (RABINER e JUANG, 1978) (CIPRIANO, 2001) (LIMA, 2000) (PETRY, ZANUT e BARONE, 2000) (PETRY, 2002) (SILVA, 2009). Uma boa analogia para entender a divisão em janelas do sinal, seria comparar as janelas a frames em um vídeo, os mesmos representam estaticamente algum momento de imagem, e seu conjunto corresponde a um vídeo em si. Entre as janelas existentes (Retangular, Bartlett, Blackman, Hanning, Welch), a que é tipicamente utilizada por autores de reconhecimento de voz, e consequentemente a que se mostra mais interessante é a janela de Hamming ou do inglês Hamming Window. A janela de Hamming pode usada para realizar a segmentação do sinal, ou pode ser aplicada a um sinal já segmentado. Sua função é suavizar as bordas de cada segmento que por consequência da segmentação podem conter variações abruptas do sinal. Essa suavização é realizada pelo próprio aspecto da janela e também pela sobreposição entre janelas. Na figura 4.4 se pode compreender o aspecto teórico (a), e prático (aplicado a um sinal qualquer) (b), de uma janela de Hamming:
  • 33. 33 Figura 4.4: Janela de Hamming E sua função de aplicação ao sinal é dada pela seguinte equação: [ ] { ( ) Aplicar uma janela a um sinal no domínio de tempo corresponde a multiplicar o sinal pela função que representa a janela. Uma vez que a multiplicação no domínio de tempo equivale a convolução no domínio de frequência, a aplicação da janela no domínio de tempo altera a forma do sinal também no domínio de frequência (RABINER e JUANG, 1978) (ANDRADE e SOARES, 2005). A sobreposição das janelas pode ser disposta conforme a figura 4.5. Figura 4.5: Janelas de Hamming com sobreposição de 50% A sobreposição das janelas pode variar de 0% a 70%. A figura 4.5 exemplifica uma aplicação de janelas de Hamming com sobreposição de 50%. Uma sobreposição alta permite uma transição mais suave dos parâmetros extraídos, porém, estimativas amplamente suavizadas podem ocultar variações reais do sinal (CIPRIANO, 2001).
  • 34. 34 Caso a última janela ultrapassar os limites do sinal, deve-se completar com zeros até o final da janela, como mostrado na janela 5 da figura 4.5. Como explicado, o janelamento permite a fragmentação do sinal de som em quadros onde o sinal pode ser considerado estacionário. Essa característica é útil para aplicação em seguida da Transformada Rápida de Fourier (FFT). Escolher o tipo, tamanho e sobreposição de uma janela, é muito importante para resultados otimizados de reconhecimento e também de performance de processamento, fator este fundamental no contexto móvel. Outra janela utilizada no processamento de sinal de voz é a janela retangular. Ela é a mais simples de ser aplicada, pois na pratica aplicar uma janela retangular significa não aplicar janela nenhuma, e somente dividir o sinal em segmentos, mantendo seu valor de magnitude anterior (ANDRADE e SOARES, 2005). Esta janela pode ser útil em algoritmos de detecção de extremos. Após o processo de janelamento o sinal está pronto para ser modificado quanto a sua representação pela análise espectral, nela é realizado o processo para converter sua representação do domínio de tempo para o domínio de frequências. Isso se torna útil, pois um sinal no domínio de frequência fornece informações mais convenientes ao reconhecimento sobre suas características. 4.2 Análise Espectral A função da análise espectral é representar os parâmetros mais úteis do sinal no domínio de frequências ao invés do domínio do tempo permitindo uma distinção mais detalhada da composição fonética do sinal de som (SILVA, 2009). Essa característica é principalmente utilizada no reconhecimento de voz, onde a principal diferença entre as palavras se dá num domínio de frequências. Contudo, neste trabalho também é aplicada ao reconhecimento de sons. Figura 4.6: Análise espectral Na figura 4.6, pode-se entender onde a análise espectral se encaixa na extração de informação, também é possível perceber que o sinal ao passar pela analise espectral tem seu domínio de representação alterado para o domínio de frequências.
  • 35. 35 A seguir são descritas as etapas que compõe a análise espectral presentes na figura 4.6. 4.2.1 Transformada Rápida de Fourier (FFT) A transformada rápida de Fourier (FFT) do inglês Fast Fourier Transform consiste em uma família de algoritmos para calcular de uma forma mais eficiente a Transformada Discreta de Fourier (DFT) e sua inversa. A DFT é um membro da família de técnicas matemáticas usadas para realizar a análise de Fourier. A DFT permite representar um sinal discreto no domínio tempo e transformar esse sinal para uma representação discreta no domínio de frequências (GONÇALVES, 2004) (CERNA e HARVEY, 2000). Considerando–se N amostras do sinal no domínio de tempo, denotadas f[k], k=0,1,2,...,N-1, a DFT é data por um conjunto de N amostras do sinal no domínio de frequência, denotadas por F[n], n = 0,1,2,...,N-1 e definidas pela equação: [ ] ∑ [ ] e sua inversa [ ] ∑ [ ] Porém o cálculo de uma transformada discreta de Fourier exige muito processamento computacional (envolvendo um número considerável de somatórios, integrações e substituições) e se torna inviável para o processo de análise espectral de um sinal de som. Em virtude desta complexidade, algoritmos de resolução da transformada discreta de Fourier foram desenvolvidos e aperfeiçoados no decorrer do tempo. O algoritmo mais conhecido de resolução desta transformada é o FFT. Com o FFT foi possível calcular uma DFT com seu algoritmo de ordem de complexidade n², com um algoritmo de ordem de complexidade igual n.log2.n (CERNA e HARVEY, 2000). Desta maneira a FFT reduz expressivamente os cálculos matemáticos usados para realizar a análise de Fourier. Para fins explicativos, abaixo é apresentado, através da figura 4.7, um gráfico com o tempo de processamento que a FFT consumiu conforme o aumento de pontos numa escala de potencia de 2, em um teste realizado no emulador SDK 3.0, utilizado variáveis ponto-flutuantes do tipo float.
  • 36. 36 140 120 100 Tempo (ms) 80 60 40 20 0 128 256 512 1024 2048 4096 8192 Número de pontos de entrada Figura 4.7: Desempenho da FFT em relação ao aumento de pontos É importante lembrar que a FFT não é um tipo diferente de transformada e sim uma técnica que possibilita calcular a DFT de forma muito mais rápida e econômica. Existem vários algoritmos usados para computar a FFT, entre eles podem ser citados o radix-2, radix-8, Split-radix, e prime-factor. O mais conhecido destes é o radix-2, que foi utilizado neste trabalho embora não seja o mais rápido. Devido a características do algoritmo radix-2, o cálculo da FFT requisita um tamanho de vetor de entrada igual a uma potencia de 2 (128, 256), o que reduz o custo computacional do algoritmo diminuindo consideravelmente o número de operações (YOMA, 1993). Caso o tamanho do vetor de entrada não seja uma potencia de 2 emprega-se a técnica de Zero Padding nas janelas que simplesmente complementa o tamanho inicial do vetor para um tamanho igual a uma potencia de 2 através da atribuição de zeros no final do vetor. Uma vez que a transformada de Fourier é executada como saída tem-se a parte real e a imaginária que correspondem as funções base utilizadas na FFT chamadas funções cosseno e seno – ver figura 4.8. Figura 4.8: Esquema de saída da FFT e a aplicação de sua inversa (JNECZKO, 2010) Com estes vetores de saída da FFT pode-se calcular o espectro de magnitude, que representa os valores de amplitude de toda componente de frequência, e um espectro de fase que fornece o valor inicial da fase de cada componente de frequência ao longo da
  • 37. 37 duração do sinal. O espectro de magnitudes pode ser obtido através da seguinte equação (CERNA e HARVEY, 2000): [ ] √ [ ] [ ] e o espectro de fase: [ ] [ ] ( ) [ ] Onde P é o espectro de fase, M é o espectro de magnitude, real é a parte real de saída da FFT, imag é a parte imaginária de saída da FFT e n é o número de pontos de cada janela imposta à da FFT. 4.2.2 Espectro de Potências Cada índice do espectro de magnitude de saída da FFT representa uma frequência com uma determinada amplitude. Contudo a primeira metade da magnitude é simétrica em relação a sua segunda metade. Então descarta-se a segunda metade (CUADROS, 2007), resultando em um vetor de tamanho N/2. O espectro de potências da FFT pode ser obtido simplesmente elevando o módulo da magnitude ao quadrado: [ ] | [ ]| Onde Pw é o espectro de potências e M é o espectro de magnitude. O espectro de potências terá então um tamanho N/2 devido à simetria do vetor de magnitude, onde N é o tamanho inicial da janela aplicada a FFT, ou seja, o número de pontos da FFT. 4.3 Extração dos Parâmetros Esta é a ultima etapa da extração de informação (SPHINX-4, 2008). Após a realização de uma análise espectral do sinal de som, é preciso determinar um conjunto de parâmetros capazes de diferenciar cada evento (CIPRIANO, 2001). A ideia básica da extração de parâmetros é a de uma redução no volume de dados de forma a gerar apenas um conjunto pequeno de parâmetros, porém contendo informações suficientes para a caracterização do sinal. Para isso os parâmetros extraídos no processo de análise espectral devem ser o máximo invariante de interferências externas, como ruído de fundo, transdutor e locutor, reduzindo as taxas computacionais sem muita perda de informação (CIPRIANO, 2001). Neste trabalho foi utilizada a extração de parâmetros através dos coeficientes Mel- Cepstrais (MFCC do inglês Mel-Frequency Cepstral Coefficients). 4.3.1 Coeficientes Mel-Cepstrais (MFCC) De acordo com Petry (2002), Mel é “uma unidade de frequência ou picos percebidos de um som”, amplamente utilizada no reconhecimento de voz e que procura aproximar- se da sensitividade de frequências do ouvido humano.
  • 38. 38 A ideia da escala Mel surgiu em 1940, através de um experimento realizado por Volkman e Stevens. Neste experimento foi arbitrado que 1000 Hz seriam iguais a 1000 Mels, e foi se alterando a frequência de um determinado sinal e perguntando as pessoas que contribuíam para os testes quanto de aumento elas notavam na frequência (LIMA, 2000). Terminada esta pesquisa, foi comprovado então que a percepção do ouvido humano para as frequências sonoras não segue uma escala linear (SILVA, 2009). Isso pode ser melhor observado através da figura 4.9. Onde as escalas de frequência em Hz e as em Mel são comparadas. Figura 4.9 - Variação logarítmica da escala Mel em relação a Hz (LIMA, 2000) Na escala Mel cada frequência linear medida em Hz associa-se um valor computado por essa escala medido em Mels, ou seja, uma representação de frequência na escala Mel. Seja f uma frequência física linear medida em Hz, pode-se calcular a representação Mel denotado por m desta frequência pela equação abaixo: ( ) E para transformar uma frequência Mel em uma frequência linear (Hz), aplica-se: ( ) ( ) A técnica de extração de parâmetros MFCC baseia-se no uso do espectro de som alterado segundo a escala Mel (SILVA, 2009). As etapas necessárias segundo a metodologia descrita por Rabiner et al (1978), para a se adquirir os coeficientes MFCC podem ser observadas através da figura 4.10.
  • 39. 39 Figura 4.10: Etapas da extração dos parâmetros Para obtenção dos coeficientes MFCC, filtra-se cada janela de espectro de potencias por um banco de filtros triangulares na escala Mel. Geralmente usa-se 20 filtros passa- banda igualmente espaçados. Sendo 10 filtros uniformemente espaçados no eixo da frequência até 1000 Hz e acima de 1000 Hz as faixas são distribuídas segundo uma escala logarítmica (RABINER e JUANG, 1978) (PETRY, 2002) (LIMA, 2000) – ver figura 4.11. Figura 4.11: Exemplo de banco de 20 filtros triangulares espaçados de acordo com a escala Mel (LIMA, 2000). A aplicação do banco de filtros objetiva reduzir o espectro de potencias para uma sequencia acumulada de valores de potencia, em bandas de frequência diferentes. Além disso, aplicar os filtros também diminui a dimensão do vetor do espectro de potências para um tamanho igual ao número de filtros adotado. Os elementos de um segmento que passam por um mesmo filtro são somados para originar um único elemento para cada filtro naquele segmento (RABINER e JUANG, 1978) (SPHINX-4, 2008). As constantes que definem um banco de filtros são o número de filtros, a frequência mínima, e a frequência máxima. A frequência mínima e a máxima determinam a faixa de frequência abrangida pelo filtro. Essas frequências dependem do canal e a frequência de amostragem que se esta usando (SPHINX-4, 2008). Para telefonia, uma vez que o canal telefônico corresponde a um filtro passa-banda com frequências de corte de cerca de 300Hz e 3700Hz, limites de uso mais amplo do que estes seriam resíduos de largura de banda. Já para voz, a freqüência mínima de interresse geralmente é maior do que 100Hz, já que não há informação de som abaixo desta frequência (SPHINX-4, 2008).
  • 40. 40 Para a construção dos filtros Mel, considera-se que sejam distribuídos k filtros na frequência de Nyquist sobre o espectro linear (espectro de potencias) P. As frequências centrais fc destes filtros, distribuídas linearmente na escala Mel são calculadas segundo as etapas a seguir (BOERSMA e WEENINK, 2001): 1. Cálculo da largura de banda de Nyquist na escala Mel: ( ) 2. Cálculo das frequências centrais dos filtros MFC: ( ) ( ) 3. Cálculo da função de transferência (H): As funções do filtro passa-banda em escala mel são usadas de forma triangular sobre uma escala de frequência linear f. A função do filtro depende de três parâmetros: a fl que correspondente a menor freqüência, a frequência fc que é a frequencia central e fh que é a maior frequência. Em uma escala Mel, as distâncias fc-fl e fh-fc são as mesmas para cada filtro, sendo iguais para a distância entre fc de filtros sucessivos. A função do filtro é expressa pela seguinte equação (ZHOU e HAN, 2009) (BOERSMA e WEENINK, 2001): [ ] { Onde k é o número de filtros e f é o índice correspondendo a frequência proporcional abrangida pelo filtro sobre o espectro de potências. 4. Cálculo do valor acumulado de potencia no k-ésimo filtro: O espectro de potencias P é multiplicado pelo banco de filtros Mel e convertido para o espectro Mel. Onde o valor de energia acumulado para cada filtro é dado por (ZHOU e HAN, 2009): [ ] ∑ [ ] [ ] Onde X[k] é a energia de saída do k-ésimo filtro triangular, P é o espectro de potencias e N é o número de pontos da FFT.
  • 41. 41 Após estes procedimentos obtém-se um vetor contendo a energia de saída de cada filtro em relação ao espectro de potências, representado pela figura 4.12 abaixo. Figura 4.12: Energia de saída do banco de filtros De posse da energia de saída de cada filtro triangular, calcula-se o logaritmo na base 10 (ln) da sequencia obtida através da equação abaixo objetivando obter os coeficientes cepestros (ZHOU e HAN, 2009)(YOMA, 1993) (PETRY, 2002) (RABINER e JUANG, 1978). [ ] [ ] Então, aplica-se a transformada discreta do cosseno ou DCT (do inglês Discrete Cossine Transform) sobre estes valores para gerar os coeficientes MFCC, pois foi provado, que para uma sequencia de números reais a DCT é equivalente ao cálculo da FFT inversa (SPHINX-4, 2008). A equação para efetuar a DCT é apresentada a seguir (RABINER e JUANG, 1978) (LIMA, 2000): [ ] ∑ [ ] ( ) Onde n representa o índice do coeficiente MFCC, k o índice do filtro, M o número total de filtros e L o logaritmo da energia de saída k-ésimo filtro do banco. Obtendo desta maneira os coeficientes MFCC. Normalmente como processo adicional e 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.
  • 42. 42 5 RECONHECIMENTO O sinal de som, após passar pela fase de extração de informação, é expresso em um conjunto de parâmetros que representam informações deste mesmo sinal. A partir disso, pode-se iniciar a etapa de reconhecimento utilizando alguma técnica capaz de reconhecer os parâmetros gerados e definidos como padrões em relação a um conjuntos de parâmetros MFCC representado o sinal a ser reconhecido. Neste trabalho entende-se por padrão um conjunto de coeficientes MFCC extraídos do processo de extração de informação de um sinal de som que se deseja definir como padrão. Uma questão chave no reconhecimento de som é como comparar os padrões de som pela sua similaridade (ou equivalência, a distância entre os padrões). Dependendo do tipo de sistema de reconhecimento, a comparação de padrões pode ter uma grande gama de variações (RABINER e JUANG, 1978). O desempenho dos sistemas de reconhecimento gira em torno do número de padrões estabelecidos para comparação. Quanto maior for o número de padrões a serem comparados, maior será a requisição de processamento pelo sistema e consequentemente maior será o tempo de reconhecimento (OLIVEIRA, 2002). Em dispositivos portáteis este problema se agrava, principalmente o de processamento (já que a capacidade de armazenamento está mais flexível atualmente), então torna-se necessário contornar este problema com técnicas que ofereçam baixo custo computacional mas também permitem um reconhecimento confiável. Com base nos fatores citados acima, este trabalho adotou para o reconhecimento, a Dinamic Time Warping (DTW), cujo principal objetivo é determinar distâncias (através do uso em seu algoritmo da distância Euclidiana) dos padrões armazenados. Sua principal vantagem é o baixo custo computacional e a capacidade de eliminar variações temporais entre as elocuções. Conforme visto em Yoma (YOMA, 1993), a DTW se encaixa perfeitamente no contexto de reconhecimento de palavras isoladas dependente de locutor. 5.1 Dinamic Time Warping (DTW) A Dynamic Time Warping (DTW), ou Modelagem Determinística é um algoritmo para calcular o caminho ótimo entre duas séries temporais (FURTUNĂ, 2008). O algoritmo da DTW é introduzido para contornar o problema causado pelas variações de velocidade de pronunciação de palavras como pode ser observado na figura 5.1 (YOMA, 1993). Em sua versão “solo” a DTW surgiu no final da década de 70, sendo que também é utilizado hoje em dia nos HMM (Modelos Ocultos de Markov), onde é mais conhecido como algoritmo de decodificação de Viterbi.
  • 43. 43 Figura 5.1: Exemplo de diferença temporal Esta modelagem utiliza os parâmetros do sinal de voz como padrões de teste e referencia, junto com alguma métrica apropriada para a comparação dos mesmos, tendo baixo custo (CIPRIANO, 2001). Uma frequente métrica utilizada para comparação é o calculo de distância vetorial entre os padrões (FURTUNĂ, 2008). Existem algumas técnicas para o cálculo de distância vetorial, tais como a distância de Malahanobis (PETRY, ZANUT e BARONE, 2000), a distância de Bhattacharyya (PETRY, 2002) e a distância Euclidiana (FURTUNĂ, 2008), esta última, é a mais comumente usada no reconhecimento de voz devido ao seu baixo custo computacional e simplicidade de implementação. Considerando-se dois padrões de som R e T com N e M quadros de coeficientes MFCC cada, correspondendo ao padrão de referencia e ao padrão de teste, respectivamente. Os padrões R e T podem ser representados, depois de uma adequada extração de informação, por sequencias espectrais, da seguinte maneira: onde e , n = 1,...,N e m = 1,...M, são os vetores de parâmetros de características acústicas (CIPRIANO, 2001). Aplicando o DTW as sequencias R e T são comprimidas ao longo do eixo temporal resultante para se obter um alinhamento não-linear eliminando a diferença temporal. Esse processo pode ser observado de forma abstraída pela figura 5.2. Figura 5.2: Alinhamento não-linear gerado pela DTW (CIPRIANO, 2001).
  • 44. 44 Para este processo os quadros R e T são representados em um plano n-m, esboçados na figura 5.3, e as distâncias temporais são descritas por uma sequencia de pontos representados em uma matriz de distâncias mínima (CIPRIANO, 2001). Figura 5.3: Plano temporal dos padrões R e T (CIPRIANO, 2001). O objetivo do DTW então é encontrar o menor caminho ou caminho ótimo através da menor distância da matriz de distâncias mínimas (FURTUNĂ, 2008). As distâncias então são somadas e obtém-se uma distância mínima geral. Após a aquisição das distâncias entre o padrão de teste e todos os padrões de referência, como visto em (YOMA, 1993) pode-se calcular os coeficientes de seletividade de reconhecimento, para verificar se o reconhecimento foi bem sucedido ou não. 5.1.1 Coeficientes de Seletividade de Reconhecimento Yoma (1993) descreve detalhadamente em seu trabalho os coeficientes de seletividade de reconhecimento obtidos das distâncias da DTW. Estes coeficientes servem para quantificar e qualificar uma determinada distância em relação às outras distâncias obtidas e assim classificar se o reconhecimento pode ser considerado correto ou não. De modo geral a menor distância encontrada tende a ser a palavra reconhecida, porém, quando a palavra de teste pronunciada não corresponde a nenhuma palavra contida no banco de padrões, mesmo a menor distância não pode ser considerada, pois estaria errada. Este problema pode ser observado na figura 5.4.
  • 45. 45 Figura 5.4 - Exemplo de erro de reconhecimento utilizando somente as distâncias mínimas da DTW Como exposto na figura 5.4, este exemplo acarretaria no reconhecimento da palavra “um”, ou mesmo se a elocução de teste no lugar de “cinco” fosse, por exemplo, “zero”, mas pronunciado de uma maneira não muito clara, mesmo assim, poderia acarretar erros de reconhecimento devido às condições acústicas da palavra de teste. Baseado em Yoma (1993) este trabalho adota então uma solução para analisar a qualidade do reconhecimento através dos coeficientes de seletividade definidos por:  C1 = menor distância entre a elocução 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 pertencem a mesma palavra da elocução de teste ou que não pertença ao padrão que resultou na menor distância geralmente sendo associada a segunda menor distância. Sendo assim, quanto menor for C1 melhor a qualidade do reconhecimento e quanto maior forem C2 e C3 maior a qualidade do reconhecimento. Em Yoma (YOMA, 1993) também são definidos outros dois coeficientes de seletividade: Sel1 e Sel2, pois as parametrizações geradas por aquele trabalho geraram coeficientes numericamente diferentes, dado que a distância final da DTW era a soma das distâncias entre os quadros ao longo do caminho ótimo de comparação. Esta característica encontra em Yoma (YOMA, 1993), é a mesma presente neste trabalho, ou seja, as distâncias resultantes da aplicação da DTW em vez de caracterizarem um número maior que 0 e menor que 9, são resultado da soma das distâncias do caminho ótimo, resultando em valores fora deste padrão. Então adota-se a mesma abordagem encontrada em Yoma (YOMA, 1993) definindo dois novos coeficientes: 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 é
  • 46. 46 normalizada em relação à duração dos padrões de teste e de referencia, é 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. 5.2 Distância Euclidiana A distância euclidiana é uma métrica para computar a semelhança através da distância entre duas distribuições vetoriais. Quanto menor for a distância calculada, mais semelhantes são os padrões comparados. A distância euclidiana pode ser obtida para duas sequencias através da seguinte equação: ∑| [ ] [ ]| Onde x e y são duas sequencias de mesmo tamanho N. Embora a distância euclidiana não seja usada diretamente neste trabalho ela é aplicada internamente no algoritmo de DTW. 5.3 Coeficiente de Correlação de Pearson O coeficiente de correlação de Pearson é uma medida do grau de relação linear entre duas variáveis quantitativas. Este coeficiente varia entre os valores -1 e 1. O valor 0 (zero) significa que não há relação linear, o valor 1 indica uma relação linear perfeita e o valor -1 também indica uma relação linear perfeita mas inversa, ou seja quando uma das variáveis aumenta a outra diminui. Quanto mais próximo estiver de 1 ou -1, mais forte é a associação linear entre as duas variáveis (MEDSTATWEB, 2009). O coeficiente de correlação de Pearson é normalmente representado pela letra r e a sua fórmula de cálculo é a apresentada abaixo (MEDSTATWEB, 2009): ∑ ̅ ̅ √ ∑ ̅ ∑ ̅ Neste trabalho o coeficiente de correlação de Pearson é utilizado somente para o processo de treinamento de amostras (descrito na seção 6.8) que poderão ser definidas como padrão, pois tem a vantagem de apresentar um baixo custo, e aliado à analise da duração de tempo entre as elocuções tornou-se uma ferramenta útil no processo de treinamento.
  • 47. 47 6 O FRAMEWORK SRM De um modo geral o SRM (Sound Recognizer ME) é um Framework para reconhecimento de sons em dispositivos móveis. Mais especificamente, o SRM permite dois tipos de reconhecimento, o reconhecimento de palavras isoladas dependente de locutor e o reconhecimento de sons abstratos. 6.1 Capacidades Nas subseções a seguir são descritas as capacidades disponibilizadas por este framework 6.1.1 Reconhecimento de palavras isoladas dependente de locutor Este tipo de reconhecimento habilita aplicações ao reconhecimento de palavras isoladas dependentes de locutor. Esta capacidade foi definida principalmente devido a limitações impostas atualmente pelos dispositivos móveis. Pois no reconhecimento independente de locutor, se faz necessário um banco de amostras que são utilizadas para um prévio treinamento para cada padrão (palavra) do sistema de reconhecimento, estas amostras caracterizam-se normalmente pela diferenciação entre idade e sexo para a mesma palavra, o que requisita um maior processamento e um maior espaço para o armazenamento destas respectivas amostras. Outro fator muito importante na escolha quanto à dependência de locutor do SRM aborda um contexto mais pessoal, pois como este framework é voltado para dispositivos móveis, o reconhecimento geralmente se aplicará sobre ações que são geradas por eventos mais pessoais correspondentes a cada usuário do dispositivo. Este fator pode ser inconveniente caso o reconhecimento independente de locutor seja utilizado, sendo que nestas circunstancias o usuário não deseje que elocuções de outras pessoas sejam reconhecidas em seu dispositivo móvel. 6.1.2 Reconhecimento de som Outra característica do SRM é integrar ao reconhecimento sons abstratos que não caracterizam uma palavra em si. Entre estes sons pode-se exemplificar um estalar de dedos, campainha tocando, entre outros sons. 6.1.3 Vocabulário pequeno Com base em resultados obtidos nos testes, o SRM abrange um reconhecimento sobre um vocabulário pequeno (menor ou igual a 20 padrões para reconhecimento). Contudo este fator não limita a utilização do framework para um reconhecimento envolvendo mais que 20 padrões, entretanto os desempenhos de reconhecimento nestas