Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
ALEXANDER ROBERT KUTZKE
RECONHECIMENTO AUTOMATICO DE LOCUTOR
EM TEMPO REAL E INDEPENDENTE DE TEXTO
Monografia apresentada ao Curso de Ciencia
da Computacao, Setor de Ciencias Exatas,
Universidade Federal do Parana, como requi-
sito parcial para a conclusao do curso.
Orientador: Prof. Luciano Silva
CURITIBA
2008
Resumo
O proposito geral deste trabalho e a criacao de um sistema capaz de reconhecer locutores
em tempo real, a partir do sinal digital extraıdo de sua voz.
Apos a captacao do sinal de voz atraves de um microfone ele e entao processado
e da origem a um conjunto de caracterısticas que representam a voz do locutor. Essas
caracterısticas sao armazenadas pelo sistema e sao utilizadas como a identificacao de cada
locutor.
Com as identificacoes de cada locutor armazenadas, o sistema e capaz de analisar
um outro sinal de voz e decidir a qual locutor ela pertence, ou ainda, afirmar se um locutor
e quem ele afirma ser.
SUMARIO
LISTA DE TABELAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
LISTA DE FIGURAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv
1 INTRODUCAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 BIOMETRIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1 BIOMETRIA DA VOZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 A VOZ HUMANA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1 PRODUCAO DA VOZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.1 Subsistema Respiratorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.2 Subsistema Larıngeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.3 Subsistema Supralarıngeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 MODELO FONTE - FILTRO (SOURCE - FILTER) . . . . . . . . . . . . . . 9
4 RECONHECIMENTO AUTOMATICO DE LOCUTOR . . . . . . . . 11
4.1 PROCESSAMENTO DE VOZ . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2 CARACTERıSTICAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.3 VISAO GERAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.3.1 Aquisicao do Sinal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.3.2 Parametrizacao do Sinal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.3.3 Criacao de modelos acusticos . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.3.4 Comparacao e decisao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.4 AQUISICAO E TRATAMENTO DO SINAL . . . . . . . . . . . . . . . . . . . 15
4.4.1 Windowing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.4.2 Pre-emphasis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.5 PARAMETRIZACAO DO SINAL . . . . . . . . . . . . . . . . . . . . . . . . 17
4.5.1 Predicao Linear (Linear Prediction) . . . . . . . . . . . . . . . . . . . . . . 19
4.6 TOMADA DE DECISAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.6.1 Modelos Acusticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.6.2 Decisao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5 O SISTEMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.1 VISAO GERAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.2 MODULOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.2.1 Comunicacao entre modulos . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.3 MODULO ENTRADA E SAıDA . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.3.1 Interacao com hardware de som . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.3.2 Entrada de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.3.3 Resampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
i
5.3.4 Deteccao de Voz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.4 MODULO PARAMETRIZADOR . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.4.1 Windowing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.4.2 Calculo dos Coeficientes de Predicao Linear . . . . . . . . . . . . . . . . . . 33
5.5 MODULO COMPARADOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.5.1 Criacao de Modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.5.2 Tomada de decisao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6 TESTES E RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.1 BASE DE TESTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.2 TESTES DE IDENTIFICACAO DE LOCUTOR . . . . . . . . . . . . . . . . 37
6.2.1 Coeficiente da predicao linear . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.2.2 Coeficiente de reflexao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.2.3 Coeficiente LAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.2.4 Comparacao entre os tipos de coeficientes . . . . . . . . . . . . . . . . . . . 43
6.2.5 Analise dos resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.3 TESTES DE VERIFICACAO DE LOCUTOR . . . . . . . . . . . . . . . . . . 46
6.3.1 Resultados para limiar unico . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.3.2 Resultados para limiar diferente para cada locutor . . . . . . . . . . . . . . 48
6.3.3 Analise dos resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.4 OUTROS TESTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
6.4.1 Analise do tempo de processamento . . . . . . . . . . . . . . . . . . . . . . . 51
6.4.2 Testes com alteracoes na amplitude da base . . . . . . . . . . . . . . . . . . 52
6.4.3 Testes com alteracao na taxa de amostragem . . . . . . . . . . . . . . . . . 52
7 CONCLUSOES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
REFERENCIAS BIBLIOGRAFICAS . . . . . . . . . . . . . . . . . . . . . . . 55
ii
LISTA DE TABELAS
2.1 Comparacao entre algumas biometrias[5]. Graus: A-Alto, M-Medio, B-Baixo. . 4
6.1 Menores taxas de erros obtidas com o coeficiente de predicao, para a base de
testes de 25 locutores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.2 Menores taxas de erros obtidas com o coeficiente de predicao, para a base de
testes de 50 locutores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.3 Menores taxas de erros obtidas com o coeficiente de reflexao, para a base de
testes de 25 locutores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.4 Menores taxas de erros obtidas com o coeficiente de reflexao, para a base de
testes de 50 locutores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.5 Menores taxas de erros obtidas com o coeficiente LAR, para a base de testes
de 25 locutores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.6 Menores taxas de erros obtidas com o coeficiente LAR, para a base de testes
de 50 locutores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.7 Melhor taxa de erro obtida com limiar unico. . . . . . . . . . . . . . . . . . . 48
6.8 Taxas de FAR e FRR obtidas com limiar individual. . . . . . . . . . . . . . . 49
6.9 Taxa de aumento da latencia por janela de sinal processada. . . . . . . . . . . 51
iii
LISTA DE FIGURAS
3.1 Sistema de producao da voz humana.[6] . . . . . . . . . . . . . . . . . . . . . . 7
3.2 Diagrama do modelo fonte-filtro de producao de voz[6]. . . . . . . . . . . . . . 10
4.1 Divisao das areas do processamento de voz.[3] . . . . . . . . . . . . . . . . . . 11
4.2 Esquema basico de um sistema de reconhecimento de locutor.[3] . . . . . . . . 13
4.3 Exemplo de windowing de um sinal . . . . . . . . . . . . . . . . . . . . . . . . 16
4.4 Exemplo da aplicacao da operacao Hamming window sobre um sinal[6]. . . . . 17
4.5 Pre-emphasis aplicada a um sinal de voz[6]. . . . . . . . . . . . . . . . . . . . 18
4.6 Exemplo de vector quantization para dimensao R2[4]. . . . . . . . . . . . . . . 24
5.1 Visao geral dos modulos do sistema . . . . . . . . . . . . . . . . . . . . . . . . 28
5.2 Divisao de um sinal de voz em segmentos de voz (areas verdes) de acordo com
a amplitude. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.1 Resultados para a tarefa de identificacao de locutor usando coeficiente de
predicao linear e diferentes tamanhos de modelos. Base de 25 locutores. . . . . 38
6.2 Resultados para a tarefa de identificacao de locutor usando coeficiente de
predicao linear e diferentes tamanhos de modelos. Base de 50 locutores. . . . . 38
6.3 Resultados para a tarefa de identificacao de locutor usando coeficiente de re-
flexao e diferentes tamanhos de modelos. Base de 25 locutores. . . . . . . . . . 40
6.4 Resultados para a tarefa de identificacao de locutor usando coeficiente de re-
flexao e diferentes tamanhos de modelos. Base de 50 locutores. . . . . . . . . . 40
6.5 Resultados para a tarefa de identificacao de locutor usando coeficiente LAR e
diferentes tamanhos de modelos. Base de 25 locutores. . . . . . . . . . . . . . 42
6.6 Resultados para a tarefa de identificacao de locutor usando coeficiente LAR e
diferentes tamanhos de modelos. Base de 50 locutores. . . . . . . . . . . . . . 42
6.7 Comparacao entre coeficientes para a tarefa de identificacao de locutor usando
tamanho de modelo igual a 128. Base de 25 locutores. . . . . . . . . . . . . . 44
6.8 Comparacao entre coeficientes para a tarefa de identificacao de locutor usando
tamanho de modelo igual a 256. Base de 25 locutores. . . . . . . . . . . . . . 44
6.9 Comparacao entre coeficientes para a tarefa de identificacao de locutor usando
tamanho de modelo igual a 128. Base de 50 locutores. . . . . . . . . . . . . . 45
6.10 Comparacao entre coeficientes para a tarefa de identificacao de locutor usando
tamanho de modelo igual a 256. Base de 50 locutores. . . . . . . . . . . . . . 45
6.11 Taxas de FAR e FRR obtidos com limiar unico. . . . . . . . . . . . . . . . . . 47
6.12 Relacao FARxFRR (ROC) obtidos com limiar unico. . . . . . . . . . . . . . . 48
i
6.13 Exemplo de bons scores obtidos por um modelo comparado com vozes de todos
os locutores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6.14 Exemplo de scores ruins obtidos por um modelo comparado com vozes de todos
os locutores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6.15 Analise da latencia pelo numero de janelas de sinal analisadas. . . . . . . . . . 52
iv
1
1 INTRODUCAO
Sistemas computacionais evoluıram muito nas ultimas decadas e com esse avanco
evoluıram tambem as solucoes para tarefas que antes pareciam impossıveis. Uma dessas
tarefas e a biometria.
Atualmente, e possıvel observar a biometria em diversos dispositivos. Na maioria
das vezes ela e utilizada para sistemas de seguranca ou na identificacao de pessoas.
A da analise voz humana e um caso a parte no universo da biometria, pois e
considerada um dos metodos de identificacao biometrico menos invasivos existentes ate
hoje, visto que nao existe nenhum contato fısico do usuario com qualquer dispositivo.
Muitos sistemas de identificacao de pessoas atraves da voz, tem sido projetados
e utilizados nos mais diversos aparelhos e situacoes, porem a maioria deles nao e capaz
de analisar um fluxo contınuo de dados em tempo real, como o audio de uma reuniao ou
um stream de vıdeo, seja pela falta de capacidade de armazenamento, ou pelo excesso no
tempo de processamento.
Tendo como base esse problema, o objetivo final deste projeto e a criacao de
um sistema que seja capaz de realizar a tarefa de reconhecimento de locutor sobre fluxos
de dados de audio sem que seja necessario para o usuario se preocupar com tempo de
resposta ou com a capacidade de armazenamento, pois todo o processo e executado em
tempo real.
Neste trabalho, os capıtulos estao organizados da seguinte forma:
• Capıtulo 2 : Apresenta uma breve descricao da biometria e sua historia.
• Capıtulo 3 : Apresenta detalhes de todo o processo de producao da voz realizado
pelo corpo humano.
• Capıtulo 4 : Apresenta, detalhadamente, o funcionamento do processo de reconheci-
mento de locutor. A explicacao e demonstracao das principais tecnicas e algoritmos
presentes no sistema tambem sao feitas neste capıtulo.
• Capıtulo 5 : Apresenta a metodologia que foi aplicada para o desenvolvimento do
sistema em si, assim como a descricao de todas as suas partes.
• Capıtulo 6 : Apresenta uma serie de testes realizados sobre o sistema e seus resulta-
dos, de modo a demonstrar a eficiencia do processo.
• Capıtulo 7 : Apresenta uma breve conclusao do trabalho.
2
3
2 BIOMETRIA
O termo biometria [bio (vida) + metria (medida)] por si so refere-se ao estudo
estatıstico das caracterısticas fısicas ou comportamentais dos seres vivos[12], porem recen-
temente este termo tambem vem sendo utilizado para se referir a analise caracterısticas
fısicas ou comportamentais das pessoas como forma de identifica-las unicamente.
Sistemas de identificacao de pessoas utilizam o que chamamos de caracterısticas
biometricas, ou biometrias, para realizar o processo de reconhecimento da identidade.
Essas caracterısticas sao dados retirados do corpo humano atraves de algum processo,
como foto, medicao ou gravacao de voz.
As biometrias sao comumente divididas em dois grupos: Biometrias fısicas e
comportamentais. Para as biometrias fısicas podemos citas:
• Face
• Impressao digital
• Mao
• Iris
• DNA
E para as biometrias comportamentais e possıvel citar:
• Assinatura
• Ritmo datilografico
• Voz
Quanto as biometrias de DNA e de voz, existem algumas divergencias quanto a
classificacao. A analise de DNA nao e considerada uma biometria por alguns estudos.
Isso se deve ao fato de que o processo de identificacao de pessoas atraves do DNA ainda
nao e realizado em larga escala fora de um ambiente laboratorial.
Ja a biometria da voz e considerada certas vezes como uma biometria fısica e
outras como biometria comportamental. Ambas as abordagens tem argumentos validos,
pois, e certo que as caracterısticas de voz de um indivıduo dependem de sua estrutura
anatomica, tanto do sistema respiratorio como todo o trato vocal. E por outro lado e
certo tambem que atos comportamentais, como sotaque e linguagem utilizada, influenciam
muito na analise da voz.
Para que haja uma comparacao mais clara entre as diferentes biometrias, um
conjunto de qualidades ou caraterısticas e utilizado[5]:
• Singularidade: Devem ser tao unicas quanto possıvel, ou seja, um traco identico
jamais aparecera em duas pessoas.
• Universalidade: Devem existir em tantas pessoas quanto possıvel.
• Mensurabilidade: Podem ser medidas com instrumentos tecnicos simples.
• Aceitabilidade: Sao faceis e confortaveis de serem medidas.
• Permanencia: Nao pode variar com o tempo.
• Desempenho: Qualidade e velocidade da tecnologia utilizada.
Na tabela 2.1 e apresentado um quadro comparativo entre diferentes tipos de
biometrias[5].
Biometria Universalidade Singularidade Permanencia Mensurabilidade Desempenho Aceitabilidade
DNA A A A B A BFace A B M A B AImpressao digital M A A M A MGeometria da mao M M M A M M
Iris A A A M A BRetina A A M B A BAssinatura B B B A B AVoz M B B M B A
Tabela 2.1: Comparacao entre algumas biometrias[5]. Graus: A-Alto, M-Medio, B-Baixo.
2.1 BIOMETRIA DA VOZ
A voz humana pode ser usada no processo de identificacao de pessoas, uma prova
disto e a capacidade do cerebro de reconhecer vozes de diferentes pessoas. Mas como um
dispositivo pode realizar essa tarefa?
4
Como visto anteriormente, a biometria da voz e dependente tanto de carac-
terısticas fısicas, quanto comportamentais. Dessa forma processos de identificacao de
pessoas atraves da voz devem ser capazes de analisar todas essas caracterısticas.
Caracterısticas fısicas que participam do processo de producao de voz, como for-
mato e tamanho do trato vocal, laringe, e outro orgaos, sao consideradas invariantes para
um indivıduo, ou seja, nao variam de acordo com o tempo[5]. Porem outras propriedades
da voz como sotaque, timbre e estado emocional podem variar muito com o tempo, difi-
cultando o processo de biometria da voz. Outra desvantagem presente neste processo e o
fato de o sinal geralmente ser muito afetado por ambientes ruidosos.
Porem a biometria de voz possui uma qualidade muito importante. E um dos
processos de identificacao menos invasivos, pois o usuario nao necessita ter nenhum con-
tato fısico com qualquer dispositivo. Apenas a voz gravada por um microfone e suficiente
para a identificacao.
Nos capıtulo seguinte, uma analise mais detalhada do processo de producao da
voz humana e descrita.
5
6
3 A VOZ HUMANA
Para a correta realizacao da tarefa de reconhecimento de locutor e interessante
conhecermos um pouco mais detalhadamente o nosso objeto principal de estudo, a voz
humana. Neste capıtulo sera demonstrado detalhes sobre os orgaos responsaveis pela
producao da voz no corpo humano e tambem como todo esse processo de producao acon-
tece. Sera abordado tambem o conceito de modelo fonte-filtro.
3.1 PRODUCAO DA VOZ
A producao da voz humana e um processo muito complexo que envolve o traba-
lho simultaneo de varios musculos e orgaos do sistema nervoso, respiratorio e digestivo
humano. E descrito a seguir como todo esse processo ocorre.
Os componentes fisiologicos responsaveis pela producao da voz podem ser dividi-
dos em tres grupos, ou subsistemas[9][6]:
• Subsistema Respiratorio: Inclui os pulmoes e outros musculos do sistema respi-
ratorio.
• Subsistema Larıngeo: Inclui os musculos e ligamentos da laringe, entre eles, as
cordas vocais.
• Subsistema Supralarıngeo: E composto pelas regioes faringal, bucal e nasal.
Figura 3.1: Sistema de producao da voz humana.[6]
3.1.1 Subsistema Respiratorio
A funcao basica do subsistema respiratorio e gerar um fluxo de ar que sera res-
ponsavel por gerar toda a energia utilizada pelo processo de producao da voz.
Ao realizarmos a inspiracao do ar, uma forca muscular e usada para encher os
pulmoes. Para isso, os pulmoes se expandem gerando uma energia elastica que sera
liberada durante o movimento de expiracao, gerando o fluxo de ar, que e enviado atraves
da traqueia ate a laringe. E este fluxo de ar que ira gerar a voz.
3.1.2 Subsistema Larıngeo
Este subsistema, composto basicamente pela laringe, tem como principal funcao
exercer a fonacao, ou seja, realizar modificacoes no fluxo de ar enviado pelos pulmoes
gerando diferentes pulsos de ar, de acordo com cada realizacao fonetica desejada.
A laringe e um curto canal que se encontra no pescoco adiante do esofago, e
alem de exercer papel indispensavel na producao da fala, a laringe tambem tem funcoes
importantes que mantem o bom funcionamento dos sistemas respiratorio e digestivo. Uma
dessas funcoes e, durante o processo de degluticao, bloquear a traqueia e abrir a passagem
7
para o esofago, impedindo assim que o alimento entre nas vias respiratorias.
Dois componentes do subsistema Larıngeo sao de grande importancia para a
producao da voz, sao eles: A glote e as cordas vocais (ou pregas vocais). A glote e um
pequeno espaco de formato triangular entre as cordas vocais. O ar enviado pelos pulmoes
passam atraves da glote, e dependendo do grau de abertura das cordas vocais, diferentes
tipos do fonacao sao gerados. Podemos citar tres tipos simples de fonacao[6]:
• Ausencia de voz (Voiceless)
• Cochicho (Whisper)
• Presenca de voz (Voicing)
Durante a fonacao do tipo ‘ausencia de voz’ e do tipo ‘cochicho’, as cordas vocais
estao separadas uma das outras, ou seja, o fluxo de ar ira passar atraves da glote aberta,
criando pouca ou nenhuma resistencia. A principal diferenca entre a ausencia de voz e o
cochicho e o grau de abertura da glote. No cochicho, as cordas vocais estao mais proximas,
o que causa uma certa turbulencia no ar, produzindo sons conhecidos como cochicho ou
sussurro. Ja durante a fonacao de ausencia de voz, as cordas vocais estao bem separadas,
permitindo uma maior abertura da glote, gerando praticamente nenhuma turbulencia do
ar.
O tipo de fonacao com presenca de voz e o mais complexo. Esta fonacao e gerada
atraves de uma sequencia de movimentos de abertura e de fechamento da glote atraves
de diferentes tensoes nas cordas vocais. Gerando assim diferentes formas de vibracao das
cordas vocais.
A frequencia com que as cordas vocais vibram e conhecida como frequencia fun-
damental, ou apenas F0. A inversa de F0 e o tempo que leva o ciclo de uma abertura e
de um fechamento da glote. Frequencias fundamentais variam entre mulheres, homens e
criancas devido ao fato de cada um ter cordas vocais de diferentes tamanhos. As mulhe-
res geralmente tem cordas vocais menores do que as dos homens, e por isso, na maioria
das vezes possuem frequencias fundamentais maiores. O tamanho das cordas vocais das
criancas e ainda menor do que o das mulheres.
8
3.1.3 Subsistema Supralarıngeo
Finalizando o processo de producao da voz, chegamos a ultima etapa, o subsis-
tema supralarıngeo, o mais importante e mais complexo de todo esse processo.
O subsistema supralarıngeo, e tambem conhecido como trato vocal. Trato vocal e
um termo generico que se refere aos orgaos produtores de voz que estao acima da laringe.
Esses orgaos podem ser divididos em tres cavidades: faringal, oral e nasal.
As partes do trato vocal, servem como o que chamamos de articuladores. Cada
movimento dos articuladores, gera uma modulacao no ar proveniente da laringe, resul-
tando no som desejado pelo locutor.
O articulador mais flexıvel e, sem duvida, a lıngua, pois pode assumir diferentes
formas e posicoes, gerando os mais diversos sons. Como exemplo de movimento de arti-
culadores, podemos utilizar um dos movimentos que pode ser gerado pela lıngua, quando
apenas uma pequena abertura para a passagem de ar e deixada entre a propria lıngua e o
ceu da boca, gerando o que conhecemos por Consoante fricativa[9]. As fricativas sao con-
soantes produzidas pela passagem do ar atraves de um canal estreito feito pela colocacao
de dois articuladores proximos um ao outro. Um exemplo de consoante fricativa, pode
ser observado no inıcio da pronuncia da palavra “Som”, no portugues brasileiro. Essa
fricativa e descrita por [s].
3.2 MODELO FONTE - FILTRO (SOURCE - FILTER)
A producao da voz humana pode ser modelada por um sistema conhecido como
Fonte-Filtro[9]. Este sistema considera que todo o processo de producao da voz pode ser
aproximado por um modelo fısico que contenha: uma fonte geradora, no caso o fluxo de
ar que passa pela laringe, e filtros acusticos que representam o trato vocal. Esses filtros
podem ser representados por uma serie de tubos de raios variaveis.
Cada tubo, por efeito de ressonancia, e capaz de realizar mudancas nas frequencias
do som, transformando-o, realizando a mesma funcao que todo o trato vocal. A figura
3.2 mostra um diagrama que representa o modelo fonte-filtro.
9
Figura 3.2: Diagrama do modelo fonte-filtro de producao de voz[6].
Muitos processamentos de voz sao baseados sobre este modelo simples, assim
como a tecnica de predicao linear, descrita no capıtulo 4.
10
11
4 RECONHECIMENTO AUTOMATICO DE LOCUTOR
Neste capıtulo sera apresentado uma descricao sobre o processo de reconhecimento
de locutor, e suas principais etapas.
4.1 PROCESSAMENTO DE VOZ
O processamento de voz tem como objetivo retirar informacoes desejadas a partir
de um sinal de voz. No caso do processo de reconhecimento de locutor, a informacao
desejada e a identidade da pessoa ao qual a voz pertence.
Exitem varios outros processos que derivam do processamento de voz, como por
exemplo, o reconhecimento e a sıntese de fala. Na figura 4.1 temos uma divisao comum
das areas envolvidas no processamento de voz[3].
Figura 4.1: Divisao das areas do processamento de voz.[3]
4.2 CARACTERISTICAS
Sistema de reconhecimento de locutor podem ser descritos de acordo com duas
caracterısticas comuns: tarefa e dependencia de texto.
Existem dois tipos basicos de tarefas:
• Identificacao de locutor
• Verificacao de locutor
A diferenca basica entre as duas tarefas e que na identificacao de locutor, o usuario
que esta tendo sua voz analisada nao afirma quem ele e, e o sistema deve identifica-lo
dentro de um grupo de indivıduos conhecidos. Ja na tarefa de verificacao, o usuario
afirma ter uma certa identidade, e o sistema ira verificar atraves da voz se o usuario
realmente e quem ele afirma ser.
Outra caracterıstica importante e a dependencia de texto. Mas antes de descreve-
la, e interessante entender as fases de um reconhecimento de locutor. Sao duas fases
basicas que acontecem durante o processo: A primeira, conhecida como fase de treina-
mento, e quando cada locutor pronuncia uma serie de frases que sao processadas pelo
sistema. A partir dessas frases, sao retiradas caracterısticas da voz, que serao capazes de
identificar cada locutor. Esta fase e chamada de “fase de treinamento” pois o sistema
esta sendo treinado para reconhecer uma serie de locutores, e esta “aprendendo” como e
a voz de cada um deles.
A outra etapa, a fase de reconhecimento, e quando o usuario pronuncia uma frase
para o sistema, e este ira comparar o sinal de voz com os dados recolhidos na frase de
treinamento, e ira identificar ou verificar o locutor.
A caracterıstica de dependencia de texto afeta ambas as fases de treinamento e
de reconhecimento. Exitem dois tipos de dependencia de texto:
• Dependente de texto
• Independente de texto
Quando um sistema e dito dependente de texto significa que o processo de identi-
ficacao, ou de verificacao, e baseado sempre nas mesma frase dita pelo usuario na fase de
treinamento. Ou seja, o usuario deve ditar sempre a mesma frase, tanto na fase de treina-
mento quanto na fase de reconhecimento. Sendo assim, o sistema e dependente do texto
pronunciado pelo usuario e se um texto diferente for pronunciado, provavelmente algumas
caracterısticas na voz nao serao encontradas pelo sistema, dificultando o reconhecimento.
No caso do processo independente de texto, nao ha ligacao entre a frase usada
para treinar o sistema e a frase dita pelo usuario durante o processo de reconhecimento. O
sistema nao usa caracterısticas da frase dita, como duracao ou pausas, ele apenas analisa
as caracterısticas da voz que nao sao dependentes de texto, ou seja, que nao variam de
uma pronuncia para outra.
12
4.3 VISAO GERAL
E apresentado a seguir uma visao geral de como um sistema de reconhecimento
de locutor trabalha, e as partes que o compoe. E comum dividirmos este tipo de sistema
nas seguintes etapas:
• Aquisicao do Sinal
• Parametrizacao do Sinal
• Criacao de modelos ou Treinamento
• Comparacao e decisao
Figura 4.2: Esquema basico de um sistema de reconhecimento de locutor.[3]
A figura 4.2 apresenta um esquema comum da organizacao de um sistema de
reconhecimento de locutor. A seguir, e apresentada uma breve descricao de cada uma das
etapas do sistema.
4.3.1 Aquisicao do Sinal
A primeira etapa do processo tem a funcao de receber o sinal de voz no formato
analogico, e converte-lo em sinal digital. E tambem durante esta etapa que e executada a
divisao do sinal em pequenas partes de tamanho igual, que chamamos de frames. A divisao
em frames e feita durante a conversao do formato analogico para o formato digital. Uma
outra divisao do sinal, conhecida por windowing, tambem pode ser executada durante
esta etapa.
13
4.3.2 Parametrizacao do Sinal
O proximo passo e parametrizar o sinal, ou seja, retirar as principais carac-
terısticas que possam descrever a voz que esta sendo analisada. Para isso, sobre cada
frame de sinal e executado um processamento que resulta em um conjunto de vetores co-
nhecidos como features. Os valores contidos nestes vetores representam as caracterısticas
retiradas da voz.
4.3.3 Criacao de modelos acusticos
Tanto o processo de identificacao, quanto o de verificacao de locutor, necessitam
que exista um modelo acustico para cada locutor. Este modelo acustico e uma repre-
sentacao digital da voz de um locutor.
O processo de criacao de modelos acusticos e realizado, basicamente, sobre a
analise de varios sinais de voz de um mesmo locutor. Todos esses sinais sao parame-
trizados, gerando um conjunto grande de features. As features sao entao analisadas e
refinadas, restando apenas as caracterısticas que representam melhor a voz do locutor.
4.3.4 Comparacao e decisao
Tendo os modelos acusticos de cada locutor, a ultima etapa e realizar a com-
paracao entre o sinal de voz do locutor desconhecido e os registros presentes nos modelos.
Para o processo de identificacao de locutor, o sinal de voz desconhecido e para-
metrizado e comparado com cada um de todos os modelos. O modelo que apresentar a
melhor, ou maior, semelhanca, indica, a qual locutor a voz analisada pertence.
Ja para o processo de verificacao de locutor, as features do sinal da voz desco-
nhecida sao comparadas apenas com o modelo do locutor que a pessoa que emitiu o sinal
de voz afirma ser. Se a comparacao resultar em um grau de semelhanca maior do que um
certo limiar, entao a verificacao e considerada verdadeira, caso o grau de semelhanca seja
menor do que o limiar estipulado, a verificacao e considerada falsa.
Nas secoes a seguir detalhes e algoritmos de cada uma das etapas sao descritos.
14
4.4 AQUISICAO E TRATAMENTO DO SINAL
A aquisicao do sinal e feita atraves de um microfone que passa as informacoes
para um conversor analogico-digital, transformando o sinal de voz analogico em um sinal
digital, possibilitando assim o seu processamento.
Sinais digitais possuem duas caracterısticas importantes, sao elas:
• Taxa de amostragem: Por se tratar de uma aproximacao do sinal analogico, o
sinal digital e formado por varias amostras retiradas do sinal analogico. A quanti-
dade de amostras presentes em um segundo de sinal digital e conhecida como taxa de
amostragem, medida em Hertz. Quanto maior a taxa de amostragem, mais proxima
e a representacao digital da analogica do sinal.
• Precisao: E o quao preciso uma amostra de sinal pode ser. Geralmente e medida
em tipos computacionais de dados, como por exemplo, ponto-flutuante de 16 bits.
Apos a transformacao da representacao analogica para a representacao digital, o
sinal e entao dividido em pequenas partes com um mesmo numero de amostras. Cada
uma dessas partes e conhecida como frame. Essa e uma divisao padrao feita pelo hard-
ware de som da maioria das maquinas. Ela facilita o processo computacional sobre os
sinais. Porem, processamentos de voz como reconhecimento de locutor, necessitam de
uma divisao um pouco mais aprimorada, que chamamos de windowing.
4.4.1 Windowing
Windowing e processo de divisao do sinal digital em janelas[1]. Essas janelas
podem ser comparadas com o frames, porem possuem duas grandes diferencas:
• Podem conter sobreposicao.
• Executam operacoes matematicas que alteram o sinal.
Sobreposicao e quando uma janela compartilha um certo numero de amostras
com suas janelas adjacentes. Essa tecnica permite que o processamento do sinal tenha
um resultado mais proximo ao que ele teria se processasse o sinal inteiro, sem a divisao
por frames. Pois atraves da sobreposicao as interrupcoes causadas pela divisao em frame
15
e reduzida. A figura 4.3 demonstra um exemplo de divisao de um sinal em janelas com
sobreposicao.
Figura 4.3: Exemplo de windowing de um sinal
Outra caracterısticas das janelas que podem melhorar o processamento de um
sinal e a aplicacao de operacoes matematicas, ou window functions, sobre as amostras da
janela. Essas operacoes matematicas tem como objetivo realcar as amostras que estao
mais ao centro de cada janela, e diminuir as que estao nas extremidades, que assim como
a sobreposicao, reduz a descontinuidade do sinal.
Existem varios tipos de window functions, mas talvez, a mais conhecida seja a
Hamming window, que tem a seguinte expressao matematica:
w[n] = 0.53836− 0.46164 cos
(2πn
N − 1
)(4.1)
Onde N e o tamanho da janela. Para aplicar esta operacao sobre uma janela de
sinal, basta apenas multiplicar o sinal por w[n].
16
Figura 4.4: Exemplo da aplicacao da operacao Hamming window sobre um sinal[6].
4.4.2 Pre-emphasis
Geralmente em processamentos de voz, uma operacao conhecida como pre-
emphasis e executada sobre o sinal antes que ele seja analisado pelo processo desejado.
Pre-emphasis nada mais e do que a aplicacao de um filtro capaz de balancear as altas
frequencias com as relacao as baixas frequencias presentes no sinal.
A razao para realizar esse balanceamento e que, entre a producao da voz humana
e a captacao do sinal pelo microfone, as altas frequencias perdem forca, enquanto as baixas
ficam mais fortes. Na figura 4.5 temos um exemplo de aplicacao deste filtro.
A implementacao de um filtro capaz de realizar o processo de pre-emphasis e
muito simples. Apenas deve-se realizar a seguinte operacao sobre o frame de sinal:
s[n] = s[n]− αs[n− 1] (4.2)
Onde α e um valor estabelecido empiricamente. Um valor comum para α e:
α = 0.91 (4.3)
4.5 PARAMETRIZACAO DO SINAL
Um sinal de voz por si so carrega muita informacao, e nem todas delas podem
ser interessantes para o processo de reconhecimento de locutor, como por exemplo ruıdos
17
Figura 4.5: Pre-emphasis aplicada a um sinal de voz[6].
externos, ou segundos de silencio e etc, alem do que toda essa informacao desnecessaria
ocupa espaco e esforco computacional se for processada[6].
Para reduzir a quantidade de informacoes a serem processadas pelo sistema e
selecionar apenas as informacoes que sao realmente pertinentes para o processo, deve-se
realizar o que chamamos de Feature Extraction, ou Parametrizacao do Sinal.
Nesta fase, o sinal de voz e analisado e reduzido a um conjunto de numeros que
contem a informacao desejada pertencente ao sinal. Esse novo conjunto de numeros e
chamado de Vetor de Features. E interessante que o vetor de features seja muito menor
do que o sinal de voz propriamente dito, a fim de promover um esforco computacional
menor.
Existem muitas formas de retirar features de um sinal de voz que sejam capazes
de representar a voz de um locutor. Algumas delas sao[3][6]:
• Predicao Linear
18
• Mel-Cepstrum
• Filterbanks
Muitos trabalhos tem demonstrado que a tecnica de predicao linear apresenta
bons resultados na tarefa de reconhecimento de locutor[10][3][6][2]. Por esse motivo, essa
e a feature escolhida para ser abordada neste trabalho.
4.5.1 Predicao Linear (Linear Prediction)
Sabe-se que a partir de um sinal sn e possıvel modelar uma aproximacao da fonte
geradora do sinal. No caso de um sinal de voz, a aproximacao da fonte geradora pode ser
comparada ao modelo fonte-filtro, apresentado no capıtulo 3.
Desta forma, a partir de um sinal de voz de um locutor, podemos gerar uma
aproximacao do modelo fonte-filtro responsavel pela producao da voz, criando uma boa
representacao da voz do locutor.
A tecnica utilizada para modelar a aproximacao da fonte geradora de um sinal e
conhecida como predicao linear.
4.5.1.1 Definicao
A ideia principal em que a Predicao Linear se baseia e de que as amostras ad-
jacentes de um sinal sao fortemente relacionadas, e que a partir disso, e possıvel realizar
uma previsao do comportamento do Sinal. A regra basica da Predicao Linear define que
o valor de cada amostra de um sinal pode ser aproximado a partir dos valores de algumas
amostras anteriores[8],[3],[6], ou seja:
sn ≈ −p∑
k=1
aksn−k +Gun (4.4)
Onde un e o sinal de entrada no sistema, G e um fator escalar e p e definido como
a Ordem da Predicao (Prediction Order), que estipula o numero de amostras anteriores
que devem ser utilizadas na predicao de sn. Em aplicacoes que envolvem a analise de
sinais de voz, geralmente a entrada do sistema un e desconhecida, logo, e desconsiderada.
sn ≈ −p∑
k=1
aksn−k (4.5)
19
O objetivo da Predicao Linear e determinar os valores dos Coeficientes de
Predicao{ak | k = 1, . . . , p
}de uma forma que o erro da predicao seja o menor possıvel.
O erro da predicao e obtido atraves da diferenca entre o valor real da amostra e
o valor obtido pela predicao.
en = sn − (−p∑
k=1
aksn−k) (4.6)
en = sn +
p∑k=1
aksn−k (4.7)
Ou ainda:
sn = −p∑
k=1
aksn−k + en (4.8)
Podemos observar nas equacoes 4.4 e 4.8 que o erro da predicao pode ser compa-
rado a entrada do sistema un que foi ignorada anteriormente, ou seja, o erro da predicao
e totalmente formado pela informacao do sinal que foi desconsiderada. Se conseguir-
mos reduzir ao maximo en teremos uma estimativa muito proximo do sinal real, mesmo
desconsiderando a informacao da entrada do sistema.
A fim de reduzir ao maximo o en, e interessante analisar o MSE - Mean Squared
Error - da expressao 4.7, que e representado por:
E =∑
n
e2n
E =∑
n
[sn +
p∑k=1
aksn−k
]2
(4.9)
O valor mınimo de E ocorrera quando a derivada para cada ak for igual a
zero[3][6].
∂E
∂ak
= 0 ∨ k = 1, . . . , p
O que resulta em[3][6]:
p∑k=1
ak
∑n
sn−ksn−i = −∑
n
snsn−i ∨ i = 1, 2, . . . , p (4.10)
20
Se escrevermos a expressao 4.10 para cada k = 1, 2, . . . , p, teremos um sistema
composto de varias equacoes conhecidas como equacoes AR. Essas equacoes compoe o que
chamamos de modelo AR - Autoregressive Model. Resolvendo as equacoes AR teremos os
valores para os coeficientes da predicao.
Dois metodos de resolucao sao geralmente usados para resolver Modelos AR, sao
eles:
• Metodo da autocorrelacao
• Metodo da covariancia
Embora em alguns casos o metodo da covariancia apresente alguns resultados
melhores[9], o metodo da autocorrelacao tem um custo computacional menor, e sempre
apresenta bons resultados. Por esses motivos, neste trabalho, abordaremos apenas o
metodo da autocorrelacao.
4.5.1.2 Metodo da Autocorrelacao
Uma tecnica existente no campo da Estatıstica, chamada autocorrelacao[11] e
muito usada em varios outros campos. E um desses campos e a analise de sinais.
A autocorrelacao de uma serie sn, de tamanho N , num deslocamento k no tempo,
pode ser dada por:
rk =N∑
n=k
snsn−k (4.11)
A fim de evitar o somatorio infinito e de trazer os calculos para um ambiente
discreto, e interessante aplicar uma janela, ou window, como visto em 4.4.1. Sendo assim,
temos a seguinte equacao para o calculo da autocorrelacao do sinal:
rk =N−1−k∑
n=k
snsn−k (4.12)
Considerando a equacao 4.12, podemos reescrever a equacao 4.10 da seguinte
maneira:
p∑k=1
r(i−k)ak = −ri ∨ i = 1, 2, . . . , p (4.13)
21
Reescrevendo a expressao 4.13 na forma matricial teremos as equacoes AR.
r0 r1 r2 . . . rp−1
r1 r0 r1 . . . rp−2
r2 r1 r0 . . . rp−3
......
.... . .
...
rp−1 rp−2 rp−3 . . . r0
a1
a2
a3
...
ap
= −
r1
r2
r3
...
rp
(4.14)
Resolvendo a equacao 4.14 teremos os valores dos coeficientes de predicao,
{a1, a2, a3, . . . , ap} que representam o modelo da fonte geradora do sinal , alcancando
assim, o objetivo da predicao Linear. Para isto podemos usar um algoritmo conhecido
como Algoritmo Recursivo de Levinson-Durbin. Este algoritmo e o metodo mais eficiente
para resolver expressoes como 4.14.
O algoritmo de Levinson-Durbin recebe como entrada a sequencia de autocor-
relacao do sinal, e retorna os seguintes dados:
• Coeficientes da predicao.
• Coeficientes de reflexao.
• Coeficientes LAR - Log Area Ratio.
Temos a seguir uma breve descricao matematica do algoritmo Levinson-Durbin:
E0 = R0
ki = − [Ri+Pi−1
j=1 ai−1j Ri−j]
Ei−1∨1 ≤ i ≤ p
aii = ki
a(i)j = ai−1
j + kia(i−1)i−j ∨1 ≤ j ≤ i− 1
Ei = (1− k2i )Ei−1
∨ i = 1, 2, . . . , p
aj = a(p)j ∨ 1 ≤ j ≤ p.
Os coeficientes LAR, gm, nao sao retornados diretamente pelo algoritmo mas
podem ser obtidos atraves da seguinte expressao:
gm = log
(1− km
1 + km
)(4.15)
22
Todos estes coeficientes podem ser usados como features de um sinal de voz[3][6].
4.6 TOMADA DE DECISAO
E nesta etapa do processo que, atraves das caracterısticas retiradas do sinal de
voz, ocorre a tomada de decisao. Para esta decisao as features do sinal que esta sendo
analisado sao comparadas com modelos previamente criados para cada um dos locuto-
res. Antes de demonstrarmos como essa comparacao entre feature e modelo ocorre, e
interessante descrever como um modelo e, e como ele e criado.
4.6.1 Modelos Acusticos
De uma forma geral, um modelo acustico e um conjunto de features retiradas de
uma serie de sinais de voz de um mesmo locutor. Essas features podem ser expressas na
forma de vetores de numeros reais. No caso das features retiradas atraves do processo de
predicao linear, cada vetor e composto por p numeros, onde p e a ordem da predicao.
Esse conjunto de vetores teoricamente representa a voz, ou as caracterısticas da
voz de um locutor. Porem como varios sinais de voz sao analisados na criacao de um
modelo, a quantidade de features geradas pode ser muito grande, o que pode levar a
problemas tanto de tempo computacional quanto de espaco para armazenar todos esses
dados. Outro ponto a ser observado e o fato de que nem todas as features extraıdas dos
sinais podem ser consideradas relevantes, pois podem ter sido computadas a partir de um
trecho de sinal com ruıdo ou outro anomalia que nao condiz com as caracterısticas usuais
do locutor.
A fim de reduzir o tamanho dos modelos e ao mesmo tempo retirar informacoes
menos relevantes sobre o locutor, varias tecnicas tem sido propostas. Vamos apresentar
aqui uma dessas tecnicas, conhecida como vector quantization ou quantizacao vetorial.
4.6.1.1 Vector Quantization
Vector quantization, VQ, e uma das muitas tecnicas de quantizacao conhecidas.
Essas tecnicas tem como objetivo executar a seguinte tarefa: Mapear um conjunto de
vetores de dimensao k, espaco Rk, em um conjunto finito de vetores Y = {yi | i =
23
1, 2, . . . , N}, onde cada vetor yi e chamado de code vector e o conjunto de todos os code
vectors e chamado de code book. N e o tamanho do code book.
Em outras palavras a tecnica de VQ ira gerar a melhor aproximacao de tamanho
N para um certo conjunto de dados de entrada.
Figura 4.6: Exemplo de vector quantization para dimensao R2[4].
Na figura 4.6 podemos observar um exemplo da execucao da tecnica de vector
quantization para um conjunto de vetores de dimensao 2. Na figura, o conjunto de vetores
de entrada sao representados pelos pontos na cor verde. Os pontos em vermelho sao os
code vectors. Ou seja, todos os vetores de entrada presentes dentro de um dos polıgonos
azuis serao representados, ou aproximados, pelo code vector que representa este polıgono.
Dessa maneira todo o conjunto de entrada foi aproximado para um conjunto muito menor
de vetores.
24
4.6.2 Decisao
Apos criar os modelos para cada locutor, e retirar as features do sinal que esta
sendo analisado, estamos prontos para executar a tomada de decisao.
Basicamente nesta etapa do processo devemos verificar com qual dos modelos o
conjunto de features retirados do sinal se aproxima mais. O grau de aproximacao, ou
grau de semelhanca, entre um conjunto de features e um modelo acustico pode ser feito
de varias maneiras. A forma mais conhecida e executando o calculo de distorcao, ou
distancia. Considere um vetor de features xi e um modelo C = {cj | j = 1, 2, . . . , N} de
tamanho N . A distorcao d do vetor xi para o modelo C e:
D(xi, C) = mincj∈C
d(xi, cj) (4.16)
Onde d(x, y) e a distorcao direta entre dois vetores. Essa distorcao pode ser
calculada de varias formas. A mais usual e simples e utilizando distancia euclidiana.
Na equacao 4.16 calculamos a distorcao de um vetor de features para um modelo,
porem ao parametrizar um sinal temos como resultado um conjunto de varios vetores. O
grau de semelhanca entre o sinal analisado e um modelo pode ser calculado pela distorcao
media entre um conjunto de vetores de features X = {xi | i = 1, 2, . . . ,M} de tamanho
M e um modelo. Esta distorcao media Dm e calculada por:
Dm(X,C) =1
M
M∑i=1
D(xi, C) (4.17)
O valor da distorcao media pode ser usado como o grau de semelhanca entre
um sinal analisado e um modelo acustico. Quanto menor a distorcao, maior o grau de
semelhanca. Por se tratar de uma especie de pontuacao, o termo distorcao media e
normalmente substituıdo pelo termo score. Sendo assim, o score de conjunto de features
X para um modelo C, pode ser considerado como o valor da distorcao media entre os
conjuntos:
score(X,C) = Dm(X,C) (4.18)
O calculo do score e o mesmo, tanto para o procedimento de identificacao de
locutor quanto para o procedimento de verificacao. A diferenca entre esse procedimentos
25
acontece no passo seguinte a estimativa do score.
Para realizar a identificacao de um locutor, e necessario realizar o calculo do
score das features que estao sendo analisadas com todos os modelos presentes no sistema.
O modelo que apresentar o menor score, ou seja, a menor distorcao para as features
analisadas indicara o nome do provavel locutor ao qual a voz em questao pertence. Logo,
o ındice, ou numero, i que indica o locutor escolhido, e dado por:
i∗ = arg minjscore(X,Sj) (4.19)
No processo de verificacao, o sistema apenas compara o score do sinal analisado
com o modelo do locutor que o usuario afirma ser. Desta forma, se o score obtido for menor
do que um certo limiar Θ, o sistema confirma a identidade do usuario, caso contrario, a
identidade e negada.
score(X,Sj) =
≤ Θ confirma identidade
> Θ nega identidade(4.20)
O calculo do limiar e um passo importante do treinamento de um sistema verifi-
cador de locutor[2]. Varias tecnicas para este calculo tem sido propostas. No capıtulo 6
algumas dessas tecnicas sao descritas.
26
27
5 O SISTEMA
Como citado anteriormente, o objetivo deste trabalho e apresentar um sistema
capaz de realizar o reconhecimento automatico de locutor em tempo real. Neste capıtulo
vamos explorar o sistema em si, abordando suas principais caracterısticas como imple-
mentacao, algoritmos usados, entradas e saıdas do sistema, entre outros pontos interes-
santes.
5.1 VISAO GERAL
O funcionamento do sistema pode ser dividido em uma serie de pequenos passos.
Primeiramente o sinal de voz e adquirido atraves de um microfone ou de arquivos de audio
previamente gravados. Este sinal de voz e entao dividido em frames, e cada um desses
frames sera analisado separadamente.
A analise de um quadro de voz segue com a parametrizacao do sinal, ou seja,
e executada a retirada das caracterısticas (features) desse pedaco de sinal. Essas carac-
terısticas serao usadas para criar o modelo de voz para o locutor que forneceu o sinal, ou
serao comparadas com os modelos ja criados para diferentes locutores, a fim de realizar o
reconhecimento do locutor.
5.2 MODULOS
Para garantir que o sistema tenha funcionamento em tempo real e com a menor
latencia possıvel, todo o processo foi divido em tres grandes modulos, cada um com funcoes
especıficas. Sao eles:
• Entrada e Saıda: Modulo responsavel por toda comunicacao do software com o
hardware de som. Tambem realiza um pre-processamento do sinal.
• Parametrizador: Realiza a parametrizacao do sinal de voz, ou seja, gera o conjunto
de features.
• Comparador: Compara as features geradas pelo Modulo Parametrizador com os
modelos acusticos, e realiza a tomada de decisao ou de reconhecimento. Tambem e
responsavel pela criacao dos modelos.
A figura 5.2 demonstra uma visao geral dos modulos quem compoe o software.
Antes de abordamos cada modulo com mais detalhes, e interessante entendermos
como e realizada a comunicacao entre cada um dos modulos.
Figura 5.1: Visao geral dos modulos do sistema
5.2.1 Comunicacao entre modulos
Para realizar a tarefa de transmissao de informacoes entre os modulos, uma estru-
tura abstrata de dados foi criada. Esta estrutura e semelhante a implementacao de uma
fila de dados, com a diferenca de que ela esta preparada para trabalhar sob um ambiente
de concorrencia, ou seja, diferentes processos podem acessa-la ao mesmo tempo, sem que
a consistencia dos dados seja afetada.
Para garantir o funcionamento em um ambiente de possıvel concorrencia, apenas
uma regra foi estabelecida sobre o funcionamento dessa estrutura de dados:
Se uma fila Q estiver vazia e um processo P requisitar algum dado de Q, entao
P ficara parado ate que algum outro processo insira algum dado em Q.
O uso desta estrutura de dados e o unico metodo de comunicacao entre os modulos
do sistema, nao importando o tipo dos dados transmitidos. Este modelo de comunicacao
garante que cada modulo possa trabalhar independentemente e sempre com uma sincro-
nizacao viavel, pois se um processo esta sem dados para trabalhar, ele ira aguardar ate
que novos dados sejam disponibilizados para o processamento, e na situacao contraria, se
28
um processo esta computando dados, outros processos podem enviar novas informacoes
para o processo ocupado sem a preocupacao com a perda desses dados, pois eles ficarao
armazenados na fila ate que o processo ocupado possa atender as solicitacoes e processar
os dados da fila.
5.3 MODULO ENTRADA E SAIDA
Este modulo tem as seguintes funcoes:
• Realizar toda a comunicacao com o hardware de som, tanto para captacao quanto
para a reproducao de sons.
• Ler arquivos de audio quando necessario.
• Identificar frames de sinal que contem voz.
• Resampling.
• Repassar frames de sinal que contem voz para o modulo Parametrizador.
5.3.1 Interacao com hardware de som
Toda comunicacao do sistema com o hardware de som e feito com base na bi-
blioteca RtAudio - Real Time Audio1. Esta biblioteca e composta por um conjunto de
funcoes, nas linguagens de programacao C e C++ programacao, que auxiliam o contato
de processos com o hardware de som em sistemas Windows, Linux e MacOS.
E atraves destas funcoes que o sistema capta os sinais do microfone e tambem
reproduz estes sinais quando solicitado pelo usuario.
5.3.2 Entrada de dados
Duas entradas de dados podem ser usadas para alimentar o sistema, uma delas
como foi vista, e a entrada de sinal a partir de um microfone ligado ao computador.
A outra forma de entrada de dados e composta por uma lista de arquivos WAV
passados pela linha de comando. O sistema ira interpretar o sinais presentes nesses arqui-
vos como se fossem um unico sinal passado pelo microfone. Dessa forma, nao ha diferenca
1http://www.music.mcgill.ca/~gary/rtaudio/
29
no processamento das duas entradas de dados. Apos a leitura da lista de arquivos, ou a
captacao do sinal atraves do microfone, o processamento e o mesmo.
5.3.3 Resampling
Resampling nada mais e do que a alteracao da taxa de amostragem de um sinal.
Isso pode ser usado para diminuir a quantidade de dados contida no sinal, ou tambem,
para aumenta-la. Ha diversos motivos para se fazer uso do Resampling. No nosso caso
ele foi usado para realizar testes do sistema com sinais de voz com taxas de amostragem
menores. Mais detalhes sobre essa operacao serao vistos no capıtulo 6.
5.3.4 Deteccao de Voz
Ao analisar um sinal de voz, e interessante que as partes do sinal que nao conte-
nham efetivamente fragmentos de voz sejam descartados da analise, para que ruıdos nao
atrapalhem no processo. Por esse motivo, um algoritmo de deteccao de voz foi criado
para que o sistema apenas processe as partes do sinal que contenham voz.
Figura 5.2: Divisao de um sinal de voz em segmentos de voz (areas verdes) de acordo coma amplitude.
O algoritmo de deteccao de voz criado e baseado na amplitude do sinal. O sistema
considera que o sinal esta livre de ruıdos que tenham uma amplitude maior do que a da
voz, ou seja, as partes do sinal que contem maior amplitude sao identificadas como as
partes que contem voz.
Para encontrar as partes do sinal que tem uma maior amplitude, um limiar base-
ado na amplitude media de um sinal que contenha apenas silencio e de um que contenha
apenas voz e calculado.
Essas amostras de sinal de silencio e de voz sao passados pelo usuario para o
sistema, seja por arquivo de audio ou por microfone. Apos isso o sistema analisa as duas
amostras, e retira o valor maximo de amplitude de cada uma.
30
Com os valores maximos de amplitude do sinal sem a presenca de voz, SM , e do
sinal com presenca de voz, VM , passados pelo usuario, o sistema calcula o limiar L da
seguinte forma:
L =4SM + VM
5(5.1)
Tendo o limiar L calculado, o sistema quando esta em funcionamento, analisa o
valor maximo de amplitude de cada frame do sinal. Se este valor maximo de amplitude
for maior do que o limiar calculado, entao o frame sera considerado como sendo um frame
de voz. Caso o valor maximo seja menor do que o limiar, entao o frame sera considerado
como um frame contendo apenas silencio.
Dessa forma, o algoritmo e capaz de identificar se um dado frame contem sinal
de voz ou nao, porem, apenas isso nao e suficiente para identificar sinais de voz humana
com qualidade. Nao e suficiente pois se analisarmos o tamanho de um frame de sinal
perceberemos que a quantidade de informacao presente neste frame e muito pequena. No
nosso sistema, o tamanho de um frame e de 512 amostras, e a uma taxa de amostragem
de 48000Hz, podemos concluir que um frame contem apenas cerca de 0.010 segundos
de audio. Sendo assim, se o locutor pronunciar uma palavra que contenha uma pequena
pausa entre as sılabas, o algoritmo de deteccao de voz provavelmente ira reconhecer varios
segmentos diferentes de voz para apenas uma palavra. Isso e de certa forma ruim para
a identificacao de locutor, ja que pequenas pausas na diccao estao diretamente ligadas
a propriedades unicas da voz de cada locutor, como sotaque e entonacao, e com o algo-
ritmo trabalhando desta forma, toda essa informacao capaz de identificar um locutor sera
perdida.
Para que isto nao ocorra, uma melhora ao algoritmo de deteccao de voz foi rea-
lizada. Esta melhora consiste em que o algoritmo nao deve considerar que um segmento
de voz seja formado apenas por um frame, mas sim por uma lista deles. Dessa forma
nao temos mais um algoritmo de deteccao de voz, mas sim um algoritmo de deteccao de
segmentos de voz.
Cada frame continua sendo avaliado separadamente, mas o algoritmo apenas ira
considerar que o segmento de voz acabou se houver um certo numero de frames sem voz
consecutivos. O mesmo acontece para o inıcio de um segmento. O algoritmo considera
que um segmento de voz foi iniciado apenas se existir um certo numero de frames com
31
voz consecutivos.
A quantidade de frames de voz consecutivos para determinar o inıcio de um
segmento de voz, LV , e o numero de frames sem voz consecutivos para determinar o final
de um segmento de voz, LS foram definidos empiricamente, e receberam os seguintes
valores:
LV = 5 frames
LS = 47 frames
Sendo assim, um segmento de voz so sera iniciado se houver registro de voz por
mais de 0.053 segundos, o que impede que pequenos ruıdos, como o bater da mao em um
microfone, sejam reconhecidos como um trecho de voz que foi iniciado. E um segmento
de voz so sera considerado como encerrado se houver silencio por mais de 0.5 segundos
consecutivos. Permitindo assim pequenas pausas entre as sılabas e ate mesmo entre
palavras, garantindo que a maioria das caracterısticas da voz do locutor sejam incluıdas
na analise do sistema.
5.4 MODULO PARAMETRIZADOR
Os dados retornados pelo modulo de entrada e saıda sao os segmentos de voz.
Estes segmentos sao enviados ao modulo parametrizador, o qual tem as seguintes funcoes:
• Realizar o windowing dos fragmentos de voz passados pelo modulo de entrada e
saıda.
• Calcular os coeficientes da Predicao Linear para cada janela de sinal.
• Enviar os coeficientes calculados para o modulo comparador.
5.4.1 Windowing
Assim que o modulo Parametrizador recebe os frames de segmentos de voz envi-
ados pelo modulo de Entrada e Saıda, e realizada a divisao desses segmentos em janelas.
Neste trabalho, cada janela e composta por 1440 amostras, e uma sobreposicao de 960
32
amostras e realizada sobre as janelas adjacentes. Ou seja, com uma taxa de amostra-
gem de 48000Hz, uma janela em nosso sistema tem 30 milissegundos de sinal e cada
sobreposicao tem uma duracao de 20 milissegundos.
5.4.2 Calculo dos Coeficientes de Predicao Linear
Para cada janela de 30 milissegundos de sinal gerada, um vetor de coeficientes
de predicao linear e calculado. Para realizar este calculo, foi implementado o algoritmo
recursivo de Levinson-Durbin[9][3]. Como sabemos este algoritmo e capaz de retornar 3
tipos de coeficientes de predicao linear: Coeficientes da predicao linear puros, coeficientes
de reflexao e coeficiente LAR.
Dessa forma, o sistema e capaz de utilizar qualquer um desses tres tipos de coefi-
cientes para realizar a tarefa de reconhecimento de locutor. No capitulo 6 apresentaremos
os resultados de testes para cada um desses tipos de coeficientes, e tambem para diferentes
valores de ordem da predicao linear.
Terminado o calculo dos coeficientes, o vetor criado e entao passado ao modulo
Comparador, que ira concluir o processo de reconhecimento e ira gerar o resultado.
5.5 MODULO COMPARADOR
Chegamos ao ultimo modulo do sistema, o modulo comparador. Aqui sera proces-
sada a tomada de decisao, tanto para a verificacao, quanto para a identificacao de locutor.
Outra tarefa muito importante realizada por este modulo e a criacao e a manipulacao de
modelos.
5.5.1 Criacao de Modelos
Antes de realizar o processo de identificacao ou de verificacao de locutor, e ne-
cessario que o sistema seja executado no modo de treinamento, ou seja, em um modo em
que o objetivo seja a criacao dos modelos de voz de cada locutor.
Quando o sistema esta sendo executado no modo de treinamento, os modulos de
Entrada e Saıda e Parametrizador funcionam da mesma maneira, sem alteracao alguma,
o unico modulo que sofre mudanca no seu funcionamento e o modulo Comparador. Ao
33
receber os vetores de features do modulo Parametrizador, o modulo Comparador ira exe-
cutar um algoritmo de quantizacao que ira retornar os vetores de features que melhor
representam os vetores extraıdos da analise da voz de cada locutor.
A tecnica de quantizacao utilizada pelo sistema e a vector quantization descrita
no capıtulo 4. Exitem varias propostas de implementacao para algoritmos de vector
quantization. A implementacao contida no sistema foi baseada no algoritmo conhecido
por LBG, descrito em [7].
O quadro a seguir mostra a organizacao de um arquivo de modelo utilizado pelo
sistema:
<NUMERO DE LOCUTORES>
<TAMANHO DO CODEBOOK> <NOME DO LOCUTOR> <FEATURE> <ORDEM>
<VALOR1> <VALOR2> ................ <VALOR ORDEM -1>
. . .
. . .
. . .
. . .
. . .
<VALOR1> <VALOR2> ................ <VALOR ORDEM -1>
O quadro a seguir demonstra um trecho de um arquivo de modelo utilizado em
um dos testes do sistema:
34
17
64 Aaron LPC 5
-0.811847 0.217917 -0.247106 -0.345779 0.502136
-1.052371 0.317633 -0.308911 -0.301327 0.440607
-1.547446 0.917600 -0.477456 0.035604 0.179634
-1.633731 0.873410 -0.201429 -0.094439 0.149069
-1.394727 0.374604 0.151933 -0.116509 0.081577
-1.449139 0.523028 -0.005125 -0.056763 0.065776
-1.461144 0.681364 -0.156584 -0.066370 0.065097
-1.399876 0.784284 -0.309477 -0.010751 -0.002225
. . .
. . .
. . .
. . .
5.5.2 Tomada de decisao
Depois de gerar o modelo de voz para todos os locutores, o sistema esta pronto
para ser executado nos modos de identificacao ou de verificacao.
5.5.2.1 Identificacao de Locutor
O processo de identificacao tem como objetivo identificar dentre quais locutores
uma certa voz se aproxima mais. Ou seja, nenhuma identificacao previa do locutor e
informada e o sistema deve comparar as features retiradas da voz com os modelos de
todos os locutores, e eleger um como sendo o proprietario da voz testada.
5.5.2.2 Verificacao de Locutor
No modo de verificacao de locutor, o sistema recebe uma pre-identificacao do
locutor, no caso, o nome do locutor, e ira verificar se o locutor realmente e quem ele diz
ser.
35
36
6 TESTES E RESULTADOS
Nesse capıtulo sao apresentados testes executados sobre o sistema e seus resulta-
dos. E apresentado tambem uma analise sobre esses resultados.
Foram realizados diferentes tipos de testes, tanto para a tarefa de verificacao de
locutor como para a tarefa de identificacao de locutor.
Nos testes de identificacao de locutor, o objetivo foi realizar uma variacao dos
parametros do sistema a fim de gerar a melhor combinacao empiricamente.
Nos testes de verificacao de locutor algumas alternativas de calculo de limiar
foram testadas e analisadas.
6.1 BASE DE TESTES
Foram usadas duas bases de testes durante a avaliacao do sistema. Uma delas
contendo 25 locutores (15 do sexo masculino e 10 do sexo feminino) e a outra contendo
50 locutores (31 do sexo masculino e 19 do sexo feminino).
Ambas as bases de testes foram criadas a partir de arquivos oferecidos pelo projeto
VoxForge1. VoxForge e um projeto que tem como objeto disponibilizar arquivos de audio
contendo voz e distribuı-los de uma forma gratuita e aberta ao publico. Todos os arquivos
contidos no projeto sao gravados por voluntarios por todo o mundo.
Os arquivos de voz utilizados para a criacao das bases de testes tem as seguintes
caracterısticas:
• Cada arquivo contem uma frase ditada pelo locutor na lıngua inglesa, porem, com
sotaques variados.
• Os arquivos tem duracao de no maximo 5 segundos.
• Taxa de amostragem de 48000 Hz.
• 16 bits de precisao em ponto flutuante.
Cada locutor presente na base de testes possui um conjunto total de dez frases
diferentes pronunciadas. Cinco utilizadas para a fase de treinamento do sistema, e as
1http://www.voxforge.org
outras cinco utilizadas na fase de testes. Dessa forma podemos ter a certeza de que o
sistema e independente de texto.
6.2 TESTES DE IDENTIFICACAO DE LOCUTOR
Sao apresentados a seguir os testes realizados para a tarefa de identificacao de
locutor. Durante esses testes, os seguintes parametros do sistema foram avaliados e alte-
rados:
• Tipo de coeficiente utilizado
• Ordem da predicao linear
• Tamanho do modelo acustico
A seguir sao mostrados os resultados para cada um dos tres tipos de coeficientes
usados: Coeficientes da predicao linear, coeficientes de reflexao e coeficientes LAR. Apos,
uma comparacao entre os melhores resultados de cada coeficiente e apresentada.
Cada um dos tipos coeficientes foram testados com diferentes valores de ordem
de predicao e de tamanho de modelo acustico. Os valores de ordem de predicao variam
de 5 a 30 e para cada um desses valores os seguintes tamanhos de modelo acustico foram
utilizados: 8, 16, 32, 64, 128 e 256.
6.2.1 Coeficiente da predicao linear
Taxa de erro apresentada pelo coeficiente de predicao para cada tamanho de
modelo acustico:
37
Figura 6.1: Resultados para a tarefa de identificacao de locutor usando coeficiente depredicao linear e diferentes tamanhos de modelos. Base de 25 locutores.
Figura 6.2: Resultados para a tarefa de identificacao de locutor usando coeficiente depredicao linear e diferentes tamanhos de modelos. Base de 50 locutores.
38
Analisando os graficos 6.1 e 6.2 e possıvel notar que com o aumento do tamanho
do modelo acustico temos uma grande reducao na taxa de erro. E, quanto ao aumento da
ordem de predicao notamos uma grande variacao nos resultados, sendo difıcil fazer uma
afirmacao segura.
As menores taxas de erro obtidas com a base de testes de 25 locutores, para cada
tamanho de modelo acustico com os coeficientes de predicao foram:
Tamanho do modelo acustico Ordem da predicao Taxa de erro8 15 65.69 %16 18 75.18 %32 22 56.93 %64 14 24.08 %128 17 6.56 %256 16 1.45 %
Tabela 6.1: Menores taxas de erros obtidas com o coeficiente de predicao, para a base detestes de 25 locutores.
E para a base de testes de 50 locutores, as menores taxas de erro foram:
Tamanho do modelo acustico Ordem da predicao Taxa de erro8 15 73.04 %16 18 71.63 %32 15 58.86 %64 14 36.52 %128 17 21.27 %256 17 6.73 %
Tabela 6.2: Menores taxas de erros obtidas com o coeficiente de predicao, para a base detestes de 50 locutores.
6.2.2 Coeficiente de reflexao
Taxa de erro apresentada pelo coeficiente de reflexao para cada tamanho de mo-
delo acustico:
39
Figura 6.3: Resultados para a tarefa de identificacao de locutor usando coeficiente dereflexao e diferentes tamanhos de modelos. Base de 25 locutores.
Figura 6.4: Resultados para a tarefa de identificacao de locutor usando coeficiente dereflexao e diferentes tamanhos de modelos. Base de 50 locutores.
40
O mesmo comportamento observado para os coeficientes de predicao pode ser
verificado com os coeficientes de reflexao. Quanto maior o tamanho do modelo acustico,
menor a taxa de erro.
Na figura 6.4 e possıvel perceber uma pequena tendencia de reducao da taxa de
erros com o aumento da ordem de predicao, porem o comportamento geral obtido com a
variacao da ordem de predicao ainda e instavel.
As menores taxas de erro obtidas com a base de testes de 25 locutores, para cada
tamanho de modelo acustico com os coeficientes de reflexao foram:
Tamanho do modelo acustico Ordem da predicao Taxa de erro8 5 76.64 %16 23 82.48 %32 10 66.42 %64 6 37.95 %128 10 16.78 %256 14 0.0 %
Tabela 6.3: Menores taxas de erros obtidas com o coeficiente de reflexao, para a base detestes de 25 locutores.
E para a base de testes de 50 locutores, as menores taxas de erro foram:
Tamanho do modelo acustico Ordem da predicao Taxa de erro8 5 86.52 %16 24 81.91 %32 8 73.40 %64 8 50.70 %128 21 25.88 %256 22 1.77 %
Tabela 6.4: Menores taxas de erros obtidas com o coeficiente de reflexao, para a base detestes de 50 locutores.
6.2.3 Coeficiente LAR
Taxa de erro apresentada pelo coeficiente LAR para cada tamanho de modelo
acustico:
41
Figura 6.5: Resultados para a tarefa de identificacao de locutor usando coeficiente LARe diferentes tamanhos de modelos. Base de 25 locutores.
Figura 6.6: Resultados para a tarefa de identificacao de locutor usando coeficiente LARe diferentes tamanhos de modelos. Base de 50 locutores.
42
Novamente e possıvel constatar que o aumento do tamanho do modelo acustico
utilizado implica em uma reducao significativa da taxa de erros.
As menores taxas de erro obtidas com a base de testes de 25 locutores, para cada
tamanho de modelo acustico com os coeficientes LAR:
Tamanho do modelo acustico Ordem da predicao Taxa de erro8 5 81.75 %16 7 78.83 %32 11 73.72 %64 7 40.14 %128 14 18.97 %256 18 0.0 %
Tabela 6.5: Menores taxas de erros obtidas com o coeficiente LAR, para a base de testesde 25 locutores.
E para a base de testes de 50 locutores, as menores taxas de erro foram:
Tamanho do modelo acustico Ordem da predicao Taxa de erro8 14 87.58 %16 29 82.62 %32 27 76.59 %64 29 52.48 %128 26 26.95 %256 18 1.41 %
Tabela 6.6: Menores taxas de erros obtidas com o coeficiente LAR, para a base de testesde 50 locutores.
6.2.4 Comparacao entre os tipos de coeficientes
Nos graficos a seguir e apresentada uma comparacao entre as taxas de erros
obtidas com os diferentes coeficientes, para modelos de tamanho igual a 128 e 256:
43
Figura 6.7: Comparacao entre coeficientes para a tarefa de identificacao de locutor usandotamanho de modelo igual a 128. Base de 25 locutores.
Figura 6.8: Comparacao entre coeficientes para a tarefa de identificacao de locutor usandotamanho de modelo igual a 256. Base de 25 locutores.
44
Figura 6.9: Comparacao entre coeficientes para a tarefa de identificacao de locutor usandotamanho de modelo igual a 128. Base de 50 locutores.
Figura 6.10: Comparacao entre coeficientes para a tarefa de identificacao de locutorusando tamanho de modelo igual a 256. Base de 50 locutores.
45
6.2.5 Analise dos resultados
De acordo com os experimentos executados e os resultados obtidos, e possıvel
perceber em todos os tipos de coeficientes usados, a medida que o tamanho do modelo
acustico aumenta, uma taxa de erro menor e obtida. O que pode ser explicado pelo fato
de que quanto maior um modelo, mais informacao pode ser armazenada, discriminando
melhor os locutores.
Quanto a variacao da ordem de predicao linear fica difıcil percebermos um padrao
mais claro. O que pode ser observado e o fato de que com um tamanho de modelo igual a
256 os melhores resultados foram obtidos com um valor de predicao entre 16 e 20. Dessa
forma, foi concluıdo que um bom valor de ordem de predicao a ser usado pelo sistema
seria o valor 18.
Na comparacao dos resultados obtidos pelos diferentes coeficientes, fica claro que
as menores taxas de erro foram alcancadas pelo coeficiente LAR, com o tamanho de
modelo igual a 256. Por esse motivo, a seguinte configuracao do sistema foi escolhida
para executar os demais experimentos:
• Coeficiente LAR
• Ordem da predicao linear igual a 18
• Tamanho de modelo acustico igual a 256
6.3 TESTES DE VERIFICACAO DE LOCUTOR
Para os experimentos de verificacao de locutor duas alternativas de calculo de
limiar foram usadas. A primeira tecnica e o uso de um limiar unico para todos os locutores.
E a segunda tecnica utilizada foi o calculo de um limiar diferente para cada locutor,
baseado nos scores obtidos durante a fase de treinamento.
A apresentacao dos resultados da tarefa de verificacao de locutor e baseada em
duas medidas muito utilizadas em sistemas de biometria: False acceptance rate - FAR
e False rejection rate - FRR. A medida de FAR indica a quantidade de falsos positivos
obtidos pelo sistema, ou seja, quantas verificacoes que os sistema deveria ter retornadas
como falsas, porem, foram declaradas verdadeiras. Ja a medida FRR obtem o valor oposto,
46
a quantidade de falsos negativos, ou seja a quantidade de verificacoes que deveriam ser
declaradas como verdadeiras mas foram rejeitadas pelo sistema.
Os experimentos de verificacao foram executados apenas sobre a base de 25 lo-
cutores.
6.3.1 Resultados para limiar unico
A seguir sao apresentados os graficos FAR e FRR para cada limiar utilizado.
Figura 6.11: Taxas de FAR e FRR obtidos com limiar unico.
Uma outra forma interessante de analisar resultados de FAR e FRR e atraves da
curva ROC. Essa curva e obtida atraves relacao FARxFRR, e pode ser vista no grafico a
seguir.
47
Figura 6.12: Relacao FARxFRR (ROC) obtidos com limiar unico.
De acordo com a figura 6.11 podemos perceber que as curvas de FAR e de FRR
se cruzam em um certo limiar, o qual foi considerado como melhor valor obtido para o
teste de limiar unico.
Limiar FAR FRR0.395327 8.75% 8.75%
Tabela 6.7: Melhor taxa de erro obtida com limiar unico.
6.3.2 Resultados para limiar diferente para cada locutor
O metodo de calculo de limiar utilizado neste experimento ocorre da seguinte
maneira: Durante a fase de treinamento do sistema, e executado a comparacao da voz
de todos os locutores entre si. Dessa forma, para cada locutor teremos os scores obtidos
sobre os testes executados da sua propria voz sobre seu proprio modelo, e tambem dos
testes executados das vozes dos demais locutores tambem sobre seu modelo.
A partir dessa lista de scores, o limiar para um locutor m e calculado da seguinte
maneira[2]:
48
Lm =σmXo + σoXm
σmσo
(6.1)
Onde σm e o desvio padrao dos scores obtidos pela analise do locutor m sobre
seu proprio modelo, e Xm e a media desses mesmos scores. Da mesma forma σo e Xo sao
respectivamente o desvio padrao e media dos scores das vozes dos demais locutores sobre
o modelo do locutor m.
Dessa forma, o limiar calculado para cada locutor carrega informacoes dos demais
locutores, podendo assim diminuir as taxas de FAR e FRR. Que neste caso, foram as
seguintes:
FAR FRR5.96% 5.13%
Tabela 6.8: Taxas de FAR e FRR obtidas com limiar individual.
6.3.3 Analise dos resultados
Os resultados obtidos atraves das diferentes formas de calculo de limiar mostram
claramente que o uso de um limiar igual para todos os locutores nao e a melhor alternativa.
O uso de um limiar calculado com base nos scores obtidos na comparacao de todos os
locutores entre si mostra resultados melhores.
Porem, os resultados poderiam ser ainda melhores. As figuras 6.13 e 6.14 apre-
sentam a analise de scores de dois locutores diferentes. Na figura 6.13 temos uma amostra
de um caso em que o calculo de limiar utilizado e o suficiente para que haja uma boa
reducao das taxas de FAR e FRR, pois todos os scores do proprio locutor estao abaixo
do seu limiar quando os scores obtidos atraves da voz de todos os demais locutores estao
acima do limiar. Diferente da figura 6.14 que apresenta um caso em que o limiar nao
calculado nao foi bom o suficiente para uma boa verificacao, pois ha casos em que o score
do proprio locutor e maior do que o limiar e varios outros casos em que o score dos demais
locutores se encontra abaixo do limiar. Alias, vale salientar que seria difıcil encontrar um
calculo de limiar capaz de melhorar os resultados do locutor apresentado na figura 6.14
pela grande variedade encontrada nos scores obtidos.
49
Figura 6.13: Exemplo de bons scores obtidos por um modelo comparado com vozes detodos os locutores.
Figura 6.14: Exemplo de scores ruins obtidos por um modelo comparado com vozes detodos os locutores.
50
6.4 OUTROS TESTES
Mais tres testes alem da identificacao e verificacao de locutor foram executados.
Um deles e uma analise do tempo de processamento do processo de identificacao, outro,
e a analise dos resultados sobre a base de dados com uma variacao na amplitude, e o
ultimo, e o teste sobre a base de dados com a taxa de amostragem alterada.
6.4.1 Analise do tempo de processamento
Considerando que o sistema trabalha em tempo real, ou seja, enquanto o locutor
esta pronunciando a sua frase, os dados dos frames recolhidos pelo microfone ja estao
sendo analisados. O objetivo dos testes de tempo de processamento foi observar latencia
do sistema. Latencia e o tempo que os sistema demora para retornar o resultado do
processamento. Foi analisado entao o tempo de processamento necessario pelo sistema
para retornar o resultado apos o locutor terminar de pronunciar a frase no microfone.
Um sistema ideal teria latencia igual a zero, possibilitando assim que a resposta
fosse retornada ao usuario no mesmo instante que ele terminasse de pronunciar a sua fala
no microfone.
Nos testes, foi analisado a taxa de crescimento da latencia em relacao ao aumento
do numero de janelas de sinal processadas, ou seja, em relacao ao aumento da duracao da
fala do locutor. O grafico 6.15 mostra essa relacao. O resultado obtido foi o seguinte:
Tamanho da base de testes Crescimento da Latencia por janela processada (em segundos)25 0.0011650 0.00472
Tabela 6.9: Taxa de aumento da latencia por janela de sinal processada.
A figura 6.15 apresenta um grafico com o crescimento estimado do tempo de
latencia do sistema para cada base de teste.
Os testes de tempo de processamento foram todos realizados em uma maquina
com as seguintes configuracoes:
• Processador AMD Athlon(tm) 64 3200 2GHz
• 1 GB de memoria RAM.
51
Figura 6.15: Analise da latencia pelo numero de janelas de sinal analisadas.
6.4.2 Testes com alteracoes na amplitude da base
Foram realizadas alteracoes nas amplitudes dos sinais de audio da base de dados,
para simular diferentes comportamentos das pessoas ao pronunciar palavras no microfone,
como falar mais alto ou mais baixo do que quando feito a fase de treinamento do sistema.
Porem, essas alteracoes nao afetaram nem os resultados obtidos na identificacao
e nem na verificacao de locutores. Podemos dizer entao que o sistema e invariante a
intensidade da voz.
6.4.3 Testes com alteracao na taxa de amostragem
A grande instabilidade dos resultados apresentados para diferentes valores de
ordem da predicao foi recebida com uma certa surpresa. Uma serie de estudos [3][6]
mostram que o aumento do valor da ordem da predicao comumente leva a uma melhora
nos resultados do sistema.
Uma possıvel explicacao para a instabilidade encontrada e o fato de que os ar-
quivos de audio utilizados na base de testes tem uma taxa de amostragem considera alta,
52
48000Hz. Dessa forma, para uma janela de sinal, que contem 30 milissegundos de audio,
1440 amostras de sinal sao utilizadas, o que pode ser considerado um numero alto de
amostra para serem analisadas pelo processo de predicao linear.
Para tentar amenizar este problema, um algoritmo de resampling foi implemen-
tado no sistema, possibilitando a diminuicao da taxa de amostragem do sinal analisado.
Porem os resultados obtidos foram muito piores do que os resultados obtidos com a taxa
de amostragem alta.
Foi concluıdo que, executando o resampling, detalhes importantes do sinal, como
caracterısticas da voz, sao perdidos, causando os resultados ruins.
A melhor solucao seria entao, adquirir os dados dos locutores ja com uma taxa
de amostragem menor, e nao diminuı-la apos o processo de aquisicao do som.
Pela falta de outras opcoes de bases de dados, com uma taxa de amostragem
menor, esses testes serao realizado apenas em trabalhos futuros.
53
54
7 CONCLUSOES
Este trabalho apresentou uma metodologia para a implementacao de um sistema
capaz executar a tarefa de reconhecimento de locutor em tempo real. Isso auxilia diferentes
tipos de projetos ou situacoes que necessitem executar o processo de reconhecimento de
locutor em um fluxo de dados, sem se preocupar com tempo de processamento ou espaco
para armazenamento.
Apos pesquisas e testes realizados, o sistema foi capaz de reconhecer locutores
com uma boa margem de acerto e com uma velocidade aceitavel para bases de testes com
um tamanho reduzido.
Uma lista de sugestoes para trabalhos futuros e apresentada a seguir:
• Executar testes com bases de dados que contenham uma taxa de amostragem menor.
Isso pode aumentar sensivelmente tanto a velocidade do sistema quanto a taxa de
acertos.
• Realizar mudancas no sistema para que seja possıvel executar a tarefa de reconhe-
cimento de locutor em ambientes ruidosos, que se aproximam mais de ambientes
reais.
• Adicionar um algoritmo de reducao de ruıdo em tempo real ao sistema.
• Realizar testes com uma base de dados composta por falas no idioma portugues
brasileiro.
Para finalizar, os resultados obtidos pelo sistema, superaram as expectativas do
autor pois, mesmo com uma base de testes com variacoes na qualidade e na forma dos
sinais, a porcentagem de acertos obtidas foi relativamente grande em alguns testes; E um
bom tempo de processamento foi atingido.
55
REFERENCIAS BIBLIOGRAFICAS
[1] Andrade, A. O. e Soares, A. B. Tecnicas de janelamento de sinais. Universidade
Federal de Uberlandia - Faculdade de Engenharia Eletrica.
[2] Bimbot, F., Bonastre, J., Fredouille, C., Gravier, G., Magrin-
Chagnolleau, I., Meignier, S., Merlin, T., Petrovska-Delacretaz, D.,
Reynolds, D. A. e Ortega-Garcıa, J. A tutorial on text-independent speaker
verification. EURASIP Journal, 4 (2004), 430–451.
[3] Campbell, J. P. Speaker recognition: A tutorial. Proceedings of the IEEE 85, 9
(sep 1997), 1437–1462.
[4] Data-compression.com. Vector Quantization. http://www.data-compression.
com/vq.shtml, 2008. Acessado em 19 de Novembro.
[5] Jain, A. K., Ross, A. e Prabhakar, S. An introduction to biometric recognition.
IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNO-
LOGY 14, 1 (Jan 2004).
[6] Kinnunen, T. Spectral features for automatic text-independent speaker recognition.
University of Joensuu Department of Computer Science P.O. Box 111, FIN-80101
Joensuu, Finland, Dec. 2003.
[7] Linde, Y., Buzo, A. e Gray, R. An algorithm for vector quantizer design. IEEE
Transactions on Communications 28, 1 (Jan 1980), 84–95.
[8] Makhoul, J. Linear prediction: A tutorial review. Proceedings of the IEEE 63, 4
(apr 1975), 561–580.
[9] Rabiner, L. e Juang, B.-H. Fundamentals of Speech Recognition. Prentice Hall,
Englewood Cliffs, New Jersey, 1993.
[10] Soong, F. K., Rosenberg, A. E., Rabiner, L. R. e Juang, B. H. A vector
quantization approach to speaker recognition. AT&T Bell Laboratories .
[11] Wikipedia. Autocorrelation. http://en.wikipedia.org/wiki/Autocorrelation,
2008. Acessado em 19 de Novembro.
[12] Wikipedia. Biometria. http://pt.wikipedia.org/wiki/Biometria, 2008. Aces-
sado em 19 de Novembro.