• Nenhum resultado encontrado

onde σ1 e µ1 s˜ao, respectivamente, a m´edia e o desvio do grupo de medidas que

geraram a curva de referˆencia, enquanto σ2 e µ2 s˜ao, respectivamente, a m´edia e o desvio

do grupo de medidas que geraram a curva de teste.

3.2.4

Limiar 3

Para calcular o limiar 3 [17] ser˜ao utilizados trˆes parˆametros, s˜ao eles a taxa de falsa

aceita¸c˜ao (False Acceptance Rate - FAR), a taxa de falsa rejei¸c˜ao (False Rejection Rate - FRR) e o valor de igualdade de erro (Equal Error Rate - EER). O FAR mede a por-

centagem de ´audios dos locutores impostores que s˜ao aceitos como se fossem do locutor de interesse que treinou a base, j´a o FRR mede a porcentagem de ´audios do locutor de

interesse que s˜ao recusados pelo mesmo sistema.

Para calcular essas medidas primeiramente ´e feita uma sugest˜ao de faixa de valores

poss´ıveis para o limiar e para esse valores calcula-se o FAR e o FRR, dados pelas Eq. 3.4 e 3.5. O valor do limiar 3 ´e definido atrav´es da abscissa do ponto de interse¸c˜ao das curvas,

ponto EER, mostrado na Fig. 3.3. Dessa forma, ´e escolhido o valor que garante o menor par de FAR e FRR.

F AR = N ´umero de ´audios dos locutores impostores aceitos

N ´umero de tentativa de acesso dos impostores × 100% (3.4) F RR = N ´umero de ´audios dos locutor de interesse recusados

N ´umero de acessos do locutor de interesse × 100% (3.5)

3.3

Parˆametros de tempo em sequˆencia de vogais

A primeira altera¸c˜ao feita para aperfei¸coar o c´odigo e melhorar a verifica¸c˜ao de locutor

foi a inser¸c˜ao de parˆametros de tempo para ´audios que s˜ao sequˆencias de vogais. Dando continua¸c˜ao ao trabalho anterior que j´a realizava a verifica¸c˜ao com base em sequˆencia

de vogais, foi decidido implementar mais observ´aveis ao modelo para tentar melhorar o reconhecimento, ou seja, causar uma diminui¸c˜ao nos erros de decis˜ao.

Figura 3.3: Curva de FAR e FRR para a determina¸c˜ao do limiar 3. [3]

Inicialmente, o reconhecimento estava sendo a partir dos MFCCs, alguns parˆame- tros de jitter e dois parˆametros de frequˆencia (dH12 e HRF). Os parˆametros acrescentados

ao c´odigo s˜ao parˆametros extra´ıdos do sinal glotal no dom´ınio do tempo, conforme citado na Subse¸c˜ao 2.1.2. Como o sinal glotal ´e gerado pelo movimento das cordas vocais, pode-se

concluir que esse sinal guarde informa¸c˜oes essenciais sobre o aparelho fonador do locutor de interesse, como o instante de abertura da glote e o instante de fechamento, por exem-

plo. Seguindo as instru¸c˜oes do artigo de Mongia e Sharma [5], foram implementados os c´alculos desses instantes de tempo para a obten¸c˜ao dos parˆametros utilizando uma divi-

s˜ao do sinal glotal em ciclos peri´odicos. Essa divis˜ao foi feita utilizando uma ferramenta essencial para o programa, chamada de fxrapt, que ser´a explorada nessa se¸c˜ao. A partir

das divis˜oes do sinal e do fxrapt foram feitos algoritmos e altera¸c˜oes no c´odigo para o c´alculo dos parˆametros que ser˜ao apresentados nessa se¸c˜ao.

3.3.1

Melhoria na implementa¸c˜ao do fxrapt

Uma das ferramentas utilizadas para trabalhar com o sinal glotal foi o algoritmo fxrapt, implementado no VOICEBOX, uma toolbox para o MATLAB. Seu algoritmo foi criado

por David Talkin e pode ser encontrado no cap´ıtulo 14 do livro Speech Coding and Synthe- sis [14]. Em sua essˆencia, o algoritmo busca medir o pitch, ou frequˆencia fundamental, do

sinal de voz para determinar o que chamamos de “tom”. Na aplica¸c˜ao desenvolvida nesse trabalho, o algoritmo tem o sinal glotal e a frequˆencia de amostragem como parˆametros de

entrada e retorna como sa´ıda um vetor de frequˆencias fundamentais de cada ciclo glotal

do sinal. Al´em da obten¸c˜ao das frequˆencias fundamentais, o que ´e essencial no c´alculo dos novos parˆametros, esse vetor pode ser usado para dividir o sinal glotal em ciclos. Essa

caracter´ıstica ser´a abordada com maior profundidade mais `a frente.

O fxrapt ´e uma ferramenta de extrema importˆancia neste trabalho, por´em apresenta

uma caracter´ıstica indesej´avel para o processo de verifica¸c˜ao de locutor: a fun¸c˜ao que o implementa s´o calcula as frequˆencias fundamentais de uma parte inicial do sinal glotal e

descarta o restante. Visto que para um bom resultado ´e necess´ario aproveitar a maior parte poss´ıvel da informa¸c˜ao que um ´audio pode disponibilizar, fez-se necess´ario achar

uma solu¸c˜ao para que o algoritmo do fxrapt calculasse a frequˆencia fundamental do sinal como um todo ou, pelo menos, a maior parte dele.

Figura 3.4: L´ogica sequencial para o algoritmo.

A solu¸c˜ao encontrada foi utilizar uma fun¸c˜ao que aplicasse o algoritmo recursiva-

mente, conforme mostra a Fig. 3.4. Ao se aplicar o algoritmo, preserva-se o vetor de frequˆencias fundamentais retornado pela fun¸c˜ao e, a partir dele, se calcula quais amostras

n˜ao foram analisadas pela fun¸c˜ao. Com isso, era poss´ıvel mensurar a porcentagem do sinal que foi analisado e a porcentagem que foi descartada. Em seguida, somente a parte

descartada ´e aplicada como entrada no fxrapt novamente, retornando mais uma vez um vetor de frequˆencias que cont´em uma parte do sinal analisada e outra parte descartada.

Essa segunda parte analisada ´e adicionada `a primeira, e a parte descartada ´e aplicada mais uma vez ao fxrapt. Esse processo ´e aplicado em at´e 90% do sinal ser analisado e

3.3.2

Ajustes no c´odigo

Ap´os realizar a melhoria na implementa¸c˜ao do fxrapt, o objetivo passou a ser realizar o

c´alculo de alguns instantes de tempo de interesse para determinar alguns parˆametros de tempo que guardam rela¸c˜ao com esses instantes. Para isso, ´e necess´ario que o in´ıcio e o

fim de cada ciclo glotal estejam bem definidos. Portanto, a estrat´egia para determinar os instantes ´e usar um vetor que cont´em os valores de tempo da amostra final de cada ciclo

glotal armazenado em sua mem´oria.

Um dos instantes de tempo importantes a ser determinado s˜ao os instantes em

que cada ciclo do sinal glotal ´e m´aximo. Esses instantes j´a haviam sido calculados pelos autores anteriores do programa [3] e ao se tra¸car o gr´afico do sinal glotal e marcar os

pontos de m´aximo foi notado que havia alguns erros nos instantes pois, a cada ciclo, o ponto de m´aximo se distanciava mais do pico onde ele deveria estar. Ao analisar o c´odigo

foi poss´ıvel perceber que os instantes de m´aximo dependiam do vetor de instantes finais de cada ciclo e que o problema se devia a uma falta de sincronismo desse vetor. No t´ermino

do processamento de cada ciclo, o programa armazenava o instante final com uma amostra a menos ou duas. A solu¸c˜ao foi adicionar essas amostras a cada ciclo de processamento.

Ap´os a corre¸c˜ao do vetor de instantes finais, tornou-se poss´ıvel o c´alculo dos instantes de tempo.

3.3.3

C´alculo dos instantes de tempo

Como descrito na Subse¸c˜ao 2.1.2, os instantes de tempo a serem calculados s˜ao os instantes de m´aximo e m´ınimo (tmax e tmin), o per´ıodo fundamental de cada ciclo (T), o instante de

fechamento das cordas vocais (tc), os dois instantes de abertura (to1e to2), os dois instantes

me que a amplitude ´e metade da m´axima (tqoe tqc) e a diferen¸ca entre a amplitude m´axima

e m´ınima (Aac).

Em rela¸c˜ao ao instantes de m´aximo e m´ınimo, o de m´aximo j´a estava calculado e o

instante de m´ınimo foi calculado da mesma forma mas usando a fun¸c˜ao min do MATLAB no momento que o programa processava cada ciclo do sinal glotal. Essa fun¸c˜ao retorna o

valor do m´ınimo e o valor da amostra em que ele ocorreu.

O per´ıodo fundamental foi calculado usando o algoritmo fxrapt e armazenado em

um vetor chamado f0 pois, como foi descrito anteriormente, o algoritmo foi implementado

ciclo.

O valor de Aac foi calculado simplesmente pela diferen¸ca de amplitude de cada

instante de m´aximo e m´ınimo. Por´em, o instante tc ´e calculado, primeiramente, atrav´es

da derivada do sinal glotal pela fun¸c˜ao diff e, em seguida, determinado o instante em que a derivada muda de sinal, ou seja, cruza o zero. Para isso foi realizado uma varredura

na derivada come¸cando pelo instante de m´ınimo desse sinal. Foi necess´ario calcular os instantes de m´ınimo desse sinal, seguindo a forma com que foi calculado no sinal glotal.

Os instantes tqo e tqcforam determinados fazendo-se duas varreduras em cada ciclo

glotal: uma antes do m´aximo at´e o in´ıcio do ciclo e outro do m´aximo at´e o final do ciclo.

Dessa forma, em cada varredura, ´e determinado um desses instantes. Para determinar a amostra que melhor se aproxima do valor de 50% de Aac, escolheu-se o menor m´odulo da

diferen¸ca entre o valor da amostra e o valor de Aac/2.

Por ´ultimo, os valores de to1 e to2 s˜ao calculados a partir da primeira derivada do

sinal glotal, da segunda derivada do sinal glotal, seus instantes de m´aximo e seus instantes de m´ınimo, usando as estrat´egias dos instantes anteriores.

3.3.4

C´alculo dos parˆametros

Determinados os instantes de interesse do sinal glotal, podemos calcular os parˆametros de tempo citados na Subse¸c˜ao 2.1.2 referentes aos parˆametros do sinal glotal. As f´ormulas

para o c´alculo s˜ao simples de serem aplicadas, por´em ´e necess´ario aten¸c˜ao ao fato de que teremos um valor de cada parˆametro para cada ciclo do sinal glotal. Dessa forma, uma

janela analisada pelo programa de verifica¸c˜ao de locutor possui alguns ciclos, sendo que, para cada janela, o HMM possui como entrada apenas um valor desses parˆametros.

A solu¸c˜ao encontrada para esse problema foi determinar a amostra inicial e final de cada janela e determinar quantos ciclos inteiros do sinal glotal estavam dentro da janela

comparando o instante de tempo final de cada ciclo com a amostra inicial e final. Tendo identificado os ciclos, calculamos os parˆametros de cada um e fazemos uma m´edia para a

Documentos relacionados