A tool to analyze vocals from audio files using AI-powered transcription and feature extraction.
- Extract vocals from audio files (MP3/WAV)
- Extract all available stems (vocals, drums, bass, etc.)
- Transcribe vocal content
- Analyze vocal range and characteristics
- Generate detailed analysis reports with AI insights
uv is a fast Python package installer and resolver.
curl -LsSf https://astral.sh/uv/install.sh | sh# Clone or navigate to the project directory
cd /path/to/va
# Install the project with uv
uv pip install -e .Vocal Analyzer can be configured using a TOML configuration file to enable/disable features and customize behavior.
The tool looks for config files in the following order:
- Path specified with
--configargument config.tomlin the current directory~/.config/vocal-analyzer/config.toml
Copy the example config and customize it:
cp config.example.toml config.toml
# Edit config.toml to enable/disable featuresSee config.example.toml for all available options.
va path/to/audio.mp3This will:
- Extract vocals from the audio file
- Transcribe the vocals
- Analyze vocal features (pitch, range, etc.)
- Generate an analysis report
Output files will be created in a new directory: audio-analysis/ next to your input file.
va path/to/audio.mp3 --config my-config.tomlTo extract all available stems (vocals, drums, bass, etc.) instead of just vocals:
va path/to/audio.mp3 --all-stemsva path/to/audio.mp3 -o /path/to/outputTo see all available separation models and their supported stems:
va --list-modelsva path/to/audio.mp3 --model htdemucs_6s.yamlDefault model: htdemucs_6s.yaml (supports 6-stem separation including vocals, drums, bass, guitar, piano, and other)
va path/to/audio.mp3 -q# Analyze vocals from a song
va ~/Downloads/song.mp3
# Extract all stems using the default model
va ~/Downloads/song.mp3 --all-stems
# Use a different model
va ~/Downloads/song.mp3 --all-stems --model model_bs_roformer_ep_317_sdr_12.9755.ckptThe tool creates an analysis directory containing:
*_vocals.wav- Extracted vocal track (or multiple stem files with--all-stems)*_analysis.txt- Detailed analysis report including:- Transcription
- Vocal range analysis
- AI-powered insights on vocal style and technique
- Python >= 3.11
- Dependencies are managed via
pyproject.toml - OpenAI API key (set as environment variable
OPENAI_API_KEY)
# Install in editable mode with uv
uv pip install -e .
# Run directly
python -m vocal_analyzer.main path/to/audio.mp3See LICENSE file for details.