Há muitas ferramentas e pacotes de cálculo numérico que permitem o desenvolvimento de software de maneira expressiva. Entretanto, a avaliação imediata realizada pela maioria dessas ferramentas torna difícil, senão impossível, usá-las para processamento digital de sinais em tempo real (ou do inglês Digital Signal Processing, que resulta na conhecida sigla DSP). No seminário apresentado na última semana de abril, intitulado AudioLazy: DSP em Python, Danilo de Jesus da Silva Bellini, mestre em ciência da computação com dissertação baseada nesse software, apresentou a origem e a capacidade funcional da AudioLazy.
“Trata-se de um pacote desenvolvido para o processamento, análise e síntese de áudio que visa ser utilizado tanto em tarefas de prototipação e simulação como em aplicações com exigência de processamento em tempo real”, afirmou Bellini. “O nome do pacote surgiu por conta do requisito de processamento em tempo real, o qual envolve diversas tarefas que necessitam da avaliação tardia ou preguiçosa (lazy)”, completou.
Prototipação e simulação são tarefas necessárias para a avaliação de modelos a serem publicados em artigos científicos, e podem ser realizadas com a AudioLazy de maneira simples e direta devido à ênfase dada pela linguagem e pelo pacote à expressividade, que se refere à maneira como o código pode ser escrito pelo desenvolvedor usuário da AudioLazy. “Embora o projeto tenha enfatizado o requisito do tempo real, este não é uma necessidade em todos os casos de uso para os quais o software está apto a atender”, disse Bellini. A AudioLazy conta com diversos modelos prontos que podem ser úteis em diversas tarefas. Um exemplo de possível simulação que pode ser feita com a AudioLazy é o banco de filtros de Patterson-Holdsworth que modela a cóclea, órgão sensorial do ouvido interno responsável pela comunicação com o sistema nervoso, modelo este que pode ser colocado em prática pela simples utilização dos filtros gammatone já disponibilizados no pacote.
A avaliação tardia ou preguiçosa (lazy), por sua vez, significa que a expressão é avaliada quando o valor da variável que a armazena é requisitado. “É quando o computador ‘preguiçosamente’ só faz aquilo que é necessário no dado instante, deixando para depois todo o restante”, completou. A avaliação tardia pode evitar cálculos desnecessários e é vantajosa por permitir abstrair o fluxo de controle como um objeto que, por sua vez, é um aspecto necessário para obter uma parte da expressividade da escrita que se deseja obter. A AudioLazy é um pacote de cálculo numérico e simbólico incluindo reprodução, gravação e síntese de áudio em tempo real, além de análise de sons, filtros, entre outros, presente no PyPI (Python Package Index), índice e repositório oficial de pacotes para essa linguagem. Além disso, o pacote é multiplataforma: ele foi testado em Linux e no Windows, e é provável o êxito em uso em outras plataformas por conta do código estar 100% em Python.
A criação da AudioLazy se deu devido à demanda por código de qualidade para tarefas que envolvem processamento de áudio em meio científico, e modelos especificados em artigos científicos mas que ainda não existem em pacotes prontos para uso prático, os quais agora podem ser facilmente implementados. A importância disso é constatada ao observar a demanda desse software, que garantiu até o dia 4 de maio um mínimo de 339 downloads para sua última versão estável (disponibilizada no dia 18 de fevereiro), sem considerar acessos diretos ao repositório de desenvolvimento, os quais não são contabilizados. “A AudioLazy possibilita o acesso às amostras de áudio ao mesmo tempo em que possui estruturas que permitem o processamento em um nível mais alto de abstração, tais como filtros, análise em blocos, modelagem do aparato auditivo externo, características necessárias ou desejáveis em muitos casos de uso do pacote”, completou.