Sobre o projeto

audioFlux é uma biblioteca de código aberto para análise de áudio e música e extração de características, implementada em C com ligações Python. Ela é projetada em torno de uma arquitetura de fluxo de dados que desacopla módulos de algoritmo para que características multidimensionais possam ser extraídas de forma rápida e eficiente. O projeto visa fluxos de trabalho de aprendizado profundo em áudio, incluindo classificação, separação de fontes, Recuperação de Informação Musical (MIR) e ASR. A biblioteca é organizada em três módulos principais: transform, feature e mir. O módulo transform fornece representações tempo-frequência. BFT (transformada de Fourier baseada, semelhante a STFT), NSGT (transformada de Gabor não estacionária), CWT (transformada wavelet contínua) e PWT (transformada wavelet pseudo) suportam múltiplos tipos de escala de frequência: linear, linspace, Mel, Bark, Erb, Octave e Log. Outras transformadas são oferecidas como métodos independentes: CQT (transformada de Q constante), VQT (transformada de Q variável), ST (transformada S/transformada de Stockwell), FST (transformada S rápida), DWT (transformada wavelet discreta), WPT (transformada de pacote wavelet) e SWT (transformada wavelet estacionária). Técnicas de sincrossqueezing e reatribuição também são incluídas: reatribuição para STFT, synsq usando dados CWT, e wsst para CWT. O módulo feature inclui características espectrais (suportando todos os tipos de espectro), coeficientes de cepstrum (xxcc), deconvolução para espectros, e características de croma (suportando espectro CQT e espectros lineares/octave baseados em BFT). O módulo mir cobre estimativa de pitch (YIN, STFT e outros), detecção de onset (fluxo espectral, novidade e outros), e separação de fontes harmônico-percussivas (filtragem mediana e NMF). Lançamentos recentes adicionaram uma gama de algoritmos de pitch (YIN, CEP, PEF, NCF, HPS, LHS, STFT, FFP), algoritmos de PitchShift e TimeStretch, e um algoritmo TuneTrack destinado a afinadores de instrumentos cobrindo guitarra, ukulele, baixo, banjo, bandolim e violino. A instalação está disponível via PyPI (`pip install audioflux`) ou Anaconda, exigindo Python 3.6 ou posterior. A biblioteca é multiplataforma, suportando Linux, macOS, Windows, iOS e Android, com instruções de compilação separadas para iOS, Android e compilação a partir do código-fonte. Documentação e scripts de exemplo são hospedados online, cobrindo Mel e MFCC, CWT e sincrossqueezing, CQT e croma, diferentes tipos de wavelet, características espectrais, estimativa de pitch, detecção de onset e separação de fontes harmônico-percussivas. Um módulo de benchmark fornece medições de desempenho, e o projeto é lançado sob a Licença MIT.