Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal de Ouro Preto Instituto de Cieˆncias Exatas e Aplicadas Projeto de Reconhecedor de Comandos de Voz: Ana´lise e Implementac¸a˜o DOUGLAS DO AMARAL MONTEIRO douglas.ammaral@yahoo.com.br 11.2.8041 GEOVANE ALVES DE OLIVEIRA geovane-pretty@hotmail.com 11.2.8116 PAULO RICARDO DE FREITAS paulo94freitas@gmail.com 12.2.8093 SI´LVIO MENDES CE´SAR smg.cesar@yahoo.com 11.2.8085 Projeto de Reconhecimento de Palavras Isoladas e Execuc¸a˜o de Comandos a ser apresentado ao Professor Ma´rcio Feliciano Braga na disciplina CEA 671 - Processa- mento Digital de Sinais, da Universidade Federal de Ouro Preto. Joa˜o Monlevade, 10 de Marc¸o de 2017 PROCESAMENTO DIGITAL DE SINAIS UNIVERSIDADE FEDERAL DE OURO PRETO Conteu´do 1 OBJETIVO 1 2 INTRODUC¸A˜O 1 3 ME´TODO 2 3.1 Fase de Ensino - Desenvolvimento de Algoritmo de Detecc¸a˜o . . . . . . . . . . . . . . . . 2 3.2 Fase de Ana´lise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 4 RESULTADOS E CONCLUSA˜O 7 Engenharia Ele´trica Projeto de Reconhecedor de Comandos de Voz PROCESAMENTO DIGITAL DE SINAIS UNIVERSIDADE FEDERAL DE OURO PRETO 1 OBJETIVO O objetivo desse projeto e´ implementar um software em Matlab que fac¸a o reconhecimento de palavras isoladas, dependente do locutor, e interaja com um circuito externo de forma que a cada palavra do banco de dados esteja associada uma ac¸a˜o. 2 INTRODUC¸A˜O O processamento de a´udio pode ser dividido em treˆs principais a´reas atualmente: reproduc¸a˜o musical de alta definic¸a˜o, como aquela contida na fabricac¸a˜o dos discos r´ıgidos compactos, mais conhecidos como CDs; a´udio de telecomunicac¸o˜es, que abrange todo tipo de tratamento de sinal dentro da indu´stria de telecomunicac¸o˜es e o discurso sinte´tico, que esta basicamente focado na ana´lise computacional de a´udios de pessoas, buscando identificar, compreender e reproduzir sequeˆncias de voz. Neste projeto, o foco sera´ a terceira aplicac¸a˜o citada, com foco no reconhecimento de palavras isoladas para realizac¸a˜o de tarefas atrave´s de um circuito agregado. Figura 1 – A´reas de aplicac¸a˜o do Processamento Digital de Sinais. Dentro do processamento de sinais analo´gicos, encontra-se o processamento de a´udio, que e´ o tema presente neste trabalho, limitado ao reconhecimento de voz humanas predefinidas em um banco de dados para executar comandos. Basicamente, este trabalho e´ composto de treˆs processos distintos: a fase de arquivamento e processamento, a tomada de decisa˜o e a execuc¸a˜o dos comandos. O arquivamento de palavras e´ feito por um algoritmo no Matlab que capta sons atrave´s de um microfone comum, faz um pre´-processamento desse sinal, e armazena-o em um banco de dados esta´tico, que servira´ como paraˆmetro para a captac¸a˜o dinaˆmica de palavras na fase de teste. A tomada de decisa˜o e´ formada por duas sub-rotinas distintas e simultaˆneas: o processamento do sinal de teste, dinaˆmico, captado do usua´rio do sistema e a comparac¸a˜o desses dados com o banco de dados esta´tico armazenado previamente e finalizando com a melhor resposta poss´ıvel para os dados coletados. Engenharia Ele´trica 1 Projeto de Reconhecedor de Comandos de Voz PROCESAMENTO DIGITAL DE SINAIS UNIVERSIDADE FEDERAL DE OURO PRETO Finalmente, tem-se a execuc¸a˜o do comando associado atrave´s de um co´digo bina´rio gerado pela tomada de decisa˜o utilizando-se o processador Ardu´ıno Uno. Para a realizac¸a˜o desse projeto e´ necessa´rio um bom entendimento sobre diversas te´cnicas de ana´lise e tratamento de sinais. Dentre as ferramentas utilizadas, pode-se citar com destaque a Transformada Discreta de Fourier (DFT), a Transformada Ra´pida de Fourier (FFT), e os filtros de tipo IIR e FIR, com destaque para o filtro de Wiener. Muito outros conceitos relacionados sa˜o explorados ao longo do texto o de correc¸a˜o de n´ıvel DC, taxa de amostragem (teorema de Nyquist), normalizac¸a˜o spectral e algoritmos de autocorrelac¸a˜o e correlac¸a˜o-cruzada. 3 ME´TODO 3.1 Fase de Ensino - Desenvolvimento de Algoritmo de Detecc¸a˜o Um computador e´ uma dispositivo eletroˆnico que trabalha com sinais digitais, na˜o analo´gicos. O sinal de voz humano e´ um sinal cont´ınuo, com milhares de componentes de frequeˆncia diferentes. Para gravar este sinal, apropriadamente no computador, a fim de se efetuar os ca´lculos, faz-se primeiro necessa´rio entender os conceitos de amostragem e correc¸a˜o de sinais analo´gicos. Um sinal analo´gico, deve ser convertido para um sinal digital atrave´s de uma taxa de amostragem. Durante essa conversa˜o, o conversor utilizado, em corrente continua, introduz uma componente cont´ınua ao sinal convertido, dificultando a ana´lise precisa dos dados captados. A primeira modificac¸a˜o feita no sinal e´ em relac¸a˜o ao n´ıvel DC do sinal. Quando uma amostra de sinal e´ capturada e´ normal estar presente um offset, este n´ıvel invariante na˜o tem significado em ana´lises digitais, como a que aqui esta´ sendo desenvolvido. De fato o n´ıvel DC pode interferir na ana´lise digital, principalmente quando e´ feito um trabalho no domı´nio da frequeˆncia. O que e´ feito no algoritmo enta˜o e´ dividir o vetor de amostras dos sinais pela me´dia dos valores inclu´ıdos nos mesmos. Esta te´cnica e´ capaz de reduzir a amplitude das amostras e juntamente com a eliminac¸a˜o de espac¸os com baixa energia, o sinal capturado e´ reduzido apenas a` parte que nos interessa. Todos os sinais utilizados nos testes do algoritmo passam inicialmente por um filtro de pre´ eˆnfase do tipo do modelo da equac¸a˜o 1, onde o valor α varia entre 0,9 e 1. Este filtro tem a finalidade de aumentar a energia do sinal a` altas frequeˆncias, por isso o nome dado na bibliografia. Y [n] = X[n] = αX[n− 1] (1) Engenharia Ele´trica 2 Projeto de Reconhecedor de Comandos de Voz PROCESAMENTO DIGITAL DE SINAIS UNIVERSIDADE FEDERAL DE OURO PRETO E´ conhecido que cada indiv´ıduo tem um sistema pro´prio pelo qual o sinal de fala passa, este sistema e´ responsa´vel por gerar sinais u´nicos de voz para cada palavra. As mesmas palavras ditas por pessoas de mesmo sexo e idade podem ter formatos de espectro distintos e energia em frequeˆncia diferentes, isso pode dificultar o reconhecimento de palavras isoladas por observac¸o˜es superficiais. Portanto faz-se ne- cessa´rio o uso de um algoritmo de correlac¸a˜o cruzada que analisa a semelhanc¸a entre dois ou mais sinais considerando o deslocamento no tempo entre um deles (time shift), esta etapa verifica a semelhanc¸a entre a palavra que esta sendo testada e as palavras do banco de dados. Utilizando o MATLAB, quando dois sinais de tamanho igual a N sa˜o comparados utilizando relac¸a˜o cruzada sera´ retornado um vetor resultado de comprimento igual a 2N, sendo que quando dois sinais apresentam zero relac¸a˜o entre si o valor ma´ximo da sa´ıda do algoritmo de relac¸a˜o cruzada estara´ posicionada no ı´ndice N. Quando a correlac¸a˜o cruzada entre dois sinais ideˆnticos e´ feita, o resultado plotado deve ser perfei- tamente sime´trico. Entretanto, como em casos reais e´ muito dif´ıcil ter dois sinais ideˆnticos, mesmo que sejam a mesma palavra e venham da mesma pessoa, havera´ algumas diferenc¸as em relac¸a˜o a` teoria. Por outro lado, por se tratar de palavras iguais o espectro deve ser no mı´nimo parecido, o que resulta em uma sa´ıda pro´xima da simetria. x(t) = N∑ i=1 Aicos(2pift+ φi) (2) A frequeˆncia sonora da voz humana varia entre 100 e 3500 Hz. Uma taxa adequada para este caso e´ tal que respeite o teorema de Nyquist, que afirma que a frequeˆncia de amostragem de um sinal deve ser, no minimo, duas vezes o valor da maior frequeˆncia existente nesse sinal, para este possa ser recuperado sem perda de informac¸o˜es. Portanto,para o se trabalhar com a´udio vocal, uma taxa de amostragem de 8000 Hz e´ mais do que suficiente. Entretanto, quanto maior a frequeˆncia de amostragem, melhor o sinal sera´ capturado, sendo maior a qualidade, assim, frequeˆncias comuns em tratamentos de a´udio em computadores pessoais sa˜o de 10kHz, 16kHz, ate´ 44kHz. Vale notar que quanto maior a taxa de amostragem, maiores recursos computacionais sa˜o utilizados. A figura abaixo representa um sinal sonoro no tempo. Engenharia Ele´trica 3 Projeto de Reconhecedor de Comandos de Voz PROCESAMENTO DIGITAL DE SINAIS UNIVERSIDADE FEDERAL DE OURO PRETO Figura 2 – Sinal de a´udio no tempo Existem duas ferramentas que sa˜o de muita valia na ana´lise de sinais discretos: a Transformada Discreta de Fourier e a Transformada Ra´pida de Fourier - FFT, do ingleˆs Fast Fourier Transform. Basicamente, estas sa˜o as mesmas ferramentas. O que diferencia uma da outra e´ sua implementac¸a˜o. A FFT e´ adequada para a ana´lise computacional de sinais. Ambas as ferramentas foram utilizadas na ana´lise dos sinais capturados, pois providenciam muitas informac¸o˜es valiosas no domı´nio da frequeˆncia que podem ser utilizadas na extrac¸a˜o de dados do sinal, como por exemplo a componente fundamental, a energia total presente e qual componente mais contribui energeticamente para o sinal. E = |X(ω)2| (3) A relac¸a˜o acima compo˜e uma boa te´cnica para reconhecimento de palavras. Como mencionado, cada sinal possui um conjunto de frequeˆncias, assim pode-se concluir dentro deste sinal existira˜o frequeˆncias que contribuira˜o mais ou menos para a energia do sinal. O quanto cada componente de frequeˆncia contribui e´ a chave para comparar os sinais capturados. Nesse ponto, torna-se evidente a importaˆncia de normalizar o espectro de frequeˆncias do sinal, ja´ que os sinais capturados podem variar bastante em sua magnitude. A linearizac¸a˜o e´ feita por Engenharia Ele´trica 4 Projeto de Reconhecedor de Comandos de Voz PROCESAMENTO DIGITAL DE SINAIS UNIVERSIDADE FEDERAL DE OURO PRETO y = (x− xmin)/(xmax − xmin) A figura abaixo mostra o espectro de frequeˆncias da palavra Pisca e a quantidade de energia corres- pondente a cada componente de frequeˆncia. Claramente, pode-se observar o intervalo de frequeˆncia que mais contribui para o sinal, esta´ entre 0 e 500 Hz. Figura 3 – Sinal de a´udio na Frequeˆncia Todos os passos ate´ agora sera˜o realizados tanto na parte de ensino, quanto na parte de treino do algoritmo. Daqui para a frente, sera´ descrita a teoria para construir um algoritmo que compare os sinais do banco de dados com o sinal coletado. 3.2 Fase de Ana´lise Existe uma imensa quantidade de dados no espectro de frequeˆncias de um sinal de voz de uma pessoa, que varia em raza˜o de sua idade e geˆnero. Ainda para um mesmo locutor, o espectro de frequeˆncias de seu sinal de voz pode variar drasticamente dependendo do tipo de palavra, que produz diferentes vibrac¸o˜es em suas cordas vocais. O filtro de Wiener, tambe´m descrito como Filtro O´timo em Tempo Discreto, foi utilizado para com- parar o sinais gravados no banco de dados com o sinal gravado no teste. Proposto na de´cada de 40, esta Engenharia Ele´trica 5 Projeto de Reconhecedor de Comandos de Voz PROCESAMENTO DIGITAL DE SINAIS UNIVERSIDADE FEDERAL DE OURO PRETO te´cnica pressupo˜e um sinal aleato´rio estaciona´rio como entrada, que passara´ pelo filtro e um sinal no banco (teste), como ilustrado na figura abaixo. Figura 4 – Aplicac¸a˜o do Filtro de Wiener a um sinal w[n]. Sinal com- parado s[n] A func¸a˜o de sistema do filtro e´ dada por W (z) = p−1∑ n=0 w(n)z−1 onde w(n) e´ a resposta unita´ria do filtro. A sa´ıda do filtro d′(n) e´ dada pela convoluc¸a˜o de w(n) com x(n), a entrada do filtro, logo tem-se que d′(n) = p−1∑ n=0 w(n)z−1 ξ = p−1∑ 0 w(l)x(n− l). Passa-se o filtro FIR no sinal captado no banco de dados e estima-se um sinal dado pelo filtro. A comparac¸a˜o entre os sinais e´ realizada pelo mo´dulo do quadrado da diferenc¸a dos sinais. Logo, o cerne do problema esta´ em encontrar os coeficientes mı´nimos do filtro tais que o erro entre o sinal testado e do banco seja o menor poss´ıvel. Em outras palavras, ξ = |e(n)|2 = |d(n)− d′(n)|2 Para tanto, e´ necessa´rio e suficiente que que a derivada de ξ em relac¸a˜o a w ∗ (k) seja igual a zero, para k =0, ..., p-1. Esta derivada, resulta na equacao Ed(n)x ∗ (n− k)− p−1∑ l=1 w(l)Ex(n− l)x ∗ (n− k) = 0 Engenharia Ele´trica 6 Projeto de Reconhecedor de Comandos de Voz PROCESAMENTO DIGITAL DE SINAIS UNIVERSIDADE FEDERAL DE OURO PRETO que pode ser reescrita como a equac¸a˜o de Wiener-Hopf. p−1∑ l=1 w(l)Rx(k − l) = rdx;k=0,...,p−1 Matricialmente, tem-se Rxw = rdx Logo, w = R−1rdx Portanto, os coeficientes w sa˜o encontrados fazendo a multiplicac¸a˜o matricial da inversa da auto- correlac¸a˜o, Rx do sinal pela correlac¸a˜o-cruzada do sinal, rdx. 4 RESULTADOS E CONCLUSA˜O Durante a fase de testes, pode ser observado que o sistema funciona bem para o caso em que o a´udio gravado no banco de dados e´ o mesmo da pessoa que efetuou o teste, na˜o funcionado tao bem se em algum desses casos ha um interlocutor diferente. Foi verificado tambe´m que, para palavras fo- neticamente parecidas, como e´ o caso de Liga e Desliga, e´ aconselhado utilizar filtros diferentes de pre enfase diferentes, reforc¸ando o sinal em pontos distintos. Isso possibilita uma melhor comparac¸a˜o dos sinais de espectro de frequeˆncias parecido. Alem disso, outro observac¸a˜o experimental desse projeto se deve ao n´ıvel de ruido presente no ambiente, tanto na hora da gravac¸a˜o do banco de dados, quanto na parte de teste. Um ambiente conturbado aumenta significativamente o erro na detecc¸a˜o dos comandos. As diversas te´cnicas utilizadas no projeto, combinadas, resultaram em um alto n´ıvel de reconhecimento de diferentes palavras, respeitadas as condic¸o˜es expostas anteriormente, que exigem um ambiente sem silencioso e que o locutor que teste o sistema esteja previamente cadastrado no banco de dados. Engenharia Ele´trica 7 Projeto de Reconhecedor de Comandos de Voz PROCESAMENTO DIGITAL DE SINAIS UNIVERSIDADE FEDERAL DE OURO PRETO Refereˆncias [1] OPPENHEIM, A.; SCHAFER, S. D. Discrete-Time Signal Processing. 3 rd Edition. Prentice Hall. 1137 p. [2] MUDA, Lindasalwa; MUNTAJ Begam; Elamvazuthi I. ”Voice recognition algorithms using mel fre- quency cepstral coefficient (MFCC) and dynamic time warping (DTW) techniques.”(2010). [3] NAKASHIMA, G. Y. Aplicac¸a˜o do filtro de Wiener para tratamento de sinais eletromiogra´ficos. 2003. Total de folhas. 59 f. Dissertac¸a˜o - Escola de Engenharia de Sa˜o Carlos - Universidade de Sa˜o Paulo. Sa˜o Carlos, 2003. Engenharia Ele´trica 8 Projeto de Reconhecedor de Comandos de Voz OBJETIVO INTRODUÇÃO MÉTODO Fase de Ensino - Desenvolvimento de Algoritmo de Detecção Fase de Análise RESULTADOS E CONCLUSÃO
Compartilhar