Você está na página 1de 40

R ELATRIO F INAL DE I NICIAO C IENTFICA

PIBIC

SISTEMA DE RECONHECIMENTO DE DGITOS PELA VOZ USANDO MATLAB

Aluno: Rafael Caveari Gomes Orientador: Dr. Edson Luiz Cataldo Ferreira

5 de setembro de 2012

Sumrio
1 2 Introduo Motivao 2.1 3 4 A produo da voz: Um breve resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 3 5 6 6 8 8 9 12 13 15 15 16 16 16 18 19 20 22 22 22 26 27 28 30 31 32

Metodologia Coecientes cepstrais de frequncia mel 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 Pr-nfase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Segmentao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Janela de Hamming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transformada rpida de Fourier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Banco de ltros triangulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transformada discreta do cosseno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Energia do log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Delta cepstrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Modelos Ocultos de Markov (HMM) 5.1 5.2 Processos Estocsticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cadeias Ocultas de Markov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1 5.2.2 5.3 Denindo os elementos de uma Cadeia Oculta de Markov . . . . . . . . . . . . . . . Principais topologias do HMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Os trs problemas do HMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.1 5.3.2 5.3.3 Algoritmo Forward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Algoritmo de Viterbi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Algoritmo de Baum-Welch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.4

HMM para observaes contnuas no tempo . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.1 5.4.2 5.4.3 Mistura Gaussiana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gaussiana Multidimensional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HMM aplicados ao reconhecimento de locutor . . . . . . . . . . . . . . . . . . . . .

Sistema de reconhecimento de voz 6.1 Fase de treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.2 7 8 9

Fase de teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35 37 37 37 38

Resultados Concluses Auto-avaliao do aluno

Referncias

Motivao

Introduo
Com o surgimento do computador e a maior necessidade de autenticao do indivduo, o nmero de apli-

caes comerciais de reconhecimento que utilizam biometrias multiplicou. Devido crescente demanda do mercado e o aumento do nmero de usurios, a utilizao de solues integradas tornou-se necessria. A fala um sinal biomtrico que carrega diversas informaes, tais como: mensagem, emoo e identidade. Diversas tcnicas tm sido desenvolvidas e aprimoradas com o objetivo de obter bons resultados para a vericao de voz. Porm, est longe de existir um sistema capaz de compreender um discurso sobre qualquer assunto, falado de forma natural, por qualquer pessoa, em qualquer ambiente. Neste projeto ser pesquisado e desenvolvido um sistema de vericao de dgitos pela voz.

Motivao
Reconhecimento automtico da fala funciona a partir da converso de um sinal acstico produzido pelo

homem em um sinal digital de udio atravs de um hardware associado a um software que, a partir de uma base de dados, identicar o conjunto de palavras faladas. As palavras reconhecidas podem ser o resultado nal do sistema, como no caso de aplicaes de comandos de controle, ou servir de entrada a outros sistemas. Uma das maiores diculdades da rea de reconhecimento de voz a sua natureza interdisciplinar. Dentre as reas envolvidas esto processamento digital de sinais, cincia da computao, reconhecimento de padres, inteligncia articial, neurosiologia, lingustica, teoria das comunicaes, fontica articulatria e acstica. Alm disto, os sistemas de reconhecimento da fala, em geral, devem ser aptos a funcionar em condies de rudo de fundo, o que exige um estudo de tcnicas para conseguir a robustez do sistema. Durante os ltimos anos tem se observado uma grande evoluo na rea de reconhecimento de voz. J existem sistemas bastante ecientes, entretanto nenhum deles independente de limitaes e nem funcionam com uma taxa de 100% de acerto. Dentre as razes para este signicativo avano podem ser citadas: desenvolvimento de novas tcnicas de processamento digital de sinais, a disponibilidade de computadores rpidos e mais baratos, a instituio de padres para avaliao de desempenho e uma maturidade alcanada em algumas tcnicas como Modelos Ocultos de Markov (HMM), Modelos de Mistura Gaussiana (GMM) e Redes Neurais Articiais (RNA).

2.1

A produo da voz: Um breve resumo


A voz humana produzida por meio do aparelho fonador, formado pelos pulmes (como fonte de energia,

na forma de um uxo de ar), pela laringe (que contm as cordas vocais), pela faringe, pelas cavidades orais

Universidade Federal Fluminense

PIBIC

Motivao

2.1

A produo da voz: Um breve resumo

(ou bucais) e nasais e por uma srie de elementos articulatrios: os lbios, os dentes, o alvolo, o palato, o vu palatino e a lngua. As cordas vocais, principais elementos para a gerao da voz, so duas membranas situadas na laringe que, pela frente, unem-se cartilagem tiride (o pomo de Ado) e, por trs, cada uma delas est presa a uma das cartilagens aritenides, as quais podem se separar voluntariamente por meio de msculos. A abertura entre as cordas vocais se denomina glote. Quando respiramos, as cordas vocais encontram-se separadas e a glote adota uma forma triangular. Nesse caso, o ar passa livremente e, praticamente, no produzido som. Quando a glote comea a se fechar, o ar que a atravessa, proveniente dos pulmes, experimenta uma turbulncia, ocasionando um rudo de origem aerodinmica conhecido como aspirao (na verdade, acompanha uma aspirao). Isto sucede nos sons denominados aspirados. Ao se fecharem um pouco mais, as cordas vocais comeam a vibrar, produzindo um sinal de presso (quase) peridico, tambm chamado de sinal glotal. A frequncia fundamental deste sinal, tambm chamada de pitch, depende de vrios fatores, como o tamanho e a massa das cordas vocais, a tenso aplicada nas cordas vocais e a presso do ar proveniente dos pulmes. Finalmente, possvel fechar a glote completamente. Quando as cordas vocais esto vibrando, os pulsos de ar do sinal glotal sofrem a inuncia do sistema de ressonncia formado pelos rgos do trato vocal e nasal (faringe e cavidades bucal e nasal) funcionando como um ltro. H, ainda, a ao dos rgos do sistema articulador (lngua, palato mole, maxilar e lbios) que modicam as propriedades de ltragem dos rgos do sistema de ressonncia sobre o sinal glotal. Graas ltragem do sistema articulador, possvel a gerao dos diferentes sons que emitimos quando falamos. Para uma modelagem detalhada do processo de produo da voz, os seguintes efeitos devem ser considerados: 1. Variao da congurao do trato vocal com o tempo; 2. Perdas prprias por conduo de calor e frico nas paredes do trato vocal; 3. A maciez das paredes do trato vocal; 4. Radiao do som pelos lbios; 5. Juno nasal; 6. Excitao do som no trato vocal, etc. Um modelo detalhado para gerao de sinais de voz, que leva em conta os efeitos da propagao e da radiao conjuntamente pode, em princpio, ser obtido atravs de valores adequados para excitao e parmetros do trato vocal. A teoria acstica sugere uma tcnica simplicada para modelar sinais de voz, a qual bastante utilizada. Universidade Federal Fluminense 4 PIBIC

Metodologia

Essa tcnica apresenta a excitao separada do trato vocal e da radiao. Os efeitos da radiao e o trato vocal so representados por um sistema linear variante com o tempo. O gerador de excitao gera um sinal similar a um trem de pulsos, ou sinal aleatrio (rudo). Os parmetros da fonte e sistema so escolhidos de forma a se obter na sada o sinal de voz desejado.

Metodologia
A voz humana um sinal de presso acstica que varia com o tempo. Esse sinal, analgico, pode ser

convertido em um sinal digital de modo a possibilitar seu processamento atravs de programas de computador. Portanto, o sinal de voz usualmente captado por um microfone, e transformado em um sinal eltrico. O sinal obtido amostrado com uma frequncia de amostragem maior que o dobro da frequncia mxima do sinal, segundo o Teorema da Amostragem [7]. Porm, algumas modicaes devem ser realizadas no sinal de voz, antes de process-lo: pr-nfase e janelamento [8]. H, ainda, outros processos que podem ser introduzidos na fase de pr-processamento, tais como: ltros passa-alta (pr-nfase), ltros passa-faixa, ltragem adaptativa, normalizao de energia, etc [3]. Dentre as ferramentas usadas em reconhecimento de voz e locutor, temos os modelos ocultos de Markov [6]. Inicialmente introduzidos e estudados no m dos anos 60 e princpios de 70, os modelos ocultos de Markov (Hidden Markov Models-HMMs) tornaram-se populares nos ltimos anos. Eles se baseiam nas cadeias de Markov em tempo discreto, que so colees de variveis aleatrias de um processo de Markov que assumem valores dentro de um enumervel espao de estados (nita ou innitamente). Uma das grandes aplicaes de modelos ocultos de Markov o reconhecimento/vericao de locutor, objeto deste projeto. O processo de reconhecimento de voz e de vericao de locutor consta de duas fases, uma de treinamento dos HMMs e outra de teste. Para o desenvolvimento do sistema ser usado o MATLAB . O processo de treinamento inicia-se pela extrao das caractersticas. As caractersticas, j extradas, cam armazenadas em arquivos. Depois de feita a extrao das caractersticas, passa-se ao treinamento propriamente dito. Para isto, precisa-se de um arquivo chamado prottipo que vai conter um prottipo de um HMM, consistindo na denio das variveis envolvidas. Com um prottipo adequado e com as listas de treinamento, um HMM inicializado. Vrias iteraes so realizadas para modicar os valores das variveis; uma vez que as mesmas no mudem mais de valor, ou seja, cheguem a uma convergncia especicada, o treinamento nalizado! At aqui, todos os HMMs tero sido treinados e prontos para serem usados. A partir daqui, comea a fase de testes. Ser criada uma lista com os arquivos de udio que sero utilizados para teste. Em seguida criamos uma lista contendo todos os HMMs que sero usados para teste. Finalmente, procede-se etapa da Universidade Federal Fluminense 5 PIBIC

Coecientes cepstrais de frequncia mel

vericao de locutor.

Coecientes cepstrais de frequncia mel


Para o reconhecimento de locutor iremos utilizar a tcnica dos Coecientes Cepstrais de Frequncia Mel

(Mel-Frequency Cepstral Coefcients-MFCC). Os MFCCs levam em considerao a sensibilidade da percepo humana com relao as frequncias relevantes e, portanto, so melhores para o reconhecimento do orador. Para isso devemos efetuar diversas operaes sobre o sinal de voz em questo.

4.1

Pr-nfase
Quando falamos, os sinais de altas frequncias so atenuados pelos lbios e pela glote. Em funo dessa

perda preciso reverter esse processo. Para isso utiliza-se um ltro de pr-nfase que incrementa as altas frequncias. Isso pode ser feito atravs de um ltro digital cuja funo transferncia dada por: H(z) = 1 z1 No domnio do tempo, o ltro possui a seguinte equao de diferena: y(n) = x(n) x(n 1), 0 < < 1 (2) (1)

Usualmente, o valor de igual a 0.95. Na Figura 1, por exemplo, o discurso aps a pr-nfase tornou o som mais ntido com um volume menor. %Filtro de Pr-nfase: s_2(n)=s(n)-a*s(n-1) %onde B=[1,-a]; A=[1]----------> Coeficientes da equao de diferena. waveFile=teste2.wav; %Nomeia o arquivo teste2.wav como varivel waveFile. [y, fs, nbits]=wavread(waveFile); %L o arquivo .wav a=0.95; %Coeficiente do filtro y2 = filter([1, -a], 1, y); %Aplicamos o filtro. time=(1:length(y))/fs; %Eixo do tempo wavwrite(y2, fs, nbits, teste2_preEnfase.wav); %Salva o arquivo depois do filtro. subplot(2,1,1); plot(time, y); %Plota a voz original title(Voz Original: s(n)); subplot(2,1,2);

Universidade Federal Fluminense

PIBIC

Coecientes cepstrais de frequncia mel

4.1

Pr-nfase

plot(time, y2); %Plota a voz depois do filtro title(sprintf(Depois da pr-nfase: s_2(n)=s(n)-a*s(n-1), a=%f, a)); subplot(2,1,1); %Insere os botes de Play. set(gca, unit, pixel); %Muda a unidade para pixel. axisPos=get(gca, position); %Pega a posio do eixo atual. uicontrol(string, Play, position, [axisPos(1:2), 60, 20], callback, sound(y, fs)); subplot(2,1,2); set(gca, unit, pixel); axisPos=get(gca, position); uicontrol(string, Play, position, [axisPos(1:2), 60, 20], callback, sound(y2, fs));

Figura 1: Formas de onda original e na sada do ltro de pr-nfase.

Universidade Federal Fluminense

PIBIC

Coecientes cepstrais de frequncia mel

4.2

Segmentao

4.2

Segmentao
Os parmetros do sinal de voz podem ser considerados invariantes no tempo para curtos intervalos de tempo.

Logo, o sinal de fala de entrada deve ser segmentado em quadros de 20 30 ms com sobreposio opcionais de 1/3 1/2 do tamanho do quadro. A Figura 2 ilustra isso. Geralmente, o tamanho do quadro (em termos de pontos de amostra) igual a uma potncia de dois, a m de facilitar a utilizao da FFT (maiores detalhes em 4.4). Por exemplo, se a taxa de amostragem de 16 kHz e o tamanho do quadro de 320 pontos de amostra, ento a durao do quadro 320/16000 = 0,02 seg = 20 ms. Logo se a sobreposio de 160 pontos, ento a taxa de quadros 16000 / (320-160) = 100 quadros por segundo. Essa superposio feita pois podem surgir descontinuidades bruscas em suas extremidades, o que viria a prejudicar a avaliao dos elementos prximos a mesma.

Figura 2: Segmentao do sinal de voz

4.3

Janela de Hamming
Cada quadro tem de ser multiplicado por uma janela de Hamming, a m de manter a continuidade da

primeira e os ltimos pontos no quadro. Se o sinal num quadro denotado por s(n), n = 0, ...N 1, ento o sinal aps a janela de Hamming s(n) w(n), em que w(n) a janela de Hamming denida por: w(n, ) = (1 ) cos 2n ,0 n N 1 N 1 (3)

Diferentes valores de correspondem a diferentes curvas para as janelas de Hamming, como podemos ver na Figura 3. Universidade Federal Fluminense 8 PIBIC

Coecientes cepstrais de frequncia mel

4.4

Transformada rpida de Fourier

Na prtica, o valor de denido como 0,46. O MATLAB tambm fornece o comando Hamming para gerar a curva de uma janela de Hamming. Abaixo um exemplo de cdigo em MATLAB da implementao da uma janela de Hamming genrica. % Plot de uma Janela de Hamming genrica N=100; n=(0:N-1); alpha=linspace(0,0.5,11); h=[]; for i=1:length(alpha), h = [h, (1-alpha(i))-alpha(i)*cos(2*pi*n/(N-1))]; end plot(h); title(Janela de Hamming Genrica : (1-\alpha)-\alpha*cos(2\pin/(N-1)), 0\leqn\leqN-1); legendStr={}; for i=1:length(alpha), legendStr={legendStr{:}, [\alpha=, num2str(alpha(i))]}; end legend(legendStr);

4.4

Transformada rpida de Fourier


A anlise espectral mostra que timbres diferentes em sinais de fala correspondem distribuio de energia

diferentes sobre as frequncias. Por isso, utilizamos a Transformada Rpida de Fourier (Fast Fourier Transform - FFT) para obter a resposta em frequncia de cada quadro. Quando realizamos a FFT em um quadro, vamos supor que o sinal dentro de um quadro peridico e contnuo. Se este no for o caso, ainda podemos realizar a FFT. Contudo uma descontinuidade no primeiro e no ltimo ponto do quadro susceptvel de introduzir efeitos indesejveis na resposta em frequncia. Para lidar com este problema, temos duas estratgias: 1. Multiplicar cada quadro por uma janela de Hamming para aumentar a sua continuidade com os pontos inicial e nal; 2. Tomar uma quadro de tamanho varivel de tal forma que ele contenha sempre um nmero inteiro mltiplo de perodos fundamentais do sinal de fala.

Universidade Federal Fluminense

PIBIC

Coecientes cepstrais de frequncia mel

4.4

Transformada rpida de Fourier

Figura 3: Janela de Hamming genrica para diferentes valores de . A segunda estratgia encontra diculdade na prtica j que a identicao do perodo fundamental no um problema trivial. Alm disso, sons surdos no tm um perodo fundamental. Geralmente adotamos a primeira estratgia. O exemplo a seguir mostra o efeito da multiplicao por uma janela de Hamming. fs=8000; t=(1:512)/fs; f=306.396; original=sin(2*pi*f*t)+0.2*randn(length(t),1); windowed=original.*hamming(length(t)); [mag1, phase1, freq1]=fftOneSide(original, fs); [mag2, phase2, freq2]=fftOneSide(windowed, fs); subplot(3,2,1); plot(t, original); grid on; axis([-inf inf -1.5 1.5]); title(Sinal Original); subplot(3,2,2); plot(t, windowed); grid on; axis([-inf inf -1.5 1.5]); title(Sinal Aps a Janela de Hammins); subplot(3,2,3); plot(freq1, mag1); grid on;

Universidade Federal Fluminense

10

PIBIC

Coecientes cepstrais de frequncia mel

4.4

Transformada rpida de Fourier

title(Energia do Espectro (escala linear)); subplot(3,2,4); plot(freq2, mag2); grid on; title(Energia do Espectro (escala linear)); subplot(3,2,5); plot(freq1, 20*log10(mag1)); grid on; axis([-inf inf -20 60]); title(Energia do Espectro (db)); subplot(3,2,6); plot(freq2, 20*log10(mag2)); grid on; axis([-inf inf -20 60]); title(Energia do Espectro (db));

Figura 4: Anlise no domnio do tempo e da frequncia antes e aps a janela de Hamming de um sinal senoidal. No exemplo acima, tambm mostrado na Figura 4, o sinal uma funo senoidal com algum rudo. Sem a utilizao de uma janela de Hamming, a descontinuidade nos primeiros e ltimos pontos da moldura far com que o pico da resposta de frequncia seja menos bvio. Com o uso de uma janela de Hamming, o pico mais ntido e distinto na resposta em frequncia. O exemplo a seguir usa um sinal de voz para o mesmo teste.

Universidade Federal Fluminense

11

PIBIC

Coecientes cepstrais de frequncia mel

4.5

Banco de ltros triangulares

waveFile=classic.wav; [y, fs]=wavread(waveFile); n=512; t=(1:n)/fs; startIndex=30418; endIndex=startIndex+n-1; original=y(startIndex:endIndex); windowed=original.*hamming(n); [mag1, phase1, freq1]=fftOneSide(original, fs); [mag2, phase2, freq2]=fftOneSide(windowed, fs); subplot(3,2,1); plot(original); grid on; axis([-inf inf -1 1]); title(Sinal Original); subplot(3,2,2); plot(windowed); grid on; axis([-inf inf -1 1]); title(Sinal Aps a Janela de Hamming); subplot(3,2,3); plot(freq1, mag1); grid on; title(Energia do Espectro (escala linear)); subplot(3,2,4); plot(freq2, mag2); grid on; title(Energia do Espectro (escala linear)); subplot(3,2,5); plot(freq1, 20*log(mag1)); grid on; axis([-inf inf -80 120]); title(Energia do Espectro (db)); subplot(3,2,6); plot(freq2, 20*log(mag2)); grid on; axis([-inf inf -80 120]); title(Energia do Espectro (db)); Nesse exemplo, agora representado na Figura 5, usamos um quadro de um clipe de voz para o mesmo teste. Com o uso de uma janela de Hamming, os harmnicos na resposta em frequncia so muito mais acentuados.

4.5

Banco de ltros triangulares


Iremos multiplicar a resposta em frequncia por um banco de 20 ltros triangulares para obter o log da

energia de cada ltro triangular. Esses ltros so igualmente espaados ao longo da frequncia Mel, que est relacionada com a frequncia f linear atravs da seguinte equao: Mel( f ) = 1125 ln 1 + E tal relao mostrada na Figura 6. Universidade Federal Fluminense 12 PIBIC f 700 (4)

Coecientes cepstrais de frequncia mel

4.6

Transformada discreta do cosseno

Figura 5: Anlise no domnio do tempo e da frequncia antes e aps a janela de Hamming de um sinal de voz. Na prtica, temos duas escolhas para os ltros passa-faixa triangulares, como mostrado na Figura 7. As razes para a utilizao de ltros de banda triangulares so dois: 1. Suavizar o espectro de tal forma que as harmnicas so achatadas, a m de obter o envelope do espectro com harmnicos. Isso indica que o tom do sinal de fala no geralmente apresentado em MFCC. Como resultado, um sistema de reconhecimento de voz ir se comportar aproximadamente da mesma forma quando as entradas so do mesmo timbre, mas com diferentes tons; 2. Reduzir o tamanho das caractersticas envolvidas.

4.6

Transformada discreta do cosseno


Nesta etapa aplicamos a transformada discreta do cosseno em 20 log da energia de Ek, obtida a partir dos

ltros triangulares para obtermos L coecientes. A frmula para a Transformada Discreta do Cosseno (Discrete Cosine Transform-DCT) denida como:
N Cn = Sk=1 cos

m (k 0.5) Ek , m = 1, 2, ..., L N

(5)

onde N o nmero de ltros triangulares e L o nmero coecientes. Normalmente denimos N = 20 e L = 12. Uma vez que temos realizado a FFT, DCT transforma o domnio da frequncia em um domnio do tempo, Universidade Federal Fluminense 13 PIBIC

Coecientes cepstrais de frequncia mel

4.6

Transformada discreta do cosseno

Figura 6: Escala de frequncia Mel.

Figura 7: Banco de ltros triagulares.

Universidade Federal Fluminense

14

PIBIC

Coecientes cepstrais de frequncia mel

4.7

Energia do log

chamado de quefrency domain. Para melhor desempenho, podemos acrescentar o log da energia e executar a operao delta, como explicado nas duas prximas etapas.

4.7

Energia do log
A energia dentro de um quadro tambm uma caracterstica importante que pode ser facilmente obtida.

Por isso geralmente adicionamos o log da energia como o 13coeciente.

4.8

Delta cepstrum
Tambm vantajo tomarmos as derivadas com relao ao tempo da (energia + MFCC) como novas ca-

ractersticas, o que mostra a velocidade e a acelerao de (energia + MFCC). As equaes para calcular estas caractersticas so: Cm (t) =
M St=M Cm (t + t) t M St=M t 2

(6)

O valor de M geralmente denido como 2. Se adicionarmos a velocidade, teremos 26 coecientes. Se tomarmos tanto a velocidade quanto a acelerao, teremos 39 coecientes. A maioria dos sistemas de reconhecimento de voz no PC usa essa segunda abordagem. Por motivos prticos, todas essa operaes vistas at aqui j esto implementadas na funo melcepst.m encontrada no pacote de funes para tratamento de sinais de udio Voicebox , disponvel em [11]. Um exemplo simples da utilizao dessa funo pode ser vista abaixo: c=melcepst(s,fs,e0dD) onde s o sinal de voz, f s a taxa de amostragem e o parmetro e0dD diz para incluir o log da energia, o coeciente 0 e os coecientes delta e delta-delta. Na Figura 8 podemos observar a extrao de 12 coecientes, com 249 quadros. Na sada da funo cada linha representa um quadro.

Figura 8: Extrao dos MFCCs.

Universidade Federal Fluminense

15

PIBIC

Modelos Ocultos de Markov (HMM)

Um resumo do processo de extrao dos MFCCs pode ser observado resumidamente na Figura 9.

Figura 9: Diagrama de uxo para o clculo dos MFCCs.

5
5.1

Modelos Ocultos de Markov (HMM)


Processos Estocsticos
Um processo estocstico uma regra que associa a cada resultado de um experimento aleatrio uma

funo X(t, ). Assim, um processo estocstico uma famlia de funes dependentes do tempo e do parmetro ou, equivalentemente, uma funo de t e . Usaremos X(t) para representar um processo estocstico.

5.2

Cadeias Ocultas de Markov


Um Processo Estocstico dito ser um Processo Markoviano se o estado futuro depende apenas do estado

presente e no dos estados passados. Este tipo de Processo Estocstico tambm denominado de processo sem memria (memoryless process), uma vez que o passado esquecido (desprezado). Um Processo Markoviano dito ser uma Cadeia de Markov quando as variveis aleatrias X(t) esto denidas em um espao de estados discreto. Quando o tempo discreto, a Cadeia de Markov dita ser uma Cadeia de Markov em Tempo Discreto. Uma cadeia de Markov consiste em um conjunto nito de estados ligados entre si por transies. Estas transies esto ligadas a um Processo Estocstico. H ainda um outro processo estocstico associado a uma cadeia de Markov, que envolve as observaes de sada de cada estado. Se somente as observaes de sada forem visveis a um observador externo ao processo, diz-se ento que os estados esto ocultos, ou seja, o processo estocstico que envolve as transies de estados no observvel. Da o nome Modelos Ocultos de Markov (Hidden Markov Models-HMM). A Figura 10 mostra um exemplo de uma cadeia de Markov com 3 smbolos.

Universidade Federal Fluminense

16

PIBIC

Modelos Ocultos de Markov (HMM)

5.2

Cadeias Ocultas de Markov

Figura 10: Exemplo de Cadeia de Markov com 3 smbolos discretos. As observaes de sada so manifestaes do fenmeno sendo modelado e so descritas por funes de densidade de probabilidade (fdp), que podem ser obtidas de duas maneiras. A primeira delas, que geralmente utilizada no modelamento acstico da fala, est associada emisso de um smbolo no instante de chegada a um estado. J a segunda abordagem que costuma ser utilizada no processamento de linguagem, est associada emisso de um smbolo durante a transio de um estado para outro. Dependendo da fdp, vrias classes de HMMs podem ser denidas: 1. Discreto: as observaes so discretas por natureza ou discretizadas atravs de uma tcnica de quantizao vetorial, gerando assim codebooks; 2. Contnuo: as observaes so contnuas, com sua fdp contnua usualmente modelada como uma mistura nita de M Gaussianas multidimensionais; 3. Semi-contnuo (hbrido): o modelo um caso intermedirio entre o contnuo e o discreto. Sendo assim, no contexto desse trabalho, modelos ocultos de Markov so denidos como modelos Markovianos onde a observao da evoluo do sistema se d de forma indireta, como funo probabilstica da transio entre os estados denidos num espao de estados discretos e nitos. Por mais que conheamos todos os parmetros do modelo, continua oculta a evoluo da Cadeia de Markov que governa esse processo. Em outras palavras, no se sabe qual o caminho ou sequncia de passos exatos que levaram a uma determinada observao.

Universidade Federal Fluminense

17

PIBIC

Modelos Ocultos de Markov (HMM)

5.2

Cadeias Ocultas de Markov

5.2.1

Denindo os elementos de uma Cadeia Oculta de Markov

Seja: 1. Um espao de estado S = {s1 , s2 , s3 , . . . , sN }; 2. N, o nmero de estados do modelo, onde os estados individuais so da forma Sj ; estado em t como qt ; 3. Um conjunto das variveis observveis na sada do sistema V = {v1 , v2 , v3 , . . . , vM }; 4. M, o nmero de smbolos de observao distintos por estado (estes so os smbolos na sada do sistema que est sendo modelado); 5. Uma varivel aleatria Q que assume valores do espao de estado S em diferentes instantes de tempo; 6. Uma varivel aleatria O que assume valores do conjunto das variveis observveis em V em diferentes instantes de tempo; 7. Uma distribuio de probabilidade de transio entre estados A = {ai j }, onde ai j = P(qt+1 = S j |qt = Si ), i 1, jN (7) j = 1, . . . , N, e o

Para o caso especial onde qualquer estado pode alcanar outro estado qualquer, em um nico passo, tem-se ai j > 0, (i, j). Para outros tipos de HMM, pode-se ter ai j = 0 para um ou mais pares (i, j); 8. Uma distribuio de probabilidade de observaes B = {b j (k)}, no estado j, onde: b j (k) = P(Ot = vk |qt = S j ), 1 j N, 1kM (8)

9. Uma distribuio de estado inicial para cada estado = {i }, onde: i = P(q1 = Si ), 1iN (9)

Percebe-se ento que para especicao completa de um HMM precisa-se de dois parmetros do modelo, N e M e ainda a sequncia de observaes (O = O1 , O2 , . . . , OT ), onde T o nmero de observaes na sequncia. preciso especicar tambm trs conjuntos de medidas de probabilidade A, B e . Utilizaremos a notao compacta = (A, B, ) para indicar o conjunto de parmetros completo do modelo.

Universidade Federal Fluminense

18

PIBIC

Modelos Ocultos de Markov (HMM)

5.2

Cadeias Ocultas de Markov

5.2.2

Principais topologias do HMM

Os Modelos Escondidos de Markov podem ser classicados de acordo com a sua estrutura, que determinada pelas transies que ocorrem entre os estados. Ou seja, um modelo determinado pela matriz de transio A. Os modelos de HMM podem ser classicados em vrias topologias. Neste trabalho nos interessa entender apenas duas destas: Modelo Ergdico e Modelo Esquerda-direita. 1. Modelos ergdico (completamente conectado): Tambm conhecido como Modelo Sem Restrio, este tipo permite qualquer transio entre os estados do modelo, isto , todos os estados so alcanveis a partir de qualquer estado Si , em um nmero nito de passos. Assim: ai j = 0, (i, j)

Um exemplo de representao deste modelo pode ser encontrado na Figura 11.

Figura 11: Topologia do modelo ergdico.

2. Modelos esquerda-direita: Este modelo caracterizado por no permitir a transio entre estados que tenham ndice menor que o atual. Ou seja, no permitido a transio entre um estado atual (j) e outro anterior a ele (i), desta forma temos que: ai j = 0, j i Devido a restrio anterior, o modelo tem o comportamento de avanar nos estados da esquerda para direita, com o avano do tempo. Alm disso, o modelo esquerda-direita possui a propriedade que o estado inicial tem que ser o primeiro estado. Logo, a matriz de probabilidade de estado inicial possui as seguintes propriedades. i = 0, Universidade Federal Fluminense 19 i=1 PIBIC

Modelos Ocultos de Markov (HMM)

5.3

Os trs problemas do HMM

i = 1,

i=1

O Modelo Esquerda-direita ainda subdividido em 2 tipos: 1. Sequencial: caracterizado por ter transio entre o prprio estado , com o estado seguinte e tambm permite o salto de um estado, conforme pode ser observado na Figura 12.

Figura 12: Topologia do modelo esquerda-direita sequencial.

2. Paralelo: Permite a transio entre o prprio estado atual, com o estado seguinte e permite o salto de um ou mais estados, como visto na Figura 13.

Figura 13: Topologia do modelo esquerda-direita paralelo.

Em aplicaes que utilizam reconhecimento de palavras isoladas, com HMM distinto para cada palavra do vocabulrio, o modelo esquerda-direita mais adequado que o modelo ergdico, uma vez que o tempo pode ser associado com o estado do modelo de forma bastante simples. Alm disso pode-se imaginar o signicado fsico de estados do modelo como sons diferentes.

5.3

Os trs problemas do HMM


Para aplicar HMM nas solues de problemas do mundo real, antes deve-se abordar os trs problemas

bsicos do modelo: 1. O Problema de avaliao: Dado um modelo = (A, B, ) e uma sequncia de observaes O = {O1 , O2 , . . . , O3 }, o problema avaliar a probabidade P(O|) dessa sequncia O ser gerada pelo modelo . Universidade Federal Fluminense 20 PIBIC

Modelos Ocultos de Markov (HMM)

5.3

Os trs problemas do HMM

2. O Problema da decodicao: Dado um modelo = (A, B, ) e uma sequncia de observaes O = {O1 , O2 , . . . , O3 }, o problema vericar qual a sequncia de estados S = {s1 , s2 , . . . , s3 } que maximiza a probabilidade P(O|) da sequncia observada na sada ser gerada pelo modelo, isto , qual a melhor sequncia dentro do modelo capaz de gerar essas observaes? 3. O Problema do aprendizado (treinamento): Dado um modelo = (A, B, ) e uma sequncia de observaes O = {O1 , O2 , . . . , O3 }, o problema consiste em treinar o modelo com base nas sadas observadas a m de ajustar os parmetros de = (A, B, ) , que representa o modelo ajustado, para encontrar o melhor modelo que maximize a probabilidade da sada observada, isto , como ajustar os parmetros do modelo = (A, B, ) de modo a maximizar o valor de P(O|) ? O problema de avaliao aparece quando se deseja selecionar dentre vrios modelos aquele que mais provavelmente gerou uma dada sequncia de observaes. A soluo desta questo pode ser usada para o reconhecimento de palavras isoladas onde cada palavra representada por um modelo. A determinao da palavra falada realizada comparando-se as probabilidades de cada modelo ter gerado a dada sequencia de observaes. O problema de decodicao tenta, a partir de uma sequncia de observaes, descobrir a parte escondida do modelo, ou seja, determinar qual foi a sequncia de estados que mais provavelmente a gerou. Esta questo encontrada no reconhecimento de fala conectada. Neste caso, existe um modelo para cada palavra, porm todas as palavras so colocadas em conjunto formando um modelo global. Desta forma, a estimao da sequncia tima de estados para uma dada sequncia de observaes (sequncia de palavras faladas) suciente para determinar a sequncia de palavras faladas. A determinao da sequncia tima de estados tambm pode ser aplicada na resoluo de problemas de segmentao e rotulao de sinais de fala. Com a soluo das questes de avaliao e decodicao sabe-se como obter resultados a partir de sequncias de observaes e modelos com parmetros determinados. Porm, precisa-se saber como criar um modelo de Markov para representar um dado fenmeno fsico, ou seja, necessita-se de um algoritmo para inferir os parmetros de um modelo a partir de observaes de um dado fenmeno. A resposta vem com a soluo do problema de treinamento, que o mais difcil. A soluo deste problema crucial para a maioria das aplicaes de HMM, pois permite o ajuste dos parmetros de um modelo de forma a conseguir uma representao tima para a sequncia de observaes. Com esta soluo pode-se, por exemplo, a partir de locues de uma determinada palavra, criar-se um modelo, o qual poder ser utilizado para o reconhecimento de outras locues da mesma palavra. Cada um dos problemas descritos acima tem um algoritmo para solucion-lo. O problema da avaliao pode ser solucionado com o algoritmo Forward, o problema da decodicao com o algoritmo Viterbi (que prximo a soluo tima) e o problema do aprendizado pode ser solucionado com o algoritmo Baum-Welch. Universidade Federal Fluminense 21 PIBIC

Modelos Ocultos de Markov (HMM)

5.3

Os trs problemas do HMM

Na prxima seo iremos descrever cada um dos algoritmos em detalhes.

5.3.1

Algoritmo Forward

O algoritmo Forward tem como objetivo calcular a probabilidade P(O|). Dado a sequncia de sadas observadas O = {O1 , O2 , . . . , O3 }, onde T representa o tempo decorrido da observao, o algoritmo apresenta a probabilidade da sequncia observada ser gerada pelo modelo HMM . O algoritmo Forward composto pelos trs passos visto na Figura 14.

Figura 14: Algoritmo Forward.

5.3.2

Algoritmo de Viterbi

O algoritmo tem como objetivo encontrar a melhor sequncia de estados S = {s1 , s2 , . . . , s3 } que maximiza a probabilidade P(S, O|). A sequncia encontrada pelo algoritmo ser a melhor sequncia de estados para a sada O. O algoritmo Viterbi composto pelos 3 passos vistos na Figura 15.

5.3.3

Algoritmo de Baum-Welch

No h maneira analtica fechada de maximizar a probabilidade da sequncia de observao. Na verdade, dada uma sequncia nita de observao como dados de treinamento, no h caminho timo de estimar os Universidade Federal Fluminense 22 PIBIC

Modelos Ocultos de Markov (HMM)

5.3

Os trs problemas do HMM

Figura 15: Algoritmo de Viterbi. parmetros do modelo. Pode-se, no entanto, escolher um = (A, B, ) inicial, e maximar P(O| utilizando um processo iterativo, como o mtodo Baum-Welch. O algoritmo Baum-Welch tem como objetivo reestimar os parmetros A,B e de um modelo a m de encontrar os parmetros para maximar a probabilidade P(O|) para uma determinada sequncia de observaes O. O algoritmo Baum-Welch o mais complexo dos algoritmos do HMM. Para facilitar a compreenso do algoritmo, esta seo ser subdivida em 4 subsees: Algoritmo Backward, Gamma , Algoritmo Expectation Maximization (EM) e Treinamento. 1. Algoritmo Backward O algoritmo tem como objetivo calcular a probabilidade t (i), que a probabilidade do HMM gerar sequncias de observaes parciais de t + 1 at o m, dado que o modelo est no estado i no tempo t, conforme descrito na Figura 16.

Figura 16: Algoritmo Backward. O fator : Relao entre e O representa a probabilidade da transio entre estado i e o estado j no tempo t, dado um modelo e a sequncia de observaes O = {O1 , O2 , . . . , OT }, ou seja t (i, j). O obtido com base na relao entre e , podendo ser representado conforme a Figura 17. O clculo da probabilidade t (i, j) da seguinte forma: Universidade Federal Fluminense 23 PIBIC

Modelos Ocultos de Markov (HMM)

5.3

Os trs problemas do HMM

Figura 17: Fator . Como e se relacionam.

(i, j) = P(st1 = i, st = j|OT , ) 1

(10)

(i, j) =

P(st1 = i, st = j|OT , ) 1 P(OT |) 1 t1 (i).ai j .b j (Ot ).t ( j) N T (k) k=1

(11)

(i, j) =

(12)

2. Algoritmo EM (Expectation Maximization) O algoritmo EM, maximiza os parmetros dos atributos passados para o algoritmo, at que consiga a convergncia esperada. A maximizao se d por meio da funo Q:

Q(, ) =
S

P(O, S|) log P(O, S|) P(O|)

(13)

Onde denota o parmetro passado e denota o novo parmetro aps a iterao do algoritmo. O algoritmo EM composto pelos passos vistos na Figura 18. A funo Q pode ser reescrita conforme a equao:

Q(, ) = Qai (, a) + Qb j (, b)

(14)

Universidade Federal Fluminense

24

PIBIC

Modelos Ocultos de Markov (HMM)

5.3

Os trs problemas do HMM

Figura 18: Algoritmo EM. onde a denota a matriz de transio e b a tabela de probabilidade de sada reestimada. Os parmetros a e b respectivamente so estimados da seguinte forma:

Parmetro a

ai j =

T 1 T P(O|) . t=1 P(O, st1 = i, st = j, O1 |) T 1 P(O|) . t=1 P(O, st1 = i|)

(15)

ai j =

T t=1 t (i, j) T t=1 N (i, k) k=1

(16)

Parmetro b

b j (k) =

T 1 P(O|) . t=1 P(O, st = j|).(Ot , ok ) T 1 P(O|) . t=1 P(O, st = j|)

(17)

tOt =ok N t (i, j) i=1 b j (k) = T t=1 N t (i, j) i=1

(18)

Universidade Federal Fluminense

25

PIBIC

Modelos Ocultos de Markov (HMM)

5.4

HMM para observaes contnuas no tempo

3. Treinamento O treinamento do modelo HMM pode ser representado pela Figura 19.

Figura 19: Treinamento HMM.

Onde no passo 1 obtida a amostra; No passo 2 estipulado um HMM para a amostra do passo 1; Entre o passo 2 e o passo 3 usado o algoritmo Baum-Welch para reestimar os parmetros do estimado no passo 2 at encontrar o melhor HMM no passo 3. As sadas observadas no passo 1 formam o conjunto de treinamento. O conjunto de HMMs reestimados obtidos a partir de um conjunto de treinamento, formam um conjunto de HMMs mximos. Com base nos HMMs mximos encontrados estimado um HMM generalista que o melhor HMM para todo o conjunto de treinamento.

5.4

HMM para observaes contnuas no tempo


Todas as denies de HMM realizadas at este ponto consideraram apenas o caso em que as observaes

foram caracterizadas como smbolos discretos escolhidos a partir de um alfabeto nito e por isso utilizavam densidades de probabilidade discretas em cada estado do modelo. No entanto existem casos em que as observaes so sinais contnuos, como a voz por exemplo. Apesar de ser possvel quantizar um sinal contnuo via codebooks, h grandes perdas associadas com essa quantizao. Assim, utilizar HMMs com densidades de probabilidade contnuas mostra-se melhor para estes casos. [?] Universidade Federal Fluminense 26 PIBIC

Modelos Ocultos de Markov (HMM)

5.4

HMM para observaes contnuas no tempo

No intuito de se utilizar uma observao contnua, algumas restries devem ser impostas fdp do modelo de modo a garantir que os seus parmetros possam ser re-estimados de forma consistente. A representao mais comum da fdp contnua, para a qual o procedimento de reestimao foi formulado, apresenta-se na forma de misturas nitas.

5.4.1

Mistura Gaussiana

Misturas gaussianas so utilizadas quando as observaes esto concentradas em torno de vrios pontos distintos e relativamente distantes (vrias mdias), tornando a simples distriuio Gaussiana uma aproximao ruim para esse modelo. Essas misturas resumem-se a um somatrio de N Gaussianas ponderadas. N dene o nmero de componentes e o tipo da mistura. Se N = 2, diz-se que a mistura bimodal, para N > 2 dita multimodal, um exemplo pode ser visto na gura 20.

Figura 20: Em vermelho um exemplo de uma mistura gaussiana com duas componentes (Bimodal). Em azul e verde, as gaussianas que lhe deram origem. Estas distribuies tm funes densidades de probabilidades que so expressas por:
N

f (x) = Universidade Federal Fluminense

n=1

pn .N(x, n , 2 ) n
27

(19) PIBIC

Modelos Ocultos de Markov (HMM)

5.4

HMM para observaes contnuas no tempo

Onde N(.) representa a distribuio Gaussiana, n a mdia e 2 a varincia da n-sima Gaussiana, e pn n pondera a Gaussiana. O somatrio de todos os pn 1 para que a funo possa ser realmente uma funo densidade de probabilidade.

5.4.2

Gaussiana Multidimensional

Uma gaussiana multidimensional usada quando as observaes de uma varivel aleatria so multidimensionais ou, isto , so observaes denidas por vrias coordenadas. A 21 um exemplo de uma gaussiana bidimensional de observaes com duas variveis.

Figura 21: Exemplo de uma gaussiana bidimensional com uma varivel no eixo x e outra no eixo y. Considerando o vetor x = (xd = x1 , x2 , . . . , xD ) cujas componentes xd so variveis aleatrias com distribuio gaussiana. Quando as variveis aleatrias so identicamente distribudas e independentes, ento a correlao entre elas nula e a funo densidade de probabilidade de x dada pela multiplicao das distribuies marginais das suas componentes, isto : 1 f (x) = e d=1 d 2
D
(xd d )2 22 d

(20)

Onde x = xd representa as coordenadas das dimenses, D o nmero de dimenses, d a mdia e 2 a d varincia da respectiva dimenso d. [?] Neste trabalho denimos a mistura nitas como:

Universidade Federal Fluminense

28

PIBIC

Modelos Ocultos de Markov (HMM)

5.4

HMM para observaes contnuas no tempo

b j (Ot ) = Onde:

m=1

c jm R(Ot , jm ,U jm ),

1 jN

(21)

Ot o vetor de observaes no instante t; c jm o coeciente que pondera a m-sima mistura do estado j; R qualquer densidade elipticamente simtrica ou log-cncava; jm o vetor de mdia da m-sima mistura do estado j; U jm a matriz de covarincia da m-sima mistura do estado j. Neste trabalho em especial, R foi foi denido com uma funo densidade de probabilidade gaussiana multidimensional (G). E os coecientes c jm satisfazem as seguintes restries:
M m=1

c jm = 1,

1 jN

(22)

c jm 0,

1 j N,

1mM

(23)

onde devemos normalizar a funo densidade de probabilidade, isto :


+

b j (x)dx = 1,

1 jN

(24)

Em caso de HMM contnuo devemos tambm re-estimar os coecientes de mistura c jm , o vetor de mdia jm e da matriz covarincia U jm . As frmmulas para re-timao so:
T t=1 t ( j, m) T t=1 M t ( j, m) m=1 T t=1 t ( j, m)Ot T t=1 t ( j, m)

c jm =

(25)

jm =

(26)

T t ( j, m)(Ot jm )(Ot jm ) U jm = t=1 T t=1 t ( j, m)

(27)

para 1 j N e 1 m M . Onde a varivel probabilidade de estar no estado j no instante t com o m-simo componente de mistura ligado a observacao Ot , isto , t ( j)t ( j) N j=1 t ( j)t ( j) 29 c jm R(Ot , jm ,U jm ) M k=1 c jk R(Ot , jk ,U jk )

t ( j, m) =

(28)

Universidade Federal Fluminense

PIBIC

Modelos Ocultos de Markov (HMM)

5.4

HMM para observaes contnuas no tempo

5.4.3

HMM aplicados ao reconhecimento de locutor

Os modelos ocultos de Markov so uma excelente representao da fala. As distribuies de probabilidade de sada modelam os eventos de fala, como o incio de um fonema, por exemplo. Enquanto que as probabilidades de transio modelam a durao destes eventos. Dessa maneira um HMM capaz de absorver variaes temporais entre diferentes amostras de uma mesma palavra. Esta uma caracterstica bastante desejvel quando se deseja modelar o sinal de voz, pois elocues de uma mesma palavra possuem diferentes duraes dependendo, do contexto no qual a palavra est inserida, de caractersticas particulares do locutor, como o seu estado emocional, por exemplo, alm de outros fatores. O sinal de voz contnuo no tempo e apesar de ser possvel discretiz-lo com um algoritmo de quantizao vetorial, uma melhor performance em reconhecimento de voz obtida trabalhando diretamente com o sinal contnuo, pois evita-se o erro de quantizao gerado durante a quantizao vetorial dos vetores de parmetros. Em compensao a estimao do modelo bem mais complexa e possui um maior custo computacional. Utilizando-se a matriz de covarincia U jm diagonal, reduz-se consideravelmente o custo, no entanto a performance diminui, ainda assim possui melhores resultados que um HMM discreto. prefervel utilizar a matriz de covarincia diagonal com muitas misturas a utilizar poucas misturas com a matriz de covarincia completa. Em aplicaes prticas dos modelos ocultos de Markov se faz necessrio a utilizao de vrias sequncias de observaes independentes para treinar um nico modelo. No reconhecimento automtico de fala, por exemplo, para se obter um bom modelo HMM para uma dada palavra devemos trein-lo com vrias elocues (sequncias de observaes) desta palavra, representando diferentes formas de elocuo da mesma, a m do modelo ser mais robusto. Cada elocuo pode ser subdividida em frames, ou quadros, de igual durao que se sobrepem, abrangendo amostras vizinhas. E a partir destes frames possvel extrair uma srie de informaes (parmetros) do sinal de voz que sejam mais representativas do que puramente uma sequncia de amplitudes. Para cada frame extrado um vetor de parmetros. O encadeamento de variaes de parmetros no tempo pode ser modelado por uma mquina de estados nita, tal qual o HMM. Usualmente a durao de um frame ca em torno de 20 milissegundos com sobreposio de 10 milissegundos, de modo que um determinado evento acstico ocorre em um perodo de alguns frames. A partir de uma avaliao estatstica do comportamento dos parmetros pertencentes aos quadros de um dado fenmeno acstico (etapa de treinamento) possvel estimar os parmetros de um modelo HMM; mdias, covarincias, coecientes de ponderao e matriz de transio para um HMM contnuo, que passaro a representar aquele fenmeno, caracterizando assim um estado do modelo de Markov. Assim, cada elocuo pode passar a ser representada por uma sequncia de estados. Durante esta etapa cria-se um HMM para cada palavra, isto , estimam-se os parmetros do modelo (A, B, ), de modo que cada

Universidade Federal Fluminense

30

PIBIC

Sistema de reconhecimento de voz

elocuo distinta de uma mesma palavra seja utilizada na gerao de um nico modelo. Na etapa de reconhecimento compara-se uma dada elocuo com cada um dos modelos previamente treinados, vericando se a sua sequncia de estados se assemelha sequncia do modelo, a m de obter a verossimilhana entre os dois. Comparando-se os valores de verossimilhana entre a elocuo e cada um dos modelos existentes possvel determinar qual o modelo que melhor representa esta palavra, realizando assim o reconhecimento.

Sistema de reconhecimento de voz


Toda a teoria vista anteriormente ser empregada para desenvolver um sistema de reconhecimento dos

dgitos de 1 9. Iniciamos o sistema de reconhecimento digitando main na janela de comandos do MATLAB . Logo em seguida o menu principal poder ser visualizado. A Figura 22 mostra a interface grca desse menu.

Figura 22: Interface grca do menu principal do sistema de reconhecimento de voz. No menu principal, o usurio pode clicar no boto Fase de Treinamento ou no boto Fase de Teste. O Universidade Federal Fluminense 31 PIBIC

Sistema de reconhecimento de voz

6.1

Fase de treinamento

boto Ajuda mostrar um pequeno tutorial de como utilizar o sistema de reconhecimento de voz. O boto Fechar naliza o programa.

6.1

Fase de treinamento
Para comear o procedimento de reconhecimento, o usurio deve primeiro clicar no boto Fase de Treina-

mento para iniciar o treinamento dos HMMs. A Figura 23 mostra a interface grca dessa janela.

Figura 23: Interface grca da fase de treinamento do sistema de reconhecimento de voz. Na fase de treinamento o usurio deve seguir as seguintes etapas: 1. Clicar no boto Carregar Arquivo para carregar a base de vozes para treinamento. A base de vozes utilizada foi a YOHO, lembrando que a mesma constituda de dgitos contnuos e foi necessria a sua segmentao. Apenas os dgitos de 1 9 foram utilizados. Utilizamos, por questes prticas, 630 amostras de fala de diversos locutores. A Figura 24 mostra a base de vozes j carregada no MATLAB . 2. Clicar no boto Extrair Coecientes. Essa rotina extrai os coecientes MFCCs da base de vozes. Lembrando que os coecientes das 430 primeiras amostras sero utilizados para o treinamento dos HMMs e

Universidade Federal Fluminense

32

PIBIC

Sistema de reconhecimento de voz

6.1

Fase de treinamento

Figura 24: Base de vozes carregada na rea de trabalho do MATLAB . os 200 restantes sero utilizados futuramente para o teste de desempenho do sistema. A Figura 25 mostra os coecientes extrados na rea de trabalho do MATLAB . 3. Clicar no boto Treinar HMM para efetuar o treinamento utilizando os coecientes produzidos na etapa anterior. Cada dgito agora tem seu prprio HMM. Na Figura 26 podemos visualizar a sada do sistema aps o treinamento.

Universidade Federal Fluminense

33

PIBIC

Sistema de reconhecimento de voz

6.1

Fase de treinamento

Figura 25: Coecientes MFCCs extrados na rea de trabalho do MATLAB . 4. Clicar no boto Salvar. Dessa forma podemos salvar os HMMs num banco de dados chamado HMM.mat. Esse banco de dados ser utilizado na prxima etapa para o teste de desempenho do sistema e poder ser carregado quando no houver interesse em efetuar todos os passos anteriores para a fase de testes.

Figura 26: HMMs treinadas de cada dgito na rea de trabalho do MATLAB .

Universidade Federal Fluminense

34

PIBIC

Sistema de reconhecimento de voz

6.2

Fase de teste

5. Clicar no boto Teste de Desempenho. Agora os 200 coecientes restantes sero utilizados para vericar a qualidade do treinamento do sistema. Infelizmente, aps vrias tentativas, no conseguimos uma taxa superior a 10%, como pode ser visto na Figura 27.

Figura 27: Resultado do teste de desempenho do sistema de reconhecimento de voz.

6.2

Fase de teste
Aps os passos anteriores terminamos a fase de treinamento. Clicando agora no boto Fase de Teste e

em seguida no boto Palavras Isoladas o usurio pode agora testar o sistema utilizando sua prpria voz. A interface grca da fase de testes de palavras isoladas pode ser visto na Figura 28. O usurio pode tanto carregar um arquivo de voz previamente salvo utilizando o boto Carregar udio na opo Disco, como pode grav-lo utilizando o boto Gravar na opo Gravao. Em ambas as opes o usurio pode escutar o udio clicando no boto Play e plotar o grco da forma de onda clicando no boto Gerar Grco. Essa ltima opo tambm pode ser vista na Figura 28.

Universidade Federal Fluminense

35

PIBIC

Sistema de reconhecimento de voz

6.2

Fase de teste

Figura 28: Exemplo da forma de onde de um arquivo de voz na fase de testes de palavras isoladas. Para fazer o reconhecimento basta clicar no boto Reconhecer e o dgito aparecer na caixa de texto. Ainda no conseguimos fazer o reconhecimento propriamente devido a um erro presente na funo epdByVolHod.

Universidade Federal Fluminense

36

PIBIC

Auto-avaliao do aluno

Resultados
Para a implementao desse projeto foi necessrio um estudo sobre Processamento Digital de Sinais, Mo-

delos Ocultos de Markov, a Tcnica de extrao de caractersticas de sinais de voz MFCC e o domnio do programa MATLAB , assim como a consulta a alguns artigos cientcos que discutem a tcnica MFCC e outros assuntos relevantes. Como demostrado no decorrer desse documento, j conseguimos fazer a extrao dos MFCCs e o treinamento dos HMMs. Contudo no teste de desempenho no conseguimos atingir uma taxa aceitvel. Alm disso, na fase de testes no conseguimos efetuar o reconhecimento propriamente dito devido a um erro presente na funo j citada.

Concluses
Apesar dos problemas descritos anteriormente, progredimos bastante em nosso projeto. Acreditamos que

num futuro bem prximo a vericao de locutor ser feita com sucesso. O prximo passo descobrir o motivo de nosso treinamento dos HMMs apresentar uma taxa to baixa de desempenho. Logo em seguida vericar por que razo a funo epdByVolHod est apresentando tal erro. Com esse problemas sanados acreditamos que a vericao de locutor se dar de forma satisfatria.

Auto-avaliao do aluno
A voz sem sombra de dvidas o instrumento mais poderoso de comunicao natural que o ser humano

possui e as aplicaes que o reconhecimento de locutor apresenta so inmeras. Com isso, o estudo desse assunto de suma importncia para o meio cientco e trar benefcios para a sociedade de uma forma geral. A experincia como bolsista est sendo desaadora, mas ao mesmo tempo enriquecedora. A busca constante por informao para sanar os problemas que aparecem no decorrer do andamento do projeto mostram claramente um problema tpico de engenharia, j antecipando um pouco as experincias que me aguardam futuramente no mercado de trabalho. Enm, tenho certeza que o conhecimento adquirido aqui ser levado por toda a minha vida e ser de grande utilidade tanto na minha vida prossional quanto pessoal.

Universidade Federal Fluminense

37

PIBIC

Referncias

Referncias

Referncias
[1] Campbell Jr J. P., Speaker Recognition: A tutorial", Proceedings of the IEEE, vol. 85, no. 9, pp. 14371462, 1997. [2] Davis K. H., Automatic Recognition of Spoken Digits", Journal of the Acoustical Society of America, vol. 24, no. 6, pp. 637-642, 1952. [3] Deller J. R., Hansen J. H., Proakis J. G., Discrete-Time Processing of Speech Signals", IEEE Press, p. 936, 2000. [4] Doddington G.R. Speaker Recognition - Identifying People by their Voices", Proceedings of the IEEE, vol. 73, no. 11, pp. 1651-1664, 1985. [5] Koenig W., The Sound Spectrograph", Journal of the Acoustical Society of America, vol. 17, pp. 19-49, 1946. [6] Leon-Garcia A., Probability and Random Processes for Electrical Engineering", Second Edition, Addison-Wesley, Canad, p. 596, 1994. [7] Oppenheim A. V., Schafer R. W., Discrete-Time Signal Processing", Englewood Cliffs, NJ: Prentice Hall, p. 796, 1989. [8] Rabiner L. R., Juang B., Fundamentals of Speech Recognition", Prentice Hall, p. 493, 1993. [9] Young S., Evermann G., Gales M., The HTK Book (for HTK Version 3.3)", Cambridge University Engineering Department, p. 354, 2005. [10] http://htk.eng.cam.ac.uk/ [11] http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html [12] Kim D. S., Jeong J. H., Kim J. H., Lee S. Y., Feature Extraction Based on Zero-Crossings with Peak Amplitudes for Robust Speech Recognition in Noisy Environments", Korea Advanced Institute [13] Gomes da Silva A., Tsang I. R., Reconhencimento de Voz para Palavras Isoladas, Recife, 2009. [14] Abushariah, A.A.M. and Gunawan, T.S., Speech Recognition System Using MATLAB, Germany,LAP Lambert Academic Publishing, 2011.

Universidade Federal Fluminense

38

PIBIC

Você também pode gostar