A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Análise de Voz e Vídeo Reconhecimento de voz baseado em modelos de palavras conectadas André Vitor de Almeida Palhares.

Apresentações semelhantes


Apresentação em tema: "Análise de Voz e Vídeo Reconhecimento de voz baseado em modelos de palavras conectadas André Vitor de Almeida Palhares."— Transcrição da apresentação:

1 Análise de Voz e Vídeo Reconhecimento de voz baseado em modelos de palavras conectadas André Vitor de Almeida Palhares

2 Roteiro Introdução Formalizando o problema Two-level DP algorithm Level building algorithm One-state algorithm Varias strings candidatas Resumo dos algoritmos Segmentação Implementação

3 Introdução O reconhecimento da voz não é feito através de palavras ou frases isoladas Antes as palavras eram entidades completas – Poderiamos apenas encontrar o melhor alinhamento de cada diferente palavra com a entrada Não há uma distinção clara entre duas palavras

4 Introdução

5 Exemplos – Reconhecimento de strings derivadas de vocabulários de tamanho pequeno-médio – Strings de dígitos – Sequencias de letras

6 Introdução O problema: Ri são palavras do vocábulario de v palavras T é uma string de palavras dividida em frames t(1), t(2),..., t(M)

7 Introdução Dada uma sequência de palavras faladas fluentemente, qual o casamento ótimo que existe pela concatenação de palavras do vocábulário Problema de otimização – Geralmente não se sabe o número de palavras L – Não se sabe onde as palavras terminam/começam – Não podemos resolver o problema de maneira exaustiva (V L possibilidades)

8 Formalizando o problema Padrão de teste T = {t(1), t(2),..., t(M)}, cada t(m) é algum vetor spectral Ri palavras de um vocabulário de V palavras: R i = {r i (1), r i (2),..., r i (N i )} Devemos encontrar R*, uma sequência de concatenação de palavras Ri que melhor casa com T. Supondo que L seja o numero de palavras em R*, temos: R* = {R q*(1) R q*(2)... R q*(L) }

9 Formalizando o problema Para determinar R* (a melhor solução), vamos construir um R s arbitrário, da forma: R s = {r s (1), r s (2),..., r s (N s )}, onde N s é a sua duração total A distância entre R s e T dada pelo DTW é: Onde d(.,.) é uma distancia spectral local, w(.) é a função de warping

10 Formalizando o problema

11 Assim, devemos minimziar a funçao de distancia e obter a menor distancia D*: O número de computações necessárias pra esse cálculo é muito alto M = 300 frames, L = 7 palavras, 40 frames por palavras em média e V = 10 palavras, teriamos cerca de 3*10 11 computações.

12 Two-level DP algorithm Quebra a computação da minimização em dois estágios. No primeiro, casa cada palavra R v com uma porção arbitrária da string T: – Cada palavra é casada com todas as combinações possíveis de b, frame onde ela iniciaria e e, frame onde ela terminaria. Assim, computariamos:

13 Two-level DP algorithm Assumindo um nivel de expansão/compressão de no máximo 2, teríamos: A partir daí, podemos escolher a melhor R v entre quaisquer dois índices b e e:

14 Two-level DP algorithm Para a segunda fase do two-level dp, temos que juntar de maneira ótima os melhores mínimos entre os frames, minimizando a distancia acumulada. Isso pode ser feito utilizando-se de programaçao dinâmica

15 Two-level DP algorithm Para um último frame e de uma sequência de l palavras, temos a menor distância dada por: Isto é, o melhor caminho de l palavras que termina no frame e é aquele que tem a menor distância entre todos os frames de início b, concatenado com o melhor caminho de l-1 palavras que termina em b-1

16 Two-level DP algorithm Passo 1 – inicialização Passo 2 – Loop em e para l = 1 Passo 3 – Recursão, loop em e pra l = 2,...,L max Passo 4, solução final

17 Level Building Algorithm O procedimento geral de alinhamento de um R s com um padrão de teste T pode ser visto da seguinte maneira: Nesse caso, o alinhamento é feito frame a frame.

18 Level Building algorithm Uma maneira alternativa de computar esse alinhamento é ao inves de alinhar frame a frame, é alinhar fixando um nível horizontal (que corresponde ao fim da primeira palavra de R s Este procedimento é iterado para todos os frames num determinado intervalo e é determinado que frames sao alcançados no proximo nível (proxima palavra de R s )

19 Level Building algorithm Para um único R s, os procedimentos são análogos. Mas, no caso do level building, podemos computar o alcance do proximo nivel para todas as V palavras distintas antes de computar o proximo nível

20 Level Building algorithm Diferença entre o two-level DP e o LB – No LB, fazemos V warps por nivel, resultando em V*L warps no total – no two-level DP, fazemos um time warp pra cada frame, tendo entao V*M time warps Como em geral M(o numero de frames) é bem maior que L(o numero de palavras), ganhamos em eficiencia

21 Level Building algorithm - implementação Seja a menor distância acumulada, no nível l, usando o padrao R v ao frame m do padrão de teste. Iniciamos o algoritmo para o nível 1: R 1 é alinhado com o início de T, com um DTW padrão e o seu último frame é alinha-se com m, dado num intervalo m 11 (1) <= m <= m 12 (1). Guardamos. Fazemos o mesmo com todos os padrões R v, obtendo as distancias abaixo:

22 Level Building algorithm - implementação Assim, podemos definir o menor e o maior intervalos para o proximo nivel da seguinte maneira:

23 Level Building algorithm - implementação

24 Guardamos também os seguintes valores: – Melhor distancia no level l para o frame m – Indice da palavra que deu a distância acima – Ponteiro para o melhor frame final do nível anterior que leva a Com apenas estas informações, podemos encontrar ainda o melhor alinhamento.

25 Level Building algorithm - implementação A partir do nível 2, realizamos os mesmos procedimentos do nível 1, porem agora há varios frames dos quais podemos partir:

26 Level Building algorithm - implementação Continuamos o algoritmo até atingir o nível L max e assim obtemos a melhor solução D*, dada por: Um contra do algoritmo é que ele é sincronizado atraves dos níveis e nao através dos frames(quando se passa um nível, provavelmente se acessa um frame ja computado). Assim, é dificil implementar uma versao que funcione em tempo real.

27 Level Building algorithm - exemplo Vocabulário dado por duas palavras: A e B Procuramos a solução com l = 4 níveis

28 Level Building algorithm – vários níveis Assumindo expansão/compressão no DTW de no máximo 2, as restrições dadas pelas linhas de máximo e mínimo são:

29 Level Building algorithm – vários níveis Podemos reduzir ainda mais computações desnecessárias com o seguinte esquema de restrições:

30 Level Building algorithm Ainda podemos melhorar o algoritmo LB em diversos aspectos, utilizando algumas técnicas: – Reduzir o range para o início de cada nível – Reduzir o range global – Variar o range do final do padrão de teste T, fazendo-o assim mais robusto – Integrar uma gramática (através de uma máquina de estados, por exemplo), que permita diminuir o número de vocabulários por nível

31 One-state algorithm A idéia básica do algoritmo one-state é dada pela figura abaixo, com o frame de teste T no eixo horizontal e o eixo vertical com as palavras R v

32 One-state algorithm Para cada frame m de teste, calculamos em relaçao a cada frame n dos padrões de palavras R v a distância acumulada dada por d(m,n,v) é a distância local entre o frame de teste t(m) e o frame de referência r v (n) A recursão da fórmula é feita pra todos os frames internos de R v (n>=2) Para n = 1(frame de borda), a recursão é dada por

33 One-state algorithm Assim, a combinatória para frames internos escolhe o melhor caminho interno naquela palavra de referência A combinatória para frames de borda escolhe entre um caminho horizontal da mesma palavra de referencia ou o melhor frame final de qualquer palavra de referência

34 One-state algorithm O caminho com a melhor solução é O maior problema com este algoritmo é que ele não leva em conta informações a priori sobre o número de palavras da entrada que possamos ter. Para tal, devemos modificá-lo:

35 One-state algorithm A computação do algoritmo para cada frame pode ser feita sincronamente Pode ser implementado pra reconhecimento de voz em tempo real Cada d(m,n,v) será computada em cada um dos níveis e utilizado em níveis subseqüentes sem a necessidade de maiores cálculos.

36 Várias strings candidatas Podemos querer saber quais os n melhores matching que existem – E utilizar esta informação com uma gramática por exemplo, para verificar qual delas é de fato a correta Para tal, só precisamos guardar informações não apenas sobre a menor distância obtida, mas também sobre a segunda menor, etc.

37 Várias strings candidatas Duas melhores strings utilizando o algoritmo LB

38 Resumo dos algoritmos Algoritmos Two-level DP, LB, one-state Todos os 3 algoritmos apresentados são idênticos no que diz respeito a eles retornarem a mesma melhor string Podem ser facilmente estendidos para modelos estatísticos (HMMs) Permitem a inclusão de uma gramática para aumentar a robustez do reconhecimento

39 Gramáticas para reconhecimento de dígitos conectados Sem levar em conta o número de níveis Para 7 níveis Levando em conta perda ou inserção de um digito a mais

40 Segmentação Um importante problema a ser levado em conta é quais padrões serão utilizados durante o reconhecimento Segmentação e rotulação manuais podem levar a erros e inconsistência Criação de um procedimento automático de segmentação Treinamento de padrões das strings segmentadas

41 Segmentação Baseada no k-means: – Inicialmente, temos um conjunto de treinamento rotulado com palavras conectadas e um conjunto de modelos de dígitos (isolados) 1. Utilizar qualquer algoritmo para segmentar os arquivos do conjunto de treinamento 2. Atualiza-se o modelo das palavras, utilizando-se algum algoritmo de clustering 3. Se ainda não convergiu, continua-se iterando.

42 Segmentação

43 Implementação de um sistema de reconhecimento Analise espectral: as características espectrais do sinal de voz são retiradas (LPC, filter bank, etc) Casamento de padrões: utilizando qualquer algoritmo citado Pós processamento: Eliminação de candidatos impossíveis, escolhendo o melhor.

44 Dúvidas ?


Carregar ppt "Análise de Voz e Vídeo Reconhecimento de voz baseado em modelos de palavras conectadas André Vitor de Almeida Palhares."

Apresentações semelhantes


Anúncios Google