diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..be8396c --- /dev/null +++ b/Readme.md @@ -0,0 +1,42 @@ +# 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` +