sistema adaptativo de controlo da directividade de um
TRANSCRIPT
Sistema adaptativo de controlo da directividade de um
agregado de microfones realizado em PC
Luís Filipe Xavier Cavaco de Mendonça Dias
Dissertação para obtenção do Grau de Mestre em
Engenharia Electrotécnica e Computadores
Jurí
Presidente: Prof. Doutor José António Beltran Gerald
Orientador: Prof. Doutor Gonçalo Nuno Gomes Tavares
Co-Orientador: Prof. Doutor Moisés Simões Piedade
Vogais: Prof. Doutor António Joaquim dos Santos Romão Serralheiro
Setembro de 2007
i
AGRADECIMENTOS
Gostaria de expressar os meus sinceros agradecimentos a todos aqueles que me ajudaram
durante a realização deste trabalho, especialmente ao Prof. Doutor Moisés Piedade, Prof.
Doutor Gonçalo Tavares, Prof. Doutor António Serralheiro, Mestre Eng. José Germano, Eng.
José Vaz, Eng. António Nunes e Eng. Gustavo Coelho.
Por fim, mas não menos importante, uma palavra de gratidão para a família e amigos pelo
apoio e compreensão demonstrada.
ii
iii
RESUMO
O objectivo deste trabalho visa a concepção de um sistema de aquisição de fala, que permita
detectar a localização de um orador e orientar a directividade do sistema nessa direcção, de
modo a que o orador não necessite de estar fisicamente próximo do equipamento de aquisição
de som.
Neste trabalho foi construído um agregado com 64 microfones (AM) linearmente espaçados de
2 cm. Para verificar o funcionamento do sistema foram efectuados diversos testes aos circuitos
eléctricos.
Numa última fase, os algoritmos de correlação cruzada (para detectar a localização do orador)
e o delay and sum (realização de filtragem espacial) foram simulados em Matlab com dados
reais capturados pelo sistema. Os resultados obtidos mostraram concordância em relação à
teoria e a outros trabalhos relacionados.
Por último, foi realizada a implementação em tempo real e utilizando a linguagem C, dos
algoritmos descritos anteriormente.
Primeiramente realizou-se uma aplicação que permite detectar a localização do orador com
taxa de actualização de aproximadamente 375ms, fornecendo uma estimativa do ângulo com
erro de 3 graus.
Por fim, foram medidos os desempenhos dos algoritmos em tempo real, concluindo-se que se
consegue através de um computador, direccionar a sensibilidade do AM para o orador, com
uma taxa de actualização de 375 ms.
O desempenho do algoritmo delay and sum revela-se pouco eficaz, facto que se deve à fraca
resolução espacial do AM para frequências inferiores a 500 Hz (nesta banda de frequências
encontra-se o ruído ambiente e 80% da energia dos sinais de fala).
Palavras-chave:
Correlação, Transformada de Fase, Filtragem Espacial, Localização de um Orador, Agregados
de Microfones.
iv
v
ABSTRACT
The purpose of this work is the conception of a system for speech acquisition, capable of
detecting a speaker localization and to target the directivity of the system in that direction, thus,
allowing the speaker to move freely without the need to be close to the sound acquisition
system.
In this work, a microphone array (MA) with 64 linearly spaced microphones, placed 2 cm apart,
was built. To evaluate the performance of the system, several tests were performed on its
electrical components.
The next step, was the development of two algorithms: crossed correlation between signals (to
detect the localization of the speaker), and the delay and sum (spatial filtering), both
implemented in Matlab, with real data captured by the system. The results have shown an
agreement with existing theory.
The described algorithms, were newly implemented in the C language and tested in real time.
An application that is capable of detecting the speaker direction (±3 degrees error rate) with a
refresh rate of 375 ms was developed.
Finally, the algorithms performance was measured in a real time environment, supporting the
hypothesis of targeting the sensitivity of the MA to the speaker approximately 2.5 times per
second, using a generic personal computer. The delay and sum performance shows some
inefficiency, given the weak spatial resolution of the MA to frequencies less than 500 Hz (where
most of the ambient noise is, and where 80% of the speech signals energy is present).
Keywords
Correlation, PHAT, Beamforming, Speaker Localization, Microphone Array.
vi
vii
ÍNDICE
Agradecimentos ...................................................................................................................... i
Resumo ..................................................................................................................................iii
Abstract ...................................................................................................................................v
Índice ..................................................................................................................................... vii
Lista de Figuras ....................................................................................................................... ix
Lista de Tabelas ...................................................................................................................... xi
Lista de Acrónimos ............................................................................................................... xiii
1. Introdução ...................................................................................................................... 1
1.1. Enquadramento ............................................................................................................ 1
1.2. Resenha do Estado da Arte ........................................................................................... 2
1.3. Descrição do trabalho efectuado .................................................................................. 6
1.4. Descrição sumária de algoritmos basilares utilizados em AM ...................................... 7
1.4.1. Algoritmo TDOA .................................................................................................... 7
1.4.2. Algoritmo SRP .................................................................................................... 10
1.5. Estrutura do trabalho ................................................................................................. 12
2. Descrição do sistema .................................................................................................... 13
2.1. Projecto e Funcionamento do Agregado de Microfones ............................................. 13
2.2. Versão original da Microboard ................................................................................... 15
2.2.1. Motivações e consequentes alterações na Microboard ...................................... 18
2.3. Descrição da Microboard construída neste projecto .................................................. 21
2.3.1. Descrição do funcionamento .............................................................................. 21
2.3.2. Montagem e desenho PCB ................................................................................. 25
2.3.3. Características técnicas ...................................................................................... 26
2.4. Motherboard .............................................................................................................. 28
2.5. Calibração dos ganhos dos amplificadores ................................................................. 35
2.5.1. Método utilizado .................................................................................................. 36
2.5.2. Resultados .......................................................................................................... 37
3. Algoritmos implementados no Sistema construído ....................................................... 41
3.1. Algoritmos de Localização .......................................................................................... 41
3.1.1. GCC – Generalized Cross Correlation ................................................................ 45
3.1.2. GCC-PHAT ......................................................................................................... 46
3.1.3. Resultados .......................................................................................................... 47
3.2. Algoritmo de filtragem espacial ................................................................................. 50
viii
3.2.1. Limitações do Sistema ........................................................................................ 50
3.2.2. Implementação do algoritmo “Delay and Sum” ................................................... 51
3.3. Implementação de algoritmos em tempo real............................................................ 53
3.3.1. Aplicação para localização do orador ................................................................. 54
3.3.2. Modelo proposto e resultados............................................................................. 58
4. Conclusões e trabalho futuro ........................................................................................ 63
5. Referências ................................................................................................................... 65
ix
LISTA DE FIGURAS
Figura 1.2.1 - Protótipo de um agregado de microfones construído no MIT em 2004.................. 3
Figura 1.2.2 - Esquema do sistema desenvolvido pela empresa Signalogic. ............................... 4
Figura 1.2.3 - AM de 64 microfones produzido pelo NIST. ........................................................... 5
Figura 1.2.4 – Câmara e agregado de 2 microfones USB da CreativeLabs. ................................ 5
Figura 1.3.1 - AM de 64 microfones construído neste trabalho. Em cima, fotografia com vista de
cima, em baixo, fotografia com vista em perspectiva. .................................................................. 6
Figura 1.4.1 – Cenário para localização com TDOA. ................................................................... 8
Figura 1.4.2 – Representação do algoritmo beamforming. ........................................................ 11
Figura 2.1.1 - Arquitectura do AM realizado. .............................................................................. 14
Figura 2.2.1 - Placa Microboard original. .................................................................................... 15
Figura 2.2.2 – Esquema eléctrico do andar de amplificação de um canal (versão original). ...... 16
Figura 2.2.3 – Esquema eléctrico do andar de digitalização da versão original. ........................ 17
Figura 2.2.4 – Circuito de alimentação e de conexão à placa Motherboard da versão original da
microboard. ................................................................................................................................ 18
Figura 2.3.1 - Fotografia de uma das placas microboard construídas neste projecto. ............... 21
Figura 2.3.2 – Andar de amplificação na versão modificada. ..................................................... 21
Figura 2.3.3 – Andar de digitalização na versão modificada. ..................................................... 22
Figura 2.3.4 – Esquema indicativo do formato dos dados nas saídas do conversor AD. ........... 23
Figura 2.3.5 – Buffer que cria tensão para massa virtual de 2,5V. ............................................. 23
Figura 2.3.6 – Circuito de alimentação da microboard modificada. ............................................ 24
Figura 2.3.7 - Ligação para fonte de alimentação dos microfones. ............................................ 24
Figura 2.3.8 - Desenho do circuito PCB. Camada superior em cima, camada inferior em baixo.
................................................................................................................................................... 25
Figura 2.3.9 – Resposta em frequência dos microfones (encontra-se na datasheet). ............... 26
Figura 2.3.10 – Sensibilidades dos microfones em função da frequência (encontra-se na
datasheet). ................................................................................................................................. 26
Figura 2.3.11 - Resposta em frequência do andar de Amplificação. .......................................... 27
Figura 2.4.1 - Fotografia da Motherboard. .................................................................................. 28
Figura 2.4.2 – Ilustração do funcionamento da Motherboard. .................................................... 29
Figura 2.4.3 – Esquema eléctrico da Alimentação da Motherboard. .......................................... 30
Figura 2.4.4 – Fotografia do adaptador de memória construído. ............................................... 31
Figura 2.4.5 - Bloco de aquisição de dados e envio de sinais de controlo. ................................ 32
Figura 2.4.6 – Formato da Trama UDP. ..................................................................................... 33
Figura 2.4.7 - Significado dos Leds da Motherboard. ................................................................. 34
Figura 2.5.1 – Fotografia do AM suportado por um tripé. ........................................................... 36
Figura 2.5.2 – Disposição dos diversos elementos durante a calibração. .................................. 37
Figura 2.5.3 - Gráfico dos ganhos relativos para uma fonte sonora de ruído branco. ................ 38
Figura 2.5.4 - Imagem do programa “osciloscope” depois de AM estar calibrado. .................... 38
Figura 2.5.5 – Gráfico dos ganhos obtidos com sinal de fala. .................................................... 39
Figura 3.1.1 - Referência para o cálculo do ângulo da direcção do orador, (planta). ................. 42
Figura 3.1.2 - Disposição dos elementos no laboratório do SIPS, aquando a captura de teste
para algoritmos de localização. .................................................................................................. 42
Figura 3.1.3 - Sinal capturado pelo microfone de referência Mic1 e pelo Mic18. ....................... 43
Figura 3.1.4 – Relação entre o ângulo calculado e o atraso obtido após correlação entre os
sinais dos microfones #1 e #18. ................................................................................................. 44
Figura 3.1.5 - Resultado da Correlação com GCC. .................................................................... 45
x
Figura 3.1.7 - Resultado da correlação com GCC – PHAT. ....................................................... 47
Figura 3.1.8 - Resultados de GCC-PHAT e GCC para orador a 300. ......................................... 48
Figura 3.1.9 - Resultados de GCC-PHAT para orador a 900. ..................................................... 49
Figura 3.1.10 - Relação entre o ângulo calculado e o atraso obtido após correlação entre os
sinais dos microfones #1 e #64. ................................................................................................. 49
Figura 3.2.1 – Algoritmo Delay and Sum. ................................................................................... 51
Figura 3.2.2 – Disposição dos elementos durante captura de teste para aplicação do algoritmo
Delay and Sum. .......................................................................................................................... 52
Figura 3.2.3 – Gráficos com sinal resultante do Delay and Sum (esquerda) e sinal no microfone
#1. .............................................................................................................................................. 53
Figura 3.3.1 – Diagrama explicativo da aplicação para detecção do orador. ............................. 54
Figura 3.3.2 - Ambiente gráfico da aplicação para localização do orador. No caso desta
imagem, o orador encontra-se na direcção correspondente a 90 graus. ................................... 56
Figura 3.3.3 – Gráfico que traduz o seguimento de um orador que se desloca a uma distância
de 1,5m do AM no perímetro entre -180 e 0 graus..................................................................... 57
Figura 3.3.4 – Modelo proposto. ................................................................................................ 58
Figura 3.3.5 – Funcionamento de um buffer circular. ................................................................. 59
xi
LISTA DE TABELAS
Tabela 2.4.1 - Consumo energético do AM (alimentado a 6V). .................................................. 31
Tabela 2.4.2 - Leds indicadores do estado do AM. .................................................................... 34
Tabela 3.3.1 – Tempos reais dispendidos pela aplicação de localização de um orador. ........... 57
Tabela 3.3.2 - Tempos reais dispendidos pela rotina de beamforming. ..................................... 60
Tabela 3.3.3 - Tempos reais dispendidos pela rotina de cálculo dos atrasos. ........................... 60
xii
xiii
LISTA DE ACRÓNIMOS
AM Agregado de Microfones
BOOTP Bootstrap Protocol
DFT Discrete Fourier Transform
DHCP Dynamic Host Configuration Protocol
DSP Digital Signal Processor
FFT Fast Fourier Transform
GCC Generalized Cross Correlation
IFFT Inverse Fast Fourier Transform
MAC Media Access Control
MIT Massachusetts Institute of Technology
NIST National Institute of Standards and Technology
PCB Printed Circuit Board
PHAT Phase transform
PROM Programmable Read Only Memory
RAM Random Access Memory
SMD Surface Mount Device
SNR Signal to Noise Ratio
SRP Steered Response Power
TDOA Time Delay of Arrival
UDP User Datagram Protocol
VHDL VHSIC Hardware Description Language
VHSIC Very High Speed Integrated Circuit
xiv
1
1. INTRODUÇÃO
Neste capítulo será efectuado um enquadramento acerca do assunto que este trabalho aborda.
Serão referidos alguns projectos de agregados de microfones (passa a designar-se AM) de
modo a elucidar o estado da arte. É realizada uma descrição sumária do trabalho realizado.
São descritos algoritmos basilares utilizados no processamento de sinais provenientes de um
AM. Por último, é efectuada a enumeração e descrição sumária do conteúdo dos diferentes
capítulos que constam neste documento.
1.1. Enquadramento
Um agregado de microfones é um dispositivo constituído por diversos microfones separados
entre si por uma distância, e com uma certa geometria que pode ser não uniforme. Para
capturar e processar os dados provenientes deste agregado é necessário conectá-lo a um
computador ou a um processador digital de sinal (DSP), ou então, o próprio AM terá que conter
um bloco de processamento.
Um AM pode ser ambiciosamente encarado como um dispositivo capaz de reproduzir as
capacidades auditivas de um ser humano. As pessoas possuem um complexo sentido auditivo
que não se consegue, de forma alguma, reproduzir com apenas dois microfones (simulando os
2 ouvidos). Para contrariar este factor recorre-se ao uso de vários microfones. Um indivíduo
consegue facilmente localizar a direcção do som que está a ouvir, isto porque o ser humano
tem 2 ouvidos e ouve a duas dimensões. No entanto, saber com exactidão a distância a que se
encontra a fonte sonora, é impossível para um ser humano. Com um AM contendo os
microfones correctamente colocados espacialmente para esse fim, poder-se-á obter a
localização da fonte sonora em 3 dimensões, sabendo-se a sua direcção e a sua distância.
Usando alguns princípios da propagação do som, o AM pode ser utilizado para diversas
aplicações tais como: cancelamento de ruído, reconhecimento de fala, localização de uma
fonte sonora, microfone hands-free, etc. Um método para localizar uma fonte sonora com um
AM consiste em estimar o tempo que a onda sonora demora a chegar aos diferentes
microfones. Sabendo esse atraso e, naturalmente, a velocidade de propagação da onda
acústica no ar, consegue-se, através de uma simples relação geométrica, deduzir a direcção
do orador. O tempo de atraso pode ser calculado, por exemplo, através da correlação entre os
sinais que chegam aos microfones. O método de correlação que se aplica nos AM é
semelhante ao usado pelos radares de velocidade. Neste caso, é calculado o tempo de atraso
entre o sinal emitido pelo radar e esse mesmo sinal reflectido pelo alvo.
2
Após obtermos o atraso entre os sinais de cada microfone pode utilizar-se o AM para melhorar
o sinal de interesse (geralmente a fala). Uma das técnicas usadas é o algoritmo delay and sum
que utiliza a técnica beamforming1 [1] que consiste em alinhar os sinais de todos os microfones
(ou seja, pôr os sinais em fase) de acordo com uma determinada direcção. Depois de alinhar
os sinais, eles são somados obtendo-se assim, uma nítida melhoria na relação sinal-ruído
(SNR). Deste modo, o sinal de interesse, sendo estacionário, é correlacionado e irá somar-se
construtivamente. No entanto, o ruído branco não se correlaciona com a fala e provavelmente
irá somar-se na mesma proporção de forma construtiva ou destrutiva, resultando na
manutenção ou eventual redução da sua potência.
Quanto ao reconhecimento de fala, pode dizer-se que é uma área em constante evolução,
desenvolvendo-se investigação no sentido de se fomentar a sua utilização com qualidade e de
forma robusta. Muitas aplicações de software, já têm comandos de voz integrados e funcionam
de forma satisfatória sendo, no entanto, necessário ter um microfone “close-talk” [2] que
proporcione a captura do som do orador com uma boa relação sinal-ruído. Para dar mais
alguma flexibilidade ao utilizador destas aplicações poder-se-á usar um AM para que estas
aplicações funcionem de forma igualmente aceitável sem ser necessário um microfone “close-
talk”. Neste contexto, um AM, poderá ter utilização também em domótica. Um exemplo será o
caso de um utilizador poder andar pela sua casa a dar ordens aos seus equipamentos
electrónicos verbalmente, sem se preocupar com a localização dos microfones.
Com a evolução das tecnologias relativas ao processamento de fala, tornam-se necessários
equipamentos cada vez mais robustos e eficientes na aquisição de fala. Contudo, o uso de AM
não traz só vantagens, e é importante salientar que existem inconvenientes tais como, o custo
acrescido em relação aos microfones “close-talking”, elevados requerimentos de
processamento, etc. No entanto, essas desvantagens poder-se-ão tornar insignificantes com o
aumento da investigação nesta área, que revela resultados cada vez mais promissores.
1.2. Resenha do Estado da Arte
O estudo de agregados de microfones e das suas potencialidades é algo que tem sido
desenvolvido por diversas empresas, universidades e instituições de investigação. Diversos
projectos nesta área estão actualmente em curso. Enumeram-se três exemplos de carácter
mais relevante.
O maior agregado de microfones existente no mundo é o AM de 1020 microfones [3] construído
no Massachusetts Institute of Technology.
1 Técnica que permite direccionar a sensibilidade de um agregado de sensores
3
Figura 1.2.1 - Protótipo de um agregado de microfones construído no MIT em 2004.
A ideia de fazer um agregado desta dimensão baseia-se na teoria de que o desempenho de
um agregado aumenta linearmente com o seu tamanho, dado que o volume de informação que
se retira do agregado será superior (maior número de sensores, microfones). Contudo, para
processar a informação deste agregado2 não é suficiente um só computador, tendo que ser
desenvolvida uma arquitectura própria (primariamente uma rede de computadores) para se
conseguir processar toda a informação resultante em tempo real. Como se pode deduzir, este
agregado possibilitará a localização de múltiplos oradores em 3 dimensões e também a
aplicação de muitos outros algoritmos.
A Signalogic é uma empresa dos Estados Unidos que trabalha na área de processamento
digital de sinal. Também com um projecto de agregado de microfones [4] a decorrer,
implementaram um sistema em que uma câmara de vídeo é direccionada pela informação
proveniente do agregado. O processamento para o cálculo da direcção do orador é feito por um
DSP, e o computador controla o movimento da câmara.
2 Em [3] é referido que este agregado transmite dados a um ritmo de 50 MB /s.
A notação MB significa: 10
6 bytes.
4
Figura 1.2.2 - Esquema do sistema desenvolvido pela empresa Signalogic.
A ideia base deste projecto consiste num sistema capaz de ser implementado num auditório
que consiga substituir os microfones close talk e concomitantemente dispensar um operador de
câmara, dado que o sistema seria capaz de direccionar a câmara e “amplificar” o som para a
pessoa que estiver a falar no auditório.
Outro projecto nesta área também interessante, foi desenvolvido pelo NIST (National Institute
of Standards and Technology).
O AM construído durante este trabalho, consiste num AM semelhante ao do NIST com
algumas alterações na parte de aquisição de dados como se irá referir nos capítulos seguintes.
O AM do NIST foi criado no âmbito de um projecto denominado Smart Space [5] que tem como
objectivo dotar uma sala de reuniões com tecnologia capaz de sentir actividade humana e
responder. Basicamente, o sistema é composto por uma rede de sensores (208 microfones e 7
câmaras de vídeo) que transmite informação para uma rede de processamento distribuído por
vários computadores. O sistema será capaz de reconhecer fala, direccionar os microfones para
um orador, captar a imagem desse orador, etc. Os 200 GB /hora 3 produzidos pelo sistema têm
que ser necessariamente processados com computação distribuída.
3 Informação fornecida pelo NIST.
A Notação GB significa: 10
9 bytes
5
Figura 1.2.3 - AM de 64 microfones produzido pelo NIST.
Para além dos protótipos apresentados, existem também disponíveis no mercado, diversos
dispositivos que utilizam agregados de microfones. Estes agregados normalmente são de
apenas 2 microfones e possibilitam ligação plug-n-play ao PC. Permitem que o utilizador fale
sem se preocupar em estar próximo do microfone. Contudo, o processamento efectuado
nestes dispositivos é a simples soma dos sinais, na maioria dos casos, o que corresponde a
um aumento da relação SNR se o orador estiver a falar de frente (porque as ondas sonoras
chegam ao mesmo tempo a cada microfone) e perto do AM.
Figura 1.2.4 – Câmara e agregado de 2 microfones USB da CreativeLabs.
É importante salientar, realçando a actualidade da investigação sobre este assunto, que a
Microsoft lançou documentação [6] de suporte para o uso de agregados de microfones no
sistema operativo Windows Vista. Esta documentação tem como objectivo incentivar
fabricantes destas tecnologias, fornecendo-lhes linhas de orientação para o desenho de
sistemas (hardware e de software) para uso com o Vista.
6
1.3. Descrição do trabalho efectuado
Este trabalho foi efectuado no grupo de Sistemas Electrónicos de Processamento de Sinal
(SIPS) do INESC-ID.
O objectivo do trabalho foi criar um agregado de microfones para o SIPS e aplicar um algoritmo
de localização de um orador em tempo real utilizando um computador para processar os
dados.
Figura 1.3.1 - AM de 64 microfones construído neste trabalho. Em cima, fotografia com vista de
cima, em baixo, fotografia com vista em perspectiva.
Foi escolhido como base para o projecto, o AM de 64 canais e geometria linear realizado pelo
NIST [7], dado ser um dispositivo com um número suficiente de microfones para poderem ser
realizados diversos estudos e testes. Para além disso, o NIST faculta toda a documentação
relativamente ao AM, estando incluídas algumas bibliotecas de software criadas por eles para
uso em investigação.
No entanto, devido a terem sido encontradas algumas lacunas e inclusive falhas de projecto
neste AM, foi decidido redesenhar o sistema de aquisição de dados. Assim, o AM construído
durante este trabalho foi projectado de forma a corrigir alguns erros de projecto do AM do NIST
e também de forma a minimizar as dimensões e os custos do aparelho.
Grande parte do tempo dispendido para este trabalho foi o projecto e o fabrico do AM. Durante
a fase de projecto, e após ter sido construído o agregado de microfones, realizaram-se
diversos testes para confirmar o funcionamento correcto do sistema desenvolvido.
Após a fase de concepção e de testes para verificar o funcionamento do sistema, iniciou-se um
estudo acerca dos algoritmos aplicáveis a agregados de microfones. Mais especificamente, no
âmbito da localização de um orador. Efectuaram-se diversos scripts em Matlab, de forma a
testar algoritmos de localização com AM, com o objectivo de se encontrar a solução mais
7
simples e ideal para implementar em tempo real com recurso à linguagem C e utilizando um
único computador.
1.4. Descrição sumária de algoritmos basilares utilizados em AM
Os agregados de microfones têm conduzido a estudos em diversas áreas, tais como,
aplicações de AM no reconhecimento de fala [10], localização de fonte sonora [11] [13] [14]
[16], aparelhos para deficientes auditivos [15], etc. Diversos algoritmos têm sido estudados e
aperfeiçoados, de forma a realizar as funções em cima descritas.
A localização robusta de uma fonte sonora é um objectivo com interesse crescente. Com
utilização em múltiplos cenários, não só onde é necessário direccionar a sensibilidade dos
microfones do AM (filtragem espacial), melhorando a SNR nessa direcção, e evitar o uso de
microfones “close-talk”, mas também, por exemplo, fornecer a direcção de um orador para
apontar uma câmara de filmar automaticamente, localizar a direcção de um orador para dirigir
um robot nessa direcção, detectar a direcção do fogo de artilharia num cenário militar, etc.
Os diversos algoritmos utilizados para efectuar localização encontram-se distribuídos
essencialmente em 2 grandes grupos [16]. O primeiro é baseado no cálculo directo do atraso4
com que a onda sonora chega a cada microfone do AM. O segundo baseia-se em encontrar
esse atraso obtendo a direcção do sinal com maior energia obtida através de um beamforming5
realizado para diversas direcções, este algoritmo é denominado por Steered Response Power
(SRP).
Assim, neste subcapítulo pretende-se fazer uma breve abordagem, alusiva à localização de
uma fonte sonora, para fazer um enquadramento das funcionalidades de um AM. Foi escolhido
este tema porque, como veremos, está intimamente relacionado com todos os outros.
Pretende-se assim, apresentar os dois algoritmos utilizados em AM, que foram a base para os
algoritmos implementados no AM construído.
1.4.1. Algoritmo TDOA
O TDOA é uma técnica que tem sido bastante explorada e utilizada no cenário dos agregados
de microfones. Isto, devido à sua comprovada eficácia em sistemas de radar, sonar, agregados
de antenas, etc. No entanto, nestes sistemas, a banda de frequência é estreita e a SNR é
4 Designado em inglês como TDOA (time delay of arrival).
5 Beamforming é uma técnica de filtragem espacial, que consiste em dirigir a sensibilidade de um conjunto
de sensores numa dada direcção.
8
elevada. Por outro lado, no caso da localização de um orador com AM, a situação torna-se
mais complicada, dado que no interior de um edifício existe sempre demasiado ruído acústico e
o sinal de fala é considerado de banda larga. Existe também, o problema de reverberações
excessivas dentro de uma sala, o que torna o problema sempre mais complexo do que numa
situação de espaço livre ou semelhante. Para além destes factores, no processamento de sinal
em radares ou agregados de antenas, é assumido que o sinal vem sob a forma de onda plana,
e muitas vezes no processamento com AM isso não acontece, podendo a onda ser esférica
devido às distâncias inferiores entre o emissor e o receptor. Deste modo, é necessário fazer
processamento dedicado a cada tipo de ambiente6, de forma a obter bons resultados.
Este algoritmo, como se observa na figura seguinte, assume uma situação de onda plana.
Figura 1.4.1 – Cenário para localização com TDOA.
Analisando a Figura 1.4.1, conclui-se que sabendo a distância d entre o par de microfones X1 e
X2, a frequência de amostragem (Fs) de captura do sinal, a velocidade de propagação das
ondas acústicas (c), e calculando o atraso () com que o sinal chega a cada microfone, poder-
se-á estimar a direcção da fonte sonora através da expressão:
( 1.4.1)
Como se constata na equação (1.4.1), neste algoritmo, a exactidão com que se calcula o
atraso com que o sinal chega aos microfones influencia a precisão na localização do orador.
Este atraso é o denominado TDOA, sendo que o cálculo do TDOA com o mínimo de erro é
fundamental. É de notar que este exemplo abrange apenas 2 microfones, dado que o cálculo é
feito com um par de microfones. No entanto, poder-se-á considerar o cálculo dos ângulos
6 Relativamente ao ruído presente (ar condicionado, televisão, etc.) e à forma da sala onde o AM opera.
9
obtidos com recurso a diferentes pares de microfones de forma a obter uma média dos ângulos
estimados e calcular um ângulo mais preciso.
A correlação cruzada é a técnica mais comum para obter o TDOA. A correlação é máxima
quando os sinais são semelhantes, assim, esse máximo indica a diferença do tempo de
chegada do sinal aos microfones.
Considerando o sinal proveniente de uma fonte sonora recebido no microfone i, com
atraso i,
( 1.4.2 )
Em que, é o sinal recebido no microfone i, e é o ruído.
A relação cruzada no domínio do tempo, entre os sinais X1 e X2 respectivos aos 2 microfones
é dada por:
( 1.4.3 )
Para reduzir o tempo de computação necessário a correlação é implementada no domínio da
frequência para aproveitar os algoritmos rápidos da FFT (Fast Fourier Transform). Depois de
efectuada a correlação é calculada a transformada inversa de Fourier para voltar ao domínio do
tempo e obter-se o TDOA.
( 1.4.4 )
( 1.4.5 )
Na expressão anterior, Conj significa o complexo conjugado. O máximo valor de
corresponde ao TDOA.
As expressões anteriores estão no domínio de tempo contínuo. No entanto, neste tipo de
aplicações, o tempo é discreto dado que o sistema é digital. Assim, fazer os cálculos no
domínio da frequência é computacionalmente vantajoso, dado que a transformada discreta de
Fourier pode ser calculada com recurso ao rápido algoritmo FFT.
Em tempo discreto, a expressão equivalente à anterior é:
( 1.4.6 )
Significando que a correlação é realizada numa janela de k amostras. O valor N, depende da
frequência Fs com que os sinais dos microfones são amostrados, e representa o número de
amostras que são necessárias analisar para procurar o máximo da correlação.
10
( 1.4.7 )
Na equação (1.4.7) o valor d é a distância entre os dois microfones e c é a velocidade do som.
Assim, como se pode observar, quanto maior for a frequência de amostragem ou a distância
entre microfones, maior será a resolução com que se calcula a direcção da fonte sonora, uma
vez que o número de amostras que representam o TDOA será maior. No entanto, existem
contrapartidas. Quanto maior for a distância entre microfones, maior terá que ser a distância
entre estes e a fonte sonora, para que a situação seja de onda plana. Existe também o facto do
resultado da correlação poder eventualmente piorar, com o aumento da distância entre
microfones. Isto pode acontecer devido às alterações sofridas no sinal, dado o maior percurso
da onda acústica.
Os algoritmos com base no TDOA são computacionalmente pouco exigentes, sendo por isso
uma boa opção para aplicações em tempo real. No entanto, é um algoritmo pouco eficaz para
realizar detecção de vários oradores, e para além disso, obtém resultados relativamente fracos
em situações de ruído excessivo e em ambientes onde existe muita reverberação.
Como se verá no capítulo 3, existem variações deste algoritmo que permitem melhorá-lo de
forma significativa. Serão também demonstradas implementações efectuadas no AM
construído, e apresentados os resultados para as diferentes variações do algoritmo.
1.4.2. Algoritmo SRP
Este algoritmo tem por base a técnica de beamforming. Esta técnica é uma das formas mais
utilizadas para fazer filtragem espacial. A necessidade de realizar filtragem espacial surge
principalmente, quando o ruído e o sinal de interesse ocupam a mesma banda de frequências.
Nesse caso, a comummente utilizada filtragem no domínio da frequência, não pode ser
utilizada para separar o sinal desejado do ruído. A filtragem espacial requer que os sinais e o
ruído sejam adquiridos também no domínio do espaço e, neste caso, analogamente ao domínio
da frequência, existe a necessidade de que o sinal e o ruído estejam separados no espaço.
O algoritmo para realizar beamforming mais utilizado é o Delay and Sum. Tal como o nome
indica, este algoritmo consiste em somar os sinais que chegam aos sensores depois destes
serem atrasados. O atraso que se impõe no sinal de cada sensor, varia consoante a direcção
da fonte sonora que se pretende captar. Neste caso, é assumido também que a onda sonora é
plana quando chega aos microfones.
11
Figura 1.4.2 – Representação do algoritmo beamforming.
Na Figura 1.4.2 representa-se a realização de beamforming sabendo à partida qual o atraso
entre os sinais, dado que nas saídas y, os sinais se encontram em fase. Como se verifica, os
sinais são atrasados de forma a ficarem em fase sendo, de seguida, somados. Visto que o
sinal de interesse é semelhante nos vários canais, ou seja, é correlacionado, então esse sinal
será somado construtivamente, sendo amplificado. No entanto, o ruído presente nos diversos
canais é geralmente não correlacionado, e por isso, após a soma dos sinais, o ruído não é
amplificado. Teoricamente a soma do ruído será, de forma equi-provável, construtiva ou
destrutiva, resultando na manutenção do ruído, e assim, no aumento da SNR.
O algoritmo SRP consiste em realizar beamforming para diferentes valores de atraso e,
consequentemente, várias direcções. Assim, a direcção para a qual a soma dos sinais for
maior, representa a direcção com maior energia, que provavelmente é a direcção do orador.
Para se obterem bons resultados com beamforming é necessário que os atrasos sejam
precisos, ou seja, que correspondam efectivamente à direcção desejada. Convém salientar,
que de modo a realizar todos estes processamentos nos sinais, estes sistemas são digitais.
Por isso, o que realmente é processado são as amostras dos sinais, existindo sempre a
limitação da resolução espacial devido à frequência de amostragem. Ou seja, os incrementos
nos atrasos terão resolução dada pelo período de amostragem. Esta limitação pode ser
atenuada, aumentando a frequência de amostragem, ou então, realizando interpolação entre
amostras para obter atrasos com resolução superior.
Outra limitação, pelo facto de se ter um sistema digital, é o típico “aliasing” dos sinais, devido
ao teorema da amostragem que diz que apenas se conseguem reconstruir os sinais que têm
uma frequência inferior a metade da frequência de amostragem. Algo semelhante acontece em
AM, e provoca aliasing espacial, condicionando o espaçamento entre microfones. De forma
12
análoga, o espaçamento entre microfones tem que ter no mínimo metade do comprimento de
onda da maior frequência presente.
O SRP torna-se um algoritmo computacionalmente exigente, quando aplicado de forma a obter
uma boa estimativa da direcção do orador, conseguindo, no entanto, bons resultados em
ambientes reverberantes e com ruído moderado [16]. Para além disso, é um algoritmo que
realiza a detecção do orador efectuando filtragem espacial, o que permite obter para além da
direcção do orador, uma melhoria na relação SNR.
1.5. Estrutura do trabalho
O presente documento encontra-se estruturado por capítulos da seguinte forma:
Capitulo 1 - No presente capítulo é realizada uma introdução ao trabalho. Primeiro é
efectuado um enquadramento do tema discutido neste trabalho. De seguida,
apresenta-se uma resenha do estado da arte, descrevendo outros projectos realizados
nesta área. É efectuada uma descrição sumária do trabalho efectuado, e por último são
descritos algoritmos basilares utilizados em AM, no âmbito da estimativa do tempo do
atraso entre sinais e da filtragem espacial.
Capitulo 2 - Descreve-se todo o sistema construído. Primeiramente dá-se uma visão
geral acerca do sistema desenvolvido. Depois, são detalhados os diversos circuitos
eléctricos que compõem o sistema. Por último é descrito o método para calibrar o
sistema.
Capitulo 3 - São demonstrados exemplos de implementação de algoritmos e
resultados obtidos no sistema construído. Os algoritmos implementados foram a
correlação cruzada para estimar os atrasos entre os sinais nos vários microfones do
AM e o algoritmo de filtragem espacial denominado beamforming utilizando a técnica
delay and sum. Por fim, são referidos os resultados obtidos com processamento dos
algoritmos em tempo real.
Capitulo 4 - São referidas as principais conclusões retiradas do trabalho realizado e
trabalhos futuros.
13
2. DESCRIÇÃO DO SISTEMA
Como já foi referido, o AM construído neste trabalho, tem como base o AM produzido pelo
NIST, tendo sido feitas alterações apenas nas placas de aquisição de dados, uma vez que foi
identificado um erro de projecto e detectadas algumas lacunas relativamente ao que se
pretendia no sistema desenvolvido.
É de relembrar também que a microboard é uma placa electrónica que constitui o módulo de
aquisição de dados deste AM (composto por 8 placas microboard).
Neste capítulo encontra-se descrito todo o sistema construído neste trabalho. Primeiramente é
dada uma visão geral sobre o sistema em causa. De seguida é descrita em pormenor a versão
original, e posteriormente a versão modificada das placas de aquisição de dados. É também
efectuada a descrição do funcionamento da motherboard. Por último, é demonstrado o
processo utilizado para calibração das sensibilidades dos microfones.
2.1. Projecto e Funcionamento do Agregado de Microfones
O AM construído neste trabalho tem uma geometria linear e é constituído por um módulo de
aquisição de dados e um módulo de controlo e comunicação. O módulo de aquisição de dados
é composto por 8 placas de circuito impresso7 denominadas à semelhança do projecto do NIST
por microboards, e o módulo de controlo e comunicação constitui-se numa só placa
denominada motherboard. Basicamente, cada microboard é constituída por 8 microfones que
capturam os sinais sonoros, que serão amplificados e convertidos em formato digital. Os sinais
digitais de cada canal (8 por cada microboard), são enviados para a motherboard, que ao
mesmo tempo, controla e sinaliza a comunicação com os conversores analógico digitais (AD)
das microboard. A motherboard recebe os dados provenientes das 8 microboard (sendo no
total 64 canais áudio), e coloca-os em pacotes UDP8 para serem enviados por Ethernet. Como
núcleo central da motherboard utiliza-se uma FPGA (Field Programmable Gate Array) Spartan–
II da Xilinx.
7 Denomina-se em Inglês por PCB (Printed circuit board).
8 UDP é um acrónimo do termo inglês User Datagram Protocol que significa protocolo de datagramas de
utilizador. O UDP faz a entrega de mensagens independentes entre aplicações.
14
Figura 2.1.1 - Arquitectura do AM realizado.
Este AM captura sinais de áudio que são convertidos em sinais digitais com 24 bits com
frequências de amostragem de 22050 ou 44100 kHz. Quando ligado a um computador, a
comunicação é feita por Ethernet, utilizando-se assim comunicação por sockets para controlar
o AM e para receber dados deste.
Quando se liga o AM, este faz um pedido de BOOTP (Bootstrap Protocol) na rede ao qual está
ligado, sendo necessário que haja um computador servidor de DHCP (Dynamic Host
Configuration Protocol) que permita atribuir ao AM um IP pré-definido. Assim, o AM fica
conectado ao computador, sendo possível controlá-lo através deste. Através do computador é
possível escolher qual a frequência de amostragem pretendida, definir se o AM trabalha no
modo master ou slave, dar inicio à captura, etc.
Este AM poderá ser ligado a, pelo menos, mais 4 em cadeia, dado que existe a possibilidade
de ligar dois AM e existirem sinais para sincronismo entre motherboards. Assim, poder-se-ão
ter 256 microfones a capturar em simultâneo.
O NIST desenvolveu documentação [8] detalhada acerca dos passos a seguir para ligar o AM
ao computador. Para além disso, o NIST também disponibiliza algumas Bibliotecas de software
em linguagem C, desenvolvidas para ambiente Linux para capturar dados do AM. Existe
também um programa denominado “osciloscope” que permite visualizar e ouvir os sinais
produzidos por cada microfone.
15
2.2. Versão original da Microboard
Figura 2.2.1 - Placa Microboard original.
Apesar do custo acrescido, a placa de circuito impresso utilizada nesta microboard é de 4
camadas. Desta forma, é possível estabelecer 2 planos dedicados à alimentação, o plano de
massa (GND) e de alimentação (VCC), reduzindo assim a possibilidade de haver interferências
electromagnéticas entre a alimentação e os sinais. Os microfones têm um espaçamento de 2
cm entre eles. Assim, obtém-se um AM com 130cm de comprimento (dado que no total são 8
microboards, perfazendo um agregado de 64 microfones).
Andar de pré-amplificação
Os microfones utilizados são do tipo “electreto” omnidireccional (modelo Panasonic WM-52B, já
descontinuado). São microfones com boa relação qualidade/preço e que cumprem bem os
requisitos de resposta em frequência para aquisição de voz. Estes microfones necessitam de
uma tensão 1,5 V para alimentar um amplificador interno.
16
Figura 2.2.2 – Esquema eléctrico do andar de amplificação de um canal (versão original).
Como se observa na Figura 2.2.2, a alimentação dos microfones é de 1,5 V efectuada através
de uma bateria externa de 5 V e das resistências R1,R2 e R3, sendo que o condensador C2
filtra a tensão de alimentação do microfone.
O condensador C3 bloqueia a componente contínua do sinal que entra no amplificador. Nesta
versão é usado um amplificador da série OPA2228 com muito baixo ruído e boa precisão. O
condensador C1 faz filtragem da tensão de alimentação do amplificador. A resistência R6
drena a corrente da entrada do amplificador e juntamente com C3, proporciona filtragem passa-
alto com frequência de corte a aproximadamente 25 Hz.
Como os amplificadores são alimentados com +5 V e GND, é necessário criar uma massa
virtual de 2,5 V (passa a designar-se GND virtual). Isso é feito através de um divisor resistivo
composto por R10 e R13, fazendo os condensadores C7 e C8 o seu desacoplamento para
sinais fracos.
O ganho do andar de amplificação é realizado, como se observa, em dois andares. O primeiro
andar tem um ganho de 100, controlado pelas resistências R7 e R4. O segundo andar tem um
ganho de 1,2 realizado por R11 e R15. É adicionado um potenciómetro de 50 Ω para fazer um
ajuste fino no ganho dos microfones. O último condensador C4 é utilizado também para
remover a componente contínua do sinal.
17
Andar de digitalização
O andar de digitalização é realizado pelo conversor AD PCM1802 de 24bits.
O circuito de amplificação da Figura 2.2.2 é repetido 8 vezes numa placa microboard. Cada
circuito corresponde a um canal analógico. Como os conversores AD utilizados são estéreo,
ter-se-á 1 AD por cada dois circuitos de amplificação (2 microfones correspondentes às
entradas esquerda e direita do AD), perfazendo um total de 4 conversores AD por cada
microboard.
Figura 2.2.3 – Esquema eléctrico do andar de digitalização da versão original.
Este conversor utiliza modulação sigma-delta e é ideal para conversão de sinais de áudio de
precisão.
Os sinais de controlo LRCK, BCK e SCKI são o sinal de amostragem, bit clock (relógio dos bits
de dados) e a frequência do sistema, respectivamente.
O autor deste projecto (elemento do NIST) refere que no esquema da Figura 2.2.3, as ligações
são todas de acordo ao datasheet9 do conversor AD. No entanto, foi detectada uma
discordância nesta afirmação. Detectou-se que tudo estava de acordo com a datasheet,
excepto o sinal FSYNC que está ligado a VCC (5 V). Contudo, na datasheet o limite máximo de
tensão neste pin será de VDD+0,3 V (3,3+0,3=3,6 V, neste caso). Depois de alguns testes com
uma placa desta versão original, notou-se que este erro de projecto fazia com que a tensão
VDD estivesse a 4,2 V e não a 3,3 V, como seria de esperar. Na versão alterada, como se
9 Documento de características do componente.
18
observará adiante, o pin FSYNC foi ligado ao VDD como é indicado na datasheet, e a tensão
VDD ficou, como era esperado, a 3,3 V.
Circuito de Alimentação
Esta parte do circuito fornece a alimentação digital e analógica para toda a microboard.
Figura 2.2.4 – Circuito de alimentação e de conexão à placa Motherboard da versão original da
microboard.
Foram usados 2 reguladores de tensão, LM2940 REG1117 para os 5 V (VCC) e 3,3 V (VDD),
respectivamente.
As fichas de conexão entre a motherboard e microboard são de 16 pinos, mas 8 desses pinos
estão ligados à massa. Acresce ainda 4 pinos para levar os sinais de dados provenientes dos
conversores AD à motherboard. Os 4 pinos restantes conduzem os sinais de controlo vindos da
motherboard e a alimentação para as microboards. O cabo de ligação é plano (designado “flat-
cable”) e por isso existe um fio ligado à massa entre cada fio que transporta um sinal, de forma
a reduzir a possibilidade de interferências.
2.2.1. Motivações e consequentes alterações na Microboard
A primeira razão pela qual foi redesenhada a placa microboard está relacionada com o erro de
projecto encontrado (referido na página anterior), em que os conversores AD têm o pino
FSYNC ligado a VCC, ao invés de VDD. Esta situação provocou uma situação anormal,
colocando o hardware em esforço (dado que aparentemente tudo funcionava correctamente),
de se ter a alimentação digital a 4,2 V, em vez dos 3,3 V que seriam de esperar na saída do
regulador de tensão REG1117 presente em cada microboard. Para além deste importante
factor, verificou-se que o espaço na placa microboard original poderia ter sido melhor
aproveitado, podendo a dimensão da placa ser reduzida substancialmente para uma área 3
19
vezes inferior. Ao reduzir a dimensão da placa, o tamanho das pistas eléctricas foi reduzido,
diminuindo assim a possibilidade de interferências electromagnéticas.
A versão original é realizada numa placa de 4 camadas, algo que se verificou ser um excesso
para este tipo de aplicação, dado que, redesenhando a placa em 2 camadas com algum
cuidado em manter distâncias entre os sinais e as alimentações, não haveria problemas visto
que as frequências de operação são relativamente baixas. Assim, o facto de a placa passar a
ter 2 camadas, reduz significativamente o seu custo, sem no entanto alterar o desempenho do
sistema.
Outro problema detectado foi o facto do amplificador operacional escolhido ser demasiado caro
devido às suas características. O principal motivo que levou a concluir ser desnecessário o
amplificador da série OPA2228, prende-se com a situação do ruído introduzido pelos
microfones ser muito superior ao introduzido pelos amplificadores, tornando inúteis as boas
características destes amplificadores operacionais. As características que se consideraram
exageradas no OPA2228, foram a largura de banda de 33 MHz e a taxa de inflexão (slew rate)
de 10 V/us. A largura de banda necessária, na versão original, seria apenas o produto entre o
ganho máximo do amplificador e a frequência máxima em que ele iria operar. O que para a
versão original daria um resultado de:
( 2.2.1 )
O maior ganho no andar de amplificação na versão original é 100 e a frequência máxima do
sinal que entra no amplificador é da ordem dos 20 kHz para sinais áudio. Assim, verifica-se que
apenas seria preciso um amplificador com largura de banda de 2 MHz. O slew rate também é
excessivo, como se constata pela expressão seguinte:
( 2.2.2 )
O valor de Amax é a amplitude máxima (em Volts) que poderemos ter na saída do amplificador,
fmax é a máxima frequência desse sinal. O valor de slew rate obtido é o valor mínimo para não
haver distorção na banda passante. No entanto, é recomendado multiplicar este valor por 4, de
forma a garantir a não existência de distorção no sinal devido a slew rate. Assim, o valor
recomendado seria:
( 2.2.3 )
Como se comprova, o amplificador escolhido para a versão original, é excessivamente bom
para esta aplicação. A escolha para a versão modificada recaiu no amplificador operacional
OPA2374AID, dada a sua relação qualidade preço. Apresenta uma largura de banda de 6,5
MHz e slew rate de 5 V/us. Este amplificador foi a solução ideal encontrada, devido ao seu
custo reduzido, e ter características adequadas ao pretendido. Como se verá, apenas se
utilizou um amplificador por cada microfone, e não dois como na versão original. O objectivo de
20
existirem dois amplificadores por canal na versão original é, pelo facto de assim se permitir um
ajuste fino do ganho entre microfones (ganho ajustável de 120 a 125). Contudo, esse ganho foi
projectado para um único tipo de situação, ou seja, um ganho reduzido de modo a permitir ao
AM funcionar numa sala pequena. Todavia, reparou-se que com o ganho tão baixo, não é
possível aproveitar a gama dinâmica dos conversores AD, no caso em que a fonte de som está
mais afastada do AM. Como este AM teria que ser flexível para diversos estudos em diferentes
situações, decidiu-se colocar um único amplificador, em que o ganho pode variar entre
aproximadamente 100 e 300. Assim, pode ser feito um ajuste do ganho, não tão preciso, mas
no entanto, adaptável a diversas situações. Verificou-se que a largura de banda obtida para o
amplificador operacional seria de 6 MHz, como se verifica na seguinte expressão:
( 2.2.4 )
Como se constata, o amplificador das séries OPA2374AID cumpre plenamente os requisitos, e
tem um custo substancialmente inferior ao OPA2228.
Outra das alterações efectuadas foi no circuito que cria a massa virtual de 2,5 V. Na versão
original, existe um divisor resistivo e 2 condensadores (por cada canal) para garantir que não
existem oscilações nessa massa virtual. Contudo, foi tomada a opção de alterar essa parte do
circuito, dado que não seria necessário usar um circuito com 4 componentes por cada canal
para realizar essa função. A opção tomada foi utilizar um seguidor de tensão (buffer com um
amplificador operacional) depois do divisor resistivo, colocando condensadores de 100 nF e
100 uF para garantir a qualidade desse sinal que alimenta todos os canais da microboard,
reduzindo-se significativamente o número de componentes.
Por último, realizou-se uma alteração no filtro RC que corta a componente contínua na entrada
do amplificador operacional. Essa malha RC na versão original tem um condensador de 220 nF
e uma resistência de 30 kΩ, resultando numa frequência de corte dada por:
( 2.2.5 )
No entanto, para não cortar as frequências baixas, havia a possibilidade de aumentar a
capacidade do condensador ou aumentar a resistência, tendo sido tomada a opção de
aumentar a resistência para 300 kΩ, para não aumentar a reactância do condensador,
reduzindo a frequência de corte para 2,4 Hz, um valor aproximado que na prática se revelou
inferior ao valor real, como se observa na Figura 2.3.11 do sub-capítulo 2.3.3.
Durante o redesenho da microboard foram realizados diversos testes em breadboard e
simulações em Pspice, para averiguar o comportamento do novo circuito, testes esses que se
mostraram compatíveis com o esperado. Não serão apresentados esses resultados iniciais,
uma vez que mais à frente serão apresentados os resultados reais, obtidos com a placa
microboard final.
21
2.3. Descrição da Microboard construída neste projecto
De seguida descreve-se o funcionamento das microboards construídas. Efectua-se uma
descrição dos esquemas eléctricos, e serão mencionadas as características técnicas
resultantes dos testes realizados após a concepção do sistema.
Figura 2.3.1 - Fotografia de uma das placas microboard construídas neste projecto.
2.3.1. Descrição do funcionamento
Andar de Amplificação
Figura 2.3.2 – Andar de amplificação na versão modificada.
Como se observa na Figura 2.3.2 e de acordo com o que foi referido anteriormente, usou-se
apenas um amplificador operacional por cada canal, o que permitiu utilizar um circuito
integrado (contendo dois amplificadores) por cada 2 microfones. Esta alteração fez com que a
corrente consumida por cada microboard fosse inferior à da versão original, o que se traduz
num AM com um consumo energético inferior.
22
Em cada canal, o divisor resistivo para criar a massa virtual de 2,5 V foi substituído por apenas
um condensador para melhorar a qualidade dessa alimentação, que neste caso, é criada num
único circuito da microboard representado na Figura 2.3.5.
Os microfones utilizados nesta versão não são iguais aos da versão original, dado que esses
foram descontinuados. Foram escolhidos microfones com características idênticas da marca
Projects Unlimited. Estes microfones são omnidireccionais, apresentam 2,2 kΩ de impedância
e uma sensibilidade de -44 (+/- 2) dB na gama de frequências indicada na Figura 2.3.10.
Basicamente, a descrição do funcionamento deste circuito é semelhante à da versão original,
sendo a diferença mais significativa, o ganho elevado que este circuito pode ter face à versão
original. Como já foi explicado, a necessidade de podermos controlar o ganho com uma
margem tão grande, colocando para isso o potenciómetro de 100 kΩ, surge face à versatilidade
desejada para este AM, no sentido de que assim pode ser ajustado para funcionar em salas de
diferentes dimensões.
Andar de digitalização
Figura 2.3.3 – Andar de digitalização na versão modificada.
O andar de digitalização pode ser visto como um bloco onde entram dois sinais analógicos
provenientes do andar de amplificação de cada microfone, e também os sinais de controlo
vindos da motherboard. A saída do andar de digitalização é uma linha de dados contendo a
informação digital relativa a 2 microfones. Assim, em cada placa microboard existem 4 circuitos
semelhantes ao da Figura 2.3.3, correspondentes aos 8 microfones de cada placa.
23
Verifica-se na Figura 2.3.3 que o andar de digitalização constituído pelo conversor AD
PCM1802, cumpre as recomendações que vêm na sua datasheet. Neste caso, as únicas
alterações em relação à versão original são o facto dos pinos FSYNC e PDWN estarem ligados
à alimentação digital (Vdd). No entanto, no caso do pino PDWN é irrelevante estar ligado ao
Vcc (versão original) ou Vdd, dado que há um inversor lógico logo à entrada, e a tensão de Vcc
(5V) pode ser suportada nessa entrada. O mesmo não acontece com FSYNC, porque como
vimos anteriormente, este pino não suporta uma tensão superior a Vdd+0,3 V (na versão
original estava ligado a Vcc).
O conversor está ligado de forma a funcionar em modo slave. Organiza os 24 bits justificados à
esquerda em complemento para 2. A ligação do AD foi efectuada para que o modo de filtro
passa-baixo esteja activado, o que significa que elimina a componente continua na entrada.
Figura 2.3.4 – Esquema indicativo do formato dos dados nas saídas do conversor AD.
Andar de Alimentação
Figura 2.3.5 – Buffer que cria tensão para massa virtual de 2,5V.
24
O circuito da Figura 2.3.5 produz a tensão GND virtual de 2,5 V. O circuito é um simples
seguidor de tensão utilizando um amplificador operacional.
Figura 2.3.6 – Circuito de alimentação da microboard modificada.
O circuito de alimentação é na sua essência, igual ao da versão original. Foi utilizado um
condensador de 100 uF electrolítico, do tipo SMD para reduzir o tamanho da placa. As 8 placas
ligadas em paralelo à alimentação da motherboard criam uma capacidade total de 1000 uF,
através destes condensadores de 100 uF, o que é suficiente para reduzir as flutuações do valor
da tensão de alimentação. Como se observa na Figura 2.3.6, a ligação entre a massa digital e
a massa analógica é realizada através de uma resistência de zero ohms. Na realidade, na
placa microboard, a ligação entre DGND e AGND é realizada em dois locais através de duas
resistências de zero ohms. Esses locais foram escolhidos de forma a se encontrarem
fisicamente próximos de um par de conversores AD, para reduzir a possível diferença entre as
massas (procedimento aconselhado na datasheet do conversor AD).
Figura 2.3.7 - Ligação para fonte de alimentação dos microfones.
A alimentação dos microfones, na versão original, é realizada através de uma bateria, de forma
a evitar interferências de espúrias e das harmónicas dos 50 Hz da rede eléctrica. Neste caso,
decidiu-se ligar o Vbat a uma fonte bem filtrada, de forma a evitar esses problemas. Para além
disso, como se observa na Figura 2.3.7, existe um condensador de 100 uF por cada
microboard, que em paralelo perfazem um total de 1000 uF.
25
2.3.2. Montagem e desenho PCB
Todas as placas de circuito impresso (PCB) para realização da microboard produzidas neste
trabalho foram criadas no Laboratório de circuitos impressos no pólo Tagus Park do Instituto
Superior Técnico.
A primeira parte desta fase consistiu no projecto da placa de circuito impresso, o qual foi
realizado com o software Protel da Altium Design. Após o desenho estar finalizado, foi
produzida uma placa de teste para confirmar a integridade e o correcto funcionamento. Depois
de testada, foi criada a versão final, e foram construídas as oito placas microboards.
Durante o desenho do circuito PCB, foi dada especial atenção a diversos factores, tais como:
comprimento curto e separação suficiente das pistas que transportam sinais, criação de um
plano de massa, simetria do circuito, etc.
Figura 2.3.8 - Desenho do circuito PCB. Camada superior em cima, camada inferior em baixo.
A construção das placas PCB foi realizada através de uma máquina furadora/fresadora CNC
que realiza os furos nas placas. Após a furação, as placas foram submetidas a um processo de
metalização electroquímica dos furos. Seguiu-se, novamente com a máquina fresadora CNC, a
remoção do cobre de forma a reproduzir o desenho da Figura 2.3.8 (sendo a parte escura do
desenho, a que contem o cobre). Depois de realizado o circuito na placa PCB, foi-lhe colocada
uma película verde resistente à soldadura (solder-mask). Mediante um processo fotográfico, a
película é colada em toda a placa excepto nos pontos de solda onde se colocam os
componentes electrónicos.
Após a construção das placas PCB, procedeu-se à montagem manual dos 157 componentes
de cada placa.
26
2.3.3. Características técnicas
Para testar a funcionalidade das microboards, foram analisados alguns aspectos e efectuados
alguns testes.
Figura 2.3.9 – Resposta em frequência dos microfones (encontra-se na datasheet).
Figura 2.3.10 – Sensibilidades dos microfones em função da frequência (encontra-se na
datasheet).
Os microfones do tipo electreto são ideais para tipos de aplicação em que se pretende uma
resposta plana nas frequências da voz humana, tal como se observa na Figura 2.3.9. O facto
de possuírem elevada impedância (2,2 kΩ) traduz-se num baixo consumo energético,
consumindo cada microfone uma energia na ordem dos 0,3 mW.
27
Figura 2.3.11 - Resposta em frequência do andar de Amplificação.
Na Figura 2.3.11 está representada a curva de resposta em frequência do andar de
amplificação. Esta medida foi efectuada com o analisador de espectros/redes (HP4195A). Para
efectuar a medição, substituiu-se um dos microfones de uma microboard pelo gerador de sinal
do analisador de espectros. Esta medição foi efectuada com o circuito de amplificação ajustado
para o ganho máximo (ou seja, neste caso, um ganho de tensão teórico máximo de
aproximadamente 49 dB), dado que é o pior caso devido à influência do slew rate e da largura
de banda do amplificador operacional. Como se verifica no gráfico, o ganho mantém-se
aproximadamente constante na banda de frequências de interesse. O ganho tem o valor de
48,39 dB nessa banda.
A partir dos 20 kHz, como seria de esperar, o ganho diminui devido às características do
amplificador operacional usado, que como vimos anteriormente, foi escolhido de forma a ter
uma largura de banda de 20 kHz.
Relativamente ao consumo energético, as microboards da versão original apresentavam um
consumo de 250 mA, na versão modificada, esse consumo reduziu-se para metade (125 mA)
devido ao facto de se usar apenas 1 amplificador operacional por canal. Assim, o número de
circuitos integrados com amplificadores operacionais foi reduzido para metade.
Dado que as placas microboard são alimentadas com 6 V, a potência consumida por cada
placa é de 750 mW.
Os 8 microfones cuja tensão de alimentação é independente, consomem um total de 2,4 mW.
28
2.4. Motherboard
A motherboard é o bloco central de todo o AM. É a motherboard que recolhe os sinais digitais
dos 64 microfones das microboards e os envia através de Ethernet para um computador. No
entanto, a motherboard é também capaz de receber instruções do computador. Essas
instruções poderão ser: iniciar ou finalizar a captura, trabalhar em modo slave ou master, ou
ainda porceder à alteração da frequência de amostragem.
Neste trabalho, foi construída uma motherboard idêntica à do projecto do NIST. Algumas
excepções, devido ao facto de alguns componentes terem sido descontinuados do mercado,
serão explicadas durante a descrição.
A placa PCB da motherboard foi produzida no fabricante de placas PCB denominado PCBpool,
mediante ficheiros em formato Gerber10
disponibilizados pelo NIST. A placa PCB é de 4
camadas.
Figura 2.4.1 - Fotografia da Motherboard.
10 Um ficheiro Gerber, é um formato de ficheiro standard, utilizado pelas empresas de fabricação de
placas PCB. Este ficheiro contém as informações necessárias, para que uma máquina controlada por um computador, construa a placa exactamente como ela foi desenhada.
29
A descrição e explicação do funcionamento da motherboard irá ser dividida em diversos blocos:
Alimentação e consumo energético
Memória PROM
Osciladores
Aquisição de Dados
FPGA – “Field Programmable Gate Array”
Memória
Ethernet
Endereço MAC
Formato dos pacotes de dados
Leds indicadores de estado
Como já foi referido, à excepção de alguns detalhes que analisaremos de seguida, e que não
alteram a estrutura global, a motherboard não sofreu qualquer alteração em relação ao projecto
original. Apresenta-se, de seguida, uma breve descrição, seguindo os vários blocos acerca do
funcionamento da motherboard. No entanto, informação mais detalhada poderá ser encontrada
na documentação do NIST [7].
Figura 2.4.2 – Ilustração do funcionamento da Motherboard.
30
Alimentação e consumo energético
Figura 2.4.3 – Esquema eléctrico da Alimentação da Motherboard.
A FPGA requer alimentações de 2,5 V e 3,3 V para entradas e saídas (I/Os). Contudo, as
memórias e os osciladores requerem 5 V. Para obter estas tensões foram usados 3
reguladores de tensão (REG104).
Para alimentar o AM, através do conector da motherboard, é necessária uma fonte de tensão
de 6 V com capacidade para fornecer uma corrente máxima de 2 A. A motherboard consome
500 mA de corrente, e como vimos anteriormente, cada placa microboard consome 125 mA, o
que indica um consumo total do AM de 1,5 A. Em termos energéticos, o AM consome
aproximadamente 9 W.
É de salientar que na versão original do AM, é recomendada uma fonte de 3 A, dado que a
corrente que consome é de 2,5 A.
31
Versão
Original
Versão Modificada
Consumo de uma placa microboard
(mW)
1500
750
Consumo dos 8 microfones de uma
placa microboard (mW)
2,4 2,4
Consumo da motherboard (mW) 3000 3000
Consumo TOTAL do AM (mW) 15000 9000
Tabela 2.4.1 - Consumo energético do AM (alimentado a 6V).
Memória PROM
Na memória PROM, é inserido todo o código VHDL que descreve o funcionamento da FPGA
(basicamente, descreve o hardware no qual a FPGA se irá tornar). Dado que a PROM da
versão original foi descontinuada, optou-se por encontrar outra solução. Decidiu-se utilizar uma
memória Flash Rom (modelo XCF01SV020C) que permite ser reprogramada, o que passou a
ser uma vantagem face à versão original. No entanto, devido ao encapsulamento dos circuitos
integrados ser diferente, teve que ser construída uma pequena placa de circuito impresso para
colocar a memória flash e adaptar no suporte da motherboard. Contudo, esta memória funciona
de forma equivalente à da versão original, pelo que esta alteração não causa quaisquer
problemas.
Figura 2.4.4 – Fotografia do adaptador de memória construído.
Através de um cabo JTAG pode ligar-se a memória flash a um computador e reprogramá-la a
qualquer momento. Na folha de características desta memória flash, encontra-se o esquema de
ligação.
32
Osciladores
São necessários dois osciladores, um que gera 33,688 MHz e outro que gera 25 MHz. O
primeiro é utilizado como relógio principal, a partir do qual a FPGA gera os sinais de controlo
para as Microboard (LRCK, BCK, SCKI), o segundo é utilizado para o bloco de Ethernet.
Aquisição de dados
Uma vez que é necessário enviar os sinais de controlo para as 8 microboards, e os andares de
saída da FPGA não conseguiriam enviar o sinal para 32 conversores AD, são utilizados 8
seguidores de clock (modelo CDCV304) para levar o sinal a cada uma das microboard. Na
Figura 2.4.5, encontra-se o esquema explicativo da aquisição de dados das placas microboard,
e do envio dos sinais de controlo para as mesmas.
Figura 2.4.5 - Bloco de aquisição de dados e envio de sinais de controlo.
FPGA
O modelo escolhido foi a Spartan-II 2.5V FPGA. Para este projecto, a escolha desta FPGA foi
ideal, visto possuir um número suficiente de portas programáveis e ser uma FPGA de baixo
custo.
Memória
As memórias da Toshiba utilizadas na versão original encontram-se descontinuadas. Assim,
houve necessidade de encontrar memórias equivalentes, e a escolha recaiu sobre o modelo da
BRILLIANCE SEMICONDUCTOR (modelo BS62LV4006SCP55). A única diferença entre elas é
o tempo de acesso, sendo que as memórias escolhidas têm um tempo de acesso inferior, o
que não causa qualquer problema.
33
As memórias funcionam como buffers de dados, que guardam as amostras respectivas aos
sinais dos microfones, até que seja suficiente para criar um pacote UDP, que como se verá
contém 960 Bytes de dados.
Ethernet
Para controlador de Ethernet utilizou-se o modelo da SEEQ Technology 80225 10/100 BASE-
TX. Este controlador permite ser configurado para operar Ethernet a 10 Mbps ou 100 Mbps.
Endereço MAC
Para que o AM tenha um endereço MAC único, existe um componente (denominado DIP) com
8 comutadores que possibilitam escolher 256 endereços diferentes para esse efeito. O
endereço MAC é composto por 6 bytes, sendo que só é possível alterar o último byte do
endereço que tem o seguinte formato:
MAC: 10:00:00:00:03:XX
Formato dos pacotes de dados
Como já foi referido, a comunicação entre o AM e o computador é realizada sobre Ethernet
utilizando o protocolo UDP. O porto de comunicação do AM é definido como sendo o 32767.
Figura 2.4.6 – Formato da Trama UDP.
Todos os segmentos do pacote UDP são gerados na FPGA. Os primeiros quatro segmentos
correspondem à fase de conexão entre os dois dispositivos, o AM e o computador. O segmento
DATA é o que contém os dados provenientes dos 64 microfones. O segmento DATA contém
diversos subsegmentos para organização dos dados na memória. Porém, aquele que contém a
informação dos microfones é o subsegmento DATA, cujo valor é fixado pelo AM em 960 bytes,
correspondentes a janelas de 5 amostras de 24 bits por cada um dos 64 canais. A informação
complementar (overhead + 3 subsegmentos do segmento Data) das tramas UDP contém 62
bytes, o que indica que o AM poderá transmitir a um ritmo dado por:
( 2.4.1 )
Assim, o AM envia dados para o computador a um ritmo de 4,5 MB/s (para Fs = 22050 kHz) ou
9 MB/s (para Fs = 44100 kHz).
34
Relativamente ao formato dos dados, resta referir, que são guardados em memória com o
formato Big Endian. O que significa que o byte mais significativo é guardado no endereço de
memória mais baixo.
Leds indicadores de estado
Na motherboard encontram-se diversos leds que indicam o estado do AM. A figura seguinte
representa os leds contidos na motherboard e os respectivos nomes. Na tabela 2.2 é efectuada
a descrição do significado dos leds.
Figura 2.4.7 - Significado dos Leds da Motherboard.
Ligado Apagado Intermitente
On/Off On Off
Ligação
detectada
Detecta Ligação Ethernet Não detecta ligação
Ethernet
Detecta actividade na
Ethernet
Colisão Há colisões na
comunicação
Não há colisões na
comunicação
Full duplex Comunicação em Full
Duplex
Comunicação em Half
Duplex
10Mbps/100Mbps Ligação a 10 Mbps Ligação a 100 Mbps
IP atribuído AM com IP atribuído AM sem IP atribuído
Captura On Não está a capturar Está a capturar
44,1/22,05 kHz Fs=44,1 kHz Fs=22,05 kHz
Slave/Master Modo Slave activado Modo Master activado
Tabela 2.4.2 - Leds indicadores do estado do AM.
35
2.5. Calibração dos ganhos dos amplificadores
A calibração dos sinais provenientes dos microfones num agregado de microfones é
necessária [9] para se poderem aplicar os diversos algoritmos de processamento para efectuar
localização, beamforming, e muitos outros, sem aumentar o erro devido a uma má calibração.
Isto, porque os diversos algoritmos assumem que existem sinais semelhantes nos diferentes
microfones, algo que não seria possível se a sensibilidade quer dos microfones, quer do andar
de amplificação, não for igual, ou muito próxima. No entanto, existem também diversos
algoritmos que são robustos [9] a divergências entre as respostas, pelo menos em relação ao
ganho, dos diversos canais de um AM.
A razão para existir em cada canal de cada microboard um potenciómetro que faz o ajuste de
ganho, é como já foi referido, tornar o AM versátil e poder ser ajustado, não só para operar em
diversos ambientes (relativamente à distância em relação ao AM a que um orador tipicamente
irá falar), mas também para poderem ser igualadas (calibração) as respostas de cada canal.
Como se sabe, os fabricantes quer dos microfones, quer dos outros componentes electrónicos,
especificam sempre uma tolerância nos valores das características destes dispositivos (neste
caso, a sensibilidade dos microfones usados tem tolerância de +/-2dB). Essas diferenças têm
que se tentar corrigir empregando para isso o ajuste do ganho, utilizando-se assim (no caso
deste AM) os potenciómetros de cada andar de amplificação.
Contudo, como também já foi referido, neste AM o ganho do andar de amplificação de cada
canal tem uma margem de ajuste relativamente grande devido ao potenciómetro de 100 kΩ,
factor este que diminui a sensibilidade de ajuste na calibração. No entanto, como já foi dito,
este factor garante versatilidade ao AM para poder operar em espaços de diferentes
dimensões. Dado não ter sido possível dispor de uma sala isenta de reverberações (tal como
uma câmara anecóica), a calibração foi efectuada com uma fonte de ruído acústico branco no
laboratório do SIPS.
De modo a evitar reflexões próximas, cujas intensidades são maiores e poderiam provocar
variações significativas em cada microfone, o AM foi colocado no centro da sala e, para além
disso, como se observa na Figura 2.5.1, a estrutura de suporte do AM não contém nenhuma
superfície que permita haver reflexões próximas. Para além de não causar reflexões, a
estrutura do AM foi realizada de forma a impedir a existência de efeitos ressonantes, algo que
é provável acontecer, caso essa estrutura seja uma caixa oca.
36
Figura 2.5.1 – Fotografia do AM suportado por um tripé.
2.5.1. Método utilizado
A calibração foi realizada no laboratório do SIPS no INESC-ID, com recurso a um método
semelhante ao utilizado em [10], que consiste no cálculo do ganho relativo de cada microfone.
O método utilizado consiste na comparação do ganho dos diversos canais, calculado da
seguinte forma:
( 2.5.1 )
Na equação (2.5.1) tem-se que corresponde à amplitude máxima média do microfone n, N
corresponde ao número total de microfones do AM e o Ganho(n) é o valor relativo, que mede o
desvio em dB da amplitude máxima do microfone n em relação à média das amplitudes
máximas dos N microfones. Se obtivermos valores negativos no Ganho(n), significa que o
microfone n está com o ganho inferior à média dos microfones, sendo necessário aumentá-lo
com auxílio do potenciómetro, e vice-versa (isto, assumindo a situação em que o sinal captado
é igual em todos microfones).
Para conseguir visualizar os ganhos e fazer o ajuste nos potenciómetros de forma rápida,
realizou-se um programa em linguagem C. Este programa permitiu capturar o sinal dos 64
canais do AM, e fazer o processamento de janelas com 22050 amostras (1 segundo de
37
captura), de forma a obter o ganho relativo de cada microfone em tempo real, permitindo assim
um ajuste e simultaneamente a visualização no ecrã, dos ganhos.
Para dar início à calibração, procedeu-se ao ajuste global dos potenciómetros para 50 kΩ.
Escolheu-se 50 kΩ por ser um valor que permitia um ganho que se adequa (observação
realizada através do programa “osciloscope”) ao laboratório do SIPS, que seria o local onde o
AM iria funcionar. Este ajuste realizou-se com o auxílio de um multímetro.
2.5.2. Resultados
Depois do ajuste dos potenciómetros a 50 kΩ, deu-se início a uma calibração mais precisa,
com o auxílio do programa em linguagem C e com o AM a capturar som proveniente de uma
fonte sonora realizada com um computador e uma coluna. Essa fonte sonora, gerava ruído
branco, cuja característica principal, para este caso, é o espectro em frequência plano. Assim,
tentou garantir-se uma calibração equilibrada em todo o espectro, e para além disso, garantir
que o efeito das reverberações na sala fosse desprezível, dado que o ruído branco é a fonte
sonora ideal para garantir estas condições.
De salientar, que as medições que se observam a seguir foram realizadas com o mínimo ruído
acústico possível (durante a noite), com a fonte sonora de frente para o AM (como se observa
na Figura 2.5.2 e numa situação de onda plana (em [3] refere-se aproximadamente 4 m) em
relação às dimensões do AM. A formulação de onda plana é essencial para que os microfones
possam ser calibrados numa situação em que a fonte sonora os atinge com a mesma
intensidade e ao mesmo tempo (por estar de frente para o AM a um ângulo de 90 graus), ou
seja, são excitados de igual forma.
Figura 2.5.2 – Disposição dos diversos elementos durante a calibração.
Mostra-se de seguida o gráfico com os ganhos antes de uma calibração fina, e a medição
efectuada depois de os microfones estarem devidamente calibrados com o auxílio do programa
realizado em linguagem C. A primeira medida efectuada (potenciómetros ajustados a 50 kΩ)
38
origina desvios na ordem dos 6 dB, como se pode ver na Figura 2.5.3, sendo que, depois de os
canais estarem calibrados, os ganhos apresentaram uma diferença máxima de 1dB.
Figura 2.5.3 - Gráfico dos ganhos relativos para uma fonte sonora de ruído branco.
Como se verifica, existe uma melhoria significativa nos ganhos dos diversos canais depois da
calibração fina. Em baixo, pode observar-se a imagem do programa “osciloscope”
apresentando 16 canais depois de o AM estar calibrado.
Figura 2.5.4 - Imagem do programa “osciloscope” depois de AM estar calibrado.
Após calibração com ruído branco, obtiveram-se resultados satisfatórios na análise de sinais de
voz, que era realmente o que interessava. Na Figura 2.5.5 observa-se que as divergências
máximas são da ordem de 1,5 dB, o que representa um bom resultado para um sinal de voz.
10 20 30 40 50 60-8
-6
-4
-2
0
2
4
6
Microfone(n)
Gan
ho (
dB)
Depois de Calibração fina
Antes de Calibração fina
39
Figura 2.5.5 – Gráfico dos ganhos obtidos com sinal de fala.
10 20 30 40 50 60-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
Microfone(n)
Gan
ho(d
B)
Ganhos para sinal de fala
40
41
3. ALGORITMOS IMPLEMENTADOS NO SISTEMA
CONSTRUÍDO
Esta fase de implementação de algoritmos, teve como objectivo verificar as capacidades do AM
utilizando algoritmos relativamente simples, obtendo resultados experimentais que revelassem
concordância ao nível da teoria que os fundamenta.
Neste capítulo é realizada a descrição dos algoritmos que foram implementados num
computador para processar os sinais do AM. Simultaneamente com a descrição, são exibidos
gráficos correspondentes a simulações em Matlab, com base em sinais reais capturados pelo
AM. Para apurar qual o algoritmo mais eficaz, o sinal foi capturado em ambiente com elevado
ruído acústico. Após a descrição dos algoritmos serão apresentados os resultados que se
obtiveram.
Seguidamente irá ser descrito o algoritmo utilizado para detectar a localização de um orador
em tempo real. A aplicação produzida foi realizada em linguagem C, no entanto, antecederam-
se diversas simulações em Matlab para apurar qual seria o algoritmo mais indicado para ser
realizado em tempo real.
Por fim, são apresentados resultados relativos aos tempos de processamento dos algoritmos
descritos anteriormente, implementados em linguagem C, de forma a serem averiguadas as
potencialidades deste AM com processamento em tempo real num computador.
3.1. Algoritmos de Localização
Neste subcapítulo é efectuada uma descrição da implementação do algoritmo de correlação
cruzada apresentado na secção 1.4.1.
Quando se aplicam os algoritmos de localização aqui descritos, é necessário garantir a
condição de onda plana. Esta condição reduz significativamente a complexidade do problema.
Sendo o AM construído um sistema linear com 64 microfones, apenas poderá realizar detecção
de um orador a duas dimensões. Foi necessário estabelecer um plano de referência para
calcular a direcção do orador.
42
Figura 3.1.1 - Referência para o cálculo do ângulo da direcção do orador, (planta).
É de notar que o microfone de referência utilizado na implementação dos seguintes algoritmos,
designa-se na Figura 3.1.1 como Mic 1, ou seja, nos resultados apresentados nas próximas
secções deste subcapítulo, o ângulo calculado será sempre em relação ao microfone Mic 1.
Os dados reais utilizados para exemplificar os algoritmos foram os 64 sinais capturados pelo
AM na seguinte situação:
Figura 3.1.2 - Disposição dos elementos no laboratório do SIPS, aquando a captura de teste para algoritmos de localização.
43
Figura 3.1.3 - Sinal capturado pelo microfone de referência Mic1 e pelo Mic18.
O sinal capturado apresenta uma baixa relação sinal ruído de 9 dB, dado o elevado nível de
ruído ambiente causado pelas máquinas de ar condicionado. Os efeitos das reverberações
devido à geometria da sala e, inclusivamente, as diversas bancadas com equipamento de
laboratório influenciam também a degradação da SNR.
Para a aplicação dos algoritmos, o sinal é dividido em blocos com um número de amostras
igual a uma potência de 2, para efeitos do cálculo mais eficaz da FFT. O tamanho deste bloco
foi escolhido de modo a ser suficientemente pequeno para se poder efectuar o seguimento do
orador em tempo real, com uma taxa de actualização de pelo menos 500 ms11
. Em
contrapartida, quanto maior o tamanho da janela utilizada, melhor será o resultado da
correlação e maior a fiabilidade da estimativa.
Neste caso, decidiu-se utilizar janelas de 8192 amostras. Esta janela corresponde a 370 ms, o
que parece ser um valor aceitável para eliminar a influência negativa das reverberações12
na
correlação. Assim, para efeitos de explicação dos algoritmos seguintes, utilizam-se 8192
amostras de uma parte vozeada do sinal da Figura 3.1.3.
Como exemplo, os algoritmos foram aplicados aos sinais dos microfones #1 e #18 do AM.
A distância entre cada microfone consecutivo neste AM é de 2 cm, o que perfaz uma distância
de 34 cm entre os microfones #1 e #18. Assim, tem-se um atraso máximo de:
( 3.1.1 )
11 Um orador que se encontre a uma distância de 3 m relativamente ao AM, deslocando-se a uma velocidade de 0.55 m/s significa que faz um deslocamento de 10
0.
12 Tipicamente as reverberações surgem durante um tempo máximo de 300 ms.
0 1 2 3 4 5 6 7 8 9 10-1
-0.5
0
0.5
1
0 1 2 3 4 5 6 7 8 9 10-1
-0.5
0
0.5
1
Tempo (s)
A
mpl
itude
nor
mal
izad
a
Mic 1
Mic 18
44
A equação (3.1.1) traduz o máximo atraso que pode haver entre o microfone #1 e #18. Ou seja,
quando a onda acústica percorre o AM perpendicularmente (corresponde a zero graus na
referência utilizada).
Após calcular o atraso entre os sinais, determina-se o ângulo utilizando a expressão:
( 3.1.2 )
A resolução no cálculo do ângulo é não linear, como se pode observar na equação (3.1.2) e na
Figura 3.1.4.
Figura 3.1.4 – Relação entre o ângulo calculado e o atraso obtido após correlação entre os
sinais dos microfones #1 e #18.
O ângulo que se pretende calcular será 30 graus. Contudo, tendo em conta a limitação da
resolução, apenas se conseguirá obter, no melhor caso, 30,49 graus correspondente a um
atraso de -19 amostras. Neste caso, o erro é mínimo porque o ângulo pretendido está próximo
de um dos valores possíveis, no entanto, o erro poderia chegar aos ±6 graus, no caso do
ângulo pretendido ser 10 graus.
No gráfico acima, pode reparar-se que o “atraso” (pode ser atraso ou avanço) varia entre -22 e
+22 amostras. Significa que quando a onda sonora chega primeiro ao microfone #1
(referência), e só depois ao microfone #18, é obtido um atraso, ou seja, o sinal no microfone
#18 está atrasado em relação ao sinal de referência. O caso contrário, quer dizer que a onda
sonora atinge primeiro o microfone #18, e assim sendo, está em avanço em relação ao
-20 -15 -10 -5 0 5 10 15 200
20
40
60
80
100
120
140
160
180
X= -19
Y= 30.4945
Atraso
Âng
ulo
teta
em
gra
us
45
microfone #1. Caso o atraso seja nulo, a onda acústica chega ao mesmo tempo em ambos os
microfones, significando que vem paralela em relação ao AM. Assim, para efeitos de cálculo do
ângulo com a equação (3.1.2) e de acordo com a referência usada na Figura 3.1.1, utiliza-se o
valor simétrico de .
3.1.1. GCC – Generalized Cross Correlation
A técnica de correlação cruzada (GCC) para o cálculo do atraso, é a técnica mais usada em
processamento de sinais com AM. Como já foi referido na secção 1.4.1, esta técnica consiste
na correlação entre os sinais de um par de microfones, de modo a calcular o atraso entre eles
e, assim, calcular a direcção do orador.
Assim, têm-se duas janelas de 8192 amostras respectivas aos sinais do microfone #1 e
microfone #18.
O primeiro passo é calcular a correlação entre os sinais das duas janelas. Esse cálculo é
efectuado no domínio da frequência com recurso ao algoritmo FFT para calcular a
transformada discreta de Fourier13
. Depois de obter ambas as janelas no domínio da frequência
é efectuada a correlação, multiplicando o sinal da janela correspondente ao sinal do microfone
de referência, pelo conjugado do sinal na janela respectiva ao sinal a correlacionar.
De seguida, para voltar ao domínio do tempo, é necessário realizar a transformada inversa
discreta de Fourier, calcular o máximo da correlação e obter o atraso entre os sinais.
No gráfico seguinte apresenta-se o resultado da correlação dos dois sinais.
Figura 3.1.5 - Resultado da Correlação com GCC.
13 Denominada em inglês Discrete Fourier Transform (DFT).
46
Após se obterem os 8192 valores resultantes da correlação, analisam-se apenas aqueles cujo
valor tem significado real. Ou seja, neste caso, verificou-se na equação (3.1.1) que o atraso ou
avanço máximo que poderá existir é de ±22 amostras. Assim, analisa-se na correlação, qual o
máximo entre as amostras -22 e 22.
O resultado que se obtém, neste caso concreto, é de -20 amostras, e devido à referência
angular utilizada, este valor é aplicado na seguinte fórmula como sendo positivo:
( 3.1.3 )
Como se pode reparar, neste caso, utilizando GCC, o valor obtido não foi o valor esperado de
30,49 graus.
3.1.2. GCC-PHAT
A correlação cruzada é um modelo óptimo para calcular o atraso em presença de ruído branco.
No entanto, em situações reais, essa condição é improvável, sendo a correlação cruzada, por
si só, um método pouco utilizado.
No entanto, a GCC-PHAT14
é uma técnica com resultados bons para ambientes reverberantes.
Este algoritmo consiste numa correlação cruzada multiplicada por uma função de peso. A ideia
base [17] consiste num processamento adaptativo não linear no domínio da frequência.
( 3.1.4 )
Sendo a função de peso e representa a transformada inversa de Fourier relativa
à correlação entre no domínio da frequência ( ) multiplicada pelo factor de
peso.
Dependendo do ambiente onde o sistema irá funcionar, poderá ser calculada ou estimada uma
função de peso. No entanto, existem diversas funções de peso já estudadas que podem ser
aplicadas, sendo a mais conhecida e utilizada, a que corresponde à transformada de fase.
( 3.1.5 )
A correlação utilizando a função de peso PHAT, vem normalizada à unidade, e idealmente
corresponde a um impulso. No entanto, na prática, em ambientes reverberantes, não se obtém
um impulso ideal.
14 PHAT- Phase transform em inglês, significa transformada de fase.
47
Figura 3.1.6 - Resultado da correlação com GCC – PHAT.
Pode observar-se na figura anterior o efeito de alisamento para todos os valores da correlação
excepto no máximo. O resultado obtido revela concordância com o que foi dito anteriormente,
observando-se na figura um máximo de correlação com características de um impulso
deformado. Pode verificar-se também, que utilizando a função de peso PHAT, o valor de atraso
encontrado corresponde ao esperado. Neste caso, o valor encontrado é de -19 amostras o que
corresponde ao ângulo esperado de 30,490:
( 3.1.4 )
Assim, confirma-se uma nítida melhoria devida à utilização da função de peso PHAT.
3.1.3. Resultados
Os exemplos anteriores, referem-se à correlação entre o microfone #1 e o #18. No entanto, o
AM construído neste trabalho tem 64 microfones. Para testar o funcionamento destes 2
algoritmos utilizando os 64 canais, a correlação cruzada foi calculada entre o sinal do
microfone de referência #1 e o sinal de cada um dos outros 63 microfones, obtendo-se assim
um resultado para cada par de microfones utilizado. De seguida pode visualizar-se o gráfico de
comparação dos resultados obtidos, aplicando o algoritmo GCC e GCC-PHAT, utilizando
janelas de 8192 amostras referentes a um segmento vozeado real obtido na situação da Figura
3.1.2.
48
Figura 3.1.7 - Resultados de GCC-PHAT e GCC para orador a 300.
No gráfico da Figura 3.1.7 pode observar-se uma vez mais o melhor funcionamento do
algoritmo GCC-PHAT face ao GCC. A limitação da resolução no atraso obtido reflecte-se, como
era de esperar, no ângulo obtido. A forma de dente de serra que se verifica deve-se à limitação
de resolução, sendo o dente de serra cada vez mais estreito para microfones mais distantes.
No entanto, o facto de a forma de onda não ser estritamente plana, como é assumido nos
algoritmos, leva a que o ângulo diminua para os microfones mais distantes. De facto, sendo a
onda esférica, levará mais tempo a chegar aos últimos microfones daquele que é previsto na
situação de onda plana.
Na situação em que o orador está a 900 de acordo com o plano de referência da Figura 3.1.1,
obtém-se a precisão máxima na detecção dessa direcção. O facto de o atraso calculado entre
os sinais corresponder a zero amostras permite obter os 90 graus:
( 3.1.5 )
Contudo, no seguinte gráfico, identifica-se perfeitamente o facto de a onda não poder ser
considerada plana para uma distância de 3 metros em relação ao AM, dado que para os
microfones mais distantes começa a haver atrasos entre os sinais, e assim, é determinado um
ângulo diferente de 900.
10 20 30 40 50 6020
25
30
35
40
45
50
55
60
X: 18
Y: 30.49
Microfone
Âng
ulo
Cal
cula
do e
m g
raus
GCC - PHAT
GCC
49
Figura 3.1.8 - Resultados de GCC-PHAT para orador a 900.
Assim, como seria de esperar, note-se que a maior resolução que se consegue obter se
verifica para a correlação entre os sinais dos microfones mais distantes dado que o dente de
serra cada vez é mais estreito. Neste sentido, só será possível tirar proveito dessa situação
para situações em que o orador se encontra suficientemente afastado do AM, de modo a que a
onda acústica possa ser considerada plana quando atravessa o AM. Outra solução seria fazer
os cálculos assumindo uma onda acústica esférica, o que seria computacionalmente pouco
eficaz.
O gráfico seguinte traduz a resolução máxima do ângulo da direcção do orador, que é possível
obter através deste AM através do cálculo do atraso entre os canais mais distante. Consegue
obter-se uma resolução na ordem de 1 grau. Verifica-se também, que com o método
apresentado, a resolução é máxima para ângulos entre 500 e 130
0.
Figura 3.1.9 - Relação entre o ângulo calculado e o atraso obtido após correlação entre os
sinais dos microfones #1 e #64.
10 20 30 40 50 6050
55
60
65
70
75
80
85
90
95
Microfone
Âng
ulo
calc
ulad
o em
gra
us
GCC - PHAT
-80 -60 -40 -20 0 20 40 60 800
20
40
60
80
100
120
140
160
180
Atraso
Âng
ulo
calc
ulad
o
50
3.2. Algoritmo de filtragem espacial
Em [10] pode encontrar-se uma formalização teórica da aplicação de filtragem espacial num
AM com geometria idêntica ao deste trabalho. Serão aqui referidas algumas das mais
importantes conclusões.
Seguidamente serão mostrados os resultados de um teste realizado com dados reais para
confirmar a capacidade de filtragem espacial do AM construído com o tradicional algoritmo
delay and sum referido na secção 1.4.2.
3.2.1. Limitações do Sistema
Um AM é um sistema capaz de amostrar simultaneamente no tempo e no espaço, uma onda
acústica que se propaga numa determinada direcção. Pelo facto de existirem diversos
sensores (microfones) devidamente espaçados, é possível realizar amostragem espacial do
sinal. É necessário ter em consideração o fenómeno de aliasing descrito pelo teorema da
amostragem formulado para o domínio do tempo, que analogamente abrange o domínio do
espaço.
Assim, aliasing espacial traduz uma amostragem insuficiente para caracterizar o sinal ao longo
do espaço. O comprimento de onda do sinal não pode ser inferior ao espaçamento entre
sensores, caso contrário existiram ambiguidades na direcção de chegada da onda. Para evitar
o aliasing espacial a onda sonora deve ser amostrada em pelos menos dois pontos do seu
comprimento de onda. Analogamente ao teorema da amostragem, a frequência máxima do
sinal captado pelo AM não pode ter comprimento de onda inferior ao dobro da distância entre
microfones adjacentes.
Sendo este AM linear e os sensores uniformemente espaçados, pode definir-se uma frequência
de amostragem espacial dada por:
( 3.2.1 )
Em que o período de amostragem espacial é definido pela distância d entre microfones e
vem em ciclos por metro.
A frequência espacial depende da velocidade, do ângulo de chegada da onda acústica nos
sensores e também da frequência do sinal através da seguinte relação:
( 3.2.2 )
A frequência espacial máxima será na situação em que a onda acústica se dirige
perpendicularmente ao AM sendo cos()=1. Analogamente ao teorema da amostragem, pode
51
ser calculado um limite máximo para o espaçamento entre sensores de modo a não existir
aliasing espacial:
( 3.2.3 )
Assim, a distância máxima entre microfones é determinada de acordo com a frequência
máxima que se pretende captar. Neste AM a distância entre sensores é de 2 cm, resultando
uma frequência máxima de 8,5 kHz. Como se constata é um limite adequado a sinais de fala.
O fenómeno de aliasing espacial torna a directividade do AM ambígua, ou seja, o diagrama de
directividade pode passar a ter vários lobos principais, ou então lobos secundários muito
acentuados.
Para além deste fenómeno, é referido também em [10], o problema da perda de resolução
espacial para baixas frequências. A abertura do AM (L), é definida como a área finita na qual os
microfones captam o sinal. Quanto maior a abertura de um AM, maior será a capacidade de
definir um sinal ao longo do espaço. No caso deste AM, sendo linear, tem-se uma abertura
correspondente à distância entre os dois microfones mais afastados.
3.2.2. Implementação do algoritmo “Delay and Sum”
O Delay and Sum, é uma das técnicas mais populares no âmbito da filtragem espacial. Como
foi referido na secção 1.4.2 do capítulo 1, esta técnica permite orientar a directividade do AM
numa determinada direcção.
Figura 3.2.1 – Algoritmo Delay and Sum.
O sinal que chega a cada microfone do AM é compensado de um atraso devido às diferenças
do tempo de chegada da onda sonora a cada microfone. O sinal presente em cada microfone,
é devidamente alinhado com o sinal de um microfone de referência, para seguidamente serem
52
todos somados. Após a soma, o sinal de voz desejado é somado construtivamente, dado que
está presente em todos os microfones, no entanto, o ruído é somado de uma forma arbitrária e
naturalmente será atenuado face ao sinal de voz. A principal vantagem deste algoritmo é ser
fácil de implementar, no entanto, para se obter bons resultados, é necessário necessita de um
número elevado de microfones. Para garantir bons resultados o ruído ambiente tem que ser
espacialmente não correlacionado.
Para testar este algoritmo no sistema construído, foi realizada uma captura com o seguinte
esquema:
Figura 3.2.2 – Disposição dos elementos durante captura de teste para aplicação do algoritmo Delay and Sum.
Para se conseguirem perceber nitidamente as melhorias provocadas pela aplicação do
algoritmo, foi utilizada uma fonte de ruído branco produzida pelas colunas de um computador.
O nível de som desse ruído era elevado face à voz do orador de modo a conseguir verificar a
sua atenuação após aplicação do algoritmo.
Pelo facto de não se verificar a situação de onda plana, os sinais não poderiam ser
simplesmente somados para dirigir o AM na direcção do orador. Assim, os sinais foram
alinhados de acordo com os atrasos obtidos aquando o cálculo dos ângulos da Figura 3.1.8,
cuja posição do orador era idêntica.
Aplicando o algoritmo na direcção do orador, é esperado que o ruído branco seja atenuado de
forma significativa. Na sala onde foi efectuado o teste existia um ruído acentuado provocado
por máquinas de ar condicionado. Foi verificado que o ruído ambiente referido pode ser
considerado espacialmente correlacionado e assim, não se espera que o algoritmo elimine este
ruído.
53
Figura 3.2.3 – Gráficos com sinal resultante do Delay and Sum (esquerda) e sinal no microfone #1.
Na Figura 3.2.3 verifica-se o resultado do algoritmo Delay and Sum. Como se verifica existe
uma nítida redução do ruído branco. A relação sinal ruído é melhorada em 4 dB após aplicação
do algoritmo Delay and Sum.
3.3. Implementação de algoritmos em tempo real
De modo a averiguar quais as potencialidades do sistema com processamento em tempo real
através de um computador, foram implementados os algoritmos descritos anteriormente
utilizando a linguagem C sobre o sistema operativo Linux.
Inicialmente, implementou-se o algoritmo GCC-PHAT (correlação cruzada com filtragem no
domínio da frequência), tendo sido criada uma pequena aplicação que mostra no ecrã do
computador qual a direcção do orador em tempo real.
Por fim, foram calculados os tempos reais de execução de cada operação relativamente ao
algoritmo de cálculo dos atrasos entre sinais, e o algoritmo delay and sum. Assim, podem ser
retiradas algumas conclusões relativas à possibilidade de aplicar algoritmos em tempo real
neste sistema, utilizando um computador.
O computador utilizado para implementar os seguintes algoritmos foi um Intel Pentium M 1,73
GHz, com 1,5 GB de memória RAM15
.
15 Acrónimo em inglês que designa “Random Acess Memory”, significando em português “Memória de
Acesso Aleatório”.
54
3.3.1. Aplicação para localização do orador
Esta aplicação foi desenvolvida com o objectivo de calcular o desempenho do algoritmo GCC-
PHAT em tempo real. No seguinte diagrama de blocos é descrito o seu funcionamento.
Figura 3.3.1 – Diagrama explicativo da aplicação para detecção do orador.
Processo Principal
Processamento de dados
FFT dos sinais
recebidos
Correlação com
função de peso
PHAT
Calcula ângulo
Boa estimativa
Sub-Processo desenha
Inicialização de modo
gráfico
Conexão ao AM
Inicializa captura
com Fs= 22050Hz
Recebe pacotes
de dados do AM
Calcula ruido ambiente
Recebe pacotes
de dados do AM
indice=8191
Preenche Buffers
N
S
Reinicia indice
Processamento de dados
Sinal>2*Ruido ambiente
S
N
CICLO
S
Fim de
Processo
N
55
Esta aplicação recebe pacotes de dados UDP enviados pelo AM. Cada pacote, como se viu no
capítulo 2.4, contém 5 amostras de cada canal (um total de 64 x 5 amostras). Logo através da
seguinte expressão verifica-se que o tempo entre pacotes é de:
( 3.3.1 )
sendo N o número de amostras por canal em cada pacote. Assim, para não haver perda de
pacotes, tem que se garantir que o tempo de processamento entre a recolha de pacotes não
ultrapassa os 227 s. Nesta aplicação, esse intervalo entre recolha de pacotes (denominado
CICLO na Figura 3.3.1), é utilizado apenas para recolher as amostras de 3 canais, relativos aos
microfones #1, #15 e #20. Neste mesmo intervalo, as amostras (24 bits cada) são convertidas
em valores com 32 bits sendo de seguida guardadas em tabelas (buffers) com comprimento
para armazenar 8192 amostras. Depois de as tabelas estarem preenchidas com as amostras
respectivas aos 3 canais, é verificado se o valor máximo do sinal do canal de referência (canal
#1), é superior ao dobro do valor máximo de ruído ambiente16
(detectado no início da
aplicação). Se for maior é chamado o sub-processo (thread) que efectua o processamento dos
sinais e realiza o cálculo do ângulo. Para não haver perda de amostras, o processamento é
realizado em paralelo com a captura de dados do AM. O sub-processo de processamento de
dados, realiza a correlação entre o canal de referência #1 e os canais #15 e #2017
, obtendo-se
assim, a estimativa de dois ângulos. Para averiguar a correcção da estimativa, os dois ângulos
obtidos são comparados e se não diferirem em mais de um valor absoluto de 100
18 é
considerada uma boa estimativa, consistindo o resultado final na média entre os dois ângulos
obtidos, resultado esse que por sua vez é mostrado em ambiente gráfico através do sub-
processo “desenha”.
16
Método expedito para inibição do cálculo do ângulo.
17Sinais escolhidos de forma a ser garantida a condição de onda plana.
18 Valor obtido mediante a máxima diferença que se pode obter devido à limitação da resolução.
56
Figura 3.3.2 - Ambiente gráfico da aplicação para localização do orador. No caso desta imagem, o orador encontra-se na direcção correspondente a 90 graus.
A probabilidade de erro na estimativa do ângulo utilizando este método depende do ambiente
onde o sistema está a funcionar, dado que a forma da sala e o ruído ambiente são
determinantes no desempenho do algoritmo. No entanto, na maioria do casos verificou-se
experimentalmente que o erro do ângulo final obtido é na ordem de ±3 graus.
Esta aplicação consistiu apenas num teste ao desempenho do AM em tempo real, de forma a
averiguar as potencialidades deste na implementação de algoritmos mais complicados que
tirem partido de todos os microfones do AM.
No gráfico da figura seguinte representa-se o resultado obtido no seguimento de um orador que
se desloca a uma distância de 1,5 metros do AM durante 30 segundos. O orador anda sobre
uma linha imaginária que consiste numa semi-circunferência de raio 1,5m em torno do
microfone #1 que representa o centro da semi-circunferência.
57
Figura 3.3.3 – Gráfico que traduz o seguimento de um orador que se desloca a uma distância de 1,5m do AM no perímetro entre -180 e 0 graus.
Assim, esta aplicação permite obter a direcção do orador com uma taxa de actualização
aproximada de 375 ms (8192 amostras / 22050 Hz + tempo de processamento), com um erro
na estimativa do ângulo de 3 graus.
Os tempos reais dispendidos por cada sub-processo da aplicação encontram-se na seguinte
tabela:
Tempo ( s)
Tempo total entre pacotes recebidos 227
Tempo utilizado para processamento (armazenamento de
dados e chamada de sub-processo) entre pacotes recebidos
2
Tempo total dispendido pelo sub-processo “processamento de
dados”
5000
Tempo total dispendido pelo sub-processo “desenha” 170
Tabela 3.3.1 – Tempos reais dispendidos pela aplicação de localização de um orador.
Como se pode observar na tabela, não existe qualquer perda de amostras, dado que o tempo
de processamento entre recolha de pacotes é de apenas 2 s face aos 227 s disponíveis.
Também se verifica que relativamente ao processamento de dados apenas se utilizam 5 ms
dos cerca de 370 ms (necessários para voltar preencher os buffers com 8192 amostras e
proceder a novo processamento) disponíveis.
58
A aplicação apresentou uma utilização máxima do CPU19
do computador de 20 % (fase em que
é chamado o sub-processo para processar os dados). Tipicamente a aplicação apresentou
uma utilização de 9 % do CPU.
Conclui-se que utilizando o computador mencionado no início do presente capitulo,
conseguem-se realizar algoritmos mais complexos e/ou utilizar todos os sinais de todos os
microfones.
3.3.2. Modelo proposto e resultados
Aqui serão apresentados resultados que servem de base para futuras implementações em
tempo real utilizando um computador.
Seguidamente é apresentado um método para realizar beamforming (com recurso ao delay and
sum) consoante a direcção do orador, sendo explicadas simultaneamente as rotinas
implementadas para concretização do método.
Figura 3.3.4 – Modelo proposto.
Foi implementada uma rotina que realiza beamforming através do algoritmo delay and sum.
Esta rotina recebe os valores dos atrasos entre cada canal do AM. A compensação dos sinais
é realizada através de 64 buffers circulares (cada um relativo a um canal) que contém um
número de amostras correspondente ao atraso máximo que esse canal poderá ter. A selecção
da amostra de cada canal para posterior soma, é realizada com recurso a ponteiros, o que
como se verá torna a rotina extremamente eficiente do ponto de vista computacional.
19 Unidade central de processamento de um computador.
59
Figura 3.3.5 – Funcionamento de um buffer circular.
Na Figura 3.3.5 é representado o funcionamento geral de um buffer circular. O valor de (n)
representa a amostra actual. O tamanho do buffer circular é dado por N=SP-ST, que por sua
vez também representa o máximo atraso que se pode obter. O ponteiro que percorre o buffer
circularmente é indicado por P. Este aponta para o sito onde se poderá ler primeiramente o
atraso máximo, e depois guardar a amostra actual. Para ler uma amostra com um atraso , que
pode variar entre zero (sem atraso) e N (atraso máximo), é utilizado um segundo ponteiro que
se designa por exemplo com P1. Assim, a amostra em atraso dada por (n-), é lida no buffer
circular através do ponteiro P1=P-. Nos casos limite, se =0, lê-se a amostra em P depois de
guardar a amostra actual. Se =N, lê-se a amostra em P antes de se guardar a amostra actual.
Foi implementada outra rotina que recebe 4 sinais em janelas de 8192 amostras. Os sinais
correspondem aos microfones #1, #22, #43 e #64. O objectivo nesta escolha, é realizar o
cálculo do ângulo entre pares adjacentes. Desta forma é aproximadamente conseguida a
situação de onda plana para estimativa correcta do ângulo. Continua a ter-se um microfone de
referência que será o #1. É calculado o ângulo utilizando os pares de microfones #1 e #22, #22
e #43 e, por último, o #43 e #64. Após se obterem estes ângulos, são calculados os valores de
atraso entre cada microfone com recurso à seguinte equação:
(amostras) ( 3.3.2 )
Sendo a distância entre microfones dada por d. Assim, o único factor variável será cos(), por
isso, o cálculo da parcela que é fixa pode ser realizado previamente, antes da rotina. Após
obter os atrasos relativos entre os sinais dos 64 microfones, estes serão enviados para a rotina
que realiza o beamforming.
A implementação das duas rotinas mencionadas acima teve como objectivo testar a
capacidade de processamento do computador para realizá-las. Assim, as rotinas foram
60
testadas sequencialmente, sem processos paralelos (à excepção dos processos inerentes ao
sistema operativo).
Rotina de Beamforming Tempo real dispendido ( s)
Conversão de 64 amostras (24 bit) em 32bits e
subsequente armazenamento nos buffers circulares
com actualização dos apontadores.
3
Beamforming (soma dos sinais depois de alinhados e
divisão dessa soma pelo número de canais) 6
Envio de resultado do beamforming para placa de som
do computador em amostras convertidas para
PCM24bits.
1,5
Tempo Total 10,5
Tabela 3.3.2 - Tempos reais dispendidos pela rotina de beamforming.
Rotina para cálculo dos atrasos Tempo real dispendido ( s)
4 FFT 1000
3 Correlações com função de peso PHAT 4920
3 IFFT (transformada inversa de Fourier) 675
Cálculo de 3 ângulos 9,3
Cálculo dos 63 atrasos 15
Tempo Total 6619,3
Tabela 3.3.3 - Tempos reais dispendidos pela rotina de cálculo dos atrasos.
Pode observar-se na Tabela 3.3.2 que a rotina de beamforming demora apenas 10,5 s, o que
significa que pode ser implementada no tempo de espera para recolha de pacotes (227 s). O
cálculo dos atrasos poderá ser realizado através de um sub-processo em paralelo.
61
Assim, obter-se-á uma aplicação implementada em computador, que orienta a directividade do
AM consoante a direcção do orador, com uma taxa de actualização de cerca de 377 ms.
Conclui-se que aumentando o tempo entre actualizações os resultados do algoritmo poderiam
melhorar, dado que a estimativa dos atrasos seria mais fiável. É de referir também, que o
computador utilizado opera a uma frequência inferior à dos computadores existentes
actualmente no mercado. Os computadores actuais contêm mais do que um processador,
sendo esse paralelismo, ideal para efectuar este tipo de processamento. Assim, será possível
melhorar em muito a qualidade de detecção do ângulo.
62
63
4. CONCLUSÕES E TRABALHO FUTURO
Neste trabalho construiu-se um AM linear de 64 microfones. O projecto do AM foi baseado num
projecto do NIST, tendo sido feitas alterações nas placas de aquisição de dados. Foi detectada
uma falha no projecto do NIST que consistia numa ligação errada de um pino dos conversores
AD. Essa falha tornava a tensão de alimentação digital significativamente superior ao
esperado, tornando inútil o regulador de tensão para criar essa tensão. Neste projecto, essa
falha foi corrigida e, para além disso, ao redesenhar os circuitos analógicos de
condicionamento do sinal do AM, a dimensão das placas de aquisição de dados foi reduzida de
um factor de 3 vezes, tornando-se este AM num sistema menos dispendioso, com dimensões
inferiores e um consumo energético de aproximadamente metade em relação à versão original.
Os ganhos de tensão dos 64 canais do AM construídos, possuem uma margem de ajuste na
ordem dos 10 dB, dotando o sistema de versatilidade para poder operar em espaços de
diferentes dimensões.
O sistema construído permite realizar diversas funções mediante processamento específico
para efectuar cada uma delas. Através de algoritmos de filtragem espacial, o AM pode adquirir
sinais de fala sem ser necessário o locutor estar próximo deste. Pode ser realizada a
separação espacial entre sinais de ruído e sinais de fala. O AM pode também detectar a
direcção do orador e realizar seguimento de oradores.
Para analisar o desempenho do sistema construído foram realizados diversos testes aos
circuitos. Para além de testes ao nível da análise dos circuitos, que indicaram o funcionamento
do sistema, foram também implementados no sistema algoritmos tipicamente usados neste tipo
de processamento.
Primeiramente foram realizadas simulações em Matlab com dados reais provenientes do AM.
Os algoritmos de correlação cruzada (para detecção do orador) e o algoritmo de filtragem
espacial denominado delay and sum (para aumentar directividade do AM na direcção do
orador) foram os escolhidos para testar as capacidades do sistema. Os resultados obtidos
revelaram concordância em relação à teoria e também em relação a outros trabalhos nesta
área.
Verificou-se que o algoritmo delay and sum não consegue eliminar o ruído ambiente,
funcionando bem apenas quando existe ruído branco. Este fenómeno, resulta da limitação na
directividade do AM para sinais de frequências inferiores a 500 Hz (banda de frequências que
respeita a uma grande porção do espectro dos sinais de fala e também do ruído acústico).
Aumentando a abertura (distância entre os microfones mais distantes) do AM seria possível
obter melhores resultados dado que a resolução espacial seria maior.
64
Para testar o AM em tempo real, foi realizada uma aplicação (utilizando-se linguagem C em
ambiente Linux) em tempo real que detecta a direcção do orador (utilizando para isso apenas 3
microfones do AM). Esta aplicação consegue efectuar seguimento do orador com taxa de
actualização de aproximadamente 375ms, fornecendo uma estimativa do ângulo com um erro
de 3 graus.
Após realizar a aplicação descrita anteriormente, foram feitas medições ao desempenho do
processador do computador no decorrer da mesma. Foi verificado que estando o AM a emitir
dados com Fs=22050 Hz para o computador (Intel Pentium M 1,73 GHz, com 1,5 GB de
memória RAM), a aplicação conseguia realizar todo o processamento com uma margem
suficiente grande para não haver perda de amostras.
Implementou-se uma rotina para calcular os atrasos entre os 64 microfones do AM,
processando-se apenas 4 sinais respectivos a 4 canais para estimar os atrasos de todos os
outros. Por último, foi implementada uma rotina para atrasar e somar os sinais devidamente
compensados dos respectivos atrasos. Foram obtidas medições de desempenho no
computador utilizado, confirmando-se que num trabalho futuro, facilmente se conseguirá
realizar um algoritmo utilizando os 64 canais do AM, que será por exemplo, a interligação das
duas rotinas implementadas. Obtendo-se assim uma aplicação que permite controlar a
directividade do AM consoante a localização do orador. No entanto, o algoritmo delay and sum
não produz resultados que compensem a utilização de 64 microfones. Terão que ser aplicados
algoritmos mais sofisticados como por exemplo o Side Lobe Canceling, que aplica lobos
auxiliares na direcção do ruído, de forma a eliminar completamente o ruído que o lobo principal
só consegue atenuar.
No entanto, com computadores com melhores capacidades de processamento, poder-se-ão
implementar algoritmos de maior complexidade. Poder-se-ia inclusivamente reduzir a
frequência de amostragem de modo a obter mais tempo para processar algoritmos complexos.
Um trabalho futuro interessante poderá ser encontrar um algoritmo que produza bons
resultados e que possa ser implementado num processador digital de sinal que seria ligado ao
AM construído, tornando o AM num sistema independente.
65
5. REFERÊNCIAS
[1]D. H. Johnson and D. E. Dudgeon, Array Signal Processing: Concepts and Techniques. New
Jersey: Prentice Hall,1993.
[2] M. Seltzer, B. Raj. “Calibration of Microphone arrays for improved speech recognition”.
Mitsubishi Research Laboratories, TR-2002-43, December 2001.
[3] E. Weinstein, K. Steele, A. Agarwal, and J. Glass, ”LOUD: A 1020-Node Modular
Microphone Array and Beamformer for Intelligent Computing Spaces”, MIT/LCS Technical
Memo MIT-LCS-TM-642,2004
[4] D.V. Rabinkin, R.J. Ranomeron, J.C. French, J.L. Flanagan, M.H. Bianchi, A DSP
implementation of source location using microphone arrays, in: Proceedings of the SPIE, vol.
2846, 1996, pp. 88-99.
[5] V. Stanford, J. Garofolo, O. Galibert, M. Michel, C. Laprun “The NIST Smart Space and
Meeting Room Projects: Signals, Acquisition, Annotation and Metrics”, Proceedings of ICASSP
2003 in special session on smart meeting rooms.
[6] “Microphone Array Support in Windows Vista” em
http://www.microsoft.com/whdc/device/audio/MicArrays.mspx
[7] C. Rochet, ”Technical Documentation of the Microphone Array Mark III” NIST, sep. 2005
[8] C. Rochet, ”User´s Manual of the Microphone Array Mark III version 2” NIST, sep. 2005
[9] I. Tashev, “Gain Self-Calibration Procedure for Microphone Arrays”, Microsoft Research,
2004
[10] G. F. Coelho,”Aquisição de fala para ambientes virtuais”, IST, Novembro de 2006
[11] M. Omologo, M. Matassoni, P. Svaizer. "Speech recognition with microphone arrays", In
M.S.Brandstein and D. B. Ward (eds.) , Microphone Arrays: Signal Processing Techniques and
Applications, Springer Verlag, 2001.
[12] J. DiBiase, “A high-accuracy, low-latency technique for talker localization in reverberant
environments”, PhD thesis, Brown University, May 2000.
66
[13] J. DiBiase, H. Silverman, and M. Brandstein, "Robust Localization in Reverberant Rooms,"
In M. S. Brandstein and D. B. Ward (eds.) , Microphone Arrays: Signal Processing Techniques
and Applications, Springer, 2001.
[14] Y. Rui and Dinei Florencio, “New direct approaches to robust sound source localization”,
Proc. Of IEEE ICME 2003, Baltimore, MD, July 6-9
[15] Greenberg, Zurek, "Evaluation of an adaptive-beamforming method for hearing aids", J.
Acoustical Society of America, vol. 91, pp. 1662-1676, 1992;
[16] X. Bian, J. M. Rehg, G. D. Abowd, ”Sound Source Localization in Domestic Environment”,
Georgia Institute of Technology, April, 2006.
[17] Knapp et al., "The Generalized Correlation Method for Estimation of Time Delay," IEEE
Trans. Acoust., Speech, Signal Processing, 24:320-27 (1976).