23
CENTRO UNIVERSITÁRIO DE LINS - UNILINS ENGENHARIA DA COMPUTAÇÃO SISTEMA DE RECONHECIMENTO DE FALA USANDO CADEIAS OCULTAS DE MARKOV LEILA PATRÍCIA FERNANDES BANDEIRA OSVALDO ARTUR JÚNIOR ROSA VÁNIA MARCOS DA COSTA LINS 2008

Reconhecimento de fala usando cadeias de markov

Embed Size (px)

DESCRIPTION

reconhecimento de fala usando cadeias ocultas de markov

Citation preview

Page 1: Reconhecimento de fala usando cadeias de markov

CENTRO UNIVERSITÁRIO DE LINS - UNILINS ENGENHARIA DA COMPUTAÇÃO

SISTEMA DE RECONHECIMENTO DE FALA USANDO CADEIAS OCULTAS DE MARKOV

LEILA PATRÍCIA FERNANDES BANDEIRA OSVALDO ARTUR JÚNIOR

ROSA VÁNIA MARCOS DA COSTA

LINS 2008

Page 2: Reconhecimento de fala usando cadeias de markov

LEILA PATRÍCIA FERNANDES BANDEIRA OSVALDO ARTUR JÚNIOR

ROSA VÁNIA MARCOS DA COSTA

SISTEMA DE RECONHECIMENTO DE FALA USANDO CADEIAS OCULTAS DE MARKOV

Trabalho de pesquisa apresentado como parte do requisito para participação no Projeto de Iniciação Científica do Centro Universitário de Lins - UNILINS, sob orientação do Prof. Dr. Júlio Tanomaru

LINS 2008

Page 3: Reconhecimento de fala usando cadeias de markov

OSVALDO ARTUR JÚNIOR ROSA VÁNIA MARCOS DA COSTA

SISTEMA DE RECONHECIMENTO DE FALA USANDO CADEIAS OCULTAS DE MARKOV

Trabalho de pesquisa apresentado como parte do requisito para participação no Projeto de Iniciação Científica do Centro Universitário de Lins - UNILINS, sob orientação do Prof. Dr. Júlio Tanomaru

BANCA EXAMINADORA:

_________________________

_________________________ _________________________

Aprovado em ___/___/____

Page 4: Reconhecimento de fala usando cadeias de markov

AGRADECIMENTOS

Os nossos agradecimentos vão primeiramente a Deus, por nos ter dado forças para continuar este projeto apesar de todos os entraves. Um agradecimento especial vai também ao professor Júlio Tanomaru, pois sem ele este projeto não teria existido, ele nos orientou e conduziu em todas as etapas do mesmo. Gostaríamos também de agradecer a todos os nossos colegas e amigos que de forma direta ou indireta nos ajudaram e incentivaram a continuar o projeto.

Page 5: Reconhecimento de fala usando cadeias de markov

RESUMO

Este projeto visa estudar métodos estatísticos para reconhecimento de fala, particularmente a sua modelagem utilizando processos aleatórios chamados de Cadeias Ocultas de Markov e sua implementação em software de um sistema que permita o reconhecimento de algumas poucas palavras em português. Palavras chave: Sistema de reconhecimento de fala, reconhecimento de padrões, cadeias de markov.

Page 6: Reconhecimento de fala usando cadeias de markov

ABSTRACT

This project aims to study statistical methods for speech recognition, particulary its modeling with Hidden Markov Models and its implementation for portuguese language recognition. Keywords: Speech recognition system, pattern recognition, markov models.

Page 7: Reconhecimento de fala usando cadeias de markov

SUMÁRIO 1. INTRODUÇÃO ......................................................................................................................................... 8

1.1 OBJETIVOS……………………………………………………………………………………….…………………………………………………..8 1.2 METODOLOGIA ....................................................................................................................................... 8

2. CADEIAS OCULTAS DE MARKOV .............................................................................................................10

2.1. PROBLEMAS DE UM HMM ...................................................................................................................12 2.2. RESOLUÇÃO ......................................................................................................................................12

3. APLICAÇÃO DE HMM NO RECONHECIMENTO DE PALAVRAS .................................................................17

3.1. RECONHECIMENTO DE PALAVRAS ISOLADAS ..............................................................................................19 3.2. PARÂMETROS DO MODELO ...................................................................................................................19

4. CONCLUSÕES .........................................................................................................................................21

5. REFERÊNCIAS .........................................................................................................................................22

Page 8: Reconhecimento de fala usando cadeias de markov

LISTA DE FIGURAS

FIGURA 2.1-MATRIZ DE PROBABILIDADE TRANSIÇÃO DE ESTADOS .....................................................................................10 FIGURA 2.2-REPRESENTAÇÃO DA MATRIZ DE TRANSIÇÃO COM TRÊS ESTADOS ......................................................................11 FIGURA 3.1-ILUSTRAÇÃO DO ESQUEMA DE FLUXO DO SISTEMA DE RECONHECIMENTO DE FALA. ................................................17 FIGURA 3.2-PROCESSO DE ARMAZENAGEM DE PROTÓTIPO. ............................................................................................18 FIGURA 3.3-ENTRADA DA PALAVRA PARA TESTE. ..........................................................................................................19

Page 9: Reconhecimento de fala usando cadeias de markov

8

1. INTRODUÇÃO

Devido à crescente necessidade do homem em se comunicar, vêm sendo criados

sistemas cada vez mais sofisticados que permitem o aumento da sua produtividade. Os

sistemas de reconhecimento de voz por computador proporcionam inúmeras vantagens desde

o processo de agilização das atividades básicas na interação homem-máquina assim como

permitir a inclusão digital de portadores de necessidades especiais.

No caso do aumento da produtividade, podemos citar um exemplo de caso de uso de

sistemas de reconhecimento de voz em indústrias através do qual o operário pode emitir

ordens por voz para as máquinas sem a necessidade de manuseá-las toda vez que for

necessário.

O estudo de sistemas envolvendo sinais como é o caso dos sistemas de reconhecimento

de voz podem ser feitos utilizando processos de modelagem. Os modelos de sinais permitem-

nos ter uma descrição teórica do sistema de processamento dos sinais e também ter uma visão

sobre as fontes dos mesmos, através de simulações, sem que seja necessário termos tais fontes

disponíveis.

1.1. Objetivos

O presente projeto visa desenvolver um sistema para reconhecimento de palavras

isoladas usando Cadeias Ocultas de Markov (Hidden Markov Model - HMM), por se tratar de

um método bastante eficaz para resolver problemas de modelagem de sinais como é o caso de

reconhecimento de voz.

1.2 Metodologia

No processo de desenvolvimento deste projeto foram adotadas metodologias de estudos

baseadas em diversos materiais bibliográficos de referência sobre o assunto.

Page 10: Reconhecimento de fala usando cadeias de markov

9

O projeto foi desenvolvido usando fundamentos teóricos do estudo de processos

estocásticos (usados em casos em que se tem um fenômeno que varia com o tempo) criados

por Andrei Andreyevitch Markov, matemático russo, denominados Cadeias Ocultas de

Markov.

Faz parte do projeto o desenvolvimento de uma aplicação que seja capaz de

implementar todo um conjunto de cálculos probabilísticos que a partir de um modelo definido

de dados retorna a probabilidade de ser uma certa palavra ou um certo fonema.

Page 11: Reconhecimento de fala usando cadeias de markov

10

2. CADEIAS OCULTAS DE MARKOV

Uma cadeia de Markov é considerada oculta porque ela possui dois processos

estocásticos interdependentes (parâmetros) onde um deles é desconhecido ou não observável

(os estados) e o outro é conhecido (observável), e o objetivo é determinar parâmetros

desconhecidos, a partir dos observáveis.

Um processo aleatório S(t) pode ser considerado como cadeia de Markov se o estado

futuro (St+1) for independente do passado St-1, mas dependente somente do presente St.

Esta definição pode ser expressa em termos matemáticos conforme a Equação 1.

P[ qt+1 = Sj | qt = Si, qt-1 = Sk, …] = P[qt+1 = Sj|qt = Si], t=1, 2, …, N (1)

Exemplo:

Na previsão meteorológica, um estado de tempo (C: chuvoso, E: ensolarado, N:

nublado) pode permanecer nele mesmo ou mudar para um diferente, independente de seu

estado anterior, consoante uma matriz de probabilidade de transição de estados apresentado na

Figura 2.1.

C E N

Figura 2.1-Matriz de probabilidade transição de estados

Para melhor representar as transições de um estado para o outro, temos a seguinte

ilustração (ver Figura 2.2):

Page 12: Reconhecimento de fala usando cadeias de markov

11

Figura 2.2-Representação da matriz de transição com três estados

As cadeias de Markov são representadas na notação λ=(A,B, π) sendo:

A - Matriz de probabilidade de transição de estado, definida por A={aij} onde

aij = P[qt+1=Sj | qt = Si], 1 ≤ i , j ≤ N. (2)

B - Distribuição de probabilidades de observação de símbolos num dado estado j,

definida por B = {bj(k)} onde

Bj(k) = P[t|qt=Sj], 1 ≤ j ≤ N, 1 ≤ k ≤ M. (3)

Π = {πi} - Matriz de distribuição de estados iniciais com

πi = P[q1 = Si] (4)

Na análise das cadeias de Markov requer-se ainda o conhecimento dos parâmetros M e

N sendo:

N – Número de estados do nosso modelo e

M - Número de símbolos de observações em cada estado.

Geralmente os estados num modelo de Markov estão interconectados entre si. Cada

símbolo de estados individuais pode ser representado na forma

S = {S1, S2,..., SN}. (5)

Page 13: Reconhecimento de fala usando cadeias de markov

12

O número de símbolos de observações pode ser o tamanho do nosso protótipo de

palavras. As observações individuais são denotadas na forma

V = {v1, v2,..., vM } (6)

A seqüência de observações (parâmetros observáveis) O =O1O2... OT pode ser gerada

a partir dos elementos A, B, N, M e π. Cada Ot é um conjunto de V.

2.1. Problemas de um HMM

Para o uso dos modelos de Markov em aplicações do mundo real existem três problemas associados aos mesmos que devem ser resolvidos. São eles:

Problema 1 (Avaliação): Explicar como é que eficientemente se pode calcular a

probabilidade de uma seqüência de observações;

Problema 2 (Otimização): Definir qual a melhor solução a aplicar para resolver uma

dada seqüência de observações;

Problema 3 (Treinamento): Explicar como, através dos parâmetros do modelo, se pode

maximizar a probabilidade de seqüência de observações.

2.2. Resolução

Neste tópico será apresentado de forma resumida os principais métodos matemáticos

para a solução dos três problemas básicos de um HMM.

Para o Problema 1 temos um caso de avaliação em que visa determinar o modelo que

melhor descreve a nossa sequência de observações através do cálculo da probabilidade de

sequência de observações O. O Objetivo é escolher o modelo que mais se assemelha às

observações.

Page 14: Reconhecimento de fala usando cadeias de markov

13

Se considerarmos uma sequência de estados fixa Q = q1q2...qT, a probabilidade da

sequência de observações O é dada por

P(O | Q, λ) = ∏ 푃(푄푡 |푞푡, 휆) (7)

Vale ressaltar que, para este caso, assumimos que existe independência estatística entre

as observações. Assim, teremos

P(O | Q, λ) = bq1(O1) bq2(O2) ….bqT (OT ) (8)

A probabilidade da nossa sequência de estados Q será

P(Q| λ) = πq1aq1q2aq2q3aq3q4...aqT-qqT. (9)

A probabilidade de O e Q acontecerem simultaneamente é dada pelo produto das duas

probabilidades acima

P(O | λ) = P(O | Q, λ) P(Q| λ). (10)

enquanto que a probabilidade da sequência de observações O dado o modelo é determinada

pelo somatório de todas as probabilidades simultâneas de O e Q para todos os estados

possíveis, isto é,

푃(푄 | λ ̻) = ∑ 푃(푂 |푄, λ)푃(푄 | 휆) (11)

= Πq1bq1(O1)aq1q2bq2(O2)…aqT-1qTbqT(OT)

Vemos, porém que este método demanda um elevado número de computações

matemáticas (na ordem de 2TNT). Para simplificar a resolução do Problema 1 usamos o

algoritmo Forward-Backward que, dada uma variável de Forward α definida por

αt(i) = P(O1O2... Ot, qt = Si | λ) (12)

podemos determinar de forma indutiva a probabilidade desejada em três passos;

Page 15: Reconhecimento de fala usando cadeias de markov

14

1-Inicialização:

α1(i)=πibi(O1) (13)

2-Indução:

αt+1(j) = [ αt(i)aij]bj(Ot+1)* (14)

3-Finalização:

P(O|λ) = αT(i) * (15)

* 1 ≤ i ≥ N, 1 ≤ t ≥ T-1, 1 ≤ j ≥ N.

O Problema 2 visa buscar uma sequência de estados que seja a mais correta possível

através de critérios de otimização. Existem várias formas de se resolver este caso e uma delas

é o algoritmo de Viterbi que consistem em determinar a melhor sequência de estado

individual Q = {q1q2...qT} dada a sequência de observações O = {O1O2...OT} através da

equação

δt(i) = maxq1, q2, …, qt-1

P[q q … q = i, O O … O |λ] (16)

Por indução teremos

δt+1(j) = [max δt(i)aij ]bj(Ot+1) (17)

Para podermos determinar o argumento que maximize a Equação 17 utilizaremos a

matriz ψt(j) e seguindo os procedimentos do algoritmo de Viterbi teremos:

1-Inicialização

δ1(i) = πibi(O1) , 1 ≤ i ≤ N (18)

Page 16: Reconhecimento de fala usando cadeias de markov

15

ψ1(i) = 0. (19)

2-Recursão

δt(j) = max [δ (i)a ]b (O ) (20)

ψ1(i) = argmax [δt-1(i)aij] (21) 1 ≤ i ≤ N

2≤ t ≤ T, 1 ≤ j ≤ N

3-Finalização

P* = max [δT(i)] (22) 1 ≤ i ≤ N

qT* =argmax [δT(i)] (23) 1≤ i ≤ N

4-Determinação do caminho ótimo por retrocesso

qt = ψt+1(q*t+1), t = T-1, T-2, ..., 1 (24)

Os asteriscos nos passos 3) e 4) indicam resultados otimizados.

No Problema 3 pretende-se determinar um método que permita ajustar os parâmetros

do modelo λ = (A,B,π), para maximizar a probabilidade P(O|λ).

A escolha do modelo λ = (A,B,π), que maximiza a probabilidade P(O|λ) deve ser feita

de forma iterativa. Esta escolha é feita usando um dos vários procedimentos iterativos como o

método de Baum-Welch. O algoritmo de Baum-Welch maximiza a probalidade na sequinte

sequência:

(푖, 푗) = ( ) ( ) ( )

( | ) (25)

Page 17: Reconhecimento de fala usando cadeias de markov

16

γt (i)= ∑ t (i , j), (26)

onde t (i , j) representa a probabilidade de se estar no estado Si no instante t e no estado Sj no

instante t+1, conhecido o modelo e a sequência de observações, ou seja

t (i , j) = P(qt=Si, qt+1 = Sj | O, λ) (27)

e γt (i), a probabilidade de estar no estado Si no instante t dado o modelo e a sequência

de observações.

Page 18: Reconhecimento de fala usando cadeias de markov

17

3. APLICAÇÃO DE HMM NO RECONHECIMENTO DE PALAVRAS

Os Modelos Ocultos de Markov tem sido uma das melhores técnicas aplicadas nos

sistemas de reconhecimento de fala, isto se deve a vários fatores que o permitem adaptar-se

facilmente aos fenômenos envolvidos nos processos fonéticos e ainda por ser flexível e capaz

de assimilar uma grande variedade de parâmetros e informações.

Como vimos, a análise de sinais pode ser feito através de estudos de processos de

modelagem de padrões; dado um padrão de referência de palavras, precisamos reconhecer

um padrão de entrada que se assemelhe ao nosso padrão conhecido.

Com os modelos de Markov, podemos determinar as palavras prováveis através da

seqüência de estados e de observações.

O sistema desenvolvido fará o reconhecimento de poucas palavras isoladas, tendo como

base o seguinte procedimento ilustrado na Figura 3.1.

Figura 3.1-Ilustração do esquema de fluxo do sistema de reconhecimento de fala.

Depois de emitido o sinal de voz, ele é convertido para um sinal digital, a seguir o

comparador compara a seqüência de símbolos proferidos com os símbolos armazenados num

protótipo do sistema, e calcula-se no HMM qual das palavras tem maior probabilidade de ter

sido proferida.

Page 19: Reconhecimento de fala usando cadeias de markov

18

Os sinais de voz proferidos (palavras ou fonemas) passarão por um amplificador de

freqüência e um mecanismo onde serão repartidos em pequenos intervalos de freqüência

(amostragens) e em seguida filtrados (para se eliminar qualquer tipo de interferência como

ruído, etc.).

Cada sinal de voz proferido será composto de um conjunto de intervalos de frequências

que neste caso são as sequências de observações O = {O1O2...OT} e, por outro lado, cada

observação Ot é um conjunto de V, será representado por V = {v1v2....vM}.

Antes do processo de reconhecimento, primeiramente é feito uma série de treinamentos

ao HMM para se criar o banco de protótipos.

O treinamento é feito a partir de uma série de parametrização e quantização dos

modelos de fala pré-escolhidos. Extraímos os parâmetros de cada modelo e em seguida,

usando o método Baum-Welch, ajustam-se os parâmetros iniciais através da reestimação dos

mesmos. Para cada palavra ou fonema será criado e armazenado um HMM no nosso banco de

protótipos.

Outro passo importante é dividir a sequência de observações do protótipo e fazer

refinamentos contínuos em cada HMM armazenado melhorando sua capacidade de

modelagem da sequência de palavras ou fonemas. Essas melhorias podem ser feitas usando o

método Forward-Backward ou o algoritmo de Viterbi (determinando a máxima

verossimilhança).

Figura 3.2-Processo de armazenagem de protótipo.

Tendo o nosso banco de protótipos armazenado e otimizado podemos prosseguir com o

reconhecimento das palavras proferidas calculando a probabilidade P (O | λ) onde λ

corresponde aos parâmetros de um HMM armazenado no banco de protótipos.Esse cálculo é

feito no comparador que recebendo a palavra devidamente tratada ( convertida, filtrada e

repartida em sequências de observações individuais), determina a probabilidade de se ter

Page 20: Reconhecimento de fala usando cadeias de markov

19

proferida uma palavra dado o protótipo (modelo). A palavra correspondente ao modelo que

tiver a maior probabilidade será a reconhecida.

3.1. Reconhecimento de palavras isoladas

O presente trabalho limita-se ao reconhecimento de palavras isoladas usando

Cadeias Ocultas de Markov. É um sistema com um vocabulário de V palavras finitas

modeladas em HMM’s distintos e cada palavra previamente treinada com K ocorrências

diferentes onde cada K corresponde a uma sequência de observações.

Podemos ver a implementação do sistema no diagrama da Figura 3.1, onde a

cada palavra v do vocabulário é atribuído HMM, ou seja, estimamos os parâmetros (A. B, π)

que aperfeiçoam a verossimilhança do conjunto de observações treinadas.

Ao se entrar com a palavra para ser reconhecida é efetuada a quantização da

sequência de observação O (Figura 3.3), em seguida calculada a verossimilhança do modelo

de entrada com todos os possíveis modelos no nosso banco de protótipos, P(O | λv) e

finalmente escolher a maior probabilidade obtida pela relação

V* = argmax [P(O | λv)]. (24) 1 ≤ v ≤ V

Figura 3.3-Entrada da palavra para teste.

3.2. Parâmetros do modelo

Page 21: Reconhecimento de fala usando cadeias de markov

20

O processamento de sinais de voz nos fornece uma série de parâmetros

representativos de diversas características da voz. No estudo dos Modelos Ocultos de Markov

podemos utilizar tanto parâmetros temporais como parâmetros espectrais.

Os parâmetros temporais lidam diretamente com a forma de onda do sinal de

voz. Os parâmetros espectrais são mais usados e envolvem características difíceis de

visualizar na análise temporal.

Grande parte das técnicas de extração de parâmetros é baseada na análise LPC

(Linear Prediction Code) ou de Fourier de Curto Prazo. Estas técnicas resumem-se em

operações de pré-processamento como pré-ênfase (filtro), segmentação (frames) e

janelamento este último visa aumentar as características espectrais minizando a formas de

onda truncadas.

Page 22: Reconhecimento de fala usando cadeias de markov

21

4. CONCLUSÕES

Com este trabalho podemos concluir que os sistemas de reconhecimento de voz por

computador proporcionam inúmeras vantagens desde o processo de agilização das atividades

básicas na interação homem-máquina assim como permitir a inclusão digital de portadores de

necessidades especiais.

Existem diversos fatores que influenciam no processo de reconhecimento de fala. A

forma da pronúncia das palavras varia de pessoa para pessoa de acordo com os fatores

culturais, forma e tamanho do trato vocal e ritmo. Os padrões de fala também podem ser

influenciados pelo ambiente físico, contexto social, e estado físico-emocional da pessoa.

Fatores adversos exigem um conjunto de dados (protótipos) que seja suficiente para

cobrir as variações nos padrões da fala.Um dos problemas que pode ser deparado no

treinamento dos HMM’s por meio de reestimação é o facto de que a sequência usada para o

mesmo treinamento ser finita.Este problema pode ser resolvido reduzindo o tamanho do

modelo ou ainda interpolar o conjunto de parâmetros estimados no sistema com um outro

conjunto de um modelo existente que possua um bom número de dados treinados.

Vale a pena ressaltar que para uma boa implementação do HMM deve haver uma prévia

escolha do tipo do modelo a ser usado (ergódigo, esquerdo-direita, etc.), o tamanho do

modelo (número de estados), e os símbolos de observações (discretos ou contínuos, simples

ou de múltipla-mistura, etc.). Estas escolhas são feitas dependendo do sinal a ser modelado.

Page 23: Reconhecimento de fala usando cadeias de markov

22

5. REFERÊNCIAS - F. Jelinek, Statistical Methods for Speech Recognition, The MIT Press, 1998. - Rabiner, Lawrence R. Proceedings of IEEE. In: A Tutorial on Hidden Markov Models and Selected - Applications in Speech Recognition. Vol 77. No 2. February 1989, p 257 – 286.

- Becerra Y., Néstor Jorge, Reconhecimento automatico de palavras isoladas: Estudo e aplicação dos metodos deterministico e estocástico-Disponível em http://libdigi.unicamp.br/document/?code=vtls000076089 – Acessado em: Dezembro de 2008 - Santos, Reginaldo J. Cadeias de Markov. Universidade Federal de Minas Gerais. Departamento de Matemática. 2006. Disponível em: http://www.mat.ufmg.br/~regi/gaalt/markov.pdf Acessado em: Marco de 2008. - Oliveira, Deive Ciro. Silva, Cibele Queiroz da. Chaves, Lucas Monteiro. Cadeias de Markov com Estados Latentes com Aplicações em Analises de Seqüências de DNA. Rev. Mat. Est., São Paulo, v.24, n.2, p.51-66, 2006. - Ferrari, Denise Beatriz T. P. do Areal. Cadeias de Markov. Instituto Tecnológico de Aeronáutica, Divisão de Engenharia Mecânico-Aeronáutico. - Cadeias de Markov. Disponível em: http://ptikipedia.org/Wiki/Cadeias_de_Markov. Acessado em Abril de 2008.