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-