• Nenhum resultado encontrado

3.4 Adapta¸c˜ ao do c´ odigo para utiliza¸c˜ ao de palavras

3.4.2 Divis˜ ao do ´ audio em trechos vozeados e n˜ ao vozeados

Com o resultado negativo do recorte dos trechos n˜ao vozeados, foi adotada uma nova

pr´atica para realizar o reconhecimento com palavras que evitasse a perda de informa¸c˜ao. A nova solu¸c˜ao ainda teria que tratar de alguma forma os trechos n˜ao vozeados, mas sem

descartar nenhuma parte do ´audio. A ideia proposta seria manter esses trechos que seriam recortados e, para os parˆametros que n˜ao s˜ao poss´ıveis calcular nos trechos n˜ao vozeados,

seria posto um valor nulo. Para isso seria necess´ario, portanto, dividir o ´audio. Como o programa calcula os parˆametros por janelas, a divis˜ao foi feita em janelas vozeadas

e n˜ao vozeadas, de forma que ele retornasse um valor nulo para as janelas que fossem identificadas como n˜ao vozeadas.

Sabemos que a base de ´audios do projeto ´e bem diversificada, por´em foi observado que um mesmo locutor carrega uma similaridade nos seus ´audios gravados de uma mesma

palavra, gerando um padr˜ao para nossa an´alise. Por esse motivo foi decidido realizar uma divis˜ao manual no primeiro ´audio em 8 janelas e aplicar essa mesma divis˜ao para todos

os outros ´audios de um mesmo locutor. Dessa forma seria poss´ıvel implementar o novo m´etodo de maneira r´apida para testar se ele seria efetivo ou n˜ao.

Uma necessidade notada ao se realizar a divis˜ao manual foi a de retirar o momento de silˆencio usando algum outro algoritmo. O algoritmo antigo, baseado na quantidade de

energia dos cruzamentos de zeros, estava retirando muitos trechos do sinal, incluindo os trechos n˜ao vozeados, devido a grande varia¸c˜ao das amplitudes para uma palavra com-

pleta. Devido a isso, o padr˜ao observado era perdido e o fato de aplicar o janelamento do primeiro ´audio aos outros n˜ao estava sendo eficiente. Para preservar o padr˜ao era neces-

s´ario criar uma estrat´egia para retirar apenas o momento de silˆencio no in´ıcio do ´audio. A estrat´egia elaborada levou em conta trˆes caracter´ısticas importantes: o momento de

silˆencio apresenta apenas um ru´ıdo de amplitude muito baixa; o sinal glotal tem uma ca- racter´ıstica peri´odica; e para acontecer o reconhecimento ´e necess´ario que o ru´ıdo seja bem

menor do que a amplitude do sinal. Por isso a amplitude se tornou o crit´erio usado, onde todas as amostras iniciais que apresentarem uma amplitude muito baixa eram retiradas

do sinal.

O resultado de todo esse processo de divis˜ao em janelas e retirada do momento de

silˆencio est´a ilustrado na Fig. 3.6. Vale lembrar que esse janelamento foi aplicado tanto no sinal de voz quanto no sinal glotal para manter a coerˆencia no modelo.

Como dito anteriormente, ao aplicar o janelamento para o primeiro ´audio, o mesmo

era repetido para todos os outros ´audios do mesmo locutor, onde cada locutor tinha um janelamento diferente mas igual dentro dos seus pr´oprios ´audios. Esse m´etodo apresentou

um bom resultado, por´em foi necess´ario levar em conta que nem todos os ´audios apre- sentavam o mesmo tamanho, o que fazia com que a ´ultima janela variasse de tamanho e,

em alguns casos, acontecia de o ´audio ser pequeno ao ponto de n˜ao existirem amostras na ´ultima janela. Para contornar essa situa¸c˜ao foi feito um preenchimento de zeros no

sinal para que a ´ultima janela mantivesse um tamanho constante e, caso ocorresse de uma janela ser constitu´ıda apenas por zeros, o programa retornava todos os parˆametros do

sinal glotal como zero.

Figura 3.6: Sinal de voz dividido em janelas, demarcadas atrav´es dos pontos vermelhos.

A implementa¸c˜ao no c´odigo da divis˜ao do sinal em janelas foi dada pela cria¸c˜ao

de dois vetores de controle, onde o primeiro continha a amostra inicial e final de cada janela, e o outro era um vetor bin´ario que representava se a janela era vozeada ou n˜ao.

Essas vari´aveis s˜ao passadas para a fun¸c˜ao parametros onde s˜ao usadas para realizar o janelamento e para controle no c´alculo dos parˆametros, onde nos trechos vozeados s˜ao

extra´ıdos os MFCCs e os parˆametros do sinal glotal e nos trechos n˜ao vozeados eram extra´ıdos apenas os MFCCs e os parˆametros do sinal glotal retornavam com valor nulo.

´e poss´ıvel alcan¸car um bom resultado para palavras completas usando no modelo quanti-

dades de parˆametros diferentes para cada tipo de trecho no sinal. Uma das preocupa¸c˜oes ao se implementar esse m´etodo era se o modelo iria apresentar um bom comportamento

ao se substituir os parˆametros por zeros nos trechos n˜ao vozeados. Isso poderia resultar em problemas com indetermina¸c˜oes pois muitos dos coeficientes do modelo s˜ao calculados

utilizando divis˜ao e recursividade, conforme mostrado na Se¸c˜ao 2.3. Como esses casos n˜ao aconteceram durante os testes realizados, podemos afirmar que esse m´etodo apresentou

Cap´ıtulo 4

An´alise dos Resultados

Neste cap´ıtulo, ser˜ao apresentados e discutidos os resultados dos testes realizados neste

trabalho e ser˜ao divididos em duas partes: (i) adi¸c˜ao dos parˆametros de tempo com a sequˆencia aui e (ii) adapta¸c˜ao do c´odigo para palavras e teste com a palavra automatico

utilizando os mesmos parˆametros da sequˆencia aui. Na primeira parte ser´a analisado se e quais parˆametros de tempo resultaram em uma melhora no desempenho do programa

de verifica¸c˜ao do locutor, em rela¸c˜ao a taxa de erro, quando comparados aos parˆametros de frequˆencia e MFCCs. Na segunda parte, ser˜ao mostrados os resultados referentes ao

algoritmo que foi adaptado para palavras e concluir se os parˆametros de frequˆencia e os mesmos parˆametros de tempo utilizados para sequˆencias de vogais retornaram um melhor

resultado.

O algoritmo de verifica¸c˜ao ´e dividido em treinamento e teste. Primeiro foram

gravados ´audios atrav´es de um microfone e feita a sua leitura no MATLAB. Depois, com o algoritmo IAIF obt´em-se o sinal glotal e, finalmente, s˜ao extra´ıdos os parˆametros do

sinal glotal que ser˜ao utilizados como entradas dos Modelos Ocultos de Markov (HMM), gerando modelos estoc´asticos da voz do locutor de interesse. Para o teste, s˜ao utilizados

´

audios de locutores impostores, que n˜ao geraram o modelo treinado e, tamb´em, do pr´oprio locutor de interesse, fazendo os mesmos procedimentos explicados anteriormente. Por´em,

os parˆametros do sinal glotal s˜ao utilizados como entrada para o modelo do locutor de interesse e assim, conseguimos obter a medida chamada verossimilhan¸ca, para finalmente

descobrir se o ´audio pertence ao locutor que treinou a base, usando os crit´erios baseados em limiares de aceita¸c˜ao.

Na Fig.4.1 est´a ilustrado o funcionamento do algoritmo de verifica¸c˜ao.

Figura 4.1: Vis˜ao geral do algoritmo de verifica¸c˜ao do locutor.

4.1

Adi¸c˜ao de parˆametros de tempo para a sequˆencia

de vogais

Para realizar esses testes foram utilizados ´audios de dois locutores de interesse masculinos

e dois locutores de interesse femininos e m´edia de idade em torno de 22 anos, com a sequˆencia de vogais aui. A partir dos modelos treinados, foram utilizados ´audios desses

pr´oprios locutores e ´audios de quatro locutores impostores de diferentes idades e sexo: locutor 1 - 26 anos e homem; locutor 2 - 24 anos e homem; locutor 3 - 28 anos e mulher;

locutor 4 - 20 anos e mulher. Para cada locutor impostor foram gravados 30 ´audios e com rela¸c˜ao aos ´audios do locutor de interesse, foram utilizados 40 para teste, totalizando

160 ´audios. Foram usados como entrada do modelo os parˆametros de tempo, citados na Se¸c˜ao 2.1.2, com o jitter, com os parˆametros de frequˆencia(dH12 e HRF) e com os

MFCCs, j´a testados no trabalho anterior [3], para verificar quais desses apresenta um melhor resultado. A seguir, ser˜ao discutidos os resultados para diferentes crit´erios de

Documentos relacionados