42 lines
1.5 KiB
Markdown
42 lines
1.5 KiB
Markdown
# AITagger
|
|
|
|
AITagger is an application that sets music/mp3 i3 tags on files based on thair file names.
|
|
This a application will take a folder of music files like
|
|
|
|
* Domination by APOCALYPTICA feat Dead Soul Tirbe.opus
|
|
* Apocalyptica - 04 Nothing Else Matters.mp3
|
|
|
|
and so on and trys to extract what is the album (if possible), the titel and the artist.
|
|
|
|
The core of this application is a Transformer model based on GPT2 architecture.
|
|
|
|
## Building
|
|
|
|
### Requirements
|
|
|
|
* wget in $PATH
|
|
* [llamacpp](https://github.com/ggerganov/llama.cpp)
|
|
* [tagparser](https://github.com/Martchus/tagparser)
|
|
* a c++20 compiler
|
|
* a ROCM or CUDA install and a compatable gpu with at least 4GB vram is recommended
|
|
|
|
|
|
### Procedure
|
|
|
|
1. clone this repo and change the working directory to where you cloned it
|
|
2. `mkdir build; cd build`
|
|
3. `cmake .. ; make`
|
|
4. `bash get-models.sh`
|
|
* this will download the models and place them in the ./net directory
|
|
|
|
### Usage
|
|
|
|
1. Perpare a directory with the music files you would like to tag
|
|
2. run aimusictagger with your desired paramters on the directory
|
|
* see --help for a full set of flags
|
|
* you must select network weights to use two options are available
|
|
1. tags-gpt2-medium.gguf is more agressive at guessing tags not apperant in the file names
|
|
* this will likely only work well if the model has seen the title in question before during training
|
|
2. tags-gpt2-medium-v2.gguf is less agressive and gennerally what should probubly be used
|
|
3. the tagged files will be placed where you specify with `--out`
|
|
|