Sobre o projeto

Basic Pitch é uma biblioteca Python para Transcrição Automática de Música (AMT) desenvolvida pelo Audio Intelligence Lab do Spotify. Ela usa uma rede neural leve para converter arquivos de áudio em MIDI, incluindo informações de pitch bend. O projeto é independente de instrumento e suporta transcrição polifônica, embora funcione melhor com um instrumento por vez. A biblioteca pode ser instalada via pip (`pip install basic-pitch`) e também possui um repositório irmão em TypeScript para instalação via npm. Ela suporta macOS, Windows e Ubuntu, com versões do Python de 3.7 a 3.11. Em hardware Mac M1, apenas o Python 3.10 é atualmente suportado. O Basic Pitch vem com múltiplas opções de runtime de modelo: o modelo original TensorFlow, além de conversões para CoreML, TensorFlowLite e ONNX. Por padrão, ele seleciona um runtime com base na plataforma — CoreML no macOS, TensorFlowLite no Linux e ONNX no Windows — sem instalar o TensorFlow, a menos que Python 3.11+ seja usado. Os usuários podem instalar o TensorFlow explicitamente com `pip install basic-pitch[tf]`. A biblioteca oferece tanto uma interface de linha de comando quanto uma API programática. A CLI aceita um diretório de saída e um ou mais caminhos de áudio de entrada, e pode opcionalmente salvar MIDI sonificado como WAV, saídas brutas do modelo como NPZ e eventos de nota como CSV. A API programática inclui `predict()` para retornar a saída do modelo, dados MIDI e eventos de nota, e `predict_and_save()` para orquestrar a geração de saída. Para previsões repetidas, os usuários podem carregar o modelo uma vez e passá-lo para `predict()` para evitar carregamento redundante. Os formatos de áudio suportados incluem mp3, ogg, wav, flac e m4a. Entrada estéreo é mixada para mono, e todo áudio é reamostrado para 22050 Hz. O modelo pode processar áudio de qualquer duração, embora arquivos muito grandes possam ser limitados pelo espaço em disco disponível. O Basic Pitch foi lançado junto com um artigo de pesquisa apresentado no ICASSP 2022, intitulado "A Lightweight Instrument-Agnostic Model for Polyphonic Note Transcription and Multipitch Estimation." Uma demonstração está disponível em basicpitch.io, e uma versão VST chamada NeuralNote foi desenvolvida por um membro da comunidade. O projeto está licenciado sob Apache 2.0 e aceita contribuições.