• Nenhum resultado encontrado

2.3 Modelos ocultos de Markov (HMMs)

2.3.7 Ajuste dos parˆ ametros do modelo

Esse problema consiste em como ajustar os parˆametros HMM dado o conjunto de obser- va¸c˜oes O, usando a probabilidade m´axima como crit´erio de otimiza¸c˜ao. Isto ´e, reestimar

o modelo λ = (A, B, Π) inicial para encontrar um que maximize P (O|λ).

No intuito de encontrar o modelo que melhor se adequa a uma sequˆencia de obser-

va¸c˜ao dada, para isso usaremos o algoritmo de Baum Welch, que ´e usado para determinar os parˆametros desconhecidos de um HMM maximizando a probabilidade da sequˆencia de

observa¸c˜ao dada. ´E importante saber que o algoritmo Baum-Welch possui um m´aximo local para P (O|λ), mas n˜ao garante um m´aximo global.

Esse algoritmo faz uso do algoritmo foward-backward, explicado anteriormente, junto com as seguintes vari´aveis temporais:

1. γt(i, j) ´e a probabilidade de estar no estado si no instante t e no estado sj no

instante t+1:

γt(i, j) = P (qt= si, qt+1= sj|O, λ) =

αt(i)aijbj(ot+1)βt+1(j)

P (O|λ) (2.45)

A soma de γt(i, j) em t pode ser interpretado como o n´umero esperado de transi¸c˜oes

do estado si para o estado sj dado os parˆametros do modelo e a sequˆencia de observa¸c˜oes

O.

2. γt(i), que j´a foi definido anteriormente:

γt(i) = P (qt= si|O, λ) =

αt(i)βt(i)

A soma de γt(i) em t pode ser interpretado como o n´umero esperado de vezes em

que o estado si foi visitado ou o n´umero esperado de transi¸c˜oes que tiveram origem no

estado si dado os parˆametros do modelo e a sequˆencia de observa¸c˜ao O.

Ent˜ao, usando essas duas vari´aveis, n´os reestimamos os parˆametros do modelo usando as seguintes defini¸c˜oes:

1. Para i=1,...,N, temos

πi = γ1(i) (2.47)

2. Para i=1,...,N e j=1,...,N temos

aij = PT −1 t=1 γt(i, j) PT −1 t=1 γt(i) (2.48) 3. Para j=1,...,N e k=1,...,M temos bj(k) = P t∈(1,...,T ),Ot=kγt(i, j) PT t=1γt(i) (2.49)

Ent˜ao, podemos definir a reestima¸c˜ao como um processo iterativo:

1. Inicializar λ = (A, B, Π). Se n˜ao houver uma estimativa razo´avel dispon´ıvel, podemos escolher esses valores: πi ≈ 1/N, aij ≈ 1/N e bj(k) ≈ 1/M .

2. Computar αti, βt(i), γt(i, j)eγt(i).

3. Reestimar o modelo λ = (A, B, Π).

4. Se P (O|λ) crescer, repita a partir do 2 com os parˆametros novos reestimados.

Ao trabalhar com sequˆencias extensas de observa¸c˜ao, o processo de reestimativa explicado anteriormente n˜ao pode ser implementado do mesmo jeito, ´e necess´ario que se

fa¸ca a normaliza¸c˜ao.

A normaliza¸c˜ao ´e necess´aria, pois αt(i) consiste na soma de um grande n´umero

de termos, cada um dos quais envolvendo produtos de probabilidades. Como todos esses termos s˜ao inferiores a um, quando t aumenta cada termo de αt(i) come¸ca a diminuir

exponencialmente para zero, o que poderia causar problema de underflow no momento

em que a m´aquina fosse calcular esses valores.

Normaliza¸c˜ao: O procedimento de normaliza¸c˜ao consiste em multiplicar αt(i) por um

coeficiente de normaliza¸c˜ao, dependente do tempo(independente de i) e, tamb´em, fazer o

mesmo com βt(i). Para entender melhor o procedimento de normaliza¸c˜ao, vamos consi-

derar a f´ormula de reestima¸c˜ao do coeficiente aij:

aij = PT −1 t=1 γt(i, j) PT −1 t=1 γt(i) = PT −1 t=1 αt(i)aijbj(ot+1)βt+1(j) PT −1 t=1 PN j=1αt(i)aijbj(ot+1)βt+1(j) (2.50)

Considerando o c´alculo de αt(i), para cada t, primeiro calcula-se o αt(i) e depois

normaliza-se cada termo multiplicando pelo coeficiente de normaliza¸c˜ao

ct=

1 PN

i=1αt(i)

(2.51)

Ent˜ao, para um valor fixo de t, calculamos

αt(i) = N

X

j=1

( ˆαt−1(j)aij)bj(ot) (2.52)

O coeficiente normalizado ˆαt(i) ´e calculado como

ˆ αt(i) = PN j=1αˆt−1(j)aijbj(ot) PN i=1 PN j=1αˆt−1(j)aijbj(ot) (2.53)

Por indu¸c˜ao, podemos escrever ˆαt−1(j) como

ˆ αt−1(j) = ( t−1 Y T =1 cT)αt−1(j) (2.54)

ˆ αt(i) = αt(i) PN i=1αt(i) (2.55)

Uma vez que temos αt(i) normalizado, normalizamos βt(i) usando o mesmo fator de escala

para cada instante t. Consequentemente,

ˆ

βt(i) = ctβt(i) (2.56)

Ent˜ao, usando os valores normalizados, a f´ormula de reestima¸c˜ao do aij torna-se

aij = PT −1 t=1 αˆt(i)aijbj(ot+1) ˆβt+1(j) PT −1 t=1 PN j=1αˆt(i)aijbj(ot+1) ˆβt+1(j) (2.57)

Mas sabendo que ˆαt(i) e ˆβt+1(j) podem ser escritos como

ˆ αt(i) = [ t Y k=1 ck]αt(i) = Ctαt(i), (2.58) ˆ βt+1(j) = [ T Y k=t+1 ck]βt+1(j) = Dt+1βt+1(j) (2.59)

A f´ormula de reestima¸c˜ao pode ser escrita como

aij = PT −1 t=1 Ctαt(i)aijbj(ot+1)Dt+1βt+1(j) PT −1 t=1 PN j=1Ctαt(i)aijbj(ot+1)Dt+1βt+1(j) (2.60)

J´a que o termo CtDt+1 ´e independente de t(CtDt+1 = CT), ele pode ser cancelado

na f´ormula acima, e obteremos a mesma f´ormula de reestima¸c˜ao antes de fazer a nor- maliza¸c˜ao. Sendo assim, todas as f´ormulas de reestima¸c˜ao permanecem v´alidas usando o

procedimento de normaliza¸c˜ao descrito.

A mudan¸ca mais importante ´e a maneira de calcular P (O|λ) quando usamos os valores normalizados. Como ˆαt(i) est´a normalizado, n˜ao podemos somar seus termos

para calcular P (O|λ), pois seriam obtidos valores maiores do que um. Nesse caso vamos considerar a seguinte propriedade:

T Y t=1 ct N X i=1 αT(i) = CT N X i=1 αT(i) = 1 (2.61)

Ent˜ao, temos

T Y t=1 ctP (O|λ) = 1 (2.62) e P (O|λ) = 1 T Y t=1 ct (2.63)

para evitar o underflow, usamos log[P (O|λ)] = −PT

t=1log ct.

Portanto, a medida log[P (O|λ)] = PT

t=1log ct, que ´e o logaritmo da verossimilhan¸ca da

sequˆencia O com rela¸c˜ao ao modelo λ, ´e calcul´avel e torna-se uma medida extremamente importante para se avaliar a semelhan¸ca da sequˆencia com o modelo.

Cap´ıtulo 3

Metodologia e implementa¸c˜ao

Todo o processo implementado em c´odigo neste trabalho apresenta uma metodologia para

a realiza¸c˜ao da verifica¸c˜ao de um locutor. Essa metodologia se mant´em para qualquer altera¸c˜ao realizada no trabalho com o fim de melhorar o desempenho no programa. Ela

apresenta trˆes etapas b´asicas: a aquisi¸c˜ao de dados a partir dos ´audios do locutor; o treinamento de um modelo para o locutor de interesse; e a realiza¸c˜ao de testes para

verifica¸c˜ao da autenticidade do locutor.

Para o primeiro passo, ´e necess´ario que o locutor de interesse possua uma base de

´

audios contendo a pron´uncia de uma certa palavra-chave que ser´a usada para a verifica¸c˜ao. Desses ´audios, ser˜ao extra´ıdos alguns dados que s˜ao caracter´ısticos do locutor de interesse

de forma a diferenci´a-lo de um poss´ıvel locutor impostor. Esses dados podem ser divididos em coeficientes cepstrais na escala Mel (MFCC), parˆametros de frequˆencia extra´ıdos do

sinal glotal e parˆametros de tempo extra´ıdos do sinal glotal. Como citado anteriormente, os MFCCs s˜ao os coeficientes mais usados na an´alise da voz e s˜ao os parˆametros base do

trabalho proposto. Ser´a mostrado a melhora nos resultados ao se adicionar os parˆametros relativos ao tempo do sinal glotal para melhorar a verifica¸c˜ao, pois os parˆametros de

frequˆencia j´a haviam sido explorados no trabalho anterior [3].

Ap´os coletar os dados relativos aos ´audios, ´e necess´ario treinar um modelo para

o locutor de interesse. A modelagem estoc´astica seguiu os Modelos Ocultos de Markov (HMMs), pois eles se adaptam bem ao processo de verifica¸c˜ao de locutor. Conforme j´a

apresentado no Cap´ıtulo 2, o HMM ´e uma Cadeia de Markov onde os estados do modelo s˜ao ocultos. Dessa forma, o modelo ´e constru´ıdo a partir dos observ´aveis que, no caso

ser os MFCCs, os parˆametros de frequˆencia e os parˆametros de tempo. Dessa forma, o

algoritmo utilizado para encontrar uma HMM espec´ıfica considera esses observ´aveis e, a cada conjunto deles, converge para um modelo espec´ıfico para o locutor de interesse.

Quanto mais diversas forem as situa¸c˜oes em que os ´audios forem gravados, melhor ser´a a verifica¸c˜ao. Isso se deve ao fato de que se os ´audios apresentarem variadas situa¸c˜oes

em que o locutor se encontra, o modelo conseguir´a distinguir quais caracter´ısticas s˜ao intr´ınsecas ao locutor e quais s˜ao vari´aveis dependendo da situa¸c˜ao.

Ap´os ter obtido o modelo com o treinamento, ´e poss´ıvel realizar a verifica¸c˜ao, ou seja, ´e poss´ıvel decidir se um novo ´audio pertence ao locutor de interesse ou pertence a

um locutor impostor. Para esse novo locutor, tamb´em s˜ao extra´ıdos os mesmos dados usados para o treinamento do modelo. A partir desses dados e do modelo j´a treinado,

´e usado o algoritmo para o c´alculo do logaritmo da verossimilhan¸ca (definido na Eq. 2.27) que ´e uma medida do qu˜ao pr´oximo esses novos dados est˜ao do modelo treinado.

Quanto maior a verossimilhan¸ca, mais pr´oximo eles est˜ao do modelo, indicando que o ´

audio provavelmente pertence ao locutor de interesse. Caso contr´ario, indicar´a que o

´

audio pertence a um locutor impostor. Como o valor de verossimilhan¸ca geralmente ´e muito pequeno, a an´alise ´e feita a partir do seu logaritmo e o crit´erio de decis˜ao ´e baseado

em um limiar preestabelecido que servir´a como referˆencia para a decis˜ao. Caso o logaritmo da verossimilhan¸ca seja maior do que o limiar, o programa verificar´a que o ´audio testado

realmente pertence ao locutor de interesse, e caso o contr´ario, ele ser´a do locutor impostor.

3.1

Estrutura geral do c´odigo

Como este trabalho consiste na continua¸c˜ao de um trabalho anterior [3], ´e necess´ario

enfatizar as mudan¸cas realizadas neste projeto em compara¸c˜ao com o que j´a foi feito. ´

E importante explicar a estrutura geral do c´odigo de onde foi iniciado o projeto para

entendermos as mudan¸cas aplicadas que geraram os avan¸cos na verifica¸c˜ao do locutor. Seguindo a l´ogica apresentada no in´ıcio do cap´ıtulo, o c´odigo inicialmente foi dividido em

algumas partes: leitura dos ´audios e extra¸c˜ao dos dados referentes ao locutor de interesse; treinamento do modelo HMM e testes com os ´audios do locutor de interesse; leitura e

extra¸c˜ao dos dados referente aos ´audios dos locutores impostores; e testes com os ´audios dos locutores impostores. Essa se¸c˜ao, portanto, destina-se a explicar essa estrutura do

c´odigo e, para isso, ´e importante dizer que todos os algoritmos foram implementados em

MATLAB[12]. Os c´odigos est˜ao disponibilizados no Apˆendice.

A parte de leitura dos ´audios referentes ao locutor de interesse ´e realizada a partir

de um processo iterativo onde cada itera¸c˜ao ir´a considerar um ´audio do locutor de interesse e extrair seus parˆametros. No caso desse trabalho, foram lidos 200 ´audios, onde 160 s˜ao

para o treinamento do HMM e 40 para os testes referentes ao locutor de interesse. No in´ıcio de cada itera¸c˜ao, ´e criado um vetor com as caracter´ısticas extra´ıdas. Em seguida, ´e

feito um recorte dos momentos de silˆencio do sinal, pois o silˆencio n˜ao carrega informa¸c˜ao e aumenta a carga computacional. Esses momentos de silˆencio s˜ao os trechos no in´ıcio e no

fim do ´audio onde o locutor permanece um tempo sem emitir nenhum som e consistem no instante em que ´e iniciada a grava¸c˜ao e demora um tempo at´e come¸car a fala propriamente

dita e, depois, quando ela termina at´e encerrar a grava¸c˜ao. O algoritmo usado nessa parte relaciona a energia do sinal de fala e a taxa de cruzamento de zeros num curto intervalo

de tempo [9] [13].

A extra¸c˜ao dos parˆametros ´e toda realizada atrav´es de uma mesma fun¸c˜ao e tem

como sa´ıda um vetor contendo os parˆametros. A primeira parte do vetor corresponde aos MFCCs extra´ıdos. Em seguida, o sinal glotal ´e obtido do sinal de voz, por filtragem

inversa(IAIF) e, ent˜ao, parˆametros s˜ao extra´ıdos do sinal glotal para completar o vetor. O pacote voicebox do MATLAB ´e usado para extrair a frequˆencia fundamental do sinal,

atrav´es da fun¸c˜ao fxrapt [14]. Com a frequˆencia fundamental de cada ciclo, o per´ıodo pode ser determinado atrav´es da rela¸c˜ao:

T = 1

f0

, (3.1)

onde f0´e a frequˆencia fundamental e T ´e o per´ıodo do ciclo. Dado o per´ıodo funda-

mental, o programa calcula os parˆametros de jitter, shimmer e parˆametros de frequˆencia, conforme s˜ao mostrados nas se¸c˜oes 2.1.2 e 2.1.4. Para calcular esses parˆametros, o sinal

de voz e o sinal glotal s˜ao divididos em trechos que ser˜ao analisados individualmente. Se o c´odigo utilizar um conjunto de N parˆametros, o resultado da an´alise ser´a um vetor de

comprimento N, onde cada elemento ´e o valor de um parˆametro.

Ao t´ermino do c´alculo, os parˆametros s˜ao incorporados a uma matriz denominada

dados. Essa matriz cont´em todos os dados calculados de todos os ´audios e ´e passada para o HMM que utiliza o algoritmo de Baum-Welch e ´e implementado pelo Hidden Markov

Model (HMM) Toolbox for Matlab [15]. Para cada ´audio, s˜ao calculados os logaritmos

da verossimilhan¸ca a partir da fun¸c˜ao denominada de mhmm logprob e s˜ao armazenados em um vetor chamado de alllog. Esse ´e o vetor referente `as probabilidades do locutor

de interesse. Cerca de 80% dos ´audios s˜ao usados para treino do modelo e 20% para testes, conforme dito anteriormente. As porcentagens foram decididas ap´os v´arios testes

de acordo com o trabalho anterior [3].

Para os testes com os ´audios dos locutores impostores, repetimos o mesmo procedi-

mento. Primeiramente, ´e implementada uma estrutura de repeti¸c˜ao onde cada repeti¸c˜ao analisa um ´audio individualmente. Cada ´audio ´e convertido em um vetor a ser passado

para a fun¸c˜ao parametros para o c´alculo dos MFCCs e dos outros parˆametros. A partir desses dados, ´e calculado o logaritmo da verossimilhan¸ca. Para an´alise dos resultados,

calcula-se o coeficiente L1(distˆancia entre as fun¸c˜oes densidade de probabilidade) a partir

das fun¸c˜oes densidade de probabilidade dos logaritmos das verossimilhan¸cas. O c´alculo

do coeficiente L1 ser´a melhor explicado na pr´oxima se¸c˜ao.

Por ´ultimo, calculam-se os limiares e a decis˜ao sobre a autenticidade do ´audio.

Neste c´odigo, s˜ao calculados 3 limiares distintos que ter˜ao seus desempenhos analisados para decidir qual est´a mais pr´oximo do limiar de decis˜ao ideal e seus c´alculos tamb´em ser˜ao

apresentados na pr´oxima se¸c˜ao. Tendo o valor desses limiares, o c´odigo realiza a decis˜ao. Para todos os ´audios analisados, o programa nos diz a quantidade de falsos positivos

e falsos negativos que ficam armazenados em duas matrizes de dados denominadas de ErroFP e ErroFN. Esses valores de erros ser˜ao a base para a an´alise dos resultados que

ser´a apresentada no Cap´ıtulo 4.

Documentos relacionados