You are on page 1of 44

Anlise de Voz e Vdeo

Reconhecimento de voz baseado em modelos de palavras conectadas Andr Vitor de Almeida Palhares

Roteiro
Introduo Formalizando o problema Two-level DP algorithm Level building algorithm One-state algorithm Varias strings candidatas Resumo dos algoritmos Segmentao Implementao

Introduo
O reconhecimento da voz no feito atravs de palavras ou frases isoladas Antes as palavras eram entidades completas
Poderiamos apenas encontrar o melhor alinhamento de cada diferente palavra com a entrada

No h uma distino clara entre duas palavras

Introduo

Introduo
Exemplos
Reconhecimento de strings derivadas de vocabulrios de tamanho pequeno-mdio Strings de dgitos Sequencias de letras

Introduo
O problema:

Ri so palavras do vocbulario de v palavras T uma string de palavras dividida em frames t(1), t(2), ..., t(M)

Introduo
Dada uma sequncia de palavras faladas fluentemente, qual o casamento timo que existe pela concatenao de palavras do vocbulrio Problema de otimizao
Geralmente no se sabe o nmero de palavras L No se sabe onde as palavras terminam/comeam No podemos resolver o problema de maneira exaustiva (VL possibilidades)

Formalizando o problema
Padro de teste T = {t(1), t(2), ..., t(M)}, cada t(m) algum vetor spectral Ri palavras de um vocabulrio de V palavras: Ri = {ri(1), ri(2), ..., ri(Ni)} Devemos encontrar R*, uma sequncia de concatenao de palavras Ri que melhor casa com T. Supondo que L seja o numero de palavras em R*, temos: R* = {Rq*(1) Rq*(2)... Rq*(L)}

Formalizando o problema
Para determinar R* (a melhor soluo), vamos construir um Rs arbitrrio, da forma: Rs = {rs(1), rs(2),..., rs(Ns)}, onde Ns a sua durao total A distncia entre Rs e T dada pelo DTW :

Onde d(.,.) uma distancia spectral local, w(.) a funo de warping

Formalizando o problema

Formalizando o problema
Assim, devemos minimziar a funao de distancia e obter a menor distancia D*:

O nmero de computaes necessrias pra esse clculo muito alto M = 300 frames, L = 7 palavras, 40 frames por palavras em mdia e V = 10 palavras, teriamos cerca de 3*1011 computaes.

Two-level DP algorithm
Quebra a computao da minimizao em dois estgios. No primeiro, casa cada palavra Rv com uma poro arbitrria da string T:
Cada palavra casada com todas as combinaes possveis de b, frame onde ela iniciaria e e, frame onde ela terminaria. Assim, computariamos:

Two-level DP algorithm
Assumindo um nivel de expanso/compresso de no mximo 2, teramos:

A partir da, podemos escolher a melhor Rv entre quaisquer dois ndices b e e:

Two-level DP algorithm
Para a segunda fase do two-level dp, temos que juntar de maneira tima os melhores mnimos entre os frames, minimizando a distancia acumulada. Isso pode ser feito utilizando-se de programaao dinmica

Two-level DP algorithm
Para um ltimo frame e de uma sequncia de l palavras, temos a menor distncia dada por: Isto , o melhor caminho de l palavras que termina no frame e aquele que tem a menor distncia entre todos os frames de incio b, concatenado com o melhor caminho de l-1 palavras que termina em b-1

Two-level DP algorithm
Passo 1 inicializao Passo 2 Loop em e para l = 1 Passo 3 Recurso, loop em e pra l = 2,...,Lmax

Passo 4, soluo final

Level Building Algorithm


O procedimento geral de alinhamento de um Rs com um padro de teste T pode ser visto da seguinte maneira:

Nesse caso, o alinhamento feito frame a frame.

Level Building algorithm


Uma maneira alternativa de computar esse alinhamento ao inves de alinhar frame a frame, alinhar fixando um nvel horizontal (que corresponde ao fim da primeira palavra de Rs Este procedimento iterado para todos os frames num determinado intervalo e determinado que frames sao alcanados no proximo nvel (proxima palavra de Rs)

Level Building algorithm

Para um nico Rs, os procedimentos so anlogos. Mas, no caso do level building, podemos computar o alcance do proximo nivel para todas as V palavras distintas antes de computar o proximo nvel

Level Building algorithm


Diferena 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

Level Building algorithm implementao


Seja a menor distncia acumulada, no nvel l, usando o padrao Rv ao frame m do padro de teste. Iniciamos o algoritmo para o nvel 1: R1 alinhado com o incio de T, com um DTW padro e o seu ltimo frame alinha-se com m, dado num intervalo m11(1) <= m <= m12(1). Guardamos . Fazemos o mesmo com todos os padres Rv, obtendo as distancias abaixo:

Level Building algorithm implementao

Assim, podemos definir o menor e o maior intervalos para o proximo nivel da seguinte maneira:

Level Building algorithm implementao

Level Building algorithm implementao


Guardamos tambm os seguintes valores:
Melhor distancia no level l para o frame m
Indice da palavra que deu a distncia acima Ponteiro para o melhor frame final do nvel anterior que leva a

Com apenas estas informaes, podemos encontrar ainda o melhor alinhamento.

Level Building algorithm implementao


A partir do nvel 2, realizamos os mesmos procedimentos do nvel 1, porem agora h varios frames dos quais podemos partir:

Level Building algorithm implementao


Continuamos o algoritmo at atingir o nvel Lmax e assim obtemos a melhor soluo D*, dada por: Um contra do algoritmo que ele sincronizado atraves dos nveis e nao atravs dos frames(quando se passa um nvel, provavelmente se acessa um frame ja computado). Assim, dificil implementar uma versao que funcione em tempo real.

Level Building algorithm - exemplo


Vocabulrio dado por duas palavras: A e B Procuramos a soluo com l = 4 nveis

Level Building algorithm vrios nveis


Assumindo expanso/compresso no DTW de no mximo 2, as restries dadas pelas linhas de mximo e mnimo so:

Level Building algorithm vrios nveis


Podemos reduzir ainda mais computaes desnecessrias com o seguinte esquema de restries:

Level Building algorithm


Ainda podemos melhorar o algoritmo LB em diversos aspectos, utilizando algumas tcnicas:
Reduzir o range para o incio de cada nvel Reduzir o range global Variar o range do final do padro de teste T, fazendo-o assim mais robusto Integrar uma gramtica (atravs de uma mquina de estados, por exemplo), que permita diminuir o nmero de vocabulrios por nvel

One-state algorithm
A idia bsica do algoritmo one-state dada pela figura abaixo, com o frame de teste T no eixo horizontal e o eixo vertical com as palavras Rv

One-state algorithm
Para cada frame m de teste, calculamos em relaao a cada frame n dos padres de palavras Rv a distncia acumulada dada por

d(m,n,v) a distncia local entre o frame de teste t(m) e o frame de referncia rv(n) A recurso da frmula feita pra todos os frames internos de Rv (n>=2) Para n = 1(frame de borda), a recurso dada por

One-state algorithm
Assim, a combinatria para frames internos escolhe o melhor caminho interno naquela palavra de referncia A combinatria para frames de borda escolhe entre um caminho horizontal da mesma palavra de referencia ou o melhor frame final de qualquer palavra de referncia

One-state algorithm
O caminho com a melhor soluo O maior problema com este algoritmo que ele no leva em conta informaes a priori sobre o nmero de palavras da entrada que possamos ter. Para tal, devemos modific-lo:

One-state algorithm
A computao 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 nveis e utilizado em nveis subseqentes sem a necessidade de maiores clculos.

Vrias strings candidatas


Podemos querer saber quais os n melhores matching que existem
E utilizar esta informao com uma gramtica por exemplo, para verificar qual delas de fato a correta

Para tal, s precisamos guardar informaes no apenas sobre a menor distncia obtida, mas tambm sobre a segunda menor, etc.

Vrias strings candidatas


Duas melhores strings utilizando o algoritmo LB

Resumo dos algoritmos


Algoritmos Two-level DP, LB, one-state Todos os 3 algoritmos apresentados so idnticos no que diz respeito a eles retornarem a mesma melhor string Podem ser facilmente estendidos para modelos estatsticos (HMMs) Permitem a incluso de uma gramtica para aumentar a robustez do reconhecimento

Gramticas para reconhecimento de dgitos conectados


Sem levar em conta o nmero de nveis Para 7 nveis

Levando em conta perda ou insero de um digito a mais

Segmentao
Um importante problema a ser levado em conta quais padres sero utilizados durante o reconhecimento Segmentao e rotulao manuais podem levar a erros e inconsistncia Criao de um procedimento automtico de segmentao Treinamento de padres das strings segmentadas

Segmentao
Baseada no k-means:
Inicialmente, temos um conjunto de treinamento rotulado com palavras conectadas e um conjunto de modelos de dgitos (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 no convergiu, continua-se iterando.

Segmentao

Implementao de um sistema de reconhecimento


Analise espectral: as caractersticas espectrais do sinal de voz so retiradas (LPC, filter bank, etc) Casamento de padres: utilizando qualquer algoritmo citado Ps processamento: Eliminao de candidatos impossveis, escolhendo o melhor.

Dvidas
?

You might also like