Professional Documents
Culture Documents
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
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 :
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:
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
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
Como em geral M(o numero de frames) bem maior que L(o numero de palavras), ganhamos em eficiencia
Assim, podemos definir o menor e o maior intervalos para o proximo nivel da seguinte maneira:
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.
Para tal, s precisamos guardar informaes no apenas sobre a menor distncia obtida, mas tambm sobre a segunda menor, etc.
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
Dvidas
?