V tem repozitoriju so zbrani različni postopki akustične normalizacije govornih posnetkov, kot so NRSG, DFL, SEGAN.
Postopek odstranjevanja šuma s pomočjo spektralnega razločevanja (ang. Noise Reduction using Spectral Gating, NRSG) temelji na algoritmu iz programa Audacity oziroma njegovi reimplementaciji iz repozitorija noisereduce.
Odstranitev šuma na posameznem posnetku se izvede z ukazom python nrsg.py -i vhodni/posnetek.wav -o razsumljeni/posnetek.wav
. Za izračun moči šuma postopek uporabi del posnetka, ki ne vsebuje govora. Predpostavljamo, da obstaja začetni in končni premor v katerem ni govora. Privzeta dolžina obeh premorov je 0.5 sekunde, lahko pa ju poljubno nastavimo z argumentom -b
(npr. 0.3 s začetnega in 0.4 s končnega premora dobimo z python nrsg.py -i vhodni/posnetek.wav -o razsumljeni/posnetek.wav -b 0.3 0.4
. Podrobnejši opis vhodnih argumentov dobimo z python nrsg.py -h
.
Izvedba postopka na posnetkih v danem direktoriju se izvede z python nrsg.py -i dir/originalni/ -o dir/razsumljeni/
. Podrobnejši opis vhodnih argumentov skripte dobimo s python nrsg.py -h
.
Programska koda za odstranjevanje šuma s postopkom DFL (ang. deep feature losses) temelji na repozitoriju SpeechDenoisingWithDeepFeatureLosses.
Za namestitev zahtevanih paketov glej poglavje setup.
Odstranitev šuma iz posnetkov v danem direktoriju se izvede s pomočjo ukaza python dfl.py -i /mapa/z/vhodnimi/posnetki/ -o /mapa/z/razsumljenimi/posnetki/ -m /mapa/z/modelom/SEnet/
.
Programska implementacija odstranjevanja šuma s postopkom SEGAN (ang. Speech Enhancement Generative Adversarial Network) se opira na kodo iz repozitorija santi-pdp/segan, prvotnih avtorjev tega postopka.
Za namestitev zahtevanih paketov glej poglavje Dependencies.
Odstranitev šuma na posameznem posnetku se izvede z zagonom skripte clean_wav.sh
iz repozitorija santi-pdp/segan.
Izvedba postopka na vseh posnetkih v določenem direktoriju in poddirektorijih se izvede s python segan.py --init_noise_std 0. --save_path pot/do/segan_v1.1 --batch_size 100 --g_nl prelu --weights SEGAN-41700 --preemph 0.95 --bias_deconv True --bias_downconv True --bias_D_conv True --in_dir pot/do/posnetkov --save_clean_path pot/do/razsumljenih/posnetkov
. Pred zagonom je potrebno nastaviti pot do repozitorija santi-pdp/segan.
Izračunu kakovost zvočnih posnetkov, obdelanih po obravnavanih postopkih razšumljanja, se opira na programsko opremo iz repozitorija speechmetrics, ki omogoča izračun tako različnih absolutnih mer (MOSNet, SRMR) kakor tudi relativnih mer kakovosti govornih posnetkov (PESQ, STOI, idr.). Poleg mer, ki jih zagotavlja speechmetrics, smo udejanjili še razmerje signal-šum (ang. signal to noise ratio, SNR).
Postopek vrednotenja lahko izvedemo z ukazom python eval.py -i /mapa/z/vhodnimi/posnetki/ -r /mapa/z/referenčnimi/posnetki/ -o mere.csv
. Pred zagonom je potrebno nastaviti pot do repozitorija speechmetrics.