Junho 2011 Davyd Bandeira de Melo 1. * Aplicações do Processamento Digital de Voz * Motivação *...
Transcript of Junho 2011 Davyd Bandeira de Melo 1. * Aplicações do Processamento Digital de Voz * Motivação *...
1
Junho 2011
Um Sistema de Reconhecimento de Comandos de Voz Utilizando
a Rede Neural ELM
Davyd Bandeira de Melo
2
Sumário*Aplicações do Processamento Digital de Voz
*Motivação
*Arquitetura de um Sistema de Reconhecimento de Voz*Aquisição de Dados
*Pré-processamento
*Sistema de Recorte
*Representação do Sinal de Voz
*Reconhecimento de padrões* Tipos de problemas de interesse
*Memória Associativa Linear Ótima (OLAM)
*Máquinas de Aprendizagem Extrema (ELM)
*SRCV – Sistema de Reconhecimento de Comandos de Voz
*Simulações
*Conclusões
*Perspectivas Futuras
3
Aplicações do Processamento Digital de Voz
Técnicas de Processamento Digital da Voz
Transmissão Digital e
ArmazenamentoSíntese de Voz Reconhecimento
de VozIdentificação de
ElocutoresRealce da
Qualidade da Voz Acessibilidade
4
Motivação*Interação homem-máquina em sistemas multimídias em alta*Maior naturalidade na comunicação com sistemas computacionais
*Mobilidade do usuário melhorada através da interface de voz
*Aplicações em Robótica Móvel
*Acessibilidade
5
Arquitetura de um Sistema de Reconhecimento de Voz
Estágios constituintes de um sistema de reconhecimento de voz
6
Aquisição de Dados*Responsável por capturar, amostrar e digitalizar as
elocuções
*O sinal capturado constitui de:*Períodos de silêncio
*Períodos relevantes do sinal de voz
*Ruído de fundo*Ex: Ar condicionado, chuva, imperfeições do equipamento de captura,
dentre outros.
7
Sistema de Recorte*Sistemas Detectores de Atividade de Voz (DAV)
*Retira períodos de silêncio do início e do fim da elocução
*Reduz a quantidade de dados a serem processados em estágios posteriores
*Alguns algoritmos de DAV levam em consideração o ruído de fundo
8
Sistema de Recorte
9
Pré-processamento*Filtro de pré-ênfase*Torna o sinal menos suscetível aos efeitos de precisão finita
*Planifica o espectro
Função de transferência do filtro de pré-ênfase
Equação temporal do filtro de pré-ênfase
10
Representação do Sinal de Voz*Geração de características que forneçam maior
eficiência no reconhecimento das elocuções
*Reduz o espaço de dados sem perda de informação útil
*Representação utilizada: coeficientes LPC
11
Representação do Sinal de Voz*Consiste em representar o sinal através de suas
amostras atrasadas no tempo:
*Os coeficientes a1, a2, a3, ..., ap são chamados de coeficientes LPC
*p é chamada ordem do preditor
𝑠 (𝑛)≈𝑎1𝑠 (𝑛−1 )+𝑎2𝑠 (𝑛−2 )…+𝑎𝑝𝑠 (𝑛−𝑝 )
12
Representação do Sinal de Voz*Minimização de uma função custo
*Resolvendo a equação acima obtemos os valores ótimos
onde
13
Representação do Sinal de Voz
*Utiliza-se então o algoritmo de Levison-Durbin para resolver o sistema dos coeficientes LPC
14
Representação do Sinal de Voz
15
Reconhecimento de Padrões*Objetivo: encontrar regularidades nos dados de forma a separá-los
em classes
16
Reconhecimento de Padrões*Fase de treinamento e fase de generalização*Divide-se o conjunto de dados (N elementos) para treinamento e teste
*Fase de treinamento
*Conjunto de treinamento Xtr com N1 elementos
*Rótulos das classes de cada vetor de treinamento
*Fase de teste
*Conjunto de teste Xtest com N2 elementos
*Observa-se as saídas do classificador para verificar seu desempenho
*Realimentação dos resultados e ajustes finos
*Tipos de conjunto* Linearmente separáveis
*Não-linearmente separáveis
17
Tipos de Problema de Interesse
Problema linearmente separável
Problema não-linearmente separável
Curva não-linear separando duas classes de dados
18
Memória Associativa Linear Ótima (OLAM)*Assume-se inicialmente um mapeamento linear W desconhecido
entre vetores de entrada x e vetores de saída d:
*Representando o mapeamento através de sistemas lineares:
19
Memória Associativa Linear Ótima (OLAM)*Tem-se como objetivo descobrir uma matriz aproximada dos parâmetros do
sistema a partir de pares entrada/saída
*Onde yμ é a saída estimada do mapeamento, que deve ser próximo de dμ, cujo o erro é dado por
*O OLAM consiste em estimar a matriz utilizando a técnica da pseudoinversa
*Fase de treinamento:*Conjunto de dados com N vetores de entrada
*Matrix com N1 (N1 < N) vetores de entrada
*Matrix com N1 vetores de saídas desejadas
20
Memória Associativa Linear Ótima (OLAM)* e são as concatenações dos vetores de entrada e saídas desejadas
respectivamente, ou seja:
*Construímos o mapeamento linear a partir de e
*Onde cada vetor coluna de possui +1 na classe desejada e -1 nas outras classes, ou seja:
21
Memória Associativa Linear Ótima (OLAM)*Multiplicamos pela direita e em seguida por também pela direita:
*De onde obtemos:
*Para verificarmos a generalização do modelo obtido fazemos:
*Onde:
* é um conjunto de teste com N2= N – N1 elementos
* saída do novo modelo estimado
22
Memória Associativa Linear Ótima (OLAM)*Obtém-se a classe inferida pela rede observando o índice do maior
elemento de um vetor coluna de , ou seja:
*Em que representa a classe inferida pelo classificador quando se aplica um vetor de entrada xμ
23
Máquinas de Aprendizagem Extrema (ELM)
Mapeamento Aleatório
(W)tgh(.)
OLAM(M)
u(i) z(i)x y
Arquitetura da rede neural ELM
24
Máquinas de Aprendizagem Extrema (ELM)
Neurônio da camada escondida Neurônio da camada de saída
25
Máquinas de Aprendizagem Extrema (ELM)*Três fases a serem seguidas para realização do treinamento da
rede ELM:*Fase 01: Inicialização Aleatória dos Pesos dos Neurônios Ocultos
*Fase 02: Acúmulo das Saídas dos Neurônios Ocultos
*Fase 03: Cálculo dos pesos dos neurônios de saída
*O conjunto de dados possui N vetores de entrada.
*N1 (N1 <N) vetores para treinamento
*N2 = N - N1 vetores para teste
26
Máquinas de Aprendizagem Extrema (ELM)*Fase 01: Inicialização Aleatória dos Pesos dos Neurônios
Ocultos
*Inicializa-se a matriz dos pesos W com valores aleatórios que podem ser distribuídos de forma uniforme ou normal
*Onde W é
27
Máquinas de Aprendizagem Extrema (ELM)*Fase 02: Acúmulo das Saídas dos Neurônios Ocultos
*Calcula-se a matriz de ativação da camada oculta utilizando uma matriz de dados de treinamento (N1 vetores)
*Realizando todas as computações matricialmente, temos:
*Após isso se aplica a função de ativação tanh(.) para obter a saída da camada oculta
28
Máquinas de Aprendizagem Extrema (ELM)*Fase 03: Cálculo dos pesos dos neurônios de saída
*Tendo obtido Z, podemos enxergar a última camada como um modelo OLAM de entrada Z e saídas desejadas D
*Podemos obter a matriz de pesos M da camada de saída aplicando o método da pseudoinversa
*Teste de capacidade de generalização utilizando as matrizes W e M
29
SRCV*SRCV – Sistema de Reconhecimento de Comandos de Voz
*Características Proprostas*Gravação de elocuções
*Cadastro de novos comandos de voz
*Exibição de formas de onda
*Gerenciamento completo das elocuções
*Armazenamento dos parâmetros das redes neurais
*Seleção do tipo de rede utilizado nas simulações
*Log de atividades
*Simulações através de arquivos de dados e bancos de dados relacionais
30
Screenshot
31
Modelos de Dados
Modelos de dados utilizados no SRCV
32
Padrões de Projetos Utilizados*Padrão de Projeto*Soluções que, no contexto das linguagens orientadas a objeto,
proporcionem reuso, modularidade e uma maior separação entre camadas de software.
*Padrões de Projeto utilizados no SRCV*Singleton: Acesso através de um único objeto à conexão com o banco de
dados
*Data Access Object: Acesso transparente aos meios persistentes
33
Padrões de Projetos Utilizados
Diagrama de classe que representa o padrão DAO
34
Padrões de Projetos Utilizados
Diagrama de classe que representa o padrão Singleton
35
Simulações – Conjunto Wine*Simulação 01: Utilização de um conjunto de dados pouco desafiador para
validação das redes neurais desenvolvidas
*Após os vetores de dados serem carregados eles são embaralhados e divididos
*80% dos dados para treinamento. N1 = 0,80 * N
*20% dos dados para teste. N2 = 0,20 * N
*A rede é treinada 50 vezes e em cada vez um novo embaralhamento é realizado
*Os melhores parâmetros das redes neurais são guardados e utilizados na fase de generalização*OLAM: Matriz W
*ELM: Matriz W e M
36
Simulações – Conjunto Wine*Resultados:*OLAM: 98% de acerto no treinamento
*ELM:
Taxa de acerto da rede ELM no treinamento
Tempo médio de execução da rede ELM (inicialização, treinamento e teste)
37
Simulações – Conjunto Wall-Following Robot
*Simulação 02: Utilização de um conjunto de dados desafiador para validação das redes neurais desenvolvidas
*Após os vetores de dados serem carregados eles são embaralhados e divididos
*80% dos dados para treinamento. N1 = 0,80 * N
*20% dos dados para teste. N2 = 0,20 * N
*A rede é treinada 50 vezes e em cada vez um novo embaralhamento é realizado
*Os melhores parâmetros das redes neurais são guardados e utilizados na fase de generalização*OLAM: Matriz W
*ELM: Matriz W e M
38
Simulações – Conjunto Wall-Following Robot
*Resultados:*OLAM: 65,5% de acerto no treinamento
*ELM:
Taxa de acerto da rede ELM no treinamento Tempo médio de execução da rede ELM (inicialização, treinamento e teste)
39
Simulações – Conjunto das Elocuções*Simulação 03: Utilização do conjunto de dados para testar o reconhecimento de
comandos
*Após os vetores de dados serem carregados eles são embaralhados
* 100% dos dados para treinamento. N1 = N
* 7 elocuções para cada um dos comandos: frente, trás, esquerda e direita
*A rede é treinada 50 vezes e em cada vez um novo embaralhamento é realizado
*Os melhores parâmetros das redes neurais são guardados e utilizados na fase de generalização* OLAM: Matriz W
* ELM: Matriz W e M
*Para realização do teste uma nova elocução é gravada, representada através de coeficientes LPC e submetida às redes neurais
40
Simulações – Conjunto das Elocuções*Os coeficientes LPC de cada frame de uma elocução são extraídos e a
cada um deles é atribuído um rótulo
*A matriz dos vetores de entrada tem a seguinte forma
*Onde os rótulo R0, R1, R2,... RL-1 são os rótulos dos comandos dos quais cada coeficiente LPC pertence
41
Simulações – Conjunto das Elocuções*A matriz dos vetores de entrada é submetida a rede neural
*Para cada vetor dessa matriz a rede neural inferirá uma classe
*Cada classe possui uma variável acumuladora que indica quantas vezes a rede identificou um dado comando
*É feito o voto majoritário entre as variáveis acumuladoras para indicar qual comando foi emitido pelo usuário
*Por exemplo, se a rede possuir as seguintes variáveis acumuladoras teremos como saída o comando frente:* Frente: 145
* Trás: 0
* Esquerda: 15
* Direita: 12
42
Simulações – Conjunto das Elocuções*Parâmetros de aquisição das elocuções:*Taxa de amostragem: 8KHz
*Bits/amostra: 8
*Número de canais: 1
*Sinalização: Sim
*Endianess: Big-endian
*Parâmetros de pré-processamento*Coeficiente do filtro de pré-ênfase: 0,9
*Parâmetros de representação do sinal*Ordem de predição linear: 10
43
Simulações – Conjunto das Elocuções*Resultados:*OLAM: 55% de acerto no treinamento
*ELM:
Taxa de acerto da rede ELM no treinamento
Matriz de confusão para a rede neural ELM.
Métrica m1 para a rede neural ELM.
44
Simulações – Conjunto das Elocuções
Matriz de confusão para a rede neural OLAM.
Métrica m1 para a rede neural OLAM.
45
Conclusões*O uso de conjuntos de dados cuja complexidade é conhecida foi útil para validar
as implementações das redes neurais
*O classificador não-linear (ELM) se comportou melhor em relação ao classificador linear (OLAM) para os dados de voz*Melhor matriz de confusão
*Maior precisão evidenciada através de uma métrica m1
*A taxa de acerto da rede ELM saturou a medida que se aumenta quantidade de neurônios da camada oculta
*O tempo de execução da rede ELM apresentou um comportamento exponencial a medida que se aumenta quantidade de neurônios da camada oculta
*O uso de padrões de Software adicionou modularidade e reuso à aplicação
46
Perspectivas Futuras*Correções de bugs conhecidos no simulador
*Melhoria da usabilidade do simulador
*Implementação da funcionalidade de reconhecimento de usuários
*Criação de uma interface entre o software e as rotinas de movimentação do robô SCITOS G5
47
Dúvidas