A program to make charting songs for my upcoming game easier! WAV Files are the only type supported as of right now.
To learn how the program works: Visit the Wiki
This honestly was a really fun project to make and it helped me learn a lot about audio analyzation.
The program first uses scipy and matplotlib to visualize the recording and graph it out. Then using sing the librosa python package, the program detects when every beat is hit and gives a timestamp. The program then packages the data from librosa into a chart, with either random note placement or no note placement. With no note placement, the user can change it themselves.
Vocal charting proved to be a more difficult task. I first thought about using the speech_recognition package to detect all the words said and try to transcribe them, then use lowerquality/gentle to actually get the timestamps for the words. I quickly realized the speech recognition package I wanted to use was not the smartest idea, so I looked around for more answers. I then found openai-whisper, which at first I was just going to use for the transcription until I found out it also gave timestamps. Now, powered by Whisper, the program will completely analyze the vocal track and give you timestamps and a transcription back.
pip install -r requirements.txt- If you want to use your GPU for the vocals section, also run
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
- If you want to use your GPU for the vocals section, also run
python src/main.py