Przygotowanie środowiska IFE_raw
- Pliki konfiguracyjne i model sieci
- wybrane wytrenowane modele
- Generator plików audio oraz AFE
- Inferencje z użyciem gotowej sieci
- wybrane wytrenowane modele
- przykład inferencji na sygnale mowy oraz wyświetlenia wyników
- Referencyjna baza sygnałów mowy
- KeelePitch
- nowy korpus <= raczej później po testach
- Podstawowa analiza wyników inferencji
Przygotowanie środowiska
- Install Miniconda3 for Windows: https://docs.conda.io/en/latest/miniconda.html
- Konfiguracja środowiska w Conda (IFE_raw)
conda create -n IFE_raw python=3.9
conda activate IFE_raw
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
conda install -c conda-forge --file requirements.txt
Użycie IFE_infer.py
python IFE_infer.py "wav source file or folder" "model filename" "output folder" [mat/npz <= output file format]
- CMD
conda activate IFE_raw && run_IFE_infer_call.bat %1 && conda deactivate
- powershell
conda activate IFE_raw; if ($LASTEXITCODE -eq 0) { run_IFE_infer_call.bat }; conda deactivate
- https://stackoverflow.com/questions/65627536/the-token-is-not-a-valid-statement-separator-in-this-version
Trening sieci (train_model.py)
- trening nowej sieci uruchamia się skryptem train_model.py z parametrem wskazującym na plik konfiguracyjny w formacie JSON.
python train_model.py "./configs/tr_cfg_test_SNR_100_log_MLP2.json"
- opis format pliku konfiguracyjnego dla treningu znajduje się w pliku „Trainer config file description.odt”
- pliki wynikowe z modelami oraz bieżący plik log dla każdej epoki są zapisywane w podkatalogach wskazanych w pliku konfiguracyjnym w katalogu output_data/models
- dodatkowo we wskazanym pliku zapisywane jest ziarno generatora losowego (*.seed). Jeżeli plik ten nie istnieje to jest on tworzony, w przeciwnym przypadku trening kontynuowany jest ze stanami generatora losowego inicjowanymi zależnie od numeru epoki na bazie tego ziarna.
- główny plik logowania jest zapisywany w katalogu logs
Inferencja na potrzeby wstępnej ewaluacji wyników dla wielu modeli (infer_model.py)
- Inferencja na potrzeby wstępnej ewaluacji wyników jest uruchamiana skryptem infer_model.py ze wskazaniem na plik konfiguracyjny inferencji.
- przykładowe pliki konfiguracyjne znajdują się w katalogu ./output_data/inference/
- inf_cfg_const_SNR_test_MLP2_100_speech.json
- inf_cfg_const_SNR_test_MLP2_100_synth.json
- przykładowe pliki konfiguracyjne znajdują się w katalogu ./output_data/inference/
- opis format pliku konfiguracyjnego dla treningu znajduje się w pliku „Inferer config file description.odt”
- Parametry modelu są odczytywane automatycznie z pliku zapisu modelu wytrenowanego z użyciem train_model.py i nie muszą być podawane w pliku konfiguracyjnym.
- Pliki wynikowe są zapisywane we wskazanych podkatalogach, w których są tworzone podkatalogi zależne od katalogów źródłowych modelu
Wstępna ewaluacja wyników (draw_inference_results.py)
- Wyniki wygenerowane w ramach infer_model.py można poddać dodatkowemu przetwarzaniu korzystając ze skryptu draw_inference_results.py
- Wyniki są zbierane i zapisywane w plikach xlsx w katalogu /output_data_inference/xlsx. Grupowanie wyników jest zależne od konfiguracji zdefiniowanej wewnątrz skryptu.
- Wygenerowane pliki nie są kompatybilne z oprogramowaniem Microsoft Office. Można je otworzyć z użyciem aplikacji Calc z pakietu LibreOffice.
Skrypty Matlaba do analizy wyników
- test_IFE_infer.m - prezentacja wyników IFE_infer.py na tle spektrogramu wraz z referencyjnym F0
- TODO analiza wyników infer_model.py
- TODO generowanie wyników dla metod referencyjnych
Użycie w ramach Visual Studio Code
- Po zmianie bieżącego katalogu na katalog projektu należy wybrać interpreter pythona powiązany z przygotowanym środowiskiem conda (IFE_raw) (Ctrl+Shift+P)