Este breve relato mostrará o quão afinadas as máquinas podem ser, caso elas saibam como cantar (se é que isso é possível…). Continuem lendo para entender (ou não, mas juro que me esforçarei para que sim). Para contextualizar, um pequeno garoto se interessou em estudar o problema de identificação de notas musicais pelo computador. Ao começar os seus estudos ele se debruçou nas abordagens usadas pelo pessoal que vem trabalhando com tais problemas no ramo de voz, uma vez que a pesquisa com o intuito musical é muito recente e carece de ampla literatura. Há dois tipos de abordagem para o problema, ambos assumem que o sinal musical é periódico, podemos dizer que na realidade são formas distintas de visualização para o problema: No domínio do Tempo ou no Domínio da Frequência (em um outro relato, o garoto descreverá um pouco mais a respeito destes mundos). Uma função é periódica se para qualquer instante maior que T (t+T), sendo T o período, ela assume o valor f(t), ou seja, ela se repete ao longo do tempo.
(1)
Em uma de suas reuniões com seu orientador, detentor, diga-se de passagem, da melhor sala de reunião da UFS, com amplo espaço aberto, visão natural, ventilação e iluminação naturais, opssss… Xô voltar para o assunto que a ideia não é vender o espaço aberto da nossa Universidade, por mais que tenha uma galera querendo isso (bando de balburdeiros!!!). Voltando, em uma das reuniões de orientação surgiu a possibilidade de usar uma técnica bem difundida e utilizada por nós, discentes, durante a disciplina de Modelagem e simulação. A ideia foi a de que poderíamos tentar inferir qual a nota presente no segmento de som usando a Pseudo-Inversão de uma matriz cujas colunas são compostas por senos e cossenos 1nas frequências que mapeiam as 12 notas musicais. No meio da conversa, o aluno sugeriu que poderíamos usar algo semelhante a ideia da Pseudo-Inversão, mas que não tem nada a ver com a Pseudo-Inversão (será???). Nossa que confuso! Deixa eu explicar, é sabido que a Pseudo-Inversão foi criada com o intuito de solucionar Sistemas Lineares. Durante o ensino médio aprendemos que um sistema linear pode ser escrito em notação matricial, de tal modo que a sua solução está intimamente ligada ao processo de inversão da matriz da transformação linear que representa o sistema. A matriz de Pseudo-Inversão aproxima uma solução para problemas que não possuem solução (matriz que não é quadrada, número de linha é diferente do número de colunas) 2 dado um determinado critério. Equação da Pseudo-Inversão:
(2)
Uns flashes começaram a vir em sua direção, relembrando-o da capacidade de desenvolvimento de filtros digitais adquirida através de outra disciplina, Processamento Digital de Sinais. 3. Bom, ao continuar o seu desenvolvimento, o garoto preso em sua ideia inicial e deixando-se levar pela ferramenta não se atentou que estava tentando matar um pequeno coelhinho com um Tiro de Canhão… Pobre garoto, mas graças aos seus colegas de grupo, ele foi questionado do porque desta brutalidade toda. Será que há algo no processo de construção do método que ele deixou passar? A matriz de Pseudo-Inversão envolve escolhas que se relacionam com o quão boa a solução aproximada será. Basicamente, as colunas devem ser compostas por funções de base linearmente independentes entre si. Logo no início foi dito que a matriz ia ser formada por senos e cossenos, senos e cossenos são ortogonais (e é sabido lá da álgebra linear que vetores ortogonais são linearmente independentes). O melhor modelo é o que minimiza algum critério de erro. Olha que legal, a primeira parte da equação 2 ( ), uma vez que a matriz A é formada por senos e cossenos, resulta na transformação Identidade, de tal modo, que não há necessidade de se fazer este produto pelo simples fato de que a transformação Identidade age como um filtro passa tudo (sem inversão de fase, para os mais sérios). Como não há necessidade da primeira parcela da conta, resta entender a outra parcela do produto (). Uma vez que cada coluna da matriz A é uma função senoidal, o produto resulta em uma operação bem conhecida pela Engenharia, o produto interno do sinal y por cada senóide e cossenóide que compõem a matriz A.
O produto interno é muito utilizado pois serve como forma de medir semelhança entre ‘coisas’. Portanto, ao multiplicarmos , teremos a formação de um vetor , em que cada elemento representa o grau de semelhança de y com cada senóide presente na matriz A. Este método foi chamado pelo menino como filtros super, hiper, mega, ultra seletivos. Ou seja, intrínseca e naturalmente o garoto estava caminhando para uma solução que resulta em um ‘banco de filtros’.
Bom, ao comentar da possibilidade do desenvolvimento de filtros digitais para a resolução do problema com seu orientador, foi obtido como resposta: implemente e vamos ver no que dá. O garoto pensou um pouco mais e implementou um Banco de Filtros mais elaborado4. O que é um Banco de Filtros? Imaginem que vocês tem disponível 3 peneiras, cada uma com um diâmetro diferente dos furos que dão forma a peneira. Essa diferença no diâmetro do furo permitirá a passagem de algumas substâncias, resíduos. Huuuummm, então quer dizer que se atribuirmos a cada diâmetro do furo uma determinada frequência que represente uma nota musical, por exemplo 440 hertz (Nota lá), podemos então selecionar até 3 notas que passarão pela peneira???? Uaaaaaaauuuuuu. Esta foi a ideia genial 5 que o menino teve e que começará a mostrar os resultados de seus experimentos a seguir.
O gráfico acima foi gerado através da primeira ideia descrita pelos parágrafos anteriores, resultado do processamento do arquivo abaixo.
De modo similar ao de cima, agora outra nota (Sol) foi analisada pelo mesmo método:
O resultado dos experimentos deixaram o garoto bem empolgado para testar com outras notas. Vou pedir um favor a vocês, ouçam mais uma vez os aúdios acima. Percebem alguma semelhança entre os sons? Seria instrumental? É um piano? Teclado? Piano eletrônico? Teclado com timbre de piano? Todas estas respostas estão “quase erradas” ou “quase certas”. Estes sons fazem parte de um banco de notas sintetizadas artificialmente com o timbre de um piano e foram disponibilizadas na internet. Ouçam este aúdio:
Agora vejam o resultado usando o mesmo método de análise:
Este resultado não nos mostra, de maneira clara qual a nota tocada pelo exímio flautista. Na realidade ela nos mostra que este segmento de aúdio é composto por várias notas 6. Esta gravação apresenta algo de diferente das outras: o som não é sintético, é “real” e apresenta ruído de aquisição (ruído de discretização, ruído dos mecanismos da flauta, ruído do ambiente de gravação …). Estas características não fazem do método “Produto Interno” uma solução robusta para este tipo de situação, porque fatores tais como tamanho do sinal, sensibilidade a ruído, janela do sinal (Características que serão abordadas nos próximos relatos) .
A partir de agora mostrarei os resultados que o menino obteve ao fazer seus experimentos com o banco de filtros criado por ele e chegaremos no motivo do título. Ouçam o segmento do nosso exímio flautista tocando Bach 7:
Agora vamos para a análise:
Vamos tentar entender o gráfico, o eixo vertical representa as notas musicais, já o horizontal são frames (representa um pedacinho do sinal de aúdio, que para o nosso caso possui tamanho de 25 milissegundos) de tempo. O que o método faz é dividir o sinal todo em pedacinhos e passa cada pedacinho pelo banco de filtros. Depois da passagem, é escolhida a componente de frequência que possui maior relevância no frame. Seguindo estes passos é possível estimar as notas presentes em cada segmento. Algo que é importante salientar é que as notas vão aumentando de frequência de tal modo que os sons tendem a se repetir, porém em frequências maiores, tecnicamente falando elas são oitavadas. O eixo vertical começa no Dó Sustenido 3 (primeiro C#) e vai até Sol 5 (último G). Ora, se temos as frequências que representam as notas em cada frame e o tamanho do frame, podemos sintetizar o som analisado a partir da estimação realizada. O resultado foi esse:
E tchaaaannnnnrrrãããã, a máquina está cantando Bach. Um pouco desafinada em algumas partes, ou perdida, mas todos sabemos que ‘Bach’ não é para qualquer um, logo vamos dar um desconto. Inquieto, o garoto decidiu botar a máquina para tocar blues:
Será que o computador vai dar conta do recado?
E não é que o danado tocou e ainda fez gracinha (ou “melismou”, no jargão musical). Será que a máquina tem alma jazzística? Pode ser que sim, ou não, ou só está querendo, como dizem os jovens, “tirar uma onda” com os relhes mortais. Bom pessoal, está no forno outro relato em que será dado um porque dos métodos funcionarem (ou em quais casos eles funcionam), porque que falham, quais os problemas, e o rigor matemático por trás das peculiaridades apresentadas no atual relatório. Espero que tenham achado interessante o relato e não esqueçam de continuar lendo porque o garoto pretende trazer novidades a respeito do avanço dos trabalhos. Até a próxima e boas fusas, ops sonhos!!! 8
Graduando de Engenharia Elétrica com Habilitação em Eletrônica(2018) pela Universidade Federal de Sergipe(UFS)
- Esta informação é importante e será usada jajá, fiquem atentos!!!
- O nome diz muito não é?
- Por acaso, o nome do projeto deste garoto se chama Transcrição Musical Automática utilizando Processamento Digital de Sinais
- Não tem nada a ver com os nossos bancos comerciais pessoal. O único empréstimo que faço é o de conhecimento e das contas para pagar, inclusive aceito doações na forma de conhecimento, abraços e música viiiiiuuuuu!!!
- Deixem o rapaz sonhar um pouco, obrigado!!!
- O que faz todo o sentido do ponto de vista musical, porém este resultado não é tão legal para a resolução do problema que está sendo estudado
- E ele estava sóbrio durante a gravação!!!
- Aproveitem o site, tem coisa muito legal sendo divulgada e feita pelo grupo!!!