Separação de fontes de sinais de áudio Resumo Abstract 1

Propaganda
Separação de fontes de sinais de áudio
Gustavo Leitão
Programa de Pós-Graduação em Engenharia Elética e Computação – PPGEE
Processos Estocásticos
09 de Dezembro de 2009
Resumo
Este trabalho realiza um estudo para a
aplicação prática de técnicas de separação de
áudio em gravações onde envolva mais de uma
fonte sonora e mais de uma fonte de captura
simultaneamente. As técnicas analisadas foram
a separação cega utilizando o método de análise
de componentes independentes (ICA) e a
separação “não cega” através de algoritmo
genético.
Abstract
This work makes a study for the practical
application of separation techniques in audio
recording which involve more than one sound
source and more than one source captures
simultaneously. The techniques analyzed were
blind source separation using independent
component analysis (ICA) and the separation
"not blind" through genetic algorithm.
1. Introdução
Para se entender melhor
analisaremos a Figura 1.
o
problema,
mas também uma fração do sinal emitido por
s2. Analogamente, o sinal captado pelo
microfone s2 também será uma mistura dos
dois sinais das fontes s1 e s2.
O problema mostrado acima pode ser modelado
idealmente da seguinte forma:
a a
a
a
Sendo a um coeficiente que pondera amistura
os sinais (por exemplo, distância do microfone,
tempo de propagação do som, etc.). Assume-se
que tais coeficientes são desconhecidos, pois
não é possível determinar seus valores sem
conhecer a estrutura física exata do ambiente. A
fim de se facilitar a notação, as equações (1) e
(2) podem ser reescritas a forma matricial
como:
Deseja-se, a partir dos sinais capturados x1 e x2,
obter os sinais originados pelas fontes s1 e s2.
Se a matriz de mistura A fosse conhecida, o
problema poderia ser resolvido simplesmente
calculando-se a sua inversa e obtendo
novamente os sinais originais da seguinte
forma:
Como a matriz A não é conhecida necessita-se
de um algoritmo que estime esta matriz a fim de
se obter o sinal de cada fonte.
Figura 1 – Esquemático do problema.
Como se pode observar pela Figura 1, existe
duas fontes sonoras e um microfone
posicionado em frente a cada uma delas. O
microfone em frente a fonte s1 irá capturar não
somente o sinal emitido pela própria fonte s1,
Logo, o trabalho resume-se a encontrar a matriz
estimada de aqui denotada por W para se
estimar o sinal original de cada fonte:
̂ Para a realização deste trabalho foram
analisadas duas técnicas: a separação cega
através
da
análise
de
componentes
independentes (ICA) e a separação “não-cega”
através de um algoritmo genético.
O propósito do trabalho é avaliar se alguma
dessas técnicas é suficientemente boa para a
separação de sinais de áudios em um ambiente
real.
2.
Análise
de
Indepentes (ICA)
componentes
A primeira abordagem utilizada neste
trabalho foi através da análise de componentes
independentes (ICA). A ICA é um poderoso
método utilizado principalmente para o
tratamento de problemas de separação cega de
sinais de fontes independentes, também
conhecido como Blind Source Separation
(BSS).
Uma das maneiras de se obter a matriz W
desejada é calcular a matriz que maximiza a
não-gaussianidade do vetor ̂ . Esta técnica está
relacionada com o teorema do limite central.
Por este teorema, a distribuição estatística de
uma mistura de duas ou mais variáveis
aleatórias é mais gaussiana do que a
distribuição de cada componente individual [2]
[5]. Portanto, ao maximizar a nãogaussianidade dos componentes, estamos na
verdade obtendo sinais estatisticamente o mais
independente quanto possível, se assemelhando
do sinal das fontes originais.
Desde quando foi proposto, diversas formas de
se estimar o modelo ICA já foram apresentadas.
Entre as alternativas existentes, pode-se citar a
abordagem FastICA proposta por Hyvärinen [1]
em que a convergência do algoritmo ocorre em
tempo significativamente menor que as
abordagens tradicionais antes aplicadas e que,
portanto, torna muito mais viável a sua
aplicação em diversos tipos de problemas mais
complexos.
Neste trabalho foi utilizado o algoritmo fastICA
por negentropia o qual será melhor explicado a
seguir.
2.1 ICA por negentropia
A entropia é um conceito fundamental
da Teoria da Informação e avalia o grau de
informação que pode ser obtida através da
observação de uma variável. Neste sentido,
quanto mais imprevisível for a variável
observada, maior será sua entropia. Se uma
variável possui uma tendência, ou seja, se há
uma grande probabilidade de um evento
específico ocorrer, o ganho informacional não é
tão grande em cada observação, pois já se
espera que este evento altamente provável
ocorra.
Uma variável gaussiana possui a maior entropia
entre variáveis de mesma variância [2]. Neste
sentido, a entropia pode ser então, utilizada
como uma medida de não-gaussianidade da
seguinte forma:
Desta forma obtém-se uma medida que é
sempre positiva e mede a diferença de Entropia
existente entre a variável observada e uma
variável gaussiana com os mesmos parâmetros.
Esta medida recebe o nome de negentropia, e
nada mais é do que uma versão normalizada da
Entropia e que pode ser utilizada pelo algoritmo
do modelo ICA para encontrar os Componentes
Independentes
baseando-se
na
nãogaussianidade da distribuição.
O cálculo da entropia, por conseguinte da
negentropia, é uma medida que exige muito
tempo computacional. Devido a isso,
geralmente são utilizadas aproximações para se
estimar a negentropia. Uma boa aproximação
exaustivamente utilizada na literatura é dada
por:
'
!"# $ !"# %$&
(
Na equação acima é uma constante, % é uma
variável gaussiana com média zero e variâcia
unitária, a variável a ser calculada com
variância unitária e média zero, e # é uma
função não-quadrática. Para o problema em
questão foi utilizado a seguinte função nãoquadrática:
# ) log cosh)
2.2 Pré-processamento
Antes de aplicar o algoritmo ICA é
necessário realizar um pré-processamento nos
dados de entrada. Isso se deve ao fato de
facilitar a convergência do algoritmo e servir de
normalização para o cálculo da negentropia.
O pré-processamento é constituído de duas
grandes operações: a centralização e o
branqueamento. A Figura 2 mostra as etapas do
pré-processamento do sinal a serem realizadas
antes da análise de componentes independentes.
67 89%: !"55 ; $ <
Como 5 40 1 podemos reescrever a equação
acima da seguinte forma:
!"55 ; $ !"40 1 40 1 ; $ 4!"0 1 0 1; $4 ; <
A matriz de covariância das observações de
0 1 , designada por 6=1 , é simétrica, pois os seus
vetores são ortogonais entre si e os valores
próprios são reais [4], assim pode-se escrever:
6=1 !"0 1 0 1; $ !>! ; ,
onde ! é uma matriz ortogonal cujas colunas
são os vetores próprios normalizados de
!?0 ′ 0 ′; @ e D = diag(d1,...,dn) é matriz diagonal
com os valores próprios de 6=′ . O
branqueamento é realizado através da seguinte
transformação linear invertível não ortogonal:
Figura 2 – Etapas do Pré-processamento.
Centralização
Consiste na remoção do nível DC do sinal, ou
seja, torná-lo com média nula. Para isso, devese subtrair de cada amostra o valor médio do
sinal como um todo.
1
0 0 !203
A imposição de média nula não afeta a matriz
de mistura. Após a estimação da matriz de
mistura A com os dados centrados, repõe-se o
valor médio aos sinais separados.
Branqueamento
Após a centralização do sinal é necessário
realizar o branqueamento do sinal. O
branqueamento tem o objetivo de tornar o sinal
com suas componentes descorrelacionadas e
sua variância unitária.
Para realizar o branqueamento dos dados
aplica-se uma transformação linear invertível
4, de forma que as observações 5 40 1
tenham matriz de covariância identidade, isto
é, sejam incorrelacionadas com variância
unitária, ou seja:
4 > ! ;
Contudo, 4 não é a única matriz de
branqueamento; qualquer matriz A4 em que U
é uma matriz ortogonal conduz ao mesmo
resultado.
Desta forma, o branqueamento reduz o número
de parâmetros a estimar, reduzindo o espaço de
pesquisa às matrizes ortogonais. Em vez de
estimar os B
parâmetros (elementos) de uma
matriz de mistura genérica B C B, é necessário
DD
parâmetros, dado que este é o
estimar número de graus de liberdade de uma matriz
ortogonal. O branqueamento é uma forma
adequada de reduzir a complexidade do
problema.
2.2 FastICA
Após o pré-processamento os dados são
encaminhados para o operador que irá realizar a
análise de componentes independentes, neste
caso o FastICA.
FastICA é uma abordagem proposta por Hyväri
Nen[1,2] utilizada para se estimar o modelo
ICA. Entre as vantagens deste método, se
comparado ao algoritmo gradiente, pode-se
citar:
quantidade de problemas para o qual estes se
aplicam seja bastante abrangente.
• Não há necessidade de escolha de parâmetros
para a execução do algoritmo, tal como a taxa
de aprendizado do gradiente para atualização da
matriz. Desta forma o modelo se torna mais
confiável, pois não depende de uma boa escolha
de valores por parte do usuário.
Uma implementação do algoritmo genético
começa com uma população (geralmente
randômica) de cromossomos. Estas estruturas
são então avaliadas para gerar oportunidades
reprodutivas de forma que, cromossomos que
representam uma solução "melhor" tenham
maiores chances de se reproduzirem do que os
que representam uma solução "pior". A
definição de uma solução melhor ou pior é
mensurada através do cálculo da função que se
deseja maximizar ou minimizar, chamada de
função
de
aptidão.
Selecionado
os
cromossomos a serem reproduzidos são
realizadas operações de cross-over e de
mutação. A operação de cross-over realiza a
combinação de dois cromossomos gerando,
geralmente, dois novos indíviduos a partir da
troca de informações entre os cromossomos
pais. A mutação por sua vez insere um carater
aleatório à operação de reprodução objetivando
com que o algoritmo não convirja para um
mínimo local.
• É consideravelmente mais veloz que a
abordagem por gradiente (convergência de 10 a
100 vezes mais rápida [1]).
Para tanto, os componentes são estimados
utilizando-se um algoritmo de ponto-fixo [2],
capaz de encontrar com maior eficiência o
ponto de maximização dos valores da função
aplicada para a estimativa do algoritmo.
Os passos da execução do algoritmo FastICA
são descritos a seguir:
1.Inicializa-se aleatoriamente uma matriz ;
2. DE !"0 F # ; F 0$ !"#G ; F
0$ F ;
3. DE /||DE||;
4. Repetir o passo 2 até que haja convergência.
As etapas de um típico algoritmo genético são
mostradas na Figura 3.
Onde # é uma função não-quadrática e #G sua
derivada, a saber:
#) 1/L F M9N 89OL)
#G ) LBOL)
Onde L é uma constante positiva tal que
1 P L P 2. Neste trabalho fixou-se L 1;
3. Algoritmo genético
Os algoritmos genéticos são uma família de
modelos
computacionais
inspirados
na
evolução. Incorporam uma solução potencial
para um problema específico numa estrutura
semelhante a de um cromossomo e aplicam
operadores de seleção e "cross-over" a essas
estruturas de forma a preservar informações
críticas relativas à solução do problema.
Normalmentes os algoritmos genéticos são
vistos como otimizadores de funções, embora a
Figura 3 – Etapas de um Algoritmo Genético.
No presente trabalho o algoritmo genético foi
utilizado com o intuito de procurar a matriz de
mistura em um ambiente real através da
maximização de uma função baseada na
transformada de Fourier dos sinais fontes
previamente fornecidos separadamente para o
sistema numa etapa que aqui chamaremos de
calibração.
As etapas do algoritmo genético implementado
serão descritas a seguir.
população para a reprodução e o restante dos
cromossomos eram descartados. A escolha
baseava-se na preservação dos melhores
indivíduos segundo o cálculo de aptidão
previamente realizado.
Início da População
Reprodução
Esta etapa consiste na geração aleatória de um
conjunto solução, chamado aqui de população.
Consiste na etapa onde os indivíduos
selecionados na etapa de seleção gerarão novos
indivíduos a partir de uma combinação dos
indivíduos pais.
Para o problema em questão os melhores
resultados foram obtidos com uma população
inicial de 3000 cromossomos.
Cálculo de Aptidão
O cálculo da aptidão consiste em fornecer uma
maior nota a matriz de mistura que gere o sinal
estimado ̂ que mais se aproxime do sinal de
calibração previamente fornecido.
Os sinais de calibração utilizados foram sinais
senoidais com de freqüências bem distintas. Por
isso, o cálculo da função de aptidão foi
realizado a partir da semelhança das
transformadas de Fourier do sinal de calibração
e do sinal estimado ̂ . Abaixo segue a função de
aptidão utilizada:
B R S TT ,
Onde R corresponde a iésima freqüência do
sinal e TT a sua magnitude normalizada.
Tal cálculo visa dar baixas notas para sinais
com freqüências fundamentais ligeiramente
diferentes dos sinais de calibração e notas altas
para sinais com transformada de Fourier
bastante semelhantes.
O problema se resume, então, a encontrar uma
matriz de mistura que minimize o erro médio
quadrático entre a função de aptidão dos sinais
estimados e dos sinais de calibração.
Seleção
Consiste na etapa de selecionar os
cromossomos para a etapa de reprodução. No
presente trabalho, escolheu-se 50% da
No presente trabalho a reprodução foi realizada
pela permutação de linhas selecionadas
aleatoriamente da matriz de mistura dos
cromossomos em questão, gerando dois novos
indivíduos para cada par de progenitores. Dessa
forma, a quantidade de cromossomos na
população mantém-se constante durante todo o
processo.
Mutação
A operação de mutação é bastante importante
para a convergência do algoritmo genético. Esta
operação tem a finalidade de manter a
diversidade da população e evitar a
convergência para um mínimo local.
Para este trabalho inseriu-se um componente
aleatório na matriz de mistura gerada pela
permutação durante a reprodução. A taxa de
mutação que se obteve os melhores resultados
foi em torno de 20%. Ou seja, em 20% das
reproduções pelo menos um componente
aleatório era inserido na matriz.
4. Metodologia
Para a realização dos testes foram
utilizadas duas abordagens. Na primeira, dois
sinais senoidais um de 50hz e outro de 1100hz
foram gerados e posteriormente combinados. A
mistura destes sinais de áudio foi realizada de
forma computacional a partir de uma matriz de
mistura gerada aleatoriamente. Em seguida os
sinais foram submetidos a separação via
FastICA e via algoritmo genético.
Na segunda abordagem, os mesmos sinais
foram emitidos por dois monitores de referência
e capturados por dois microfones. Cada monitor
foi responsável por emitir um determinado sinal
senoidal: 50hz e 1100hz. Neste
este caso,
caso a mistura
acontece de maneira real devido às
particularidades do ambiente e equipamentos
utilizados.
No caso dos testes realizados com o algoritmo
genético, previamente foi feita uma calibração.
Esta calibração consiste no fornecimento dos
sinais a serem misturados previamente a parir
da reprodução através dos monitores de
referência separadamente para quee possa ser
calculada a função de aptidão desses sinais
reais. O objetivo desta abordagem é verificar se
existe uma matriz W,, inversa da matriz de
mistura, que reestabeleça o sinal original em um
ambiente real. Ou seja, se os sinais podem ser
recuperados por uma operação linear. A Figura
4 mostra o ambiente de teste utilizado.
Os resultados podem ser observados pela
análise das Figura 6 e 7 para o FastICA e da
Figura 10 e 11 para o algoritmo genético.
FastICA
Figura 5 – Sinais misturados artificialmente.
Figura 6 – Resultado da separação pelo FastICA.
Figura 4 – Ambiente de teste
5. Resultados
Serão apresentados dois tipos de resultados: os
das misturas realizadas computacionalmente e
das misturas reais através da captura dos sinais
senoidais através de microfones.
5.1 Misturas Computacionais
Nesta abordagem os sinais senoidais foram
misturados computacionalmente a partir de uma
matriz de mistura gerada aleatoriamente. Feito
isso, os sinais foram submetido ao FastICA e ao
algoritmo genético.
Figura 7 – FFT do resultado da separação pelo
FastICA.
Genético
5.2 Misturas Reais
Nesta abordagem os sinais senoidais foram
emitidos por dois monitores de referencia. A
frente dos monitores dois microfones adjacentes
e idênticos captavam os sinais emitidos. Feito
isso, os sinais foram submetido ao FastICA e ao
algoritmo genético.
Figura 8 – Sinais de calibração.
Os resultados
sultados podem ser observados pela
análise das Figuras 13 e 14 para o FastICA e
das Figuras 16 e 17 para o algoritmo genético.
FastICA
Figura 9 – Sinais misturados artificialmente.
Figura 10 – Resultado da separação pelo Algoritmo
genético.
Figura 12 – Sinais misturados naturalmente.
Figura 13 – Sinais separados via FastICA.
Figura 14 – FFT Sinais separados via FastICA.
Figura 11 – FFT do resultado da separação pelo
Algoritmo genético.
Genético
forma tão completa como para misturas
naturais.
A dificuldade da separação plena nos casos
reais nos leva a suspeita de que essas misturas
não são perfeitamente lineares. Ou seja, não
existe uma matriz única que represente a
mistura dos sinais observados.
Referências
Figura 15 – Sinais misturados naturalmente.
naturalmente
[1] Aapo Hyvärinen, A Fast Fixed--Point Algorithm
for Independent Component Analysis, Neural
Computation 9 (1997), 1483–1492.
[2] Aapo Hyvärinen, Juha Karhunen,
arhunen, and Erkki Oja,
Independent
dent
Component
Analysis,Wiley
interscience Publication, 2001.
[3] A. J. Bell and T. J. Sejnowski, An information
maximization approach to blind separation and blind
deconvolution,
onvolution, Neural Computation 7 (1995), 1129–
1159.
[4] G. Strangg and K. Borre. Linear Algebra,
Geodesy, and GPS. Wellesley-Cambridge
Cambridge Press,
1997.
Figura 16 – Sinais separados via algotitmo
genético.
Figura 17 – FFT Sinais separados via
Algoritmos Genéticos.
5.3 Discurssões
Como pode ser observado pela análise dos
resultados, tanto o FastICA quanto o algoritmo
genético se demonstraram eficientes para a
separação de sinais de áudios cuja misturas
foram realizadas artificialmente.
Para misturas naturais, ou seja, aplicação real,
não foi observada a separação plena dos sinais.
Houve sim uma separação, porém não se deu de
[5] Papoulis, A. (1993). Probability, Random
Variables, and Stochastic Processes (3 ed.). McGraw
Hill.
Download