reconhecimento de fala usando cadeias de markov
DESCRIPTION
reconhecimento de fala usando cadeias ocultas de markovTRANSCRIPT
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
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
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 ___/___/____
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.
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.
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.
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
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
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.
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.
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):
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)
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.
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;
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)
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)
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.
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.
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
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
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.
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.
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.