COMPARAÇÃO ENTRE MÉTODOS DE

Propaganda
COMPARAÇÃO ENTRE MÉTODOS DE INTERPOLAÇÃO DE
HRTFS APLICADA AO PROCESSAMENTO DE ÁUDIO
Gabriel Ramos Pavão Pimentel
Projeto de Graduação apresentado ao Curso
de Engenharia Eletrônica e de Computação
da Escola Politécnica, Universidade Federal
do Rio de Janeiro, como parte dos requisitos
necessários à obtenção do título de Engenheiro.
Orientador:
Rio de Janeiro
7 de março de 2017
Mariane Rembold Petraglia
UNIVERSIDADE FEDERAL DO RIO DE JANEIRO
Escola Politécnica - Departamento de Eletrônica e de Computação
Centro de Tecnologia, bloco H, sala H-217, Cidade Universitária
Rio de Janeiro - RJ CEP 21949-900
Este exemplar é de propriedade da Universidade Federal do Rio de Janeiro, que
poderá incluí-lo em base de dados, armazenar em computador, microlmar ou adotar
qualquer forma de arquivamento.
É permitida a menção, reprodução parcial ou integral e a transmissão entre bibliotecas deste trabalho, sem modicação de seu texto, em qualquer meio que esteja
ou venha a ser xado, para pesquisa acadêmica, comentários e citações, desde que
sem nalidade comercial e que seja feita a referência bibliográca completa.
Os conceitos expressos neste trabalho são de responsabilidade do(s) autor(es).
iv
DEDICATÓRIA
Dedico este trabalho ao povo brasileiro que contribuiu de forma signicativa à
minha formação e estada nesta Universidade. Este projeto é uma pequena forma
de retribuir o investimento e conança em mim depositados.
Dedico também a
comunidade de eletrônica, áudio mais especicamente, aos meus amigos e familiares
por todo o suporte sem o qual não teria conseguido concluir essa etapa da minha
formação.
v
AGRADECIMENTO
Agradeço à minha orientadora, Mariane Rembold Petraglia, por todo auxílio,
paciência e disponibilidade durante todo o projeto.
Agradeço ao professor Júlio Torres, pela ajuda no entendimento da base de dados
CIPIC.
Um agradecimento especial aos meus pais, Silvio Roberto Pavão Pimentel e Maria
de Fátima José Ramos Pimentel por todo o suporte, valores, ensinamentos que me
zeram chegar até essa etapa da vida. Caráter, conança e amor são qualidades e
base de todo nosso relacionamento. Vocês são e sempre serão exemplos de como ser
e agir para mim.
Agradeço aos meus amigos,que z durante a graduação, Felipe Petraglia, Felipe de
Menezes, Helio Machado, Bernardo Marques, Marcelo Castro, Vinicius Allemand,
Pedro Bandeira, André Calmon, Pedro Menezes, Pedro Samú, Lucas Adorno e outros, pela amizade, pela força em momentos difíceis, risadas, entre outros.
Agradeço aos amigos, Raphael Marques, Lucca Mazza, João Paulo Fraga, Rogério
Caldas, José Sigmund e Amadeu Abrantes por toda a amizade ao longo dos anos,
desde a época de colégio até hoje.
Agradeço também à Mariana Engels, por toda a ajuda, paciência, amor, carinho
e compreensão. Você é uma pessoa muito importante para mim. Sempre me deu
força e acreditou que eu era capaz de nalizar essa jornada.
vi
RESUMO
O projeto em questão apresentará uma comparação entre três diferentes métodos
de interpolação de HRTFs (Funções de Transferência Relativas à Cabeça, em tradução do inglês Head Related Transfer Functions) nos planos horizontal e médio.
Os resultados foram avaliados calculando-se a distorção espectral resultante de cada
método.
Foi também implementada a geração de um áudio tridimensional, para cada método em cada plano, considerando uma fonte móvel em trajetória circular,a m de
realizar uma comparação subjetiva entre os métodos.
Foram usados artigos cientícos publicados sobre o tema como forma de pesquisa
e guia.
Palavras-Chave: HRTF, Áudio 3D, Processamento de Sinais, Processamento de
Áudio, Interpolação.
vii
ABSTRACT
This work will present a comparison among three diferent methods of interpolation
of HRTFs (Head-Related Transfer Functions) in the horizontal and median planes.
The results were evaluated calculating the spectral distortion resulting from each
method.
The generation of 3D audio was also implemented for each method in each plan,
considering a moving source in a circular trajectory in order to perform a subjective
comparison.
Scientic articles about this theme were used for research and guide.
Key-words: HRTF, 3D Audio, Signal Processing, Audio Processing, Interpolation.
viii
Acrônimos
SIGLAS
CIPIC -
Center for Image Processing and Integrated Computing
HRIR -
Head Related Impulse Response
HRTF-
Head Related Transfer Function
SD -
Spectral Distortion
ix
Sumário
1 Introdução
1
1.1
Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2
Delimitação
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.3
Justicativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.4
Objetivos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.5
Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.6
Descrição
3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Conceitos Gerais
4
2.1
Função de Transferência e HRTF
. . . . . . . . . . . . . . . . . . . .
4
2.2
Base de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3
Interpolação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.4
Aplicações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
3 Métodos para Interpolação de HRTFs e Geração de Áudio
3.1
Interpolação Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1
Usando magnitude e fase da HRTF
3.1.2
Usando apenas magnitude da HRTF
9
9
. . . . . . . . . . . . . . .
10
. . . . . . . . . . . . . .
11
3.2
Interpolação Spline (Não Linear)
. . . . . . . . . . . . . . . . . . . .
13
3.3
Comparação teórica entre os métodos . . . . . . . . . . . . . . . . . .
16
3.4
Overlap-Add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
4 Simulações e Resultados
4.1
Plano Horizontal
18
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
4.1.1
Interpolação Linear . . . . . . . . . . . . . . . . . . . . . . . .
19
4.1.2
Interpolação Spline . . . . . . . . . . . . . . . . . . . . . . . .
20
x
4.1.3
4.2
4.3
Comparação entre os métodos . . . . . . . . . . . . . . . . . .
21
Plano Médio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
4.2.1
Interpolação Linear . . . . . . . . . . . . . . . . . . . . . . . .
24
4.2.2
Interpolação Spline . . . . . . . . . . . . . . . . . . . . . . . .
25
4.2.3
Comparação entre os métodos . . . . . . . . . . . . . . . . . .
26
Geração dos áudios . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
4.3.1
Plano horizontal
. . . . . . . . . . . . . . . . . . . . . . . . .
29
4.3.2
Plano médio . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
5 Conclusão
35
Bibliograa
37
xi
Lista de Figuras
2.1
Esquemático da posição das fontes, em medições de HRTFs, em relação ao ser humano. Fonte: [1]
2.2
5
Grácos das HRIRs, referentes ao ouvido esquerdo e direito, para
elevação de 10
2.3
. . . . . . . . . . . . . . . . . . . . . .
◦
◦
e azimute de 340 . . . . . . . . . . . . . . . . . . . . .
5
Gráco da resposta em frequência da HRTF. Comparação entre o
◦
◦
ouvido direito e o esquerdo, para elevação de 10 e azimute de 340 . .
6
2.4
Um simulador de vôo, uma das muitas aplicações da interpolação. . .
8
3.1
Exemplo de dados discretos em um intervalo. Fonte: [2] . . . . . . . .
10
3.2
Exemplo de uma interpolação linear em um intervalo de dados. Fonte:
[2]
3.3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exemplo de uma interpolação Spline de uma curva com formato
Fonte: [2]
3.4
1
.
x
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
Distorção espectral relativa ao método linear utilizando magnitude e
fase da HRTF no plano horizontal das HRTFs direita e esquerda. . . .
4.2
15
Esquemático do funcionamento do método Overlap-Add. Fonte: Wikipedia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1
14
Exemplo de uma interpolação Spline de uma curva polinomial de grau
elevado. Fonte: [2]
3.5
10
19
Distorção espectral relativa ao método linear, utilizando apenas a
magnitude da HRTF, no plano horizontal, das HRTFs direita e esquerda. 20
4.3
Distorção espectral relativa ao método spline, no plano horizontal,
das HRTFs direita e esquerda. . . . . . . . . . . . . . . . . . . . . . .
xii
21
4.4
Comparação entre a distorção espectral relativa ao método linear,
com magnitude e fase, e ao spline, no plano horizontal, das HRTFs
direita e esquerda.
4.5
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
Comparação entre a distorção espectral relativa ao método linear apenas com a magnitude da HRTF e ao spline, no plano horizontal, das
HRTFs direita e esquerda.
4.6
. . . . . . . . . . . . . . . . . . . . . . . .
Distorção espectral relativa ao método linear, com uso da magnitude
e fase da HRTF, no plano médio, das HRTFs direita e esquerda.
4.7
24
. . . . . .
25
Distorção espectral relativa ao método spline, no plano médio, das
HRTFs direita e esquerda.
4.9
. . .
Distorção espectral relativa ao método linear, com uso apenas da
magnitude no plano médio, das HRTFs direita e esquerda.
4.8
23
. . . . . . . . . . . . . . . . . . . . . . . .
26
Comparação entre a distorção espectral relativa ao método linear
completo e ao spline, no médio, das HRTFs direita e esquerda. . . . .
27
4.10 Comparação entre a distorção espectral relativa ao método linear apenas usando a magnitude da HRTF e ao spline, no plano médio, das
HRTFs direita e esquerda.
. . . . . . . . . . . . . . . . . . . . . . . .
28
4.11 Gráco da saída usando as HRTFs CIPIC originais, no plano horizontal. 30
4.12 Gráco da saída do método linear com uso da magnitude e fase, no
plano horizontal.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
4.13 Gráco da saída do método linear com uso da magnitude apenas, no
plano horizontal.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
4.14 Gráco da saída do método spline, no plano horizontal. . . . . . . . .
32
4.15 Gráco da saída usando a HRTF original, no plano médio.
33
. . . . . .
4.16 Gráco da saída do método linear com uso da magnitude e fase, no
plano médio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
4.17 Gráco da saída do método linear com uso da magnitude apenas, no
plano médio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.18 Gráco da saída do método spline, no plano médio.
xiii
. . . . . . . . . .
34
34
Lista de Tabelas
3.1
Tabela com o algoritmo utilizado para o método linear no plano horizontal utilizando magnitude e fase da HRTF. . . . . . . . . . . . . .
3.2
Tabela com o algoritmo utilizado para o método linear utilizando a
magnitude da HRTF. . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3
11
12
Tabela com o algoritmo utilizado para o método spline utilizando a
magnitude da HRTF. . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
4.1
Tabela da média do erro no plano horizontal . . . . . . . . . . . . . .
23
4.2
Tabela da média do erro no plano médio
27
xiv
. . . . . . . . . . . . . . . .
Capítulo 1
Introdução
1.1 Tema
O trabalho a seguir fará uma comparação entre métodos de interpolações de
HRTFs (do inglês Head Related Transfer Functions) nos planos horizontal e médio. Esse procedimento permite construir um novo conjunto de dados a partir de
um conjunto discreto de dados pontuais previamente conhecidos. Ele possui como
ênfase a área de eletrônica, aplicada a processamento de áudio, mais especicamente.
É necessário, portanto, conhecimentos de processamento digital de sinais, o que
são funções de transferência, interpolação, entre outros.
As HRTFs são funções de transferências relativas à cabeça, em tradução livre, ou
seja, descrevem o caminho de propagação do som da fonte até cada um dos ouvidos.
A proposta, portanto, é estudar a viabilidade e qualidade de três diferentes formas
de se interpolar essas funções a m de gerar áudios 3D.
1.2 Delimitação
O objeto de estudo é a análise e a implementação de métodos de interpolação
de HRTFs e geração de áudios 3D. Para isso serão usados artigos cientícos que já
foram publicados sobre o conteúdo em questão.
1
A demanda desse projeto é toda a população acadêmica que de alguma forma
trabalhe com processamento de áudio e realidade virtual, em geral. Entretanto, o
tema pode interessar a outras pessoas que não tenham ligação com a área de áudio
exatamente, desde que tenham conhecimento mínimo de processamento de sinais
para compreensão plena do trabalho.
Os códigos computacionais serão desenvolvidos em linguagem MATLAB.
1.3 Justicativa
A síntese binaural é uma técnica que sintetiza áudio 3D, aplicando ltros espaciais
chamados de HRIR (Resposta ao Impulso Relativa a Cabeça, em tradução livre) em
um áudio monofônico. A representação espectral desse tipo de ltro é chamado de
HRTF (Função de Transferência Relativa a Cabeça, em tradução livre), e esta sim,
será objeto de nosso estudo.
Funções de transferência são funções que descrevem características do sistema.
Matematicamente são descritas por uma razão entre as transformadas Z dos sinais
de saída e entrada do sistema.
As HRTFs descrevem o caminho do som desde o momento que sai da fonte até o
momento que chega em cada um dos ouvidos e podem ser obtidas através de medição
experimental.
A interpolação, portanto, é um artifício matemático para calcular HRTFs desconhecidas dentro de uma base de dados de funções previamente conhecidas.
Como uma forma de simplicar o estudo dessas funções (matematicamente inclusive) serão considerados, neste trabalho, apenas os planos horizontal e médio.
1.4 Objetivos
O objetivo geral é, então, criar códigos computacionais em linguagem MATLAB
que implementem métodos propostos na literatura de interpolações de HRTFs.
2
Comparações através da distorção espectral e da análise subjetiva de sons 3D
gerados a partir das HRTFs interpoladas serão feitas.
1.5 Metodologia
A pesquisa bibliográca foi feita através de artigos, dissertações e teses publicadas
sobre o tema em questão.
Foram feitas simulações, de forma a tentar reproduzir
alguns resultados de experimentos apresentados na literatura.
Em seguida, foram implementados três diferentes métodos de interpolação, para
cada um dos planos horizontal e médio, e o método de geração do áudio 3D em si,
através do método "overlap-add"considerando uma fonte móvel. Os códigos foram
desenvolvidos em linguagem MATLAB.
1.6 Descrição
No Capítulo 2 serão apresentados conceitos básicos para o entendimento do tema,
como o que é uma função de transferência e a HRTF em especíco, métodos de
interpolação e suas aplicações em geral, e o método de geração de áudio 3D.
O Capítulo 3 apresenta os métodos utilizados para interpolação de HRTFs e suas
formulações matemáticas.
O Capítulo 4 mostrará as simulações realizadas durante o projeto pelos métodos
que foram explicados no Capítulo 3 nos dois planos e seus resultados.
Já no Capítulo 5, serão apresentadas as conclusões em relação ao estudo realizado
neste projeto.
3
Capítulo 2
Conceitos Gerais
2.1 Função de Transferência e HRTF
A função de transferência descreve as características de um sistema linear. Matematicamente, é a razão entre as transformadas Z dos sinais de saída e entrada.
As HRTFs são um exemplo de funções de transferência, que descrevem os caminhos
do som desde o momento que sai da fonte até sua chegada em cada um dos ouvidos.
HRTF também pode ser interpretada como as características de directividade dos
dois ouvidos [3], essas funções conseguem acumular todo o efeito do ouvido externo
cabeça e torso [4]. Em geral, elas são medidas experimentalmente, colocando-se uma
fonte que gera um sinal em uma posição no espaço e um microfone no canal de cada
ouvido, conseguindo assim, criar um mapeamento espacial do som. Assumindo-se
uma distância fonte-cabeça xa, há um par de HRTFs para cada ângulo de elevação
e de azimute. A Figura 2.1 ilustra um exemplo de disposição da fonte para medição
das HRTFs.
Para que o método de síntese de sons 3D seja o melhor possível, é necessário que
o espaçamento angular entre as HRTFs seja pequeno, para que se tenha uma melhor
resolução espacial.
Um exemplo de uma HRIR, resposta ao sinal aplicado por uma fonte, pode ser
vista na Figura 2.2. Já a sua resposta em frequência podem ser observada na Figura
2.3.
4
Figura 2.1: Esquemático da posição das fontes, em medições de HRTFs, em relação
ao ser humano. Fonte: [1]
Figura 2.2: Grácos das HRIRs, referentes ao ouvido esquerdo e direito, para eleva-
◦
◦
ção de 10 e azimute de 340 .
5
Figura 2.3: Gráco da resposta em frequência da HRTF. Comparação entre o ouvido
direito e o esquerdo, para elevação de 10
◦
◦
e azimute de 340 .
Como pode-se ver nas Figuras 2.2 e 2.3, as HRTF referentes ao ouvido direito e
esquerdo são muito parecidas no mesmo ponto, o que é um resultado esperado.
2.2 Base de dados
A base de dados de HRTFs usada foi a "CIPIC HRTF Database"[1]. Começa com
◦
◦
◦
◦
◦
elevação de -40 até 80 , variando de 5 em 5 . O azimute também varia de 5 em 5 ,
começando em 0
◦
◦
e terminando em 355 . Sua frequência de amostragem
fs
é 44100
Hz.
2.3 Interpolação
Segundo [5], a interpolação é um método que permite construir um novo conjunto
de dados a partir de um conjunto discreto de dados pontuais conhecidos. Em engenharia e ciências, dispõe-se habitualmente de dados pontuais, obtidos a partir de
uma amostragem ou experimento. Através da interpolação pode-se construir uma
6
função que aproximadamente se ajuste nestes dados pontuais.
A vantagem em fazer a interpolação consiste em não necessitar o acúmulo de um
número muito grande de dados.
2.4 Aplicações
Tecnologia do som tridimensional tem grande potencial de aplicação em multimídia, entretenimento doméstico, realidade virtual e sistemas de interação homemmáquina [6].
Exemplos em que o realismo e a imersão no ambiente são importantes: simuladores
de vôo, jogos eletrônicos, cinema, dentre outros. [7]
A interpolação também é bastante utilizada no mercado nanceiro, grácos de
jogos e diversas outras áreas da engenharia. No mercado nanceiro, por exemplo,
constrói-se uma curva a partir de dados observáveis discretos, para criar padrões,
fazer previsões e entender melhor possíveis cenários.
Em muitas aplicações, a resposta do sistema e o processamento das informações
deve ser eciente e veloz, já que deve ser realizado em tempo real.
Nas áreas de
tecnologia, como áudio 3D e realidade virtual, qualquer atraso signicativo pode
não resultar na impressão de imersão que deveria ocorrer. Dessa forma o sistema
não alcançaria um resultado adequado.
7
Figura 2.4: Um simulador de vôo, uma das muitas aplicações da interpolação.
8
Capítulo 3
Métodos para Interpolação de
HRTFs e Geração de Áudio
Neste capítulo, serão apresentados os métodos que foram utilizados no trabalho e
suas formulações matemáticas.
3.1 Interpolação Linear
Segundo [5], em análise numérica, a interpolação linear consiste em aproximar
uma função num intervalo por uma função linear, ou seja, utilizando polinômios de
primeiro grau. O principal problema é que se os pontos forem poucos ou muito afastados entre si, a aproximação de uma determinada função não seria em muitos casos
satisfatória por tal método. É necessário, em geral, a utilização de polinômios de
graus mais elevados (usando-se polinômio interpolador de Lagrange, por exemplo).
As Figuras 3.1 e 3.2 ilustram o método de interpolação linear.
No caso especíco das HRTFs, conhecendo-se seus coecientes nas posições
1"
e
"i+1",
deseja-se encontrar valores estimados dos coecientes na posição
Conhecidos os ângulos (azimute e elevação) das posições
"i-1"
e
"i+1",
"i-
"i".
quanto
menor for a diferença entre os ângulos, mais precisas e acuradas serão as estimativas
das HRTFs da posição
"i".
9
Neste trabalho, o método linear será feito de duas formas: com o uso da magnitude
e da fase da HRTF [4] e apenas da magnitude [6], para efeitos de comparação.
Figura 3.1: Exemplo de dados discretos em um intervalo. Fonte: [2]
Figura 3.2: Exemplo de uma interpolação linear em um intervalo de dados. Fonte:
[2]
3.1.1
Usando magnitude e fase da HRTF
No primeiro método da interpolação linear, serão usadas a magnitude e a fase das
HRTFs presentes na base de dados para a interpolação. A equação da interpolação
de cada HRTF (esquerda e direita) é dada por [4]:
10
Hi (ω) = αHi−1 (ω) + (1 − α)Hi+1 (ω)
onde
Hi (ω )
Hi−1 (ω )
e
(3.1)
é a HRTF alvo completa (que será calculada), com magnitude e fase,
Hi+1 (ω )
são as HRTFs referências mais próximas completas e
α
é o peso
relacionado à distância do ponto desejado aos dois pontos de referência.
O valor de
α
foi discretizado, conforme proposto em [4], escolhendo-se o elemento
mais próximo de
α
(descrito na equação 3.2) dentre um conjunto de
Ω=[0,1/8,1/4,
3/8, 1/2, 5/8, 3/4, 7/8, 1].
α=
φi − φi+1
φi−1 − φi+1
(3.2)
Na Tabela 3.1, é mostrado o algoritmo, em pseudo linguagem, que foi usado para
sua implementação[4].
Algoritmo para Interpolação Linear de HRTF
1 - Ângulos de entrada
φi−1 , φi
e
φi+1 .
2 - Carregar as HRTFs esquerda e direita dos ângulos
φi−1
e
φi+1
do banco de dados.
3 - Cálculo do peso
α=
4 - Quantizar
α
α:
φi −φi+1
.
φi−1 −φi+1
ao elemento mais próximo do vetor
Ω=[0,1/8,1/4, 3/8, 1/2, 5/8, 3/4, 7/8, 1].
O novo valor será
α.
5 - Obtenção de cada HRTF (esquerda e direita):
Hi (ω) = αHi−1 (ω) + (1 − α)Hi+1 (ω).
Tabela 3.1: Tabela com o algoritmo utilizado para o método linear no plano horizontal utilizando magnitude e fase da HRTF.
3.1.2
Usando apenas magnitude da HRTF
No segundo método de interpolação linear, análogo ao anterior, será usada apenas
a magnitude das HRTFs.
11
É o método mais simples e direto.
Conforme [6], a magnitude da HRTF alvo
é calculada como uma média ponderada das magnitudes entre as HRTFs medidas
associadas aos dois pontos mais próximos que circunscrevem o ponto desejado.
A equação já parametrizada que descreve este método é:
|Hi (ω)| = α |Hi−1 (ω)| + (1 − α) |Hi+1 (ω)| , 0 ≤ α ≤ 1
Onde
|Hi (ω )|
|Hi+1 (ω )|
é a magnitude da HRTF alvo (que será calculada),
são as magnitudes das HRTFs referências mais próximas e
(3.3)
|Hi−1 (ω )|
α
e
é o peso
relacionado à distância do ponto desejado aos dois pontos de referência descrito na
seção anterior.
Na Tabela 3.2, é mostrado o algoritmo, em pseudo linguagem, que foi usado para
implementação do método [6].
Algoritmo para Interpolação Linear de HRTF usando apenas a Magnitude
1 - Ângulos de entrada
φi−1 , φi
e
φi+1 .
2 - Carregar apenas as magnitudes das HRTFs,|H(ω)|, esquerda e direita
dos ângulos
φi−1
e
φi+1
do banco de dados.
3 - Cálculo do peso
α=
4 - Quantizar
α
α:
φi −φi+1
φi−1 −φi+1
ao elemento mais próximo do vetor
Ω=[0,1/8,1/4, 3/8, 1/2, 5/8, 3/4, 7/8, 1].
O novo valor será
α.
5 - Obtenção de cada HRTF (esquerda e direita):
|Hi (ω)| = α |Hi−1 (ω)| + (1 − α) |Hi+1 (ω)|
Tabela 3.2:
Tabela com o algoritmo utilizado para o método linear utilizando a
magnitude da HRTF.
12
3.2 Interpolação Spline (Não Linear)
Na interpolação não-linear, foi usada a função spline cúbica que emprega um
polinômio de terceira ordem para conectar partes dos dados, gerando uma curva
suave (não abrupta).
As Figuras 3.3 e 3.4 ilustram o método da interpolação spline.
No método spline, usa-se apenas a magnitude da HRTF já que a medição da
fase em geral não é precisa.
A razão para essa imprecisão se dá por conta dos
equipamentos usados, que podem, facilmente, contaminar a fase durante a medição.
A informação sobre a fase pode ser recuperada pela média das características da
fase mínima que correspondem a cada magnitude. Isso, porém, não gera nenhuma
melhora signicativa na interpolação [6].
Tendo os dados de
N+1
pontos, (θ0 ,
a magnitude da i-ésima HRTF e
θi
H0 (ω ) ),(θ1 ,H1 (ω ) ), (θN ,HN (ω ) ), onde Hi (ω ) é
é a posição espacial da i-ésima HRTF, assume-se
que as segundas derivadas são contínuas no ponto inicial e nal, podendo assim, ser
igualadas a zero [6]:
H000 (ω) = HN00 (ω) = 0
(3.4)
Já as outras podem ser calculadas pelo sistema de equações a seguir:
00
(θi − θi−1 )Hi−1
(ω)+
2(θi+1 − θi−1 )Hi00 (ω)+
00
(θi+1 − θi )Hi+1
(ω)
6
[Hi+1 (ω) − Hi (ω)]
θi+1 − θi
6
+
[Hi−1 (ω) − Hi (ω)]
θi − θi−1
=
i = 1, 2, 3, ..., N − 1
13
(3.5)
E a função cúbica, que calcula a HRTF
H(ω ) desejada, para cada intervalo (θi−1 ,θi )
é dada por:
00
Hi−1
(ω)
H(ω) =
(θi − θ)3
6(θi − θi−1 )
Hi00 (ω)
+
(θ − θi−1 )3
6(θi − θi−1 )
H 00 (ω)(θi − θi−1 )
Hi−1 (ω)
+[
− i−1
](θi − θ)
θi − θi−1
6
H 00 (ω)(θi − θi−1 )
Hi (ω)
− i
](θ − θi−1 )
+[
θi − θi−1
6
(3.6)
θ ∈ (θi−1 , θi )
Figura 3.3:
Exemplo de uma interpolação Spline de uma curva com formato
Fonte: [2]
Um algoritmo em pseudo linguagem é mostrado na Tabela 3.3.
14
1
.
x
Figura 3.4: Exemplo de uma interpolação Spline de uma curva polinomial de grau
elevado. Fonte: [2]
Algoritmo para Interpolação Spline de HRTF
1 - Igualar a segunda derivada do ponto inicial e nal a zero, de cada ouvido.
|H000 (ω)| = |HN00 (ω)| = 0.
2 - As outras segundas derivadas são obtidas pela equação 3.5.
Possui elementos como
00
00
|Hi−1
(ω)|, |Hi00 (ω)|, |Hi+1
(ω)|,
|Hi−1 (ω)|, |Hi (ω)|, |Hi+1 (ω)|, θi−1 , θi
3 - Calcular a magnitude de cada ouvido
|H(ω)|
e
θi+1 .
através da função cúbica
descrita na equação 3.6.
Tabela 3.3:
Tabela com o algoritmo utilizado para o método spline utilizando a
magnitude da HRTF.
15
3.3 Comparação teórica entre os métodos
Teoricamente, os métodos lineares são mais simples em comparação ao spline,
visto que neste são necessários cálculos muito mais complexos e um maior gasto
computacional para obtenção do resultado nal. Entretanto, por sua curva ser mais
suave, geralmente, o método spline possui um resultado melhor.
Não há, portanto, um método ideal.
Deve-se analisar caso a caso, vendo seus
objetivos e restrições, qual método atende melhor uma situação em especíco.
3.4 Overlap-Add
O método Overlap-Add foi utilizado para geração do áudio tridimensional a partir
das HRTF interpoladas. É usado para convoluir um ltro com um sinal longo ou de
duração infnita.
Com esse método, há uma quebra do sinal de áudio inteiro em sinais menores,
e consegue-se fazer as convoluções de forma mais rápida, tendo assim, um custo
computacional menor.
Genericamente falando, temos um sinal
resposta ao impulso nita)
y(n) = x(n) ∗ h(n) =
h(n).
∞
X
x(n)
longo, e um ltro FIR (ltro com
O sinal de saída
y(n)
h(m) · x(n − m) =
m=−∞
no qual,
h(m) = 0
x(n),
(3.7)
m=1


x(n + kL),

0,
L
h(m) · x(n − m)
[1, M ].
para que se tenha várias convoluções pequenas temos:
xk (n) =
onde
M
X
para todos os pontos fora da região
Dividindo o sinal
será:
n = 1, 2, ..., L
(3.8)
outros
é um segmento de tamanho qualquer. Então:
16
x(n) =
X
xk (n − kL)
(3.9)
k
Portanto, reescrevendo
y(n):
X
y(n) = (
xk (n − kL)) ∗ h(n)
k
=
X
(xk (n − kL) ∗ h(n))
(3.10)
k
=
X
yk (n − kL)
k
onde
yk (n) = xk (n) ∗ h(n)
é zero fora da região [1, L+M-1].
A gura 3.5 ilustra o método Overlap-Add.
Figura 3.5: Esquemático do funcionamento do método Overlap-Add. Fonte: Wikipedia
17
Capítulo 4
Simulações e Resultados
◦
◦
Como a base da dados usada possui HRTFs de 5 em 5 , fez-se as interpolações
◦
carregando as HRTFs com 10 de diferença e calculou-se a HRTF intermediária entre
esses dois pontos.
Uma forma de avaliarmos se a interpolação foi de fato bem sucedida é calculando
a Distorção Espectral (SD, do inglês Spectral Distortion) para um ângulo especíco.
Sua fórmula, em dB, é expressa por [6]:
v
u K−1
u1 X
t
SD =
[20 log10 |H(ωk )| − 20 log10 Ĥ(ωk )]2
K k=0
onde
|H(ωk )|
e
Ĥ(ωk )
(4.1)
são as HRTFs original e a interpolada, respectivamente. K
é o número total de amostras de frequência utilizadas em [0,π ].
Quanto menor for sua SD, mais acurada a interpolação é.
4.1 Plano Horizontal
O plano horizontal é o plano em que o ângulo de elevação é xo e igual a 0
◦
azimute varia entre 0 e 360 .
18
◦
e o
4.1.1
Interpolação Linear
4.1.1.1 Usando magnitude e fase da HRTF
A Distorção Espectral (SD) para cada ouvido gerada pelo método linear usando
magnitude e fase da HRTF no plano horizontal pode ser vista na Figura 4.1.
Figura 4.1: Distorção espectral relativa ao método linear utilizando magnitude e
fase da HRTF no plano horizontal das HRTFs direita e esquerda.
4.1.1.2 Usando apenas magnitude da HRTF
A Distorção Espectral (SD) para cada ouvido gerada pelo método linear usando
apenas magnitude, no plano horizontal pode ser vista na Figura 4.2.
19
Figura 4.2: Distorção espectral relativa ao método linear, utilizando apenas a magnitude da HRTF, no plano horizontal, das HRTFs direita e esquerda.
4.1.2
Interpolação Spline
A SD gerada pela interpolação spline no plano horizontal pode ser observada na
Figura 4.3.
20
Figura 4.3: Distorção espectral relativa ao método spline, no plano horizontal, das
HRTFs direita e esquerda.
4.1.3
Comparação entre os métodos
O gráco contendo as distorções espectrais dos métodos linear usando a HRTF
completa e a spline pode ser visto na Figura 4.4.
Já a Figura 4.5, apresenta a
comparação entre o método linear usando apenas a magnitude da HRTF e o spline.
As duas curvas de cada método possuem características complementares entre si, se
forem analisados os ouvidos esquerdo e direito.
Analisando os grácos, vê-se o método linear usando a magnitude apenas com
uma SD menor que o método com uso da magnitude e fase. Isso acontece porque
os atrasos iniciais estão atrapalhando a interpolação do método com uso da HRTF
completa (magnitude e fase).
Pode-se perceber que o método spline possui uma distorção consideravelmente
menor e uma curva mais suave, por todos os motivos citados nos capítulos anteriores.
21
A Tabela 4.1 apresenta o valor médio da SD, ao longo das frequências, para os
três métodos de interpolação implementados. Os valores médios da SD são consideravelmente menores com o método spline. O método linear com interpolação apenas
magnitude apresenta menores valores de SD do que o método que inclui a fase.
Figura 4.4: Comparação entre a distorção espectral relativa ao método linear, com
magnitude e fase, e ao spline, no plano horizontal, das HRTFs direita e esquerda.
22
Figura 4.5: Comparação entre a distorção espectral relativa ao método linear apenas
com a magnitude da HRTF e ao spline, no plano horizontal, das HRTFs direita e
esquerda.
Média do Erro Plano Horizontal
Valor
Linear com fase
0.2525
Linear sem fase
0.0342
Spline
0.0076
Tabela 4.1: Tabela da média do erro no plano horizontal
23
4.2 Plano Médio
◦
O plano médio é o plano que possui ângulo azimutal xo em 0 e elevação variando
de 0
◦
◦
a 360 .
A seguir, são apresentados os resultados obtidos com os métodos de interpolação
de HRTFs implementados neste trabalho no plano médio.
4.2.1
Interpolação Linear
4.2.1.1 Usando Magnitude e Fase da HRTF
A SD obtida com o método de interpolação linear utilizando magnitude e fase da
HRTF no plano médio pode ser observada na gura 4.6.
Figura 4.6: Distorção espectral relativa ao método linear, com uso da magnitude e
fase da HRTF, no plano médio, das HRTFs direita e esquerda.
24
4.2.1.2 Usando apenas Magnitude da HRTF
A SD obtida com o método de interpolação linear, utilizando magnitude apenas
da HRTF pode ser observada na Figura 4.7.
Figura 4.7: Distorção espectral relativa ao método linear, com uso apenas da magnitude no plano médio, das HRTFs direita e esquerda.
4.2.2
Interpolação Spline
A SD gerada pelo método spline no plano médio pode ser vista na Figura 4.8.
25
Figura 4.8:
Distorção espectral relativa ao método spline, no plano médio, das
HRTFs direita e esquerda.
4.2.3
Comparação entre os métodos
O gráco contendo as distorções espectrais dos métodos linear usando a HRTF
completa e a spline pode ser visto na Figura 4.9. A Figura 4.10, apresenta a comparação entre o método linear usando apenas a magnitude da HRTF e o spline.
Pode-se perceber que tanto na Figura 4.9 como na Figura 4.10, o método spline
possui uma distorção consideravelmente menor e uma curva mais suave que os métodos lineares implementados, comprovando a superioridade do método spline para
interpolação de HRTFs.
A Tabela 4.2 apresenta o valor médio da SD, ao longo das frequências, para os três
métodos de interpolação implementados. Os valores médios da SD são consideravelmente menores com o método spline. O método linear com interpolações apenas da
magnitude apresenta menores valores de SD do que o método de interpolação linear
que inclui a fase.
26
Figura 4.9: Comparação entre a distorção espectral relativa ao método linear completo e ao spline, no médio, das HRTFs direita e esquerda.
Média do Erro Plano Médio
Valor
Linear Completo
0.6317
Linear com Magnitude
0.4242
Spline
0.1134
Tabela 4.2: Tabela da média do erro no plano médio
27
Figura 4.10: Comparação entre a distorção espectral relativa ao método linear apenas usando a magnitude da HRTF e ao spline, no plano médio, das HRTFs direita
e esquerda.
28
4.3 Geração dos áudios
A trajetória usada para criação do áudio foi circular, no plano horizontal e médio,
para cada um dos métodos de interpolação anteriormente apresentados. Sinais de
áudio foram utilizados, porque apresentaram melhor resultado em relação aos de
voz.
A frequência de amostragem
fs
dos sinais de áudio usada foi de 44.1kHz, que é a
frequência de amostragem utilizadas na medição das HRTFs também.
O sinal de áudio é passado por um janelamento, sendo assim, dividido em várias partes. A janela utilizada foi a retangular. Essas partes são convoluídas com
as HRTFs, e através de um loop, esses pequenos trechos são somados.
Eles são
rotacionados 25 vezes no mesmo plano. Com esse processo, forma-se o áudio 3D.
Foram gerados grácos para as saídas de cada método em cada plano.
4.3.1
Plano horizontal
Nesse plano observou-se claramente a ideia do áudio 3D, com o sinal de voz circulando entre o ouvido esquerdo e direito. Os grácos dos canais dos ouvidos esquerdo
e direito são mostrados nas Figuras 4.12, 4.13 e 4.14.
29
Figura 4.11: Gráco da saída usando as HRTFs CIPIC originais, no plano horizontal.
30
Figura 4.12: Gráco da saída do método linear com uso da magnitude e fase, no
plano horizontal.
Figura 4.13: Gráco da saída do método linear com uso da magnitude apenas, no
plano horizontal.
31
Figura 4.14: Gráco da saída do método spline, no plano horizontal.
4.3.2
Plano médio
Como pode ser observado nos métodos no plano médio, os grácos nas Figuras
4.16, 4.17 e 4.18 dos dois canais de saída (ouvidos esquerdo e direito) estão sobrepostos. Isso acontece porque a distância entre os dois ouvidos é sempre a mesma
nesse plano e, portanto, a ideia de rotação do som do áudio 3D não é percebida praticamente. Como as HRTFs são iguais para os dois ouvidos, e portanto seus sinais
também, há uma diculdade na localização da fonte. Há apenas uma alteração da
amplitude dos sinais.
32
Figura 4.15: Gráco da saída usando a HRTF original, no plano médio.
Figura 4.16: Gráco da saída do método linear com uso da magnitude e fase, no
plano médio.
33
Figura 4.17: Gráco da saída do método linear com uso da magnitude apenas, no
plano médio.
Figura 4.18: Gráco da saída do método spline, no plano médio.
34
Capítulo 5
Conclusão
A metodologia usada no trabalho foi fazer a interpolação das HRTFs nos planos horizontal e médio empregando três diferentes métodos propostos na literatura,
para depois, através do overlap-add, gerar sinais de voz com noção de imersão e
movimento, nos dois planos.
Pode-se perceber um melhor resultado da percepção do movimento da fonte no
◦
plano horizontal (relativo ao ângulo de elevação xo em 0 ), pela própria posição
das HRTFs em relação aos ouvidos.
◦
No médio, como o plano possui azimute 0 , ele está perpendicular à posição dos
ouvidos e, por isso, possui a mesma distância entre os ouvidos. A diferença de tempo
de chegada dos sinais nos ouvidos é desprezível, e observa-se apenas uma variação
de amplitude dos sinais nos ouvidos.
Um trabalho futuro que poderia ser feito é rodar esses mesmos métodos para
outros planos e gerar áudios nesses outros planos.
Outra geração de áudio que
poderia ser feita é usando a trajetória helicoidal, de forma que pegariam mais pontos
das HRTFs interpoladas, em vários planos, o que daria uma maior noção de imersão
no áudio 3D.
Outro possível trabalho futuro seria realizar a otimização da interpolação. Através
da CVX Toolbox, que é uma ferramenta que pode ser usada no MATLAB, se acharia
o
α
ótimo, que minimizasse o
Hi (ω),
como descrito em [4].
35
Como as formulações matemáticas não estavam genéricas, e sim aplicadas a um
plano em especíco, havendo variação de apenas um dos ângulos (azimute ou elevação), outro trabalho futuro seria generalizar as formulações dos métodos.
36
Referências Bibliográcas
[1] ALGAZI, V. R., DUDA, R. O., THOMPSON, D. M.,
Database,
et al., The CIPIC HRTF
IEEE Workshop on Applications of Signal Processing to Audio and
Acoustics, pp. 99102, 2001.
[2] ATKINSON,
K.
E.,
Piecewise
Polynomial
Interpolation,
http://homepage.divms.uiowa.edu/, 2003, (Acesso em 14 Fevereiro 2017).
[3] HUDDE, H., A Functional View On The Peripheral Human Hearing Organ.
In: Blauert, J. (ed.),
Communication Acoustics,
chapter 3, Bochum, Germany,
Springer, pp. 4774, 2005.
[4] C, S. R., HEGDE, R. M., Horizontal Plane HRTF Interpolation using Linear
Phase Constraint for Rendering Spatial Audio,
IEEE,
v. 30, pp. 16681672,
2016.
[5] GALDINO, Interpolação, http://galdino.pbworks.com, 2006, (Acesso em 06
Dezembro 2016).
[6] WANG, L., YIN, F., CHEN, Z., Head-Related transfer function interpolation
through multivariate polynomial tting of the principal component weights,
Acoustic Science and Technology, v. 30, pp. 395403, 2009.
[7] FREELAND, F. P.,
Geração Eciente de Som Tridimensional.
tion, Universidade Federal do Rio de Janeiro, Dezembro 2005.
37
Ph.D. disserta-
Download