Aplicando técnicas de Machine Learning para reconhecimento de gênero por voz


A voz é uma característica intrínseca ao ser humano, carregando consigo informações tanto fonético-linguísticas quanto informações que podem ser utilizadas nas tarefas de reconhecimento de voz e do locutor. Este trabalho apresenta uma análise da aplicação de métodos de aprendizagem de máquina para o reconhecimento e identificação do gênero por meio da análise do discurso e da frequência sonora, exibindo os resultados da aplicação dessas técnicas, assim como a sua eficácia e seus índices de acerto. Foi utilizada uma base de dados que possui 3168 instâncias e 21 atributos, sendo a maioria relacionados à frequência sonora e suas variações.

Imagem: callcenterhelper.com


Introdução


Os estudos relacionados ao reconhecimento automático de voz evoluíram bastante nos últimos anos, graças aos avanços na tecnologia. Inicialmente, qualquer forma de estudo e pesquisa em relação ao reconhecimento de fala era realizado sem nenhum sistema tecnológico, apenas por meio de experimentos mecânicos que simulavam a produção sonora humana. De acordo com Valiati (2000), a utilização de recursos como o computador e placas de som possibilitaram a conversão de sons em dados digitais. Desta maneira, as técnicas de processamento de sinais permitem a extração de características que permitem tanto fornecer os dados de interesse ao processamento, como também reduzir consideravelmente a quantidade de informações a serem processadas. Segundo Trindade (1994), tais informações serão responsáveis pela produção de padrões a serem identificados numa comparação entre determinada referência previamente registrada e a apresentação de uma nova amostra para teste, onde o papel fundamental do sistema será validar ou não determinada amostra, dependendo do tipo e funcionalidade do sistema de reconhecimento em questão.

Assim, para a realização deste estudo de reconhecimento de voz e separação por gênero, foi utilizada uma base de dados intitulada como Gender Recognition by Voice, disponibilizada pela plataforma Kaggle, composta por 21 atributos de frequência de voz. O objetivo é realizar a classificação, com base na análise dos atributos fornecidos, se a voz pertence a uma pessoa do sexo masculino ou feminino. Para tal, foram utilizados os algoritmos de classificação: Random Forest (Árvore de Decisão), Naive Bayes, Redes Neurais Artificiais e K-NN.     

Metodologia

Na realização deste trabalho, foram utilizados algoritmos de aprendizagem de máquina presentes no software chamado Weka, na versão 3.8.1, desenvolvido pela Universidade Waikato, na Nova Zelândia. A base de dados utilizada neste trabalho foi encontrada no portal Kaggle, que se trata de uma plataforma fundada em 2010 por Anthony Goldbloom, em São Francisco, que realiza competições de modelos preditivos e analíticos em que as instituições e os pesquisadores postam seus dados para que sejam produzidos os melhores modelos. O dataset foi disponibilizado por Kory Becker, em outubro de 2016, no formato .csv e foi criado para identificar uma voz como feminina ou masculina, baseado nas propriedades acústicas da voz e do discurso. A base é constituída por 3168 amostras de voz gravadas, coletadas da fala de mulheres e homens. Essas amostras de voz são pré-processadas pela análise acústica com uma frequência que varia de 0Hz a 280Hz.  Desta maneira, as propriedades acústicas de cada voz são medidas e separadas nos seguintes 21 atributos:


Atributos
‘meanfreq’
‘centroid’
‘sd’
‘peakf’
‘median’
‘meanfun’
‘Q25’
‘minfun’
‘Q75’
‘maxfun’
‘IQR’
‘meandom’
‘skew’
‘mindom’
‘kurt’
‘maxdom’
‘sp.ent’
‘dfrange’
‘sfm’
‘modindx’
‘mode’
‘label’

Tabela 1. Tabela de atributos


Cada atributo representa uma propriedade acústica da voz e possui características específicas. ‘meanfreq’ é a frequência média em kHz; ‘sd’ representa o desvio padrão da frequência; ‘median’ é a frequência mediana em kHz; ‘Q25’ representa o primeiro quantil em kHz; ‘Q75’ representa o terceiro quantil em kHz; ‘IQR’ é o intervalo interquartil; ‘skew’ é a obliquidade ou assimetria da distribuição; ‘kurt’ é a curtose, ou seja, uma medida que caracteriza o achatamento da curva da função de distribuição de probabilidade; ‘sp.ent’ representa a entropia espectral; ‘sfm’ é a planicidade espectral; ‘mode’ é o modo de frequência; ‘centroid’ é o centroide de frequência; ‘peakf’ é a frequência de pico, ou seja, a frequência com a maior energia;
Em relação às frequências medidas em um sinal acústico, tem-se que ‘meanfun’ é a média de frequência fundamental medida em um sinal acústico; ‘minfun’ é a menor frequência fundamental medida em um sinal acústico; ‘maxfun’ é a maior frequência fundamental medida em um sinal acústico; ‘meandom’ é média da frequência dominante medida em um sinal acústico; ‘mindom’ é a menor frequência dominante medida em um sinal acústico; ‘maxdom’ é a maior frequência dominante medida em um sinal acústico e ‘dfrange’, que representa o alcance da frequência dominante medida em um sinal acústico.
Também se tem que ‘modindx’ é o índice de modulação, calculado como a diferença absoluta acumulada entre medidas adjacentes de frequências fundamental divididas pela faixa de frequência; e por último, o ‘label’ que é o gênero, feminino ou masculino.    
O objetivo principal é, com base em todos esses atributos de frequência, classificar se as instâncias representam a voz de um indivíduo do sexo masculino ou feminino. Nas execuções de cada algoritmo, considerou-se a acurácia, ou seja, a quantidade de instâncias que foram classificadas corretamente, e a matriz de confusão gerada para avaliar o desempenho do método.
Para a realização dos testes, em todos os métodos a base de dados foi dividida em duas partes, método conhecido como percentage split, em que a parte de treinamento representa 66% da base e a parte de teste é representada por 34% da base.  Durante a fase de pré-processamento, não houve necessidade de alteração em nenhuma instância do conjunto, tendo em vista que a base já era bem organizada previamente e não havia ausência ou inconsistência de nenhum dado.


Naive Bayes

O método de classificação Naive Bayes baseia-se na famosa Teoria de Bayes, ou Teoria Bayesiana, que utiliza fundamentos de probabilidade condicional para realizar a classificação. Os classificadores de Bayes são altamente escaláveis, exigindo uma série de parâmetros lineares no número de variáveis em um problema de aprendizagem. O próprio software Weka já estabelece estes parâmetros, não havendo necessidade de alteração alguma.
Desta maneira, utilizando os parâmetros padrões do Weka, os resultados obtidos após a fase de treinamento são que de 1077 instâncias (equivalente a 34% da amostra), a acurácia foi de 89.1365%, ou seja, 960 instâncias foram classificadas corretamente e apenas 10.8635%, ou seja, 117 instâncias não foram classificadas corretamente. A matriz de confusão obtida foi a seguinte:


Masculino
Feminino
Masculino
498
49
Feminino
68
462
Tabela 2. Matriz de Confusão de Naive Bayes



Multilayer Perceptron (MLP)

O método Multilayer Perceptron é um tipo de rede neural artificial semelhante à um perceptron, mas com mais de uma camada de neurônios em alimentação direta. É uma rede composta por camadas de neurônios ligadas entre si por sinapses com pesos, com uma função de ativação. O método MLP utiliza uma técnica de aprendizagem supervisionada chamada de backpropagation para treinamento.
Foi realizado duas execuções desse método, uma utilizando os parâmetros padrões do Weka e outra utilizando outros parâmetros, alterando os valores de taxa de aprendizado, permitindo assim a convergência do algoritmo, o momentum, afim de reduzir os mínimos locais e permitir que o método seja executado mais rapidamente e número de ciclos, ou seja, quantas vezes o treinamento é apresentado à rede. A tabela a seguir mostra os valores padrões e os modificados:


Padrão
Modificado
learningRate
0.2
0.8
momentum
0.3
0.8
Tabela 3. Parâmetros de entrada do MLP

Para os valores padrões, dentro de uma amostra de 1077 instâncias, 1045 foram classificadas corretamente, ou seja, 97.0288% e 32 não foram classificadas corretamente, ou seja, 2.9712%. Para os valores modificados, 97.3073%, equivalente a 1048 instâncias foram corretamente classificadas e 2.6927%, equivalente a 29 instâncias, não foram classificadas corretamente. 


Masculino
Feminino
Masculino
529
18
Feminino
14
516
Tabela 4. Matriz de Confusão MLP Padrão


Masculino
Feminino
Masculino
535
12
Feminino
17
513
Tabela 5. Matriz de Confusão MLP Modificada

Random Forest


O método Random Forest é um método de classificação, regressão e outras funcionalidades, que, basicamente, é composto por várias árvores de decisão, em que cada uma decidirá sobre a qual classe pertence determinado objeto. Assim como no algoritmo MLP, foram realizadas duas execuções desse algoritmo, em que uma utiliza os valores padrões pelo Weka e a segunda utiliza outros valores escolhidos. Os parâmetros alterados são o numFeatures, ou seja o número de características e atributos a serem utilizados na seleção aleatória e o numTrees, o número de árvores a serem geradas.


Padrão
Modificado
numFeatures
0
100
numTrees
100
200
Tabela 6. Parâmetros de entrada do Random Forest

Para os valores padrões, de quantidade total de 1077 instâncias, a acurácia foi de 98.0501%, que equivale a 1056 instâncias classificadas corretamente e 1.9499% não classificadas corretamente, equivalendo a 21 instâncias. Para os valores modificados, a acurácia foi de 97.9573%, que equivale a 1055 instâncias corretamente classificadas e 2.0427%, ou 22 instâncias não classificas corretamente.
Logo, os resultados obtidos foram os seguintes:

Padrão
Masculino
Feminino
Masculino
536
11
Feminino
10
520
Tabela 7. Matriz de Confusão do RF

Alterada
Masculino
Feminino
Masculino
536
11
Feminino
11
519
Tabela 8. Matriz de Confusão do RF


 K-NN

O método K-NN, abreviação para K-Nearest Neighbors Algorithm, é um método de classificação e regressão, que consiste em receber como entrada um valor de K exemplos de treinamento mais próximos no espaço utilizado e o classifica. A classificação é realizada de acordo com a classe mais comum, ou seja, aquela que abrange maior quantidade de elementos. O algoritmo utilizado no Weka para realização deste método foi o IBK.  Os valores atribuídos para K foram K = 3 e K = 5.
De uma amostra de 1077 instâncias, equivalente aos 34% da parcela de teste do conjunto, 1050 foram classificadas corretamente, ou seja, 97.493% para K = 3, enquanto que para K = 5, 1052 foram classificadas corretamente, sendo uma acurácia de 97.6787%. Uma diferença praticamente imperceptível. Para as instâncias classificadas incorretamente, para K = 3, houve um número de 27 instâncias, enquanto para K = 5, reduziu-se para 25.



Masculino
Feminino
Masculino
534
13
Feminino
14
516
Tabela 9. Matriz de Confusão KNN (K = 3)


Masculino
Feminino
Masculino
536
11
Feminino
14
513
Tabela 10. Matriz de Confusão KNN (K=5)

Resultados e discussões


Fazendo uma análise dos resultados de todos os métodos aplicados ao problema, percebe-se uma diferença mínima entre a acurácia de todos os métodos. Entretanto, o algoritmo que apresentou a pior acurácia foi o de Naive Bayes, com um valor de 89.1365%. O que apresentou maior valor de acurácia foi o algoritmo de Random Forest, com os valores padrões de 0 a 100, apresentando 98.05018% de precisão. Os algoritmos de Multilayer Perceptron e K-NN apresentaram acurácia de 97% cada. 
            Percebe-se que mesmo havendo uma pequena diferença entre os valores precisão dos métodos apresentados, ainda assim os valores são muito bons se comparados a outros métodos aplicados à outras bases. A taxa de acertos na determinação do gênero pela voz foi bastante alta, mostrando que os algoritmos de classificação utilizados são extremamente precisos.
O sucesso da classificação realizada pelo algoritmo de Random Forest se dá pelo simples fato de que 100 árvores diferentes são geradas, separando 1 terço para teste e 2 terços para treinamento, sem haver separação externa de dados, aumentando, assim, a quantidade de números pares de casos a serem calculados.


Conclusões


Após a análise dos dados de uma base constituída por 3168 instâncias e 21 atributos, com o objetivo de identificar e classificar se uma voz pertence a uma pessoa do sexo feminino ou masculino e a aplicação de quatro métodos de aprendizagem de máquina, foi obtido como resultado taxas de acerto muito boas por parte de todos os algoritmos utilizados. Mesmo o método com a menor de taxa de acerto, o resultado foi consideravelmente melhor do que o imaginado. A utilização de uma base muito bem pré-processada pode ser apontada como a maior razão pela qual os resultados obtidos foram tão bons. 



0 Comentários