Davyd Bandeira de Melo Junho 2011 1 * 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 2 Técnicas de Processamento Digital da Voz Transmissão Digital e Armazenamento Síntese de Voz Reconhecimento de Voz Identificação de Elocutores 3 Realce da Qualidade da Voz Acessibilidade *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 4 Estágios constituintes de um sistema de reconhecimento de voz 5 *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. 6 *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 7 8 *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 9 *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 10 *Consiste em representar o sinal através de suas amostras atrasadas no tempo: 𝑠 𝑛 ≈ 𝑎1 𝑠 𝑛 − 1 + 𝑎2 𝑠 𝑛 − 2 … + 𝑎𝑝 𝑠(𝑛 − 𝑝) *Os coeficientes a1, a2, a3, ..., ap são chamados de coeficientes LPC *p é chamada ordem do preditor 11 *Minimização de uma função custo *Resolvendo a equação acima obtemos os valores ótimos onde 12 *Utiliza-se então o algoritmo de Levison-Durbin para resolver o sistema dos coeficientes LPC 13 14 * Objetivo: encontrar regularidades nos dados de forma a separá-los em classes 15 * 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 16 Problema linearmente separável Problema não-linearmente separável 17 Curva não-linear separando duas classes de dados * 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: 18 * 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 19 * 𝑋 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: 20 * Multiplicamos 𝑋 𝑇 pela direita e em seguida por (𝑋𝑋 𝑇 )−1 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 21 * 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μ 22 x Mapeamento Aleatório (W) u(i) tgh(.) z(i) Arquitetura da rede neural ELM 23 OLAM (M) y Neurônio da camada escondida Neurônio da camada de saída 24 *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 25 *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 é 26 * 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 27 *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 28 * 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 29 30 Modelos de dados utilizados no SRCV 31 * 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 32 Diagrama de classe que representa o padrão DAO 33 Diagrama de classe que representa o padrão Singleton 34 * 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 35 * Resultados: * OLAM: * ELM: 98% de acerto no treinamento Taxa de acerto da rede ELM no treinamento Tempo médio de execução da rede ELM (inicialização, treinamento e teste) 36 * 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 37 * Resultados: * OLAM: * ELM: 65,5% de acerto no treinamento Tempo médio de execução da rede ELM (inicialização, treinamento e teste) Taxa de acerto da rede ELM no treinamento 38 * 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 39 * 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 40 * 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 41 * 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 42 * Resultados: * OLAM: * ELM: 55% de acerto no treinamento Matriz de confusão para a rede neural ELM. Métrica m1 para a rede neural ELM. Taxa de acerto da rede ELM no treinamento 43 Matriz de confusão para a rede neural OLAM. Métrica m1 para a rede neural OLAM. 44 * 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 45 * 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 46 47 48